{
  "errors": [],
  "warnings": [],
  "version": "1.12.13",
  "hash": "882d937088317fba97c3",
  "time": 2079,
  "publicPath": "http://localhost:8081/",
  "assetsByChunkName": {
    "_vendor": "vendor.js",
    "app": [
      "app.js",
      "app.css"
    ]
  },
  "assets": [
    {
      "name": "1d6600c436721252b8048b7bc6bfb806.jpg",
      "size": 213627,
      "chunks": [],
      "chunkNames": [],
      "emitted": true
    },
    {
      "name": "vendor.js",
      "size": 4487160,
      "chunks": [
        0
      ],
      "chunkNames": [
        "_vendor"
      ],
      "emitted": true
    },
    {
      "name": "app.js",
      "size": 19034,
      "chunks": [
        1
      ],
      "chunkNames": [
        "app"
      ],
      "emitted": true
    },
    {
      "name": "app.css",
      "size": 136,
      "chunks": [
        1
      ],
      "chunkNames": [
        "app"
      ],
      "emitted": true
    }
  ],
  "chunks": [
    {
      "id": 0,
      "rendered": true,
      "initial": true,
      "entry": true,
      "extraAsync": false,
      "size": 1634477,
      "names": [
        "_vendor"
      ],
      "files": [
        "vendor.js"
      ],
      "hash": "922713ce30e20b7c1230",
      "parents": [],
      "origins": [
        {
          "moduleId": 0,
          "module": "multi _vendor",
          "moduleIdentifier": "multi _vendor",
          "moduleName": "multi _vendor",
          "loc": "",
          "name": "_vendor",
          "reasons": []
        }
      ]
    },
    {
      "id": 1,
      "rendered": true,
      "initial": true,
      "entry": false,
      "extraAsync": false,
      "size": 7642,
      "names": [
        "app"
      ],
      "files": [
        "app.js",
        "app.css"
      ],
      "hash": "96149b05a55ea14af8d7",
      "parents": [
        0
      ],
      "origins": [
        {
          "moduleId": 0,
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
          "moduleName": "./modules/client.js",
          "loc": "",
          "name": "app",
          "reasons": []
        }
      ]
    }
  ],
  "modules": [
    {
      "id": 0,
      "identifier": "multi _vendor",
      "name": "multi _vendor",
      "index": 0,
      "index2": 444,
      "size": 76,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": null,
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": []
    },
    {
      "id": 0,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
      "name": "./modules/client.js",
      "index": 445,
      "index2": 459,
      "size": 543,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": null,
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [],
      "source": "'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactRouter = require('react-router');\n\nvar _routes = require('../modules/routes');\n\nvar _routes2 = _interopRequireDefault(_routes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(0, _reactDom.render)(_react2.default.createElement(_reactRouter.Router, { history: _reactRouter.browserHistory, routes: _routes2.default }), document.getElementById('app'));"
    },
    {
      "id": 1,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
      "name": "./~/webpack-dev-server/client?http://localhost:8081",
      "index": 1,
      "index2": 71,
      "size": 2672,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "multi _vendor",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "multi _vendor",
          "module": "multi _vendor",
          "moduleName": "multi _vendor",
          "type": "single entry",
          "userRequest": "webpack-dev-server/client?http://localhost:8081"
        }
      ],
      "source": "var url = require('url');\r\nvar SockJS = require(\"sockjs-client\");\r\nvar stripAnsi = require('strip-ansi');\r\nvar scriptElements = document.getElementsByTagName(\"script\");\r\nvar scriptHost = scriptElements[scriptElements.length-1].getAttribute(\"src\").replace(/\\/[^\\/]+$/, \"\");\r\n\r\n// If this bundle is inlined, use the resource query to get the correct url.\r\n// Else, get the url from the <script> this file was called with.\r\nvar urlParts = url.parse(typeof __resourceQuery === \"string\" && __resourceQuery ?\r\n\t__resourceQuery.substr(1) :\r\n\t(scriptHost ? scriptHost : \"/\")\r\n);\r\n\r\nvar sock = null;\r\nvar hot = false;\r\nvar initial = true;\r\nvar currentHash = \"\";\r\n\r\nvar onSocketMsg = {\r\n\thot: function() {\r\n\t\thot = true;\r\n\t\tconsole.log(\"[WDS] Hot Module Replacement enabled.\");\r\n\t},\r\n\tinvalid: function() {\r\n\t\tconsole.log(\"[WDS] App updated. Recompiling...\");\r\n\t},\r\n\thash: function(hash) {\r\n\t\tcurrentHash = hash;\r\n\t},\r\n\t\"still-ok\": function() {\r\n\t\tconsole.log(\"[WDS] Nothing changed.\")\r\n\t},\r\n\tok: function() {\r\n\t\tif(initial) return initial = false;\r\n\t\treloadApp();\r\n\t},\r\n\twarnings: function(warnings) {\r\n\t\tconsole.log(\"[WDS] Warnings while compiling.\");\r\n\t\tfor(var i = 0; i < warnings.length; i++)\r\n\t\t\tconsole.warn(stripAnsi(warnings[i]));\r\n\t\tif(initial) return initial = false;\r\n\t\treloadApp();\r\n\t},\r\n\terrors: function(errors) {\r\n\t\tconsole.log(\"[WDS] Errors while compiling.\");\r\n\t\tfor(var i = 0; i < errors.length; i++)\r\n\t\t\tconsole.error(stripAnsi(errors[i]));\r\n\t\tif(initial) return initial = false;\r\n\t\treloadApp();\r\n\t},\r\n\t\"proxy-error\": function(errors) {\r\n\t\tconsole.log(\"[WDS] Proxy error.\");\r\n\t\tfor(var i = 0; i < errors.length; i++)\r\n\t\t\tconsole.error(stripAnsi(errors[i]));\r\n\t\tif(initial) return initial = false;\r\n\t\treloadApp();\r\n\t}\r\n};\r\n\r\nvar newConnection = function() {\r\n\tsock = new SockJS(url.format({\r\n\t\tprotocol: urlParts.protocol,\r\n\t\tauth: urlParts.auth,\r\n\t\thostname: (urlParts.hostname === '0.0.0.0') ? window.location.hostname : urlParts.hostname,\r\n\t\tport: urlParts.port,\r\n\t\tpathname: urlParts.path === '/' ? \"/sockjs-node\" : urlParts.path\r\n\t}));\r\n\r\n\tsock.onclose = function() {\r\n\t\tconsole.error(\"[WDS] Disconnected!\");\r\n\r\n\t\t// Try to reconnect.\r\n\t\tsock = null;\r\n\t\tsetTimeout(function () {\r\n\t\t\tnewConnection();\r\n\t\t}, 2000);\r\n\t};\r\n\r\n\tsock.onmessage = function(e) {\r\n\t\t// This assumes that all data sent via the websocket is JSON.\r\n\t\tvar msg = JSON.parse(e.data);\r\n\t\tonSocketMsg[msg.type](msg.data);\r\n\t};\r\n};\r\n\r\nnewConnection();\r\n\r\nfunction reloadApp() {\r\n\tif(hot) {\r\n\t\tconsole.log(\"[WDS] App hot update...\");\r\n\t\twindow.postMessage(\"webpackHotUpdate\" + currentHash, \"*\");\r\n\t} else {\r\n\t\tconsole.log(\"[WDS] App updated. Reloading...\");\r\n\t\twindow.location.reload();\r\n\t}\r\n}\r\n"
    },
    {
      "id": 2,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/url.js",
      "name": "./~/url/url.js",
      "index": 2,
      "index2": 5,
      "size": 22257,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 1,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
          "module": "./~/webpack-dev-server/client?http://localhost:8081",
          "moduleName": "./~/webpack-dev-server/client?http://localhost:8081",
          "type": "cjs require",
          "userRequest": "url",
          "loc": "1:10-24"
        }
      ],
      "source": "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n    portPattern = /:[0-9]*$/,\n\n    // RFC 2396: characters reserved for delimiting URLs.\n    // We actually just auto-escape these.\n    delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n    // RFC 2396: characters not allowed for various reasons.\n    unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n    // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n    autoEscape = ['\\''].concat(unwise),\n    // Characters that are never ever allowed in a hostname.\n    // Note that any invalid chars are also handled, but these\n    // are the ones that are *expected* to be seen, so we fast-path\n    // them.\n    nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n    hostEndingChars = ['/', '?', '#'],\n    hostnameMaxLen = 255,\n    hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n    hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n    // protocols that can allow \"unsafe\" and \"unwise\" chars.\n    unsafeProtocol = {\n      'javascript': true,\n      'javascript:': true\n    },\n    // protocols that never have a hostname.\n    hostlessProtocol = {\n      'javascript': true,\n      'javascript:': true\n    },\n    // protocols that always contain a // bit.\n    slashedProtocol = {\n      'http': true,\n      'https': true,\n      'ftp': true,\n      'gopher': true,\n      'file': true,\n      'http:': true,\n      'https:': true,\n      'ftp:': true,\n      'gopher:': true,\n      'file:': true\n    },\n    querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && isObject(url) && url instanceof Url) return url;\n\n  var u = new Url;\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n  if (!isString(url)) {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  var rest = url;\n\n  // trim before proceeding.\n  // This is to support parse stuff like \"  http://foo.com  \\n\"\n  rest = rest.trim();\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  // figure out if it's got a host\n  // user@server is *always* interpreted as a hostname, and url\n  // resolution will treat //foo/bar as host=foo,path=bar because that's\n  // how the browser resolves relative URLs.\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] &&\n      (slashes || (proto && !slashedProtocol[proto]))) {\n\n    // there's a hostname.\n    // the first instance of /, ?, ;, or # ends the host.\n    //\n    // If there is an @ in the hostname, then non-host chars *are* allowed\n    // to the left of the last @ sign, unless some host-ending character\n    // comes *before* the @-sign.\n    // URLs are obnoxious.\n    //\n    // ex:\n    // http://a@b@c/ => user:a@b host:c\n    // http://a@b?@c => user:a host:c path:/?@c\n\n    // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n    // Review our test case against browsers more comprehensively.\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n\n    // at this point, either we have an explicit point where the\n    // auth portion cannot go past, or the last @ char is the decider.\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      // atSign must be in auth portion.\n      // http://a@b/c@d => host:b auth:a path:/c@d\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    // Now we have a portion which is definitely the auth.\n    // Pull that off.\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n        hostEnd = hec;\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1)\n      hostEnd = rest.length;\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    // we've indicated that there is a hostname,\n    // so even if it's empty, it has to be present.\n    this.hostname = this.hostname || '';\n\n    // if hostname begins with [ and ends with ]\n    // assume that it's an IPv6 address.\n    var ipv6Hostname = this.hostname[0] === '[' &&\n        this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) continue;\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              // we replace non-ASCII char with a temporary placeholder\n              // we need this to make sure size of hostname is not\n              // broken by replacing non-ASCII by nothing\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      // IDNA Support: Returns a puny coded representation of \"domain\".\n      // It only converts the part of the domain name that\n      // has non ASCII characters. I.e. it dosent matter if\n      // you call it with a domain that already is in ASCII.\n      var domainArray = this.hostname.split('.');\n      var newOut = [];\n      for (var i = 0; i < domainArray.length; ++i) {\n        var s = domainArray[i];\n        newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n            'xn--' + punycode.encode(s) : s);\n      }\n      this.hostname = newOut.join('.');\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    // strip [ and ] from the hostname\n    // the host field still retains them, though\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  // now rest is set to the post-host stuff.\n  // chop off any delim chars.\n  if (!unsafeProtocol[lowerProto]) {\n\n    // First, make 100% sure that any \"autoEscape\" chars get\n    // escaped, even if encodeURIComponent doesn't think they\n    // need to be.\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) this.pathname = rest;\n  if (slashedProtocol[lowerProto] &&\n      this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  //to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  // ensure it's an object, and not a string url.\n  // If it's an obj, this is a no-op.\n  // this way, you can call url_format() on strings\n  // to clean up potentially wonky urls.\n  if (isString(obj)) obj = urlParse(obj);\n  if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n  return obj.format();\n}\n\nUrl.prototype.format = function() {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n      pathname = this.pathname || '',\n      hash = this.hash || '',\n      host = false,\n      query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ?\n        this.hostname :\n        '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query &&\n      isObject(this.query) &&\n      Object.keys(this.query).length) {\n    query = querystring.stringify(this.query);\n  }\n\n  var search = this.search || (query && ('?' + query)) || '';\n\n  if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n  // only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n  // unless they had them to begin with.\n  if (this.slashes ||\n      (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n  if (search && search.charAt(0) !== '?') search = '?' + search;\n\n  pathname = pathname.replace(/[?#]/g, function(match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) return relative;\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n  if (isString(relative)) {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  Object.keys(this).forEach(function(k) {\n    result[k] = this[k];\n  }, this);\n\n  // hash is always overridden, no matter what.\n  // even href=\"\" will remove it.\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    Object.keys(relative).forEach(function(k) {\n      if (k !== 'protocol')\n        result[k] = relative[k];\n    });\n\n    //urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] &&\n        result.hostname && !result.pathname) {\n      result.path = result.pathname = '/';\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    // if it's a known url protocol, then changing\n    // the protocol does weird things\n    // first, if it's not file:, then we MUST have a host,\n    // and if there was a path\n    // to begin with, then we MUST have a path.\n    // if it is file:, then the host is dropped,\n    // because that's known to be hostless.\n    // anything else is assumed to be absolute.\n    if (!slashedProtocol[relative.protocol]) {\n      Object.keys(relative).forEach(function(k) {\n        result[k] = relative[k];\n      });\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift()));\n      if (!relative.host) relative.host = '';\n      if (!relative.hostname) relative.hostname = '';\n      if (relPath[0] !== '') relPath.unshift('');\n      if (relPath.length < 2) relPath.unshift('');\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n      isRelAbs = (\n          relative.host ||\n          relative.pathname && relative.pathname.charAt(0) === '/'\n      ),\n      mustEndAbs = (isRelAbs || isSourceAbs ||\n                    (result.host && relative.pathname)),\n      removeAllDots = mustEndAbs,\n      srcPath = result.pathname && result.pathname.split('/') || [],\n      relPath = relative.pathname && relative.pathname.split('/') || [],\n      psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  // if the url is a non-slashed url, then relative\n  // links like ../.. should be able\n  // to crawl up to the hostname, as well.  This is strange.\n  // result.protocol has already been set by now.\n  // Later on, put the first path part into the host field.\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') srcPath[0] = result.host;\n      else srcPath.unshift(result.host);\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') relPath[0] = relative.host;\n        else relPath.unshift(relative.host);\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = (relative.host || relative.host === '') ?\n                  relative.host : result.host;\n    result.hostname = (relative.hostname || relative.hostname === '') ?\n                      relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    // it's relative\n    // throw away the existing file, and take the new path instead.\n    if (!srcPath) srcPath = [];\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (!isNullOrUndefined(relative.search)) {\n    // just pull out the search.\n    // like href='?foo'.\n    // Put this after the other two cases because it simplifies the booleans\n    if (psychotic) {\n      result.hostname = result.host = srcPath.shift();\n      //occationaly the auth can get stuck only in host\n      //this especialy happens in cases like\n      //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n      var authInHost = result.host && result.host.indexOf('@') > 0 ?\n                       result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.host = result.hostname = authInHost.shift();\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    //to support http.request\n    if (!isNull(result.pathname) || !isNull(result.search)) {\n      result.path = (result.pathname ? result.pathname : '') +\n                    (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    // no path at all.  easy.\n    // we've already handled the other stuff above.\n    result.pathname = null;\n    //to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  // if a url ENDs in . or .., then it must get a trailing slash.\n  // however, if it ends in anything else non-slashy,\n  // then it must NOT get a trailing slash.\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash = (\n      (result.host || relative.host) && (last === '.' || last === '..') ||\n      last === '');\n\n  // strip single dots, resolve double dots to parent dir\n  // if the path tries to go above the root, `up` ends up > 0\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last == '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' &&\n      (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' ||\n      (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = result.host = isAbsolute ? '' :\n                                    srcPath.length ? srcPath.shift() : '';\n    //occationaly the auth can get stuck only in host\n    //this especialy happens in cases like\n    //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n    var authInHost = result.host && result.host.indexOf('@') > 0 ?\n                     result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.host = result.hostname = authInHost.shift();\n    }\n  }\n\n  mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (!srcPath.length) {\n    result.pathname = null;\n    result.path = null;\n  } else {\n    result.pathname = srcPath.join('/');\n  }\n\n  //to support request.http\n  if (!isNull(result.pathname) || !isNull(result.search)) {\n    result.path = (result.pathname ? result.pathname : '') +\n                  (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function() {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) this.hostname = host;\n};\n\nfunction isString(arg) {\n  return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n  return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n  return  arg == null;\n}\n"
    },
    {
      "id": 3,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/node_modules/punycode/punycode.js",
      "name": "./~/url/~/punycode/punycode.js",
      "index": 3,
      "index2": 1,
      "size": 14649,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/url.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/url.js",
          "module": "./~/url/url.js",
          "moduleName": "./~/url/url.js",
          "type": "cjs require",
          "userRequest": "punycode",
          "loc": "22:15-34"
        }
      ],
      "source": "/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n"
    },
    {
      "id": 4,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/webpack/buildin/module.js",
      "name": "(webpack)/buildin/module.js",
      "index": 4,
      "index2": 0,
      "size": 251,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/node_modules/punycode/punycode.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 3,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/node_modules/punycode/punycode.js",
          "module": "./~/url/~/punycode/punycode.js",
          "moduleName": "./~/url/~/punycode/punycode.js",
          "type": "cjs require",
          "userRequest": "module",
          "loc": "1:0-69"
        },
        {
          "moduleId": 43,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/node_modules/json3/lib/json3.js",
          "module": "./~/sockjs-client/~/json3/lib/json3.js",
          "moduleName": "./~/sockjs-client/~/json3/lib/json3.js",
          "type": "cjs require",
          "userRequest": "module",
          "loc": "1:0-72"
        }
      ],
      "source": "module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n"
    },
    {
      "id": 5,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/index.js",
      "name": "./~/querystring/index.js",
      "index": 5,
      "index2": 4,
      "size": 127,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/url.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 2,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url/url.js",
          "module": "./~/url/url.js",
          "moduleName": "./~/url/url.js",
          "type": "cjs require",
          "userRequest": "querystring",
          "loc": "94:18-40"
        }
      ],
      "source": "'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n"
    },
    {
      "id": 6,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/decode.js",
      "name": "./~/querystring/decode.js",
      "index": 6,
      "index2": 2,
      "size": 2399,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 5,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/index.js",
          "module": "./~/querystring/index.js",
          "moduleName": "./~/querystring/index.js",
          "type": "cjs require",
          "userRequest": "./decode",
          "loc": "3:33-52"
        }
      ],
      "source": "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n  sep = sep || '&';\n  eq = eq || '=';\n  var obj = {};\n\n  if (typeof qs !== 'string' || qs.length === 0) {\n    return obj;\n  }\n\n  var regexp = /\\+/g;\n  qs = qs.split(sep);\n\n  var maxKeys = 1000;\n  if (options && typeof options.maxKeys === 'number') {\n    maxKeys = options.maxKeys;\n  }\n\n  var len = qs.length;\n  // maxKeys <= 0 means that we should not limit keys count\n  if (maxKeys > 0 && len > maxKeys) {\n    len = maxKeys;\n  }\n\n  for (var i = 0; i < len; ++i) {\n    var x = qs[i].replace(regexp, '%20'),\n        idx = x.indexOf(eq),\n        kstr, vstr, k, v;\n\n    if (idx >= 0) {\n      kstr = x.substr(0, idx);\n      vstr = x.substr(idx + 1);\n    } else {\n      kstr = x;\n      vstr = '';\n    }\n\n    k = decodeURIComponent(kstr);\n    v = decodeURIComponent(vstr);\n\n    if (!hasOwnProperty(obj, k)) {\n      obj[k] = v;\n    } else if (Array.isArray(obj[k])) {\n      obj[k].push(v);\n    } else {\n      obj[k] = [obj[k], v];\n    }\n  }\n\n  return obj;\n};\n"
    },
    {
      "id": 7,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/encode.js",
      "name": "./~/querystring/encode.js",
      "index": 7,
      "index2": 3,
      "size": 2090,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 5,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystring/index.js",
          "module": "./~/querystring/index.js",
          "moduleName": "./~/querystring/index.js",
          "type": "cjs require",
          "userRequest": "./encode",
          "loc": "4:37-56"
        }
      ],
      "source": "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n  switch (typeof v) {\n    case 'string':\n      return v;\n\n    case 'boolean':\n      return v ? 'true' : 'false';\n\n    case 'number':\n      return isFinite(v) ? v : '';\n\n    default:\n      return '';\n  }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n  sep = sep || '&';\n  eq = eq || '=';\n  if (obj === null) {\n    obj = undefined;\n  }\n\n  if (typeof obj === 'object') {\n    return Object.keys(obj).map(function(k) {\n      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n      if (Array.isArray(obj[k])) {\n        return obj[k].map(function(v) {\n          return ks + encodeURIComponent(stringifyPrimitive(v));\n        }).join(sep);\n      } else {\n        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n      }\n    }).join(sep);\n\n  }\n\n  if (!name) return '';\n  return encodeURIComponent(stringifyPrimitive(name)) + eq +\n         encodeURIComponent(stringifyPrimitive(obj));\n};\n"
    },
    {
      "id": 8,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/entry.js",
      "name": "./~/sockjs-client/lib/entry.js",
      "index": 8,
      "index2": 68,
      "size": 244,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 1,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
          "module": "./~/webpack-dev-server/client?http://localhost:8081",
          "moduleName": "./~/webpack-dev-server/client?http://localhost:8081",
          "type": "cjs require",
          "userRequest": "sockjs-client",
          "loc": "2:13-37"
        }
      ],
      "source": "'use strict';\n\nvar transportList = require('./transport-list');\n\nmodule.exports = require('./main')(transportList);\n\n// TODO can't get rid of this until all servers do\nif ('_sockjs_onload' in global) {\n  setTimeout(global._sockjs_onload, 1);\n}\n"
    },
    {
      "id": 9,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "name": "./~/sockjs-client/lib/transport-list.js",
      "index": 9,
      "index2": 51,
      "size": 613,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/entry.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 8,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/entry.js",
          "module": "./~/sockjs-client/lib/entry.js",
          "moduleName": "./~/sockjs-client/lib/entry.js",
          "type": "cjs require",
          "userRequest": "./transport-list",
          "loc": "3:20-47"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = [\n  // streaming transports\n  require('./transport/websocket')\n, require('./transport/xhr-streaming')\n, require('./transport/xdr-streaming')\n, require('./transport/eventsource')\n, require('./transport/lib/iframe-wrap')(require('./transport/eventsource'))\n\n  // polling transports\n, require('./transport/htmlfile')\n, require('./transport/lib/iframe-wrap')(require('./transport/htmlfile'))\n, require('./transport/xhr-polling')\n, require('./transport/xdr-polling')\n, require('./transport/lib/iframe-wrap')(require('./transport/xhr-polling'))\n, require('./transport/jsonp-polling')\n];\n"
    },
    {
      "id": 10,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
      "name": "./~/sockjs-client/lib/transport/websocket.js",
      "index": 10,
      "index2": 21,
      "size": 2683,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/websocket",
          "loc": "5:2-34"
        }
      ],
      "source": "'use strict';\n\nvar utils = require('../utils/event')\n  , urlUtils = require('../utils/url')\n  , inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  , WebsocketDriver = require('./driver/websocket')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:websocket');\n}\n\nfunction WebSocketTransport(transUrl) {\n  if (!WebSocketTransport.enabled()) {\n    throw new Error('Transport created when disabled');\n  }\n\n  EventEmitter.call(this);\n  debug('constructor', transUrl);\n\n  var self = this;\n  var url = urlUtils.addPath(transUrl, '/websocket');\n  if (url.slice(0, 5) === 'https') {\n    url = 'wss' + url.slice(5);\n  } else {\n    url = 'ws' + url.slice(4);\n  }\n  this.url = url;\n\n  this.ws = new WebsocketDriver(this.url);\n  this.ws.onmessage = function(e) {\n    debug('message event', e.data);\n    self.emit('message', e.data);\n  };\n  // Firefox has an interesting bug. If a websocket connection is\n  // created after onunload, it stays alive even when user\n  // navigates away from the page. In such situation let's lie -\n  // let's not open the ws connection at all. See:\n  // https://github.com/sockjs/sockjs-client/issues/28\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=696085\n  this.unloadRef = utils.unloadAdd(function() {\n    debug('unload');\n    self.ws.close();\n  });\n  this.ws.onclose = function(e) {\n    debug('close event', e.code, e.reason);\n    self.emit('close', e.code, e.reason);\n    self._cleanup();\n  };\n  this.ws.onerror = function(e) {\n    debug('error event', e);\n    self.emit('close', 1006, 'WebSocket connection broken');\n    self._cleanup();\n  };\n}\n\ninherits(WebSocketTransport, EventEmitter);\n\nWebSocketTransport.prototype.send = function(data) {\n  var msg = '[' + data + ']';\n  debug('send', msg);\n  this.ws.send(msg);\n};\n\nWebSocketTransport.prototype.close = function() {\n  debug('close');\n  if (this.ws) {\n    this.ws.close();\n  }\n  this._cleanup();\n};\n\nWebSocketTransport.prototype._cleanup = function() {\n  debug('_cleanup');\n  var ws = this.ws;\n  if (ws) {\n    ws.onmessage = ws.onclose = ws.onerror = null;\n  }\n  utils.unloadDel(this.unloadRef);\n  this.unloadRef = this.ws = null;\n  this.removeAllListeners();\n};\n\nWebSocketTransport.enabled = function() {\n  debug('enabled');\n  return !!WebsocketDriver;\n};\nWebSocketTransport.transportName = 'websocket';\n\n// In theory, ws should require 1 round trip. But in chrome, this is\n// not very stable over SSL. Most likely a ws connection requires a\n// separate SSL connection, in which case 2 round trips are an\n// absolute minumum.\nWebSocketTransport.roundTrips = 2;\n\nmodule.exports = WebSocketTransport;\n"
    },
    {
      "id": 11,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/event.js",
      "name": "./~/sockjs-client/lib/utils/event.js",
      "index": 11,
      "index2": 8,
      "size": 2000,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
          "module": "./~/sockjs-client/lib/transport/websocket.js",
          "moduleName": "./~/sockjs-client/lib/transport/websocket.js",
          "type": "cjs require",
          "userRequest": "../utils/event",
          "loc": "3:12-37"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "module": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "type": "cjs require",
          "userRequest": "../../utils/event",
          "loc": "5:12-40"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
          "module": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "type": "cjs require",
          "userRequest": "../../utils/event",
          "loc": "5:17-45"
        },
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "../utils/event",
          "loc": "17:17-42"
        },
        {
          "moduleId": 46,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/iframe.js",
          "module": "./~/sockjs-client/lib/utils/iframe.js",
          "moduleName": "./~/sockjs-client/lib/utils/iframe.js",
          "type": "cjs require",
          "userRequest": "./event",
          "loc": "3:17-35"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/event",
          "loc": "11:17-41"
        },
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "./utils/event",
          "loc": "6:12-36"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "./utils/event",
          "loc": "4:17-41"
        }
      ],
      "source": "'use strict';\n\nvar random = require('./random');\n\nvar onUnload = {}\n  , afterUnload = false\n    // detect google chrome packaged apps because they don't allow the 'unload' event\n  , isChromePackagedApp = global.chrome && global.chrome.app && global.chrome.app.runtime\n  ;\n\nmodule.exports = {\n  attachEvent: function(event, listener) {\n    if (typeof global.addEventListener !== 'undefined') {\n      global.addEventListener(event, listener, false);\n    } else if (global.document && global.attachEvent) {\n      // IE quirks.\n      // According to: http://stevesouders.com/misc/test-postmessage.php\n      // the message gets delivered only to 'document', not 'window'.\n      global.document.attachEvent('on' + event, listener);\n      // I get 'window' for ie8.\n      global.attachEvent('on' + event, listener);\n    }\n  }\n\n, detachEvent: function(event, listener) {\n    if (typeof global.addEventListener !== 'undefined') {\n      global.removeEventListener(event, listener, false);\n    } else if (global.document && global.detachEvent) {\n      global.document.detachEvent('on' + event, listener);\n      global.detachEvent('on' + event, listener);\n    }\n  }\n\n, unloadAdd: function(listener) {\n    if (isChromePackagedApp) {\n      return null;\n    }\n\n    var ref = random.string(8);\n    onUnload[ref] = listener;\n    if (afterUnload) {\n      setTimeout(this.triggerUnloadCallbacks, 0);\n    }\n    return ref;\n  }\n\n, unloadDel: function(ref) {\n    if (ref in onUnload) {\n      delete onUnload[ref];\n    }\n  }\n\n, triggerUnloadCallbacks: function() {\n    for (var ref in onUnload) {\n      onUnload[ref]();\n      delete onUnload[ref];\n    }\n  }\n};\n\nvar unloadTriggered = function() {\n  if (afterUnload) {\n    return;\n  }\n  afterUnload = true;\n  module.exports.triggerUnloadCallbacks();\n};\n\n// 'unload' alone is not reliable in opera within an iframe, but we\n// can't use `beforeunload` as IE fires it on javascript: links.\nif (!isChromePackagedApp) {\n  module.exports.attachEvent('unload', unloadTriggered);\n}\n"
    },
    {
      "id": 12,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/random.js",
      "name": "./~/sockjs-client/lib/utils/random.js",
      "index": 12,
      "index2": 7,
      "size": 746,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 11,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/event.js",
          "module": "./~/sockjs-client/lib/utils/event.js",
          "moduleName": "./~/sockjs-client/lib/utils/event.js",
          "type": "cjs require",
          "userRequest": "./random",
          "loc": "3:13-32"
        },
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "../utils/random",
          "loc": "18:13-39"
        },
        {
          "moduleId": 49,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "type": "cjs require",
          "userRequest": "../../utils/random",
          "loc": "7:13-42"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "../../utils/random",
          "loc": "4:13-42"
        },
        {
          "moduleId": 54,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/sender/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/jsonp.js",
          "type": "cjs require",
          "userRequest": "../../utils/random",
          "loc": "3:13-42"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/random",
          "loc": "8:13-38"
        }
      ],
      "source": "'use strict';\n\n/* global crypto:true */\nvar crypto = require('crypto');\n\n// This string has length 32, a power of 2, so the modulus doesn't introduce a\n// bias.\nvar _randomStringChars = 'abcdefghijklmnopqrstuvwxyz012345';\nmodule.exports = {\n  string: function(length) {\n    var max = _randomStringChars.length;\n    var bytes = crypto.randomBytes(length);\n    var ret = [];\n    for (var i = 0; i < length; i++) {\n      ret.push(_randomStringChars.substr(bytes[i] % max, 1));\n    }\n    return ret.join('');\n  }\n\n, number: function(max) {\n    return Math.floor(Math.random() * max);\n  }\n\n, numberString: function(max) {\n    var t = ('' + (max - 1)).length;\n    var p = new Array(t + 1).join('0');\n    return (p + this.number(max)).slice(-t);\n  }\n};\n"
    },
    {
      "id": 13,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/browser-crypto.js",
      "name": "./~/sockjs-client/lib/utils/browser-crypto.js",
      "index": 13,
      "index2": 6,
      "size": 438,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/random.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 12,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/random.js",
          "module": "./~/sockjs-client/lib/utils/random.js",
          "moduleName": "./~/sockjs-client/lib/utils/random.js",
          "type": "cjs require",
          "userRequest": "crypto",
          "loc": "4:13-30"
        }
      ],
      "source": "'use strict';\n\nif (global.crypto && global.crypto.getRandomValues) {\n  module.exports.randomBytes = function(length) {\n    var bytes = new Uint8Array(length);\n    global.crypto.getRandomValues(bytes);\n    return bytes;\n  };\n} else {\n  module.exports.randomBytes = function(length) {\n    var bytes = new Array(length);\n    for (var i = 0; i < length; i++) {\n      bytes[i] = Math.floor(Math.random() * 256);\n    }\n    return bytes;\n  };\n}\n"
    },
    {
      "id": 14,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/url.js",
      "name": "./~/sockjs-client/lib/utils/url.js",
      "index": 14,
      "index2": 16,
      "size": 975,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
          "module": "./~/sockjs-client/lib/transport/websocket.js",
          "moduleName": "./~/sockjs-client/lib/transport/websocket.js",
          "type": "cjs require",
          "userRequest": "../utils/url",
          "loc": "4:15-38"
        },
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/ajax-based.js",
          "module": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "4:15-41"
        },
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
          "module": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "4:15-41"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "module": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "6:15-41"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
          "module": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "7:15-41"
        },
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "../utils/url",
          "loc": "15:15-38"
        },
        {
          "moduleId": 49,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "5:15-41"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "6:15-41"
        },
        {
          "moduleId": 54,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/sender/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/jsonp.js",
          "type": "cjs require",
          "userRequest": "../../utils/url",
          "loc": "4:15-41"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/url",
          "loc": "10:15-37"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./utils/url",
          "loc": "5:15-37"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "./utils/url",
          "loc": "3:15-37"
        }
      ],
      "source": "'use strict';\n\nvar URL = require('url-parse');\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:utils:url');\n}\n\nmodule.exports = {\n  getOrigin: function(url) {\n    if (!url) {\n      return null;\n    }\n\n    var p = new URL(url);\n    if (p.protocol === 'file:') {\n      return null;\n    }\n\n    var port = p.port;\n    if (!port) {\n      port = (p.protocol === 'https:') ? '443' : '80';\n    }\n\n    return p.protocol + '//' + p.hostname + ':' + port;\n  }\n\n, isOriginEqual: function(a, b) {\n    var res = this.getOrigin(a) === this.getOrigin(b);\n    debug('same', a, b, res);\n    return res;\n  }\n\n, isSchemeEqual: function(a, b) {\n    return (a.split(':')[0] === b.split(':')[0]);\n  }\n\n, addPath: function (url, path) {\n    var qs = url.split('?');\n    return qs[0] + path + (qs[1] ? '?' + qs[1] : '');\n  }\n\n, addQuery: function (url, q) {\n    return url + (url.indexOf('?') === -1 ? ('?' + q) : ('&' + q));\n  }\n};\n"
    },
    {
      "id": 15,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
      "name": "./~/url-parse/index.js",
      "index": 15,
      "index2": 10,
      "size": 6546,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 14,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/url.js",
          "module": "./~/sockjs-client/lib/utils/url.js",
          "moduleName": "./~/sockjs-client/lib/utils/url.js",
          "type": "cjs require",
          "userRequest": "url-parse",
          "loc": "3:10-30"
        },
        {
          "moduleId": 17,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/lolcation.js",
          "module": "./~/url-parse/lolcation.js",
          "moduleName": "./~/url-parse/lolcation.js",
          "type": "cjs require",
          "userRequest": "./",
          "loc": "28:15-28"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "url-parse",
          "loc": "5:10-30"
        }
      ],
      "source": "'use strict';\n\nvar required = require('requires-port')\n  , lolcation = require('./lolcation')\n  , qs = require('querystringify')\n  , relativere = /^\\/(?!\\/)/;\n\n/**\n * These are the parse instructions for the URL parsers, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n *    indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n *    the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar instructions = [\n  ['#', 'hash'],                        // Extract from the back.\n  ['?', 'query'],                       // Extract from the back.\n  ['//', 'protocol', 2, 1, 1],          // Extract from the front.\n  ['/', 'pathname'],                    // Extract from the back.\n  ['@', 'auth', 1],                     // Extract from the front.\n  [NaN, 'host', undefined, 1, 1],       // Set left over value.\n  [/\\:(\\d+)$/, 'port'],                 // RegExp the back.\n  [NaN, 'hostname', undefined, 1, 1]    // Set left over.\n];\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my CDO.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Boolean|function} parser Parser for the query string.\n * @param {Object} location Location defaults for relative paths.\n * @api public\n */\nfunction URL(address, location, parser) {\n  if (!(this instanceof URL)) {\n    return new URL(address, location, parser);\n  }\n\n  var relative = relativere.test(address)\n    , parse, instruction, index, key\n    , type = typeof location\n    , url = this\n    , i = 0;\n\n  //\n  // The following if statements allows this module two have compatibility with\n  // 2 different API:\n  //\n  // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n  //    where the boolean indicates that the query string should also be parsed.\n  //\n  // 2. The `URL` interface of the browser which accepts a URL, object as\n  //    arguments. The supplied object will be used as default values / fall-back\n  //    for relative paths.\n  //\n  if ('object' !== type && 'string' !== type) {\n    parser = location;\n    location = null;\n  }\n\n  if (parser && 'function' !== typeof parser) {\n    parser = qs.parse;\n  }\n\n  location = lolcation(location);\n\n  for (; i < instructions.length; i++) {\n    instruction = instructions[i];\n    parse = instruction[0];\n    key = instruction[1];\n\n    if (parse !== parse) {\n      url[key] = address;\n    } else if ('string' === typeof parse) {\n      if (~(index = address.indexOf(parse))) {\n        if ('number' === typeof instruction[2]) {\n          url[key] = address.slice(0, index);\n          address = address.slice(index + instruction[2]);\n        } else {\n          url[key] = address.slice(index);\n          address = address.slice(0, index);\n        }\n      }\n    } else if (index = parse.exec(address)) {\n      url[key] = index[1];\n      address = address.slice(0, address.length - index[0].length);\n    }\n\n    url[key] = url[key] || (instruction[3] || ('port' === key && relative) ? location[key] || '' : '');\n\n    //\n    // Hostname, host and protocol should be lowercased so they can be used to\n    // create a proper `origin`.\n    //\n    if (instruction[4]) {\n      url[key] = url[key].toLowerCase();\n    }\n  }\n\n  //\n  // Also parse the supplied query string in to an object. If we're supplied\n  // with a custom parser as function use that instead of the default build-in\n  // parser.\n  //\n  if (parser) url.query = parser(url.query);\n\n  //\n  // We should not add port numbers if they are already the default port number\n  // for a given protocol. As the host also contains the port number we're going\n  // override it with the hostname which contains no port number.\n  //\n  if (!required(url.port, url.protocol)) {\n    url.host = url.hostname;\n    url.port = '';\n  }\n\n  //\n  // Parse down the `auth` for the username and password.\n  //\n  url.username = url.password = '';\n  if (url.auth) {\n    instruction = url.auth.split(':');\n    url.username = instruction[0] || '';\n    url.password = instruction[1] || '';\n  }\n\n  //\n  // The href is just the compiled result.\n  //\n  url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} prop Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @returns {URL}\n * @api public\n */\nURL.prototype.set = function set(part, value, fn) {\n  var url = this;\n\n  if ('query' === part) {\n    if ('string' === typeof value && value.length) {\n      value = (fn || qs.parse)(value);\n    }\n\n    url[part] = value;\n  } else if ('port' === part) {\n    url[part] = value;\n\n    if (!required(value, url.protocol)) {\n      url.host = url.hostname;\n      url[part] = '';\n    } else if (value) {\n      url.host = url.hostname +':'+ value;\n    }\n  } else if ('hostname' === part) {\n    url[part] = value;\n\n    if (url.port) value += ':'+ url.port;\n    url.host = value;\n  } else if ('host' === part) {\n    url[part] = value;\n\n    if (/\\:\\d+/.test(value)) {\n      value = value.split(':');\n      url.hostname = value[0];\n      url.port = value[1];\n    }\n  } else {\n    url[part] = value;\n  }\n\n  url.href = url.toString();\n  return url;\n};\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String}\n * @api public\n */\nURL.prototype.toString = function toString(stringify) {\n  if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n  var query\n    , url = this\n    , result = url.protocol +'//';\n\n  if (url.username) {\n    result += url.username;\n    if (url.password) result += ':'+ url.password;\n    result += '@';\n  }\n\n  result += url.hostname;\n  if (url.port) result += ':'+ url.port;\n\n  result += url.pathname;\n\n  query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n  if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n  if (url.hash) result += url.hash;\n\n  return result;\n};\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others.\n//\nURL.qs = qs;\nURL.location = lolcation;\nmodule.exports = URL;\n"
    },
    {
      "id": 16,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/requires-port/index.js",
      "name": "./~/requires-port/index.js",
      "index": 16,
      "index2": 9,
      "size": 753,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
          "module": "./~/url-parse/index.js",
          "moduleName": "./~/url-parse/index.js",
          "type": "cjs require",
          "userRequest": "requires-port",
          "loc": "3:15-39"
        }
      ],
      "source": "'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n  protocol = protocol.split(':')[0];\n  port = +port;\n\n  if (!port) return false;\n\n  switch (protocol) {\n    case 'http':\n    case 'ws':\n    return port !== 80;\n\n    case 'https':\n    case 'wss':\n    return port !== 443;\n\n    case 'ftp':\n    return port !== 21;\n\n    case 'gopher':\n    return port !== 70;\n\n    case 'file':\n    return false;\n  }\n\n  return port !== 0;\n};\n"
    },
    {
      "id": 17,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/lolcation.js",
      "name": "./~/url-parse/lolcation.js",
      "index": 17,
      "index2": 11,
      "size": 1397,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
          "module": "./~/url-parse/index.js",
          "moduleName": "./~/url-parse/index.js",
          "type": "cjs require",
          "userRequest": "./lolcation",
          "loc": "4:16-38"
        }
      ],
      "source": "'use strict';\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as the a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 }\n  , URL;\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @api public\n */\nmodule.exports = function lolcation(loc) {\n  loc = loc || global.location || {};\n  URL = URL || require('./');\n\n  var finaldestination = {}\n    , type = typeof loc\n    , key;\n\n  if ('blob:' === loc.protocol) {\n    finaldestination = new URL(unescape(loc.pathname), {});\n  } else if ('string' === type) {\n    finaldestination = new URL(loc, {});\n    for (key in ignore) delete finaldestination[key];\n  } else if ('object' === type) for (key in loc) {\n    if (key in ignore) continue;\n    finaldestination[key] = loc[key];\n  }\n\n  return finaldestination;\n};\n"
    },
    {
      "id": 18,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/querystringify/index.js",
      "name": "./~/querystringify/index.js",
      "index": 18,
      "index2": 12,
      "size": 1301,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 15,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-parse/index.js",
          "module": "./~/url-parse/index.js",
          "moduleName": "./~/url-parse/index.js",
          "type": "cjs require",
          "userRequest": "querystringify",
          "loc": "5:9-34"
        }
      ],
      "source": "'use strict';\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n  var parser = /([^=?&]+)=([^&]*)/g\n    , result = {}\n    , part;\n\n  //\n  // Little nifty parsing hack, leverage the fact that RegExp.exec increments\n  // the lastIndex property so we can continue executing this loop until we've\n  // parsed all results.\n  //\n  for (;\n    part = parser.exec(query);\n    result[decodeURIComponent(part[1])] = decodeURIComponent(part[2])\n  );\n\n  return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n  prefix = prefix || '';\n\n  var pairs = [];\n\n  //\n  // Optionally prefix with a '?' if needed\n  //\n  if ('string' !== typeof prefix) prefix = '?';\n\n  for (var key in obj) {\n    if (has.call(obj, key)) {\n      pairs.push(encodeURIComponent(key) +'='+ encodeURIComponent(obj[key]));\n    }\n  }\n\n  return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n"
    },
    {
      "id": 19,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/debug/browser.js",
      "name": "./~/debug/browser.js",
      "index": 19,
      "index2": 15,
      "size": 3763,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
          "module": "./~/sockjs-client/lib/transport/websocket.js",
          "moduleName": "./~/sockjs-client/lib/transport/websocket.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "12:10-26"
        },
        {
          "moduleId": 14,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/url.js",
          "module": "./~/sockjs-client/lib/utils/url.js",
          "moduleName": "./~/sockjs-client/lib/utils/url.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "7:10-26"
        },
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/ajax-based.js",
          "module": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "10:10-26"
        },
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
          "module": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "11:10-26"
        },
        {
          "moduleId": 29,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/buffered-sender.js",
          "module": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "9:10-26"
        },
        {
          "moduleId": 30,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/polling.js",
          "module": "./~/sockjs-client/lib/transport/lib/polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/polling.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "9:10-26"
        },
        {
          "moduleId": 31,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/xhr.js",
          "module": "./~/sockjs-client/lib/transport/receiver/xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/xhr.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "9:10-26"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "module": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "12:10-26"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
          "module": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "12:10-26"
        },
        {
          "moduleId": 39,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "10:10-26"
        },
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "23:10-26"
        },
        {
          "moduleId": 46,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/iframe.js",
          "module": "./~/sockjs-client/lib/utils/iframe.js",
          "moduleName": "./~/sockjs-client/lib/utils/iframe.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "10:10-26"
        },
        {
          "moduleId": 49,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "12:10-26"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "13:10-26"
        },
        {
          "moduleId": 54,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/sender/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/jsonp.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "9:10-26"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "27:15-31"
        },
        {
          "moduleId": 58,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/transport.js",
          "module": "./~/sockjs-client/lib/utils/transport.js",
          "moduleName": "./~/sockjs-client/lib/utils/transport.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "5:10-26"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "16:10-26"
        },
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "13:10-26"
        },
        {
          "moduleId": 68,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-ajax.js",
          "module": "./~/sockjs-client/lib/info-ajax.js",
          "moduleName": "./~/sockjs-client/lib/info-ajax.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "11:10-26"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "debug",
          "loc": "14:10-26"
        }
      ],
      "source": "\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n               && 'undefined' != typeof chrome.storage\n                  ? chrome.storage.local\n                  : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n  'lightseagreen',\n  'forestgreen',\n  'goldenrod',\n  'dodgerblue',\n  'darkorchid',\n  'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n  // is webkit? http://stackoverflow.com/a/16459606/376773\n  return ('WebkitAppearance' in document.documentElement.style) ||\n    // is firebug? http://stackoverflow.com/a/398120/376773\n    (window.console && (console.firebug || (console.exception && console.table))) ||\n    // is firefox >= v31?\n    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n    (navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n  return JSON.stringify(v);\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs() {\n  var args = arguments;\n  var useColors = this.useColors;\n\n  args[0] = (useColors ? '%c' : '')\n    + this.namespace\n    + (useColors ? ' %c' : ' ')\n    + args[0]\n    + (useColors ? '%c ' : ' ')\n    + '+' + exports.humanize(this.diff);\n\n  if (!useColors) return args;\n\n  var c = 'color: ' + this.color;\n  args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));\n\n  // the final \"%c\" is somewhat tricky, because there could be other\n  // arguments passed either before or after the %c, so we need to\n  // figure out the correct index to insert the CSS into\n  var index = 0;\n  var lastC = 0;\n  args[0].replace(/%[a-z%]/g, function(match) {\n    if ('%%' === match) return;\n    index++;\n    if ('%c' === match) {\n      // we only are interested in the *last* %c\n      // (the user may have provided their own)\n      lastC = index;\n    }\n  });\n\n  args.splice(lastC, 0, c);\n  return args;\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n  // this hackery is required for IE8/9, where\n  // the `console.log` function doesn't have 'apply'\n  return 'object' === typeof console\n    && console.log\n    && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n  try {\n    if (null == namespaces) {\n      exports.storage.removeItem('debug');\n    } else {\n      exports.storage.debug = namespaces;\n    }\n  } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n  var r;\n  try {\n    r = exports.storage.debug;\n  } catch(e) {}\n  return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage(){\n  try {\n    return window.localStorage;\n  } catch (e) {}\n}\n"
    },
    {
      "id": 20,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/debug/debug.js",
      "name": "./~/debug/debug.js",
      "index": 20,
      "index2": 14,
      "size": 4096,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/debug/browser.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 19,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/debug/browser.js",
          "module": "./~/debug/browser.js",
          "moduleName": "./~/debug/browser.js",
          "type": "cjs require",
          "userRequest": "./debug",
          "loc": "8:27-45"
        }
      ],
      "source": "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lowercased letter, i.e. \"n\".\n */\n\nexports.formatters = {};\n\n/**\n * Previously assigned color.\n */\n\nvar prevColor = 0;\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n *\n * @return {Number}\n * @api private\n */\n\nfunction selectColor() {\n  return exports.colors[prevColor++ % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction debug(namespace) {\n\n  // define the `disabled` version\n  function disabled() {\n  }\n  disabled.enabled = false;\n\n  // define the `enabled` version\n  function enabled() {\n\n    var self = enabled;\n\n    // set `diff` timestamp\n    var curr = +new Date();\n    var ms = curr - (prevTime || curr);\n    self.diff = ms;\n    self.prev = prevTime;\n    self.curr = curr;\n    prevTime = curr;\n\n    // add the `color` if not set\n    if (null == self.useColors) self.useColors = exports.useColors();\n    if (null == self.color && self.useColors) self.color = selectColor();\n\n    var args = Array.prototype.slice.call(arguments);\n\n    args[0] = exports.coerce(args[0]);\n\n    if ('string' !== typeof args[0]) {\n      // anything else let's inspect with %o\n      args = ['%o'].concat(args);\n    }\n\n    // apply any `formatters` transformations\n    var index = 0;\n    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {\n      // if we encounter an escaped % then don't increase the array index\n      if (match === '%%') return match;\n      index++;\n      var formatter = exports.formatters[format];\n      if ('function' === typeof formatter) {\n        var val = args[index];\n        match = formatter.call(self, val);\n\n        // now we need to remove `args[index]` since it's inlined in the `format`\n        args.splice(index, 1);\n        index--;\n      }\n      return match;\n    });\n\n    if ('function' === typeof exports.formatArgs) {\n      args = exports.formatArgs.apply(self, args);\n    }\n    var logFn = enabled.log || exports.log || console.log.bind(console);\n    logFn.apply(self, args);\n  }\n  enabled.enabled = true;\n\n  var fn = exports.enabled(namespace) ? enabled : disabled;\n\n  fn.namespace = namespace;\n\n  return fn;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n  exports.save(namespaces);\n\n  var split = (namespaces || '').split(/[\\s,]+/);\n  var len = split.length;\n\n  for (var i = 0; i < len; i++) {\n    if (!split[i]) continue; // ignore empty strings\n    namespaces = split[i].replace(/\\*/g, '.*?');\n    if (namespaces[0] === '-') {\n      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n    } else {\n      exports.names.push(new RegExp('^' + namespaces + '$'));\n    }\n  }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n  exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n  var i, len;\n  for (i = 0, len = exports.skips.length; i < len; i++) {\n    if (exports.skips[i].test(name)) {\n      return false;\n    }\n  }\n  for (i = 0, len = exports.names.length; i < len; i++) {\n    if (exports.names[i].test(name)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n  if (val instanceof Error) return val.stack || val.message;\n  return val;\n}\n"
    },
    {
      "id": 21,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/ms/index.js",
      "name": "./~/ms/index.js",
      "index": 21,
      "index2": 13,
      "size": 2332,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/debug/debug.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 20,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/debug/debug.js",
          "module": "./~/debug/debug.js",
          "moduleName": "./~/debug/debug.js",
          "type": "cjs require",
          "userRequest": "ms",
          "loc": "14:19-32"
        }
      ],
      "source": "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} options\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options){\n  options = options || {};\n  if ('string' == typeof val) return parse(val);\n  return options.long\n    ? long(val)\n    : short(val);\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = '' + str;\n  if (str.length > 10000) return;\n  var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n  if (!match) return;\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction short(ms) {\n  if (ms >= d) return Math.round(ms / d) + 'd';\n  if (ms >= h) return Math.round(ms / h) + 'h';\n  if (ms >= m) return Math.round(ms / m) + 'm';\n  if (ms >= s) return Math.round(ms / s) + 's';\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction long(ms) {\n  return plural(ms, d, 'day')\n    || plural(ms, h, 'hour')\n    || plural(ms, m, 'minute')\n    || plural(ms, s, 'second')\n    || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n  if (ms < n) return;\n  if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;\n  return Math.ceil(ms / n) + ' ' + name + 's';\n}\n"
    },
    {
      "id": 22,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/inherits/inherits_browser.js",
      "name": "./~/inherits/inherits_browser.js",
      "index": 22,
      "index2": 17,
      "size": 672,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
          "module": "./~/sockjs-client/lib/transport/websocket.js",
          "moduleName": "./~/sockjs-client/lib/transport/websocket.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "5:15-34"
        },
        {
          "moduleId": 23,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/emitter.js",
          "module": "./~/sockjs-client/lib/event/emitter.js",
          "moduleName": "./~/sockjs-client/lib/event/emitter.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/ajax-based.js",
          "module": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
          "module": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 29,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/buffered-sender.js",
          "module": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 30,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/polling.js",
          "module": "./~/sockjs-client/lib/transport/lib/polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/polling.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 31,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/xhr.js",
          "module": "./~/sockjs-client/lib/transport/receiver/xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/xhr.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 32,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-cors.js",
          "module": "./~/sockjs-client/lib/transport/sender/xhr-cors.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xhr-cors.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "module": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "4:15-34"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-local.js",
          "module": "./~/sockjs-client/lib/transport/sender/xhr-local.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xhr-local.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 36,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
          "module": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "4:15-34"
        },
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/eventsource.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 39,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 41,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "module": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "11:15-34"
        },
        {
          "moduleId": 48,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/htmlfile.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 49,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 50,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 51,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 52,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
          "module": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "11:15-34"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "7:15-34"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "6:15-34"
        },
        {
          "moduleId": 62,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/close.js",
          "module": "./~/sockjs-client/lib/event/close.js",
          "moduleName": "./~/sockjs-client/lib/event/close.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 63,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/trans-message.js",
          "module": "./~/sockjs-client/lib/event/trans-message.js",
          "moduleName": "./~/sockjs-client/lib/event/trans-message.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "4:15-34"
        },
        {
          "moduleId": 65,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-fake.js",
          "module": "./~/sockjs-client/lib/transport/sender/xhr-fake.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xhr-fake.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "4:15-34"
        },
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "4:15-34"
        },
        {
          "moduleId": 67,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe-receiver.js",
          "module": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "3:15-34"
        },
        {
          "moduleId": 68,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-ajax.js",
          "module": "./~/sockjs-client/lib/info-ajax.js",
          "moduleName": "./~/sockjs-client/lib/info-ajax.js",
          "type": "cjs require",
          "userRequest": "inherits",
          "loc": "4:15-34"
        }
      ],
      "source": "if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    ctor.prototype = Object.create(superCtor.prototype, {\n      constructor: {\n        value: ctor,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    var TempCtor = function () {}\n    TempCtor.prototype = superCtor.prototype\n    ctor.prototype = new TempCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n"
    },
    {
      "id": 23,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/emitter.js",
      "name": "./~/sockjs-client/lib/event/emitter.js",
      "index": 23,
      "index2": 19,
      "size": 1109,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
          "module": "./~/sockjs-client/lib/transport/websocket.js",
          "moduleName": "./~/sockjs-client/lib/transport/websocket.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "6:19-36"
        },
        {
          "moduleId": 29,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/buffered-sender.js",
          "module": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "4:19-36"
        },
        {
          "moduleId": 30,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/polling.js",
          "module": "./~/sockjs-client/lib/transport/lib/polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/polling.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "4:19-36"
        },
        {
          "moduleId": 31,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/xhr.js",
          "module": "./~/sockjs-client/lib/transport/receiver/xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/xhr.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "4:19-36"
        },
        {
          "moduleId": 33,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "module": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "moduleName": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "3:19-36"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
          "module": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "3:19-36"
        },
        {
          "moduleId": 39,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "4:19-36"
        },
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "13:19-36"
        },
        {
          "moduleId": 49,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "6:19-36"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "8:19-36"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "3:19-36"
        },
        {
          "moduleId": 65,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-fake.js",
          "module": "./~/sockjs-client/lib/transport/sender/xhr-fake.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xhr-fake.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "3:19-36"
        },
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "3:19-36"
        },
        {
          "moduleId": 67,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe-receiver.js",
          "module": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "4:19-36"
        },
        {
          "moduleId": 68,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-ajax.js",
          "module": "./~/sockjs-client/lib/info-ajax.js",
          "moduleName": "./~/sockjs-client/lib/info-ajax.js",
          "type": "cjs require",
          "userRequest": "events",
          "loc": "3:19-36"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , EventTarget = require('./eventtarget')\n  ;\n\nfunction EventEmitter() {\n  EventTarget.call(this);\n}\n\ninherits(EventEmitter, EventTarget);\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n  if (type) {\n    delete this._listeners[type];\n  } else {\n    this._listeners = {};\n  }\n};\n\nEventEmitter.prototype.once = function(type, listener) {\n  var self = this\n    , fired = false;\n\n  function g() {\n    self.removeListener(type, g);\n\n    if (!fired) {\n      fired = true;\n      listener.apply(this, arguments);\n    }\n  }\n\n  this.on(type, g);\n};\n\nEventEmitter.prototype.emit = function(type) {\n  var listeners = this._listeners[type];\n  if (!listeners) {\n    return;\n  }\n  var args = Array.prototype.slice.call(arguments, 1);\n  for (var i = 0; i < listeners.length; i++) {\n    listeners[i].apply(this, args);\n  }\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener = EventTarget.prototype.addEventListener;\nEventEmitter.prototype.removeListener = EventTarget.prototype.removeEventListener;\n\nmodule.exports.EventEmitter = EventEmitter;\n"
    },
    {
      "id": 24,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/eventtarget.js",
      "name": "./~/sockjs-client/lib/event/eventtarget.js",
      "index": 24,
      "index2": 18,
      "size": 1748,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 23,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/emitter.js",
          "module": "./~/sockjs-client/lib/event/emitter.js",
          "moduleName": "./~/sockjs-client/lib/event/emitter.js",
          "type": "cjs require",
          "userRequest": "./eventtarget",
          "loc": "4:18-42"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./event/eventtarget",
          "loc": "17:18-48"
        }
      ],
      "source": "'use strict';\n\n/* Simplified implementation of DOM2 EventTarget.\n *   http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget\n */\n\nfunction EventTarget() {\n  this._listeners = {};\n}\n\nEventTarget.prototype.addEventListener = function(eventType, listener) {\n  if (!(eventType in this._listeners)) {\n    this._listeners[eventType] = [];\n  }\n  var arr = this._listeners[eventType];\n  // #4\n  if (arr.indexOf(listener) === -1) {\n    // Make a copy so as not to interfere with a current dispatchEvent.\n    arr = arr.concat([listener]);\n  }\n  this._listeners[eventType] = arr;\n};\n\nEventTarget.prototype.removeEventListener = function(eventType, listener) {\n  var arr = this._listeners[eventType];\n  if (!arr) {\n    return;\n  }\n  var idx = arr.indexOf(listener);\n  if (idx !== -1) {\n    if (arr.length > 1) {\n      // Make a copy so as not to interfere with a current dispatchEvent.\n      this._listeners[eventType] = arr.slice(0, idx).concat(arr.slice(idx + 1));\n    } else {\n      delete this._listeners[eventType];\n    }\n    return;\n  }\n};\n\nEventTarget.prototype.dispatchEvent = function(event) {\n  var t = event.type;\n  var args = Array.prototype.slice.call(arguments, 0);\n  // TODO: This doesn't match the real behavior; per spec, onfoo get\n  // their place in line from the /first/ time they're set from\n  // non-null. Although WebKit bumps it to the end every time it's\n  // set.\n  if (this['on' + t]) {\n    this['on' + t].apply(this, args);\n  }\n  if (t in this._listeners) {\n    // Grab a reference to the listeners list. removeEventListener may alter the list.\n    var listeners = this._listeners[t];\n    for (var i = 0; i < listeners.length; i++) {\n      listeners[i].apply(this, args);\n    }\n  }\n};\n\nmodule.exports = EventTarget;\n"
    },
    {
      "id": 25,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/websocket.js",
      "name": "./~/sockjs-client/lib/transport/browser/websocket.js",
      "index": 25,
      "index2": 20,
      "size": 58,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 10,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/websocket.js",
          "module": "./~/sockjs-client/lib/transport/websocket.js",
          "moduleName": "./~/sockjs-client/lib/transport/websocket.js",
          "type": "cjs require",
          "userRequest": "./driver/websocket",
          "loc": "7:22-51"
        }
      ],
      "source": "module.exports = global.WebSocket || global.MozWebSocket;\n"
    },
    {
      "id": 26,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
      "name": "./~/sockjs-client/lib/transport/xhr-streaming.js",
      "index": 26,
      "index2": 31,
      "size": 1248,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/xhr-streaming",
          "loc": "6:2-38"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , AjaxBasedTransport = require('./lib/ajax-based')\n  , XhrReceiver = require('./receiver/xhr')\n  , XHRCorsObject = require('./sender/xhr-cors')\n  , XHRLocalObject = require('./sender/xhr-local')\n  , browser = require('../utils/browser')\n  ;\n\nfunction XhrStreamingTransport(transUrl) {\n  if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) {\n    throw new Error('Transport created when disabled');\n  }\n  AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XHRCorsObject);\n}\n\ninherits(XhrStreamingTransport, AjaxBasedTransport);\n\nXhrStreamingTransport.enabled = function(info) {\n  if (info.nullOrigin) {\n    return false;\n  }\n  // Opera doesn't support xhr-streaming #60\n  // But it might be able to #92\n  if (browser.isOpera()) {\n    return false;\n  }\n\n  return XHRCorsObject.enabled;\n};\n\nXhrStreamingTransport.transportName = 'xhr-streaming';\nXhrStreamingTransport.roundTrips = 2; // preflight, ajax\n\n// Safari gets confused when a streaming ajax request is started\n// before onload. This causes the load indicator to spin indefinetely.\n// Only require body when used in a browser\nXhrStreamingTransport.needBody = !!global.document;\n\nmodule.exports = XhrStreamingTransport;\n"
    },
    {
      "id": 27,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/ajax-based.js",
      "name": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
      "index": 27,
      "index2": 25,
      "size": 1309,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "type": "cjs require",
          "userRequest": "./lib/ajax-based",
          "loc": "4:25-52"
        },
        {
          "moduleId": 36,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "type": "cjs require",
          "userRequest": "./lib/ajax-based",
          "loc": "4:25-52"
        },
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/eventsource.js",
          "type": "cjs require",
          "userRequest": "./lib/ajax-based",
          "loc": "4:25-52"
        },
        {
          "moduleId": 48,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/htmlfile.js",
          "type": "cjs require",
          "userRequest": "./lib/ajax-based",
          "loc": "6:25-52"
        },
        {
          "moduleId": 50,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "type": "cjs require",
          "userRequest": "./lib/ajax-based",
          "loc": "4:25-52"
        },
        {
          "moduleId": 51,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "type": "cjs require",
          "userRequest": "./lib/ajax-based",
          "loc": "4:25-52"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , urlUtils = require('../../utils/url')\n  , SenderReceiver = require('./sender-receiver')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:ajax-based');\n}\n\nfunction createAjaxSender(AjaxObject) {\n  return function(url, payload, callback) {\n    debug('create ajax sender', url, payload);\n    var opt = {};\n    if (typeof payload === 'string') {\n      opt.headers = {'Content-type':'text/plain'};\n    }\n    var ajaxUrl = urlUtils.addPath(url, '/xhr_send');\n    var xo = new AjaxObject('POST', ajaxUrl, payload, opt);\n    xo.once('finish', function(status) {\n      debug('finish', status);\n      xo = null;\n\n      if (status !== 200 && status !== 204) {\n        return callback(new Error('http status ' + status));\n      }\n      callback();\n    });\n    return function() {\n      debug('abort');\n      xo.close();\n      xo = null;\n\n      var err = new Error('Aborted');\n      err.code = 1000;\n      callback(err);\n    };\n  };\n}\n\nfunction AjaxBasedTransport(transUrl, urlSuffix, Receiver, AjaxObject) {\n  SenderReceiver.call(this, transUrl, urlSuffix, createAjaxSender(AjaxObject), Receiver, AjaxObject);\n}\n\ninherits(AjaxBasedTransport, SenderReceiver);\n\nmodule.exports = AjaxBasedTransport;\n"
    },
    {
      "id": 28,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
      "name": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
      "index": 28,
      "index2": 24,
      "size": 1145,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 27,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/ajax-based.js",
          "module": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/ajax-based.js",
          "type": "cjs require",
          "userRequest": "./sender-receiver",
          "loc": "5:21-49"
        },
        {
          "moduleId": 52,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
          "module": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "type": "cjs require",
          "userRequest": "./lib/sender-receiver",
          "loc": "12:21-53"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , urlUtils = require('../../utils/url')\n  , BufferedSender = require('./buffered-sender')\n  , Polling = require('./polling')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:sender-receiver');\n}\n\nfunction SenderReceiver(transUrl, urlSuffix, senderFunc, Receiver, AjaxObject) {\n  var pollUrl = urlUtils.addPath(transUrl, urlSuffix);\n  debug(pollUrl);\n  var self = this;\n  BufferedSender.call(this, transUrl, senderFunc);\n\n  this.poll = new Polling(Receiver, pollUrl, AjaxObject);\n  this.poll.on('message', function(msg) {\n    debug('poll message', msg);\n    self.emit('message', msg);\n  });\n  this.poll.once('close', function(code, reason) {\n    debug('poll close', code, reason);\n    self.poll = null;\n    self.emit('close', code, reason);\n    self.close();\n  });\n}\n\ninherits(SenderReceiver, BufferedSender);\n\nSenderReceiver.prototype.close = function() {\n  debug('close');\n  this.removeAllListeners();\n  if (this.poll) {\n    this.poll.abort();\n    this.poll = null;\n  }\n  this.stop();\n};\n\nmodule.exports = SenderReceiver;\n"
    },
    {
      "id": 29,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/buffered-sender.js",
      "name": "./~/sockjs-client/lib/transport/lib/buffered-sender.js",
      "index": 29,
      "index2": 22,
      "size": 2297,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
          "module": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "type": "cjs require",
          "userRequest": "./buffered-sender",
          "loc": "5:21-49"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:buffered-sender');\n}\n\nfunction BufferedSender(url, sender) {\n  debug(url);\n  EventEmitter.call(this);\n  this.sendBuffer = [];\n  this.sender = sender;\n  this.url = url;\n}\n\ninherits(BufferedSender, EventEmitter);\n\nBufferedSender.prototype.send = function(message) {\n  debug('send', message);\n  this.sendBuffer.push(message);\n  if (!this.sendStop) {\n    this.sendSchedule();\n  }\n};\n\n// For polling transports in a situation when in the message callback,\n// new message is being send. If the sending connection was started\n// before receiving one, it is possible to saturate the network and\n// timeout due to the lack of receiving socket. To avoid that we delay\n// sending messages by some small time, in order to let receiving\n// connection be started beforehand. This is only a halfmeasure and\n// does not fix the big problem, but it does make the tests go more\n// stable on slow networks.\nBufferedSender.prototype.sendScheduleWait = function() {\n  debug('sendScheduleWait');\n  var self = this;\n  var tref;\n  this.sendStop = function() {\n    debug('sendStop');\n    self.sendStop = null;\n    clearTimeout(tref);\n  };\n  tref = setTimeout(function() {\n    debug('timeout');\n    self.sendStop = null;\n    self.sendSchedule();\n  }, 25);\n};\n\nBufferedSender.prototype.sendSchedule = function() {\n  debug('sendSchedule', this.sendBuffer.length);\n  var self = this;\n  if (this.sendBuffer.length > 0) {\n    var payload = '[' + this.sendBuffer.join(',') + ']';\n    this.sendStop = this.sender(this.url, payload, function(err) {\n      self.sendStop = null;\n      if (err) {\n        debug('error', err);\n        self.emit('close', err.code || 1006, 'Sending error: ' + err);\n        self._cleanup();\n      } else {\n        self.sendScheduleWait();\n      }\n    });\n    this.sendBuffer = [];\n  }\n};\n\nBufferedSender.prototype._cleanup = function() {\n  debug('_cleanup');\n  this.removeAllListeners();\n};\n\nBufferedSender.prototype.stop = function() {\n  debug('stop');\n  this._cleanup();\n  if (this.sendStop) {\n    this.sendStop();\n    this.sendStop = null;\n  }\n};\n\nmodule.exports = BufferedSender;\n"
    },
    {
      "id": 30,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/polling.js",
      "name": "./~/sockjs-client/lib/transport/lib/polling.js",
      "index": 30,
      "index2": 23,
      "size": 1316,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 28,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/sender-receiver.js",
          "module": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/sender-receiver.js",
          "type": "cjs require",
          "userRequest": "./polling",
          "loc": "6:14-34"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:polling');\n}\n\nfunction Polling(Receiver, receiveUrl, AjaxObject) {\n  debug(receiveUrl);\n  EventEmitter.call(this);\n  this.Receiver = Receiver;\n  this.receiveUrl = receiveUrl;\n  this.AjaxObject = AjaxObject;\n  this._scheduleReceiver();\n}\n\ninherits(Polling, EventEmitter);\n\nPolling.prototype._scheduleReceiver = function() {\n  debug('_scheduleReceiver');\n  var self = this;\n  var poll = this.poll = new this.Receiver(this.receiveUrl, this.AjaxObject);\n\n  poll.on('message', function(msg) {\n    debug('message', msg);\n    self.emit('message', msg);\n  });\n\n  poll.once('close', function(code, reason) {\n    debug('close', code, reason, self.pollIsClosing);\n    self.poll = poll = null;\n\n    if (!self.pollIsClosing) {\n      if (reason === 'network') {\n        self._scheduleReceiver();\n      } else {\n        self.emit('close', code || 1006, reason);\n        self.removeAllListeners();\n      }\n    }\n  });\n};\n\nPolling.prototype.abort = function() {\n  debug('abort');\n  this.removeAllListeners();\n  this.pollIsClosing = true;\n  if (this.poll) {\n    this.poll.abort();\n  }\n};\n\nmodule.exports = Polling;\n"
    },
    {
      "id": 31,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/xhr.js",
      "name": "./~/sockjs-client/lib/transport/receiver/xhr.js",
      "index": 31,
      "index2": 26,
      "size": 1583,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "type": "cjs require",
          "userRequest": "./receiver/xhr",
          "loc": "5:18-43"
        },
        {
          "moduleId": 36,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "type": "cjs require",
          "userRequest": "./receiver/xhr",
          "loc": "5:18-43"
        },
        {
          "moduleId": 50,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "type": "cjs require",
          "userRequest": "./receiver/xhr",
          "loc": "5:18-43"
        },
        {
          "moduleId": 51,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "type": "cjs require",
          "userRequest": "./receiver/xhr",
          "loc": "6:18-43"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:receiver:xhr');\n}\n\nfunction XhrReceiver(url, AjaxObject) {\n  debug(url);\n  EventEmitter.call(this);\n  var self = this;\n\n  this.bufferPosition = 0;\n\n  this.xo = new AjaxObject('POST', url, null);\n  this.xo.on('chunk', this._chunkHandler.bind(this));\n  this.xo.once('finish', function(status, text) {\n    debug('finish', status, text);\n    self._chunkHandler(status, text);\n    self.xo = null;\n    var reason = status === 200 ? 'network' : 'permanent';\n    debug('close', reason);\n    self.emit('close', null, reason);\n    self._cleanup();\n  });\n}\n\ninherits(XhrReceiver, EventEmitter);\n\nXhrReceiver.prototype._chunkHandler = function(status, text) {\n  debug('_chunkHandler', status);\n  if (status !== 200 || !text) {\n    return;\n  }\n\n  for (var idx = -1; ; this.bufferPosition += idx + 1) {\n    var buf = text.slice(this.bufferPosition);\n    idx = buf.indexOf('\\n');\n    if (idx === -1) {\n      break;\n    }\n    var msg = buf.slice(0, idx);\n    if (msg) {\n      debug('message', msg);\n      this.emit('message', msg);\n    }\n  }\n};\n\nXhrReceiver.prototype._cleanup = function() {\n  debug('_cleanup');\n  this.removeAllListeners();\n};\n\nXhrReceiver.prototype.abort = function() {\n  debug('abort');\n  if (this.xo) {\n    this.xo.close();\n    debug('close');\n    this.emit('close', null, 'user');\n    this.xo = null;\n  }\n  this._cleanup();\n};\n\nmodule.exports = XhrReceiver;\n"
    },
    {
      "id": 32,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-cors.js",
      "name": "./~/sockjs-client/lib/transport/sender/xhr-cors.js",
      "index": 32,
      "index2": 28,
      "size": 343,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "type": "cjs require",
          "userRequest": "./sender/xhr-cors",
          "loc": "6:20-48"
        },
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/eventsource.js",
          "type": "cjs require",
          "userRequest": "./sender/xhr-cors",
          "loc": "6:20-48"
        },
        {
          "moduleId": 50,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "type": "cjs require",
          "userRequest": "./sender/xhr-cors",
          "loc": "6:20-48"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./transport/sender/xhr-cors",
          "loc": "7:14-52"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , XhrDriver = require('../driver/xhr')\n  ;\n\nfunction XHRCorsObject(method, url, payload, opts) {\n  XhrDriver.call(this, method, url, payload, opts);\n}\n\ninherits(XHRCorsObject, XhrDriver);\n\nXHRCorsObject.enabled = XhrDriver.enabled && XhrDriver.supportsCORS;\n\nmodule.exports = XHRCorsObject;\n"
    },
    {
      "id": 33,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js",
      "name": "./~/sockjs-client/lib/transport/browser/abstract-xhr.js",
      "index": 33,
      "index2": 27,
      "size": 4666,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-cors.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 32,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-cors.js",
          "module": "./~/sockjs-client/lib/transport/sender/xhr-cors.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xhr-cors.js",
          "type": "cjs require",
          "userRequest": "../driver/xhr",
          "loc": "4:16-40"
        },
        {
          "moduleId": 34,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-local.js",
          "module": "./~/sockjs-client/lib/transport/sender/xhr-local.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xhr-local.js",
          "type": "cjs require",
          "userRequest": "../driver/xhr",
          "loc": "4:16-40"
        }
      ],
      "source": "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n  , inherits = require('inherits')\n  , utils = require('../../utils/event')\n  , urlUtils = require('../../utils/url')\n  , XHR = global.XMLHttpRequest\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:browser:xhr');\n}\n\nfunction AbstractXHRObject(method, url, payload, opts) {\n  debug(method, url);\n  var self = this;\n  EventEmitter.call(this);\n\n  setTimeout(function () {\n    self._start(method, url, payload, opts);\n  }, 0);\n}\n\ninherits(AbstractXHRObject, EventEmitter);\n\nAbstractXHRObject.prototype._start = function(method, url, payload, opts) {\n  var self = this;\n\n  try {\n    this.xhr = new XHR();\n  } catch (x) {}\n\n  if (!this.xhr) {\n    debug('no xhr');\n    this.emit('finish', 0, 'no xhr support');\n    this._cleanup();\n    return;\n  }\n\n  // several browsers cache POSTs\n  url = urlUtils.addQuery(url, 't=' + (+new Date()));\n\n  // Explorer tends to keep connection open, even after the\n  // tab gets closed: http://bugs.jquery.com/ticket/5280\n  this.unloadRef = utils.unloadAdd(function() {\n    debug('unload cleanup');\n    self._cleanup(true);\n  });\n  try {\n    this.xhr.open(method, url, true);\n    if (this.timeout && 'timeout' in this.xhr) {\n      this.xhr.timeout = this.timeout;\n      this.xhr.ontimeout = function() {\n        debug('xhr timeout');\n        self.emit('finish', 0, '');\n        self._cleanup(false);\n      };\n    }\n  } catch (e) {\n    debug('exception', e);\n    // IE raises an exception on wrong port.\n    this.emit('finish', 0, '');\n    this._cleanup(false);\n    return;\n  }\n\n  if ((!opts || !opts.noCredentials) && AbstractXHRObject.supportsCORS) {\n    debug('withCredentials');\n    // Mozilla docs says https://developer.mozilla.org/en/XMLHttpRequest :\n    // \"This never affects same-site requests.\"\n\n    this.xhr.withCredentials = 'true';\n  }\n  if (opts && opts.headers) {\n    for (var key in opts.headers) {\n      this.xhr.setRequestHeader(key, opts.headers[key]);\n    }\n  }\n\n  this.xhr.onreadystatechange = function() {\n    if (self.xhr) {\n      var x = self.xhr;\n      var text, status;\n      debug('readyState', x.readyState);\n      switch (x.readyState) {\n      case 3:\n        // IE doesn't like peeking into responseText or status\n        // on Microsoft.XMLHTTP and readystate=3\n        try {\n          status = x.status;\n          text = x.responseText;\n        } catch (e) {}\n        debug('status', status);\n        // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n        if (status === 1223) {\n          status = 204;\n        }\n\n        // IE does return readystate == 3 for 404 answers.\n        if (status === 200 && text && text.length > 0) {\n          debug('chunk');\n          self.emit('chunk', status, text);\n        }\n        break;\n      case 4:\n        status = x.status;\n        debug('status', status);\n        // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n        if (status === 1223) {\n          status = 204;\n        }\n        // IE returns this for a bad port\n        // http://msdn.microsoft.com/en-us/library/windows/desktop/aa383770(v=vs.85).aspx\n        if (status === 12005 || status === 12029) {\n          status = 0;\n        }\n\n        debug('finish', status, x.responseText);\n        self.emit('finish', status, x.responseText);\n        self._cleanup(false);\n        break;\n      }\n    }\n  };\n\n  try {\n    self.xhr.send(payload);\n  } catch (e) {\n    self.emit('finish', 0, '');\n    self._cleanup(false);\n  }\n};\n\nAbstractXHRObject.prototype._cleanup = function(abort) {\n  debug('cleanup');\n  if (!this.xhr) {\n    return;\n  }\n  this.removeAllListeners();\n  utils.unloadDel(this.unloadRef);\n\n  // IE needs this field to be a function\n  this.xhr.onreadystatechange = function() {};\n  if (this.xhr.ontimeout) {\n    this.xhr.ontimeout = null;\n  }\n\n  if (abort) {\n    try {\n      this.xhr.abort();\n    } catch (x) {}\n  }\n  this.unloadRef = this.xhr = null;\n};\n\nAbstractXHRObject.prototype.close = function() {\n  debug('close');\n  this._cleanup(true);\n};\n\nAbstractXHRObject.enabled = !!XHR;\n// override XMLHttpRequest for IE6/7\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (!AbstractXHRObject.enabled && (axo in global)) {\n  debug('overriding xmlhttprequest');\n  XHR = function() {\n    try {\n      return new global[axo]('Microsoft.XMLHTTP');\n    } catch (e) {\n      return null;\n    }\n  };\n  AbstractXHRObject.enabled = !!new XHR();\n}\n\nvar cors = false;\ntry {\n  cors = 'withCredentials' in new XHR();\n} catch (ignored) {}\n\nAbstractXHRObject.supportsCORS = cors;\n\nmodule.exports = AbstractXHRObject;\n"
    },
    {
      "id": 34,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-local.js",
      "name": "./~/sockjs-client/lib/transport/sender/xhr-local.js",
      "index": 34,
      "index2": 29,
      "size": 352,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "type": "cjs require",
          "userRequest": "./sender/xhr-local",
          "loc": "7:21-50"
        },
        {
          "moduleId": 48,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/htmlfile.js",
          "type": "cjs require",
          "userRequest": "./sender/xhr-local",
          "loc": "5:21-50"
        },
        {
          "moduleId": 50,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-polling.js",
          "type": "cjs require",
          "userRequest": "./sender/xhr-local",
          "loc": "7:21-50"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./transport/sender/xhr-local",
          "loc": "8:15-54"
        },
        {
          "moduleId": 67,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe-receiver.js",
          "module": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "type": "cjs require",
          "userRequest": "./transport/sender/xhr-local",
          "loc": "6:21-60"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , XhrDriver = require('../driver/xhr')\n  ;\n\nfunction XHRLocalObject(method, url, payload /*, opts */) {\n  XhrDriver.call(this, method, url, payload, {\n    noCredentials: true\n  });\n}\n\ninherits(XHRLocalObject, XhrDriver);\n\nXHRLocalObject.enabled = XhrDriver.enabled;\n\nmodule.exports = XHRLocalObject;\n"
    },
    {
      "id": 35,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/browser.js",
      "name": "./~/sockjs-client/lib/utils/browser.js",
      "index": 35,
      "index2": 30,
      "size": 560,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 26,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xhr-streaming.js",
          "type": "cjs require",
          "userRequest": "../utils/browser",
          "loc": "8:14-41"
        },
        {
          "moduleId": 37,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
          "module": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "moduleName": "./~/sockjs-client/lib/transport/sender/xdr.js",
          "type": "cjs require",
          "userRequest": "../../utils/browser",
          "loc": "6:14-44"
        },
        {
          "moduleId": 46,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/iframe.js",
          "module": "./~/sockjs-client/lib/utils/iframe.js",
          "moduleName": "./~/sockjs-client/lib/utils/iframe.js",
          "type": "cjs require",
          "userRequest": "./browser",
          "loc": "5:14-34"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "../../utils/browser",
          "loc": "5:14-44"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/browser",
          "loc": "14:14-40"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = {\n  isOpera: function() {\n    return global.navigator &&\n      /opera/i.test(global.navigator.userAgent);\n  }\n\n, isKonqueror: function() {\n    return global.navigator &&\n      /konqueror/i.test(global.navigator.userAgent);\n  }\n\n  // #187 wrap document.domain in try/catch because of WP8 from file:///\n, hasDomain: function () {\n    // non-browser client always has a domain\n    if (!global.document) {\n      return true;\n    }\n\n    try {\n      return !!global.document.domain;\n    } catch (e) {\n      return false;\n    }\n  }\n};\n"
    },
    {
      "id": 36,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
      "name": "./~/sockjs-client/lib/transport/xdr-streaming.js",
      "index": 36,
      "index2": 33,
      "size": 984,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/xdr-streaming",
          "loc": "7:2-38"
        },
        {
          "moduleId": 51,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "type": "cjs require",
          "userRequest": "./xdr-streaming",
          "loc": "5:28-54"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , AjaxBasedTransport = require('./lib/ajax-based')\n  , XhrReceiver = require('./receiver/xhr')\n  , XDRObject = require('./sender/xdr')\n  ;\n\n// According to:\n//   http://stackoverflow.com/questions/1641507/detect-browser-support-for-cross-domain-xmlhttprequests\n//   http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n\nfunction XdrStreamingTransport(transUrl) {\n  if (!XDRObject.enabled) {\n    throw new Error('Transport created when disabled');\n  }\n  AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XDRObject);\n}\n\ninherits(XdrStreamingTransport, AjaxBasedTransport);\n\nXdrStreamingTransport.enabled = function(info) {\n  if (info.cookie_needed || info.nullOrigin) {\n    return false;\n  }\n  return XDRObject.enabled && info.sameScheme;\n};\n\nXdrStreamingTransport.transportName = 'xdr-streaming';\nXdrStreamingTransport.roundTrips = 2; // preflight, ajax\n\nmodule.exports = XdrStreamingTransport;\n"
    },
    {
      "id": 37,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xdr.js",
      "name": "./~/sockjs-client/lib/transport/sender/xdr.js",
      "index": 37,
      "index2": 32,
      "size": 2422,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 36,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-streaming.js",
          "module": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-streaming.js",
          "type": "cjs require",
          "userRequest": "./sender/xdr",
          "loc": "6:16-39"
        },
        {
          "moduleId": 51,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-polling.js",
          "module": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/xdr-polling.js",
          "type": "cjs require",
          "userRequest": "./sender/xdr",
          "loc": "7:16-39"
        },
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./transport/sender/xdr",
          "loc": "6:10-43"
        }
      ],
      "source": "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n  , inherits = require('inherits')\n  , eventUtils = require('../../utils/event')\n  , browser = require('../../utils/browser')\n  , urlUtils = require('../../utils/url')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:sender:xdr');\n}\n\n// References:\n//   http://ajaxian.com/archives/100-line-ajax-wrapper\n//   http://msdn.microsoft.com/en-us/library/cc288060(v=VS.85).aspx\n\nfunction XDRObject(method, url, payload) {\n  debug(method, url);\n  var self = this;\n  EventEmitter.call(this);\n\n  setTimeout(function() {\n    self._start(method, url, payload);\n  }, 0);\n}\n\ninherits(XDRObject, EventEmitter);\n\nXDRObject.prototype._start = function(method, url, payload) {\n  debug('_start');\n  var self = this;\n  var xdr = new global.XDomainRequest();\n  // IE caches even POSTs\n  url = urlUtils.addQuery(url, 't=' + (+new Date()));\n\n  xdr.onerror = function() {\n    debug('onerror');\n    self._error();\n  };\n  xdr.ontimeout = function() {\n    debug('ontimeout');\n    self._error();\n  };\n  xdr.onprogress = function() {\n    debug('progress', xdr.responseText);\n    self.emit('chunk', 200, xdr.responseText);\n  };\n  xdr.onload = function() {\n    debug('load');\n    self.emit('finish', 200, xdr.responseText);\n    self._cleanup(false);\n  };\n  this.xdr = xdr;\n  this.unloadRef = eventUtils.unloadAdd(function() {\n    self._cleanup(true);\n  });\n  try {\n    // Fails with AccessDenied if port number is bogus\n    this.xdr.open(method, url);\n    if (this.timeout) {\n      this.xdr.timeout = this.timeout;\n    }\n    this.xdr.send(payload);\n  } catch (x) {\n    this._error();\n  }\n};\n\nXDRObject.prototype._error = function() {\n  this.emit('finish', 0, '');\n  this._cleanup(false);\n};\n\nXDRObject.prototype._cleanup = function(abort) {\n  debug('cleanup', abort);\n  if (!this.xdr) {\n    return;\n  }\n  this.removeAllListeners();\n  eventUtils.unloadDel(this.unloadRef);\n\n  this.xdr.ontimeout = this.xdr.onerror = this.xdr.onprogress = this.xdr.onload = null;\n  if (abort) {\n    try {\n      this.xdr.abort();\n    } catch (x) {}\n  }\n  this.unloadRef = this.xdr = null;\n};\n\nXDRObject.prototype.close = function() {\n  debug('close');\n  this._cleanup(true);\n};\n\n// IE 8/9 if the request target uses the same scheme - #79\nXDRObject.enabled = !!(global.XDomainRequest && browser.hasDomain());\n\nmodule.exports = XDRObject;\n"
    },
    {
      "id": 38,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
      "name": "./~/sockjs-client/lib/transport/eventsource.js",
      "index": 38,
      "index2": 36,
      "size": 766,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/eventsource",
          "loc": "8:2-36"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/eventsource",
          "loc": "9:41-75"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , AjaxBasedTransport = require('./lib/ajax-based')\n  , EventSourceReceiver = require('./receiver/eventsource')\n  , XHRCorsObject = require('./sender/xhr-cors')\n  , EventSourceDriver = require('eventsource')\n  ;\n\nfunction EventSourceTransport(transUrl) {\n  if (!EventSourceTransport.enabled()) {\n    throw new Error('Transport created when disabled');\n  }\n\n  AjaxBasedTransport.call(this, transUrl, '/eventsource', EventSourceReceiver, XHRCorsObject);\n}\n\ninherits(EventSourceTransport, AjaxBasedTransport);\n\nEventSourceTransport.enabled = function() {\n  return !!EventSourceDriver;\n};\n\nEventSourceTransport.transportName = 'eventsource';\nEventSourceTransport.roundTrips = 2;\n\nmodule.exports = EventSourceTransport;\n"
    },
    {
      "id": 39,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/eventsource.js",
      "name": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
      "index": 39,
      "index2": 35,
      "size": 1585,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/eventsource.js",
          "type": "cjs require",
          "userRequest": "./receiver/eventsource",
          "loc": "5:26-59"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  , EventSourceDriver = require('eventsource')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:receiver:eventsource');\n}\n\nfunction EventSourceReceiver(url) {\n  debug(url);\n  EventEmitter.call(this);\n\n  var self = this;\n  var es = this.es = new EventSourceDriver(url);\n  es.onmessage = function(e) {\n    debug('message', e.data);\n    self.emit('message', decodeURI(e.data));\n  };\n  es.onerror = function(e) {\n    debug('error', es.readyState, e);\n    // ES on reconnection has readyState = 0 or 1.\n    // on network error it's CLOSED = 2\n    var reason = (es.readyState !== 2 ? 'network' : 'permanent');\n    self._cleanup();\n    self._close(reason);\n  };\n}\n\ninherits(EventSourceReceiver, EventEmitter);\n\nEventSourceReceiver.prototype.abort = function() {\n  debug('abort');\n  this._cleanup();\n  this._close('user');\n};\n\nEventSourceReceiver.prototype._cleanup = function() {\n  debug('cleanup');\n  var es = this.es;\n  if (es) {\n    es.onmessage = es.onerror = null;\n    es.close();\n    this.es = null;\n  }\n};\n\nEventSourceReceiver.prototype._close = function(reason) {\n  debug('close', reason);\n  var self = this;\n  // Safari and chrome < 15 crash if we close window before\n  // waiting for ES cleanup. See:\n  // https://code.google.com/p/chromium/issues/detail?id=89155\n  setTimeout(function() {\n    self.emit('close', null, reason);\n    self.removeAllListeners();\n  }, 200);\n};\n\nmodule.exports = EventSourceReceiver;\n"
    },
    {
      "id": 40,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/browser/eventsource.js",
      "name": "./~/sockjs-client/lib/transport/browser/eventsource.js",
      "index": 40,
      "index2": 34,
      "size": 37,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 38,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/eventsource.js",
          "type": "cjs require",
          "userRequest": "eventsource",
          "loc": "7:24-46"
        },
        {
          "moduleId": 39,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/eventsource.js",
          "module": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/eventsource.js",
          "type": "cjs require",
          "userRequest": "eventsource",
          "loc": "5:24-46"
        }
      ],
      "source": "module.exports = global.EventSource;\n"
    },
    {
      "id": 41,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js",
      "name": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
      "index": 41,
      "index2": 43,
      "size": 981,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/lib/iframe-wrap",
          "loc": "9:2-40"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/lib/iframe-wrap",
          "loc": "13:2-40"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/lib/iframe-wrap",
          "loc": "16:2-40"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , IframeTransport = require('../iframe')\n  , objectUtils = require('../../utils/object')\n  ;\n\nmodule.exports = function(transport) {\n\n  function IframeWrapTransport(transUrl, baseUrl) {\n    IframeTransport.call(this, transport.transportName, transUrl, baseUrl);\n  }\n\n  inherits(IframeWrapTransport, IframeTransport);\n\n  IframeWrapTransport.enabled = function(url, info) {\n    if (!global.document) {\n      return false;\n    }\n\n    var iframeInfo = objectUtils.extend({}, info);\n    iframeInfo.sameOrigin = true;\n    return transport.enabled(iframeInfo) && IframeTransport.enabled();\n  };\n\n  IframeWrapTransport.transportName = 'iframe-' + transport.transportName;\n  IframeWrapTransport.needBody = true;\n  IframeWrapTransport.roundTrips = IframeTransport.roundTrips + transport.roundTrips - 1; // html, javascript (2) + transport - no CORS (1)\n\n  IframeWrapTransport.facadeTransport = transport;\n\n  return IframeWrapTransport;\n};\n"
    },
    {
      "id": 42,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
      "name": "./~/sockjs-client/lib/transport/iframe.js",
      "index": 42,
      "index2": 41,
      "size": 3801,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 41,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "module": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "type": "cjs require",
          "userRequest": "../iframe",
          "loc": "4:22-42"
        },
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "./transport/iframe",
          "loc": "7:22-51"
        }
      ],
      "source": "'use strict';\n\n// Few cool transports do work only for same-origin. In order to make\n// them work cross-domain we shall use iframe, served from the\n// remote domain. New browsers have capabilities to communicate with\n// cross domain iframe using postMessage(). In IE it was implemented\n// from IE 8+, but of course, IE got some details wrong:\n//    http://msdn.microsoft.com/en-us/library/cc197015(v=VS.85).aspx\n//    http://stevesouders.com/misc/test-postmessage.php\n\nvar inherits = require('inherits')\n  , JSON3 = require('json3')\n  , EventEmitter = require('events').EventEmitter\n  , version = require('../version')\n  , urlUtils = require('../utils/url')\n  , iframeUtils = require('../utils/iframe')\n  , eventUtils = require('../utils/event')\n  , random = require('../utils/random')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:transport:iframe');\n}\n\nfunction IframeTransport(transport, transUrl, baseUrl) {\n  if (!IframeTransport.enabled()) {\n    throw new Error('Transport created when disabled');\n  }\n  EventEmitter.call(this);\n\n  var self = this;\n  this.origin = urlUtils.getOrigin(baseUrl);\n  this.baseUrl = baseUrl;\n  this.transUrl = transUrl;\n  this.transport = transport;\n  this.windowId = random.string(8);\n\n  var iframeUrl = urlUtils.addPath(baseUrl, '/iframe.html') + '#' + this.windowId;\n  debug(transport, transUrl, iframeUrl);\n\n  this.iframeObj = iframeUtils.createIframe(iframeUrl, function(r) {\n    debug('err callback');\n    self.emit('close', 1006, 'Unable to load an iframe (' + r + ')');\n    self.close();\n  });\n\n  this.onmessageCallback = this._message.bind(this);\n  eventUtils.attachEvent('message', this.onmessageCallback);\n}\n\ninherits(IframeTransport, EventEmitter);\n\nIframeTransport.prototype.close = function() {\n  debug('close');\n  this.removeAllListeners();\n  if (this.iframeObj) {\n    eventUtils.detachEvent('message', this.onmessageCallback);\n    try {\n      // When the iframe is not loaded, IE raises an exception\n      // on 'contentWindow'.\n      this.postMessage('c');\n    } catch (x) {}\n    this.iframeObj.cleanup();\n    this.iframeObj = null;\n    this.onmessageCallback = this.iframeObj = null;\n  }\n};\n\nIframeTransport.prototype._message = function(e) {\n  debug('message', e.data);\n  if (!urlUtils.isOriginEqual(e.origin, this.origin)) {\n    debug('not same origin', e.origin, this.origin);\n    return;\n  }\n\n  var iframeMessage;\n  try {\n    iframeMessage = JSON3.parse(e.data);\n  } catch (ignored) {\n    debug('bad json', e.data);\n    return;\n  }\n\n  if (iframeMessage.windowId !== this.windowId) {\n    debug('mismatched window id', iframeMessage.windowId, this.windowId);\n    return;\n  }\n\n  switch (iframeMessage.type) {\n  case 's':\n    this.iframeObj.loaded();\n    // window global dependency\n    this.postMessage('s', JSON3.stringify([\n      version\n    , this.transport\n    , this.transUrl\n    , this.baseUrl\n    ]));\n    break;\n  case 't':\n    this.emit('message', iframeMessage.data);\n    break;\n  case 'c':\n    var cdata;\n    try {\n      cdata = JSON3.parse(iframeMessage.data);\n    } catch (ignored) {\n      debug('bad json', iframeMessage.data);\n      return;\n    }\n    this.emit('close', cdata[0], cdata[1]);\n    this.close();\n    break;\n  }\n};\n\nIframeTransport.prototype.postMessage = function(type, data) {\n  debug('postMessage', type, data);\n  this.iframeObj.post(JSON3.stringify({\n    windowId: this.windowId\n  , type: type\n  , data: data || ''\n  }), this.origin);\n};\n\nIframeTransport.prototype.send = function(message) {\n  debug('send', message);\n  this.postMessage('m', message);\n};\n\nIframeTransport.enabled = function() {\n  return iframeUtils.iframeEnabled;\n};\n\nIframeTransport.transportName = 'iframe';\nIframeTransport.roundTrips = 2;\n\nmodule.exports = IframeTransport;\n"
    },
    {
      "id": 43,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/node_modules/json3/lib/json3.js",
      "name": "./~/sockjs-client/~/json3/lib/json3.js",
      "index": 43,
      "index2": 38,
      "size": 43296,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "12:12-28"
        },
        {
          "moduleId": 46,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/iframe.js",
          "module": "./~/sockjs-client/lib/utils/iframe.js",
          "moduleName": "./~/sockjs-client/lib/utils/iframe.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "4:12-28"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "7:12-28"
        },
        {
          "moduleId": 57,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/escape.js",
          "module": "./~/sockjs-client/lib/utils/escape.js",
          "moduleName": "./~/sockjs-client/lib/utils/escape.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "3:12-28"
        },
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "5:12-28"
        },
        {
          "moduleId": 67,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe-receiver.js",
          "module": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "5:12-28"
        },
        {
          "moduleId": 68,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-ajax.js",
          "module": "./~/sockjs-client/lib/info-ajax.js",
          "moduleName": "./~/sockjs-client/lib/info-ajax.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "5:12-28"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "5:12-28"
        },
        {
          "moduleId": 70,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/facade.js",
          "module": "./~/sockjs-client/lib/facade.js",
          "moduleName": "./~/sockjs-client/lib/facade.js",
          "type": "cjs require",
          "userRequest": "json3",
          "loc": "3:12-28"
        }
      ],
      "source": "/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */\n;(function () {\n  // Detect the `define` function exposed by asynchronous module loaders. The\n  // strict `define` check is necessary for compatibility with `r.js`.\n  var isLoader = typeof define === \"function\" && define.amd;\n\n  // A set of types used to distinguish objects from primitives.\n  var objectTypes = {\n    \"function\": true,\n    \"object\": true\n  };\n\n  // Detect the `exports` object exposed by CommonJS implementations.\n  var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;\n\n  // Use the `global` object exposed by Node (including Browserify via\n  // `insert-module-globals`), Narwhal, and Ringo as the default context,\n  // and the `window` object in browsers. Rhino exports a `global` function\n  // instead.\n  var root = objectTypes[typeof window] && window || this,\n      freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == \"object\" && global;\n\n  if (freeGlobal && (freeGlobal[\"global\"] === freeGlobal || freeGlobal[\"window\"] === freeGlobal || freeGlobal[\"self\"] === freeGlobal)) {\n    root = freeGlobal;\n  }\n\n  // Public: Initializes JSON 3 using the given `context` object, attaching the\n  // `stringify` and `parse` functions to the specified `exports` object.\n  function runInContext(context, exports) {\n    context || (context = root[\"Object\"]());\n    exports || (exports = root[\"Object\"]());\n\n    // Native constructor aliases.\n    var Number = context[\"Number\"] || root[\"Number\"],\n        String = context[\"String\"] || root[\"String\"],\n        Object = context[\"Object\"] || root[\"Object\"],\n        Date = context[\"Date\"] || root[\"Date\"],\n        SyntaxError = context[\"SyntaxError\"] || root[\"SyntaxError\"],\n        TypeError = context[\"TypeError\"] || root[\"TypeError\"],\n        Math = context[\"Math\"] || root[\"Math\"],\n        nativeJSON = context[\"JSON\"] || root[\"JSON\"];\n\n    // Delegate to the native `stringify` and `parse` implementations.\n    if (typeof nativeJSON == \"object\" && nativeJSON) {\n      exports.stringify = nativeJSON.stringify;\n      exports.parse = nativeJSON.parse;\n    }\n\n    // Convenience aliases.\n    var objectProto = Object.prototype,\n        getClass = objectProto.toString,\n        isProperty, forEach, undef;\n\n    // Test the `Date#getUTC*` methods. Based on work by @Yaffle.\n    var isExtended = new Date(-3509827334573292);\n    try {\n      // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical\n      // results for certain dates in Opera >= 10.53.\n      isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&\n        // Safari < 2.0.2 stores the internal millisecond time value correctly,\n        // but clips the values returned by the date methods to the range of\n        // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).\n        isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;\n    } catch (exception) {}\n\n    // Internal: Determines whether the native `JSON.stringify` and `parse`\n    // implementations are spec-compliant. Based on work by Ken Snyder.\n    function has(name) {\n      if (has[name] !== undef) {\n        // Return cached feature test result.\n        return has[name];\n      }\n      var isSupported;\n      if (name == \"bug-string-char-index\") {\n        // IE <= 7 doesn't support accessing string characters using square\n        // bracket notation. IE 8 only supports this for primitives.\n        isSupported = \"a\"[0] != \"a\";\n      } else if (name == \"json\") {\n        // Indicates whether both `JSON.stringify` and `JSON.parse` are\n        // supported.\n        isSupported = has(\"json-stringify\") && has(\"json-parse\");\n      } else {\n        var value, serialized = '{\"a\":[1,true,false,null,\"\\\\u0000\\\\b\\\\n\\\\f\\\\r\\\\t\"]}';\n        // Test `JSON.stringify`.\n        if (name == \"json-stringify\") {\n          var stringify = exports.stringify, stringifySupported = typeof stringify == \"function\" && isExtended;\n          if (stringifySupported) {\n            // A test function object with a custom `toJSON` method.\n            (value = function () {\n              return 1;\n            }).toJSON = value;\n            try {\n              stringifySupported =\n                // Firefox 3.1b1 and b2 serialize string, number, and boolean\n                // primitives as object literals.\n                stringify(0) === \"0\" &&\n                // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object\n                // literals.\n                stringify(new Number()) === \"0\" &&\n                stringify(new String()) == '\"\"' &&\n                // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or\n                // does not define a canonical JSON representation (this applies to\n                // objects with `toJSON` properties as well, *unless* they are nested\n                // within an object or array).\n                stringify(getClass) === undef &&\n                // IE 8 serializes `undefined` as `\"undefined\"`. Safari <= 5.1.7 and\n                // FF 3.1b3 pass this test.\n                stringify(undef) === undef &&\n                // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,\n                // respectively, if the value is omitted entirely.\n                stringify() === undef &&\n                // FF 3.1b1, 2 throw an error if the given value is not a number,\n                // string, array, object, Boolean, or `null` literal. This applies to\n                // objects with custom `toJSON` methods as well, unless they are nested\n                // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`\n                // methods entirely.\n                stringify(value) === \"1\" &&\n                stringify([value]) == \"[1]\" &&\n                // Prototype <= 1.6.1 serializes `[undefined]` as `\"[]\"` instead of\n                // `\"[null]\"`.\n                stringify([undef]) == \"[null]\" &&\n                // YUI 3.0.0b1 fails to serialize `null` literals.\n                stringify(null) == \"null\" &&\n                // FF 3.1b1, 2 halts serialization if an array contains a function:\n                // `[1, true, getClass, 1]` serializes as \"[1,true,],\". FF 3.1b3\n                // elides non-JSON values from objects and arrays, unless they\n                // define custom `toJSON` methods.\n                stringify([undef, getClass, null]) == \"[null,null,null]\" &&\n                // Simple serialization test. FF 3.1b1 uses Unicode escape sequences\n                // where character escape codes are expected (e.g., `\\b` => `\\u0008`).\n                stringify({ \"a\": [value, true, false, null, \"\\x00\\b\\n\\f\\r\\t\"] }) == serialized &&\n                // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.\n                stringify(null, value) === \"1\" &&\n                stringify([1, 2], null, 1) == \"[\\n 1,\\n 2\\n]\" &&\n                // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly\n                // serialize extended years.\n                stringify(new Date(-8.64e15)) == '\"-271821-04-20T00:00:00.000Z\"' &&\n                // The milliseconds are optional in ES 5, but required in 5.1.\n                stringify(new Date(8.64e15)) == '\"+275760-09-13T00:00:00.000Z\"' &&\n                // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative\n                // four-digit years instead of six-digit years. Credits: @Yaffle.\n                stringify(new Date(-621987552e5)) == '\"-000001-01-01T00:00:00.000Z\"' &&\n                // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond\n                // values less than 1000. Credits: @Yaffle.\n                stringify(new Date(-1)) == '\"1969-12-31T23:59:59.999Z\"';\n            } catch (exception) {\n              stringifySupported = false;\n            }\n          }\n          isSupported = stringifySupported;\n        }\n        // Test `JSON.parse`.\n        if (name == \"json-parse\") {\n          var parse = exports.parse;\n          if (typeof parse == \"function\") {\n            try {\n              // FF 3.1b1, b2 will throw an exception if a bare literal is provided.\n              // Conforming implementations should also coerce the initial argument to\n              // a string prior to parsing.\n              if (parse(\"0\") === 0 && !parse(false)) {\n                // Simple parsing test.\n                value = parse(serialized);\n                var parseSupported = value[\"a\"].length == 5 && value[\"a\"][0] === 1;\n                if (parseSupported) {\n                  try {\n                    // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.\n                    parseSupported = !parse('\"\\t\"');\n                  } catch (exception) {}\n                  if (parseSupported) {\n                    try {\n                      // FF 4.0 and 4.0.1 allow leading `+` signs and leading\n                      // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow\n                      // certain octal literals.\n                      parseSupported = parse(\"01\") !== 1;\n                    } catch (exception) {}\n                  }\n                  if (parseSupported) {\n                    try {\n                      // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal\n                      // points. These environments, along with FF 3.1b1 and 2,\n                      // also allow trailing commas in JSON objects and arrays.\n                      parseSupported = parse(\"1.\") !== 1;\n                    } catch (exception) {}\n                  }\n                }\n              }\n            } catch (exception) {\n              parseSupported = false;\n            }\n          }\n          isSupported = parseSupported;\n        }\n      }\n      return has[name] = !!isSupported;\n    }\n\n    if (!has(\"json\")) {\n      // Common `[[Class]]` name aliases.\n      var functionClass = \"[object Function]\",\n          dateClass = \"[object Date]\",\n          numberClass = \"[object Number]\",\n          stringClass = \"[object String]\",\n          arrayClass = \"[object Array]\",\n          booleanClass = \"[object Boolean]\";\n\n      // Detect incomplete support for accessing string characters by index.\n      var charIndexBuggy = has(\"bug-string-char-index\");\n\n      // Define additional utility methods if the `Date` methods are buggy.\n      if (!isExtended) {\n        var floor = Math.floor;\n        // A mapping between the months of the year and the number of days between\n        // January 1st and the first of the respective month.\n        var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n        // Internal: Calculates the number of days between the Unix epoch and the\n        // first day of the given month.\n        var getDay = function (year, month) {\n          return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);\n        };\n      }\n\n      // Internal: Determines if a property is a direct property of the given\n      // object. Delegates to the native `Object#hasOwnProperty` method.\n      if (!(isProperty = objectProto.hasOwnProperty)) {\n        isProperty = function (property) {\n          var members = {}, constructor;\n          if ((members.__proto__ = null, members.__proto__ = {\n            // The *proto* property cannot be set multiple times in recent\n            // versions of Firefox and SeaMonkey.\n            \"toString\": 1\n          }, members).toString != getClass) {\n            // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but\n            // supports the mutable *proto* property.\n            isProperty = function (property) {\n              // Capture and break the object's prototype chain (see section 8.6.2\n              // of the ES 5.1 spec). The parenthesized expression prevents an\n              // unsafe transformation by the Closure Compiler.\n              var original = this.__proto__, result = property in (this.__proto__ = null, this);\n              // Restore the original prototype chain.\n              this.__proto__ = original;\n              return result;\n            };\n          } else {\n            // Capture a reference to the top-level `Object` constructor.\n            constructor = members.constructor;\n            // Use the `constructor` property to simulate `Object#hasOwnProperty` in\n            // other environments.\n            isProperty = function (property) {\n              var parent = (this.constructor || constructor).prototype;\n              return property in this && !(property in parent && this[property] === parent[property]);\n            };\n          }\n          members = null;\n          return isProperty.call(this, property);\n        };\n      }\n\n      // Internal: Normalizes the `for...in` iteration algorithm across\n      // environments. Each enumerated key is yielded to a `callback` function.\n      forEach = function (object, callback) {\n        var size = 0, Properties, members, property;\n\n        // Tests for bugs in the current environment's `for...in` algorithm. The\n        // `valueOf` property inherits the non-enumerable flag from\n        // `Object.prototype` in older versions of IE, Netscape, and Mozilla.\n        (Properties = function () {\n          this.valueOf = 0;\n        }).prototype.valueOf = 0;\n\n        // Iterate over a new instance of the `Properties` class.\n        members = new Properties();\n        for (property in members) {\n          // Ignore all properties inherited from `Object.prototype`.\n          if (isProperty.call(members, property)) {\n            size++;\n          }\n        }\n        Properties = members = null;\n\n        // Normalize the iteration algorithm.\n        if (!size) {\n          // A list of non-enumerable properties inherited from `Object.prototype`.\n          members = [\"valueOf\", \"toString\", \"toLocaleString\", \"propertyIsEnumerable\", \"isPrototypeOf\", \"hasOwnProperty\", \"constructor\"];\n          // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable\n          // properties.\n          forEach = function (object, callback) {\n            var isFunction = getClass.call(object) == functionClass, property, length;\n            var hasProperty = !isFunction && typeof object.constructor != \"function\" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty;\n            for (property in object) {\n              // Gecko <= 1.0 enumerates the `prototype` property of functions under\n              // certain conditions; IE does not.\n              if (!(isFunction && property == \"prototype\") && hasProperty.call(object, property)) {\n                callback(property);\n              }\n            }\n            // Manually invoke the callback for each non-enumerable property.\n            for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property));\n          };\n        } else if (size == 2) {\n          // Safari <= 2.0.4 enumerates shadowed properties twice.\n          forEach = function (object, callback) {\n            // Create a set of iterated properties.\n            var members = {}, isFunction = getClass.call(object) == functionClass, property;\n            for (property in object) {\n              // Store each property name to prevent double enumeration. The\n              // `prototype` property of functions is not enumerated due to cross-\n              // environment inconsistencies.\n              if (!(isFunction && property == \"prototype\") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) {\n                callback(property);\n              }\n            }\n          };\n        } else {\n          // No bugs detected; use the standard `for...in` algorithm.\n          forEach = function (object, callback) {\n            var isFunction = getClass.call(object) == functionClass, property, isConstructor;\n            for (property in object) {\n              if (!(isFunction && property == \"prototype\") && isProperty.call(object, property) && !(isConstructor = property === \"constructor\")) {\n                callback(property);\n              }\n            }\n            // Manually invoke the callback for the `constructor` property due to\n            // cross-environment inconsistencies.\n            if (isConstructor || isProperty.call(object, (property = \"constructor\"))) {\n              callback(property);\n            }\n          };\n        }\n        return forEach(object, callback);\n      };\n\n      // Public: Serializes a JavaScript `value` as a JSON string. The optional\n      // `filter` argument may specify either a function that alters how object and\n      // array members are serialized, or an array of strings and numbers that\n      // indicates which properties should be serialized. The optional `width`\n      // argument may be either a string or number that specifies the indentation\n      // level of the output.\n      if (!has(\"json-stringify\")) {\n        // Internal: A map of control characters and their escaped equivalents.\n        var Escapes = {\n          92: \"\\\\\\\\\",\n          34: '\\\\\"',\n          8: \"\\\\b\",\n          12: \"\\\\f\",\n          10: \"\\\\n\",\n          13: \"\\\\r\",\n          9: \"\\\\t\"\n        };\n\n        // Internal: Converts `value` into a zero-padded string such that its\n        // length is at least equal to `width`. The `width` must be <= 6.\n        var leadingZeroes = \"000000\";\n        var toPaddedString = function (width, value) {\n          // The `|| 0` expression is necessary to work around a bug in\n          // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== \"0\"`.\n          return (leadingZeroes + (value || 0)).slice(-width);\n        };\n\n        // Internal: Double-quotes a string `value`, replacing all ASCII control\n        // characters (characters with code unit values between 0 and 31) with\n        // their escaped equivalents. This is an implementation of the\n        // `Quote(value)` operation defined in ES 5.1 section 15.12.3.\n        var unicodePrefix = \"\\\\u00\";\n        var quote = function (value) {\n          var result = '\"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10;\n          var symbols = useCharIndex && (charIndexBuggy ? value.split(\"\") : value);\n          for (; index < length; index++) {\n            var charCode = value.charCodeAt(index);\n            // If the character is a control character, append its Unicode or\n            // shorthand escape sequence; otherwise, append the character as-is.\n            switch (charCode) {\n              case 8: case 9: case 10: case 12: case 13: case 34: case 92:\n                result += Escapes[charCode];\n                break;\n              default:\n                if (charCode < 32) {\n                  result += unicodePrefix + toPaddedString(2, charCode.toString(16));\n                  break;\n                }\n                result += useCharIndex ? symbols[index] : value.charAt(index);\n            }\n          }\n          return result + '\"';\n        };\n\n        // Internal: Recursively serializes an object. Implements the\n        // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.\n        var serialize = function (property, object, callback, properties, whitespace, indentation, stack) {\n          var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result;\n          try {\n            // Necessary for host object support.\n            value = object[property];\n          } catch (exception) {}\n          if (typeof value == \"object\" && value) {\n            className = getClass.call(value);\n            if (className == dateClass && !isProperty.call(value, \"toJSON\")) {\n              if (value > -1 / 0 && value < 1 / 0) {\n                // Dates are serialized according to the `Date#toJSON` method\n                // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15\n                // for the ISO 8601 date time string format.\n                if (getDay) {\n                  // Manually compute the year, month, date, hours, minutes,\n                  // seconds, and milliseconds if the `getUTC*` methods are\n                  // buggy. Adapted from @Yaffle's `date-shim` project.\n                  date = floor(value / 864e5);\n                  for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);\n                  for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);\n                  date = 1 + date - getDay(year, month);\n                  // The `time` value specifies the time within the day (see ES\n                  // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used\n                  // to compute `A modulo B`, as the `%` operator does not\n                  // correspond to the `modulo` operation for negative numbers.\n                  time = (value % 864e5 + 864e5) % 864e5;\n                  // The hours, minutes, seconds, and milliseconds are obtained by\n                  // decomposing the time within the day. See section 15.9.1.10.\n                  hours = floor(time / 36e5) % 24;\n                  minutes = floor(time / 6e4) % 60;\n                  seconds = floor(time / 1e3) % 60;\n                  milliseconds = time % 1e3;\n                } else {\n                  year = value.getUTCFullYear();\n                  month = value.getUTCMonth();\n                  date = value.getUTCDate();\n                  hours = value.getUTCHours();\n                  minutes = value.getUTCMinutes();\n                  seconds = value.getUTCSeconds();\n                  milliseconds = value.getUTCMilliseconds();\n                }\n                // Serialize extended years correctly.\n                value = (year <= 0 || year >= 1e4 ? (year < 0 ? \"-\" : \"+\") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +\n                  \"-\" + toPaddedString(2, month + 1) + \"-\" + toPaddedString(2, date) +\n                  // Months, dates, hours, minutes, and seconds should have two\n                  // digits; milliseconds should have three.\n                  \"T\" + toPaddedString(2, hours) + \":\" + toPaddedString(2, minutes) + \":\" + toPaddedString(2, seconds) +\n                  // Milliseconds are optional in ES 5.0, but required in 5.1.\n                  \".\" + toPaddedString(3, milliseconds) + \"Z\";\n              } else {\n                value = null;\n              }\n            } else if (typeof value.toJSON == \"function\" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, \"toJSON\"))) {\n              // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the\n              // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3\n              // ignores all `toJSON` methods on these objects unless they are\n              // defined directly on an instance.\n              value = value.toJSON(property);\n            }\n          }\n          if (callback) {\n            // If a replacement function was provided, call it to obtain the value\n            // for serialization.\n            value = callback.call(object, property, value);\n          }\n          if (value === null) {\n            return \"null\";\n          }\n          className = getClass.call(value);\n          if (className == booleanClass) {\n            // Booleans are represented literally.\n            return \"\" + value;\n          } else if (className == numberClass) {\n            // JSON numbers must be finite. `Infinity` and `NaN` are serialized as\n            // `\"null\"`.\n            return value > -1 / 0 && value < 1 / 0 ? \"\" + value : \"null\";\n          } else if (className == stringClass) {\n            // Strings are double-quoted and escaped.\n            return quote(\"\" + value);\n          }\n          // Recursively serialize objects and arrays.\n          if (typeof value == \"object\") {\n            // Check for cyclic structures. This is a linear search; performance\n            // is inversely proportional to the number of unique nested objects.\n            for (length = stack.length; length--;) {\n              if (stack[length] === value) {\n                // Cyclic structures cannot be serialized by `JSON.stringify`.\n                throw TypeError();\n              }\n            }\n            // Add the object to the stack of traversed objects.\n            stack.push(value);\n            results = [];\n            // Save the current indentation level and indent one additional level.\n            prefix = indentation;\n            indentation += whitespace;\n            if (className == arrayClass) {\n              // Recursively serialize array elements.\n              for (index = 0, length = value.length; index < length; index++) {\n                element = serialize(index, value, callback, properties, whitespace, indentation, stack);\n                results.push(element === undef ? \"null\" : element);\n              }\n              result = results.length ? (whitespace ? \"[\\n\" + indentation + results.join(\",\\n\" + indentation) + \"\\n\" + prefix + \"]\" : (\"[\" + results.join(\",\") + \"]\")) : \"[]\";\n            } else {\n              // Recursively serialize object members. Members are selected from\n              // either a user-specified list of property names, or the object\n              // itself.\n              forEach(properties || value, function (property) {\n                var element = serialize(property, value, callback, properties, whitespace, indentation, stack);\n                if (element !== undef) {\n                  // According to ES 5.1 section 15.12.3: \"If `gap` {whitespace}\n                  // is not the empty string, let `member` {quote(property) + \":\"}\n                  // be the concatenation of `member` and the `space` character.\"\n                  // The \"`space` character\" refers to the literal space\n                  // character, not the `space` {width} argument provided to\n                  // `JSON.stringify`.\n                  results.push(quote(property) + \":\" + (whitespace ? \" \" : \"\") + element);\n                }\n              });\n              result = results.length ? (whitespace ? \"{\\n\" + indentation + results.join(\",\\n\" + indentation) + \"\\n\" + prefix + \"}\" : (\"{\" + results.join(\",\") + \"}\")) : \"{}\";\n            }\n            // Remove the object from the traversed object stack.\n            stack.pop();\n            return result;\n          }\n        };\n\n        // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.\n        exports.stringify = function (source, filter, width) {\n          var whitespace, callback, properties, className;\n          if (objectTypes[typeof filter] && filter) {\n            if ((className = getClass.call(filter)) == functionClass) {\n              callback = filter;\n            } else if (className == arrayClass) {\n              // Convert the property names array into a makeshift set.\n              properties = {};\n              for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1));\n            }\n          }\n          if (width) {\n            if ((className = getClass.call(width)) == numberClass) {\n              // Convert the `width` to an integer and create a string containing\n              // `width` number of space characters.\n              if ((width -= width % 1) > 0) {\n                for (whitespace = \"\", width > 10 && (width = 10); whitespace.length < width; whitespace += \" \");\n              }\n            } else if (className == stringClass) {\n              whitespace = width.length <= 10 ? width : width.slice(0, 10);\n            }\n          }\n          // Opera <= 7.54u2 discards the values associated with empty string keys\n          // (`\"\"`) only if they are used directly within an object member list\n          // (e.g., `!(\"\" in { \"\": 1})`).\n          return serialize(\"\", (value = {}, value[\"\"] = source, value), callback, properties, whitespace, \"\", []);\n        };\n      }\n\n      // Public: Parses a JSON source string.\n      if (!has(\"json-parse\")) {\n        var fromCharCode = String.fromCharCode;\n\n        // Internal: A map of escaped control characters and their unescaped\n        // equivalents.\n        var Unescapes = {\n          92: \"\\\\\",\n          34: '\"',\n          47: \"/\",\n          98: \"\\b\",\n          116: \"\\t\",\n          110: \"\\n\",\n          102: \"\\f\",\n          114: \"\\r\"\n        };\n\n        // Internal: Stores the parser state.\n        var Index, Source;\n\n        // Internal: Resets the parser state and throws a `SyntaxError`.\n        var abort = function () {\n          Index = Source = null;\n          throw SyntaxError();\n        };\n\n        // Internal: Returns the next token, or `\"$\"` if the parser has reached\n        // the end of the source string. A token may be a string, number, `null`\n        // literal, or Boolean literal.\n        var lex = function () {\n          var source = Source, length = source.length, value, begin, position, isSigned, charCode;\n          while (Index < length) {\n            charCode = source.charCodeAt(Index);\n            switch (charCode) {\n              case 9: case 10: case 13: case 32:\n                // Skip whitespace tokens, including tabs, carriage returns, line\n                // feeds, and space characters.\n                Index++;\n                break;\n              case 123: case 125: case 91: case 93: case 58: case 44:\n                // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at\n                // the current position.\n                value = charIndexBuggy ? source.charAt(Index) : source[Index];\n                Index++;\n                return value;\n              case 34:\n                // `\"` delimits a JSON string; advance to the next character and\n                // begin parsing the string. String tokens are prefixed with the\n                // sentinel `@` character to distinguish them from punctuators and\n                // end-of-string tokens.\n                for (value = \"@\", Index++; Index < length;) {\n                  charCode = source.charCodeAt(Index);\n                  if (charCode < 32) {\n                    // Unescaped ASCII control characters (those with a code unit\n                    // less than the space character) are not permitted.\n                    abort();\n                  } else if (charCode == 92) {\n                    // A reverse solidus (`\\`) marks the beginning of an escaped\n                    // control character (including `\"`, `\\`, and `/`) or Unicode\n                    // escape sequence.\n                    charCode = source.charCodeAt(++Index);\n                    switch (charCode) {\n                      case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:\n                        // Revive escaped control characters.\n                        value += Unescapes[charCode];\n                        Index++;\n                        break;\n                      case 117:\n                        // `\\u` marks the beginning of a Unicode escape sequence.\n                        // Advance to the first character and validate the\n                        // four-digit code point.\n                        begin = ++Index;\n                        for (position = Index + 4; Index < position; Index++) {\n                          charCode = source.charCodeAt(Index);\n                          // A valid sequence comprises four hexdigits (case-\n                          // insensitive) that form a single hexadecimal value.\n                          if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {\n                            // Invalid Unicode escape sequence.\n                            abort();\n                          }\n                        }\n                        // Revive the escaped character.\n                        value += fromCharCode(\"0x\" + source.slice(begin, Index));\n                        break;\n                      default:\n                        // Invalid escape sequence.\n                        abort();\n                    }\n                  } else {\n                    if (charCode == 34) {\n                      // An unescaped double-quote character marks the end of the\n                      // string.\n                      break;\n                    }\n                    charCode = source.charCodeAt(Index);\n                    begin = Index;\n                    // Optimize for the common case where a string is valid.\n                    while (charCode >= 32 && charCode != 92 && charCode != 34) {\n                      charCode = source.charCodeAt(++Index);\n                    }\n                    // Append the string as-is.\n                    value += source.slice(begin, Index);\n                  }\n                }\n                if (source.charCodeAt(Index) == 34) {\n                  // Advance to the next character and return the revived string.\n                  Index++;\n                  return value;\n                }\n                // Unterminated string.\n                abort();\n              default:\n                // Parse numbers and literals.\n                begin = Index;\n                // Advance past the negative sign, if one is specified.\n                if (charCode == 45) {\n                  isSigned = true;\n                  charCode = source.charCodeAt(++Index);\n                }\n                // Parse an integer or floating-point value.\n                if (charCode >= 48 && charCode <= 57) {\n                  // Leading zeroes are interpreted as octal literals.\n                  if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {\n                    // Illegal octal literal.\n                    abort();\n                  }\n                  isSigned = false;\n                  // Parse the integer component.\n                  for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);\n                  // Floats cannot contain a leading decimal point; however, this\n                  // case is already accounted for by the parser.\n                  if (source.charCodeAt(Index) == 46) {\n                    position = ++Index;\n                    // Parse the decimal component.\n                    for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);\n                    if (position == Index) {\n                      // Illegal trailing decimal.\n                      abort();\n                    }\n                    Index = position;\n                  }\n                  // Parse exponents. The `e` denoting the exponent is\n                  // case-insensitive.\n                  charCode = source.charCodeAt(Index);\n                  if (charCode == 101 || charCode == 69) {\n                    charCode = source.charCodeAt(++Index);\n                    // Skip past the sign following the exponent, if one is\n                    // specified.\n                    if (charCode == 43 || charCode == 45) {\n                      Index++;\n                    }\n                    // Parse the exponential component.\n                    for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);\n                    if (position == Index) {\n                      // Illegal empty exponent.\n                      abort();\n                    }\n                    Index = position;\n                  }\n                  // Coerce the parsed value to a JavaScript number.\n                  return +source.slice(begin, Index);\n                }\n                // A negative sign may only precede numbers.\n                if (isSigned) {\n                  abort();\n                }\n                // `true`, `false`, and `null` literals.\n                if (source.slice(Index, Index + 4) == \"true\") {\n                  Index += 4;\n                  return true;\n                } else if (source.slice(Index, Index + 5) == \"false\") {\n                  Index += 5;\n                  return false;\n                } else if (source.slice(Index, Index + 4) == \"null\") {\n                  Index += 4;\n                  return null;\n                }\n                // Unrecognized token.\n                abort();\n            }\n          }\n          // Return the sentinel `$` character if the parser has reached the end\n          // of the source string.\n          return \"$\";\n        };\n\n        // Internal: Parses a JSON `value` token.\n        var get = function (value) {\n          var results, hasMembers;\n          if (value == \"$\") {\n            // Unexpected end of input.\n            abort();\n          }\n          if (typeof value == \"string\") {\n            if ((charIndexBuggy ? value.charAt(0) : value[0]) == \"@\") {\n              // Remove the sentinel `@` character.\n              return value.slice(1);\n            }\n            // Parse object and array literals.\n            if (value == \"[\") {\n              // Parses a JSON array, returning a new JavaScript array.\n              results = [];\n              for (;; hasMembers || (hasMembers = true)) {\n                value = lex();\n                // A closing square bracket marks the end of the array literal.\n                if (value == \"]\") {\n                  break;\n                }\n                // If the array literal contains elements, the current token\n                // should be a comma separating the previous element from the\n                // next.\n                if (hasMembers) {\n                  if (value == \",\") {\n                    value = lex();\n                    if (value == \"]\") {\n                      // Unexpected trailing `,` in array literal.\n                      abort();\n                    }\n                  } else {\n                    // A `,` must separate each array element.\n                    abort();\n                  }\n                }\n                // Elisions and leading commas are not permitted.\n                if (value == \",\") {\n                  abort();\n                }\n                results.push(get(value));\n              }\n              return results;\n            } else if (value == \"{\") {\n              // Parses a JSON object, returning a new JavaScript object.\n              results = {};\n              for (;; hasMembers || (hasMembers = true)) {\n                value = lex();\n                // A closing curly brace marks the end of the object literal.\n                if (value == \"}\") {\n                  break;\n                }\n                // If the object literal contains members, the current token\n                // should be a comma separator.\n                if (hasMembers) {\n                  if (value == \",\") {\n                    value = lex();\n                    if (value == \"}\") {\n                      // Unexpected trailing `,` in object literal.\n                      abort();\n                    }\n                  } else {\n                    // A `,` must separate each object member.\n                    abort();\n                  }\n                }\n                // Leading commas are not permitted, object property names must be\n                // double-quoted strings, and a `:` must separate each property\n                // name and value.\n                if (value == \",\" || typeof value != \"string\" || (charIndexBuggy ? value.charAt(0) : value[0]) != \"@\" || lex() != \":\") {\n                  abort();\n                }\n                results[value.slice(1)] = get(lex());\n              }\n              return results;\n            }\n            // Unexpected token encountered.\n            abort();\n          }\n          return value;\n        };\n\n        // Internal: Updates a traversed object member.\n        var update = function (source, property, callback) {\n          var element = walk(source, property, callback);\n          if (element === undef) {\n            delete source[property];\n          } else {\n            source[property] = element;\n          }\n        };\n\n        // Internal: Recursively traverses a parsed JSON object, invoking the\n        // `callback` function for each value. This is an implementation of the\n        // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.\n        var walk = function (source, property, callback) {\n          var value = source[property], length;\n          if (typeof value == \"object\" && value) {\n            // `forEach` can't be used to traverse an array in Opera <= 8.54\n            // because its `Object#hasOwnProperty` implementation returns `false`\n            // for array indices (e.g., `![1, 2, 3].hasOwnProperty(\"0\")`).\n            if (getClass.call(value) == arrayClass) {\n              for (length = value.length; length--;) {\n                update(value, length, callback);\n              }\n            } else {\n              forEach(value, function (property) {\n                update(value, property, callback);\n              });\n            }\n          }\n          return callback.call(source, property, value);\n        };\n\n        // Public: `JSON.parse`. See ES 5.1 section 15.12.2.\n        exports.parse = function (source, callback) {\n          var result, value;\n          Index = 0;\n          Source = \"\" + source;\n          result = get(lex());\n          // If a JSON string contains multiple tokens, it is invalid.\n          if (lex() != \"$\") {\n            abort();\n          }\n          // Reset the parser state.\n          Index = Source = null;\n          return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[\"\"] = result, value), \"\", callback) : result;\n        };\n      }\n    }\n\n    exports[\"runInContext\"] = runInContext;\n    return exports;\n  }\n\n  if (freeExports && !isLoader) {\n    // Export for CommonJS environments.\n    runInContext(root, freeExports);\n  } else {\n    // Export for web browsers and JavaScript engines.\n    var nativeJSON = root.JSON,\n        previousJSON = root[\"JSON3\"],\n        isRestored = false;\n\n    var JSON3 = runInContext(root, (root[\"JSON3\"] = {\n      // Public: Restores the original value of the global `JSON` object and\n      // returns a reference to the `JSON3` object.\n      \"noConflict\": function () {\n        if (!isRestored) {\n          isRestored = true;\n          root.JSON = nativeJSON;\n          root[\"JSON3\"] = previousJSON;\n          nativeJSON = previousJSON = null;\n        }\n        return JSON3;\n      }\n    }));\n\n    root.JSON = {\n      \"parse\": JSON3.parse,\n      \"stringify\": JSON3.stringify\n    };\n  }\n\n  // Export for asynchronous module loaders.\n  if (isLoader) {\n    define(function () {\n      return JSON3;\n    });\n  }\n}).call(this);\n"
    },
    {
      "id": 44,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/webpack/buildin/amd-options.js",
      "name": "(webpack)/buildin/amd-options.js",
      "index": 44,
      "index2": 37,
      "size": 43,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/node_modules/json3/lib/json3.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 43,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/node_modules/json3/lib/json3.js",
          "module": "./~/sockjs-client/~/json3/lib/json3.js",
          "moduleName": "./~/sockjs-client/~/json3/lib/json3.js",
          "type": "amd require",
          "userRequest": {
            "range": [
              333,
              343
            ],
            "loc": {
              "start": {
                "line": 5,
                "column": 49
              },
              "end": {
                "line": 5,
                "column": 59
              }
            },
            "type": "MemberExpression",
            "computed": false,
            "object": {
              "range": [
                333,
                339
              ],
              "loc": {
                "start": {
                  "line": 5,
                  "column": 49
                },
                "end": {
                  "line": 5,
                  "column": 55
                }
              },
              "type": "Identifier",
              "name": "define"
            },
            "property": {
              "range": [
                340,
                343
              ],
              "loc": {
                "start": {
                  "line": 5,
                  "column": 56
                },
                "end": {
                  "line": 5,
                  "column": 59
                }
              },
              "type": "Identifier",
              "name": "amd"
            }
          },
          "loc": "5:49-59"
        }
      ],
      "source": "module.exports = __webpack_amd_options__;\r\n"
    },
    {
      "id": 45,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/version.js",
      "name": "./~/sockjs-client/lib/version.js",
      "index": 45,
      "index2": 39,
      "size": 25,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "../version",
          "loc": "14:14-35"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./version",
          "loc": "167:17-37"
        }
      ],
      "source": "module.exports = '1.0.3';"
    },
    {
      "id": 46,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/iframe.js",
      "name": "./~/sockjs-client/lib/utils/iframe.js",
      "index": 46,
      "index2": 40,
      "size": 4950,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 42,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/iframe.js",
          "module": "./~/sockjs-client/lib/transport/iframe.js",
          "moduleName": "./~/sockjs-client/lib/transport/iframe.js",
          "type": "cjs require",
          "userRequest": "../utils/iframe",
          "loc": "16:18-44"
        },
        {
          "moduleId": 49,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
          "type": "cjs require",
          "userRequest": "../../utils/iframe",
          "loc": "4:18-47"
        },
        {
          "moduleId": 53,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
          "module": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "moduleName": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
          "type": "cjs require",
          "userRequest": "../../utils/iframe",
          "loc": "3:12-41"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "./utils/iframe",
          "loc": "8:18-43"
        },
        {
          "moduleId": 70,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/facade.js",
          "module": "./~/sockjs-client/lib/facade.js",
          "moduleName": "./~/sockjs-client/lib/facade.js",
          "type": "cjs require",
          "userRequest": "./utils/iframe",
          "loc": "4:18-43"
        }
      ],
      "source": "'use strict';\n\nvar eventUtils = require('./event')\n  , JSON3 = require('json3')\n  , browser = require('./browser')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:utils:iframe');\n}\n\nmodule.exports = {\n  WPrefix: '_jp'\n, currentWindowId: null\n\n, polluteGlobalNamespace: function() {\n    if (!(module.exports.WPrefix in global)) {\n      global[module.exports.WPrefix] = {};\n    }\n  }\n\n, postMessage: function(type, data) {\n    if (global.parent !== global) {\n      global.parent.postMessage(JSON3.stringify({\n        windowId: module.exports.currentWindowId\n      , type: type\n      , data: data || ''\n      }), '*');\n    } else {\n      debug('Cannot postMessage, no parent window.', type, data);\n    }\n  }\n\n, createIframe: function(iframeUrl, errorCallback) {\n    var iframe = global.document.createElement('iframe');\n    var tref, unloadRef;\n    var unattach = function() {\n      debug('unattach');\n      clearTimeout(tref);\n      // Explorer had problems with that.\n      try {\n        iframe.onload = null;\n      } catch (x) {}\n      iframe.onerror = null;\n    };\n    var cleanup = function() {\n      debug('cleanup');\n      if (iframe) {\n        unattach();\n        // This timeout makes chrome fire onbeforeunload event\n        // within iframe. Without the timeout it goes straight to\n        // onunload.\n        setTimeout(function() {\n          if (iframe) {\n            iframe.parentNode.removeChild(iframe);\n          }\n          iframe = null;\n        }, 0);\n        eventUtils.unloadDel(unloadRef);\n      }\n    };\n    var onerror = function(err) {\n      debug('onerror', err);\n      if (iframe) {\n        cleanup();\n        errorCallback(err);\n      }\n    };\n    var post = function(msg, origin) {\n      debug('post', msg, origin);\n      try {\n        // When the iframe is not loaded, IE raises an exception\n        // on 'contentWindow'.\n        setTimeout(function() {\n          if (iframe && iframe.contentWindow) {\n            iframe.contentWindow.postMessage(msg, origin);\n          }\n        }, 0);\n      } catch (x) {}\n    };\n\n    iframe.src = iframeUrl;\n    iframe.style.display = 'none';\n    iframe.style.position = 'absolute';\n    iframe.onerror = function() {\n      onerror('onerror');\n    };\n    iframe.onload = function() {\n      debug('onload');\n      // `onload` is triggered before scripts on the iframe are\n      // executed. Give it few seconds to actually load stuff.\n      clearTimeout(tref);\n      tref = setTimeout(function() {\n        onerror('onload timeout');\n      }, 2000);\n    };\n    global.document.body.appendChild(iframe);\n    tref = setTimeout(function() {\n      onerror('timeout');\n    }, 15000);\n    unloadRef = eventUtils.unloadAdd(cleanup);\n    return {\n      post: post\n    , cleanup: cleanup\n    , loaded: unattach\n    };\n  }\n\n/* jshint undef: false, newcap: false */\n/* eslint no-undef: 0, new-cap: 0 */\n, createHtmlfile: function(iframeUrl, errorCallback) {\n    var axo = ['Active'].concat('Object').join('X');\n    var doc = new global[axo]('htmlfile');\n    var tref, unloadRef;\n    var iframe;\n    var unattach = function() {\n      clearTimeout(tref);\n      iframe.onerror = null;\n    };\n    var cleanup = function() {\n      if (doc) {\n        unattach();\n        eventUtils.unloadDel(unloadRef);\n        iframe.parentNode.removeChild(iframe);\n        iframe = doc = null;\n        CollectGarbage();\n      }\n    };\n    var onerror = function(r)  {\n      debug('onerror', r);\n      if (doc) {\n        cleanup();\n        errorCallback(r);\n      }\n    };\n    var post = function(msg, origin) {\n      try {\n        // When the iframe is not loaded, IE raises an exception\n        // on 'contentWindow'.\n        setTimeout(function() {\n          if (iframe && iframe.contentWindow) {\n              iframe.contentWindow.postMessage(msg, origin);\n          }\n        }, 0);\n      } catch (x) {}\n    };\n\n    doc.open();\n    doc.write('<html><s' + 'cript>' +\n              'document.domain=\"' + global.document.domain + '\";' +\n              '</s' + 'cript></html>');\n    doc.close();\n    doc.parentWindow[module.exports.WPrefix] = global[module.exports.WPrefix];\n    var c = doc.createElement('div');\n    doc.body.appendChild(c);\n    iframe = doc.createElement('iframe');\n    c.appendChild(iframe);\n    iframe.src = iframeUrl;\n    iframe.onerror = function() {\n      onerror('onerror');\n    };\n    tref = setTimeout(function() {\n      onerror('timeout');\n    }, 15000);\n    unloadRef = eventUtils.unloadAdd(cleanup);\n    return {\n      post: post\n    , cleanup: cleanup\n    , loaded: unattach\n    };\n  }\n};\n\nmodule.exports.iframeEnabled = false;\nif (global.document) {\n  // postMessage misbehaves in konqueror 4.6.5 - the messages are delivered with\n  // huge delay, or not at all.\n  module.exports.iframeEnabled = (typeof global.postMessage === 'function' ||\n    typeof global.postMessage === 'object') && (!browser.isKonqueror());\n}\n"
    },
    {
      "id": 47,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/object.js",
      "name": "./~/sockjs-client/lib/utils/object.js",
      "index": 47,
      "index2": 42,
      "size": 532,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 41,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "module": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "moduleName": "./~/sockjs-client/lib/transport/lib/iframe-wrap.js",
          "type": "cjs require",
          "userRequest": "../../utils/object",
          "loc": "5:18-47"
        },
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/object",
          "loc": "13:18-43"
        },
        {
          "moduleId": 68,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-ajax.js",
          "module": "./~/sockjs-client/lib/info-ajax.js",
          "moduleName": "./~/sockjs-client/lib/info-ajax.js",
          "type": "cjs require",
          "userRequest": "./utils/object",
          "loc": "6:18-43"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = {\n  isObject: function(obj) {\n    var type = typeof obj;\n    return type === 'function' || type === 'object' && !!obj;\n  }\n\n, extend: function(obj) {\n    if (!this.isObject(obj)) {\n      return obj;\n    }\n    var source, prop;\n    for (var i = 1, length = arguments.length; i < length; i++) {\n      source = arguments[i];\n      for (prop in source) {\n        if (Object.prototype.hasOwnProperty.call(source, prop)) {\n          obj[prop] = source[prop];\n        }\n      }\n    }\n    return obj;\n  }\n};\n"
    },
    {
      "id": 48,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/htmlfile.js",
      "name": "./~/sockjs-client/lib/transport/htmlfile.js",
      "index": 48,
      "index2": 45,
      "size": 710,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/htmlfile",
          "loc": "12:2-33"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/htmlfile",
          "loc": "13:41-72"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , HtmlfileReceiver = require('./receiver/htmlfile')\n  , XHRLocalObject = require('./sender/xhr-local')\n  , AjaxBasedTransport = require('./lib/ajax-based')\n  ;\n\nfunction HtmlFileTransport(transUrl) {\n  if (!HtmlfileReceiver.enabled) {\n    throw new Error('Transport created when disabled');\n  }\n  AjaxBasedTransport.call(this, transUrl, '/htmlfile', HtmlfileReceiver, XHRLocalObject);\n}\n\ninherits(HtmlFileTransport, AjaxBasedTransport);\n\nHtmlFileTransport.enabled = function(info) {\n  return HtmlfileReceiver.enabled && info.sameOrigin;\n};\n\nHtmlFileTransport.transportName = 'htmlfile';\nHtmlFileTransport.roundTrips = 2;\n\nmodule.exports = HtmlFileTransport;\n"
    },
    {
      "id": 49,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/htmlfile.js",
      "name": "./~/sockjs-client/lib/transport/receiver/htmlfile.js",
      "index": 49,
      "index2": 44,
      "size": 2174,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/htmlfile.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 48,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/htmlfile.js",
          "module": "./~/sockjs-client/lib/transport/htmlfile.js",
          "moduleName": "./~/sockjs-client/lib/transport/htmlfile.js",
          "type": "cjs require",
          "userRequest": "./receiver/htmlfile",
          "loc": "4:23-53"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , iframeUtils = require('../../utils/iframe')\n  , urlUtils = require('../../utils/url')\n  , EventEmitter = require('events').EventEmitter\n  , random = require('../../utils/random')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:receiver:htmlfile');\n}\n\nfunction HtmlfileReceiver(url) {\n  debug(url);\n  EventEmitter.call(this);\n  var self = this;\n  iframeUtils.polluteGlobalNamespace();\n\n  this.id = 'a' + random.string(6);\n  url = urlUtils.addQuery(url, 'c=' + decodeURIComponent(iframeUtils.WPrefix + '.' + this.id));\n\n  debug('using htmlfile', HtmlfileReceiver.htmlfileEnabled);\n  var constructFunc = HtmlfileReceiver.htmlfileEnabled ?\n      iframeUtils.createHtmlfile : iframeUtils.createIframe;\n\n  global[iframeUtils.WPrefix][this.id] = {\n    start: function() {\n      debug('start');\n      self.iframeObj.loaded();\n    }\n  , message: function(data) {\n      debug('message', data);\n      self.emit('message', data);\n    }\n  , stop: function() {\n      debug('stop');\n      self._cleanup();\n      self._close('network');\n    }\n  };\n  this.iframeObj = constructFunc(url, function() {\n    debug('callback');\n    self._cleanup();\n    self._close('permanent');\n  });\n}\n\ninherits(HtmlfileReceiver, EventEmitter);\n\nHtmlfileReceiver.prototype.abort = function() {\n  debug('abort');\n  this._cleanup();\n  this._close('user');\n};\n\nHtmlfileReceiver.prototype._cleanup = function() {\n  debug('_cleanup');\n  if (this.iframeObj) {\n    this.iframeObj.cleanup();\n    this.iframeObj = null;\n  }\n  delete global[iframeUtils.WPrefix][this.id];\n};\n\nHtmlfileReceiver.prototype._close = function(reason) {\n  debug('_close', reason);\n  this.emit('close', null, reason);\n  this.removeAllListeners();\n};\n\nHtmlfileReceiver.htmlfileEnabled = false;\n\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (axo in global) {\n  try {\n    HtmlfileReceiver.htmlfileEnabled = !!new global[axo]('htmlfile');\n  } catch (x) {}\n}\n\nHtmlfileReceiver.enabled = HtmlfileReceiver.htmlfileEnabled || iframeUtils.iframeEnabled;\n\nmodule.exports = HtmlfileReceiver;\n"
    },
    {
      "id": 50,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xhr-polling.js",
      "name": "./~/sockjs-client/lib/transport/xhr-polling.js",
      "index": 50,
      "index2": 46,
      "size": 894,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/xhr-polling",
          "loc": "14:2-36"
        },
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/xhr-polling",
          "loc": "16:41-75"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , AjaxBasedTransport = require('./lib/ajax-based')\n  , XhrReceiver = require('./receiver/xhr')\n  , XHRCorsObject = require('./sender/xhr-cors')\n  , XHRLocalObject = require('./sender/xhr-local')\n  ;\n\nfunction XhrPollingTransport(transUrl) {\n  if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) {\n    throw new Error('Transport created when disabled');\n  }\n  AjaxBasedTransport.call(this, transUrl, '/xhr', XhrReceiver, XHRCorsObject);\n}\n\ninherits(XhrPollingTransport, AjaxBasedTransport);\n\nXhrPollingTransport.enabled = function(info) {\n  if (info.nullOrigin) {\n    return false;\n  }\n\n  if (XHRLocalObject.enabled && info.sameOrigin) {\n    return true;\n  }\n  return XHRCorsObject.enabled;\n};\n\nXhrPollingTransport.transportName = 'xhr-polling';\nXhrPollingTransport.roundTrips = 2; // preflight, ajax\n\nmodule.exports = XhrPollingTransport;\n"
    },
    {
      "id": 51,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/xdr-polling.js",
      "name": "./~/sockjs-client/lib/transport/xdr-polling.js",
      "index": 51,
      "index2": 47,
      "size": 712,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/xdr-polling",
          "loc": "15:2-36"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , AjaxBasedTransport = require('./lib/ajax-based')\n  , XdrStreamingTransport = require('./xdr-streaming')\n  , XhrReceiver = require('./receiver/xhr')\n  , XDRObject = require('./sender/xdr')\n  ;\n\nfunction XdrPollingTransport(transUrl) {\n  if (!XDRObject.enabled) {\n    throw new Error('Transport created when disabled');\n  }\n  AjaxBasedTransport.call(this, transUrl, '/xhr', XhrReceiver, XDRObject);\n}\n\ninherits(XdrPollingTransport, AjaxBasedTransport);\n\nXdrPollingTransport.enabled = XdrStreamingTransport.enabled;\nXdrPollingTransport.transportName = 'xdr-polling';\nXdrPollingTransport.roundTrips = 2; // preflight, ajax\n\nmodule.exports = XdrPollingTransport;\n"
    },
    {
      "id": 52,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
      "name": "./~/sockjs-client/lib/transport/jsonp-polling.js",
      "index": 52,
      "index2": 50,
      "size": 1016,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 9,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport-list.js",
          "module": "./~/sockjs-client/lib/transport-list.js",
          "moduleName": "./~/sockjs-client/lib/transport-list.js",
          "type": "cjs require",
          "userRequest": "./transport/jsonp-polling",
          "loc": "17:2-38"
        }
      ],
      "source": "'use strict';\n\n// The simplest and most robust transport, using the well-know cross\n// domain hack - JSONP. This transport is quite inefficient - one\n// message could use up to one http request. But at least it works almost\n// everywhere.\n// Known limitations:\n//   o you will get a spinning cursor\n//   o for Konqueror a dumb timer is needed to detect errors\n\nvar inherits = require('inherits')\n  , SenderReceiver = require('./lib/sender-receiver')\n  , JsonpReceiver = require('./receiver/jsonp')\n  , jsonpSender = require('./sender/jsonp')\n  ;\n\nfunction JsonPTransport(transUrl) {\n  if (!JsonPTransport.enabled()) {\n    throw new Error('Transport created when disabled');\n  }\n  SenderReceiver.call(this, transUrl, '/jsonp', jsonpSender, JsonpReceiver);\n}\n\ninherits(JsonPTransport, SenderReceiver);\n\nJsonPTransport.enabled = function() {\n  return !!global.document;\n};\n\nJsonPTransport.transportName = 'jsonp-polling';\nJsonPTransport.roundTrips = 1;\nJsonPTransport.needBody = true;\n\nmodule.exports = JsonPTransport;\n"
    },
    {
      "id": 53,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/receiver/jsonp.js",
      "name": "./~/sockjs-client/lib/transport/receiver/jsonp.js",
      "index": 53,
      "index2": 48,
      "size": 5490,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 52,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
          "module": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "type": "cjs require",
          "userRequest": "./receiver/jsonp",
          "loc": "13:20-47"
        }
      ],
      "source": "'use strict';\n\nvar utils = require('../../utils/iframe')\n  , random = require('../../utils/random')\n  , browser = require('../../utils/browser')\n  , urlUtils = require('../../utils/url')\n  , inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:receiver:jsonp');\n}\n\nfunction JsonpReceiver(url) {\n  debug(url);\n  var self = this;\n  EventEmitter.call(this);\n\n  utils.polluteGlobalNamespace();\n\n  this.id = 'a' + random.string(6);\n  var urlWithId = urlUtils.addQuery(url, 'c=' + encodeURIComponent(utils.WPrefix + '.' + this.id));\n\n  global[utils.WPrefix][this.id] = this._callback.bind(this);\n  this._createScript(urlWithId);\n\n  // Fallback mostly for Konqueror - stupid timer, 35 seconds shall be plenty.\n  this.timeoutId = setTimeout(function() {\n    debug('timeout');\n    self._abort(new Error('JSONP script loaded abnormally (timeout)'));\n  }, JsonpReceiver.timeout);\n}\n\ninherits(JsonpReceiver, EventEmitter);\n\nJsonpReceiver.prototype.abort = function() {\n  debug('abort');\n  if (global[utils.WPrefix][this.id]) {\n    var err = new Error('JSONP user aborted read');\n    err.code = 1000;\n    this._abort(err);\n  }\n};\n\nJsonpReceiver.timeout = 35000;\nJsonpReceiver.scriptErrorTimeout = 1000;\n\nJsonpReceiver.prototype._callback = function(data) {\n  debug('_callback', data);\n  this._cleanup();\n\n  if (this.aborting) {\n    return;\n  }\n\n  if (data) {\n    debug('message', data);\n    this.emit('message', data);\n  }\n  this.emit('close', null, 'network');\n  this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._abort = function(err) {\n  debug('_abort', err);\n  this._cleanup();\n  this.aborting = true;\n  this.emit('close', err.code, err.message);\n  this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._cleanup = function() {\n  debug('_cleanup');\n  clearTimeout(this.timeoutId);\n  if (this.script2) {\n    this.script2.parentNode.removeChild(this.script2);\n    this.script2 = null;\n  }\n  if (this.script) {\n    var script = this.script;\n    // Unfortunately, you can't really abort script loading of\n    // the script.\n    script.parentNode.removeChild(script);\n    script.onreadystatechange = script.onerror =\n        script.onload = script.onclick = null;\n    this.script = null;\n  }\n  delete global[utils.WPrefix][this.id];\n};\n\nJsonpReceiver.prototype._scriptError = function() {\n  debug('_scriptError');\n  var self = this;\n  if (this.errorTimer) {\n    return;\n  }\n\n  this.errorTimer = setTimeout(function() {\n    if (!self.loadedOkay) {\n      self._abort(new Error('JSONP script loaded abnormally (onerror)'));\n    }\n  }, JsonpReceiver.scriptErrorTimeout);\n};\n\nJsonpReceiver.prototype._createScript = function(url) {\n  debug('_createScript', url);\n  var self = this;\n  var script = this.script = global.document.createElement('script');\n  var script2;  // Opera synchronous load trick.\n\n  script.id = 'a' + random.string(8);\n  script.src = url;\n  script.type = 'text/javascript';\n  script.charset = 'UTF-8';\n  script.onerror = this._scriptError.bind(this);\n  script.onload = function() {\n    debug('onload');\n    self._abort(new Error('JSONP script loaded abnormally (onload)'));\n  };\n\n  // IE9 fires 'error' event after onreadystatechange or before, in random order.\n  // Use loadedOkay to determine if actually errored\n  script.onreadystatechange = function() {\n    debug('onreadystatechange', script.readyState);\n    if (/loaded|closed/.test(script.readyState)) {\n      if (script && script.htmlFor && script.onclick) {\n        self.loadedOkay = true;\n        try {\n          // In IE, actually execute the script.\n          script.onclick();\n        } catch (x) {}\n      }\n      if (script) {\n        self._abort(new Error('JSONP script loaded abnormally (onreadystatechange)'));\n      }\n    }\n  };\n  // IE: event/htmlFor/onclick trick.\n  // One can't rely on proper order for onreadystatechange. In order to\n  // make sure, set a 'htmlFor' and 'event' properties, so that\n  // script code will be installed as 'onclick' handler for the\n  // script object. Later, onreadystatechange, manually execute this\n  // code. FF and Chrome doesn't work with 'event' and 'htmlFor'\n  // set. For reference see:\n  //   http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html\n  // Also, read on that about script ordering:\n  //   http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order\n  if (typeof script.async === 'undefined' && global.document.attachEvent) {\n    // According to mozilla docs, in recent browsers script.async defaults\n    // to 'true', so we may use it to detect a good browser:\n    // https://developer.mozilla.org/en/HTML/Element/script\n    if (!browser.isOpera()) {\n      // Naively assume we're in IE\n      try {\n        script.htmlFor = script.id;\n        script.event = 'onclick';\n      } catch (x) {}\n      script.async = true;\n    } else {\n      // Opera, second sync script hack\n      script2 = this.script2 = global.document.createElement('script');\n      script2.text = \"try{var a = document.getElementById('\" + script.id + \"'); if(a)a.onerror();}catch(x){};\";\n      script.async = script2.async = false;\n    }\n  }\n  if (typeof script.async !== 'undefined') {\n    script.async = true;\n  }\n\n  var head = global.document.getElementsByTagName('head')[0];\n  head.insertBefore(script, head.firstChild);\n  if (script2) {\n    head.insertBefore(script2, head.firstChild);\n  }\n};\n\nmodule.exports = JsonpReceiver;\n"
    },
    {
      "id": 54,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/jsonp.js",
      "name": "./~/sockjs-client/lib/transport/sender/jsonp.js",
      "index": 54,
      "index2": 49,
      "size": 2464,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 52,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/jsonp-polling.js",
          "module": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "moduleName": "./~/sockjs-client/lib/transport/jsonp-polling.js",
          "type": "cjs require",
          "userRequest": "./sender/jsonp",
          "loc": "14:18-43"
        }
      ],
      "source": "'use strict';\n\nvar random = require('../../utils/random')\n  , urlUtils = require('../../utils/url')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:sender:jsonp');\n}\n\nvar form, area;\n\nfunction createIframe(id) {\n  debug('createIframe', id);\n  try {\n    // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n    return global.document.createElement('<iframe name=\"' + id + '\">');\n  } catch (x) {\n    var iframe = global.document.createElement('iframe');\n    iframe.name = id;\n    return iframe;\n  }\n}\n\nfunction createForm() {\n  debug('createForm');\n  form = global.document.createElement('form');\n  form.style.display = 'none';\n  form.style.position = 'absolute';\n  form.method = 'POST';\n  form.enctype = 'application/x-www-form-urlencoded';\n  form.acceptCharset = 'UTF-8';\n\n  area = global.document.createElement('textarea');\n  area.name = 'd';\n  form.appendChild(area);\n\n  global.document.body.appendChild(form);\n}\n\nmodule.exports = function(url, payload, callback) {\n  debug(url, payload);\n  if (!form) {\n    createForm();\n  }\n  var id = 'a' + random.string(8);\n  form.target = id;\n  form.action = urlUtils.addQuery(urlUtils.addPath(url, '/jsonp_send'), 'i=' + id);\n\n  var iframe = createIframe(id);\n  iframe.id = id;\n  iframe.style.display = 'none';\n  form.appendChild(iframe);\n\n  try {\n    area.value = payload;\n  } catch (e) {\n    // seriously broken browsers get here\n  }\n  form.submit();\n\n  var completed = function(err) {\n    debug('completed', id, err);\n    if (!iframe.onerror) {\n      return;\n    }\n    iframe.onreadystatechange = iframe.onerror = iframe.onload = null;\n    // Opera mini doesn't like if we GC iframe\n    // immediately, thus this timeout.\n    setTimeout(function() {\n      debug('cleaning up', id);\n      iframe.parentNode.removeChild(iframe);\n      iframe = null;\n    }, 500);\n    area.value = '';\n    // It is not possible to detect if the iframe succeeded or\n    // failed to submit our form.\n    callback(err);\n  };\n  iframe.onerror = function() {\n    debug('onerror', id);\n    completed();\n  };\n  iframe.onload = function() {\n    debug('onload', id);\n    completed();\n  };\n  iframe.onreadystatechange = function(e) {\n    debug('onreadystatechange', id, iframe.readyState, e);\n    if (iframe.readyState === 'complete') {\n      completed();\n    }\n  };\n  return function() {\n    debug('aborted', id);\n    completed(new Error('Aborted'));\n  };\n};\n"
    },
    {
      "id": 55,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "name": "./~/sockjs-client/lib/main.js",
      "index": 55,
      "index2": 67,
      "size": 11890,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/entry.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 8,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/entry.js",
          "module": "./~/sockjs-client/lib/entry.js",
          "moduleName": "./~/sockjs-client/lib/entry.js",
          "type": "cjs require",
          "userRequest": "./main",
          "loc": "5:17-34"
        }
      ],
      "source": "'use strict';\n\nrequire('./shims');\n\nvar URL = require('url-parse')\n  , inherits = require('inherits')\n  , JSON3 = require('json3')\n  , random = require('./utils/random')\n  , escape = require('./utils/escape')\n  , urlUtils = require('./utils/url')\n  , eventUtils = require('./utils/event')\n  , transport = require('./utils/transport')\n  , objectUtils = require('./utils/object')\n  , browser = require('./utils/browser')\n  , log = require('./utils/log')\n  , Event = require('./event/event')\n  , EventTarget = require('./event/eventtarget')\n  , loc = require('./location')\n  , CloseEvent = require('./event/close')\n  , TransportMessageEvent = require('./event/trans-message')\n  , InfoReceiver = require('./info-receiver')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  // Make debug module available globally so you can enable via the console easily\n  global.dbg = require('debug');\n  debug = global.dbg('sockjs-client:main');\n}\n\nvar transports;\n\n// follow constructor steps defined at http://dev.w3.org/html5/websockets/#the-websocket-interface\nfunction SockJS(url, protocols, options) {\n  if (!(this instanceof SockJS)) {\n    return new SockJS(url, protocols, options);\n  }\n  if (arguments.length < 1) {\n    throw new TypeError(\"Failed to construct 'SockJS: 1 argument required, but only 0 present\");\n  }\n  EventTarget.call(this);\n\n  this.readyState = SockJS.CONNECTING;\n  this.extensions = '';\n  this.protocol = '';\n\n  // non-standard extension\n  options = options || {};\n  if (options.protocols_whitelist) {\n    log.warn(\"'protocols_whitelist' is DEPRECATED. Use 'transports' instead.\");\n  }\n  this._transportsWhitelist = options.transports;\n\n  var sessionId = options.sessionId || 8;\n  if (typeof sessionId === 'function') {\n    this._generateSessionId = sessionId;\n  } else if (typeof sessionId === 'number') {\n    this._generateSessionId = function() {\n      return random.string(sessionId);\n    };\n  } else {\n    throw new TypeError(\"If sessionId is used in the options, it needs to be a number or a function.\");\n  }\n\n  this._server = options.server || random.numberString(1000);\n\n  // Step 1 of WS spec - parse and validate the url. Issue #8\n  var parsedUrl = new URL(url);\n  if (!parsedUrl.host || !parsedUrl.protocol) {\n    throw new SyntaxError(\"The URL '\" + url + \"' is invalid\");\n  } else if (parsedUrl.hash) {\n    throw new SyntaxError('The URL must not contain a fragment');\n  } else if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n    throw new SyntaxError(\"The URL's scheme must be either 'http:' or 'https:'. '\" + parsedUrl.protocol + \"' is not allowed.\");\n  }\n\n  var secure = parsedUrl.protocol === 'https:';\n  // Step 2 - don't allow secure origin with an insecure protocol\n  if (loc.protocol === 'https' && !secure) {\n    throw new Error('SecurityError: An insecure SockJS connection may not be initiated from a page loaded over HTTPS');\n  }\n\n  // Step 3 - check port access - no need here\n  // Step 4 - parse protocols argument\n  if (!protocols) {\n    protocols = [];\n  } else if (!Array.isArray(protocols)) {\n    protocols = [protocols];\n  }\n\n  // Step 5 - check protocols argument\n  var sortedProtocols = protocols.sort();\n  sortedProtocols.forEach(function(proto, i) {\n    if (!proto) {\n      throw new SyntaxError(\"The protocols entry '\" + proto + \"' is invalid.\");\n    }\n    if (i < (sortedProtocols.length - 1) && proto === sortedProtocols[i + 1]) {\n      throw new SyntaxError(\"The protocols entry '\" + proto + \"' is duplicated.\");\n    }\n  });\n\n  // Step 6 - convert origin\n  var o = urlUtils.getOrigin(loc.href);\n  this._origin = o ? o.toLowerCase() : null;\n\n  // remove the trailing slash\n  parsedUrl.set('pathname', parsedUrl.pathname.replace(/\\/+$/, ''));\n\n  // store the sanitized url\n  this.url = parsedUrl.href;\n  debug('using url', this.url);\n\n  // Step 7 - start connection in background\n  // obtain server info\n  // http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html#section-26\n  this._urlInfo = {\n    nullOrigin: !browser.hasDomain()\n  , sameOrigin: urlUtils.isOriginEqual(this.url, loc.href)\n  , sameScheme: urlUtils.isSchemeEqual(this.url, loc.href)\n  };\n\n  this._ir = new InfoReceiver(this.url, this._urlInfo);\n  this._ir.once('finish', this._receiveInfo.bind(this));\n}\n\ninherits(SockJS, EventTarget);\n\nfunction userSetCode(code) {\n  return code === 1000 || (code >= 3000 && code <= 4999);\n}\n\nSockJS.prototype.close = function(code, reason) {\n  // Step 1\n  if (code && !userSetCode(code)) {\n    throw new Error('InvalidAccessError: Invalid code');\n  }\n  // Step 2.4 states the max is 123 bytes, but we are just checking length\n  if (reason && reason.length > 123) {\n    throw new SyntaxError('reason argument has an invalid length');\n  }\n\n  // Step 3.1\n  if (this.readyState === SockJS.CLOSING || this.readyState === SockJS.CLOSED) {\n    return;\n  }\n\n  // TODO look at docs to determine how to set this\n  var wasClean = true;\n  this._close(code || 1000, reason || 'Normal closure', wasClean);\n};\n\nSockJS.prototype.send = function(data) {\n  // #13 - convert anything non-string to string\n  // TODO this currently turns objects into [object Object]\n  if (typeof data !== 'string') {\n    data = '' + data;\n  }\n  if (this.readyState === SockJS.CONNECTING) {\n    throw new Error('InvalidStateError: The connection has not been established yet');\n  }\n  if (this.readyState !== SockJS.OPEN) {\n    return;\n  }\n  this._transport.send(escape.quote(data));\n};\n\nSockJS.version = require('./version');\n\nSockJS.CONNECTING = 0;\nSockJS.OPEN = 1;\nSockJS.CLOSING = 2;\nSockJS.CLOSED = 3;\n\nSockJS.prototype._receiveInfo = function(info, rtt) {\n  debug('_receiveInfo', rtt);\n  this._ir = null;\n  if (!info) {\n    this._close(1002, 'Cannot connect to server');\n    return;\n  }\n\n  // establish a round-trip timeout (RTO) based on the\n  // round-trip time (RTT)\n  this._rto = this.countRTO(rtt);\n  // allow server to override url used for the actual transport\n  this._transUrl = info.base_url ? info.base_url : this.url;\n  info = objectUtils.extend(info, this._urlInfo);\n  debug('info', info);\n  // determine list of desired and supported transports\n  var enabledTransports = transports.filterToEnabled(this._transportsWhitelist, info);\n  this._transports = enabledTransports.main;\n  debug(this._transports.length + ' enabled transports');\n\n  this._connect();\n};\n\nSockJS.prototype._connect = function() {\n  for (var Transport = this._transports.shift(); Transport; Transport = this._transports.shift()) {\n    debug('attempt', Transport.transportName);\n    if (Transport.needBody) {\n      if (!global.document.body ||\n          (typeof global.document.readyState !== 'undefined' &&\n            global.document.readyState !== 'complete' &&\n            global.document.readyState !== 'interactive')) {\n        debug('waiting for body');\n        this._transports.unshift(Transport);\n        eventUtils.attachEvent('load', this._connect.bind(this));\n        return;\n      }\n    }\n\n    // calculate timeout based on RTO and round trips. Default to 5s\n    var timeoutMs = (this._rto * Transport.roundTrips) || 5000;\n    this._transportTimeoutId = setTimeout(this._transportTimeout.bind(this), timeoutMs);\n    debug('using timeout', timeoutMs);\n\n    var transportUrl = urlUtils.addPath(this._transUrl, '/' + this._server + '/' + this._generateSessionId());\n    debug('transport url', transportUrl);\n    var transportObj = new Transport(transportUrl, this._transUrl);\n    transportObj.on('message', this._transportMessage.bind(this));\n    transportObj.once('close', this._transportClose.bind(this));\n    transportObj.transportName = Transport.transportName;\n    this._transport = transportObj;\n\n    return;\n  }\n  this._close(2000, 'All transports failed', false);\n};\n\nSockJS.prototype._transportTimeout = function() {\n  debug('_transportTimeout');\n  if (this.readyState === SockJS.CONNECTING) {\n    this._transportClose(2007, 'Transport timed out');\n  }\n};\n\nSockJS.prototype._transportMessage = function(msg) {\n  debug('_transportMessage', msg);\n  var self = this\n    , type = msg.slice(0, 1)\n    , content = msg.slice(1)\n    , payload\n    ;\n\n  // first check for messages that don't need a payload\n  switch (type) {\n    case 'o':\n      this._open();\n      return;\n    case 'h':\n      this.dispatchEvent(new Event('heartbeat'));\n      debug('heartbeat', this.transport);\n      return;\n  }\n\n  if (content) {\n    try {\n      payload = JSON3.parse(content);\n    } catch (e) {\n      debug('bad json', content);\n    }\n  }\n\n  if (typeof payload === 'undefined') {\n    debug('empty payload', content);\n    return;\n  }\n\n  switch (type) {\n    case 'a':\n      if (Array.isArray(payload)) {\n        payload.forEach(function(p) {\n          debug('message', self.transport, p);\n          self.dispatchEvent(new TransportMessageEvent(p));\n        });\n      }\n      break;\n    case 'm':\n      debug('message', this.transport, payload);\n      this.dispatchEvent(new TransportMessageEvent(payload));\n      break;\n    case 'c':\n      if (Array.isArray(payload) && payload.length === 2) {\n        this._close(payload[0], payload[1], true);\n      }\n      break;\n  }\n};\n\nSockJS.prototype._transportClose = function(code, reason) {\n  debug('_transportClose', this.transport, code, reason);\n  if (this._transport) {\n    this._transport.removeAllListeners();\n    this._transport = null;\n    this.transport = null;\n  }\n\n  if (!userSetCode(code) && code !== 2000 && this.readyState === SockJS.CONNECTING) {\n    this._connect();\n    return;\n  }\n\n  this._close(code, reason);\n};\n\nSockJS.prototype._open = function() {\n  debug('_open', this._transport.transportName, this.readyState);\n  if (this.readyState === SockJS.CONNECTING) {\n    if (this._transportTimeoutId) {\n      clearTimeout(this._transportTimeoutId);\n      this._transportTimeoutId = null;\n    }\n    this.readyState = SockJS.OPEN;\n    this.transport = this._transport.transportName;\n    this.dispatchEvent(new Event('open'));\n    debug('connected', this.transport);\n  } else {\n    // The server might have been restarted, and lost track of our\n    // connection.\n    this._close(1006, 'Server lost session');\n  }\n};\n\nSockJS.prototype._close = function(code, reason, wasClean) {\n  debug('_close', this.transport, code, reason, wasClean, this.readyState);\n  var forceFail = false;\n\n  if (this._ir) {\n    forceFail = true;\n    this._ir.close();\n    this._ir = null;\n  }\n  if (this._transport) {\n    this._transport.close();\n    this._transport = null;\n    this.transport = null;\n  }\n\n  if (this.readyState === SockJS.CLOSED) {\n    throw new Error('InvalidStateError: SockJS has already been closed');\n  }\n\n  this.readyState = SockJS.CLOSING;\n  setTimeout(function() {\n    this.readyState = SockJS.CLOSED;\n\n    if (forceFail) {\n      this.dispatchEvent(new Event('error'));\n    }\n\n    var e = new CloseEvent('close');\n    e.wasClean = wasClean || false;\n    e.code = code || 1000;\n    e.reason = reason;\n\n    this.dispatchEvent(e);\n    this.onmessage = this.onclose = this.onerror = null;\n    debug('disconnected');\n  }.bind(this), 0);\n};\n\n// See: http://www.erg.abdn.ac.uk/~gerrit/dccp/notes/ccid2/rto_estimator/\n// and RFC 2988.\nSockJS.prototype.countRTO = function(rtt) {\n  // In a local environment, when using IE8/9 and the `jsonp-polling`\n  // transport the time needed to establish a connection (the time that pass\n  // from the opening of the transport to the call of `_dispatchOpen`) is\n  // around 200msec (the lower bound used in the article above) and this\n  // causes spurious timeouts. For this reason we calculate a value slightly\n  // larger than that used in the article.\n  if (rtt > 100) {\n    return 4 * rtt; // rto > 400msec\n  }\n  return 300 + rtt; // 300msec < rto <= 400msec\n};\n\nmodule.exports = function(availableTransports) {\n  transports = transport(availableTransports);\n  require('./iframe-bootstrap')(SockJS, availableTransports);\n  return SockJS;\n};\n"
    },
    {
      "id": 56,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/shims.js",
      "name": "./~/sockjs-client/lib/shims.js",
      "index": 56,
      "index2": 52,
      "size": 18176,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./shims",
          "loc": "3:0-18"
        }
      ],
      "source": "/* eslint-disable */\n/* jscs: disable */\n'use strict';\n\n// pulled specific shims from https://github.com/es-shims/es5-shim\n\nvar ArrayPrototype = Array.prototype;\nvar ObjectPrototype = Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar StringPrototype = String.prototype;\nvar array_slice = ArrayPrototype.slice;\n\nvar _toString = ObjectPrototype.toString;\nvar isFunction = function (val) {\n    return ObjectPrototype.toString.call(val) === '[object Function]';\n};\nvar isArray = function isArray(obj) {\n    return _toString.call(obj) === '[object Array]';\n};\nvar isString = function isString(obj) {\n    return _toString.call(obj) === '[object String]';\n};\n\nvar supportsDescriptors = Object.defineProperty && (function () {\n    try {\n        Object.defineProperty({}, 'x', {});\n        return true;\n    } catch (e) { /* this is ES3 */\n        return false;\n    }\n}());\n\n// Define configurable, writable and non-enumerable props\n// if they don't exist.\nvar defineProperty;\nif (supportsDescriptors) {\n    defineProperty = function (object, name, method, forceAssign) {\n        if (!forceAssign && (name in object)) { return; }\n        Object.defineProperty(object, name, {\n            configurable: true,\n            enumerable: false,\n            writable: true,\n            value: method\n        });\n    };\n} else {\n    defineProperty = function (object, name, method, forceAssign) {\n        if (!forceAssign && (name in object)) { return; }\n        object[name] = method;\n    };\n}\nvar defineProperties = function (object, map, forceAssign) {\n    for (var name in map) {\n        if (ObjectPrototype.hasOwnProperty.call(map, name)) {\n          defineProperty(object, name, map[name], forceAssign);\n        }\n    }\n};\n\nvar toObject = function (o) {\n    if (o == null) { // this matches both null and undefined\n        throw new TypeError(\"can't convert \" + o + ' to object');\n    }\n    return Object(o);\n};\n\n//\n// Util\n// ======\n//\n\n// ES5 9.4\n// http://es5.github.com/#x9.4\n// http://jsperf.com/to-integer\n\nfunction toInteger(num) {\n    var n = +num;\n    if (n !== n) { // isNaN\n        n = 0;\n    } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n        n = (n > 0 || -1) * Math.floor(Math.abs(n));\n    }\n    return n;\n}\n\nfunction ToUint32(x) {\n    return x >>> 0;\n}\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nfunction Empty() {}\n\ndefineProperties(FunctionPrototype, {\n    bind: function bind(that) { // .length is 1\n        // 1. Let Target be the this value.\n        var target = this;\n        // 2. If IsCallable(Target) is false, throw a TypeError exception.\n        if (!isFunction(target)) {\n            throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n        }\n        // 3. Let A be a new (possibly empty) internal list of all of the\n        //   argument values provided after thisArg (arg1, arg2 etc), in order.\n        // XXX slicedArgs will stand in for \"A\" if used\n        var args = array_slice.call(arguments, 1); // for normal call\n        // 4. Let F be a new native ECMAScript object.\n        // 11. Set the [[Prototype]] internal property of F to the standard\n        //   built-in Function prototype object as specified in 15.3.3.1.\n        // 12. Set the [[Call]] internal property of F as described in\n        //   15.3.4.5.1.\n        // 13. Set the [[Construct]] internal property of F as described in\n        //   15.3.4.5.2.\n        // 14. Set the [[HasInstance]] internal property of F as described in\n        //   15.3.4.5.3.\n        var binder = function () {\n\n            if (this instanceof bound) {\n                // 15.3.4.5.2 [[Construct]]\n                // When the [[Construct]] internal method of a function object,\n                // F that was created using the bind function is called with a\n                // list of arguments ExtraArgs, the following steps are taken:\n                // 1. Let target be the value of F's [[TargetFunction]]\n                //   internal property.\n                // 2. If target has no [[Construct]] internal method, a\n                //   TypeError exception is thrown.\n                // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n                //   property.\n                // 4. Let args be a new list containing the same values as the\n                //   list boundArgs in the same order followed by the same\n                //   values as the list ExtraArgs in the same order.\n                // 5. Return the result of calling the [[Construct]] internal\n                //   method of target providing args as the arguments.\n\n                var result = target.apply(\n                    this,\n                    args.concat(array_slice.call(arguments))\n                );\n                if (Object(result) === result) {\n                    return result;\n                }\n                return this;\n\n            } else {\n                // 15.3.4.5.1 [[Call]]\n                // When the [[Call]] internal method of a function object, F,\n                // which was created using the bind function is called with a\n                // this value and a list of arguments ExtraArgs, the following\n                // steps are taken:\n                // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n                //   property.\n                // 2. Let boundThis be the value of F's [[BoundThis]] internal\n                //   property.\n                // 3. Let target be the value of F's [[TargetFunction]] internal\n                //   property.\n                // 4. Let args be a new list containing the same values as the\n                //   list boundArgs in the same order followed by the same\n                //   values as the list ExtraArgs in the same order.\n                // 5. Return the result of calling the [[Call]] internal method\n                //   of target providing boundThis as the this value and\n                //   providing args as the arguments.\n\n                // equiv: target.call(this, ...boundArgs, ...args)\n                return target.apply(\n                    that,\n                    args.concat(array_slice.call(arguments))\n                );\n\n            }\n\n        };\n\n        // 15. If the [[Class]] internal property of Target is \"Function\", then\n        //     a. Let L be the length property of Target minus the length of A.\n        //     b. Set the length own property of F to either 0 or L, whichever is\n        //       larger.\n        // 16. Else set the length own property of F to 0.\n\n        var boundLength = Math.max(0, target.length - args.length);\n\n        // 17. Set the attributes of the length own property of F to the values\n        //   specified in 15.3.5.1.\n        var boundArgs = [];\n        for (var i = 0; i < boundLength; i++) {\n            boundArgs.push('$' + i);\n        }\n\n        // XXX Build a dynamic function with desired amount of arguments is the only\n        // way to set the length property of a function.\n        // In environments where Content Security Policies enabled (Chrome extensions,\n        // for ex.) all use of eval or Function costructor throws an exception.\n        // However in all of these environments Function.prototype.bind exists\n        // and so this code will never be executed.\n        var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n        if (target.prototype) {\n            Empty.prototype = target.prototype;\n            bound.prototype = new Empty();\n            // Clean up dangling references.\n            Empty.prototype = null;\n        }\n\n        // TODO\n        // 18. Set the [[Extensible]] internal property of F to true.\n\n        // TODO\n        // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n        // 20. Call the [[DefineOwnProperty]] internal method of F with\n        //   arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n        //   thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n        //   false.\n        // 21. Call the [[DefineOwnProperty]] internal method of F with\n        //   arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n        //   [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n        //   and false.\n\n        // TODO\n        // NOTE Function objects created using Function.prototype.bind do not\n        // have a prototype property or the [[Code]], [[FormalParameters]], and\n        // [[Scope]] internal properties.\n        // XXX can't delete prototype in pure-js.\n\n        // 22. Return F.\n        return bound;\n    }\n});\n\n//\n// Array\n// =====\n//\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties(Array, { isArray: isArray });\n\n\nvar boxedString = Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n    // Check node 0.6.21 bug where third parameter is not boxed\n    var properlyBoxesNonStrict = true;\n    var properlyBoxesStrict = true;\n    if (method) {\n        method.call('foo', function (_, __, context) {\n            if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n        });\n\n        method.call([1], function () {\n            'use strict';\n            properlyBoxesStrict = typeof this === 'string';\n        }, 'x');\n    }\n    return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n    forEach: function forEach(fun /*, thisp*/) {\n        var object = toObject(this),\n            self = splitString && isString(this) ? this.split('') : object,\n            thisp = arguments[1],\n            i = -1,\n            length = self.length >>> 0;\n\n        // If no callback function or if callback is not a callable function\n        if (!isFunction(fun)) {\n            throw new TypeError(); // TODO message\n        }\n\n        while (++i < length) {\n            if (i in self) {\n                // Invoke the callback function with call, passing arguments:\n                // context, property value, property key, thisArg object\n                // context\n                fun.call(thisp, self[i], i, object);\n            }\n        }\n    }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = Array.prototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n    indexOf: function indexOf(sought /*, fromIndex */ ) {\n        var self = splitString && isString(this) ? this.split('') : toObject(this),\n            length = self.length >>> 0;\n\n        if (!length) {\n            return -1;\n        }\n\n        var i = 0;\n        if (arguments.length > 1) {\n            i = toInteger(arguments[1]);\n        }\n\n        // handle negative indices\n        i = i >= 0 ? i : Math.max(0, length + i);\n        for (; i < length; i++) {\n            if (i in self && self[i] === sought) {\n                return i;\n            }\n        }\n        return -1;\n    }\n}, hasFirefox2IndexOfBug);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n//    'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n//    '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n//    'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n//       [undefined, \"t\", undefined, \"e\", ...]\n//    ''.split(/.?/) should be [], not [\"\"]\n//    '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nvar string_split = StringPrototype.split;\nif (\n    'ab'.split(/(?:ab)*/).length !== 2 ||\n    '.'.split(/(.?)(.?)/).length !== 4 ||\n    'tesst'.split(/(s)*/)[1] === 't' ||\n    'test'.split(/(?:)/, -1).length !== 4 ||\n    ''.split(/.?/).length ||\n    '.'.split(/()()/).length > 1\n) {\n    (function () {\n        var compliantExecNpcg = /()??/.exec('')[1] === void 0; // NPCG: nonparticipating capturing group\n\n        StringPrototype.split = function (separator, limit) {\n            var string = this;\n            if (separator === void 0 && limit === 0) {\n                return [];\n            }\n\n            // If `separator` is not a regex, use native split\n            if (_toString.call(separator) !== '[object RegExp]') {\n                return string_split.call(this, separator, limit);\n            }\n\n            var output = [],\n                flags = (separator.ignoreCase ? 'i' : '') +\n                        (separator.multiline  ? 'm' : '') +\n                        (separator.extended   ? 'x' : '') + // Proposed for ES6\n                        (separator.sticky     ? 'y' : ''), // Firefox 3+\n                lastLastIndex = 0,\n                // Make `global` and avoid `lastIndex` issues by working with a copy\n                separator2, match, lastIndex, lastLength;\n            separator = new RegExp(separator.source, flags + 'g');\n            string += ''; // Type-convert\n            if (!compliantExecNpcg) {\n                // Doesn't need flags gy, but they don't hurt\n                separator2 = new RegExp('^' + separator.source + '$(?!\\\\s)', flags);\n            }\n            /* Values for `limit`, per the spec:\n             * If undefined: 4294967295 // Math.pow(2, 32) - 1\n             * If 0, Infinity, or NaN: 0\n             * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n             * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n             * If other: Type-convert, then use the above rules\n             */\n            limit = limit === void 0 ?\n                -1 >>> 0 : // Math.pow(2, 32) - 1\n                ToUint32(limit);\n            while (match = separator.exec(string)) {\n                // `separator.lastIndex` is not reliable cross-browser\n                lastIndex = match.index + match[0].length;\n                if (lastIndex > lastLastIndex) {\n                    output.push(string.slice(lastLastIndex, match.index));\n                    // Fix browsers whose `exec` methods don't consistently return `undefined` for\n                    // nonparticipating capturing groups\n                    if (!compliantExecNpcg && match.length > 1) {\n                        match[0].replace(separator2, function () {\n                            for (var i = 1; i < arguments.length - 2; i++) {\n                                if (arguments[i] === void 0) {\n                                    match[i] = void 0;\n                                }\n                            }\n                        });\n                    }\n                    if (match.length > 1 && match.index < string.length) {\n                        ArrayPrototype.push.apply(output, match.slice(1));\n                    }\n                    lastLength = match[0].length;\n                    lastLastIndex = lastIndex;\n                    if (output.length >= limit) {\n                        break;\n                    }\n                }\n                if (separator.lastIndex === match.index) {\n                    separator.lastIndex++; // Avoid an infinite loop\n                }\n            }\n            if (lastLastIndex === string.length) {\n                if (lastLength || !separator.test('')) {\n                    output.push('');\n                }\n            } else {\n                output.push(string.slice(lastLastIndex));\n            }\n            return output.length > limit ? output.slice(0, limit) : output;\n        };\n    }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n    StringPrototype.split = function split(separator, limit) {\n        if (separator === void 0 && limit === 0) { return []; }\n        return string_split.call(this, separator, limit);\n    };\n}\n\n// ES5 15.5.4.20\n// whitespace from: http://es5.github.io/#x15.5.4.20\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n    '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' +\n    '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar wsRegexChars = '[' + ws + ']';\nvar trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*');\nvar trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$');\nvar hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim());\ndefineProperties(StringPrototype, {\n    // http://blog.stevenlevithan.com/archives/faster-trim-javascript\n    // http://perfectionkills.com/whitespace-deviations/\n    trim: function trim() {\n        if (this === void 0 || this === null) {\n            throw new TypeError(\"can't convert \" + this + ' to object');\n        }\n        return String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, '');\n    }\n}, hasTrimWhitespaceBug);\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n    substr: function substr(start, length) {\n        return string_substr.call(\n            this,\n            start < 0 ? ((start = this.length + start) < 0 ? 0 : start) : start,\n            length\n        );\n    }\n}, hasNegativeSubstrBug);\n"
    },
    {
      "id": 57,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/escape.js",
      "name": "./~/sockjs-client/lib/utils/escape.js",
      "index": 57,
      "index2": 53,
      "size": 2312,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/escape",
          "loc": "9:13-38"
        }
      ],
      "source": "'use strict';\n\nvar JSON3 = require('json3');\n\n// Some extra characters that Chrome gets wrong, and substitutes with\n// something else on the wire.\nvar extraEscapable = /[\\x00-\\x1f\\ud800-\\udfff\\ufffe\\uffff\\u0300-\\u0333\\u033d-\\u0346\\u034a-\\u034c\\u0350-\\u0352\\u0357-\\u0358\\u035c-\\u0362\\u0374\\u037e\\u0387\\u0591-\\u05af\\u05c4\\u0610-\\u0617\\u0653-\\u0654\\u0657-\\u065b\\u065d-\\u065e\\u06df-\\u06e2\\u06eb-\\u06ec\\u0730\\u0732-\\u0733\\u0735-\\u0736\\u073a\\u073d\\u073f-\\u0741\\u0743\\u0745\\u0747\\u07eb-\\u07f1\\u0951\\u0958-\\u095f\\u09dc-\\u09dd\\u09df\\u0a33\\u0a36\\u0a59-\\u0a5b\\u0a5e\\u0b5c-\\u0b5d\\u0e38-\\u0e39\\u0f43\\u0f4d\\u0f52\\u0f57\\u0f5c\\u0f69\\u0f72-\\u0f76\\u0f78\\u0f80-\\u0f83\\u0f93\\u0f9d\\u0fa2\\u0fa7\\u0fac\\u0fb9\\u1939-\\u193a\\u1a17\\u1b6b\\u1cda-\\u1cdb\\u1dc0-\\u1dcf\\u1dfc\\u1dfe\\u1f71\\u1f73\\u1f75\\u1f77\\u1f79\\u1f7b\\u1f7d\\u1fbb\\u1fbe\\u1fc9\\u1fcb\\u1fd3\\u1fdb\\u1fe3\\u1feb\\u1fee-\\u1fef\\u1ff9\\u1ffb\\u1ffd\\u2000-\\u2001\\u20d0-\\u20d1\\u20d4-\\u20d7\\u20e7-\\u20e9\\u2126\\u212a-\\u212b\\u2329-\\u232a\\u2adc\\u302b-\\u302c\\uaab2-\\uaab3\\uf900-\\ufa0d\\ufa10\\ufa12\\ufa15-\\ufa1e\\ufa20\\ufa22\\ufa25-\\ufa26\\ufa2a-\\ufa2d\\ufa30-\\ufa6d\\ufa70-\\ufad9\\ufb1d\\ufb1f\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufb4e\\ufff0-\\uffff]/g\n  , extraLookup;\n\n// This may be quite slow, so let's delay until user actually uses bad\n// characters.\nvar unrollLookup = function(escapable) {\n  var i;\n  var unrolled = {};\n  var c = [];\n  for (i = 0; i < 65536; i++) {\n    c.push( String.fromCharCode(i) );\n  }\n  escapable.lastIndex = 0;\n  c.join('').replace(escapable, function(a) {\n    unrolled[ a ] = '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n    return '';\n  });\n  escapable.lastIndex = 0;\n  return unrolled;\n};\n\n// Quote string, also taking care of unicode characters that browsers\n// often break. Especially, take care of unicode surrogates:\n// http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Surrogates\nmodule.exports = {\n  quote: function(string) {\n    var quoted = JSON3.stringify(string);\n\n    // In most cases this should be very fast and good enough.\n    extraEscapable.lastIndex = 0;\n    if (!extraEscapable.test(quoted)) {\n      return quoted;\n    }\n\n    if (!extraLookup) {\n      extraLookup = unrollLookup(extraEscapable);\n    }\n\n    return quoted.replace(extraEscapable, function(a) {\n      return extraLookup[a];\n    });\n  }\n};\n"
    },
    {
      "id": 58,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/transport.js",
      "name": "./~/sockjs-client/lib/utils/transport.js",
      "index": 58,
      "index2": 54,
      "size": 1354,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/transport",
          "loc": "12:16-44"
        }
      ],
      "source": "'use strict';\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:utils:transport');\n}\n\nmodule.exports = function(availableTransports) {\n  return {\n    filterToEnabled: function(transportsWhitelist, info) {\n      var transports = {\n        main: []\n      , facade: []\n      };\n      if (!transportsWhitelist) {\n        transportsWhitelist = [];\n      } else if (typeof transportsWhitelist === 'string') {\n        transportsWhitelist = [transportsWhitelist];\n      }\n\n      availableTransports.forEach(function(trans) {\n        if (!trans) {\n          return;\n        }\n\n        if (trans.transportName === 'websocket' && info.websocket === false) {\n          debug('disabled from server', 'websocket');\n          return;\n        }\n\n        if (transportsWhitelist.length &&\n            transportsWhitelist.indexOf(trans.transportName) === -1) {\n          debug('not in whitelist', trans.transportName);\n          return;\n        }\n\n        if (trans.enabled(info)) {\n          debug('enabled', trans.transportName);\n          transports.main.push(trans);\n          if (trans.facadeTransport) {\n            transports.facade.push(trans.facadeTransport);\n          }\n        } else {\n          debug('disabled', trans.transportName);\n        }\n      });\n      return transports;\n    }\n  };\n};\n"
    },
    {
      "id": 59,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/utils/log.js",
      "name": "./~/sockjs-client/lib/utils/log.js",
      "index": 59,
      "index2": 55,
      "size": 386,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./utils/log",
          "loc": "15:10-32"
        }
      ],
      "source": "'use strict';\n\nvar logObject = {};\n['log', 'debug', 'warn'].forEach(function (level) {\n  var levelExists = global.console && global.console[level] && global.console[level].apply;\n  logObject[level] = levelExists ? function () {\n    return global.console[level].apply(global.console, arguments);\n  } : (level === 'log' ? function () {} : logObject.log);\n});\n\nmodule.exports = logObject;\n"
    },
    {
      "id": 60,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/event.js",
      "name": "./~/sockjs-client/lib/event/event.js",
      "index": 60,
      "index2": 56,
      "size": 485,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./event/event",
          "loc": "16:12-36"
        },
        {
          "moduleId": 62,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/close.js",
          "module": "./~/sockjs-client/lib/event/close.js",
          "moduleName": "./~/sockjs-client/lib/event/close.js",
          "type": "cjs require",
          "userRequest": "./event",
          "loc": "4:12-30"
        },
        {
          "moduleId": 63,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/trans-message.js",
          "module": "./~/sockjs-client/lib/event/trans-message.js",
          "moduleName": "./~/sockjs-client/lib/event/trans-message.js",
          "type": "cjs require",
          "userRequest": "./event",
          "loc": "4:12-30"
        }
      ],
      "source": "'use strict';\n\nfunction Event(eventType) {\n  this.type = eventType;\n}\n\nEvent.prototype.initEvent = function(eventType, canBubble, cancelable) {\n  this.type = eventType;\n  this.bubbles = canBubble;\n  this.cancelable = cancelable;\n  this.timeStamp = +new Date();\n  return this;\n};\n\nEvent.prototype.stopPropagation = function() {};\nEvent.prototype.preventDefault  = function() {};\n\nEvent.CAPTURING_PHASE = 1;\nEvent.AT_TARGET       = 2;\nEvent.BUBBLING_PHASE  = 3;\n\nmodule.exports = Event;\n"
    },
    {
      "id": 61,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/location.js",
      "name": "./~/sockjs-client/lib/location.js",
      "index": 61,
      "index2": 57,
      "size": 177,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./location",
          "loc": "18:10-31"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "./location",
          "loc": "9:10-31"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = global.location || {\n  origin: 'http://localhost:80'\n, protocol: 'http'\n, host: 'localhost'\n, port: 80\n, href: 'http://localhost/'\n, hash: ''\n};\n"
    },
    {
      "id": 62,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/close.js",
      "name": "./~/sockjs-client/lib/event/close.js",
      "index": 62,
      "index2": 58,
      "size": 295,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./event/close",
          "loc": "19:17-41"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , Event = require('./event')\n  ;\n\nfunction CloseEvent() {\n  Event.call(this);\n  this.initEvent('close', false, false);\n  this.wasClean = false;\n  this.code = 0;\n  this.reason = '';\n}\n\ninherits(CloseEvent, Event);\n\nmodule.exports = CloseEvent;\n"
    },
    {
      "id": 63,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/event/trans-message.js",
      "name": "./~/sockjs-client/lib/event/trans-message.js",
      "index": 63,
      "index2": 59,
      "size": 292,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./event/trans-message",
          "loc": "20:28-60"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , Event = require('./event')\n  ;\n\nfunction TransportMessageEvent(data) {\n  Event.call(this);\n  this.initEvent('message', false, false);\n  this.data = data;\n}\n\ninherits(TransportMessageEvent, Event);\n\nmodule.exports = TransportMessageEvent;\n"
    },
    {
      "id": 64,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
      "name": "./~/sockjs-client/lib/info-receiver.js",
      "index": 64,
      "index2": 64,
      "size": 2223,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./info-receiver",
          "loc": "21:19-45"
        }
      ],
      "source": "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n  , inherits = require('inherits')\n  , urlUtils = require('./utils/url')\n  , XDR = require('./transport/sender/xdr')\n  , XHRCors = require('./transport/sender/xhr-cors')\n  , XHRLocal = require('./transport/sender/xhr-local')\n  , XHRFake = require('./transport/sender/xhr-fake')\n  , InfoIframe = require('./info-iframe')\n  , InfoAjax = require('./info-ajax')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:info-receiver');\n}\n\nfunction InfoReceiver(baseUrl, urlInfo) {\n  debug(baseUrl);\n  var self = this;\n  EventEmitter.call(this);\n\n  setTimeout(function() {\n    self.doXhr(baseUrl, urlInfo);\n  }, 0);\n}\n\ninherits(InfoReceiver, EventEmitter);\n\n// TODO this is currently ignoring the list of available transports and the whitelist\n\nInfoReceiver._getReceiver = function(baseUrl, url, urlInfo) {\n  // determine method of CORS support (if needed)\n  if (urlInfo.sameOrigin) {\n    return new InfoAjax(url, XHRLocal);\n  }\n  if (XHRCors.enabled) {\n    return new InfoAjax(url, XHRCors);\n  }\n  if (XDR.enabled && urlInfo.sameScheme) {\n    return new InfoAjax(url, XDR);\n  }\n  if (InfoIframe.enabled()) {\n    return new InfoIframe(baseUrl, url);\n  }\n  return new InfoAjax(url, XHRFake);\n};\n\nInfoReceiver.prototype.doXhr = function(baseUrl, urlInfo) {\n  var self = this\n    , url = urlUtils.addPath(baseUrl, '/info')\n    ;\n  debug('doXhr', url);\n\n  this.xo = InfoReceiver._getReceiver(baseUrl, url, urlInfo);\n\n  this.timeoutRef = setTimeout(function() {\n    debug('timeout');\n    self._cleanup(false);\n    self.emit('finish');\n  }, InfoReceiver.timeout);\n\n  this.xo.once('finish', function(info, rtt) {\n    debug('finish', info, rtt);\n    self._cleanup(true);\n    self.emit('finish', info, rtt);\n  });\n};\n\nInfoReceiver.prototype._cleanup = function(wasClean) {\n  debug('_cleanup');\n  clearTimeout(this.timeoutRef);\n  this.timeoutRef = null;\n  if (!wasClean && this.xo) {\n    this.xo.close();\n  }\n  this.xo = null;\n};\n\nInfoReceiver.prototype.close = function() {\n  debug('close');\n  this.removeAllListeners();\n  this._cleanup(false);\n};\n\nInfoReceiver.timeout = 8000;\n\nmodule.exports = InfoReceiver;\n"
    },
    {
      "id": 65,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/transport/sender/xhr-fake.js",
      "name": "./~/sockjs-client/lib/transport/sender/xhr-fake.js",
      "index": 65,
      "index2": 60,
      "size": 456,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./transport/sender/xhr-fake",
          "loc": "9:14-52"
        }
      ],
      "source": "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n  , inherits = require('inherits')\n  ;\n\nfunction XHRFake(/* method, url, payload, opts */) {\n  var self = this;\n  EventEmitter.call(this);\n\n  this.to = setTimeout(function() {\n    self.emit('finish', 200, '{}');\n  }, XHRFake.timeout);\n}\n\ninherits(XHRFake, EventEmitter);\n\nXHRFake.prototype.close = function() {\n  clearTimeout(this.to);\n};\n\nXHRFake.timeout = 2000;\n\nmodule.exports = XHRFake;\n"
    },
    {
      "id": 66,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
      "name": "./~/sockjs-client/lib/info-iframe.js",
      "index": 66,
      "index2": 63,
      "size": 1520,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./info-iframe",
          "loc": "10:17-41"
        }
      ],
      "source": "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n  , inherits = require('inherits')\n  , JSON3 = require('json3')\n  , utils = require('./utils/event')\n  , IframeTransport = require('./transport/iframe')\n  , InfoReceiverIframe = require('./info-iframe-receiver')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:info-iframe');\n}\n\nfunction InfoIframe(baseUrl, url) {\n  var self = this;\n  EventEmitter.call(this);\n\n  var go = function() {\n    var ifr = self.ifr = new IframeTransport(InfoReceiverIframe.transportName, url, baseUrl);\n\n    ifr.once('message', function(msg) {\n      if (msg) {\n        var d;\n        try {\n          d = JSON3.parse(msg);\n        } catch (e) {\n          debug('bad json', msg);\n          self.emit('finish');\n          self.close();\n          return;\n        }\n\n        var info = d[0], rtt = d[1];\n        self.emit('finish', info, rtt);\n      }\n      self.close();\n    });\n\n    ifr.once('close', function() {\n      self.emit('finish');\n      self.close();\n    });\n  };\n\n  // TODO this seems the same as the 'needBody' from transports\n  if (!global.document.body) {\n    utils.attachEvent('load', go);\n  } else {\n    go();\n  }\n}\n\ninherits(InfoIframe, EventEmitter);\n\nInfoIframe.enabled = function() {\n  return IframeTransport.enabled();\n};\n\nInfoIframe.prototype.close = function() {\n  if (this.ifr) {\n    this.ifr.close();\n  }\n  this.removeAllListeners();\n  this.ifr = null;\n};\n\nmodule.exports = InfoIframe;\n"
    },
    {
      "id": 67,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe-receiver.js",
      "name": "./~/sockjs-client/lib/info-iframe-receiver.js",
      "index": 67,
      "index2": 62,
      "size": 791,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 66,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe.js",
          "module": "./~/sockjs-client/lib/info-iframe.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe.js",
          "type": "cjs require",
          "userRequest": "./info-iframe-receiver",
          "loc": "8:25-58"
        },
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "./info-iframe-receiver",
          "loc": "7:25-58"
        }
      ],
      "source": "'use strict';\n\nvar inherits = require('inherits')\n  , EventEmitter = require('events').EventEmitter\n  , JSON3 = require('json3')\n  , XHRLocalObject = require('./transport/sender/xhr-local')\n  , InfoAjax = require('./info-ajax')\n  ;\n\nfunction InfoReceiverIframe(transUrl) {\n  var self = this;\n  EventEmitter.call(this);\n\n  this.ir = new InfoAjax(transUrl, XHRLocalObject);\n  this.ir.once('finish', function(info, rtt) {\n    self.ir = null;\n    self.emit('message', JSON3.stringify([info, rtt]));\n  });\n}\n\ninherits(InfoReceiverIframe, EventEmitter);\n\nInfoReceiverIframe.transportName = 'iframe-info-receiver';\n\nInfoReceiverIframe.prototype.close = function() {\n  if (this.ir) {\n    this.ir.close();\n    this.ir = null;\n  }\n  this.removeAllListeners();\n};\n\nmodule.exports = InfoReceiverIframe;\n"
    },
    {
      "id": 68,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-ajax.js",
      "name": "./~/sockjs-client/lib/info-ajax.js",
      "index": 68,
      "index2": 61,
      "size": 1032,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 64,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-receiver.js",
          "module": "./~/sockjs-client/lib/info-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-receiver.js",
          "type": "cjs require",
          "userRequest": "./info-ajax",
          "loc": "11:15-37"
        },
        {
          "moduleId": 67,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/info-iframe-receiver.js",
          "module": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "moduleName": "./~/sockjs-client/lib/info-iframe-receiver.js",
          "type": "cjs require",
          "userRequest": "./info-ajax",
          "loc": "7:15-37"
        }
      ],
      "source": "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n  , inherits = require('inherits')\n  , JSON3 = require('json3')\n  , objectUtils = require('./utils/object')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:info-ajax');\n}\n\nfunction InfoAjax(url, AjaxObject) {\n  EventEmitter.call(this);\n\n  var self = this;\n  var t0 = +new Date();\n  this.xo = new AjaxObject('GET', url);\n\n  this.xo.once('finish', function(status, text) {\n    var info, rtt;\n    if (status === 200) {\n      rtt = (+new Date()) - t0;\n      if (text) {\n        try {\n          info = JSON3.parse(text);\n        } catch (e) {\n          debug('bad json', text);\n        }\n      }\n\n      if (!objectUtils.isObject(info)) {\n        info = {};\n      }\n    }\n    self.emit('finish', info, rtt);\n    self.removeAllListeners();\n  });\n}\n\ninherits(InfoAjax, EventEmitter);\n\nInfoAjax.prototype.close = function() {\n  this.removeAllListeners();\n  this.xo.close();\n};\n\nmodule.exports = InfoAjax;\n"
    },
    {
      "id": 69,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
      "name": "./~/sockjs-client/lib/iframe-bootstrap.js",
      "index": 69,
      "index2": 66,
      "size": 2902,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 55,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/main.js",
          "module": "./~/sockjs-client/lib/main.js",
          "moduleName": "./~/sockjs-client/lib/main.js",
          "type": "cjs require",
          "userRequest": "./iframe-bootstrap",
          "loc": "379:2-31"
        }
      ],
      "source": "'use strict';\n\nvar urlUtils = require('./utils/url')\n  , eventUtils = require('./utils/event')\n  , JSON3 = require('json3')\n  , FacadeJS = require('./facade')\n  , InfoIframeReceiver = require('./info-iframe-receiver')\n  , iframeUtils = require('./utils/iframe')\n  , loc = require('./location')\n  ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n  debug = require('debug')('sockjs-client:iframe-bootstrap');\n}\n\nmodule.exports = function(SockJS, availableTransports) {\n  var transportMap = {};\n  availableTransports.forEach(function(at) {\n    if (at.facadeTransport) {\n      transportMap[at.facadeTransport.transportName] = at.facadeTransport;\n    }\n  });\n\n  // hard-coded for the info iframe\n  // TODO see if we can make this more dynamic\n  transportMap[InfoIframeReceiver.transportName] = InfoIframeReceiver;\n  var parentOrigin;\n\n  /* eslint-disable camelcase */\n  SockJS.bootstrap_iframe = function() {\n    /* eslint-enable camelcase */\n    var facade;\n    iframeUtils.currentWindowId = loc.hash.slice(1);\n    var onMessage = function(e) {\n      if (e.source !== parent) {\n        return;\n      }\n      if (typeof parentOrigin === 'undefined') {\n        parentOrigin = e.origin;\n      }\n      if (e.origin !== parentOrigin) {\n        return;\n      }\n\n      var iframeMessage;\n      try {\n        iframeMessage = JSON3.parse(e.data);\n      } catch (ignored) {\n        debug('bad json', e.data);\n        return;\n      }\n\n      if (iframeMessage.windowId !== iframeUtils.currentWindowId) {\n        return;\n      }\n      switch (iframeMessage.type) {\n      case 's':\n        var p;\n        try {\n          p = JSON3.parse(iframeMessage.data);\n        } catch (ignored) {\n          debug('bad json', iframeMessage.data);\n          break;\n        }\n        var version = p[0];\n        var transport = p[1];\n        var transUrl = p[2];\n        var baseUrl = p[3];\n        debug(version, transport, transUrl, baseUrl);\n        // change this to semver logic\n        if (version !== SockJS.version) {\n          throw new Error('Incompatibile SockJS! Main site uses:' +\n                    ' \"' + version + '\", the iframe:' +\n                    ' \"' + SockJS.version + '\".');\n        }\n\n        if (!urlUtils.isOriginEqual(transUrl, loc.href) ||\n            !urlUtils.isOriginEqual(baseUrl, loc.href)) {\n          throw new Error('Can\\'t connect to different domain from within an ' +\n                    'iframe. (' + loc.href + ', ' + transUrl + ', ' + baseUrl + ')');\n        }\n        facade = new FacadeJS(new transportMap[transport](transUrl, baseUrl));\n        break;\n      case 'm':\n        facade._send(iframeMessage.data);\n        break;\n      case 'c':\n        if (facade) {\n          facade._close();\n        }\n        facade = null;\n        break;\n      }\n    };\n\n    eventUtils.attachEvent('message', onMessage);\n\n    // Start\n    iframeUtils.postMessage('s');\n  };\n};\n"
    },
    {
      "id": 70,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/facade.js",
      "name": "./~/sockjs-client/lib/facade.js",
      "index": 70,
      "index2": 65,
      "size": 723,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 69,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/sockjs-client/lib/iframe-bootstrap.js",
          "module": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "moduleName": "./~/sockjs-client/lib/iframe-bootstrap.js",
          "type": "cjs require",
          "userRequest": "./facade",
          "loc": "6:15-34"
        }
      ],
      "source": "'use strict';\n\nvar JSON3 = require('json3')\n  , iframeUtils = require('./utils/iframe')\n  ;\n\nfunction FacadeJS(transport) {\n  this._transport = transport;\n  transport.on('message', this._transportMessage.bind(this));\n  transport.on('close', this._transportClose.bind(this));\n}\n\nFacadeJS.prototype._transportClose = function(code, reason) {\n  iframeUtils.postMessage('c', JSON3.stringify([code, reason]));\n};\nFacadeJS.prototype._transportMessage = function(frame) {\n  iframeUtils.postMessage('t', frame);\n};\nFacadeJS.prototype._send = function(data) {\n  this._transport.send(data);\n};\nFacadeJS.prototype._close = function() {\n  this._transport.close();\n  this._transport.removeAllListeners();\n};\n\nmodule.exports = FacadeJS;\n"
    },
    {
      "id": 71,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/strip-ansi/index.js",
      "name": "./~/strip-ansi/index.js",
      "index": 71,
      "index2": 70,
      "size": 161,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 1,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/webpack-dev-server/client/index.js?http://localhost:8081",
          "module": "./~/webpack-dev-server/client?http://localhost:8081",
          "moduleName": "./~/webpack-dev-server/client?http://localhost:8081",
          "type": "cjs require",
          "userRequest": "strip-ansi",
          "loc": "3:16-37"
        }
      ],
      "source": "'use strict';\nvar ansiRegex = require('ansi-regex')();\n\nmodule.exports = function (str) {\n\treturn typeof str === 'string' ? str.replace(ansiRegex, '') : str;\n};\n"
    },
    {
      "id": 72,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/ansi-regex/index.js",
      "name": "./~/ansi-regex/index.js",
      "index": 72,
      "index2": 69,
      "size": 135,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/strip-ansi/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 71,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/strip-ansi/index.js",
          "module": "./~/strip-ansi/index.js",
          "moduleName": "./~/strip-ansi/index.js",
          "type": "cjs require",
          "userRequest": "ansi-regex",
          "loc": "2:16-37"
        }
      ],
      "source": "'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\n};\n"
    },
    {
      "id": 73,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/react.js",
      "name": "./~/react/react.js",
      "index": 73,
      "index2": 227,
      "size": 56,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "multi _vendor",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "multi _vendor",
          "module": "multi _vendor",
          "moduleName": "multi _vendor",
          "type": "single entry",
          "userRequest": "react"
        },
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
          "module": "./modules/client.js",
          "moduleName": "./modules/client.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "3:13-29"
        },
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "19:13-29"
        },
        {
          "moduleId": 261,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouteUtils.js",
          "module": "./~/react-router/lib/RouteUtils.js",
          "moduleName": "./~/react-router/lib/RouteUtils.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "14:13-29"
        },
        {
          "moduleId": 262,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/PropTypes.js",
          "module": "./~/react-router/lib/PropTypes.js",
          "moduleName": "./~/react-router/lib/PropTypes.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "6:13-29"
        },
        {
          "moduleId": 263,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
          "module": "./~/react-router/lib/RouterContext.js",
          "moduleName": "./~/react-router/lib/RouterContext.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "13:13-29"
        },
        {
          "moduleId": 267,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Link.js",
          "module": "./~/react-router/lib/Link.js",
          "moduleName": "./~/react-router/lib/Link.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "11:13-29"
        },
        {
          "moduleId": 268,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexLink.js",
          "module": "./~/react-router/lib/IndexLink.js",
          "moduleName": "./~/react-router/lib/IndexLink.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "9:13-29"
        },
        {
          "moduleId": 269,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
          "module": "./~/react-router/lib/IndexRedirect.js",
          "moduleName": "./~/react-router/lib/IndexRedirect.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 270,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Redirect.js",
          "module": "./~/react-router/lib/Redirect.js",
          "moduleName": "./~/react-router/lib/Redirect.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 271,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRoute.js",
          "module": "./~/react-router/lib/IndexRoute.js",
          "moduleName": "./~/react-router/lib/IndexRoute.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 272,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Route.js",
          "module": "./~/react-router/lib/Route.js",
          "moduleName": "./~/react-router/lib/Route.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 274,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Lifecycle.js",
          "module": "./~/react-router/lib/Lifecycle.js",
          "moduleName": "./~/react-router/lib/Lifecycle.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "11:13-29"
        },
        {
          "moduleId": 275,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouteContext.js",
          "module": "./~/react-router/lib/RouteContext.js",
          "moduleName": "./~/react-router/lib/RouteContext.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "11:13-29"
        },
        {
          "moduleId": 277,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RoutingContext.js",
          "module": "./~/react-router/lib/RoutingContext.js",
          "moduleName": "./~/react-router/lib/RoutingContext.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "9:13-29"
        },
        {
          "moduleId": 451,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/App.js",
          "module": "./modules/components/App.js",
          "moduleName": "./modules/components/App.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 452,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-title-component/lib/Title.js",
          "module": "./~/react-title-component/lib/Title.js",
          "moduleName": "./~/react-title-component/lib/Title.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "8:13-29"
        },
        {
          "moduleId": 453,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Home.js",
          "module": "./modules/components/Home.js",
          "moduleName": "./modules/components/Home.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 454,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/NoMatch.js",
          "module": "./modules/components/NoMatch.js",
          "moduleName": "./modules/components/NoMatch.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        },
        {
          "moduleId": 455,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
          "module": "./modules/components/Dragon/index.js",
          "moduleName": "./modules/components/Dragon/index.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "7:13-29"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = require('./lib/React');\n"
    },
    {
      "id": 74,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
      "name": "./~/react/lib/React.js",
      "index": 74,
      "index2": 226,
      "size": 1490,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/react.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 73,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/react.js",
          "module": "./~/react/react.js",
          "moduleName": "./~/react/react.js",
          "type": "cjs require",
          "userRequest": "./lib/React",
          "loc": "3:17-39"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar ReactDOM = require('./ReactDOM');\nvar ReactDOMServer = require('./ReactDOMServer');\nvar ReactIsomorphic = require('./ReactIsomorphic');\n\nvar assign = require('./Object.assign');\nvar deprecated = require('./deprecated');\n\n// `version` will be added here by ReactIsomorphic.\nvar React = {};\n\nassign(React, ReactIsomorphic);\n\nassign(React, {\n  // ReactDOM\n  findDOMNode: deprecated('findDOMNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.findDOMNode),\n  render: deprecated('render', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.render),\n  unmountComponentAtNode: deprecated('unmountComponentAtNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.unmountComponentAtNode),\n\n  // ReactDOMServer\n  renderToString: deprecated('renderToString', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToString),\n  renderToStaticMarkup: deprecated('renderToStaticMarkup', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToStaticMarkup)\n});\n\nReact.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;\nReact.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer;\n\nmodule.exports = React;"
    },
    {
      "id": 75,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "name": "./~/react/lib/ReactDOM.js",
      "index": 75,
      "index2": 215,
      "size": 3709,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-dom/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 74,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
          "module": "./~/react/lib/React.js",
          "moduleName": "./~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./ReactDOM",
          "loc": "14:15-36"
        },
        {
          "moduleId": 229,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-dom/index.js",
          "module": "./~/react-dom/index.js",
          "moduleName": "./~/react-dom/index.js",
          "type": "cjs require",
          "userRequest": "react/lib/ReactDOM",
          "loc": "3:17-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar render = ReactPerf.measure('React', 'render', ReactMount.render);\n\nvar React = {\n  findDOMNode: findDOMNode,\n  render: render,\n  unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n  version: ReactVersion,\n\n  /* eslint-disable camelcase */\n  unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n  unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n    CurrentOwner: ReactCurrentOwner,\n    InstanceHandles: ReactInstanceHandles,\n    Mount: ReactMount,\n    Reconciler: ReactReconciler,\n    TextComponent: ReactDOMTextComponent\n  });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n    // First check if devtools is not installed\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n      // If we're in Chrome or Firefox, provide a download link if not installed.\n      if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n        console.debug('Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools');\n      }\n    }\n\n    // If we're in IE8, check to see if we are in compatibility mode and provide\n    // information on preventing compatibility mode\n    var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n    process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : undefined;\n\n    var expectedFeatures = [\n    // shims\n    Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim,\n\n    // shams\n    Object.create, Object.freeze];\n\n    for (var i = 0; i < expectedFeatures.length; i++) {\n      if (!expectedFeatures[i]) {\n        console.error('One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills');\n        break;\n      }\n    }\n  }\n}\n\nmodule.exports = React;"
    },
    {
      "id": 76,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCurrentOwner.js",
      "name": "./~/react/lib/ReactCurrentOwner.js",
      "index": 76,
      "index2": 72,
      "size": 653,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "16:24-54"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "16:24-54"
        },
        {
          "moduleId": 113,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElement.js",
          "module": "./~/react/lib/ReactElement.js",
          "moduleName": "./~/react/lib/ReactElement.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "14:24-54"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "14:24-54"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "15:24-54"
        },
        {
          "moduleId": 162,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/findDOMNode.js",
          "module": "./~/react/lib/findDOMNode.js",
          "moduleName": "./~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "15:24-54"
        },
        {
          "moduleId": 182,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
          "module": "./~/react/lib/traverseAllChildren.js",
          "moduleName": "./~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "14:24-54"
        },
        {
          "moduleId": 185,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
          "module": "./~/react/lib/ReactMultiChild.js",
          "moduleName": "./~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "18:24-54"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "24:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;"
    },
    {
      "id": 77,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "name": "./~/react/lib/ReactDOMTextComponent.js",
      "index": 77,
      "index2": 137,
      "size": 4317,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMTextComponent",
          "loc": "17:28-62"
        },
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMTextComponent",
          "loc": "25:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactMount = require('./ReactMount');\n\nvar assign = require('./Object.assign');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setTextContent = require('./setTextContent');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n *  - When mounting text into the DOM, adjacent text nodes are merged.\n *  - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings in elements so that they can undergo\n * the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (props) {\n  // This constructor and its argument is currently used by mocks.\n};\n\nassign(ReactDOMTextComponent.prototype, {\n\n  /**\n   * @param {ReactText} text\n   * @internal\n   */\n  construct: function (text) {\n    // TODO: This is really a ReactText (ReactNode), not a ReactElement\n    this._currentElement = text;\n    this._stringText = '' + text;\n\n    // Properties\n    this._rootNodeID = null;\n    this._mountIndex = 0;\n  },\n\n  /**\n   * Creates the markup for this text node. This node is not intended to have\n   * any features besides containing text content.\n   *\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {string} Markup for this text node.\n   * @internal\n   */\n  mountComponent: function (rootID, transaction, context) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (context[validateDOMNesting.ancestorInfoContextKey]) {\n        validateDOMNesting('span', null, context[validateDOMNesting.ancestorInfoContextKey]);\n      }\n    }\n\n    this._rootNodeID = rootID;\n    if (transaction.useCreateElement) {\n      var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n      var el = ownerDocument.createElement('span');\n      DOMPropertyOperations.setAttributeForID(el, rootID);\n      // Populate node cache\n      ReactMount.getID(el);\n      setTextContent(el, this._stringText);\n      return el;\n    } else {\n      var escapedText = escapeTextContentForBrowser(this._stringText);\n\n      if (transaction.renderToStaticMarkup) {\n        // Normally we'd wrap this in a `span` for the reasons stated above, but\n        // since this is a situation where React won't take over (static pages),\n        // we can simply return the text as it is.\n        return escapedText;\n      }\n\n      return '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' + escapedText + '</span>';\n    }\n  },\n\n  /**\n   * Updates this component by updating the text content.\n   *\n   * @param {ReactText} nextText The next text content\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  receiveComponent: function (nextText, transaction) {\n    if (nextText !== this._currentElement) {\n      this._currentElement = nextText;\n      var nextStringText = '' + nextText;\n      if (nextStringText !== this._stringText) {\n        // TODO: Save this as pending props and use performUpdateIfNecessary\n        // and/or updateComponent to do the actual update for consistency with\n        // other component types?\n        this._stringText = nextStringText;\n        var node = ReactMount.getNode(this._rootNodeID);\n        DOMChildrenOperations.updateTextContent(node, nextStringText);\n      }\n    }\n  },\n\n  unmountComponent: function () {\n    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n  }\n\n});\n\nmodule.exports = ReactDOMTextComponent;"
    },
    {
      "id": 78,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
      "name": "./~/react/lib/DOMChildrenOperations.js",
      "index": 78,
      "index2": 87,
      "size": 4996,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMChildrenOperations",
          "loc": "15:28-62"
        },
        {
          "moduleId": 98,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "./~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "./~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./DOMChildrenOperations",
          "loc": "15:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar Danger = require('./Danger');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\nvar ReactPerf = require('./ReactPerf');\n\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nfunction insertChildAt(parentNode, childNode, index) {\n  // By exploiting arrays returning `undefined` for an undefined index, we can\n  // rely exclusively on `insertBefore(node, null)` instead of also using\n  // `appendChild(node)`. However, using `undefined` is not allowed by all\n  // browsers so we must replace it with `null`.\n\n  // fix render order error in safari\n  // IE8 will throw error when index out of list size.\n  var beforeChild = index >= parentNode.childNodes.length ? null : parentNode.childNodes.item(index);\n\n  parentNode.insertBefore(childNode, beforeChild);\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n  dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,\n\n  updateTextContent: setTextContent,\n\n  /**\n   * Updates a component's children by processing a series of updates. The\n   * update configurations are each expected to have a `parentNode` property.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @param {array<string>} markupList List of markup strings.\n   * @internal\n   */\n  processUpdates: function (updates, markupList) {\n    var update;\n    // Mapping from parent IDs to initial child orderings.\n    var initialChildren = null;\n    // List of children that will be moved or removed.\n    var updatedChildren = null;\n\n    for (var i = 0; i < updates.length; i++) {\n      update = updates[i];\n      if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {\n        var updatedIndex = update.fromIndex;\n        var updatedChild = update.parentNode.childNodes[updatedIndex];\n        var parentID = update.parentID;\n\n        !updatedChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a <tbody> when using tables, ' + 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' + 'in an <svg> parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID) : invariant(false) : undefined;\n\n        initialChildren = initialChildren || {};\n        initialChildren[parentID] = initialChildren[parentID] || [];\n        initialChildren[parentID][updatedIndex] = updatedChild;\n\n        updatedChildren = updatedChildren || [];\n        updatedChildren.push(updatedChild);\n      }\n    }\n\n    var renderedMarkup;\n    // markupList is either a list of markup or just a list of elements\n    if (markupList.length && typeof markupList[0] === 'string') {\n      renderedMarkup = Danger.dangerouslyRenderMarkup(markupList);\n    } else {\n      renderedMarkup = markupList;\n    }\n\n    // Remove updated children first so that `toIndex` is consistent.\n    if (updatedChildren) {\n      for (var j = 0; j < updatedChildren.length; j++) {\n        updatedChildren[j].parentNode.removeChild(updatedChildren[j]);\n      }\n    }\n\n    for (var k = 0; k < updates.length; k++) {\n      update = updates[k];\n      switch (update.type) {\n        case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n          insertChildAt(update.parentNode, renderedMarkup[update.markupIndex], update.toIndex);\n          break;\n        case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n          insertChildAt(update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex);\n          break;\n        case ReactMultiChildUpdateTypes.SET_MARKUP:\n          setInnerHTML(update.parentNode, update.content);\n          break;\n        case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n          setTextContent(update.parentNode, update.content);\n          break;\n        case ReactMultiChildUpdateTypes.REMOVE_NODE:\n          // Already removed by the for-loop above.\n          break;\n      }\n    }\n  }\n\n};\n\nReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', {\n  updateTextContent: 'updateTextContent'\n});\n\nmodule.exports = DOMChildrenOperations;"
    },
    {
      "id": 79,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
      "name": "./~/react/lib/Danger.js",
      "index": 79,
      "index2": 80,
      "size": 6962,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 78,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "./~/react/lib/DOMChildrenOperations.js",
          "moduleName": "./~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./Danger",
          "loc": "15:13-32"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getMarkupWrap = require('fbjs/lib/getMarkupWrap');\nvar invariant = require('fbjs/lib/invariant');\n\nvar OPEN_TAG_NAME_EXP = /^(<[^ \\/>]+)/;\nvar RESULT_INDEX_ATTR = 'data-danger-index';\n\n/**\n * Extracts the `nodeName` from a string of markup.\n *\n * NOTE: Extracting the `nodeName` does not require a regular expression match\n * because we make assumptions about React-generated markup (i.e. there are no\n * spaces surrounding the opening tag and there is at least one attribute).\n *\n * @param {string} markup String of markup.\n * @return {string} Node name of the supplied markup.\n * @see http://jsperf.com/extract-nodename\n */\nfunction getNodeName(markup) {\n  return markup.substring(1, markup.indexOf(' '));\n}\n\nvar Danger = {\n\n  /**\n   * Renders markup into an array of nodes. The markup is expected to render\n   * into a list of root nodes. Also, the length of `resultList` and\n   * `markupList` should be the same.\n   *\n   * @param {array<string>} markupList List of markup strings to render.\n   * @return {array<DOMElement>} List of rendered nodes.\n   * @internal\n   */\n  dangerouslyRenderMarkup: function (markupList) {\n    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : undefined;\n    var nodeName;\n    var markupByNodeName = {};\n    // Group markup by `nodeName` if a wrap is necessary, else by '*'.\n    for (var i = 0; i < markupList.length; i++) {\n      !markupList[i] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : undefined;\n      nodeName = getNodeName(markupList[i]);\n      nodeName = getMarkupWrap(nodeName) ? nodeName : '*';\n      markupByNodeName[nodeName] = markupByNodeName[nodeName] || [];\n      markupByNodeName[nodeName][i] = markupList[i];\n    }\n    var resultList = [];\n    var resultListAssignmentCount = 0;\n    for (nodeName in markupByNodeName) {\n      if (!markupByNodeName.hasOwnProperty(nodeName)) {\n        continue;\n      }\n      var markupListByNodeName = markupByNodeName[nodeName];\n\n      // This for-in loop skips the holes of the sparse array. The order of\n      // iteration should follow the order of assignment, which happens to match\n      // numerical index order, but we don't rely on that.\n      var resultIndex;\n      for (resultIndex in markupListByNodeName) {\n        if (markupListByNodeName.hasOwnProperty(resultIndex)) {\n          var markup = markupListByNodeName[resultIndex];\n\n          // Push the requested markup with an additional RESULT_INDEX_ATTR\n          // attribute.  If the markup does not start with a < character, it\n          // will be discarded below (with an appropriate console.error).\n          markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP,\n          // This index will be parsed back out below.\n          '$1 ' + RESULT_INDEX_ATTR + '=\"' + resultIndex + '\" ');\n        }\n      }\n\n      // Render each group of markup with similar wrapping `nodeName`.\n      var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with <script> tags.\n      );\n\n      for (var j = 0; j < renderNodes.length; ++j) {\n        var renderNode = renderNodes[j];\n        if (renderNode.hasAttribute && renderNode.hasAttribute(RESULT_INDEX_ATTR)) {\n\n          resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR);\n          renderNode.removeAttribute(RESULT_INDEX_ATTR);\n\n          !!resultList.hasOwnProperty(resultIndex) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Assigning to an already-occupied result index.') : invariant(false) : undefined;\n\n          resultList[resultIndex] = renderNode;\n\n          // This should match resultList.length and markupList.length when\n          // we're done.\n          resultListAssignmentCount += 1;\n        } else if (process.env.NODE_ENV !== 'production') {\n          console.error('Danger: Discarding unexpected node:', renderNode);\n        }\n      }\n    }\n\n    // Although resultList was populated out of order, it should now be a dense\n    // array.\n    !(resultListAssignmentCount === resultList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Did not assign to every index of resultList.') : invariant(false) : undefined;\n\n    !(resultList.length === markupList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Expected markup to render %s nodes, but rendered %s.', markupList.length, resultList.length) : invariant(false) : undefined;\n\n    return resultList;\n  },\n\n  /**\n   * Replaces a node with a string of markup at its current position within its\n   * parent. The markup must render into a single root node.\n   *\n   * @param {DOMElement} oldChild Child node to replace.\n   * @param {string} markup Markup to render in place of the child node.\n   * @internal\n   */\n  dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 'worker thread. Make sure `window` and `document` are available ' + 'globally before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n    !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(false) : undefined;\n    !(oldChild.tagName.toLowerCase() !== 'html') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' + '<html> node. This is because browser quirks make this unreliable ' + 'and/or slow. If you want to render to the root you must use ' + 'server rendering. See ReactDOMServer.renderToString().') : invariant(false) : undefined;\n\n    var newChild;\n    if (typeof markup === 'string') {\n      newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n    } else {\n      newChild = markup;\n    }\n    oldChild.parentNode.replaceChild(newChild, oldChild);\n  }\n\n};\n\nmodule.exports = Danger;"
    },
    {
      "id": 80,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/ExecutionEnvironment.js",
      "name": "./~/fbjs/lib/ExecutionEnvironment.js",
      "index": 80,
      "index2": 73,
      "size": 1094,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "59:29-69"
        },
        {
          "moduleId": 79,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
          "module": "./~/react/lib/Danger.js",
          "moduleName": "./~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "15:27-67"
        },
        {
          "moduleId": 81,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "./~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "./~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "17:27-60"
        },
        {
          "moduleId": 85,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/getMarkupWrap.js",
          "module": "./~/fbjs/lib/getMarkupWrap.js",
          "moduleName": "./~/fbjs/lib/getMarkupWrap.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "16:27-60"
        },
        {
          "moduleId": 90,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/setInnerHTML.js",
          "module": "./~/react/lib/setInnerHTML.js",
          "moduleName": "./~/react/lib/setInnerHTML.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 91,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/setTextContent.js",
          "module": "./~/react/lib/setTextContent.js",
          "moduleName": "./~/react/lib/setTextContent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 111,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/isEventSupported.js",
          "module": "./~/react/lib/isEventSupported.js",
          "moduleName": "./~/react/lib/isEventSupported.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "19:27-67"
        },
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "17:27-67"
        },
        {
          "moduleId": 146,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getTextContentAccessor.js",
          "module": "./~/react/lib/getTextContentAccessor.js",
          "moduleName": "./~/react/lib/getTextContentAccessor.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "17:27-67"
        },
        {
          "moduleId": 160,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/HTMLDOMPropertyConfig.js",
          "module": "./~/react/lib/HTMLDOMPropertyConfig.js",
          "moduleName": "./~/react/lib/HTMLDOMPropertyConfig.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "15:27-67"
        },
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 198,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelection.js",
          "module": "./~/react/lib/ReactDOMSelection.js",
          "moduleName": "./~/react/lib/ReactDOMSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 216,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/performance.js",
          "module": "./~/fbjs/lib/performance.js",
          "moduleName": "./~/fbjs/lib/performance.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "15:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;"
    },
    {
      "id": 81,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createNodesFromMarkup.js",
      "name": "./~/fbjs/lib/createNodesFromMarkup.js",
      "index": 81,
      "index2": 78,
      "size": 2712,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 79,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
          "module": "./~/react/lib/Danger.js",
          "moduleName": "./~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/createNodesFromMarkup",
          "loc": "17:28-69"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createNodesFromMarkup\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n  var nodeNameMatch = markup.match(nodeNamePattern);\n  return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n  var node = dummyNode;\n  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined;\n  var nodeName = getNodeName(markup);\n\n  var wrap = nodeName && getMarkupWrap(nodeName);\n  if (wrap) {\n    node.innerHTML = wrap[1] + markup + wrap[2];\n\n    var wrapDepth = wrap[0];\n    while (wrapDepth--) {\n      node = node.lastChild;\n    }\n  } else {\n    node.innerHTML = markup;\n  }\n\n  var scripts = node.getElementsByTagName('script');\n  if (scripts.length) {\n    !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined;\n    createArrayFromMixed(scripts).forEach(handleScript);\n  }\n\n  var nodes = createArrayFromMixed(node.childNodes);\n  while (node.lastChild) {\n    node.removeChild(node.lastChild);\n  }\n  return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;"
    },
    {
      "id": 82,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createArrayFromMixed.js",
      "name": "./~/fbjs/lib/createArrayFromMixed.js",
      "index": 82,
      "index2": 76,
      "size": 2358,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createNodesFromMarkup.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 81,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "./~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "./~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./createArrayFromMixed",
          "loc": "19:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createArrayFromMixed\n * @typechecks\n */\n\n'use strict';\n\nvar toArray = require('./toArray');\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n *   A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n *   Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n  return(\n    // not null/false\n    !!obj && (\n    // arrays are objects, NodeLists are functions in Safari\n    typeof obj == 'object' || typeof obj == 'function') &&\n    // quacks like an array\n    'length' in obj &&\n    // not window\n    !('setInterval' in obj) &&\n    // no DOM node should be considered an array-like\n    // a 'select' element has 'length' and 'item' properties on IE8\n    typeof obj.nodeType != 'number' && (\n    // a real array\n    Array.isArray(obj) ||\n    // arguments\n    'callee' in obj ||\n    // HTMLCollection/NodeList\n    'item' in obj)\n  );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n *   var createArrayFromMixed = require('createArrayFromMixed');\n *\n *   function takesOneOrMoreThings(things) {\n *     things = createArrayFromMixed(things);\n *     ...\n *   }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n  if (!hasArrayNature(obj)) {\n    return [obj];\n  } else if (Array.isArray(obj)) {\n    return obj.slice();\n  } else {\n    return toArray(obj);\n  }\n}\n\nmodule.exports = createArrayFromMixed;"
    },
    {
      "id": 83,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/toArray.js",
      "name": "./~/fbjs/lib/toArray.js",
      "index": 83,
      "index2": 75,
      "size": 1981,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createArrayFromMixed.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 82,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createArrayFromMixed.js",
          "module": "./~/fbjs/lib/createArrayFromMixed.js",
          "moduleName": "./~/fbjs/lib/createArrayFromMixed.js",
          "type": "cjs require",
          "userRequest": "./toArray",
          "loc": "15:14-34"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule toArray\n * @typechecks\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n  var length = obj.length;\n\n  // Some browse builtin objects can report typeof 'function' (e.g. NodeList in\n  // old versions of Safari).\n  !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : undefined;\n\n  !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : undefined;\n\n  !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : undefined;\n\n  // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n  // without method will throw during the slice call and skip straight to the\n  // fallback.\n  if (obj.hasOwnProperty) {\n    try {\n      return Array.prototype.slice.call(obj);\n    } catch (e) {\n      // IE < 9 does not support Array#slice on collections objects\n    }\n  }\n\n  // Fall back to copying key by key. This assumes all keys have a value,\n  // so will not preserve sparsely populated inputs.\n  var ret = Array(length);\n  for (var ii = 0; ii < length; ii++) {\n    ret[ii] = obj[ii];\n  }\n  return ret;\n}\n\nmodule.exports = toArray;"
    },
    {
      "id": 84,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/invariant.js",
      "name": "./~/fbjs/lib/invariant.js",
      "index": 84,
      "index2": 74,
      "size": 1515,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInstanceHandles.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 78,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "./~/react/lib/DOMChildrenOperations.js",
          "moduleName": "./~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "21:16-45"
        },
        {
          "moduleId": 79,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
          "module": "./~/react/lib/Danger.js",
          "moduleName": "./~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 81,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "./~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "./~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "21:16-38"
        },
        {
          "moduleId": 83,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/toArray.js",
          "module": "./~/fbjs/lib/toArray.js",
          "moduleName": "./~/fbjs/lib/toArray.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "15:16-38"
        },
        {
          "moduleId": 85,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/getMarkupWrap.js",
          "module": "./~/fbjs/lib/getMarkupWrap.js",
          "moduleName": "./~/fbjs/lib/getMarkupWrap.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "18:16-38"
        },
        {
          "moduleId": 88,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/keyMirror.js",
          "module": "./~/fbjs/lib/keyMirror.js",
          "moduleName": "./~/fbjs/lib/keyMirror.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "15:16-38"
        },
        {
          "moduleId": 94,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMProperty.js",
          "module": "./~/react/lib/DOMProperty.js",
          "moduleName": "./~/react/lib/DOMProperty.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        },
        {
          "moduleId": 98,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "./~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "./~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "32:16-45"
        },
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 103,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginRegistry.js",
          "module": "./~/react/lib/EventPluginRegistry.js",
          "moduleName": "./~/react/lib/EventPluginRegistry.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        },
        {
          "moduleId": 104,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginUtils.js",
          "module": "./~/react/lib/EventPluginUtils.js",
          "moduleName": "./~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "17:16-45"
        },
        {
          "moduleId": 106,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/accumulateInto.js",
          "module": "./~/react/lib/accumulateInto.js",
          "moduleName": "./~/react/lib/accumulateInto.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 116,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInstanceHandles.js",
          "module": "./~/react/lib/ReactInstanceHandles.js",
          "moduleName": "./~/react/lib/ReactInstanceHandles.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "17:16-45"
        },
        {
          "moduleId": 123,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactOwner.js",
          "module": "./~/react/lib/ReactOwner.js",
          "moduleName": "./~/react/lib/ReactOwner.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "21:16-45"
        },
        {
          "moduleId": 126,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CallbackQueue.js",
          "module": "./~/react/lib/CallbackQueue.js",
          "moduleName": "./~/react/lib/CallbackQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "17:16-45"
        },
        {
          "moduleId": 127,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/PooledClass.js",
          "module": "./~/react/lib/PooledClass.js",
          "moduleName": "./~/react/lib/PooledClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 128,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Transaction.js",
          "module": "./~/react/lib/Transaction.js",
          "moduleName": "./~/react/lib/Transaction.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 133,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
          "module": "./~/react/lib/instantiateReactComponent.js",
          "moduleName": "./~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "26:16-45"
        },
        {
          "moduleId": 135,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponentEnvironment.js",
          "module": "./~/react/lib/ReactComponentEnvironment.js",
          "moduleName": "./~/react/lib/ReactComponentEnvironment.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 140,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactNativeComponent.js",
          "module": "./~/react/lib/ReactNativeComponent.js",
          "moduleName": "./~/react/lib/ReactNativeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        },
        {
          "moduleId": 162,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/findDOMNode.js",
          "module": "./~/react/lib/findDOMNode.js",
          "moduleName": "./~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "19:16-45"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "37:16-45"
        },
        {
          "moduleId": 176,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
          "module": "./~/react/lib/ReactDOMInput.js",
          "moduleName": "./~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 177,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/LinkedValueUtils.js",
          "module": "./~/react/lib/LinkedValueUtils.js",
          "moduleName": "./~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "18:16-45"
        },
        {
          "moduleId": 182,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
          "module": "./~/react/lib/traverseAllChildren.js",
          "moduleName": "./~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "19:16-45"
        },
        {
          "moduleId": 184,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "./~/react/lib/ReactDOMTextarea.js",
          "moduleName": "./~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "19:16-45"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "22:16-45"
        },
        {
          "moduleId": 194,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
          "module": "./~/react/lib/ReactComponent.js",
          "moduleName": "./~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "18:16-45"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "30:16-45"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "24:16-45"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "28:16-45"
        },
        {
          "moduleId": 227,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/onlyChild.js",
          "module": "./~/react/lib/onlyChild.js",
          "moduleName": "./~/react/lib/onlyChild.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;"
    },
    {
      "id": 85,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/getMarkupWrap.js",
      "name": "./~/fbjs/lib/getMarkupWrap.js",
      "index": 85,
      "index2": 77,
      "size": 3064,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 79,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
          "module": "./~/react/lib/Danger.js",
          "moduleName": "./~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getMarkupWrap",
          "loc": "19:20-53"
        },
        {
          "moduleId": 81,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "./~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "./~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./getMarkupWrap",
          "loc": "20:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getMarkupWrap\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n  '*': [1, '?<div>', '</div>'],\n\n  'area': [1, '<map>', '</map>'],\n  'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n  'legend': [1, '<fieldset>', '</fieldset>'],\n  'param': [1, '<object>', '</object>'],\n  'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n  'optgroup': selectWrap,\n  'option': selectWrap,\n\n  'caption': tableWrap,\n  'colgroup': tableWrap,\n  'tbody': tableWrap,\n  'tfoot': tableWrap,\n  'thead': tableWrap,\n\n  'td': trWrap,\n  'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n  markupWrap[nodeName] = svgWrap;\n  shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : undefined;\n  if (!markupWrap.hasOwnProperty(nodeName)) {\n    nodeName = '*';\n  }\n  if (!shouldWrap.hasOwnProperty(nodeName)) {\n    if (nodeName === '*') {\n      dummyNode.innerHTML = '<link />';\n    } else {\n      dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n    }\n    shouldWrap[nodeName] = !dummyNode.firstChild;\n  }\n  return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;"
    },
    {
      "id": 86,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/emptyFunction.js",
      "name": "./~/fbjs/lib/emptyFunction.js",
      "index": 86,
      "index2": 79,
      "size": 1086,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/warning.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 79,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Danger.js",
          "module": "./~/react/lib/Danger.js",
          "moduleName": "./~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "18:20-53"
        },
        {
          "moduleId": 96,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/warning.js",
          "module": "./~/fbjs/lib/warning.js",
          "moduleName": "./~/fbjs/lib/warning.js",
          "type": "cjs require",
          "userRequest": "./emptyFunction",
          "loc": "14:20-46"
        },
        {
          "moduleId": 141,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/validateDOMNesting.js",
          "module": "./~/react/lib/validateDOMNesting.js",
          "moduleName": "./~/react/lib/validateDOMNesting.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "15:20-53"
        },
        {
          "moduleId": 148,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticEvent.js",
          "module": "./~/react/lib/SyntheticEvent.js",
          "moduleName": "./~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "18:20-53"
        },
        {
          "moduleId": 163,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "18:20-53"
        },
        {
          "moduleId": 178,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypes.js",
          "module": "./~/react/lib/ReactPropTypes.js",
          "moduleName": "./~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "17:20-53"
        },
        {
          "moduleId": 181,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildren.js",
          "module": "./~/react/lib/ReactChildren.js",
          "moduleName": "./~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "17:20-53"
        },
        {
          "moduleId": 190,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/EventListener.js",
          "module": "./~/fbjs/lib/EventListener.js",
          "moduleName": "./~/fbjs/lib/EventListener.js",
          "type": "cjs require",
          "userRequest": "./emptyFunction",
          "loc": "22:20-46"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "28:20-53"
        },
        {
          "moduleId": 222,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "./~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "./~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "20:20-53"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\n\"use strict\";\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;"
    },
    {
      "id": 87,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChildUpdateTypes.js",
      "name": "./~/react/lib/ReactMultiChildUpdateTypes.js",
      "index": 87,
      "index2": 82,
      "size": 861,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 78,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "./~/react/lib/DOMChildrenOperations.js",
          "moduleName": "./~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactMultiChildUpdateTypes",
          "loc": "16:33-72"
        },
        {
          "moduleId": 185,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
          "module": "./~/react/lib/ReactMultiChild.js",
          "moduleName": "./~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactMultiChildUpdateTypes",
          "loc": "16:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n  INSERT_MARKUP: null,\n  MOVE_EXISTING: null,\n  REMOVE_NODE: null,\n  SET_MARKUP: null,\n  TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;"
    },
    {
      "id": 88,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/keyMirror.js",
      "name": "./~/fbjs/lib/keyMirror.js",
      "index": 88,
      "index2": 81,
      "size": 1271,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 87,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChildUpdateTypes.js",
          "module": "./~/react/lib/ReactMultiChildUpdateTypes.js",
          "moduleName": "./~/react/lib/ReactMultiChildUpdateTypes.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "14:16-45"
        },
        {
          "moduleId": 101,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventConstants.js",
          "module": "./~/react/lib/EventConstants.js",
          "moduleName": "./~/react/lib/EventConstants.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "14:16-45"
        },
        {
          "moduleId": 136,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypeLocations.js",
          "module": "./~/react/lib/ReactPropTypeLocations.js",
          "moduleName": "./~/react/lib/ReactPropTypeLocations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "14:16-45"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "23:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyMirror\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n *   var COLORS = keyMirror({blue: null, red: null});\n *   var myColor = COLORS.blue;\n *   var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n *   Input:  {key1: val1, key2: val2}\n *   Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function (obj) {\n  var ret = {};\n  var key;\n  !(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined;\n  for (key in obj) {\n    if (!obj.hasOwnProperty(key)) {\n      continue;\n    }\n    ret[key] = key;\n  }\n  return ret;\n};\n\nmodule.exports = keyMirror;"
    },
    {
      "id": 89,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPerf.js",
      "name": "./~/react/lib/ReactPerf.js",
      "index": 89,
      "index2": 83,
      "size": 2510,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "21:16-38"
        },
        {
          "moduleId": 78,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "./~/react/lib/DOMChildrenOperations.js",
          "moduleName": "./~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "17:16-38"
        },
        {
          "moduleId": 93,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "./~/react/lib/DOMPropertyOperations.js",
          "moduleName": "./~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "16:16-38"
        },
        {
          "moduleId": 98,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "./~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "./~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "18:16-38"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "23:16-38"
        },
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "19:16-38"
        },
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "16:16-38"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "18:16-38"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "31:16-38"
        },
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "17:16-38"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "21:16-38"
        },
        {
          "moduleId": 213,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "./~/react/lib/ReactDefaultPerf.js",
          "moduleName": "./~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "18:16-38"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPerf\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * ReactPerf is a general AOP system designed to measure performance. This\n * module only has the hooks: see ReactDefaultPerf for the analysis tool.\n */\nvar ReactPerf = {\n  /**\n   * Boolean to enable/disable measurement. Set to false by default to prevent\n   * accidental logging and perf loss.\n   */\n  enableMeasure: false,\n\n  /**\n   * Holds onto the measure function in use. By default, don't measure\n   * anything, but we'll override this if we inject a measure function.\n   */\n  storedMeasure: _noMeasure,\n\n  /**\n   * @param {object} object\n   * @param {string} objectName\n   * @param {object<string>} methodNames\n   */\n  measureMethods: function (object, objectName, methodNames) {\n    if (process.env.NODE_ENV !== 'production') {\n      for (var key in methodNames) {\n        if (!methodNames.hasOwnProperty(key)) {\n          continue;\n        }\n        object[key] = ReactPerf.measure(objectName, methodNames[key], object[key]);\n      }\n    }\n  },\n\n  /**\n   * Use this to wrap methods you want to measure. Zero overhead in production.\n   *\n   * @param {string} objName\n   * @param {string} fnName\n   * @param {function} func\n   * @return {function}\n   */\n  measure: function (objName, fnName, func) {\n    if (process.env.NODE_ENV !== 'production') {\n      var measuredFunc = null;\n      var wrapper = function () {\n        if (ReactPerf.enableMeasure) {\n          if (!measuredFunc) {\n            measuredFunc = ReactPerf.storedMeasure(objName, fnName, func);\n          }\n          return measuredFunc.apply(this, arguments);\n        }\n        return func.apply(this, arguments);\n      };\n      wrapper.displayName = objName + '_' + fnName;\n      return wrapper;\n    }\n    return func;\n  },\n\n  injection: {\n    /**\n     * @param {function} measure\n     */\n    injectMeasure: function (measure) {\n      ReactPerf.storedMeasure = measure;\n    }\n  }\n};\n\n/**\n * Simply passes through the measured function, without measuring it.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\nfunction _noMeasure(objName, fnName, func) {\n  return func;\n}\n\nmodule.exports = ReactPerf;"
    },
    {
      "id": 90,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/setInnerHTML.js",
      "name": "./~/react/lib/setInnerHTML.js",
      "index": 90,
      "index2": 84,
      "size": 3348,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 78,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "./~/react/lib/DOMChildrenOperations.js",
          "moduleName": "./~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "19:19-44"
        },
        {
          "moduleId": 91,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/setTextContent.js",
          "module": "./~/react/lib/setTextContent.js",
          "moduleName": "./~/react/lib/setTextContent.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "16:19-44"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "33:19-44"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "40:19-44"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n/* globals MSApp */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = function (node, html) {\n  node.innerHTML = html;\n};\n\n// Win8 apps: Allow all html to be inserted\nif (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n  setInnerHTML = function (node, html) {\n    MSApp.execUnsafeLocalFunction(function () {\n      node.innerHTML = html;\n    });\n  };\n}\n\nif (ExecutionEnvironment.canUseDOM) {\n  // IE8: When updating a just created node with innerHTML only leading\n  // whitespace is removed. When updating an existing node with innerHTML\n  // whitespace in root TextNodes is also collapsed.\n  // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n  // Feature detection; only IE8 is known to behave improperly like this.\n  var testElement = document.createElement('div');\n  testElement.innerHTML = ' ';\n  if (testElement.innerHTML === '') {\n    setInnerHTML = function (node, html) {\n      // Magic theory: IE8 supposedly differentiates between added and updated\n      // nodes when processing innerHTML, innerHTML on updated nodes suffers\n      // from worse whitespace behavior. Re-adding a node like this triggers\n      // the initial and more favorable whitespace behavior.\n      // TODO: What to do on a detached node?\n      if (node.parentNode) {\n        node.parentNode.replaceChild(node, node);\n      }\n\n      // We also implement a workaround for non-visible tags disappearing into\n      // thin air on IE8, this only happens if there is no visible text\n      // in-front of the non-visible tags. Piggyback on the whitespace fix\n      // and simply check if any non-visible tags appear in the source.\n      if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n        // Recover leading whitespace by temporarily prepending any character.\n        // \\uFEFF has the potential advantage of being zero-width/invisible.\n        // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n        // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n        // the actual Unicode character (by Babel, for example).\n        // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n        node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n        // deleteData leaves an empty `TextNode` which offsets the index of all\n        // children. Definitely want to avoid this.\n        var textNode = node.firstChild;\n        if (textNode.data.length === 1) {\n          node.removeChild(textNode);\n        } else {\n          textNode.deleteData(0, 1);\n        }\n      } else {\n        node.innerHTML = html;\n      }\n    };\n  }\n}\n\nmodule.exports = setInnerHTML;"
    },
    {
      "id": 91,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/setTextContent.js",
      "name": "./~/react/lib/setTextContent.js",
      "index": 91,
      "index2": 86,
      "size": 1200,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./setTextContent",
          "loc": "22:21-48"
        },
        {
          "moduleId": 78,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "./~/react/lib/DOMChildrenOperations.js",
          "moduleName": "./~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./setTextContent",
          "loc": "20:21-48"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./setTextContent",
          "loc": "41:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n  node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n  if (!('textContent' in document.documentElement)) {\n    setTextContent = function (node, text) {\n      setInnerHTML(node, escapeTextContentForBrowser(text));\n    };\n  }\n}\n\nmodule.exports = setTextContent;"
    },
    {
      "id": 92,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/escapeTextContentForBrowser.js",
      "name": "./~/react/lib/escapeTextContentForBrowser.js",
      "index": 92,
      "index2": 85,
      "size": 849,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "21:34-74"
        },
        {
          "moduleId": 91,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/setTextContent.js",
          "module": "./~/react/lib/setTextContent.js",
          "moduleName": "./~/react/lib/setTextContent.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "15:34-74"
        },
        {
          "moduleId": 95,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/quoteAttributeValueForBrowser.js",
          "module": "./~/react/lib/quoteAttributeValueForBrowser.js",
          "moduleName": "./~/react/lib/quoteAttributeValueForBrowser.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "14:34-74"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "36:34-74"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\nvar ESCAPE_LOOKUP = {\n  '&': '&amp;',\n  '>': '&gt;',\n  '<': '&lt;',\n  '\"': '&quot;',\n  '\\'': '&#x27;'\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\nfunction escaper(match) {\n  return ESCAPE_LOOKUP[match];\n}\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n  return ('' + text).replace(ESCAPE_REGEX, escaper);\n}\n\nmodule.exports = escapeTextContentForBrowser;"
    },
    {
      "id": 93,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMPropertyOperations.js",
      "name": "./~/react/lib/DOMPropertyOperations.js",
      "index": 93,
      "index2": 91,
      "size": 7880,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMPropertyOperations",
          "loc": "16:28-62"
        },
        {
          "moduleId": 98,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "./~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "./~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./DOMPropertyOperations",
          "loc": "16:28-62"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMPropertyOperations",
          "loc": "20:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactPerf = require('./ReactPerf');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\n// Simplified subset\nvar VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\\w\\.\\-]*$/;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n    return true;\n  }\n  if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n    return false;\n  }\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n  illegalAttributeNameCache[attributeName] = true;\n  process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined;\n  return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n  return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var reactProps = {\n    children: true,\n    dangerouslySetInnerHTML: true,\n    key: true,\n    ref: true\n  };\n  var warnedProperties = {};\n\n  var warnUnknownProperty = function (name) {\n    if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n      return;\n    }\n\n    warnedProperties[name] = true;\n    var lowerCasedName = name.toLowerCase();\n\n    // data-* attributes should be lowercase; suggest the lowercase version\n    var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n    // For now, only warn when we have a suggested correction. This prevents\n    // logging too much when using transferPropsTo.\n    process.env.NODE_ENV !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName) : undefined;\n  };\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n  /**\n   * Creates markup for the ID property.\n   *\n   * @param {string} id Unescaped ID.\n   * @return {string} Markup string.\n   */\n  createMarkupForID: function (id) {\n    return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n  },\n\n  setAttributeForID: function (node, id) {\n    node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n  },\n\n  /**\n   * Creates markup for a property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {?string} Markup string, or null if the property was invalid.\n   */\n  createMarkupForProperty: function (name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      if (shouldIgnoreValue(propertyInfo, value)) {\n        return '';\n      }\n      var attributeName = propertyInfo.attributeName;\n      if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n        return attributeName + '=\"\"';\n      }\n      return attributeName + '=' + quoteAttributeValueForBrowser(value);\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      if (value == null) {\n        return '';\n      }\n      return name + '=' + quoteAttributeValueForBrowser(value);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n    return null;\n  },\n\n  /**\n   * Creates markup for a custom property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {string} Markup string, or empty string if the property was invalid.\n   */\n  createMarkupForCustomAttribute: function (name, value) {\n    if (!isAttributeNameSafe(name) || value == null) {\n      return '';\n    }\n    return name + '=' + quoteAttributeValueForBrowser(value);\n  },\n\n  /**\n   * Sets the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   * @param {*} value\n   */\n  setValueForProperty: function (node, name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, value);\n      } else if (shouldIgnoreValue(propertyInfo, value)) {\n        this.deleteValueForProperty(node, name);\n      } else if (propertyInfo.mustUseAttribute) {\n        var attributeName = propertyInfo.attributeName;\n        var namespace = propertyInfo.attributeNamespace;\n        // `setAttribute` with objects becomes only `[object]` in IE8/9,\n        // ('' + value) makes it output the correct toString()-value.\n        if (namespace) {\n          node.setAttributeNS(namespace, attributeName, '' + value);\n        } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n          node.setAttribute(attributeName, '');\n        } else {\n          node.setAttribute(attributeName, '' + value);\n        }\n      } else {\n        var propName = propertyInfo.propertyName;\n        // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the\n        // property type before comparing; only `value` does and is string.\n        if (!propertyInfo.hasSideEffects || '' + node[propName] !== '' + value) {\n          // Contrary to `setAttribute`, object properties are properly\n          // `toString`ed by IE8/9.\n          node[propName] = value;\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      DOMPropertyOperations.setValueForAttribute(node, name, value);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n  },\n\n  setValueForAttribute: function (node, name, value) {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n    if (value == null) {\n      node.removeAttribute(name);\n    } else {\n      node.setAttribute(name, '' + value);\n    }\n  },\n\n  /**\n   * Deletes the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   */\n  deleteValueForProperty: function (node, name) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, undefined);\n      } else if (propertyInfo.mustUseAttribute) {\n        node.removeAttribute(propertyInfo.attributeName);\n      } else {\n        var propName = propertyInfo.propertyName;\n        var defaultValue = DOMProperty.getDefaultValueForProperty(node.nodeName, propName);\n        if (!propertyInfo.hasSideEffects || '' + node[propName] !== defaultValue) {\n          node[propName] = defaultValue;\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      node.removeAttribute(name);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n  }\n\n};\n\nReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', {\n  setValueForProperty: 'setValueForProperty',\n  setValueForAttribute: 'setValueForAttribute',\n  deleteValueForProperty: 'deleteValueForProperty'\n});\n\nmodule.exports = DOMPropertyOperations;"
    },
    {
      "id": 94,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMProperty.js",
      "name": "./~/react/lib/DOMProperty.js",
      "index": 94,
      "index2": 88,
      "size": 9571,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 93,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "./~/react/lib/DOMPropertyOperations.js",
          "moduleName": "./~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "15:18-42"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 160,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/HTMLDOMPropertyConfig.js",
          "module": "./~/react/lib/HTMLDOMPropertyConfig.js",
          "moduleName": "./~/react/lib/HTMLDOMPropertyConfig.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "19:18-42"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 212,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SVGDOMPropertyConfig.js",
          "module": "./~/react/lib/SVGDOMPropertyConfig.js",
          "moduleName": "./~/react/lib/SVGDOMPropertyConfig.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 213,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "./~/react/lib/ReactDefaultPerf.js",
          "moduleName": "./~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n  return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n  /**\n   * Mapping from normalized, camelcased property names to a configuration that\n   * specifies how the associated DOM property should be accessed or rendered.\n   */\n  MUST_USE_ATTRIBUTE: 0x1,\n  MUST_USE_PROPERTY: 0x2,\n  HAS_SIDE_EFFECTS: 0x4,\n  HAS_BOOLEAN_VALUE: 0x8,\n  HAS_NUMERIC_VALUE: 0x10,\n  HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10,\n  HAS_OVERLOADED_BOOLEAN_VALUE: 0x40,\n\n  /**\n   * Inject some specialized knowledge about the DOM. This takes a config object\n   * with the following properties:\n   *\n   * isCustomAttribute: function that given an attribute name will return true\n   * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n   * attributes where it's impossible to enumerate all of the possible\n   * attribute names,\n   *\n   * Properties: object mapping DOM property name to one of the\n   * DOMPropertyInjection constants or null. If your attribute isn't in here,\n   * it won't get written to the DOM.\n   *\n   * DOMAttributeNames: object mapping React attribute name to the DOM\n   * attribute name. Attribute names not specified use the **lowercase**\n   * normalized name.\n   *\n   * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n   * attribute namespace URL. (Attribute names not specified use no namespace.)\n   *\n   * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n   * Property names not specified use the normalized name.\n   *\n   * DOMMutationMethods: Properties that require special mutation methods. If\n   * `value` is undefined, the mutation method should unset the property.\n   *\n   * @param {object} domPropertyConfig the config as described above.\n   */\n  injectDOMPropertyConfig: function (domPropertyConfig) {\n    var Injection = DOMPropertyInjection;\n    var Properties = domPropertyConfig.Properties || {};\n    var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n    var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n    var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n    var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n    if (domPropertyConfig.isCustomAttribute) {\n      DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n    }\n\n    for (var propName in Properties) {\n      !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property ' + '\\'%s\\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : undefined;\n\n      var lowerCased = propName.toLowerCase();\n      var propConfig = Properties[propName];\n\n      var propertyInfo = {\n        attributeName: lowerCased,\n        attributeNamespace: null,\n        propertyName: propName,\n        mutationMethod: null,\n\n        mustUseAttribute: checkMask(propConfig, Injection.MUST_USE_ATTRIBUTE),\n        mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n        hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS),\n        hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n        hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n        hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n        hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n      };\n\n      !(!propertyInfo.mustUseAttribute || !propertyInfo.mustUseProperty) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Cannot require using both attribute and property: %s', propName) : invariant(false) : undefined;\n      !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : undefined;\n      !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : undefined;\n\n      if (process.env.NODE_ENV !== 'production') {\n        DOMProperty.getPossibleStandardName[lowerCased] = propName;\n      }\n\n      if (DOMAttributeNames.hasOwnProperty(propName)) {\n        var attributeName = DOMAttributeNames[propName];\n        propertyInfo.attributeName = attributeName;\n        if (process.env.NODE_ENV !== 'production') {\n          DOMProperty.getPossibleStandardName[attributeName] = propName;\n        }\n      }\n\n      if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n        propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n      }\n\n      if (DOMPropertyNames.hasOwnProperty(propName)) {\n        propertyInfo.propertyName = DOMPropertyNames[propName];\n      }\n\n      if (DOMMutationMethods.hasOwnProperty(propName)) {\n        propertyInfo.mutationMethod = DOMMutationMethods[propName];\n      }\n\n      DOMProperty.properties[propName] = propertyInfo;\n    }\n  }\n};\nvar defaultValueCache = {};\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n *   > DOMProperty.isValid['id']\n *   true\n *   > DOMProperty.isValid['foobar']\n *   undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n  ID_ATTRIBUTE_NAME: 'data-reactid',\n\n  /**\n   * Map from property \"standard name\" to an object with info about how to set\n   * the property in the DOM. Each object contains:\n   *\n   * attributeName:\n   *   Used when rendering markup or with `*Attribute()`.\n   * attributeNamespace\n   * propertyName:\n   *   Used on DOM node instances. (This includes properties that mutate due to\n   *   external factors.)\n   * mutationMethod:\n   *   If non-null, used instead of the property or `setAttribute()` after\n   *   initial render.\n   * mustUseAttribute:\n   *   Whether the property must be accessed and mutated using `*Attribute()`.\n   *   (This includes anything that fails `<propName> in <element>`.)\n   * mustUseProperty:\n   *   Whether the property must be accessed and mutated as an object property.\n   * hasSideEffects:\n   *   Whether or not setting a value causes side effects such as triggering\n   *   resources to be loaded or text selection changes. If true, we read from\n   *   the DOM before updating to ensure that the value is only set if it has\n   *   changed.\n   * hasBooleanValue:\n   *   Whether the property should be removed when set to a falsey value.\n   * hasNumericValue:\n   *   Whether the property must be numeric or parse as a numeric and should be\n   *   removed when set to a falsey value.\n   * hasPositiveNumericValue:\n   *   Whether the property must be positive numeric or parse as a positive\n   *   numeric and should be removed when set to a falsey value.\n   * hasOverloadedBooleanValue:\n   *   Whether the property can be used as a flag as well as with a value.\n   *   Removed when strictly equal to false; present without a value when\n   *   strictly equal to true; present with a value otherwise.\n   */\n  properties: {},\n\n  /**\n   * Mapping from lowercase property names to the properly cased version, used\n   * to warn in the case of missing properties. Available only in __DEV__.\n   * @type {Object}\n   */\n  getPossibleStandardName: process.env.NODE_ENV !== 'production' ? {} : null,\n\n  /**\n   * All of the isCustomAttribute() functions that have been injected.\n   */\n  _isCustomAttributeFunctions: [],\n\n  /**\n   * Checks whether a property name is a custom attribute.\n   * @method\n   */\n  isCustomAttribute: function (attributeName) {\n    for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n      var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n      if (isCustomAttributeFn(attributeName)) {\n        return true;\n      }\n    }\n    return false;\n  },\n\n  /**\n   * Returns the default property value for a DOM property (i.e., not an\n   * attribute). Most default values are '' or false, but not all. Worse yet,\n   * some (in particular, `type`) vary depending on the type of element.\n   *\n   * TODO: Is it better to grab all the possible properties when creating an\n   * element to avoid having to create the same element twice?\n   */\n  getDefaultValueForProperty: function (nodeName, prop) {\n    var nodeDefaults = defaultValueCache[nodeName];\n    var testElement;\n    if (!nodeDefaults) {\n      defaultValueCache[nodeName] = nodeDefaults = {};\n    }\n    if (!(prop in nodeDefaults)) {\n      testElement = document.createElement(nodeName);\n      nodeDefaults[prop] = testElement[prop];\n    }\n    return nodeDefaults[prop];\n  },\n\n  injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;"
    },
    {
      "id": 95,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/quoteAttributeValueForBrowser.js",
      "name": "./~/react/lib/quoteAttributeValueForBrowser.js",
      "index": 95,
      "index2": 89,
      "size": 746,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 93,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "./~/react/lib/DOMPropertyOperations.js",
          "moduleName": "./~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./quoteAttributeValueForBrowser",
          "loc": "18:36-78"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n  return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;"
    },
    {
      "id": 96,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/warning.js",
      "name": "./~/fbjs/lib/warning.js",
      "index": 96,
      "index2": 90,
      "size": 1771,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "28:14-41"
        },
        {
          "moduleId": 93,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "./~/react/lib/DOMPropertyOperations.js",
          "moduleName": "./~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "36:14-41"
        },
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "21:14-41"
        },
        {
          "moduleId": 104,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginUtils.js",
          "module": "./~/react/lib/EventPluginUtils.js",
          "moduleName": "./~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "18:14-41"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "21:14-41"
        },
        {
          "moduleId": 133,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
          "module": "./~/react/lib/instantiateReactComponent.js",
          "moduleName": "./~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "21:14-41"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "28:14-41"
        },
        {
          "moduleId": 141,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/validateDOMNesting.js",
          "module": "./~/react/lib/validateDOMNesting.js",
          "moduleName": "./~/react/lib/validateDOMNesting.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "16:14-41"
        },
        {
          "moduleId": 144,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
          "module": "./~/react/lib/EventPropagators.js",
          "moduleName": "./~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "17:14-41"
        },
        {
          "moduleId": 148,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticEvent.js",
          "module": "./~/react/lib/SyntheticEvent.js",
          "moduleName": "./~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 161,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserComponentMixin.js",
          "module": "./~/react/lib/ReactBrowserComponentMixin.js",
          "moduleName": "./~/react/lib/ReactBrowserComponentMixin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "17:14-41"
        },
        {
          "moduleId": 162,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/findDOMNode.js",
          "module": "./~/react/lib/findDOMNode.js",
          "moduleName": "./~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "44:14-41"
        },
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "23:14-41"
        },
        {
          "moduleId": 177,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/LinkedValueUtils.js",
          "module": "./~/react/lib/LinkedValueUtils.js",
          "moduleName": "./~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 180,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMOption.js",
          "module": "./~/react/lib/ReactDOMOption.js",
          "moduleName": "./~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "18:14-41"
        },
        {
          "moduleId": 182,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
          "module": "./~/react/lib/traverseAllChildren.js",
          "moduleName": "./~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 183,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelect.js",
          "module": "./~/react/lib/ReactDOMSelect.js",
          "moduleName": "./~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 184,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "./~/react/lib/ReactDOMTextarea.js",
          "moduleName": "./~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 186,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildReconciler.js",
          "module": "./~/react/lib/ReactChildReconciler.js",
          "moduleName": "./~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 187,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/flattenChildren.js",
          "module": "./~/react/lib/flattenChildren.js",
          "moduleName": "./~/react/lib/flattenChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "15:14-41"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "25:14-41"
        },
        {
          "moduleId": 194,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
          "module": "./~/react/lib/ReactComponent.js",
          "moduleName": "./~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 195,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactNoopUpdateQueue.js",
          "module": "./~/react/lib/ReactNoopUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactNoopUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "14:14-41"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "29:14-41"
        },
        {
          "moduleId": 228,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/deprecated.js",
          "module": "./~/react/lib/deprecated.js",
          "moduleName": "./~/react/lib/deprecated.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "15:14-41"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function (condition, format) {\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n\n    if (format.indexOf('Failed Composite propType: ') === 0) {\n      return; // Ignore CompositeComponent proptype check.\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // --- Welcome to debugging React ---\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch (x) {}\n    }\n  };\n}\n\nmodule.exports = warning;"
    },
    {
      "id": 97,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
      "name": "./~/react/lib/ReactComponentBrowserEnvironment.js",
      "index": 97,
      "index2": 136,
      "size": 1258,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentBrowserEnvironment",
          "loc": "17:39-84"
        },
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentBrowserEnvironment",
          "loc": "22:39-84"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentBrowserEnvironment",
          "loc": "23:39-84"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar ReactMount = require('./ReactMount');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n  processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n  replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID,\n\n  /**\n   * If a particular environment requires that some resources be cleaned up,\n   * specify this in the injected Mixin. In the DOM, we would likely want to\n   * purge any cached node ID lookups.\n   *\n   * @private\n   */\n  unmountIDFromEnvironment: function (rootNodeID) {\n    ReactMount.purgeID(rootNodeID);\n  }\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;"
    },
    {
      "id": 98,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMIDOperations.js",
      "name": "./~/react/lib/ReactDOMIDOperations.js",
      "index": 98,
      "index2": 135,
      "size": 3294,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 97,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
          "module": "./~/react/lib/ReactComponentBrowserEnvironment.js",
          "moduleName": "./~/react/lib/ReactComponentBrowserEnvironment.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMIDOperations",
          "loc": "14:27-60"
        },
        {
          "moduleId": 176,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
          "module": "./~/react/lib/ReactDOMInput.js",
          "moduleName": "./~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMIDOperations",
          "loc": "14:27-60"
        },
        {
          "moduleId": 184,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "./~/react/lib/ReactDOMTextarea.js",
          "moduleName": "./~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMIDOperations",
          "loc": "15:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Errors for properties that should not be updated with `updatePropertyByID()`.\n *\n * @type {object}\n * @private\n */\nvar INVALID_PROPERTY_ERRORS = {\n  dangerouslySetInnerHTML: '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.',\n  style: '`style` must be set using `updateStylesByID()`.'\n};\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n  /**\n   * Updates a DOM node with new property values. This should only be used to\n   * update DOM properties in `DOMProperty`.\n   *\n   * @param {string} id ID of the node to update.\n   * @param {string} name A valid property name, see `DOMProperty`.\n   * @param {*} value New value of the property.\n   * @internal\n   */\n  updatePropertyByID: function (id, name, value) {\n    var node = ReactMount.getNode(id);\n    !!INVALID_PROPERTY_ERRORS.hasOwnProperty(name) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updatePropertyByID(...): %s', INVALID_PROPERTY_ERRORS[name]) : invariant(false) : undefined;\n\n    // If we're updating to null or undefined, we should remove the property\n    // from the DOM node instead of inadvertantly setting to a string. This\n    // brings us in line with the same behavior we have on initial render.\n    if (value != null) {\n      DOMPropertyOperations.setValueForProperty(node, name, value);\n    } else {\n      DOMPropertyOperations.deleteValueForProperty(node, name);\n    }\n  },\n\n  /**\n   * Replaces a DOM node that exists in the document with markup.\n   *\n   * @param {string} id ID of child to be replaced.\n   * @param {string} markup Dangerous markup to inject in place of child.\n   * @internal\n   * @see {Danger.dangerouslyReplaceNodeWithMarkup}\n   */\n  dangerouslyReplaceNodeWithMarkupByID: function (id, markup) {\n    var node = ReactMount.getNode(id);\n    DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup);\n  },\n\n  /**\n   * Updates a component's children by processing a series of updates.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @param {array<string>} markup List of markup strings.\n   * @internal\n   */\n  dangerouslyProcessChildrenUpdates: function (updates, markup) {\n    for (var i = 0; i < updates.length; i++) {\n      updates[i].parentNode = ReactMount.getNode(updates[i].parentID);\n    }\n    DOMChildrenOperations.processUpdates(updates, markup);\n  }\n};\n\nReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {\n  dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID',\n  dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates'\n});\n\nmodule.exports = ReactDOMIDOperations;"
    },
    {
      "id": 99,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "name": "./~/react/lib/ReactMount.js",
      "index": 99,
      "index2": 134,
      "size": 36774,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "20:17-40"
        },
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "18:17-40"
        },
        {
          "moduleId": 97,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
          "module": "./~/react/lib/ReactComponentBrowserEnvironment.js",
          "moduleName": "./~/react/lib/ReactComponentBrowserEnvironment.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "15:17-40"
        },
        {
          "moduleId": 98,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "./~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "./~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "29:17-40"
        },
        {
          "moduleId": 156,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "./~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "./~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "19:17-40"
        },
        {
          "moduleId": 162,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/findDOMNode.js",
          "module": "./~/react/lib/findDOMNode.js",
          "moduleName": "./~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "29:17-40"
        },
        {
          "moduleId": 165,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/AutoFocusUtils.js",
          "module": "./~/react/lib/AutoFocusUtils.js",
          "moduleName": "./~/react/lib/AutoFocusUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "15:17-40"
        },
        {
          "moduleId": 176,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
          "module": "./~/react/lib/ReactDOMInput.js",
          "moduleName": "./~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "16:17-40"
        },
        {
          "moduleId": 183,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelect.js",
          "module": "./~/react/lib/ReactDOMSelect.js",
          "moduleName": "./~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "15:17-40"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "19:17-40"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 213,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "./~/react/lib/ReactDefaultPerf.js",
          "moduleName": "./~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 218,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/renderSubtreeIntoContainer.js",
          "module": "./~/react/lib/renderSubtreeIntoContainer.js",
          "moduleName": "./~/react/lib/renderSubtreeIntoContainer.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "14:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactElement = require('./ReactElement');\nvar ReactEmptyComponentRegistry = require('./ReactEmptyComponentRegistry');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar containsNode = require('fbjs/lib/containsNode');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar nodeCache = {};\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar ownerDocumentContextKey = '__ReactMount_ownerDocument$' + Math.random().toString(36).slice(2);\n\n/** Mapping from reactRootID to React component instance. */\nvar instancesByReactRootID = {};\n\n/** Mapping from reactRootID to `container` nodes. */\nvar containersByReactRootID = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  /** __DEV__-only mapping from reactRootID to root elements. */\n  var rootElementsByReactRootID = {};\n}\n\n// Used to store breadth-first search state in findComponentRoot.\nvar findComponentRootReusableArray = [];\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n  var minLen = Math.min(string1.length, string2.length);\n  for (var i = 0; i < minLen; i++) {\n    if (string1.charAt(i) !== string2.charAt(i)) {\n      return i;\n    }\n  }\n  return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\n/**\n * @param {DOMElement} container DOM element that may contain a React component.\n * @return {?string} A \"reactRoot\" ID, if a React component is rendered.\n */\nfunction getReactRootID(container) {\n  var rootElement = getReactRootElementInContainer(container);\n  return rootElement && ReactMount.getID(rootElement);\n}\n\n/**\n * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form\n * element can return its control whose name or ID equals ATTR_NAME. All\n * DOM nodes support `getAttributeNode` but this can also get called on\n * other objects so just return '' if we're given something other than a\n * DOM node (such as window).\n *\n * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node.\n * @return {string} ID of the supplied `domNode`.\n */\nfunction getID(node) {\n  var id = internalGetID(node);\n  if (id) {\n    if (nodeCache.hasOwnProperty(id)) {\n      var cached = nodeCache[id];\n      if (cached !== node) {\n        !!isValid(cached, id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Two valid but unequal nodes with the same `%s`: %s', ATTR_NAME, id) : invariant(false) : undefined;\n\n        nodeCache[id] = node;\n      }\n    } else {\n      nodeCache[id] = node;\n    }\n  }\n\n  return id;\n}\n\nfunction internalGetID(node) {\n  // If node is something like a window, document, or text node, none of\n  // which support attributes or a .getAttribute method, gracefully return\n  // the empty string, as if the attribute were missing.\n  return node && node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Sets the React-specific ID of the given node.\n *\n * @param {DOMElement} node The DOM node whose ID will be set.\n * @param {string} id The value of the ID attribute.\n */\nfunction setID(node, id) {\n  var oldID = internalGetID(node);\n  if (oldID !== id) {\n    delete nodeCache[oldID];\n  }\n  node.setAttribute(ATTR_NAME, id);\n  nodeCache[id] = node;\n}\n\n/**\n * Finds the node with the supplied React-generated DOM ID.\n *\n * @param {string} id A React-generated DOM ID.\n * @return {DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNode(id) {\n  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n    nodeCache[id] = ReactMount.findReactNodeByID(id);\n  }\n  return nodeCache[id];\n}\n\n/**\n * Finds the node with the supplied public React instance.\n *\n * @param {*} instance A public React instance.\n * @return {?DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNodeFromInstance(instance) {\n  var id = ReactInstanceMap.get(instance)._rootNodeID;\n  if (ReactEmptyComponentRegistry.isNullComponentID(id)) {\n    return null;\n  }\n  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n    nodeCache[id] = ReactMount.findReactNodeByID(id);\n  }\n  return nodeCache[id];\n}\n\n/**\n * A node is \"valid\" if it is contained by a currently mounted container.\n *\n * This means that the node does not have to be contained by a document in\n * order to be considered valid.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @param {string} id The expected ID of the node.\n * @return {boolean} Whether the node is contained by a mounted container.\n */\nfunction isValid(node, id) {\n  if (node) {\n    !(internalGetID(node) === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Unexpected modification of `%s`', ATTR_NAME) : invariant(false) : undefined;\n\n    var container = ReactMount.findReactContainerForID(id);\n    if (container && containsNode(container, node)) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Causes the cache to forget about one React-specific ID.\n *\n * @param {string} id The ID to forget.\n */\nfunction purgeID(id) {\n  delete nodeCache[id];\n}\n\nvar deepestNodeSoFar = null;\nfunction findDeepestCachedAncestorImpl(ancestorID) {\n  var ancestor = nodeCache[ancestorID];\n  if (ancestor && isValid(ancestor, ancestorID)) {\n    deepestNodeSoFar = ancestor;\n  } else {\n    // This node isn't populated in the cache, so presumably none of its\n    // descendants are. Break out of the loop.\n    return false;\n  }\n}\n\n/**\n * Return the deepest cached node whose ID is a prefix of `targetID`.\n */\nfunction findDeepestCachedAncestor(targetID) {\n  deepestNodeSoFar = null;\n  ReactInstanceHandles.traverseAncestors(targetID, findDeepestCachedAncestorImpl);\n\n  var foundNode = deepestNodeSoFar;\n  deepestNodeSoFar = null;\n  return foundNode;\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(componentInstance, rootID, container, transaction, shouldReuseMarkup, context) {\n  if (ReactDOMFeatureFlags.useCreateElement) {\n    context = assign({}, context);\n    if (container.nodeType === DOC_NODE_TYPE) {\n      context[ownerDocumentContextKey] = container;\n    } else {\n      context[ownerDocumentContextKey] = container.ownerDocument;\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (context === emptyObject) {\n      context = {};\n    }\n    var tag = container.nodeName.toLowerCase();\n    context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(null, tag, null);\n  }\n  var markup = ReactReconciler.mountComponent(componentInstance, rootID, transaction, context);\n  componentInstance._renderedComponent._topLevelWrapper = componentInstance;\n  ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, rootID, container, shouldReuseMarkup, context) {\n  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n  /* forceHTML */shouldReuseMarkup);\n  transaction.perform(mountComponentIntoNode, null, componentInstance, rootID, container, transaction, shouldReuseMarkup, context);\n  ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container) {\n  ReactReconciler.unmountComponent(instance);\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    container = container.documentElement;\n  }\n\n  // http://jsperf.com/emptying-a-node\n  while (container.lastChild) {\n    container.removeChild(container.lastChild);\n  }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(node) {\n  var reactRootID = getReactRootID(node);\n  return reactRootID ? reactRootID !== ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID) : false;\n}\n\n/**\n * Returns the first (deepest) ancestor of a node which is rendered by this copy\n * of React.\n */\nfunction findFirstReactDOMImpl(node) {\n  // This node might be from another React instance, so we make sure not to\n  // examine the node cache here\n  for (; node && node.parentNode !== node; node = node.parentNode) {\n    if (node.nodeType !== 1) {\n      // Not a DOMElement, therefore not a React component\n      continue;\n    }\n    var nodeID = internalGetID(node);\n    if (!nodeID) {\n      continue;\n    }\n    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n\n    // If containersByReactRootID contains the container we find by crawling up\n    // the tree, we know that this instance of React rendered the node.\n    // nb. isValid's strategy (with containsNode) does not work because render\n    // trees may be nested and we don't want a false positive in that case.\n    var current = node;\n    var lastID;\n    do {\n      lastID = internalGetID(current);\n      current = current.parentNode;\n      if (current == null) {\n        // The passed-in node has been detached from the container it was\n        // originally rendered into.\n        return null;\n      }\n    } while (lastID !== reactRootID);\n\n    if (current === containersByReactRootID[reactRootID]) {\n      return node;\n    }\n  }\n  return null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar TopLevelWrapper = function () {};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n  TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n  // this.props is actually a ReactElement\n  return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n *   ReactMount.render(\n *     component,\n *     document.getElementById('container')\n *   );\n *\n *   <div id=\"container\">                   <-- Supplied `container`.\n *     <div data-reactid=\".3\">              <-- Rendered reactRoot of React\n *       // ...                                 component.\n *     </div>\n *   </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n  TopLevelWrapper: TopLevelWrapper,\n\n  /** Exposed for debugging purposes **/\n  _instancesByReactRootID: instancesByReactRootID,\n\n  /**\n   * This is a hook provided to support rendering React components while\n   * ensuring that the apparent scroll position of its `container` does not\n   * change.\n   *\n   * @param {DOMElement} container The `container` being rendered into.\n   * @param {function} renderCallback This must be called once to do the render.\n   */\n  scrollMonitor: function (container, renderCallback) {\n    renderCallback();\n  },\n\n  /**\n   * Take a component that's already mounted into the DOM and replace its props\n   * @param {ReactComponent} prevComponent component instance already in the DOM\n   * @param {ReactElement} nextElement component instance to render\n   * @param {DOMElement} container container to render into\n   * @param {?function} callback function triggered on completion\n   */\n  _updateRootComponent: function (prevComponent, nextElement, container, callback) {\n    ReactMount.scrollMonitor(container, function () {\n      ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement);\n      if (callback) {\n        ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n      }\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Record the root element in case it later gets transplanted.\n      rootElementsByReactRootID[getReactRootID(container)] = getReactRootElementInContainer(container);\n    }\n\n    return prevComponent;\n  },\n\n  /**\n   * Register a component into the instance map and starts scroll value\n   * monitoring\n   * @param {ReactComponent} nextComponent component instance to render\n   * @param {DOMElement} container container to render into\n   * @return {string} reactRoot ID prefix\n   */\n  _registerComponent: function (nextComponent, container) {\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n    ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n\n    var reactRootID = ReactMount.registerContainer(container);\n    instancesByReactRootID[reactRootID] = nextComponent;\n    return reactRootID;\n  },\n\n  /**\n   * Render a new component into the DOM.\n   * @param {ReactElement} nextElement element to render\n   * @param {DOMElement} container container to render into\n   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n   * @return {ReactComponent} nextComponent\n   */\n  _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case.\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n    var componentInstance = instantiateReactComponent(nextElement, null);\n    var reactRootID = ReactMount._registerComponent(componentInstance, container);\n\n    // The initial render is synchronous but any updates that happen during\n    // rendering, in componentWillMount or componentDidMount, will be batched\n    // according to the current batching strategy.\n\n    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, reactRootID, container, shouldReuseMarkup, context);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Record the root element in case it later gets transplanted.\n      rootElementsByReactRootID[reactRootID] = getReactRootElementInContainer(container);\n    }\n\n    return componentInstance;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !(parentComponent != null && parentComponent._reactInternalInstance != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : invariant(false) : undefined;\n    return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n  },\n\n  _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !ReactElement.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing an element string, make sure to instantiate ' + 'it by passing it to React.createElement.' : typeof nextElement === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' :\n    // Check if it quacks like an element\n    nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : invariant(false) : undefined;\n\n    process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : undefined;\n\n    var nextWrappedElement = new ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n    var prevComponent = instancesByReactRootID[getReactRootID(container)];\n\n    if (prevComponent) {\n      var prevWrappedElement = prevComponent._currentElement;\n      var prevElement = prevWrappedElement.props;\n      if (shouldUpdateReactComponent(prevElement, nextElement)) {\n        var publicInst = prevComponent._renderedComponent.getPublicInstance();\n        var updatedCallback = callback && function () {\n          callback.call(publicInst);\n        };\n        ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, updatedCallback);\n        return publicInst;\n      } else {\n        ReactMount.unmountComponentAtNode(container);\n      }\n    }\n\n    var reactRootElement = getReactRootElementInContainer(container);\n    var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n    var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : undefined;\n\n      if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n        var rootElementSibling = reactRootElement;\n        while (rootElementSibling) {\n          if (internalGetID(rootElementSibling)) {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : undefined;\n            break;\n          }\n          rootElementSibling = rootElementSibling.nextSibling;\n        }\n      }\n    }\n\n    var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n    var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, parentComponent != null ? parentComponent._reactInternalInstance._processChildContext(parentComponent._reactInternalInstance._context) : emptyObject)._renderedComponent.getPublicInstance();\n    if (callback) {\n      callback.call(component);\n    }\n    return component;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  render: function (nextElement, container, callback) {\n    return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n  },\n\n  /**\n   * Registers a container node into which React components will be rendered.\n   * This also creates the \"reactRoot\" ID that will be assigned to the element\n   * rendered within.\n   *\n   * @param {DOMElement} container DOM element to register as a container.\n   * @return {string} The \"reactRoot\" ID of elements rendered within.\n   */\n  registerContainer: function (container) {\n    var reactRootID = getReactRootID(container);\n    if (reactRootID) {\n      // If one exists, make sure it is a valid \"reactRoot\" ID.\n      reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID);\n    }\n    if (!reactRootID) {\n      // No valid \"reactRoot\" ID found, create one.\n      reactRootID = ReactInstanceHandles.createReactRootID();\n    }\n    containersByReactRootID[reactRootID] = container;\n    return reactRootID;\n  },\n\n  /**\n   * Unmounts and destroys the React component rendered in the `container`.\n   *\n   * @param {DOMElement} container DOM element containing a React component.\n   * @return {boolean} True if a component was found in and unmounted from\n   *                   `container`\n   */\n  unmountComponentAtNode: function (container) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case. (Strictly speaking, unmounting won't cause a\n    // render but we still don't expect to be in a render call here.)\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n    var reactRootID = getReactRootID(container);\n    var component = instancesByReactRootID[reactRootID];\n    if (!component) {\n      // Check if the node being unmounted was rendered by React, but isn't a\n      // root node.\n      var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n      // Check if the container itself is a React root node.\n      var containerID = internalGetID(container);\n      var isContainerReactRoot = containerID && containerID === ReactInstanceHandles.getReactRootIDFromNodeID(containerID);\n\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : undefined;\n      }\n\n      return false;\n    }\n    ReactUpdates.batchedUpdates(unmountComponentFromNode, component, container);\n    delete instancesByReactRootID[reactRootID];\n    delete containersByReactRootID[reactRootID];\n    if (process.env.NODE_ENV !== 'production') {\n      delete rootElementsByReactRootID[reactRootID];\n    }\n    return true;\n  },\n\n  /**\n   * Finds the container DOM element that contains React component to which the\n   * supplied DOM `id` belongs.\n   *\n   * @param {string} id The ID of an element rendered by a React component.\n   * @return {?DOMElement} DOM element that contains the `id`.\n   */\n  findReactContainerForID: function (id) {\n    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id);\n    var container = containersByReactRootID[reactRootID];\n\n    if (process.env.NODE_ENV !== 'production') {\n      var rootElement = rootElementsByReactRootID[reactRootID];\n      if (rootElement && rootElement.parentNode !== container) {\n        process.env.NODE_ENV !== 'production' ? warning(\n        // Call internalGetID here because getID calls isValid which calls\n        // findReactContainerForID (this function).\n        internalGetID(rootElement) === reactRootID, 'ReactMount: Root element ID differed from reactRootID.') : undefined;\n        var containerChild = container.firstChild;\n        if (containerChild && reactRootID === internalGetID(containerChild)) {\n          // If the container has a new child with the same ID as the old\n          // root element, then rootElementsByReactRootID[reactRootID] is\n          // just stale and needs to be updated. The case that deserves a\n          // warning is when the container is empty.\n          rootElementsByReactRootID[reactRootID] = containerChild;\n        } else {\n          process.env.NODE_ENV !== 'production' ? warning(false, 'ReactMount: Root element has been removed from its original ' + 'container. New container: %s', rootElement.parentNode) : undefined;\n        }\n      }\n    }\n\n    return container;\n  },\n\n  /**\n   * Finds an element rendered by React with the supplied ID.\n   *\n   * @param {string} id ID of a DOM node in the React component.\n   * @return {DOMElement} Root DOM node of the React component.\n   */\n  findReactNodeByID: function (id) {\n    var reactRoot = ReactMount.findReactContainerForID(id);\n    return ReactMount.findComponentRoot(reactRoot, id);\n  },\n\n  /**\n   * Traverses up the ancestors of the supplied node to find a node that is a\n   * DOM representation of a React component rendered by this copy of React.\n   *\n   * @param {*} node\n   * @return {?DOMEventTarget}\n   * @internal\n   */\n  getFirstReactDOM: function (node) {\n    return findFirstReactDOMImpl(node);\n  },\n\n  /**\n   * Finds a node with the supplied `targetID` inside of the supplied\n   * `ancestorNode`.  Exploits the ID naming scheme to perform the search\n   * quickly.\n   *\n   * @param {DOMEventTarget} ancestorNode Search from this root.\n   * @pararm {string} targetID ID of the DOM representation of the component.\n   * @return {DOMEventTarget} DOM node with the supplied `targetID`.\n   * @internal\n   */\n  findComponentRoot: function (ancestorNode, targetID) {\n    var firstChildren = findComponentRootReusableArray;\n    var childIndex = 0;\n\n    var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode;\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw on the next line; give an early warning\n      process.env.NODE_ENV !== 'production' ? warning(deepestAncestor != null, 'React can\\'t find the root component node for data-reactid value ' + '`%s`. If you\\'re seeing this message, it probably means that ' + 'you\\'ve loaded two copies of React on the page. At this time, only ' + 'a single copy of React can be loaded at a time.', targetID) : undefined;\n    }\n\n    firstChildren[0] = deepestAncestor.firstChild;\n    firstChildren.length = 1;\n\n    while (childIndex < firstChildren.length) {\n      var child = firstChildren[childIndex++];\n      var targetChild;\n\n      while (child) {\n        var childID = ReactMount.getID(child);\n        if (childID) {\n          // Even if we find the node we're looking for, we finish looping\n          // through its siblings to ensure they're cached so that we don't have\n          // to revisit this node again. Otherwise, we make n^2 calls to getID\n          // when visiting the many children of a single node in order.\n\n          if (targetID === childID) {\n            targetChild = child;\n          } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) {\n            // If we find a child whose ID is an ancestor of the given ID,\n            // then we can be sure that we only want to search the subtree\n            // rooted at this child, so we can throw out the rest of the\n            // search state.\n            firstChildren.length = childIndex = 0;\n            firstChildren.push(child.firstChild);\n          }\n        } else {\n          // If this child had no ID, then there's a chance that it was\n          // injected automatically by the browser, as when a `<table>`\n          // element sprouts an extra `<tbody>` child as a side effect of\n          // `.innerHTML` parsing. Optimistically continue down this\n          // branch, but not before examining the other siblings.\n          firstChildren.push(child.firstChild);\n        }\n\n        child = child.nextSibling;\n      }\n\n      if (targetChild) {\n        // Emptying firstChildren/findComponentRootReusableArray is\n        // not necessary for correctness, but it helps the GC reclaim\n        // any nodes that were left at the end of the search.\n        firstChildren.length = 0;\n\n        return targetChild;\n      }\n    }\n\n    firstChildren.length = 0;\n\n    !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findComponentRoot(..., %s): Unable to find element. This probably ' + 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 'parent. ' + 'Try inspecting the child nodes of the element with React ID `%s`.', targetID, ReactMount.getID(ancestorNode)) : invariant(false) : undefined;\n  },\n\n  _mountImageIntoNode: function (markup, container, shouldReuseMarkup, transaction) {\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : invariant(false) : undefined;\n\n    if (shouldReuseMarkup) {\n      var rootElement = getReactRootElementInContainer(container);\n      if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n        return;\n      } else {\n        var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n        rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n        var rootMarkup = rootElement.outerHTML;\n        rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n        var normalizedMarkup = markup;\n        if (process.env.NODE_ENV !== 'production') {\n          // because rootMarkup is retrieved from the DOM, various normalizations\n          // will have occurred which will not be present in `markup`. Here,\n          // insert markup into a <div> or <iframe> depending on the container\n          // type to perform the same normalizations before comparing.\n          var normalizer;\n          if (container.nodeType === ELEMENT_NODE_TYPE) {\n            normalizer = document.createElement('div');\n            normalizer.innerHTML = markup;\n            normalizedMarkup = normalizer.innerHTML;\n          } else {\n            normalizer = document.createElement('iframe');\n            document.body.appendChild(normalizer);\n            normalizer.contentDocument.write(markup);\n            normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n            document.body.removeChild(normalizer);\n          }\n        }\n\n        var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n        var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n        !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using ' + 'server rendering but the checksum was invalid. This usually ' + 'means you rendered a different component type or props on ' + 'the client from the one on the server, or your render() ' + 'methods are impure. React cannot handle this case due to ' + 'cross-browser quirks by rendering at the document root. You ' + 'should look for environment dependent code in your components ' + 'and ensure the props are the same client and server side:\\n%s', difference) : invariant(false) : undefined;\n\n        if (process.env.NODE_ENV !== 'production') {\n          process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : undefined;\n        }\n      }\n    }\n\n    !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but ' + 'you didn\\'t use server rendering. We can\\'t do this ' + 'without using server rendering due to cross-browser quirks. ' + 'See ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n\n    if (transaction.useCreateElement) {\n      while (container.lastChild) {\n        container.removeChild(container.lastChild);\n      }\n      container.appendChild(markup);\n    } else {\n      setInnerHTML(container, markup);\n    }\n  },\n\n  ownerDocumentContextKey: ownerDocumentContextKey,\n\n  /**\n   * React ID utilities.\n   */\n\n  getReactRootID: getReactRootID,\n\n  getID: getID,\n\n  setID: setID,\n\n  getNode: getNode,\n\n  getNodeFromInstance: getNodeFromInstance,\n\n  isValid: isValid,\n\n  purgeID: purgeID\n};\n\nReactPerf.measureMethods(ReactMount, 'ReactMount', {\n  _renderNewRootComponent: '_renderNewRootComponent',\n  _mountImageIntoNode: '_mountImageIntoNode'\n});\n\nmodule.exports = ReactMount;"
    },
    {
      "id": 100,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "name": "./~/react/lib/ReactBrowserEventEmitter.js",
      "index": 100,
      "index2": 103,
      "size": 12417,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "15:31-68"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "22:31-68"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "19:31-68"
        },
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "17:31-68"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ReactPerf = require('./ReactPerf');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar assign = require('./Object.assign');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactEventListener, which is injected and can therefore support pluggable\n *    event sources. This is the only work that occurs in the main thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginHub` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|EventPluginHub|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n  topAbort: 'abort',\n  topBlur: 'blur',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topChange: 'change',\n  topClick: 'click',\n  topCompositionEnd: 'compositionend',\n  topCompositionStart: 'compositionstart',\n  topCompositionUpdate: 'compositionupdate',\n  topContextMenu: 'contextmenu',\n  topCopy: 'copy',\n  topCut: 'cut',\n  topDoubleClick: 'dblclick',\n  topDrag: 'drag',\n  topDragEnd: 'dragend',\n  topDragEnter: 'dragenter',\n  topDragExit: 'dragexit',\n  topDragLeave: 'dragleave',\n  topDragOver: 'dragover',\n  topDragStart: 'dragstart',\n  topDrop: 'drop',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topFocus: 'focus',\n  topInput: 'input',\n  topKeyDown: 'keydown',\n  topKeyPress: 'keypress',\n  topKeyUp: 'keyup',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topMouseDown: 'mousedown',\n  topMouseMove: 'mousemove',\n  topMouseOut: 'mouseout',\n  topMouseOver: 'mouseover',\n  topMouseUp: 'mouseup',\n  topPaste: 'paste',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topScroll: 'scroll',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topSelectionChange: 'selectionchange',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTextInput: 'textInput',\n  topTimeUpdate: 'timeupdate',\n  topTouchCancel: 'touchcancel',\n  topTouchEnd: 'touchend',\n  topTouchMove: 'touchmove',\n  topTouchStart: 'touchstart',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting',\n  topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n  // directly.\n  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n    mountAt[topListenersIDKey] = reactTopListenersCounter++;\n    alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n  }\n  return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n *   ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {\n\n  /**\n   * Injectable event backend\n   */\n  ReactEventListener: null,\n\n  injection: {\n    /**\n     * @param {object} ReactEventListener\n     */\n    injectReactEventListener: function (ReactEventListener) {\n      ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n      ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n    }\n  },\n\n  /**\n   * Sets whether or not any created callbacks should be enabled.\n   *\n   * @param {boolean} enabled True if callbacks should be enabled.\n   */\n  setEnabled: function (enabled) {\n    if (ReactBrowserEventEmitter.ReactEventListener) {\n      ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n    }\n  },\n\n  /**\n   * @return {boolean} True if callbacks are enabled.\n   */\n  isEnabled: function () {\n    return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n  },\n\n  /**\n   * We listen for bubbled touch events on the document object.\n   *\n   * Firefox v8.01 (and possibly others) exhibited strange behavior when\n   * mounting `onmousemove` events at some node that was not the document\n   * element. The symptoms were that if your mouse is not moving over something\n   * contained within that mount point (for example on the background) the\n   * top-level listeners for `onmousemove` won't be called. However, if you\n   * register the `mousemove` on the document object, then it will of course\n   * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n   * top-level listeners to the document object only, at least for these\n   * movement types of events and possibly all events.\n   *\n   * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n   *\n   * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n   * they bubble to document.\n   *\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {object} contentDocumentHandle Document which owns the container\n   */\n  listenTo: function (registrationName, contentDocumentHandle) {\n    var mountAt = contentDocumentHandle;\n    var isListening = getListeningForDocument(mountAt);\n    var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n    var topLevelTypes = EventConstants.topLevelTypes;\n    for (var i = 0; i < dependencies.length; i++) {\n      var dependency = dependencies[i];\n      if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n        if (dependency === topLevelTypes.topWheel) {\n          if (isEventSupported('wheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n          } else if (isEventSupported('mousewheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n          } else {\n            // Firefox needs to capture a different mouse scroll event.\n            // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n          }\n        } else if (dependency === topLevelTypes.topScroll) {\n\n          if (isEventSupported('scroll', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n          } else {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n          }\n        } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n          if (isEventSupported('focus', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n          } else if (isEventSupported('focusin')) {\n            // IE has `focusin` and `focusout` events which bubble.\n            // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n          }\n\n          // to make sure blur and focus event listeners are only attached once\n          isListening[topLevelTypes.topBlur] = true;\n          isListening[topLevelTypes.topFocus] = true;\n        } else if (topEventMapping.hasOwnProperty(dependency)) {\n          ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n        }\n\n        isListening[dependency] = true;\n      }\n    }\n  },\n\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  /**\n   * Listens to window scroll and resize events. We cache scroll values so that\n   * application code can access them without triggering reflows.\n   *\n   * NOTE: Scroll events do not bubble.\n   *\n   * @see http://www.quirksmode.org/dom/events/scroll.html\n   */\n  ensureScrollValueMonitoring: function () {\n    if (!isMonitoringScrollValue) {\n      var refresh = ViewportMetrics.refreshScrollValues;\n      ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n      isMonitoringScrollValue = true;\n    }\n  },\n\n  eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs,\n\n  registrationNameModules: EventPluginHub.registrationNameModules,\n\n  putListener: EventPluginHub.putListener,\n\n  getListener: EventPluginHub.getListener,\n\n  deleteListener: EventPluginHub.deleteListener,\n\n  deleteAllListeners: EventPluginHub.deleteAllListeners\n\n});\n\nReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', {\n  putListener: 'putListener',\n  deleteListener: 'deleteListener'\n});\n\nmodule.exports = ReactBrowserEventEmitter;"
    },
    {
      "id": 101,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventConstants.js",
      "name": "./~/react/lib/EventConstants.js",
      "index": 101,
      "index2": 92,
      "size": 2036,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "15:21-48"
        },
        {
          "moduleId": 104,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginUtils.js",
          "module": "./~/react/lib/EventPluginUtils.js",
          "moduleName": "./~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "15:21-48"
        },
        {
          "moduleId": 144,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
          "module": "./~/react/lib/EventPropagators.js",
          "moduleName": "./~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 156,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "./~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "./~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "15:21-48"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "21:21-48"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n  topAbort: null,\n  topBlur: null,\n  topCanPlay: null,\n  topCanPlayThrough: null,\n  topChange: null,\n  topClick: null,\n  topCompositionEnd: null,\n  topCompositionStart: null,\n  topCompositionUpdate: null,\n  topContextMenu: null,\n  topCopy: null,\n  topCut: null,\n  topDoubleClick: null,\n  topDrag: null,\n  topDragEnd: null,\n  topDragEnter: null,\n  topDragExit: null,\n  topDragLeave: null,\n  topDragOver: null,\n  topDragStart: null,\n  topDrop: null,\n  topDurationChange: null,\n  topEmptied: null,\n  topEncrypted: null,\n  topEnded: null,\n  topError: null,\n  topFocus: null,\n  topInput: null,\n  topKeyDown: null,\n  topKeyPress: null,\n  topKeyUp: null,\n  topLoad: null,\n  topLoadedData: null,\n  topLoadedMetadata: null,\n  topLoadStart: null,\n  topMouseDown: null,\n  topMouseMove: null,\n  topMouseOut: null,\n  topMouseOver: null,\n  topMouseUp: null,\n  topPaste: null,\n  topPause: null,\n  topPlay: null,\n  topPlaying: null,\n  topProgress: null,\n  topRateChange: null,\n  topReset: null,\n  topScroll: null,\n  topSeeked: null,\n  topSeeking: null,\n  topSelectionChange: null,\n  topStalled: null,\n  topSubmit: null,\n  topSuspend: null,\n  topTextInput: null,\n  topTimeUpdate: null,\n  topTouchCancel: null,\n  topTouchEnd: null,\n  topTouchMove: null,\n  topTouchStart: null,\n  topVolumeChange: null,\n  topWaiting: null,\n  topWheel: null\n});\n\nvar EventConstants = {\n  topLevelTypes: topLevelTypes,\n  PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;"
    },
    {
      "id": 102,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
      "name": "./~/react/lib/EventPluginHub.js",
      "index": 102,
      "index2": 98,
      "size": 9218,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "16:21-48"
        },
        {
          "moduleId": 108,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventEmitterMixin.js",
          "module": "./~/react/lib/ReactEventEmitterMixin.js",
          "moduleName": "./~/react/lib/ReactEventEmitterMixin.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "14:21-48"
        },
        {
          "moduleId": 144,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
          "module": "./~/react/lib/EventPropagators.js",
          "moduleName": "./~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "15:21-48"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "15:21-48"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n  if (event) {\n    EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n  return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e, false);\n};\n\n/**\n * - `InstanceHandle`: [required] Module that performs logical traversals of DOM\n *   hierarchy given ids of the logical DOM elements involved.\n */\nvar InstanceHandle = null;\n\nfunction validateInstanceHandle() {\n  var valid = InstanceHandle && InstanceHandle.traverseTwoPhase && InstanceHandle.traverseEnterLeave;\n  process.env.NODE_ENV !== 'production' ? warning(valid, 'InstanceHandle not injected before use!') : undefined;\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n *   `extractEvents` {function(string, DOMEventTarget, string, object): *}\n *     Required. When a top-level event is fired, this method is expected to\n *     extract synthetic events that will in turn be queued and dispatched.\n *\n *   `eventTypes` {object}\n *     Optional, plugins that fire events must publish a mapping of registration\n *     names that are used to register listeners. Values of this mapping must\n *     be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n *   `executeDispatch` {function(object, function, string)}\n *     Optional, allows plugins to override how an event gets dispatched. By\n *     default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n  /**\n   * Methods for injecting dependencies.\n   */\n  injection: {\n\n    /**\n     * @param {object} InjectedMount\n     * @public\n     */\n    injectMount: EventPluginUtils.injection.injectMount,\n\n    /**\n     * @param {object} InjectedInstanceHandle\n     * @public\n     */\n    injectInstanceHandle: function (InjectedInstanceHandle) {\n      InstanceHandle = InjectedInstanceHandle;\n      if (process.env.NODE_ENV !== 'production') {\n        validateInstanceHandle();\n      }\n    },\n\n    getInstanceHandle: function () {\n      if (process.env.NODE_ENV !== 'production') {\n        validateInstanceHandle();\n      }\n      return InstanceHandle;\n    },\n\n    /**\n     * @param {array} InjectedEventPluginOrder\n     * @public\n     */\n    injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n    /**\n     * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n     */\n    injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n  },\n\n  eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs,\n\n  registrationNameModules: EventPluginRegistry.registrationNameModules,\n\n  /**\n   * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent.\n   *\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {?function} listener The callback to store.\n   */\n  putListener: function (id, registrationName, listener) {\n    !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : invariant(false) : undefined;\n\n    var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n    bankForRegistrationName[id] = listener;\n\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.didPutListener) {\n      PluginModule.didPutListener(id, registrationName, listener);\n    }\n  },\n\n  /**\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @return {?function} The stored callback.\n   */\n  getListener: function (id, registrationName) {\n    var bankForRegistrationName = listenerBank[registrationName];\n    return bankForRegistrationName && bankForRegistrationName[id];\n  },\n\n  /**\n   * Deletes a listener from the registration bank.\n   *\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   */\n  deleteListener: function (id, registrationName) {\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.willDeleteListener) {\n      PluginModule.willDeleteListener(id, registrationName);\n    }\n\n    var bankForRegistrationName = listenerBank[registrationName];\n    // TODO: This should never be null -- when is it?\n    if (bankForRegistrationName) {\n      delete bankForRegistrationName[id];\n    }\n  },\n\n  /**\n   * Deletes all listeners for the DOM element with the supplied ID.\n   *\n   * @param {string} id ID of the DOM element.\n   */\n  deleteAllListeners: function (id) {\n    for (var registrationName in listenerBank) {\n      if (!listenerBank[registrationName][id]) {\n        continue;\n      }\n\n      var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n      if (PluginModule && PluginModule.willDeleteListener) {\n        PluginModule.willDeleteListener(id, registrationName);\n      }\n\n      delete listenerBank[registrationName][id];\n    }\n  },\n\n  /**\n   * Allows registered plugins an opportunity to extract events from top-level\n   * native browser events.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @internal\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var events;\n    var plugins = EventPluginRegistry.plugins;\n    for (var i = 0; i < plugins.length; i++) {\n      // Not every plugin in the ordering may be loaded at runtime.\n      var possiblePlugin = plugins[i];\n      if (possiblePlugin) {\n        var extractedEvents = possiblePlugin.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n        if (extractedEvents) {\n          events = accumulateInto(events, extractedEvents);\n        }\n      }\n    }\n    return events;\n  },\n\n  /**\n   * Enqueues a synthetic event that should be dispatched when\n   * `processEventQueue` is invoked.\n   *\n   * @param {*} events An accumulation of synthetic events.\n   * @internal\n   */\n  enqueueEvents: function (events) {\n    if (events) {\n      eventQueue = accumulateInto(eventQueue, events);\n    }\n  },\n\n  /**\n   * Dispatches all synthetic events on the event queue.\n   *\n   * @internal\n   */\n  processEventQueue: function (simulated) {\n    // Set `eventQueue` to null before processing it so that we can tell if more\n    // events get enqueued while processing.\n    var processingEventQueue = eventQueue;\n    eventQueue = null;\n    if (simulated) {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n    } else {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n    }\n    !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined;\n    // This would be a good time to rethrow if any of the event handlers threw.\n    ReactErrorUtils.rethrowCaughtError();\n  },\n\n  /**\n   * These are needed for tests only. Do not use!\n   */\n  __purge: function () {\n    listenerBank = {};\n  },\n\n  __getListenerBank: function () {\n    return listenerBank;\n  }\n\n};\n\nmodule.exports = EventPluginHub;"
    },
    {
      "id": 103,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginRegistry.js",
      "name": "./~/react/lib/EventPluginRegistry.js",
      "index": 103,
      "index2": 93,
      "size": 8411,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./EventPluginRegistry",
          "loc": "17:26-58"
        },
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./EventPluginRegistry",
          "loc": "14:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n  if (!EventPluginOrder) {\n    // Wait until an `EventPluginOrder` is injected.\n    return;\n  }\n  for (var pluginName in namesToPlugins) {\n    var PluginModule = namesToPlugins[pluginName];\n    var pluginIndex = EventPluginOrder.indexOf(pluginName);\n    !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : undefined;\n    if (EventPluginRegistry.plugins[pluginIndex]) {\n      continue;\n    }\n    !PluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : undefined;\n    EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n    var publishedEvents = PluginModule.eventTypes;\n    for (var eventName in publishedEvents) {\n      !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : undefined;\n    }\n  }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n  !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : undefined;\n  EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n      }\n    }\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n  !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : undefined;\n  EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n  EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n  /**\n   * Ordered list of injected plugins.\n   */\n  plugins: [],\n\n  /**\n   * Mapping from event name to dispatch config\n   */\n  eventNameDispatchConfigs: {},\n\n  /**\n   * Mapping from registration name to plugin module\n   */\n  registrationNameModules: {},\n\n  /**\n   * Mapping from registration name to event name\n   */\n  registrationNameDependencies: {},\n\n  /**\n   * Injects an ordering of plugins (by plugin name). This allows the ordering\n   * to be decoupled from injection of the actual plugins so that ordering is\n   * always deterministic regardless of packaging, on-the-fly injection, etc.\n   *\n   * @param {array} InjectedEventPluginOrder\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginOrder}\n   */\n  injectEventPluginOrder: function (InjectedEventPluginOrder) {\n    !!EventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : undefined;\n    // Clone the ordering so it cannot be dynamically mutated.\n    EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n    recomputePluginOrdering();\n  },\n\n  /**\n   * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n   * in the ordering injected by `injectEventPluginOrder`.\n   *\n   * Plugins can be injected as part of page initialization or on-the-fly.\n   *\n   * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginsByName}\n   */\n  injectEventPluginsByName: function (injectedNamesToPlugins) {\n    var isOrderingDirty = false;\n    for (var pluginName in injectedNamesToPlugins) {\n      if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n        continue;\n      }\n      var PluginModule = injectedNamesToPlugins[pluginName];\n      if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n        !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : undefined;\n        namesToPlugins[pluginName] = PluginModule;\n        isOrderingDirty = true;\n      }\n    }\n    if (isOrderingDirty) {\n      recomputePluginOrdering();\n    }\n  },\n\n  /**\n   * Looks up the plugin for the supplied event.\n   *\n   * @param {object} event A synthetic event.\n   * @return {?object} The plugin that created the supplied event.\n   * @internal\n   */\n  getPluginModuleForEvent: function (event) {\n    var dispatchConfig = event.dispatchConfig;\n    if (dispatchConfig.registrationName) {\n      return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n    }\n    for (var phase in dispatchConfig.phasedRegistrationNames) {\n      if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n        continue;\n      }\n      var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n      if (PluginModule) {\n        return PluginModule;\n      }\n    }\n    return null;\n  },\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _resetEventPlugins: function () {\n    EventPluginOrder = null;\n    for (var pluginName in namesToPlugins) {\n      if (namesToPlugins.hasOwnProperty(pluginName)) {\n        delete namesToPlugins[pluginName];\n      }\n    }\n    EventPluginRegistry.plugins.length = 0;\n\n    var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n    for (var eventName in eventNameDispatchConfigs) {\n      if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n        delete eventNameDispatchConfigs[eventName];\n      }\n    }\n\n    var registrationNameModules = EventPluginRegistry.registrationNameModules;\n    for (var registrationName in registrationNameModules) {\n      if (registrationNameModules.hasOwnProperty(registrationName)) {\n        delete registrationNameModules[registrationName];\n      }\n    }\n  }\n\n};\n\nmodule.exports = EventPluginRegistry;"
    },
    {
      "id": 104,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginUtils.js",
      "name": "./~/react/lib/EventPluginUtils.js",
      "index": 104,
      "index2": 95,
      "size": 6785,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./EventPluginUtils",
          "loc": "15:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `Mount`: [required] Module that can convert between React dom IDs and\n *   actual node references.\n */\nvar injection = {\n  Mount: null,\n  injectMount: function (InjectedMount) {\n    injection.Mount = InjectedMount;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(InjectedMount && InjectedMount.getNode && InjectedMount.getID, 'EventPluginUtils.injection.injectMount(...): Injected Mount ' + 'module is missing getNode or getID.') : undefined;\n    }\n  }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchIDs = event._dispatchIDs;\n\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var idsIsArr = Array.isArray(dispatchIDs);\n    var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0;\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n    process.env.NODE_ENV !== 'production' ? warning(idsIsArr === listenersIsArr && IDsLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined;\n  };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {string} domID DOM id to pass to the callback.\n */\nfunction executeDispatch(event, simulated, listener, domID) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = injection.Mount.getNode(domID);\n  if (simulated) {\n    ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID);\n  } else {\n    ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID);\n  }\n  event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchIDs = event._dispatchIDs;\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and IDs are two parallel arrays that are always in sync.\n      executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, simulated, dispatchListeners, dispatchIDs);\n  }\n  event._dispatchListeners = null;\n  event._dispatchIDs = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchIDs = event._dispatchIDs;\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and IDs are two parallel arrays that are always in sync.\n      if (dispatchListeners[i](event, dispatchIDs[i])) {\n        return dispatchIDs[i];\n      }\n    }\n  } else if (dispatchListeners) {\n    if (dispatchListeners(event, dispatchIDs)) {\n      return dispatchIDs;\n    }\n  }\n  return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n  var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n  event._dispatchIDs = null;\n  event._dispatchListeners = null;\n  return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  var dispatchListener = event._dispatchListeners;\n  var dispatchID = event._dispatchIDs;\n  !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : undefined;\n  var res = dispatchListener ? dispatchListener(event, dispatchID) : null;\n  event._dispatchListeners = null;\n  event._dispatchIDs = null;\n  return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n  return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n  isEndish: isEndish,\n  isMoveish: isMoveish,\n  isStartish: isStartish,\n\n  executeDirectDispatch: executeDirectDispatch,\n  executeDispatchesInOrder: executeDispatchesInOrder,\n  executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n  hasDispatches: hasDispatches,\n\n  getNode: function (id) {\n    return injection.Mount.getNode(id);\n  },\n  getID: function (node) {\n    return injection.Mount.getID(node);\n  },\n\n  injection: injection\n};\n\nmodule.exports = EventPluginUtils;"
    },
    {
      "id": 105,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactErrorUtils.js",
      "name": "./~/react/lib/ReactErrorUtils.js",
      "index": 105,
      "index2": 94,
      "size": 2273,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./ReactErrorUtils",
          "loc": "16:22-50"
        },
        {
          "moduleId": 104,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginUtils.js",
          "module": "./~/react/lib/EventPluginUtils.js",
          "moduleName": "./~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactErrorUtils",
          "loc": "15:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n * @typechecks\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n  try {\n    return func(a, b);\n  } catch (x) {\n    if (caughtError === null) {\n      caughtError = x;\n    }\n    return undefined;\n  }\n}\n\nvar ReactErrorUtils = {\n  invokeGuardedCallback: invokeGuardedCallback,\n\n  /**\n   * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n   * handler are sure to be rethrown by rethrowCaughtError.\n   */\n  invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n  /**\n   * During execution of guarded functions we will capture the first error which\n   * we will rethrow to be handled by the top level error handler.\n   */\n  rethrowCaughtError: function () {\n    if (caughtError) {\n      var error = caughtError;\n      caughtError = null;\n      throw error;\n    }\n  }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n  /**\n   * To help development we can get better devtools integration by simulating a\n   * real browser event.\n   */\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n    ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n      var boundFunc = func.bind(null, a, b);\n      var evtType = 'react-' + name;\n      fakeNode.addEventListener(evtType, boundFunc, false);\n      var evt = document.createEvent('Event');\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n      fakeNode.removeEventListener(evtType, boundFunc, false);\n    };\n  }\n}\n\nmodule.exports = ReactErrorUtils;"
    },
    {
      "id": 106,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/accumulateInto.js",
      "name": "./~/react/lib/accumulateInto.js",
      "index": 106,
      "index2": 96,
      "size": 1743,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./accumulateInto",
          "loc": "18:21-48"
        },
        {
          "moduleId": 144,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
          "module": "./~/react/lib/EventPropagators.js",
          "moduleName": "./~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./accumulateInto",
          "loc": "19:21-48"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n *\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : undefined;\n  if (current == null) {\n    return next;\n  }\n\n  // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n  var currentIsArray = Array.isArray(current);\n  var nextIsArray = Array.isArray(next);\n\n  if (currentIsArray && nextIsArray) {\n    current.push.apply(current, next);\n    return current;\n  }\n\n  if (currentIsArray) {\n    current.push(next);\n    return current;\n  }\n\n  if (nextIsArray) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\nmodule.exports = accumulateInto;"
    },
    {
      "id": 107,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/forEachAccumulated.js",
      "name": "./~/react/lib/forEachAccumulated.js",
      "index": 107,
      "index2": 97,
      "size": 893,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 102,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPluginHub.js",
          "module": "./~/react/lib/EventPluginHub.js",
          "moduleName": "./~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./forEachAccumulated",
          "loc": "19:25-56"
        },
        {
          "moduleId": 144,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
          "module": "./~/react/lib/EventPropagators.js",
          "moduleName": "./~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./forEachAccumulated",
          "loc": "20:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\nvar forEachAccumulated = function (arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n};\n\nmodule.exports = forEachAccumulated;"
    },
    {
      "id": 108,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventEmitterMixin.js",
      "name": "./~/react/lib/ReactEventEmitterMixin.js",
      "index": 108,
      "index2": 99,
      "size": 1303,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./ReactEventEmitterMixin",
          "loc": "18:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n  EventPluginHub.enqueueEvents(events);\n  EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n  /**\n   * Streams a fired top-level event to `EventPluginHub` where plugins have the\n   * opportunity to create `ReactEvent`s to be dispatched.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {object} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native environment event.\n   */\n  handleTopLevel: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var events = EventPluginHub.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n    runEventQueueInBatch(events);\n  }\n};\n\nmodule.exports = ReactEventEmitterMixin;"
    },
    {
      "id": 109,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ViewportMetrics.js",
      "name": "./~/react/lib/ViewportMetrics.js",
      "index": 109,
      "index2": 100,
      "size": 638,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./ViewportMetrics",
          "loc": "20:22-50"
        },
        {
          "moduleId": 157,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticMouseEvent.js",
          "module": "./~/react/lib/SyntheticMouseEvent.js",
          "moduleName": "./~/react/lib/SyntheticMouseEvent.js",
          "type": "cjs require",
          "userRequest": "./ViewportMetrics",
          "loc": "16:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n  currentScrollLeft: 0,\n\n  currentScrollTop: 0,\n\n  refreshScrollValues: function (scrollPosition) {\n    ViewportMetrics.currentScrollLeft = scrollPosition.x;\n    ViewportMetrics.currentScrollTop = scrollPosition.y;\n  }\n\n};\n\nmodule.exports = ViewportMetrics;"
    },
    {
      "id": 110,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Object.assign.js",
      "name": "./~/react/lib/Object.assign.js",
      "index": 110,
      "index2": 101,
      "size": 1261,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 74,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
          "module": "./~/react/lib/React.js",
          "moduleName": "./~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "20:13-39"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "28:13-39"
        },
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "22:13-39"
        },
        {
          "moduleId": 113,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElement.js",
          "module": "./~/react/lib/ReactElement.js",
          "moduleName": "./~/react/lib/ReactElement.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "16:13-39"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "20:13-39"
        },
        {
          "moduleId": 126,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CallbackQueue.js",
          "module": "./~/react/lib/CallbackQueue.js",
          "moduleName": "./~/react/lib/CallbackQueue.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "16:13-39"
        },
        {
          "moduleId": 133,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
          "module": "./~/react/lib/instantiateReactComponent.js",
          "moduleName": "./~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "24:13-39"
        },
        {
          "moduleId": 139,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "./~/react/lib/ReactEmptyComponent.js",
          "moduleName": "./~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 140,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactNativeComponent.js",
          "module": "./~/react/lib/ReactNativeComponent.js",
          "moduleName": "./~/react/lib/ReactNativeComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        },
        {
          "moduleId": 141,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/validateDOMNesting.js",
          "module": "./~/react/lib/validateDOMNesting.js",
          "moduleName": "./~/react/lib/validateDOMNesting.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        },
        {
          "moduleId": 145,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/FallbackCompositionState.js",
          "module": "./~/react/lib/FallbackCompositionState.js",
          "moduleName": "./~/react/lib/FallbackCompositionState.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 148,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticEvent.js",
          "module": "./~/react/lib/SyntheticEvent.js",
          "moduleName": "./~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 163,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "34:13-39"
        },
        {
          "moduleId": 176,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
          "module": "./~/react/lib/ReactDOMInput.js",
          "moduleName": "./~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 180,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMOption.js",
          "module": "./~/react/lib/ReactDOMOption.js",
          "moduleName": "./~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 183,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelect.js",
          "module": "./~/react/lib/ReactDOMSelect.js",
          "moduleName": "./~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 184,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "./~/react/lib/ReactDOMTextarea.js",
          "moduleName": "./~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "22:13-39"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "20:13-39"
        },
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "22:13-39"
        },
        {
          "moduleId": 214,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerfAnalysis.js",
          "module": "./~/react/lib/ReactDefaultPerfAnalysis.js",
          "moduleName": "./~/react/lib/ReactDefaultPerfAnalysis.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        },
        {
          "moduleId": 222,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "./~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "./~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "23:13-39"
        },
        {
          "moduleId": 228,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/deprecated.js",
          "module": "./~/react/lib/deprecated.js",
          "moduleName": "./~/react/lib/deprecated.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n  if (target == null) {\n    throw new TypeError('Object.assign target cannot be null or undefined');\n  }\n\n  var to = Object(target);\n  var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n  for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n    var nextSource = arguments[nextIndex];\n    if (nextSource == null) {\n      continue;\n    }\n\n    var from = Object(nextSource);\n\n    // We don't currently support accessors nor proxies. Therefore this\n    // copy cannot throw. If we ever supported this then we must handle\n    // exceptions and side-effects. We don't support symbols so they won't\n    // be transferred.\n\n    for (var key in from) {\n      if (hasOwnProperty.call(from, key)) {\n        to[key] = from[key];\n      }\n    }\n  }\n\n  return to;\n}\n\nmodule.exports = assign;"
    },
    {
      "id": 111,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/isEventSupported.js",
      "name": "./~/react/lib/isEventSupported.js",
      "index": 111,
      "index2": 102,
      "size": 1972,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 100,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "./~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "./~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./isEventSupported",
          "loc": "23:23-52"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./isEventSupported",
          "loc": "22:23-52"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./isEventSupported",
          "loc": "38:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n  useHasFeature = document.implementation && document.implementation.hasFeature &&\n  // always returns true in newer browsers as per the standard.\n  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n  document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n  if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = (eventName in document);\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nmodule.exports = isEventSupported;"
    },
    {
      "id": 112,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMFeatureFlags.js",
      "name": "./~/react/lib/ReactDOMFeatureFlags.js",
      "index": 112,
      "index2": 104,
      "size": 458,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMFeatureFlags",
          "loc": "17:27-60"
        },
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMFeatureFlags",
          "loc": "18:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n  useCreateElement: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;"
    },
    {
      "id": 113,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElement.js",
      "name": "./~/react/lib/ReactElement.js",
      "index": 113,
      "index2": 106,
      "size": 8075,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "18:19-44"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "16:19-44"
        },
        {
          "moduleId": 139,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "./~/react/lib/ReactEmptyComponent.js",
          "moduleName": "./~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "14:19-44"
        },
        {
          "moduleId": 178,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypes.js",
          "module": "./~/react/lib/ReactPropTypes.js",
          "moduleName": "./~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "14:19-44"
        },
        {
          "moduleId": 181,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildren.js",
          "module": "./~/react/lib/ReactChildren.js",
          "moduleName": "./~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 182,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
          "module": "./~/react/lib/traverseAllChildren.js",
          "moduleName": "./~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "18:19-44"
        },
        {
          "moduleId": 224,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMFactories.js",
          "module": "./~/react/lib/ReactDOMFactories.js",
          "moduleName": "./~/react/lib/ReactDOMFactories.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "21:19-44"
        },
        {
          "moduleId": 227,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/onlyChild.js",
          "module": "./~/react/lib/onlyChild.js",
          "moduleName": "./~/react/lib/onlyChild.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "13:19-44"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar assign = require('./Object.assign');\nvar canDefineProperty = require('./canDefineProperty');\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allow us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  if (process.env.NODE_ENV !== 'production') {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {};\n\n    // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n    if (canDefineProperty) {\n      Object.defineProperty(element._store, 'validated', {\n        configurable: false,\n        enumerable: false,\n        writable: true,\n        value: false\n      });\n      // self and source are DEV only properties.\n      Object.defineProperty(element, '_self', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: self\n      });\n      // Two elements created in two different places should be considered\n      // equal for testing purposes and therefore we hide it from enumeration.\n      Object.defineProperty(element, '_source', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: source\n      });\n    } else {\n      element._store.validated = false;\n      element._self = self;\n      element._source = source;\n    }\n    Object.freeze(element.props);\n    Object.freeze(element);\n  }\n\n  return element;\n};\n\nReactElement.createElement = function (type, config, children) {\n  var propName;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : '' + config.key;\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source;\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (typeof props[propName] === 'undefined') {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\nReactElement.createFactory = function (type) {\n  var factory = ReactElement.createElement.bind(null, type);\n  // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n  // Legacy hook TODO: Warn if this is accessed\n  factory.type = type;\n  return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n  return newElement;\n};\n\nReactElement.cloneAndReplaceProps = function (oldElement, newProps) {\n  var newElement = ReactElement(oldElement.type, oldElement.key, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, newProps);\n\n  if (process.env.NODE_ENV !== 'production') {\n    // If the key on the original is valid, then the clone is valid\n    newElement._store.validated = oldElement._store.validated;\n  }\n\n  return newElement;\n};\n\nReactElement.cloneElement = function (element, config, children) {\n  var propName;\n\n  // Original props are copied\n  var props = assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n  // Self is preserved since the owner is preserved.\n  var self = element._self;\n  // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n  var source = element._source;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config != null) {\n    if (config.ref !== undefined) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n    if (config.key !== undefined) {\n      key = '' + config.key;\n    }\n    // Remaining properties override existing props\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;"
    },
    {
      "id": 114,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/canDefineProperty.js",
      "name": "./~/react/lib/canDefineProperty.js",
      "index": 114,
      "index2": 105,
      "size": 629,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 113,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElement.js",
          "module": "./~/react/lib/ReactElement.js",
          "moduleName": "./~/react/lib/ReactElement.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "17:24-54"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "35:24-54"
        },
        {
          "moduleId": 194,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
          "module": "./~/react/lib/ReactComponent.js",
          "moduleName": "./~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "16:24-54"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "26:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule canDefineProperty\n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n  try {\n    Object.defineProperty({}, 'x', { get: function () {} });\n    canDefineProperty = true;\n  } catch (x) {\n    // IE will fail on defineProperty\n  }\n}\n\nmodule.exports = canDefineProperty;"
    },
    {
      "id": 115,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEmptyComponentRegistry.js",
      "name": "./~/react/lib/ReactEmptyComponentRegistry.js",
      "index": 115,
      "index2": 107,
      "size": 1380,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponentRegistry",
          "loc": "19:34-74"
        },
        {
          "moduleId": 139,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "./~/react/lib/ReactEmptyComponent.js",
          "moduleName": "./~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponentRegistry",
          "loc": "15:34-74"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponentRegistry\n */\n\n'use strict';\n\n// This registry keeps track of the React IDs of the components that rendered to\n// `null` (in reality a placeholder such as `noscript`)\nvar nullComponentIDsRegistry = {};\n\n/**\n * @param {string} id Component's `_rootNodeID`.\n * @return {boolean} True if the component is rendered to null.\n */\nfunction isNullComponentID(id) {\n  return !!nullComponentIDsRegistry[id];\n}\n\n/**\n * Mark the component as having rendered to null.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction registerNullComponentID(id) {\n  nullComponentIDsRegistry[id] = true;\n}\n\n/**\n * Unmark the component as having rendered to null: it renders to something now.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction deregisterNullComponentID(id) {\n  delete nullComponentIDsRegistry[id];\n}\n\nvar ReactEmptyComponentRegistry = {\n  isNullComponentID: isNullComponentID,\n  registerNullComponentID: registerNullComponentID,\n  deregisterNullComponentID: deregisterNullComponentID\n};\n\nmodule.exports = ReactEmptyComponentRegistry;"
    },
    {
      "id": 116,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInstanceHandles.js",
      "name": "./~/react/lib/ReactInstanceHandles.js",
      "index": 116,
      "index2": 109,
      "size": 10649,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "19:27-60"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "20:27-60"
        },
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "28:27-60"
        },
        {
          "moduleId": 182,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
          "module": "./~/react/lib/traverseAllChildren.js",
          "moduleName": "./~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "16:27-60"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "18:27-60"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "16:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceHandles\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactRootIndex = require('./ReactRootIndex');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar SEPARATOR = '.';\nvar SEPARATOR_LENGTH = SEPARATOR.length;\n\n/**\n * Maximum depth of traversals before we consider the possibility of a bad ID.\n */\nvar MAX_TREE_DEPTH = 10000;\n\n/**\n * Creates a DOM ID prefix to use when mounting React components.\n *\n * @param {number} index A unique integer\n * @return {string} React root ID.\n * @internal\n */\nfunction getReactRootIDString(index) {\n  return SEPARATOR + index.toString(36);\n}\n\n/**\n * Checks if a character in the supplied ID is a separator or the end.\n *\n * @param {string} id A React DOM ID.\n * @param {number} index Index of the character to check.\n * @return {boolean} True if the character is a separator or end of the ID.\n * @private\n */\nfunction isBoundary(id, index) {\n  return id.charAt(index) === SEPARATOR || index === id.length;\n}\n\n/**\n * Checks if the supplied string is a valid React DOM ID.\n *\n * @param {string} id A React DOM ID, maybe.\n * @return {boolean} True if the string is a valid React DOM ID.\n * @private\n */\nfunction isValidID(id) {\n  return id === '' || id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR;\n}\n\n/**\n * Checks if the first ID is an ancestor of or equal to the second ID.\n *\n * @param {string} ancestorID\n * @param {string} descendantID\n * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`.\n * @internal\n */\nfunction isAncestorIDOf(ancestorID, descendantID) {\n  return descendantID.indexOf(ancestorID) === 0 && isBoundary(descendantID, ancestorID.length);\n}\n\n/**\n * Gets the parent ID of the supplied React DOM ID, `id`.\n *\n * @param {string} id ID of a component.\n * @return {string} ID of the parent, or an empty string.\n * @private\n */\nfunction getParentID(id) {\n  return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : '';\n}\n\n/**\n * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the\n * supplied `destinationID`. If they are equal, the ID is returned.\n *\n * @param {string} ancestorID ID of an ancestor node of `destinationID`.\n * @param {string} destinationID ID of the destination node.\n * @return {string} Next ID on the path from `ancestorID` to `destinationID`.\n * @private\n */\nfunction getNextDescendantID(ancestorID, destinationID) {\n  !(isValidID(ancestorID) && isValidID(destinationID)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.', ancestorID, destinationID) : invariant(false) : undefined;\n  !isAncestorIDOf(ancestorID, destinationID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(...): React has made an invalid assumption about ' + 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.', ancestorID, destinationID) : invariant(false) : undefined;\n  if (ancestorID === destinationID) {\n    return ancestorID;\n  }\n  // Skip over the ancestor and the immediate separator. Traverse until we hit\n  // another separator or we reach the end of `destinationID`.\n  var start = ancestorID.length + SEPARATOR_LENGTH;\n  var i;\n  for (i = start; i < destinationID.length; i++) {\n    if (isBoundary(destinationID, i)) {\n      break;\n    }\n  }\n  return destinationID.substr(0, i);\n}\n\n/**\n * Gets the nearest common ancestor ID of two IDs.\n *\n * Using this ID scheme, the nearest common ancestor ID is the longest common\n * prefix of the two IDs that immediately preceded a \"marker\" in both strings.\n *\n * @param {string} oneID\n * @param {string} twoID\n * @return {string} Nearest common ancestor ID, or the empty string if none.\n * @private\n */\nfunction getFirstCommonAncestorID(oneID, twoID) {\n  var minLength = Math.min(oneID.length, twoID.length);\n  if (minLength === 0) {\n    return '';\n  }\n  var lastCommonMarkerIndex = 0;\n  // Use `<=` to traverse until the \"EOL\" of the shorter string.\n  for (var i = 0; i <= minLength; i++) {\n    if (isBoundary(oneID, i) && isBoundary(twoID, i)) {\n      lastCommonMarkerIndex = i;\n    } else if (oneID.charAt(i) !== twoID.charAt(i)) {\n      break;\n    }\n  }\n  var longestCommonID = oneID.substr(0, lastCommonMarkerIndex);\n  !isValidID(longestCommonID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s', oneID, twoID, longestCommonID) : invariant(false) : undefined;\n  return longestCommonID;\n}\n\n/**\n * Traverses the parent path between two IDs (either up or down). The IDs must\n * not be the same, and there must exist a parent path between them. If the\n * callback returns `false`, traversal is stopped.\n *\n * @param {?string} start ID at which to start traversal.\n * @param {?string} stop ID at which to end traversal.\n * @param {function} cb Callback to invoke each ID with.\n * @param {*} arg Argument to invoke the callback with.\n * @param {?boolean} skipFirst Whether or not to skip the first node.\n * @param {?boolean} skipLast Whether or not to skip the last node.\n * @private\n */\nfunction traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) {\n  start = start || '';\n  stop = stop || '';\n  !(start !== stop) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.', start) : invariant(false) : undefined;\n  var traverseUp = isAncestorIDOf(stop, start);\n  !(traverseUp || isAncestorIDOf(start, stop)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' + 'not have a parent path.', start, stop) : invariant(false) : undefined;\n  // Traverse from `start` to `stop` one depth at a time.\n  var depth = 0;\n  var traverse = traverseUp ? getParentID : getNextDescendantID;\n  for (var id = start;; /* until break */id = traverse(id, stop)) {\n    var ret;\n    if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) {\n      ret = cb(id, traverseUp, arg);\n    }\n    if (ret === false || id === stop) {\n      // Only break //after// visiting `stop`.\n      break;\n    }\n    !(depth++ < MAX_TREE_DEPTH) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' + 'traversing the React DOM ID tree. This may be due to malformed IDs: %s', start, stop, id) : invariant(false) : undefined;\n  }\n}\n\n/**\n * Manages the IDs assigned to DOM representations of React components. This\n * uses a specific scheme in order to traverse the DOM efficiently (e.g. in\n * order to simulate events).\n *\n * @internal\n */\nvar ReactInstanceHandles = {\n\n  /**\n   * Constructs a React root ID\n   * @return {string} A React root ID.\n   */\n  createReactRootID: function () {\n    return getReactRootIDString(ReactRootIndex.createReactRootIndex());\n  },\n\n  /**\n   * Constructs a React ID by joining a root ID with a name.\n   *\n   * @param {string} rootID Root ID of a parent component.\n   * @param {string} name A component's name (as flattened children).\n   * @return {string} A React ID.\n   * @internal\n   */\n  createReactID: function (rootID, name) {\n    return rootID + name;\n  },\n\n  /**\n   * Gets the DOM ID of the React component that is the root of the tree that\n   * contains the React component with the supplied DOM ID.\n   *\n   * @param {string} id DOM ID of a React component.\n   * @return {?string} DOM ID of the React component that is the root.\n   * @internal\n   */\n  getReactRootIDFromNodeID: function (id) {\n    if (id && id.charAt(0) === SEPARATOR && id.length > 1) {\n      var index = id.indexOf(SEPARATOR, 1);\n      return index > -1 ? id.substr(0, index) : id;\n    }\n    return null;\n  },\n\n  /**\n   * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n   * should would receive a `mouseEnter` or `mouseLeave` event.\n   *\n   * NOTE: Does not invoke the callback on the nearest common ancestor because\n   * nothing \"entered\" or \"left\" that element.\n   *\n   * @param {string} leaveID ID being left.\n   * @param {string} enterID ID being entered.\n   * @param {function} cb Callback to invoke on each entered/left ID.\n   * @param {*} upArg Argument to invoke the callback with on left IDs.\n   * @param {*} downArg Argument to invoke the callback with on entered IDs.\n   * @internal\n   */\n  traverseEnterLeave: function (leaveID, enterID, cb, upArg, downArg) {\n    var ancestorID = getFirstCommonAncestorID(leaveID, enterID);\n    if (ancestorID !== leaveID) {\n      traverseParentPath(leaveID, ancestorID, cb, upArg, false, true);\n    }\n    if (ancestorID !== enterID) {\n      traverseParentPath(ancestorID, enterID, cb, downArg, true, false);\n    }\n  },\n\n  /**\n   * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n   *\n   * NOTE: This traversal happens on IDs without touching the DOM.\n   *\n   * @param {string} targetID ID of the target node.\n   * @param {function} cb Callback to invoke.\n   * @param {*} arg Argument to invoke the callback with.\n   * @internal\n   */\n  traverseTwoPhase: function (targetID, cb, arg) {\n    if (targetID) {\n      traverseParentPath('', targetID, cb, arg, true, false);\n      traverseParentPath(targetID, '', cb, arg, false, true);\n    }\n  },\n\n  /**\n   * Same as `traverseTwoPhase` but skips the `targetID`.\n   */\n  traverseTwoPhaseSkipTarget: function (targetID, cb, arg) {\n    if (targetID) {\n      traverseParentPath('', targetID, cb, arg, true, true);\n      traverseParentPath(targetID, '', cb, arg, true, true);\n    }\n  },\n\n  /**\n   * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For\n   * example, passing `.0.$row-0.1` would result in `cb` getting called\n   * with `.0`, `.0.$row-0`, and `.0.$row-0.1`.\n   *\n   * NOTE: This traversal happens on IDs without touching the DOM.\n   *\n   * @param {string} targetID ID of the target node.\n   * @param {function} cb Callback to invoke.\n   * @param {*} arg Argument to invoke the callback with.\n   * @internal\n   */\n  traverseAncestors: function (targetID, cb, arg) {\n    traverseParentPath('', targetID, cb, arg, true, false);\n  },\n\n  getFirstCommonAncestorID: getFirstCommonAncestorID,\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _getNextDescendantID: getNextDescendantID,\n\n  isAncestorIDOf: isAncestorIDOf,\n\n  SEPARATOR: SEPARATOR\n\n};\n\nmodule.exports = ReactInstanceHandles;"
    },
    {
      "id": 117,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactRootIndex.js",
      "name": "./~/react/lib/ReactRootIndex.js",
      "index": 117,
      "index2": 108,
      "size": 723,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInstanceHandles.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 116,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInstanceHandles.js",
          "module": "./~/react/lib/ReactInstanceHandles.js",
          "moduleName": "./~/react/lib/ReactInstanceHandles.js",
          "type": "cjs require",
          "userRequest": "./ReactRootIndex",
          "loc": "15:21-48"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactRootIndex",
          "loc": "22:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar ReactRootIndexInjection = {\n  /**\n   * @param {function} _createReactRootIndex\n   */\n  injectCreateReactRootIndex: function (_createReactRootIndex) {\n    ReactRootIndex.createReactRootIndex = _createReactRootIndex;\n  }\n};\n\nvar ReactRootIndex = {\n  createReactRootIndex: null,\n  injection: ReactRootIndexInjection\n};\n\nmodule.exports = ReactRootIndex;"
    },
    {
      "id": 118,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInstanceMap.js",
      "name": "./~/react/lib/ReactInstanceMap.js",
      "index": 118,
      "index2": 110,
      "size": 1253,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "21:23-52"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "16:23-52"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "17:23-52"
        },
        {
          "moduleId": 161,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserComponentMixin.js",
          "module": "./~/react/lib/ReactBrowserComponentMixin.js",
          "moduleName": "./~/react/lib/ReactBrowserComponentMixin.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "14:23-52"
        },
        {
          "moduleId": 162,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/findDOMNode.js",
          "module": "./~/react/lib/findDOMNode.js",
          "moduleName": "./~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "16:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\nvar ReactInstanceMap = {\n\n  /**\n   * This API should be called `delete` but we'd have to make sure to always\n   * transform these to strings for IE support. When this transform is fully\n   * supported we can rename it.\n   */\n  remove: function (key) {\n    key._reactInternalInstance = undefined;\n  },\n\n  get: function (key) {\n    return key._reactInternalInstance;\n  },\n\n  has: function (key) {\n    return key._reactInternalInstance !== undefined;\n  },\n\n  set: function (key, value) {\n    key._reactInternalInstance = value;\n  }\n\n};\n\nmodule.exports = ReactInstanceMap;"
    },
    {
      "id": 119,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMarkupChecksum.js",
      "name": "./~/react/lib/ReactMarkupChecksum.js",
      "index": 119,
      "index2": 112,
      "size": 1386,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactMarkupChecksum",
          "loc": "22:26-58"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactMarkupChecksum",
          "loc": "17:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\n\nvar ReactMarkupChecksum = {\n  CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n  /**\n   * @param {string} markup Markup string\n   * @return {string} Markup string with checksum attribute attached\n   */\n  addChecksumToMarkup: function (markup) {\n    var checksum = adler32(markup);\n\n    // Add checksum (handle both parent tags and self-closing tags)\n    return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n  },\n\n  /**\n   * @param {string} markup to use\n   * @param {DOMElement} element root React element\n   * @returns {boolean} whether or not the markup is the same\n   */\n  canReuseMarkup: function (markup, element) {\n    var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n    existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n    var markupChecksum = adler32(markup);\n    return markupChecksum === existingChecksum;\n  }\n};\n\nmodule.exports = ReactMarkupChecksum;"
    },
    {
      "id": 120,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/adler32.js",
      "name": "./~/react/lib/adler32.js",
      "index": 120,
      "index2": 111,
      "size": 1196,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMarkupChecksum.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 119,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMarkupChecksum.js",
          "module": "./~/react/lib/ReactMarkupChecksum.js",
          "moduleName": "./~/react/lib/ReactMarkupChecksum.js",
          "type": "cjs require",
          "userRequest": "./adler32",
          "loc": "14:14-34"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n  var a = 1;\n  var b = 0;\n  var i = 0;\n  var l = data.length;\n  var m = l & ~0x3;\n  while (i < m) {\n    for (; i < Math.min(i + 4096, m); i += 4) {\n      b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n    }\n    a %= MOD;\n    b %= MOD;\n  }\n  for (; i < l; i++) {\n    b += a += data.charCodeAt(i);\n  }\n  a %= MOD;\n  b %= MOD;\n  return a | b << 16;\n}\n\nmodule.exports = adler32;"
    },
    {
      "id": 121,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconciler.js",
      "name": "./~/react/lib/ReactReconciler.js",
      "index": 121,
      "index2": 115,
      "size": 3550,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "22:22-50"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "24:22-50"
        },
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "17:22-50"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "21:22-50"
        },
        {
          "moduleId": 139,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "./~/react/lib/ReactEmptyComponent.js",
          "moduleName": "./~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "16:22-50"
        },
        {
          "moduleId": 185,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
          "module": "./~/react/lib/ReactMultiChild.js",
          "moduleName": "./~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "19:22-50"
        },
        {
          "moduleId": 186,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildReconciler.js",
          "module": "./~/react/lib/ReactChildReconciler.js",
          "moduleName": "./~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "15:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n  ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (internalInstance, rootID, transaction, context) {\n    var markup = internalInstance.mountComponent(rootID, transaction, context);\n    if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n    return markup;\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function (internalInstance) {\n    ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n    internalInstance.unmountComponent();\n  },\n\n  /**\n   * Update a component using a new element.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @internal\n   */\n  receiveComponent: function (internalInstance, nextElement, transaction, context) {\n    var prevElement = internalInstance._currentElement;\n\n    if (nextElement === prevElement && context === internalInstance._context) {\n      // Since elements are immutable after the owner is rendered,\n      // we can do a cheap identity compare here to determine if this is a\n      // superfluous reconcile. It's possible for state to be mutable but such\n      // change should trigger an update of the owner which would recreate\n      // the element. We explicitly check for the existence of an owner since\n      // it's possible for an element created outside a composite to be\n      // deeply mutated and reused.\n\n      // TODO: Bailing out early is just a perf optimization right?\n      // TODO: Removing the return statement should affect correctness?\n      return;\n    }\n\n    var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n    if (refsChanged) {\n      ReactRef.detachRefs(internalInstance, prevElement);\n    }\n\n    internalInstance.receiveComponent(nextElement, transaction, context);\n\n    if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n  },\n\n  /**\n   * Flush any dirty changes in a component.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (internalInstance, transaction) {\n    internalInstance.performUpdateIfNecessary(transaction);\n  }\n\n};\n\nmodule.exports = ReactReconciler;"
    },
    {
      "id": 122,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactRef.js",
      "name": "./~/react/lib/ReactRef.js",
      "index": 122,
      "index2": 114,
      "size": 2342,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconciler.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 121,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconciler.js",
          "module": "./~/react/lib/ReactReconciler.js",
          "moduleName": "./~/react/lib/ReactReconciler.js",
          "type": "cjs require",
          "userRequest": "./ReactRef",
          "loc": "14:15-36"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(component.getPublicInstance());\n  } else {\n    // Legacy ref\n    ReactOwner.addComponentAsRefTo(component, ref, owner);\n  }\n}\n\nfunction detachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(null);\n  } else {\n    // Legacy ref\n    ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n  }\n}\n\nReactRef.attachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    attachRef(ref, instance, element._owner);\n  }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n  // If either the owner or a `ref` has changed, make sure the newest owner\n  // has stored a reference to `this`, and the previous owner (if different)\n  // has forgotten the reference to `this`. We use the element instead\n  // of the public this.props because the post processing cannot determine\n  // a ref. The ref conceptually lives on the element.\n\n  // TODO: Should this even be possible? The owner cannot change because\n  // it's forbidden by shouldUpdateReactComponent. The ref can change\n  // if you swap the keys of but not the refs. Reconsider where this check\n  // is made. It probably belongs where the key checking and\n  // instantiateReactComponent is done.\n\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n\n  return(\n    // This has a few false positives w/r/t empty components.\n    prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref\n  );\n};\n\nReactRef.detachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    detachRef(ref, instance, element._owner);\n  }\n};\n\nmodule.exports = ReactRef;"
    },
    {
      "id": 123,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactOwner.js",
      "name": "./~/react/lib/ReactOwner.js",
      "index": 123,
      "index2": 113,
      "size": 3446,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactRef.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 122,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactRef.js",
          "module": "./~/react/lib/ReactRef.js",
          "moduleName": "./~/react/lib/ReactRef.js",
          "type": "cjs require",
          "userRequest": "./ReactOwner",
          "loc": "14:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return (\n *         <div onClick={this.handleClick}>\n *           <CustomComponent ref=\"custom\" />\n *         </div>\n *       );\n *     },\n *     handleClick: function() {\n *       this.refs.custom.handleClick();\n *     },\n *     componentDidMount: function() {\n *       this.refs.custom.initialize();\n *     }\n *   });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n  /**\n   * @param {?object} object\n   * @return {boolean} True if `object` is a valid owner.\n   * @final\n   */\n  isValidOwner: function (object) {\n    return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n  },\n\n  /**\n   * Adds a component by ref to an owner component.\n   *\n   * @param {ReactComponent} component Component to reference.\n   * @param {string} ref Name by which to refer to the component.\n   * @param {ReactOwner} owner Component on which to record the ref.\n   * @final\n   * @internal\n   */\n  addComponentAsRefTo: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n    owner.attachRef(ref, component);\n  },\n\n  /**\n   * Removes a component by ref from an owner component.\n   *\n   * @param {ReactComponent} component Component to dereference.\n   * @param {string} ref Name of the ref to remove.\n   * @param {ReactOwner} owner Component on which the ref is recorded.\n   * @final\n   * @internal\n   */\n  removeComponentAsRefFrom: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n    // Check that `component` is still the current ref because we do not want to\n    // detach the ref if another component stole it.\n    if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) {\n      owner.detachRef(ref);\n    }\n  }\n\n};\n\nmodule.exports = ReactOwner;"
    },
    {
      "id": 124,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
      "name": "./~/react/lib/ReactUpdateQueue.js",
      "index": 124,
      "index2": 120,
      "size": 10938,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdateQueue",
          "loc": "25:23-52"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdateQueue",
          "loc": "22:23-52"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdateQueue",
          "loc": "32:23-52"
        }
      ],
      "source": "/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n  ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n  var internalInstance = ReactInstanceMap.get(publicInstance);\n  if (!internalInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      // Only warn when we have a callerName. Otherwise we should be silent.\n      // We're probably calling from enqueueCallback. We don't want to warn\n      // there because we already warned for the corresponding lifecycle method.\n      process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor.displayName) : undefined;\n    }\n    return null;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition ' + '(such as within `render`). Render methods should be a pure function ' + 'of props and state.', callerName) : undefined;\n  }\n\n  return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      var owner = ReactCurrentOwner.current;\n      if (owner !== null) {\n        process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n        owner._warnedAboutRefsInRender = true;\n      }\n    }\n    var internalInstance = ReactInstanceMap.get(publicInstance);\n    if (internalInstance) {\n      // During componentWillMount and render this will still be null but after\n      // that will always render to something. At least for now. So we can use\n      // this hack.\n      return !!internalInstance._renderedComponent;\n    } else {\n      return false;\n    }\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {\n    !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n    // Previously we would throw an error if we didn't have an internal\n    // instance. Since we want to make it a no-op instead, we mirror the same\n    // behavior we have in other enqueue* methods.\n    // We also need to ignore callbacks in componentWillMount. See\n    // enqueueUpdates.\n    if (!internalInstance) {\n      return null;\n    }\n\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    // TODO: The callback here is ignored when setState is called from\n    // componentWillMount. Either fix it or disallow doing so completely in\n    // favor of getInitialState. Alternatively, we can disallow\n    // componentWillMount during server-side rendering.\n    enqueueUpdate(internalInstance);\n  },\n\n  enqueueCallbackInternal: function (internalInstance, callback) {\n    !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingForceUpdate = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingStateQueue = [completeState];\n    internalInstance._pendingReplaceState = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n    queue.push(partialState);\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialProps Subset of the next props.\n   * @internal\n   */\n  enqueueSetProps: function (publicInstance, partialProps) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setProps');\n    if (!internalInstance) {\n      return;\n    }\n    ReactUpdateQueue.enqueueSetPropsInternal(internalInstance, partialProps);\n  },\n\n  enqueueSetPropsInternal: function (internalInstance, partialProps) {\n    var topLevelWrapper = internalInstance._topLevelWrapper;\n    !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setProps(...): You called `setProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n    // Merge with the pending element if it exists, otherwise with existing\n    // element props.\n    var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n    var element = wrapElement.props;\n    var props = assign({}, element.props, partialProps);\n    topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n    enqueueUpdate(topLevelWrapper);\n  },\n\n  /**\n   * Replaces all of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} props New props.\n   * @internal\n   */\n  enqueueReplaceProps: function (publicInstance, props) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceProps');\n    if (!internalInstance) {\n      return;\n    }\n    ReactUpdateQueue.enqueueReplacePropsInternal(internalInstance, props);\n  },\n\n  enqueueReplacePropsInternal: function (internalInstance, props) {\n    var topLevelWrapper = internalInstance._topLevelWrapper;\n    !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'replaceProps(...): You called `replaceProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n    // Merge with the pending element if it exists, otherwise with existing\n    // element props.\n    var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n    var element = wrapElement.props;\n    topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n    enqueueUpdate(topLevelWrapper);\n  },\n\n  enqueueElementInternal: function (internalInstance, newElement) {\n    internalInstance._pendingElement = newElement;\n    enqueueUpdate(internalInstance);\n  }\n\n};\n\nmodule.exports = ReactUpdateQueue;"
    },
    {
      "id": 125,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
      "name": "./~/react/lib/ReactUpdates.js",
      "index": 125,
      "index2": 119,
      "size": 8542,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "23:19-44"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "26:19-44"
        },
        {
          "moduleId": 124,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "./~/react/lib/ReactUpdateQueue.js",
          "moduleName": "./~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "17:19-44"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "18:19-44"
        },
        {
          "moduleId": 163,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "14:19-44"
        },
        {
          "moduleId": 176,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
          "module": "./~/react/lib/ReactDOMInput.js",
          "moduleName": "./~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "17:19-44"
        },
        {
          "moduleId": 183,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelect.js",
          "module": "./~/react/lib/ReactDOMSelect.js",
          "moduleName": "./~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "16:19-44"
        },
        {
          "moduleId": 184,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "./~/react/lib/ReactDOMTextarea.js",
          "moduleName": "./~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "16:19-44"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "20:19-44"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "23:19-44"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "20:19-44"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n  !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : undefined;\n}\n\nvar NESTED_UPDATES = {\n  initialize: function () {\n    this.dirtyComponentsLength = dirtyComponents.length;\n  },\n  close: function () {\n    if (this.dirtyComponentsLength !== dirtyComponents.length) {\n      // Additional updates were enqueued by componentDidUpdate handlers or\n      // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n      // these new updates so that if A's componentDidUpdate calls setState on\n      // B, B will update before the callback A's updater provided when calling\n      // setState.\n      dirtyComponents.splice(0, this.dirtyComponentsLength);\n      flushBatchedUpdates();\n    } else {\n      dirtyComponents.length = 0;\n    }\n  }\n};\n\nvar UPDATE_QUEUEING = {\n  initialize: function () {\n    this.callbackQueue.reset();\n  },\n  close: function () {\n    this.callbackQueue.notifyAll();\n  }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n  this.reinitializeTransaction();\n  this.dirtyComponentsLength = null;\n  this.callbackQueue = CallbackQueue.getPooled();\n  this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* forceHTML */false);\n}\n\nassign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  destructor: function () {\n    this.dirtyComponentsLength = null;\n    CallbackQueue.release(this.callbackQueue);\n    this.callbackQueue = null;\n    ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n    this.reconcileTransaction = null;\n  },\n\n  perform: function (method, scope, a) {\n    // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n    // with this transaction's wrappers around it.\n    return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n  }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n  ensureInjected();\n  batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n  return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n  var len = transaction.dirtyComponentsLength;\n  !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : undefined;\n\n  // Since reconciling a component higher in the owner hierarchy usually (not\n  // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n  // them before their children by sorting the array.\n  dirtyComponents.sort(mountOrderComparator);\n\n  for (var i = 0; i < len; i++) {\n    // If a component is unmounted before pending changes apply, it will still\n    // be here, but we assume that it has cleared its _pendingCallbacks and\n    // that performUpdateIfNecessary is a noop.\n    var component = dirtyComponents[i];\n\n    // If performUpdateIfNecessary happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n    var callbacks = component._pendingCallbacks;\n    component._pendingCallbacks = null;\n\n    ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction);\n\n    if (callbacks) {\n      for (var j = 0; j < callbacks.length; j++) {\n        transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n      }\n    }\n  }\n}\n\nvar flushBatchedUpdates = function () {\n  // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n  // array and perform any updates enqueued by mount-ready handlers (i.e.,\n  // componentDidUpdate) but we need to check here too in order to catch\n  // updates enqueued by setState callbacks and asap calls.\n  while (dirtyComponents.length || asapEnqueued) {\n    if (dirtyComponents.length) {\n      var transaction = ReactUpdatesFlushTransaction.getPooled();\n      transaction.perform(runBatchedUpdates, null, transaction);\n      ReactUpdatesFlushTransaction.release(transaction);\n    }\n\n    if (asapEnqueued) {\n      asapEnqueued = false;\n      var queue = asapCallbackQueue;\n      asapCallbackQueue = CallbackQueue.getPooled();\n      queue.notifyAll();\n      CallbackQueue.release(queue);\n    }\n  }\n};\nflushBatchedUpdates = ReactPerf.measure('ReactUpdates', 'flushBatchedUpdates', flushBatchedUpdates);\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n  ensureInjected();\n\n  // Various parts of our code (such as ReactCompositeComponent's\n  // _renderValidatedComponent) assume that calls to render aren't nested;\n  // verify that that's the case. (This is called by each top-level update\n  // function, like setProps, setState, forceUpdate, etc.; creation and\n  // destruction of top-level components is guarded in ReactMount.)\n\n  if (!batchingStrategy.isBatchingUpdates) {\n    batchingStrategy.batchedUpdates(enqueueUpdate, component);\n    return;\n  }\n\n  dirtyComponents.push(component);\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n  !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : undefined;\n  asapCallbackQueue.enqueue(callback, context);\n  asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n  injectReconcileTransaction: function (ReconcileTransaction) {\n    !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : undefined;\n    ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n  },\n\n  injectBatchingStrategy: function (_batchingStrategy) {\n    !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : undefined;\n    !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : undefined;\n    !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : undefined;\n    batchingStrategy = _batchingStrategy;\n  }\n};\n\nvar ReactUpdates = {\n  /**\n   * React references `ReactReconcileTransaction` using this property in order\n   * to allow dependency injection.\n   *\n   * @internal\n   */\n  ReactReconcileTransaction: null,\n\n  batchedUpdates: batchedUpdates,\n  enqueueUpdate: enqueueUpdate,\n  flushBatchedUpdates: flushBatchedUpdates,\n  injection: ReactUpdatesInjection,\n  asap: asap\n};\n\nmodule.exports = ReactUpdates;"
    },
    {
      "id": 126,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CallbackQueue.js",
      "name": "./~/react/lib/CallbackQueue.js",
      "index": 126,
      "index2": 117,
      "size": 2436,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./CallbackQueue",
          "loc": "14:20-46"
        },
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./CallbackQueue",
          "loc": "15:20-46"
        },
        {
          "moduleId": 222,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "./~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "./~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./CallbackQueue",
          "loc": "16:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n  this._callbacks = null;\n  this._contexts = null;\n}\n\nassign(CallbackQueue.prototype, {\n\n  /**\n   * Enqueues a callback to be invoked when `notifyAll` is invoked.\n   *\n   * @param {function} callback Invoked when `notifyAll` is invoked.\n   * @param {?object} context Context to call `callback` with.\n   * @internal\n   */\n  enqueue: function (callback, context) {\n    this._callbacks = this._callbacks || [];\n    this._contexts = this._contexts || [];\n    this._callbacks.push(callback);\n    this._contexts.push(context);\n  },\n\n  /**\n   * Invokes all enqueued callbacks and clears the queue. This is invoked after\n   * the DOM representation of a component has been created or updated.\n   *\n   * @internal\n   */\n  notifyAll: function () {\n    var callbacks = this._callbacks;\n    var contexts = this._contexts;\n    if (callbacks) {\n      !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : undefined;\n      this._callbacks = null;\n      this._contexts = null;\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(contexts[i]);\n      }\n      callbacks.length = 0;\n      contexts.length = 0;\n    }\n  },\n\n  /**\n   * Resets the internal queue.\n   *\n   * @internal\n   */\n  reset: function () {\n    this._callbacks = null;\n    this._contexts = null;\n  },\n\n  /**\n   * `PooledClass` looks for this.\n   */\n  destructor: function () {\n    this.reset();\n  }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;"
    },
    {
      "id": 127,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/PooledClass.js",
      "name": "./~/react/lib/PooledClass.js",
      "index": 127,
      "index2": 116,
      "size": 3546,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        },
        {
          "moduleId": 126,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CallbackQueue.js",
          "module": "./~/react/lib/CallbackQueue.js",
          "moduleName": "./~/react/lib/CallbackQueue.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "14:18-42"
        },
        {
          "moduleId": 145,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/FallbackCompositionState.js",
          "module": "./~/react/lib/FallbackCompositionState.js",
          "moduleName": "./~/react/lib/FallbackCompositionState.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        },
        {
          "moduleId": 148,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticEvent.js",
          "module": "./~/react/lib/SyntheticEvent.js",
          "moduleName": "./~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        },
        {
          "moduleId": 181,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildren.js",
          "module": "./~/react/lib/ReactChildren.js",
          "moduleName": "./~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "14:18-42"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "17:18-42"
        },
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "16:18-42"
        },
        {
          "moduleId": 222,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "./~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "./~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, copyFieldsFrom);\n    return instance;\n  } else {\n    return new Klass(copyFieldsFrom);\n  }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2);\n    return instance;\n  } else {\n    return new Klass(a1, a2);\n  }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3);\n  }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4);\n  }\n};\n\nvar fiveArgumentPooler = function (a1, a2, a3, a4, a5) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4, a5);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4, a5);\n  }\n};\n\nvar standardReleaser = function (instance) {\n  var Klass = this;\n  !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : undefined;\n  instance.destructor();\n  if (Klass.instancePool.length < Klass.poolSize) {\n    Klass.instancePool.push(instance);\n  }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances (optional).\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n  var NewKlass = CopyConstructor;\n  NewKlass.instancePool = [];\n  NewKlass.getPooled = pooler || DEFAULT_POOLER;\n  if (!NewKlass.poolSize) {\n    NewKlass.poolSize = DEFAULT_POOL_SIZE;\n  }\n  NewKlass.release = standardReleaser;\n  return NewKlass;\n};\n\nvar PooledClass = {\n  addPoolingTo: addPoolingTo,\n  oneArgumentPooler: oneArgumentPooler,\n  twoArgumentPooler: twoArgumentPooler,\n  threeArgumentPooler: threeArgumentPooler,\n  fourArgumentPooler: fourArgumentPooler,\n  fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;"
    },
    {
      "id": 128,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/Transaction.js",
      "name": "./~/react/lib/Transaction.js",
      "index": 128,
      "index2": 118,
      "size": 9551,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 125,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactUpdates.js",
          "module": "./~/react/lib/ReactUpdates.js",
          "moduleName": "./~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "18:18-42"
        },
        {
          "moduleId": 163,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "./~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "15:18-42"
        },
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "20:18-42"
        },
        {
          "moduleId": 222,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "./~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "./~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "17:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n *                       wrappers (injected at creation time)\n *                                      +        +\n *                                      |        |\n *                    +-----------------|--------|--------------+\n *                    |                 v        |              |\n *                    |      +---------------+   |              |\n *                    |   +--|    wrapper1   |---|----+         |\n *                    |   |  +---------------+   v    |         |\n *                    |   |          +-------------+  |         |\n *                    |   |     +----|   wrapper2  |--------+   |\n *                    |   |     |    +-------------+  |     |   |\n *                    |   |     |                     |     |   |\n *                    |   v     v                     v     v   | wrapper\n *                    | +---+ +---+   +---------+   +---+ +---+ | invariants\n * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | +---+ +---+   +---------+   +---+ +---+ |\n *                    |  initialize                    close    |\n *                    +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n *   Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n *   while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n *   reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n *   content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n *   to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n *   when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n  /**\n   * Sets up this instance so that it is prepared for collecting metrics. Does\n   * so such that this setup method may be used on an instance that is already\n   * initialized, in a way that does not consume additional memory upon reuse.\n   * That can be useful if you decide to make your subclass of this mixin a\n   * \"PooledClass\".\n   */\n  reinitializeTransaction: function () {\n    this.transactionWrappers = this.getTransactionWrappers();\n    if (this.wrapperInitData) {\n      this.wrapperInitData.length = 0;\n    } else {\n      this.wrapperInitData = [];\n    }\n    this._isInTransaction = false;\n  },\n\n  _isInTransaction: false,\n\n  /**\n   * @abstract\n   * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n   */\n  getTransactionWrappers: null,\n\n  isInTransaction: function () {\n    return !!this._isInTransaction;\n  },\n\n  /**\n   * Executes the function within a safety window. Use this for the top level\n   * methods that result in large amounts of computation/mutations that would\n   * need to be safety checked. The optional arguments helps prevent the need\n   * to bind in many cases.\n   *\n   * @param {function} method Member of scope to call.\n   * @param {Object} scope Scope to invoke from.\n   * @param {Object?=} a Argument to pass to the method.\n   * @param {Object?=} b Argument to pass to the method.\n   * @param {Object?=} c Argument to pass to the method.\n   * @param {Object?=} d Argument to pass to the method.\n   * @param {Object?=} e Argument to pass to the method.\n   * @param {Object?=} f Argument to pass to the method.\n   *\n   * @return {*} Return value from `method`.\n   */\n  perform: function (method, scope, a, b, c, d, e, f) {\n    !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : undefined;\n    var errorThrown;\n    var ret;\n    try {\n      this._isInTransaction = true;\n      // Catching errors makes debugging more difficult, so we start with\n      // errorThrown set to true before setting it to false after calling\n      // close -- if it's still set to true in the finally block, it means\n      // one of these calls threw.\n      errorThrown = true;\n      this.initializeAll(0);\n      ret = method.call(scope, a, b, c, d, e, f);\n      errorThrown = false;\n    } finally {\n      try {\n        if (errorThrown) {\n          // If `method` throws, prefer to show that stack trace over any thrown\n          // by invoking `closeAll`.\n          try {\n            this.closeAll(0);\n          } catch (err) {}\n        } else {\n          // Since `method` didn't throw, we don't want to silence the exception\n          // here.\n          this.closeAll(0);\n        }\n      } finally {\n        this._isInTransaction = false;\n      }\n    }\n    return ret;\n  },\n\n  initializeAll: function (startIndex) {\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      try {\n        // Catching errors makes debugging more difficult, so we start with the\n        // OBSERVED_ERROR state before overwriting it with the real return value\n        // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n        // block, it means wrapper.initialize threw.\n        this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n        this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n      } finally {\n        if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n          // The initializer for wrapper i threw an error; initialize the\n          // remaining wrappers but silence any exceptions from them to ensure\n          // that the first error is the one to bubble up.\n          try {\n            this.initializeAll(i + 1);\n          } catch (err) {}\n        }\n      }\n    }\n  },\n\n  /**\n   * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n   * them the respective return values of `this.transactionWrappers.init[i]`\n   * (`close`rs that correspond to initializers that failed will not be\n   * invoked).\n   */\n  closeAll: function (startIndex) {\n    !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : undefined;\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      var initData = this.wrapperInitData[i];\n      var errorThrown;\n      try {\n        // Catching errors makes debugging more difficult, so we start with\n        // errorThrown set to true before setting it to false after calling\n        // close -- if it's still set to true in the finally block, it means\n        // wrapper.close threw.\n        errorThrown = true;\n        if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n          wrapper.close.call(this, initData);\n        }\n        errorThrown = false;\n      } finally {\n        if (errorThrown) {\n          // The closer for wrapper i threw an error; close the remaining\n          // wrappers but silence any exceptions from them to ensure that the\n          // first error is the one to bubble up.\n          try {\n            this.closeAll(i + 1);\n          } catch (e) {}\n        }\n      }\n    }\n    this.wrapperInitData.length = 0;\n  }\n};\n\nvar Transaction = {\n\n  Mixin: Mixin,\n\n  /**\n   * Token to look for to determine if an error occurred.\n   */\n  OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;"
    },
    {
      "id": 129,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/emptyObject.js",
      "name": "./~/fbjs/lib/emptyObject.js",
      "index": 129,
      "index2": 121,
      "size": 482,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "29:18-49"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "25:18-49"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "21:18-49"
        },
        {
          "moduleId": 194,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
          "module": "./~/react/lib/ReactComponent.js",
          "moduleName": "./~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "17:18-49"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "22:18-49"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;"
    },
    {
      "id": 130,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/containsNode.js",
      "name": "./~/fbjs/lib/containsNode.js",
      "index": 130,
      "index2": 124,
      "size": 1432,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/containsNode",
          "loc": "30:19-51"
        },
        {
          "moduleId": 197,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInputSelection.js",
          "module": "./~/react/lib/ReactInputSelection.js",
          "moduleName": "./~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/containsNode",
          "loc": "16:19-51"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule containsNode\n * @typechecks\n */\n\n'use strict';\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n *\n * @param {?DOMNode} outerNode Outer DOM node.\n * @param {?DOMNode} innerNode Inner DOM node.\n * @return {boolean} True if `outerNode` contains or is `innerNode`.\n */\nfunction containsNode(_x, _x2) {\n  var _again = true;\n\n  _function: while (_again) {\n    var outerNode = _x,\n        innerNode = _x2;\n    _again = false;\n\n    if (!outerNode || !innerNode) {\n      return false;\n    } else if (outerNode === innerNode) {\n      return true;\n    } else if (isTextNode(outerNode)) {\n      return false;\n    } else if (isTextNode(innerNode)) {\n      _x = outerNode;\n      _x2 = innerNode.parentNode;\n      _again = true;\n      continue _function;\n    } else if (outerNode.contains) {\n      return outerNode.contains(innerNode);\n    } else if (outerNode.compareDocumentPosition) {\n      return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n    } else {\n      return false;\n    }\n  }\n}\n\nmodule.exports = containsNode;"
    },
    {
      "id": 131,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/isTextNode.js",
      "name": "./~/fbjs/lib/isTextNode.js",
      "index": 131,
      "index2": 123,
      "size": 628,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/containsNode.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 130,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/containsNode.js",
          "module": "./~/fbjs/lib/containsNode.js",
          "moduleName": "./~/fbjs/lib/containsNode.js",
          "type": "cjs require",
          "userRequest": "./isTextNode",
          "loc": "15:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextNode\n * @typechecks\n */\n\n'use strict';\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;"
    },
    {
      "id": 132,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/isNode.js",
      "name": "./~/fbjs/lib/isNode.js",
      "index": 132,
      "index2": 122,
      "size": 712,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/isTextNode.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 131,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/isTextNode.js",
          "module": "./~/fbjs/lib/isTextNode.js",
          "moduleName": "./~/fbjs/lib/isTextNode.js",
          "type": "cjs require",
          "userRequest": "./isNode",
          "loc": "15:13-32"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isNode\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\n'use strict';\n\nfunction isNode(object) {\n  return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;"
    },
    {
      "id": 133,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
      "name": "./~/react/lib/instantiateReactComponent.js",
      "index": 133,
      "index2": 132,
      "size": 4520,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./instantiateReactComponent",
          "loc": "31:32-70"
        },
        {
          "moduleId": 186,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildReconciler.js",
          "module": "./~/react/lib/ReactChildReconciler.js",
          "moduleName": "./~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./instantiateReactComponent",
          "loc": "17:32-70"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./instantiateReactComponent",
          "loc": "23:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactNativeComponent = require('./ReactNativeComponent');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function () {};\nassign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n  _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n  return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node) {\n  var instance;\n\n  if (node === null || node === false) {\n    instance = new ReactEmptyComponent(instantiateReactComponent);\n  } else if (typeof node === 'object') {\n    var element = node;\n    !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) ' + 'or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : invariant(false) : undefined;\n\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = ReactNativeComponent.createInternalComponent(element);\n    } else if (isInternalComponentType(element.type)) {\n      // This is temporarily available for custom components that are not string\n      // representations. I.e. ART. Once those are updated to use the string\n      // representation, we can drop this code path.\n      instance = new element.type(element);\n    } else {\n      instance = new ReactCompositeComponentWrapper();\n    }\n  } else if (typeof node === 'string' || typeof node === 'number') {\n    instance = ReactNativeComponent.createInstanceForText(node);\n  } else {\n    !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : invariant(false) : undefined;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(typeof instance.construct === 'function' && typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : undefined;\n  }\n\n  // Sets up the instance. This can probably just move into the constructor now.\n  instance.construct(node);\n\n  // These two fields are used by the DOM and ART diffing algorithms\n  // respectively. Instead of using expandos on components, we should be\n  // storing the state needed by the diffing algorithms elsewhere.\n  instance._mountIndex = 0;\n  instance._mountImage = null;\n\n  if (process.env.NODE_ENV !== 'production') {\n    instance._isOwnerNecessary = false;\n    instance._warnedAboutRefsInRender = false;\n  }\n\n  // Internal instances should fully constructed at this point, so they should\n  // not get any new fields added to them at this point.\n  if (process.env.NODE_ENV !== 'production') {\n    if (Object.preventExtensions) {\n      Object.preventExtensions(instance);\n    }\n  }\n\n  return instance;\n}\n\nmodule.exports = instantiateReactComponent;"
    },
    {
      "id": 134,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
      "name": "./~/react/lib/ReactCompositeComponent.js",
      "index": 134,
      "index2": 129,
      "size": 27473,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 133,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
          "module": "./~/react/lib/instantiateReactComponent.js",
          "moduleName": "./~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactCompositeComponent",
          "loc": "15:30-66"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactPerf = require('./ReactPerf');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum(component) {\n  var owner = component._currentElement._owner || null;\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n  var Component = ReactInstanceMap.get(this)._currentElement.type;\n  return Component(this.props, this.context, this.updater);\n};\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n *   - componentWillMount\n *   - render\n *   - [children's constructors]\n *     - [children's componentWillMount and render]\n *     - [children's componentDidMount]\n *     - componentDidMount\n *\n *       Update Phases:\n *       - componentWillReceiveProps (only called if parent updated)\n *       - shouldComponentUpdate\n *         - componentWillUpdate\n *           - render\n *           - [children's constructors or receive props phases]\n *         - componentDidUpdate\n *\n *     - componentWillUnmount\n *     - [children's componentWillUnmount]\n *   - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n  /**\n   * Base constructor for all composite component.\n   *\n   * @param {ReactElement} element\n   * @final\n   * @internal\n   */\n  construct: function (element) {\n    this._currentElement = element;\n    this._rootNodeID = null;\n    this._instance = null;\n\n    // See ReactUpdateQueue\n    this._pendingElement = null;\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    this._renderedComponent = null;\n\n    this._context = null;\n    this._mountOrder = 0;\n    this._topLevelWrapper = null;\n\n    // See ReactUpdates and ReactUpdateQueue.\n    this._pendingCallbacks = null;\n  },\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (rootID, transaction, context) {\n    this._context = context;\n    this._mountOrder = nextMountID++;\n    this._rootNodeID = rootID;\n\n    var publicProps = this._processProps(this._currentElement.props);\n    var publicContext = this._processContext(context);\n\n    var Component = this._currentElement.type;\n\n    // Initialize the public class\n    var inst;\n    var renderedElement;\n\n    // This is a way to detect if Component is a stateless arrow function\n    // component, which is not newable. It might not be 100% reliable but is\n    // something we can do until we start detecting that Component extends\n    // React.Component. We already assume that typeof Component === 'function'.\n    var canInstantiate = ('prototype' in Component);\n\n    if (canInstantiate) {\n      if (process.env.NODE_ENV !== 'production') {\n        ReactCurrentOwner.current = this;\n        try {\n          inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n        } finally {\n          ReactCurrentOwner.current = null;\n        }\n      } else {\n        inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n      }\n    }\n\n    if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) {\n      renderedElement = inst;\n      inst = new StatelessComponent(Component);\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw later in _renderValidatedComponent, but add an early\n      // warning now to help debugging\n      if (inst.render == null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`, returned ' + 'null/false from a stateless component, or tried to render an ' + 'element whose type is a function that isn\\'t a React component.', Component.displayName || Component.name || 'Component') : undefined;\n      } else {\n        // We support ES6 inheriting from React.Component, the module pattern,\n        // and stateless components, but not ES6 classes that don't extend\n        process.env.NODE_ENV !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined;\n      }\n    }\n\n    // These should be set up in the constructor, but as a convenience for\n    // simpler class abstractions, we set them up after the fact.\n    inst.props = publicProps;\n    inst.context = publicContext;\n    inst.refs = emptyObject;\n    inst.updater = ReactUpdateQueue;\n\n    this._instance = inst;\n\n    // Store a reference from the instance back to the internal representation\n    ReactInstanceMap.set(inst, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Since plain JS classes are defined without any special initialization\n      // logic, we can not catch common errors early. Therefore, we have to\n      // catch them here, at initialization time, instead.\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined;\n    }\n\n    var initialState = inst.state;\n    if (initialState === undefined) {\n      inst.state = initialState = null;\n    }\n    !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    if (inst.componentWillMount) {\n      inst.componentWillMount();\n      // When mounting, calls to `setState` by `componentWillMount` will set\n      // `this._pendingStateQueue` without triggering a re-render.\n      if (this._pendingStateQueue) {\n        inst.state = this._processPendingState(inst.props, inst.context);\n      }\n    }\n\n    // If not a stateless component, we now render\n    if (renderedElement === undefined) {\n      renderedElement = this._renderValidatedComponent();\n    }\n\n    this._renderedComponent = this._instantiateReactComponent(renderedElement);\n\n    var markup = ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, this._processChildContext(context));\n    if (inst.componentDidMount) {\n      transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n    }\n\n    return markup;\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function () {\n    var inst = this._instance;\n\n    if (inst.componentWillUnmount) {\n      inst.componentWillUnmount();\n    }\n\n    ReactReconciler.unmountComponent(this._renderedComponent);\n    this._renderedComponent = null;\n    this._instance = null;\n\n    // Reset pending fields\n    // Even if this component is scheduled for another update in ReactUpdates,\n    // it would still be ignored because these fields are reset.\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n    this._pendingCallbacks = null;\n    this._pendingElement = null;\n\n    // These fields do not really need to be reset since this object is no\n    // longer accessible.\n    this._context = null;\n    this._rootNodeID = null;\n    this._topLevelWrapper = null;\n\n    // Delete the reference from the instance to this internal representation\n    // which allow the internals to be properly cleaned up even if the user\n    // leaks a reference to the public instance.\n    ReactInstanceMap.remove(inst);\n\n    // Some existing components rely on inst.props even after they've been\n    // destroyed (in event handlers).\n    // TODO: inst.props = null;\n    // TODO: inst.state = null;\n    // TODO: inst.context = null;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _maskContext: function (context) {\n    var maskedContext = null;\n    var Component = this._currentElement.type;\n    var contextTypes = Component.contextTypes;\n    if (!contextTypes) {\n      return emptyObject;\n    }\n    maskedContext = {};\n    for (var contextName in contextTypes) {\n      maskedContext[contextName] = context[contextName];\n    }\n    return maskedContext;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`, and asserts that they are valid.\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _processContext: function (context) {\n    var maskedContext = this._maskContext(context);\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.contextTypes) {\n        this._checkPropTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n      }\n    }\n    return maskedContext;\n  },\n\n  /**\n   * @param {object} currentContext\n   * @return {object}\n   * @private\n   */\n  _processChildContext: function (currentContext) {\n    var Component = this._currentElement.type;\n    var inst = this._instance;\n    var childContext = inst.getChildContext && inst.getChildContext();\n    if (childContext) {\n      !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n      if (process.env.NODE_ENV !== 'production') {\n        this._checkPropTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n      }\n      for (var name in childContext) {\n        !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : invariant(false) : undefined;\n      }\n      return assign({}, currentContext, childContext);\n    }\n    return currentContext;\n  },\n\n  /**\n   * Processes props by setting default values for unspecified props and\n   * asserting that the props are valid. Does not mutate its argument; returns\n   * a new props object with defaults merged in.\n   *\n   * @param {object} newProps\n   * @return {object}\n   * @private\n   */\n  _processProps: function (newProps) {\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.propTypes) {\n        this._checkPropTypes(Component.propTypes, newProps, ReactPropTypeLocations.prop);\n      }\n    }\n    return newProps;\n  },\n\n  /**\n   * Assert that the props are valid\n   *\n   * @param {object} propTypes Map of prop name to a ReactPropType\n   * @param {object} props\n   * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n   * @private\n   */\n  _checkPropTypes: function (propTypes, props, location) {\n    // TODO: Stop validating prop types here and only use the element\n    // validation.\n    var componentName = this.getName();\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error;\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n          error = propTypes[propName](props, propName, componentName, location);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error instanceof Error) {\n          // We may want to extend this logic for similar errors in\n          // top-level render calls, so I'm abstracting it away into\n          // a function to minimize refactoring in the future\n          var addendum = getDeclarationErrorAddendum(this);\n\n          if (location === ReactPropTypeLocations.prop) {\n            // Preface gives us something to blacklist in warning module\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Composite propType: %s%s', error.message, addendum) : undefined;\n          } else {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Context Types: %s%s', error.message, addendum) : undefined;\n          }\n        }\n      }\n    }\n  },\n\n  receiveComponent: function (nextElement, transaction, nextContext) {\n    var prevElement = this._currentElement;\n    var prevContext = this._context;\n\n    this._pendingElement = null;\n\n    this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n  },\n\n  /**\n   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n   * is set, update the component.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (transaction) {\n    if (this._pendingElement != null) {\n      ReactReconciler.receiveComponent(this, this._pendingElement || this._currentElement, transaction, this._context);\n    }\n\n    if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n      this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n    }\n  },\n\n  /**\n   * Perform an update to a mounted component. The componentWillReceiveProps and\n   * shouldComponentUpdate methods are called, then (assuming the update isn't\n   * skipped) the remaining update lifecycle methods are called and the DOM\n   * representation is updated.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevParentElement\n   * @param {ReactElement} nextParentElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n    var inst = this._instance;\n\n    var nextContext = this._context === nextUnmaskedContext ? inst.context : this._processContext(nextUnmaskedContext);\n    var nextProps;\n\n    // Distinguish between a props update versus a simple state update\n    if (prevParentElement === nextParentElement) {\n      // Skip checking prop types again -- we don't read inst.props to avoid\n      // warning for DOM component props in this upgrade\n      nextProps = nextParentElement.props;\n    } else {\n      nextProps = this._processProps(nextParentElement.props);\n      // An update here will schedule an update but immediately set\n      // _pendingStateQueue which will ensure that any state updates gets\n      // immediately reconciled instead of waiting for the next batch.\n\n      if (inst.componentWillReceiveProps) {\n        inst.componentWillReceiveProps(nextProps, nextContext);\n      }\n    }\n\n    var nextState = this._processPendingState(nextProps, nextContext);\n\n    var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : undefined;\n    }\n\n    if (shouldUpdate) {\n      this._pendingForceUpdate = false;\n      // Will set `this.props`, `this.state` and `this.context`.\n      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n    } else {\n      // If it's determined that a component should not update, we still want\n      // to set props and state but we shortcut the rest of the update.\n      this._currentElement = nextParentElement;\n      this._context = nextUnmaskedContext;\n      inst.props = nextProps;\n      inst.state = nextState;\n      inst.context = nextContext;\n    }\n  },\n\n  _processPendingState: function (props, context) {\n    var inst = this._instance;\n    var queue = this._pendingStateQueue;\n    var replace = this._pendingReplaceState;\n    this._pendingReplaceState = false;\n    this._pendingStateQueue = null;\n\n    if (!queue) {\n      return inst.state;\n    }\n\n    if (replace && queue.length === 1) {\n      return queue[0];\n    }\n\n    var nextState = assign({}, replace ? queue[0] : inst.state);\n    for (var i = replace ? 1 : 0; i < queue.length; i++) {\n      var partial = queue[i];\n      assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n    }\n\n    return nextState;\n  },\n\n  /**\n   * Merges new props and state, notifies delegate methods of update and\n   * performs update.\n   *\n   * @param {ReactElement} nextElement Next element\n   * @param {object} nextProps Next public object to set as properties.\n   * @param {?object} nextState Next object to set as state.\n   * @param {?object} nextContext Next public object to set as context.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?object} unmaskedContext\n   * @private\n   */\n  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n    var inst = this._instance;\n\n    var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n    var prevProps;\n    var prevState;\n    var prevContext;\n    if (hasComponentDidUpdate) {\n      prevProps = inst.props;\n      prevState = inst.state;\n      prevContext = inst.context;\n    }\n\n    if (inst.componentWillUpdate) {\n      inst.componentWillUpdate(nextProps, nextState, nextContext);\n    }\n\n    this._currentElement = nextElement;\n    this._context = unmaskedContext;\n    inst.props = nextProps;\n    inst.state = nextState;\n    inst.context = nextContext;\n\n    this._updateRenderedComponent(transaction, unmaskedContext);\n\n    if (hasComponentDidUpdate) {\n      transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n    }\n  },\n\n  /**\n   * Call the component's `render` method and update the DOM accordingly.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  _updateRenderedComponent: function (transaction, context) {\n    var prevComponentInstance = this._renderedComponent;\n    var prevRenderedElement = prevComponentInstance._currentElement;\n    var nextRenderedElement = this._renderValidatedComponent();\n    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n      ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n    } else {\n      // These two IDs are actually the same! But nothing should rely on that.\n      var thisID = this._rootNodeID;\n      var prevComponentID = prevComponentInstance._rootNodeID;\n      ReactReconciler.unmountComponent(prevComponentInstance);\n\n      this._renderedComponent = this._instantiateReactComponent(nextRenderedElement);\n      var nextMarkup = ReactReconciler.mountComponent(this._renderedComponent, thisID, transaction, this._processChildContext(context));\n      this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n    }\n  },\n\n  /**\n   * @protected\n   */\n  _replaceNodeWithMarkupByID: function (prevComponentID, nextMarkup) {\n    ReactComponentEnvironment.replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n  },\n\n  /**\n   * @protected\n   */\n  _renderValidatedComponentWithoutOwnerOrContext: function () {\n    var inst = this._instance;\n    var renderedComponent = inst.render();\n    if (process.env.NODE_ENV !== 'production') {\n      // We allow auto-mocks to proceed as if they're returning null.\n      if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) {\n        // This is probably bad practice. Consider warning here and\n        // deprecating this convenience.\n        renderedComponent = null;\n      }\n    }\n\n    return renderedComponent;\n  },\n\n  /**\n   * @private\n   */\n  _renderValidatedComponent: function () {\n    var renderedComponent;\n    ReactCurrentOwner.current = this;\n    try {\n      renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n    } finally {\n      ReactCurrentOwner.current = null;\n    }\n    !(\n    // TODO: An `isValidNode` function would probably be more appropriate\n    renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n    return renderedComponent;\n  },\n\n  /**\n   * Lazily allocates the refs object and stores `component` as `ref`.\n   *\n   * @param {string} ref Reference name.\n   * @param {component} component Component to store as `ref`.\n   * @final\n   * @private\n   */\n  attachRef: function (ref, component) {\n    var inst = this.getPublicInstance();\n    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined;\n    var publicComponentInstance = component.getPublicInstance();\n    if (process.env.NODE_ENV !== 'production') {\n      var componentName = component && component.getName ? component.getName() : 'a component';\n      process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined;\n    }\n    var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n    refs[ref] = publicComponentInstance;\n  },\n\n  /**\n   * Detaches a reference name.\n   *\n   * @param {string} ref Name to dereference.\n   * @final\n   * @private\n   */\n  detachRef: function (ref) {\n    var refs = this.getPublicInstance().refs;\n    delete refs[ref];\n  },\n\n  /**\n   * Get a text description of the component that can be used to identify it\n   * in error messages.\n   * @return {string} The name or null.\n   * @internal\n   */\n  getName: function () {\n    var type = this._currentElement.type;\n    var constructor = this._instance && this._instance.constructor;\n    return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n  },\n\n  /**\n   * Get the publicly accessible representation of this component - i.e. what\n   * is exposed by refs and returned by render. Can be null for stateless\n   * components.\n   *\n   * @return {ReactComponent} the public component instance.\n   * @internal\n   */\n  getPublicInstance: function () {\n    var inst = this._instance;\n    if (inst instanceof StatelessComponent) {\n      return null;\n    }\n    return inst;\n  },\n\n  // Stub\n  _instantiateReactComponent: null\n\n};\n\nReactPerf.measureMethods(ReactCompositeComponentMixin, 'ReactCompositeComponent', {\n  mountComponent: 'mountComponent',\n  updateComponent: 'updateComponent',\n  _renderValidatedComponent: '_renderValidatedComponent'\n});\n\nvar ReactCompositeComponent = {\n\n  Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;"
    },
    {
      "id": 135,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponentEnvironment.js",
      "name": "./~/react/lib/ReactComponentEnvironment.js",
      "index": 135,
      "index2": 125,
      "size": 1671,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentEnvironment",
          "loc": "14:32-70"
        },
        {
          "moduleId": 185,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
          "module": "./~/react/lib/ReactMultiChild.js",
          "moduleName": "./~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentEnvironment",
          "loc": "15:32-70"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentEnvironment",
          "loc": "16:32-70"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n  /**\n   * Optionally injectable environment dependent cleanup hook. (server vs.\n   * browser etc). Example: A browser system caches DOM nodes based on component\n   * ID and must remove that cache entry when this instance is unmounted.\n   */\n  unmountIDFromEnvironment: null,\n\n  /**\n   * Optionally injectable hook for swapping out mount images in the middle of\n   * the tree.\n   */\n  replaceNodeWithMarkupByID: null,\n\n  /**\n   * Optionally injectable hook for processing a queue of child updates. Will\n   * later move into MultiChildComponents.\n   */\n  processChildrenUpdates: null,\n\n  injection: {\n    injectEnvironment: function (environment) {\n      !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : invariant(false) : undefined;\n      ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment;\n      ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID;\n      ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n      injected = true;\n    }\n  }\n\n};\n\nmodule.exports = ReactComponentEnvironment;"
    },
    {
      "id": 136,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypeLocations.js",
      "name": "./~/react/lib/ReactPropTypeLocations.js",
      "index": 136,
      "index2": 126,
      "size": 549,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "19:29-64"
        },
        {
          "moduleId": 177,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/LinkedValueUtils.js",
          "module": "./~/react/lib/LinkedValueUtils.js",
          "moduleName": "./~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "16:29-64"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "16:29-64"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "22:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar ReactPropTypeLocations = keyMirror({\n  prop: null,\n  context: null,\n  childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;"
    },
    {
      "id": 137,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypeLocationNames.js",
      "name": "./~/react/lib/ReactPropTypeLocationNames.js",
      "index": 137,
      "index2": 127,
      "size": 611,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "20:33-72"
        },
        {
          "moduleId": 178,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypes.js",
          "module": "./~/react/lib/ReactPropTypes.js",
          "moduleName": "./~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "15:33-72"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "17:33-72"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "23:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  ReactPropTypeLocationNames = {\n    prop: 'prop',\n    context: 'context',\n    childContext: 'child context'\n  };\n}\n\nmodule.exports = ReactPropTypeLocationNames;"
    },
    {
      "id": 138,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/shouldUpdateReactComponent.js",
      "name": "./~/react/lib/shouldUpdateReactComponent.js",
      "index": 138,
      "index2": 128,
      "size": 1488,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./shouldUpdateReactComponent",
          "loc": "34:33-72"
        },
        {
          "moduleId": 134,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "./~/react/lib/ReactCompositeComponent.js",
          "moduleName": "./~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./shouldUpdateReactComponent",
          "loc": "27:33-72"
        },
        {
          "moduleId": 186,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildReconciler.js",
          "module": "./~/react/lib/ReactChildReconciler.js",
          "moduleName": "./~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./shouldUpdateReactComponent",
          "loc": "18:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement;\n  var nextType = typeof nextElement;\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n  return false;\n}\n\nmodule.exports = shouldUpdateReactComponent;"
    },
    {
      "id": 139,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEmptyComponent.js",
      "name": "./~/react/lib/ReactEmptyComponent.js",
      "index": 139,
      "index2": 130,
      "size": 1678,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 133,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
          "module": "./~/react/lib/instantiateReactComponent.js",
          "moduleName": "./~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponent",
          "loc": "16:26-58"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponent",
          "loc": "18:26-58"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactEmptyComponentRegistry = require('./ReactEmptyComponentRegistry');\nvar ReactReconciler = require('./ReactReconciler');\n\nvar assign = require('./Object.assign');\n\nvar placeholderElement;\n\nvar ReactEmptyComponentInjection = {\n  injectEmptyComponent: function (component) {\n    placeholderElement = ReactElement.createElement(component);\n  }\n};\n\nvar ReactEmptyComponent = function (instantiate) {\n  this._currentElement = null;\n  this._rootNodeID = null;\n  this._renderedComponent = instantiate(placeholderElement);\n};\nassign(ReactEmptyComponent.prototype, {\n  construct: function (element) {},\n  mountComponent: function (rootID, transaction, context) {\n    ReactEmptyComponentRegistry.registerNullComponentID(rootID);\n    this._rootNodeID = rootID;\n    return ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, context);\n  },\n  receiveComponent: function () {},\n  unmountComponent: function (rootID, transaction, context) {\n    ReactReconciler.unmountComponent(this._renderedComponent);\n    ReactEmptyComponentRegistry.deregisterNullComponentID(this._rootNodeID);\n    this._rootNodeID = null;\n    this._renderedComponent = null;\n  }\n});\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;"
    },
    {
      "id": 140,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactNativeComponent.js",
      "name": "./~/react/lib/ReactNativeComponent.js",
      "index": 140,
      "index2": 131,
      "size": 3020,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 133,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/instantiateReactComponent.js",
          "module": "./~/react/lib/instantiateReactComponent.js",
          "moduleName": "./~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactNativeComponent",
          "loc": "17:27-60"
        },
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactNativeComponent",
          "loc": "20:27-60"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNativeComponent\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar autoGenerateWrapperClass = null;\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around native tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactNativeComponentInjection = {\n  // This accepts a class that receives the tag string. This is a catch all\n  // that can render any kind of tag.\n  injectGenericComponentClass: function (componentClass) {\n    genericComponentClass = componentClass;\n  },\n  // This accepts a text component class that takes the text string to be\n  // rendered as props.\n  injectTextComponentClass: function (componentClass) {\n    textComponentClass = componentClass;\n  },\n  // This accepts a keyed object with classes as values. Each key represents a\n  // tag. That particular tag will use this class instead of the generic one.\n  injectComponentClasses: function (componentClasses) {\n    assign(tagToComponentClass, componentClasses);\n  }\n};\n\n/**\n * Get a composite component wrapper class for a specific tag.\n *\n * @param {ReactElement} element The tag for which to get the class.\n * @return {function} The React class constructor function.\n */\nfunction getComponentClassForElement(element) {\n  if (typeof element.type === 'function') {\n    return element.type;\n  }\n  var tag = element.type;\n  var componentClass = tagToComponentClass[tag];\n  if (componentClass == null) {\n    tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag);\n  }\n  return componentClass;\n}\n\n/**\n * Get a native internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n  !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : undefined;\n  return new genericComponentClass(element.type, element.props);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n  return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n  return component instanceof textComponentClass;\n}\n\nvar ReactNativeComponent = {\n  getComponentClassForElement: getComponentClassForElement,\n  createInternalComponent: createInternalComponent,\n  createInstanceForText: createInstanceForText,\n  isTextComponent: isTextComponent,\n  injection: ReactNativeComponentInjection\n};\n\nmodule.exports = ReactNativeComponent;"
    },
    {
      "id": 141,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/validateDOMNesting.js",
      "name": "./~/react/lib/validateDOMNesting.js",
      "index": 141,
      "index2": 133,
      "size": 13117,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 77,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "./~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "./~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./validateDOMNesting",
          "loc": "23:25-56"
        },
        {
          "moduleId": 99,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMount.js",
          "module": "./~/react/lib/ReactMount.js",
          "moduleName": "./~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./validateDOMNesting",
          "loc": "35:25-56"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./validateDOMNesting",
          "loc": "43:25-56"
        }
      ],
      "source": "/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n  var buttonScopeTags = inScopeTags.concat(['button']);\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n  var emptyAncestorInfo = {\n    parentTag: null,\n\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  var updatedAncestorInfo = function (oldInfo, tag, instance) {\n    var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo);\n    var info = { tag: tag, instance: instance };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    }\n\n    // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.parentTag = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n\n  /**\n   * Returns whether\n   */\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n      case 'option':\n        return tag === '#text';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n      case 'html':\n        return tag === 'head' || tag === 'body';\n    }\n\n    // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frame':\n      case 'head':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n\n      case 'pre':\n      case 'listing':\n\n      case 'table':\n\n      case 'hr':\n\n      case 'xmp':\n\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  /**\n   * Given a ReactCompositeComponent instance, return a list of its recursive\n   * owners, starting at the root and ending with the instance itself.\n   */\n  var findOwnerStack = function (instance) {\n    if (!instance) {\n      return [];\n    }\n\n    var stack = [];\n    /*eslint-disable space-after-keywords */\n    do {\n      /*eslint-enable space-after-keywords */\n      stack.push(instance);\n    } while (instance = instance._currentElement._owner);\n    stack.reverse();\n    return stack;\n  };\n\n  var didWarn = {};\n\n  validateDOMNesting = function (childTag, childInstance, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.parentTag;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var problematic = invalidParent || invalidAncestor;\n\n    if (problematic) {\n      var ancestorTag = problematic.tag;\n      var ancestorInstance = problematic.instance;\n\n      var childOwner = childInstance && childInstance._currentElement._owner;\n      var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n      var childOwners = findOwnerStack(childOwner);\n      var ancestorOwners = findOwnerStack(ancestorOwner);\n\n      var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n      var i;\n\n      var deepestCommon = -1;\n      for (i = 0; i < minStackLen; i++) {\n        if (childOwners[i] === ancestorOwners[i]) {\n          deepestCommon = i;\n        } else {\n          break;\n        }\n      }\n\n      var UNKNOWN = '(unknown)';\n      var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ownerInfo = [].concat(\n      // If the parent and child instances have a common owner ancestor, start\n      // with that -- otherwise we just start with the parent's owners.\n      deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n      // If we're warning about an invalid (non-parent) ancestry, add '...'\n      invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n      var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n      if (didWarn[warnKey]) {\n        return;\n      }\n      didWarn[warnKey] = true;\n\n      if (invalidParent) {\n        var info = '';\n        if (ancestorTag === 'table' && childTag === 'tr') {\n          info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n        }\n        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a child of <%s>. ' + 'See %s.%s', childTag, ancestorTag, ownerInfo, info) : undefined;\n      } else {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a descendant of ' + '<%s>. See %s.', childTag, ancestorTag, ownerInfo) : undefined;\n      }\n    }\n  };\n\n  validateDOMNesting.ancestorInfoContextKey = '__validateDOMNesting_ancestorInfo$' + Math.random().toString(36).slice(2);\n\n  validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n  // For testing\n  validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.parentTag;\n    var parentTag = parentInfo && parentInfo.tag;\n    return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n  };\n}\n\nmodule.exports = validateDOMNesting;"
    },
    {
      "id": 142,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "name": "./~/react/lib/ReactDefaultInjection.js",
      "index": 142,
      "index2": 212,
      "size": 3986,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultInjection",
          "loc": "18:28-62"
        },
        {
          "moduleId": 219,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMServer.js",
          "module": "./~/react/lib/ReactDOMServer.js",
          "moduleName": "./~/react/lib/ReactDOMServer.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultInjection",
          "loc": "14:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar ClientReactRootIndex = require('./ClientReactRootIndex');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactBrowserComponentMixin = require('./ReactBrowserComponentMixin');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar ServerReactRootIndex = require('./ServerReactRootIndex');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n  if (alreadyInjected) {\n    // TODO: This is currently true because these injections are shared between\n    // the client and the server package. They should be built independently\n    // and not share any injection state. Then this problem will be solved.\n    return;\n  }\n  alreadyInjected = true;\n\n  ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n  /**\n   * Inject modules for resolving DOM hierarchy and plugin ordering.\n   */\n  ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n  ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);\n  ReactInjection.EventPluginHub.injectMount(ReactMount);\n\n  /**\n   * Some important event plugins included by default (without having to require\n   * them).\n   */\n  ReactInjection.EventPluginHub.injectEventPluginsByName({\n    SimpleEventPlugin: SimpleEventPlugin,\n    EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n    ChangeEventPlugin: ChangeEventPlugin,\n    SelectEventPlugin: SelectEventPlugin,\n    BeforeInputEventPlugin: BeforeInputEventPlugin\n  });\n\n  ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent);\n\n  ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n  ReactInjection.Class.injectMixin(ReactBrowserComponentMixin);\n\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n  ReactInjection.EmptyComponent.injectEmptyComponent('noscript');\n\n  ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n  ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n  ReactInjection.RootIndex.injectCreateReactRootIndex(ExecutionEnvironment.canUseDOM ? ClientReactRootIndex.createReactRootIndex : ServerReactRootIndex.createReactRootIndex);\n\n  ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n\n  if (process.env.NODE_ENV !== 'production') {\n    var url = ExecutionEnvironment.canUseDOM && window.location.href || '';\n    if (/[?&]react_perf\\b/.test(url)) {\n      var ReactDefaultPerf = require('./ReactDefaultPerf');\n      ReactDefaultPerf.start();\n    }\n  }\n}\n\nmodule.exports = {\n  inject: inject\n};"
    },
    {
      "id": 143,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "name": "./~/react/lib/BeforeInputEventPlugin.js",
      "index": 143,
      "index2": 145,
      "size": 14866,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./BeforeInputEventPlugin",
          "loc": "14:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n  var opera = window.opera;\n  return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBeforeInput: null }),\n      captured: keyOf({ onBeforeInputCapture: null })\n    },\n    dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionEnd: null }),\n      captured: keyOf({ onCompositionEndCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionStart: null }),\n      captured: keyOf({ onCompositionStartCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionUpdate: null }),\n      captured: keyOf({ onCompositionUpdateCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n  // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionStart:\n      return eventTypes.compositionStart;\n    case topLevelTypes.topCompositionEnd:\n      return eventTypes.compositionEnd;\n    case topLevelTypes.topCompositionUpdate:\n      return eventTypes.compositionUpdate;\n  }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topKeyUp:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n    case topLevelTypes.topKeyDown:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n    case topLevelTypes.topKeyPress:\n    case topLevelTypes.topMouseDown:\n    case topLevelTypes.topBlur:\n      // Events are not possible without cancelling IME.\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n  return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n  var eventType;\n  var fallbackData;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!currentComposition) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!currentComposition && eventType === eventTypes.compositionStart) {\n      currentComposition = FallbackCompositionState.getPooled(topLevelTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (currentComposition) {\n        fallbackData = currentComposition.getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionEnd:\n      return getDataFromCustomEvent(nativeEvent);\n    case topLevelTypes.topKeyPress:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case topLevelTypes.topTextInput:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data;\n\n      // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to blacklist it.\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  if (currentComposition) {\n    if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = currentComposition.getData();\n      FallbackCompositionState.release(currentComposition);\n      currentComposition = null;\n      return chars;\n    }\n    return null;\n  }\n\n  switch (topLevelType) {\n    case topLevelTypes.topPaste:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n    case topLevelTypes.topKeyPress:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n        return String.fromCharCode(nativeEvent.which);\n      }\n      return null;\n    case topLevelTypes.topCompositionEnd:\n      return useFallbackCompositionData ? null : nativeEvent.data;\n    default:\n      return null;\n  }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n  var chars;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  }\n\n  // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n  event.data = chars;\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    return [extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget)];\n  }\n};\n\nmodule.exports = BeforeInputEventPlugin;"
    },
    {
      "id": 144,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EventPropagators.js",
      "name": "./~/react/lib/EventPropagators.js",
      "index": 144,
      "index2": 138,
      "size": 5224,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        },
        {
          "moduleId": 156,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "./~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "./~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "15:23-52"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\n\nvar warning = require('fbjs/lib/warning');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(id, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(id, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(domID, upwards, event) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(domID, 'Dispatching id must not be null') : undefined;\n  }\n  var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n  var listener = listenerAtPhase(domID, event, phase);\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);\n  }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(event.dispatchMarker, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginHub.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(event.dispatchMarker, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(id, ignoredDirection, event) {\n  if (event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(id, registrationName);\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchIDs = accumulateInto(event._dispatchIDs, id);\n    }\n  }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event.dispatchMarker, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, fromID, toID) {\n  EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(fromID, toID, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n  accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n  accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n  accumulateDirectDispatches: accumulateDirectDispatches,\n  accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;"
    },
    {
      "id": 145,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/FallbackCompositionState.js",
      "name": "./~/react/lib/FallbackCompositionState.js",
      "index": 145,
      "index2": 140,
      "size": 2493,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./FallbackCompositionState",
          "loc": "18:31-68"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n  this._root = root;\n  this._startText = this.getText();\n  this._fallbackText = null;\n}\n\nassign(FallbackCompositionState.prototype, {\n  destructor: function () {\n    this._root = null;\n    this._startText = null;\n    this._fallbackText = null;\n  },\n\n  /**\n   * Get current text of input.\n   *\n   * @return {string}\n   */\n  getText: function () {\n    if ('value' in this._root) {\n      return this._root.value;\n    }\n    return this._root[getTextContentAccessor()];\n  },\n\n  /**\n   * Determine the differing substring between the initially stored\n   * text content and the current content.\n   *\n   * @return {string}\n   */\n  getData: function () {\n    if (this._fallbackText) {\n      return this._fallbackText;\n    }\n\n    var start;\n    var startValue = this._startText;\n    var startLength = startValue.length;\n    var end;\n    var endValue = this.getText();\n    var endLength = endValue.length;\n\n    for (start = 0; start < startLength; start++) {\n      if (startValue[start] !== endValue[start]) {\n        break;\n      }\n    }\n\n    var minEnd = startLength - start;\n    for (end = 1; end <= minEnd; end++) {\n      if (startValue[startLength - end] !== endValue[endLength - end]) {\n        break;\n      }\n    }\n\n    var sliceTail = end > 1 ? 1 - end : undefined;\n    this._fallbackText = endValue.slice(start, sliceTail);\n    return this._fallbackText;\n  }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;"
    },
    {
      "id": 146,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getTextContentAccessor.js",
      "name": "./~/react/lib/getTextContentAccessor.js",
      "index": 146,
      "index2": 139,
      "size": 994,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/FallbackCompositionState.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 145,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/FallbackCompositionState.js",
          "module": "./~/react/lib/FallbackCompositionState.js",
          "moduleName": "./~/react/lib/FallbackCompositionState.js",
          "type": "cjs require",
          "userRequest": "./getTextContentAccessor",
          "loc": "18:29-64"
        },
        {
          "moduleId": 198,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelection.js",
          "module": "./~/react/lib/ReactDOMSelection.js",
          "moduleName": "./~/react/lib/ReactDOMSelection.js",
          "type": "cjs require",
          "userRequest": "./getTextContentAccessor",
          "loc": "17:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n  if (!contentKey && ExecutionEnvironment.canUseDOM) {\n    // Prefer textContent to innerText because many browsers support both but\n    // SVG <text> elements don't support innerText even when <div> does.\n    contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n  }\n  return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;"
    },
    {
      "id": 147,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticCompositionEvent.js",
      "name": "./~/react/lib/SyntheticCompositionEvent.js",
      "index": 147,
      "index2": 142,
      "size": 1161,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticCompositionEvent",
          "loc": "19:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;"
    },
    {
      "id": 148,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticEvent.js",
      "name": "./~/react/lib/SyntheticEvent.js",
      "index": 148,
      "index2": 141,
      "size": 5789,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 147,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticCompositionEvent.js",
          "module": "./~/react/lib/SyntheticCompositionEvent.js",
          "moduleName": "./~/react/lib/SyntheticCompositionEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        },
        {
          "moduleId": 149,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticInputEvent.js",
          "module": "./~/react/lib/SyntheticInputEvent.js",
          "moduleName": "./~/react/lib/SyntheticInputEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "19:21-48"
        },
        {
          "moduleId": 158,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticUIEvent.js",
          "module": "./~/react/lib/SyntheticUIEvent.js",
          "moduleName": "./~/react/lib/SyntheticUIEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "18:21-48"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "19:21-48"
        },
        {
          "moduleId": 204,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticClipboardEvent.js",
          "module": "./~/react/lib/SyntheticClipboardEvent.js",
          "moduleName": "./~/react/lib/SyntheticClipboardEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n  type: null,\n  target: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: emptyFunction.thatReturnsNull,\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n */\nfunction SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  this.dispatchConfig = dispatchConfig;\n  this.dispatchMarker = dispatchMarker;\n  this.nativeEvent = nativeEvent;\n\n  var Interface = this.constructor.Interface;\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n    var normalize = Interface[propName];\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      if (propName === 'target') {\n        this.target = nativeEventTarget;\n      } else {\n        this[propName] = nativeEvent[propName];\n      }\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n  if (defaultPrevented) {\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n  }\n  this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n}\n\nassign(SyntheticEvent.prototype, {\n\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `preventDefault` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n    }\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else {\n      event.returnValue = false;\n    }\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  },\n\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `stopPropagation` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n    }\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else {\n      event.cancelBubble = true;\n    }\n    this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: emptyFunction.thatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n    for (var propName in Interface) {\n      this[propName] = null;\n    }\n    this.dispatchConfig = null;\n    this.dispatchMarker = null;\n    this.nativeEvent = null;\n  }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n  var Super = this;\n\n  var prototype = Object.create(Super.prototype);\n  assign(prototype, Class.prototype);\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n\n  Class.Interface = assign({}, Super.Interface, Interface);\n  Class.augmentClass = Super.augmentClass;\n\n  PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;"
    },
    {
      "id": 149,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticInputEvent.js",
      "name": "./~/react/lib/SyntheticInputEvent.js",
      "index": 149,
      "index2": 143,
      "size": 1145,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticInputEvent",
          "loc": "20:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\nvar InputEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;"
    },
    {
      "id": 150,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/keyOf.js",
      "name": "./~/fbjs/lib/keyOf.js",
      "index": 150,
      "index2": 144,
      "size": 1113,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 143,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "./~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "./~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "22:12-37"
        },
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "24:12-37"
        },
        {
          "moduleId": 155,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DefaultEventPluginOrder.js",
          "module": "./~/react/lib/DefaultEventPluginOrder.js",
          "moduleName": "./~/react/lib/DefaultEventPluginOrder.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "14:12-37"
        },
        {
          "moduleId": 156,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "./~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "./~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "20:12-37"
        },
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "39:12-37"
        },
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "24:12-37"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "22:12-37"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "31:12-37"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\n\"use strict\";\n\nvar keyOf = function (oneKeyObj) {\n  var key;\n  for (key in oneKeyObj) {\n    if (!oneKeyObj.hasOwnProperty(key)) {\n      continue;\n    }\n    return key;\n  }\n  return null;\n};\n\nmodule.exports = keyOf;"
    },
    {
      "id": 151,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
      "name": "./~/react/lib/ChangeEventPlugin.js",
      "index": 151,
      "index2": 148,
      "size": 11501,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ChangeEventPlugin",
          "loc": "15:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onChange: null }),\n      captured: keyOf({ onChangeCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n  }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementID = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // See `handleChange` comment below\n  doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = SyntheticEvent.getPooled(eventTypes.change, activeElementID, nativeEvent, getEventTarget(nativeEvent));\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n\n  // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n  ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  EventPluginHub.enqueueEvents(event);\n  EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetID) {\n  activeElement = target;\n  activeElementID = targetID;\n  activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n  if (!activeElement) {\n    return;\n  }\n  activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n  activeElement = null;\n  activeElementID = null;\n}\n\nfunction getTargetIDForChangeEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topChange) {\n    return topLevelTargetID;\n  }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForChangeEventIE8();\n    startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForChangeEventIE8();\n  }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events\n  isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);\n}\n\n/**\n * (For old IE.) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n  get: function () {\n    return activeElementValueProp.get.call(this);\n  },\n  set: function (val) {\n    // Cast to a string so we can do equality checks.\n    activeElementValue = '' + val;\n    activeElementValueProp.set.call(this, val);\n  }\n};\n\n/**\n * (For old IE.) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetID) {\n  activeElement = target;\n  activeElementID = targetID;\n  activeElementValue = target.value;\n  activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n  // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n  // on DOM elements\n  Object.defineProperty(activeElement, 'value', newValueProp);\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For old IE.) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n\n  // delete restores the original property definition\n  delete activeElement.value;\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n  activeElement = null;\n  activeElementID = null;\n  activeElementValue = null;\n  activeElementValueProp = null;\n}\n\n/**\n * (For old IE.) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n  var value = nativeEvent.srcElement.value;\n  if (value === activeElementValue) {\n    return;\n  }\n  activeElementValue = value;\n\n  manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetIDForInputEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topInput) {\n    // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n    // what we want so fall through here and trigger an abstract event\n    return topLevelTargetID;\n  }\n}\n\n// For IE8 and IE9.\nfunction handleEventsForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // In IE8, we can capture almost all .value changes by adding a\n    // propertychange handler and looking for events with propertyName\n    // equal to 'value'\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(topLevelTarget, topLevelTargetID);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForValueChange();\n  }\n}\n\n// For IE8 and IE9.\nfunction getTargetIDForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    if (activeElement && activeElement.value !== activeElementValue) {\n      activeElementValue = activeElement.value;\n      return activeElementID;\n    }\n  }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetIDForClickEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topClick) {\n    return topLevelTargetID;\n  }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n\n    var getTargetIDFunc, handleEventFunc;\n    if (shouldUseChangeEvent(topLevelTarget)) {\n      if (doesChangeEventBubble) {\n        getTargetIDFunc = getTargetIDForChangeEvent;\n      } else {\n        handleEventFunc = handleEventsForChangeEventIE8;\n      }\n    } else if (isTextInputElement(topLevelTarget)) {\n      if (isInputEventSupported) {\n        getTargetIDFunc = getTargetIDForInputEvent;\n      } else {\n        getTargetIDFunc = getTargetIDForInputEventIE;\n        handleEventFunc = handleEventsForInputEventIE;\n      }\n    } else if (shouldUseClickEvent(topLevelTarget)) {\n      getTargetIDFunc = getTargetIDForClickEvent;\n    }\n\n    if (getTargetIDFunc) {\n      var targetID = getTargetIDFunc(topLevelType, topLevelTarget, topLevelTargetID);\n      if (targetID) {\n        var event = SyntheticEvent.getPooled(eventTypes.change, targetID, nativeEvent, nativeEventTarget);\n        event.type = 'change';\n        EventPropagators.accumulateTwoPhaseDispatches(event);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, topLevelTarget, topLevelTargetID);\n    }\n  }\n\n};\n\nmodule.exports = ChangeEventPlugin;"
    },
    {
      "id": 152,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getEventTarget.js",
      "name": "./~/react/lib/getEventTarget.js",
      "index": 152,
      "index2": 146,
      "size": 930,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./getEventTarget",
          "loc": "21:21-48"
        },
        {
          "moduleId": 158,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticUIEvent.js",
          "module": "./~/react/lib/SyntheticUIEvent.js",
          "moduleName": "./~/react/lib/SyntheticUIEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventTarget",
          "loc": "17:21-48"
        },
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./getEventTarget",
          "loc": "23:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n  var target = nativeEvent.target || nativeEvent.srcElement || window;\n  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n  return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;"
    },
    {
      "id": 153,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/isTextInputElement.js",
      "name": "./~/react/lib/isTextInputElement.js",
      "index": 153,
      "index2": 147,
      "size": 1029,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 151,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "./~/react/lib/ChangeEventPlugin.js",
          "moduleName": "./~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./isTextInputElement",
          "loc": "23:25-56"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./isTextInputElement",
          "loc": "21:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  'color': true,\n  'date': true,\n  'datetime': true,\n  'datetime-local': true,\n  'email': true,\n  'month': true,\n  'number': true,\n  'password': true,\n  'range': true,\n  'search': true,\n  'tel': true,\n  'text': true,\n  'time': true,\n  'url': true,\n  'week': true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea');\n}\n\nmodule.exports = isTextInputElement;"
    },
    {
      "id": 154,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ClientReactRootIndex.js",
      "name": "./~/react/lib/ClientReactRootIndex.js",
      "index": 154,
      "index2": 149,
      "size": 551,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ClientReactRootIndex",
          "loc": "16:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ClientReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar nextReactRootIndex = 0;\n\nvar ClientReactRootIndex = {\n  createReactRootIndex: function () {\n    return nextReactRootIndex++;\n  }\n};\n\nmodule.exports = ClientReactRootIndex;"
    },
    {
      "id": 155,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/DefaultEventPluginOrder.js",
      "name": "./~/react/lib/DefaultEventPluginOrder.js",
      "index": 155,
      "index2": 150,
      "size": 1261,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./DefaultEventPluginOrder",
          "loc": "17:30-66"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = require('fbjs/lib/keyOf');\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;"
    },
    {
      "id": 156,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
      "name": "./~/react/lib/EnterLeaveEventPlugin.js",
      "index": 156,
      "index2": 154,
      "size": 3905,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./EnterLeaveEventPlugin",
          "loc": "18:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar ReactMount = require('./ReactMount');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\nvar getFirstReactDOM = ReactMount.getFirstReactDOM;\n\nvar eventTypes = {\n  mouseEnter: {\n    registrationName: keyOf({ onMouseEnter: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  },\n  mouseLeave: {\n    registrationName: keyOf({ onMouseLeave: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  }\n};\n\nvar extractedEvents = [null, null];\n\nvar EnterLeaveEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      return null;\n    }\n    if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n      // Must not be a mouse in or mouse out - ignoring.\n      return null;\n    }\n\n    var win;\n    if (topLevelTarget.window === topLevelTarget) {\n      // `topLevelTarget` is probably a window object.\n      win = topLevelTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = topLevelTarget.ownerDocument;\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from;\n    var to;\n    var fromID = '';\n    var toID = '';\n    if (topLevelType === topLevelTypes.topMouseOut) {\n      from = topLevelTarget;\n      fromID = topLevelTargetID;\n      to = getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement);\n      if (to) {\n        toID = ReactMount.getID(to);\n      } else {\n        to = win;\n      }\n      to = to || win;\n    } else {\n      from = win;\n      to = topLevelTarget;\n      toID = topLevelTargetID;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, fromID, nativeEvent, nativeEventTarget);\n    leave.type = 'mouseleave';\n    leave.target = from;\n    leave.relatedTarget = to;\n\n    var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, toID, nativeEvent, nativeEventTarget);\n    enter.type = 'mouseenter';\n    enter.target = to;\n    enter.relatedTarget = from;\n\n    EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID);\n\n    extractedEvents[0] = leave;\n    extractedEvents[1] = enter;\n\n    return extractedEvents;\n  }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;"
    },
    {
      "id": 157,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticMouseEvent.js",
      "name": "./~/react/lib/SyntheticMouseEvent.js",
      "index": 157,
      "index2": 153,
      "size": 2197,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 156,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "./~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "./~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "17:26-58"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "22:26-58"
        },
        {
          "moduleId": 209,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticDragEvent.js",
          "module": "./~/react/lib/SyntheticDragEvent.js",
          "moduleName": "./~/react/lib/SyntheticDragEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "15:26-58"
        },
        {
          "moduleId": 211,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticWheelEvent.js",
          "module": "./~/react/lib/SyntheticWheelEvent.js",
          "moduleName": "./~/react/lib/SyntheticWheelEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "15:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: function (event) {\n    // Webkit, Firefox, IE9+\n    // which:  1 2 3\n    // button: 0 1 2 (standard)\n    var button = event.button;\n    if ('which' in event) {\n      return button;\n    }\n    // IE<9\n    // which:  undefined\n    // button: 0 0 0\n    // button: 1 4 2 (onmouseup)\n    return button === 2 ? 2 : button === 4 ? 1 : 0;\n  },\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  // \"Proprietary\" Interface.\n  pageX: function (event) {\n    return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n  },\n  pageY: function (event) {\n    return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;"
    },
    {
      "id": 158,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticUIEvent.js",
      "name": "./~/react/lib/SyntheticUIEvent.js",
      "index": 158,
      "index2": 151,
      "size": 1642,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 157,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticMouseEvent.js",
          "module": "./~/react/lib/SyntheticMouseEvent.js",
          "moduleName": "./~/react/lib/SyntheticMouseEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "25:23-52"
        },
        {
          "moduleId": 205,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticFocusEvent.js",
          "module": "./~/react/lib/SyntheticFocusEvent.js",
          "moduleName": "./~/react/lib/SyntheticFocusEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        },
        {
          "moduleId": 206,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "./~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "./~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        },
        {
          "moduleId": 210,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticTouchEvent.js",
          "module": "./~/react/lib/SyntheticTouchEvent.js",
          "moduleName": "./~/react/lib/SyntheticTouchEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n  view: function (event) {\n    if (event.view) {\n      return event.view;\n    }\n\n    var target = getEventTarget(event);\n    if (target != null && target.window === target) {\n      // target is a window object\n      return target;\n    }\n\n    var doc = target.ownerDocument;\n    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n    if (doc) {\n      return doc.defaultView || doc.parentWindow;\n    } else {\n      return window;\n    }\n  },\n  detail: function (event) {\n    return event.detail || 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;"
    },
    {
      "id": 159,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getEventModifierState.js",
      "name": "./~/react/lib/getEventModifierState.js",
      "index": 159,
      "index2": 152,
      "size": 1298,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticMouseEvent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 157,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticMouseEvent.js",
          "module": "./~/react/lib/SyntheticMouseEvent.js",
          "moduleName": "./~/react/lib/SyntheticMouseEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventModifierState",
          "loc": "18:28-62"
        },
        {
          "moduleId": 206,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "./~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "./~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventModifierState",
          "loc": "19:28-62"
        },
        {
          "moduleId": 210,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticTouchEvent.js",
          "module": "./~/react/lib/SyntheticTouchEvent.js",
          "moduleName": "./~/react/lib/SyntheticTouchEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventModifierState",
          "loc": "17:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n  'Alt': 'altKey',\n  'Control': 'ctrlKey',\n  'Meta': 'metaKey',\n  'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;"
    },
    {
      "id": 160,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/HTMLDOMPropertyConfig.js",
      "name": "./~/react/lib/HTMLDOMPropertyConfig.js",
      "index": 160,
      "index2": 155,
      "size": 7628,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./HTMLDOMPropertyConfig",
          "loc": "20:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar hasSVG;\nif (ExecutionEnvironment.canUseDOM) {\n  var implementation = document.implementation;\n  hasSVG = implementation && implementation.hasFeature && implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n}\n\nvar HTMLDOMPropertyConfig = {\n  isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n  Properties: {\n    /**\n     * Standard Properties\n     */\n    accept: null,\n    acceptCharset: null,\n    accessKey: null,\n    action: null,\n    allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    allowTransparency: MUST_USE_ATTRIBUTE,\n    alt: null,\n    async: HAS_BOOLEAN_VALUE,\n    autoComplete: null,\n    // autoFocus is polyfilled/normalized by AutoFocusUtils\n    // autoFocus: HAS_BOOLEAN_VALUE,\n    autoPlay: HAS_BOOLEAN_VALUE,\n    capture: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    cellPadding: null,\n    cellSpacing: null,\n    charSet: MUST_USE_ATTRIBUTE,\n    challenge: MUST_USE_ATTRIBUTE,\n    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    classID: MUST_USE_ATTRIBUTE,\n    // To set className on SVG elements, it's necessary to use .setAttribute;\n    // this works on HTML elements too in all browsers except IE8. Conveniently,\n    // IE8 doesn't support SVG and so we can simply use the attribute in\n    // browsers that support SVG and the property in browsers that don't,\n    // regardless of whether the element is HTML or SVG.\n    className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY,\n    cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    colSpan: null,\n    content: null,\n    contentEditable: null,\n    contextMenu: MUST_USE_ATTRIBUTE,\n    controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    coords: null,\n    crossOrigin: null,\n    data: null, // For `<object />` acts as `src`.\n    dateTime: MUST_USE_ATTRIBUTE,\n    'default': HAS_BOOLEAN_VALUE,\n    defer: HAS_BOOLEAN_VALUE,\n    dir: null,\n    disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    download: HAS_OVERLOADED_BOOLEAN_VALUE,\n    draggable: null,\n    encType: null,\n    form: MUST_USE_ATTRIBUTE,\n    formAction: MUST_USE_ATTRIBUTE,\n    formEncType: MUST_USE_ATTRIBUTE,\n    formMethod: MUST_USE_ATTRIBUTE,\n    formNoValidate: HAS_BOOLEAN_VALUE,\n    formTarget: MUST_USE_ATTRIBUTE,\n    frameBorder: MUST_USE_ATTRIBUTE,\n    headers: null,\n    height: MUST_USE_ATTRIBUTE,\n    hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    high: null,\n    href: null,\n    hrefLang: null,\n    htmlFor: null,\n    httpEquiv: null,\n    icon: null,\n    id: MUST_USE_PROPERTY,\n    inputMode: MUST_USE_ATTRIBUTE,\n    integrity: null,\n    is: MUST_USE_ATTRIBUTE,\n    keyParams: MUST_USE_ATTRIBUTE,\n    keyType: MUST_USE_ATTRIBUTE,\n    kind: null,\n    label: null,\n    lang: null,\n    list: MUST_USE_ATTRIBUTE,\n    loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    low: null,\n    manifest: MUST_USE_ATTRIBUTE,\n    marginHeight: null,\n    marginWidth: null,\n    max: null,\n    maxLength: MUST_USE_ATTRIBUTE,\n    media: MUST_USE_ATTRIBUTE,\n    mediaGroup: null,\n    method: null,\n    min: null,\n    minLength: MUST_USE_ATTRIBUTE,\n    multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    name: null,\n    nonce: MUST_USE_ATTRIBUTE,\n    noValidate: HAS_BOOLEAN_VALUE,\n    open: HAS_BOOLEAN_VALUE,\n    optimum: null,\n    pattern: null,\n    placeholder: null,\n    poster: null,\n    preload: null,\n    radioGroup: null,\n    readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    rel: null,\n    required: HAS_BOOLEAN_VALUE,\n    reversed: HAS_BOOLEAN_VALUE,\n    role: MUST_USE_ATTRIBUTE,\n    rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    rowSpan: null,\n    sandbox: null,\n    scope: null,\n    scoped: HAS_BOOLEAN_VALUE,\n    scrolling: null,\n    seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    shape: null,\n    size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    sizes: MUST_USE_ATTRIBUTE,\n    span: HAS_POSITIVE_NUMERIC_VALUE,\n    spellCheck: null,\n    src: null,\n    srcDoc: MUST_USE_PROPERTY,\n    srcLang: null,\n    srcSet: MUST_USE_ATTRIBUTE,\n    start: HAS_NUMERIC_VALUE,\n    step: null,\n    style: null,\n    summary: null,\n    tabIndex: null,\n    target: null,\n    title: null,\n    type: null,\n    useMap: null,\n    value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,\n    width: MUST_USE_ATTRIBUTE,\n    wmode: MUST_USE_ATTRIBUTE,\n    wrap: null,\n\n    /**\n     * RDFa Properties\n     */\n    about: MUST_USE_ATTRIBUTE,\n    datatype: MUST_USE_ATTRIBUTE,\n    inlist: MUST_USE_ATTRIBUTE,\n    prefix: MUST_USE_ATTRIBUTE,\n    // property is also supported for OpenGraph in meta tags.\n    property: MUST_USE_ATTRIBUTE,\n    resource: MUST_USE_ATTRIBUTE,\n    'typeof': MUST_USE_ATTRIBUTE,\n    vocab: MUST_USE_ATTRIBUTE,\n\n    /**\n     * Non-standard Properties\n     */\n    // autoCapitalize and autoCorrect are supported in Mobile Safari for\n    // keyboard hints.\n    autoCapitalize: MUST_USE_ATTRIBUTE,\n    autoCorrect: MUST_USE_ATTRIBUTE,\n    // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n    autoSave: null,\n    // color is for Safari mask-icon link\n    color: null,\n    // itemProp, itemScope, itemType are for\n    // Microdata support. See http://schema.org/docs/gs.html\n    itemProp: MUST_USE_ATTRIBUTE,\n    itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    itemType: MUST_USE_ATTRIBUTE,\n    // itemID and itemRef are for Microdata support as well but\n    // only specified in the the WHATWG spec document. See\n    // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n    itemID: MUST_USE_ATTRIBUTE,\n    itemRef: MUST_USE_ATTRIBUTE,\n    // results show looking glass icon and recent searches on input\n    // search fields in WebKit/Blink\n    results: null,\n    // IE-only attribute that specifies security restrictions on an iframe\n    // as an alternative to the sandbox attribute on IE<10\n    security: MUST_USE_ATTRIBUTE,\n    // IE-only attribute that controls focus behavior\n    unselectable: MUST_USE_ATTRIBUTE\n  },\n  DOMAttributeNames: {\n    acceptCharset: 'accept-charset',\n    className: 'class',\n    htmlFor: 'for',\n    httpEquiv: 'http-equiv'\n  },\n  DOMPropertyNames: {\n    autoComplete: 'autocomplete',\n    autoFocus: 'autofocus',\n    autoPlay: 'autoplay',\n    autoSave: 'autosave',\n    // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter.\n    // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding\n    encType: 'encoding',\n    hrefLang: 'hreflang',\n    radioGroup: 'radiogroup',\n    spellCheck: 'spellcheck',\n    srcDoc: 'srcdoc',\n    srcSet: 'srcset'\n  }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;"
    },
    {
      "id": 161,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserComponentMixin.js",
      "name": "./~/react/lib/ReactBrowserComponentMixin.js",
      "index": 161,
      "index2": 157,
      "size": 1149,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserComponentMixin",
          "loc": "21:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserComponentMixin\n */\n\n'use strict';\n\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar findDOMNode = require('./findDOMNode');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnKey = '_getDOMNodeDidWarn';\n\nvar ReactBrowserComponentMixin = {\n  /**\n   * Returns the DOM node rendered by this component.\n   *\n   * @return {DOMElement} The root node of this component.\n   * @final\n   * @protected\n   */\n  getDOMNode: function () {\n    process.env.NODE_ENV !== 'production' ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'ReactDOM.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined;\n    this.constructor[didWarnKey] = true;\n    return findDOMNode(this);\n  }\n};\n\nmodule.exports = ReactBrowserComponentMixin;"
    },
    {
      "id": 162,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/findDOMNode.js",
      "name": "./~/react/lib/findDOMNode.js",
      "index": 162,
      "index2": 156,
      "size": 2174,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./findDOMNode",
          "loc": "26:18-42"
        },
        {
          "moduleId": 161,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactBrowserComponentMixin.js",
          "module": "./~/react/lib/ReactBrowserComponentMixin.js",
          "moduleName": "./~/react/lib/ReactBrowserComponentMixin.js",
          "type": "cjs require",
          "userRequest": "./findDOMNode",
          "loc": "16:18-42"
        },
        {
          "moduleId": 165,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/AutoFocusUtils.js",
          "module": "./~/react/lib/AutoFocusUtils.js",
          "moduleName": "./~/react/lib/AutoFocusUtils.js",
          "type": "cjs require",
          "userRequest": "./findDOMNode",
          "loc": "17:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactMount = require('./ReactMount');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n  if (process.env.NODE_ENV !== 'production') {\n    var owner = ReactCurrentOwner.current;\n    if (owner !== null) {\n      process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n      owner._warnedAboutRefsInRender = true;\n    }\n  }\n  if (componentOrElement == null) {\n    return null;\n  }\n  if (componentOrElement.nodeType === 1) {\n    return componentOrElement;\n  }\n  if (ReactInstanceMap.has(componentOrElement)) {\n    return ReactMount.getNodeFromInstance(componentOrElement);\n  }\n  !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : invariant(false) : undefined;\n  !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined;\n}\n\nmodule.exports = findDOMNode;"
    },
    {
      "id": 163,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
      "name": "./~/react/lib/ReactDefaultBatchingStrategy.js",
      "index": 163,
      "index2": 158,
      "size": 1916,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultBatchingStrategy",
          "loc": "23:35-76"
        },
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultBatchingStrategy",
          "loc": "14:35-76"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: function () {\n    ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n  }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n  this.reinitializeTransaction();\n}\n\nassign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n  isBatchingUpdates: false,\n\n  /**\n   * Call the provided function in a context within which calls to `setState`\n   * and friends are batched such that components aren't updated unnecessarily.\n   */\n  batchedUpdates: function (callback, a, b, c, d, e) {\n    var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n    ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n    // The code is written this way to avoid extra allocations\n    if (alreadyBatchingUpdates) {\n      callback(a, b, c, d, e);\n    } else {\n      transaction.perform(callback, null, a, b, c, d, e);\n    }\n  }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;"
    },
    {
      "id": 164,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "name": "./~/react/lib/ReactDOMComponent.js",
      "index": 164,
      "index2": 183,
      "size": 36947,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMComponent",
          "loc": "24:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n * @typechecks static-only\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventConstants = require('./EventConstants');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMButton = require('./ReactDOMButton');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactMount = require('./ReactMount');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactPerf = require('./ReactPerf');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar canDefineProperty = require('./canDefineProperty');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar keyOf = require('fbjs/lib/keyOf');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar deleteListener = ReactBrowserEventEmitter.deleteListener;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar CHILDREN = keyOf({ children: null });\nvar STYLE = keyOf({ style: null });\nvar HTML = keyOf({ __html: null });\n\nvar ELEMENT_NODE_TYPE = 1;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n  if (internalInstance) {\n    var owner = internalInstance._currentElement._owner || null;\n    if (owner) {\n      var name = owner.getName();\n      if (name) {\n        return ' This DOM node was rendered by `' + name + '`.';\n      }\n    }\n  }\n  return '';\n}\n\nvar legacyPropsDescriptor;\nif (process.env.NODE_ENV !== 'production') {\n  legacyPropsDescriptor = {\n    props: {\n      enumerable: false,\n      get: function () {\n        var component = this._reactInternalComponent;\n        process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .props of a DOM node; instead, ' + 'recreate the props as `render` did originally or read the DOM ' + 'properties/attributes directly from this node (e.g., ' + 'this.refs.box.className).%s', getDeclarationErrorAddendum(component)) : undefined;\n        return component._currentElement.props;\n      }\n    }\n  };\n}\n\nfunction legacyGetDOMNode() {\n  if (process.env.NODE_ENV !== 'production') {\n    var component = this._reactInternalComponent;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .getDOMNode() of a DOM node; ' + 'instead, use the node directly.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  return this;\n}\n\nfunction legacyIsMounted() {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .isMounted() of a DOM node.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  return !!component;\n}\n\nfunction legacySetStateEtc() {\n  if (process.env.NODE_ENV !== 'production') {\n    var component = this._reactInternalComponent;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setState(), .replaceState(), or ' + '.forceUpdate() of a DOM node. This is a no-op.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n}\n\nfunction legacySetProps(partialProps, callback) {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  if (!component) {\n    return;\n  }\n  ReactUpdateQueue.enqueueSetPropsInternal(component, partialProps);\n  if (callback) {\n    ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n  }\n}\n\nfunction legacyReplaceProps(partialProps, callback) {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .replaceProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  if (!component) {\n    return;\n  }\n  ReactUpdateQueue.enqueueReplacePropsInternal(component, partialProps);\n  if (callback) {\n    ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n  }\n}\n\nfunction friendlyStringify(obj) {\n  if (typeof obj === 'object') {\n    if (Array.isArray(obj)) {\n      return '[' + obj.map(friendlyStringify).join(', ') + ']';\n    } else {\n      var pairs = [];\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n          pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n        }\n      }\n      return '{' + pairs.join(', ') + '}';\n    }\n  } else if (typeof obj === 'string') {\n    return JSON.stringify(obj);\n  } else if (typeof obj === 'function') {\n    return '[function object]';\n  }\n  // Differs from JSON.stringify in that undefined becauses undefined and that\n  // inf and nan don't become null\n  return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n  if (style1 == null || style2 == null) {\n    return;\n  }\n  if (shallowEqual(style1, style2)) {\n    return;\n  }\n\n  var componentName = component._tag;\n  var owner = component._currentElement._owner;\n  var ownerName;\n  if (owner) {\n    ownerName = owner.getName();\n  }\n\n  var hash = ownerName + '|' + componentName;\n\n  if (styleMutationWarning.hasOwnProperty(hash)) {\n    return;\n  }\n\n  styleMutationWarning[hash] = true;\n\n  process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n  if (!props) {\n    return;\n  }\n  // Note the use of `==` which checks for null or undefined.\n  if (process.env.NODE_ENV !== 'production') {\n    if (voidElementTags[component._tag]) {\n      process.env.NODE_ENV !== 'production' ? warning(props.children == null && props.dangerouslySetInnerHTML == null, '%s is a void element tag and must not have `children` or ' + 'use `props.dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : undefined;\n    }\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined;\n    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined;\n    process.env.NODE_ENV !== 'production' ? warning(!props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : undefined;\n  }\n  !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \\'em\\'}} when ' + 'using JSX.%s', getDeclarationErrorAddendum(component)) : invariant(false) : undefined;\n}\n\nfunction enqueuePutListener(id, registrationName, listener, transaction) {\n  if (process.env.NODE_ENV !== 'production') {\n    // IE8 has no API for event capturing and the `onScroll` event doesn't\n    // bubble.\n    process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : undefined;\n  }\n  var container = ReactMount.findReactContainerForID(id);\n  if (container) {\n    var doc = container.nodeType === ELEMENT_NODE_TYPE ? container.ownerDocument : container;\n    listenTo(registrationName, doc);\n  }\n  transaction.getReactMountReady().enqueue(putListener, {\n    id: id,\n    registrationName: registrationName,\n    listener: listener\n  });\n}\n\nfunction putListener() {\n  var listenerToPut = this;\n  ReactBrowserEventEmitter.putListener(listenerToPut.id, listenerToPut.registrationName, listenerToPut.listener);\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n  topAbort: 'abort',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTimeUpdate: 'timeupdate',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n  var inst = this;\n  // If a component renders to null or if another component fatals and causes\n  // the state of the tree to be corrupted, `node` here can be null.\n  !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : invariant(false) : undefined;\n  var node = ReactMount.getNode(inst._rootNodeID);\n  !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : invariant(false) : undefined;\n\n  switch (inst._tag) {\n    case 'iframe':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'video':\n    case 'audio':\n\n      inst._wrapperState.listeners = [];\n      // create listener for each media event\n      for (var event in mediaEvents) {\n        if (mediaEvents.hasOwnProperty(event)) {\n          inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n        }\n      }\n\n      break;\n    case 'img':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'form':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n      break;\n  }\n}\n\nfunction mountReadyInputWrapper() {\n  ReactDOMInput.mountReadyWrapper(this);\n}\n\nfunction postUpdateSelectWrapper() {\n  ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special cased tags.\n\nvar omittedCloseTags = {\n  'area': true,\n  'base': true,\n  'br': true,\n  'col': true,\n  'embed': true,\n  'hr': true,\n  'img': true,\n  'input': true,\n  'keygen': true,\n  'link': true,\n  'meta': true,\n  'param': true,\n  'source': true,\n  'track': true,\n  'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n  'listing': true,\n  'pre': true,\n  'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = assign({\n  'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = ({}).hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n  if (!hasOwnProperty.call(validatedTagCache, tag)) {\n    !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : invariant(false) : undefined;\n    validatedTagCache[tag] = true;\n  }\n}\n\nfunction processChildContextDev(context, inst) {\n  // Pass down our tag name to child components for validation purposes\n  context = assign({}, context);\n  var info = context[validateDOMNesting.ancestorInfoContextKey];\n  context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst);\n  return context;\n}\n\nfunction isCustomComponent(tagName, props) {\n  return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n *  - Event listeners: `onClick`, `onMouseDown`, etc.\n *  - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(tag) {\n  validateDangerousTag(tag);\n  this._tag = tag.toLowerCase();\n  this._renderedChildren = null;\n  this._previousStyle = null;\n  this._previousStyleCopy = null;\n  this._rootNodeID = null;\n  this._wrapperState = null;\n  this._topLevelWrapper = null;\n  this._nodeWithLegacyProperties = null;\n  if (process.env.NODE_ENV !== 'production') {\n    this._unprocessedContextDev = null;\n    this._processedContextDev = null;\n  }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n  construct: function (element) {\n    this._currentElement = element;\n  },\n\n  /**\n   * Generates root tag markup then recurses. This method has side effects and\n   * is not idempotent.\n   *\n   * @internal\n   * @param {string} rootID The root DOM ID for this node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   * @return {string} The computed markup.\n   */\n  mountComponent: function (rootID, transaction, context) {\n    this._rootNodeID = rootID;\n\n    var props = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'iframe':\n      case 'img':\n      case 'form':\n      case 'video':\n      case 'audio':\n        this._wrapperState = {\n          listeners: null\n        };\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n      case 'button':\n        props = ReactDOMButton.getNativeProps(this, props, context);\n        break;\n      case 'input':\n        ReactDOMInput.mountWrapper(this, props, context);\n        props = ReactDOMInput.getNativeProps(this, props, context);\n        break;\n      case 'option':\n        ReactDOMOption.mountWrapper(this, props, context);\n        props = ReactDOMOption.getNativeProps(this, props, context);\n        break;\n      case 'select':\n        ReactDOMSelect.mountWrapper(this, props, context);\n        props = ReactDOMSelect.getNativeProps(this, props, context);\n        context = ReactDOMSelect.processChildContext(this, props, context);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.mountWrapper(this, props, context);\n        props = ReactDOMTextarea.getNativeProps(this, props, context);\n        break;\n    }\n\n    assertValidProps(this, props);\n    if (process.env.NODE_ENV !== 'production') {\n      if (context[validateDOMNesting.ancestorInfoContextKey]) {\n        validateDOMNesting(this._tag, this, context[validateDOMNesting.ancestorInfoContextKey]);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._unprocessedContextDev = context;\n      this._processedContextDev = processChildContextDev(context, this);\n      context = this._processedContextDev;\n    }\n\n    var mountImage;\n    if (transaction.useCreateElement) {\n      var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n      var el = ownerDocument.createElement(this._currentElement.type);\n      DOMPropertyOperations.setAttributeForID(el, this._rootNodeID);\n      // Populate node cache\n      ReactMount.getID(el);\n      this._updateDOMProperties({}, props, transaction, el);\n      this._createInitialChildren(transaction, props, context, el);\n      mountImage = el;\n    } else {\n      var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n      var tagContent = this._createContentMarkup(transaction, props, context);\n      if (!tagContent && omittedCloseTags[this._tag]) {\n        mountImage = tagOpen + '/>';\n      } else {\n        mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n      }\n    }\n\n    switch (this._tag) {\n      case 'input':\n        transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this);\n      // falls through\n      case 'button':\n      case 'select':\n      case 'textarea':\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n    }\n\n    return mountImage;\n  },\n\n  /**\n   * Creates markup for the open tag and all attributes.\n   *\n   * This method has side effects because events get registered.\n   *\n   * Iterating over object properties is faster than iterating over arrays.\n   * @see http://jsperf.com/obj-vs-arr-iteration\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @return {string} Markup of opening tag.\n   */\n  _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n    var ret = '<' + this._currentElement.type;\n\n    for (var propKey in props) {\n      if (!props.hasOwnProperty(propKey)) {\n        continue;\n      }\n      var propValue = props[propKey];\n      if (propValue == null) {\n        continue;\n      }\n      if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (propValue) {\n          enqueuePutListener(this._rootNodeID, propKey, propValue, transaction);\n        }\n      } else {\n        if (propKey === STYLE) {\n          if (propValue) {\n            if (process.env.NODE_ENV !== 'production') {\n              // See `_updateDOMProperties`. style block\n              this._previousStyle = propValue;\n            }\n            propValue = this._previousStyleCopy = assign({}, props.style);\n          }\n          propValue = CSSPropertyOperations.createMarkupForStyles(propValue);\n        }\n        var markup = null;\n        if (this._tag != null && isCustomComponent(this._tag, props)) {\n          if (propKey !== CHILDREN) {\n            markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n          }\n        } else {\n          markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n        }\n        if (markup) {\n          ret += ' ' + markup;\n        }\n      }\n    }\n\n    // For static pages, no need to put React ID and checksum. Saves lots of\n    // bytes.\n    if (transaction.renderToStaticMarkup) {\n      return ret;\n    }\n\n    var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID);\n    return ret + ' ' + markupForID;\n  },\n\n  /**\n   * Creates markup for the content between the tags.\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @param {object} context\n   * @return {string} Content markup.\n   */\n  _createContentMarkup: function (transaction, props, context) {\n    var ret = '';\n\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        ret = innerHTML.__html;\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        ret = escapeTextContentForBrowser(contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        ret = mountImages.join('');\n      }\n    }\n    if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n      // text/html ignores the first character in these tags if it's a newline\n      // Prefer to break application/xml over text/html (for now) by adding\n      // a newline specifically to get eaten by the parser. (Alternately for\n      // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n      // \\r is normalized out by HTMLTextAreaElement#value.)\n      // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n      // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n      // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n      // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n      //  from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n      return '\\n' + ret;\n    } else {\n      return ret;\n    }\n  },\n\n  _createInitialChildren: function (transaction, props, context, el) {\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        setInnerHTML(el, innerHTML.__html);\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        setTextContent(el, contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        for (var i = 0; i < mountImages.length; i++) {\n          el.appendChild(mountImages[i]);\n        }\n      }\n    }\n  },\n\n  /**\n   * Receives a next element and updates the component.\n   *\n   * @internal\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   */\n  receiveComponent: function (nextElement, transaction, context) {\n    var prevElement = this._currentElement;\n    this._currentElement = nextElement;\n    this.updateComponent(transaction, prevElement, nextElement, context);\n  },\n\n  /**\n   * Updates a native DOM component after it has already been allocated and\n   * attached to the DOM. Reconciles the root DOM node, then recurses.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevElement\n   * @param {ReactElement} nextElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevElement, nextElement, context) {\n    var lastProps = prevElement.props;\n    var nextProps = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'button':\n        lastProps = ReactDOMButton.getNativeProps(this, lastProps);\n        nextProps = ReactDOMButton.getNativeProps(this, nextProps);\n        break;\n      case 'input':\n        ReactDOMInput.updateWrapper(this);\n        lastProps = ReactDOMInput.getNativeProps(this, lastProps);\n        nextProps = ReactDOMInput.getNativeProps(this, nextProps);\n        break;\n      case 'option':\n        lastProps = ReactDOMOption.getNativeProps(this, lastProps);\n        nextProps = ReactDOMOption.getNativeProps(this, nextProps);\n        break;\n      case 'select':\n        lastProps = ReactDOMSelect.getNativeProps(this, lastProps);\n        nextProps = ReactDOMSelect.getNativeProps(this, nextProps);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.updateWrapper(this);\n        lastProps = ReactDOMTextarea.getNativeProps(this, lastProps);\n        nextProps = ReactDOMTextarea.getNativeProps(this, nextProps);\n        break;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // If the context is reference-equal to the old one, pass down the same\n      // processed object so the update bailout in ReactReconciler behaves\n      // correctly (and identically in dev and prod). See #5005.\n      if (this._unprocessedContextDev !== context) {\n        this._unprocessedContextDev = context;\n        this._processedContextDev = processChildContextDev(context, this);\n      }\n      context = this._processedContextDev;\n    }\n\n    assertValidProps(this, nextProps);\n    this._updateDOMProperties(lastProps, nextProps, transaction, null);\n    this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n    if (!canDefineProperty && this._nodeWithLegacyProperties) {\n      this._nodeWithLegacyProperties.props = nextProps;\n    }\n\n    if (this._tag === 'select') {\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n    }\n  },\n\n  /**\n   * Reconciles the properties by detecting differences in property values and\n   * updating the DOM as necessary. This function is probably the single most\n   * critical path for performance optimization.\n   *\n   * TODO: Benchmark whether checking for changed values in memory actually\n   *       improves performance (especially statically positioned elements).\n   * TODO: Benchmark the effects of putting this at the top since 99% of props\n   *       do not change for a given reconciliation.\n   * TODO: Benchmark areas that can be improved with caching.\n   *\n   * @private\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?DOMElement} node\n   */\n  _updateDOMProperties: function (lastProps, nextProps, transaction, node) {\n    var propKey;\n    var styleName;\n    var styleUpdates;\n    for (propKey in lastProps) {\n      if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey)) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        var lastStyle = this._previousStyleCopy;\n        for (styleName in lastStyle) {\n          if (lastStyle.hasOwnProperty(styleName)) {\n            styleUpdates = styleUpdates || {};\n            styleUpdates[styleName] = '';\n          }\n        }\n        this._previousStyleCopy = null;\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (lastProps[propKey]) {\n          // Only call deleteListener if there was a listener previously or\n          // else willDeleteListener gets called when there wasn't actually a\n          // listener (e.g., onClick={null})\n          deleteListener(this._rootNodeID, propKey);\n        }\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        DOMPropertyOperations.deleteValueForProperty(node, propKey);\n      }\n    }\n    for (propKey in nextProps) {\n      var nextProp = nextProps[propKey];\n      var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps[propKey];\n      if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        if (nextProp) {\n          if (process.env.NODE_ENV !== 'production') {\n            checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n            this._previousStyle = nextProp;\n          }\n          nextProp = this._previousStyleCopy = assign({}, nextProp);\n        } else {\n          this._previousStyleCopy = null;\n        }\n        if (lastProp) {\n          // Unset styles on `lastProp` but not on `nextProp`.\n          for (styleName in lastProp) {\n            if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          // Update styles that changed since `lastProp`.\n          for (styleName in nextProp) {\n            if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = nextProp[styleName];\n            }\n          }\n        } else {\n          // Relies on `updateStylesByID` not mutating `styleUpdates`.\n          styleUpdates = nextProp;\n        }\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (nextProp) {\n          enqueuePutListener(this._rootNodeID, propKey, nextProp, transaction);\n        } else if (lastProp) {\n          deleteListener(this._rootNodeID, propKey);\n        }\n      } else if (isCustomComponent(this._tag, nextProps)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        if (propKey === CHILDREN) {\n          nextProp = null;\n        }\n        DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp);\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        // If we're updating to null or undefined, we should remove the property\n        // from the DOM node instead of inadvertantly setting to a string. This\n        // brings us in line with the same behavior we have on initial render.\n        if (nextProp != null) {\n          DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n        } else {\n          DOMPropertyOperations.deleteValueForProperty(node, propKey);\n        }\n      }\n    }\n    if (styleUpdates) {\n      if (!node) {\n        node = ReactMount.getNode(this._rootNodeID);\n      }\n      CSSPropertyOperations.setValueForStyles(node, styleUpdates);\n    }\n  },\n\n  /**\n   * Reconciles the children with the various properties that affect the\n   * children content.\n   *\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   */\n  _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n    var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n    var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n    var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n    var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n    // Note the use of `!=` which checks for null or undefined.\n    var lastChildren = lastContent != null ? null : lastProps.children;\n    var nextChildren = nextContent != null ? null : nextProps.children;\n\n    // If we're switching from children to content/html or vice versa, remove\n    // the old content\n    var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n    var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n    if (lastChildren != null && nextChildren == null) {\n      this.updateChildren(null, transaction, context);\n    } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n      this.updateTextContent('');\n    }\n\n    if (nextContent != null) {\n      if (lastContent !== nextContent) {\n        this.updateTextContent('' + nextContent);\n      }\n    } else if (nextHtml != null) {\n      if (lastHtml !== nextHtml) {\n        this.updateMarkup('' + nextHtml);\n      }\n    } else if (nextChildren != null) {\n      this.updateChildren(nextChildren, transaction, context);\n    }\n  },\n\n  /**\n   * Destroys all event registrations for this instance. Does not remove from\n   * the DOM. That must be done by the parent.\n   *\n   * @internal\n   */\n  unmountComponent: function () {\n    switch (this._tag) {\n      case 'iframe':\n      case 'img':\n      case 'form':\n      case 'video':\n      case 'audio':\n        var listeners = this._wrapperState.listeners;\n        if (listeners) {\n          for (var i = 0; i < listeners.length; i++) {\n            listeners[i].remove();\n          }\n        }\n        break;\n      case 'input':\n        ReactDOMInput.unmountWrapper(this);\n        break;\n      case 'html':\n      case 'head':\n      case 'body':\n        /**\n         * Components like <html> <head> and <body> can't be removed or added\n         * easily in a cross-browser way, however it's valuable to be able to\n         * take advantage of React's reconciliation for styling and <title>\n         * management. So we just document it and throw in dangerous cases.\n         */\n        !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : undefined;\n        break;\n    }\n\n    this.unmountChildren();\n    ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID);\n    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n    this._rootNodeID = null;\n    this._wrapperState = null;\n    if (this._nodeWithLegacyProperties) {\n      var node = this._nodeWithLegacyProperties;\n      node._reactInternalComponent = null;\n      this._nodeWithLegacyProperties = null;\n    }\n  },\n\n  getPublicInstance: function () {\n    if (!this._nodeWithLegacyProperties) {\n      var node = ReactMount.getNode(this._rootNodeID);\n\n      node._reactInternalComponent = this;\n      node.getDOMNode = legacyGetDOMNode;\n      node.isMounted = legacyIsMounted;\n      node.setState = legacySetStateEtc;\n      node.replaceState = legacySetStateEtc;\n      node.forceUpdate = legacySetStateEtc;\n      node.setProps = legacySetProps;\n      node.replaceProps = legacyReplaceProps;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (canDefineProperty) {\n          Object.defineProperties(node, legacyPropsDescriptor);\n        } else {\n          // updateComponent will update this property on subsequent renders\n          node.props = this._currentElement.props;\n        }\n      } else {\n        // updateComponent will update this property on subsequent renders\n        node.props = this._currentElement.props;\n      }\n\n      this._nodeWithLegacyProperties = node;\n    }\n    return this._nodeWithLegacyProperties;\n  }\n\n};\n\nReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', {\n  mountComponent: 'mountComponent',\n  updateComponent: 'updateComponent'\n});\n\nassign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;"
    },
    {
      "id": 165,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/AutoFocusUtils.js",
      "name": "./~/react/lib/AutoFocusUtils.js",
      "index": 165,
      "index2": 160,
      "size": 816,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./AutoFocusUtils",
          "loc": "17:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nvar findDOMNode = require('./findDOMNode');\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar Mixin = {\n  componentDidMount: function () {\n    if (this.props.autoFocus) {\n      focusNode(findDOMNode(this));\n    }\n  }\n};\n\nvar AutoFocusUtils = {\n  Mixin: Mixin,\n\n  focusDOMComponent: function () {\n    focusNode(ReactMount.getNode(this._rootNodeID));\n  }\n};\n\nmodule.exports = AutoFocusUtils;"
    },
    {
      "id": 166,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/focusNode.js",
      "name": "./~/fbjs/lib/focusNode.js",
      "index": 166,
      "index2": 159,
      "size": 725,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/AutoFocusUtils.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 165,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/AutoFocusUtils.js",
          "module": "./~/react/lib/AutoFocusUtils.js",
          "moduleName": "./~/react/lib/AutoFocusUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/focusNode",
          "loc": "18:16-45"
        },
        {
          "moduleId": 197,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInputSelection.js",
          "module": "./~/react/lib/ReactInputSelection.js",
          "moduleName": "./~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/focusNode",
          "loc": "17:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule focusNode\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;"
    },
    {
      "id": 167,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
      "name": "./~/react/lib/CSSPropertyOperations.js",
      "index": 167,
      "index2": 168,
      "size": 5710,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./CSSPropertyOperations",
          "loc": "18:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactPerf = require('./ReactPerf');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n  return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n  var tempStyle = document.createElement('div').style;\n  try {\n    // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n    tempStyle.font = '';\n  } catch (e) {\n    hasShorthandPropertyBug = true;\n  }\n  // IE8 only supports accessing cssFloat (standard) as styleFloat\n  if (document.documentElement.style.cssFloat === undefined) {\n    styleFloatAccessor = 'styleFloat';\n  }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n  // style values shouldn't contain a semicolon\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name)) : undefined;\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)) : undefined;\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon. ' + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined;\n  };\n\n  /**\n   * @param {string} name\n   * @param {*} value\n   */\n  var warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n  };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n  /**\n   * Serializes a mapping of style properties for use as inline styles:\n   *\n   *   > createMarkupForStyles({width: '200px', height: 0})\n   *   \"width:200px;height:0;\"\n   *\n   * Undefined values are ignored so that declarative programming is easier.\n   * The result should be HTML-escaped before insertion into the DOM.\n   *\n   * @param {object} styles\n   * @return {?string}\n   */\n  createMarkupForStyles: function (styles) {\n    var serialized = '';\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      var styleValue = styles[styleName];\n      if (process.env.NODE_ENV !== 'production') {\n        warnValidStyle(styleName, styleValue);\n      }\n      if (styleValue != null) {\n        serialized += processStyleName(styleName) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue) + ';';\n      }\n    }\n    return serialized || null;\n  },\n\n  /**\n   * Sets the value for multiple styles on a node.  If a value is specified as\n   * '' (empty string), the corresponding style property will be unset.\n   *\n   * @param {DOMElement} node\n   * @param {object} styles\n   */\n  setValueForStyles: function (node, styles) {\n    var style = node.style;\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      if (process.env.NODE_ENV !== 'production') {\n        warnValidStyle(styleName, styles[styleName]);\n      }\n      var styleValue = dangerousStyleValue(styleName, styles[styleName]);\n      if (styleName === 'float') {\n        styleName = styleFloatAccessor;\n      }\n      if (styleValue) {\n        style[styleName] = styleValue;\n      } else {\n        var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n        if (expansion) {\n          // Shorthand property that IE8 won't like unsetting, so unset each\n          // component to placate it\n          for (var individualStyleName in expansion) {\n            style[individualStyleName] = '';\n          }\n        } else {\n          style[styleName] = '';\n        }\n      }\n    }\n  }\n\n};\n\nReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', {\n  setValueForStyles: 'setValueForStyles'\n});\n\nmodule.exports = CSSPropertyOperations;"
    },
    {
      "id": 168,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSProperty.js",
      "name": "./~/react/lib/CSSProperty.js",
      "index": 168,
      "index2": 161,
      "size": 3501,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./CSSProperty",
          "loc": "15:18-42"
        },
        {
          "moduleId": 171,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/dangerousStyleValue.js",
          "module": "./~/react/lib/dangerousStyleValue.js",
          "moduleName": "./~/react/lib/dangerousStyleValue.js",
          "type": "cjs require",
          "userRequest": "./CSSProperty",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n\n  // SVG-related properties\n  fillOpacity: true,\n  stopOpacity: true,\n  strokeDashoffset: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n  background: {\n    backgroundAttachment: true,\n    backgroundColor: true,\n    backgroundImage: true,\n    backgroundPositionX: true,\n    backgroundPositionY: true,\n    backgroundRepeat: true\n  },\n  backgroundPosition: {\n    backgroundPositionX: true,\n    backgroundPositionY: true\n  },\n  border: {\n    borderWidth: true,\n    borderStyle: true,\n    borderColor: true\n  },\n  borderBottom: {\n    borderBottomWidth: true,\n    borderBottomStyle: true,\n    borderBottomColor: true\n  },\n  borderLeft: {\n    borderLeftWidth: true,\n    borderLeftStyle: true,\n    borderLeftColor: true\n  },\n  borderRight: {\n    borderRightWidth: true,\n    borderRightStyle: true,\n    borderRightColor: true\n  },\n  borderTop: {\n    borderTopWidth: true,\n    borderTopStyle: true,\n    borderTopColor: true\n  },\n  font: {\n    fontStyle: true,\n    fontVariant: true,\n    fontWeight: true,\n    fontSize: true,\n    lineHeight: true,\n    fontFamily: true\n  },\n  outline: {\n    outlineWidth: true,\n    outlineStyle: true,\n    outlineColor: true\n  }\n};\n\nvar CSSProperty = {\n  isUnitlessNumber: isUnitlessNumber,\n  shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;"
    },
    {
      "id": 169,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/camelizeStyleName.js",
      "name": "./~/fbjs/lib/camelizeStyleName.js",
      "index": 169,
      "index2": 163,
      "size": 1031,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/camelizeStyleName",
          "loc": "19:24-61"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelizeStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n *   > camelizeStyleName('background-color')\n *   < \"backgroundColor\"\n *   > camelizeStyleName('-moz-transition')\n *   < \"MozTransition\"\n *   > camelizeStyleName('-ms-transition')\n *   < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n  return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;"
    },
    {
      "id": 170,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/camelize.js",
      "name": "./~/fbjs/lib/camelize.js",
      "index": 170,
      "index2": 162,
      "size": 729,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/camelizeStyleName.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 169,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/camelizeStyleName.js",
          "module": "./~/fbjs/lib/camelizeStyleName.js",
          "moduleName": "./~/fbjs/lib/camelizeStyleName.js",
          "type": "cjs require",
          "userRequest": "./camelize",
          "loc": "15:15-36"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelize\n * @typechecks\n */\n\n\"use strict\";\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n *   > camelize('background-color')\n *   < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n  return string.replace(_hyphenPattern, function (_, character) {\n    return character.toUpperCase();\n  });\n}\n\nmodule.exports = camelize;"
    },
    {
      "id": 171,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/dangerousStyleValue.js",
      "name": "./~/react/lib/dangerousStyleValue.js",
      "index": 171,
      "index2": 164,
      "size": 1927,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./dangerousStyleValue",
          "loc": "20:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n\n  var isNonNumeric = isNaN(value);\n  if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n    return '' + value; // cast to string\n  }\n\n  if (typeof value === 'string') {\n    value = value.trim();\n  }\n  return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;"
    },
    {
      "id": 172,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/hyphenateStyleName.js",
      "name": "./~/fbjs/lib/hyphenateStyleName.js",
      "index": 172,
      "index2": 166,
      "size": 1005,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/hyphenateStyleName",
          "loc": "21:25-63"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenateStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;"
    },
    {
      "id": 173,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/hyphenate.js",
      "name": "./~/fbjs/lib/hyphenate.js",
      "index": 173,
      "index2": 165,
      "size": 822,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/hyphenateStyleName.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 172,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/hyphenateStyleName.js",
          "module": "./~/fbjs/lib/hyphenateStyleName.js",
          "moduleName": "./~/fbjs/lib/hyphenateStyleName.js",
          "type": "cjs require",
          "userRequest": "./hyphenate",
          "loc": "15:16-38"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenate\n * @typechecks\n */\n\n'use strict';\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n *   > hyphenate('backgroundColor')\n *   < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n  return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;"
    },
    {
      "id": 174,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/memoizeStringOnly.js",
      "name": "./~/fbjs/lib/memoizeStringOnly.js",
      "index": 174,
      "index2": 167,
      "size": 778,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 167,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "./~/react/lib/CSSPropertyOperations.js",
          "moduleName": "./~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/memoizeStringOnly",
          "loc": "22:24-61"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule memoizeStringOnly\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n *\n * @param {function} callback\n * @return {function}\n */\nfunction memoizeStringOnly(callback) {\n  var cache = {};\n  return function (string) {\n    if (!cache.hasOwnProperty(string)) {\n      cache[string] = callback.call(this, string);\n    }\n    return cache[string];\n  };\n}\n\nmodule.exports = memoizeStringOnly;"
    },
    {
      "id": 175,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMButton.js",
      "name": "./~/react/lib/ReactDOMButton.js",
      "index": 175,
      "index2": 169,
      "size": 1154,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMButton",
          "loc": "24:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar mouseListenerNames = {\n  onClick: true,\n  onDoubleClick: true,\n  onMouseDown: true,\n  onMouseMove: true,\n  onMouseUp: true,\n\n  onClickCapture: true,\n  onDoubleClickCapture: true,\n  onMouseDownCapture: true,\n  onMouseMoveCapture: true,\n  onMouseUpCapture: true\n};\n\n/**\n * Implements a <button> native component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n  getNativeProps: function (inst, props, context) {\n    if (!props.disabled) {\n      return props;\n    }\n\n    // Copy the props, except the mouse listeners\n    var nativeProps = {};\n    for (var key in props) {\n      if (props.hasOwnProperty(key) && !mouseListenerNames[key]) {\n        nativeProps[key] = props[key];\n      }\n    }\n\n    return nativeProps;\n  }\n};\n\nmodule.exports = ReactDOMButton;"
    },
    {
      "id": 176,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
      "name": "./~/react/lib/ReactDOMInput.js",
      "index": 176,
      "index2": 173,
      "size": 5743,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMInput",
          "loc": "25:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar instancesByReactID = {};\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMInput.updateWrapper(this);\n  }\n}\n\n/**\n * Implements an <input> native component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n  getNativeProps: function (inst, props, context) {\n    var value = LinkedValueUtils.getValue(props);\n    var checked = LinkedValueUtils.getChecked(props);\n\n    var nativeProps = assign({}, props, {\n      defaultChecked: undefined,\n      defaultValue: undefined,\n      value: value != null ? value : inst._wrapperState.initialValue,\n      checked: checked != null ? checked : inst._wrapperState.initialChecked,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return nativeProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n    }\n\n    var defaultValue = props.defaultValue;\n    inst._wrapperState = {\n      initialChecked: props.defaultChecked || false,\n      initialValue: defaultValue != null ? defaultValue : null,\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  mountReadyWrapper: function (inst) {\n    // Can't be in mountWrapper or else server rendering leaks.\n    instancesByReactID[inst._rootNodeID] = inst;\n  },\n\n  unmountWrapper: function (inst) {\n    delete instancesByReactID[inst._rootNodeID];\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // TODO: Shouldn't this be getChecked(props)?\n    var checked = props.checked;\n    if (checked != null) {\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'checked', checked || false);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  // Here we use asap to wait until all updates have propagated, which\n  // is important when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var rootNode = ReactMount.getNode(this._rootNodeID);\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form, let's just use the global\n    // `querySelectorAll` to ensure we don't miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React with non-React.\n      var otherID = ReactMount.getID(otherNode);\n      !otherID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.') : invariant(false) : undefined;\n      var otherInstance = instancesByReactID[otherID];\n      !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Unknown radio button ID %s.', otherID) : invariant(false) : undefined;\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n    }\n  }\n\n  return returnValue;\n}\n\nmodule.exports = ReactDOMInput;"
    },
    {
      "id": 177,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/LinkedValueUtils.js",
      "name": "./~/react/lib/LinkedValueUtils.js",
      "index": 177,
      "index2": 172,
      "size": 5179,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 176,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMInput.js",
          "module": "./~/react/lib/ReactDOMInput.js",
          "moduleName": "./~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./LinkedValueUtils",
          "loc": "15:23-52"
        },
        {
          "moduleId": 183,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelect.js",
          "module": "./~/react/lib/ReactDOMSelect.js",
          "moduleName": "./~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./LinkedValueUtils",
          "loc": "14:23-52"
        },
        {
          "moduleId": 184,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "./~/react/lib/ReactDOMTextarea.js",
          "moduleName": "./~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./LinkedValueUtils",
          "loc": "14:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n  'button': true,\n  'checkbox': true,\n  'image': true,\n  'hidden': true,\n  'radio': true,\n  'reset': true,\n  'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n  !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use ' + 'checkedLink, you probably don\\'t want to use valueLink and vice versa.') : invariant(false) : undefined;\n}\nfunction _assertValueLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want ' + 'to use value or onChange, you probably don\\'t want to use valueLink.') : invariant(false) : undefined;\n}\n\nfunction _assertCheckedLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. ' + 'If you want to use checked or onChange, you probably don\\'t want to ' + 'use checkedLink') : invariant(false) : undefined;\n}\n\nvar propTypes = {\n  value: function (props, propName, componentName) {\n    if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  checked: function (props, propName, componentName) {\n    if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n  checkPropTypes: function (tagName, props, owner) {\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop);\n      }\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum(owner);\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined;\n      }\n    }\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current value of the input either from value prop or link.\n   */\n  getValue: function (inputProps) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.value;\n    }\n    return inputProps.value;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current checked status of the input either from checked prop\n   *             or link.\n   */\n  getChecked: function (inputProps) {\n    if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.value;\n    }\n    return inputProps.checked;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @param {SyntheticEvent} event change event to handle\n   */\n  executeOnChange: function (inputProps, event) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.requestChange(event.target.value);\n    } else if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.requestChange(event.target.checked);\n    } else if (inputProps.onChange) {\n      return inputProps.onChange.call(undefined, event);\n    }\n  }\n};\n\nmodule.exports = LinkedValueUtils;"
    },
    {
      "id": 178,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypes.js",
      "name": "./~/react/lib/ReactPropTypes.js",
      "index": 178,
      "index2": 171,
      "size": 12346,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 177,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/LinkedValueUtils.js",
          "module": "./~/react/lib/LinkedValueUtils.js",
          "moduleName": "./~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypes",
          "loc": "15:21-48"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypes",
          "loc": "20:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getIteratorFn = require('./getIteratorFn');\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n *   var Props = require('ReactPropTypes');\n *   var MyArticle = React.createClass({\n *     propTypes: {\n *       // An optional string prop named \"description\".\n *       description: Props.string,\n *\n *       // A required enum prop named \"category\".\n *       category: Props.oneOf(['News','Photos']).isRequired,\n *\n *       // A prop named \"dialog\" that requires an instance of Dialog.\n *       dialog: Props.instanceOf(Dialog).isRequired\n *     },\n *     render: function() { ... }\n *   });\n *\n * A more formal specification of how these methods are used:\n *\n *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n *   decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n *  var MyLink = React.createClass({\n *    propTypes: {\n *      // An optional string or URI prop named \"href\".\n *      href: function(props, propName, componentName) {\n *        var propValue = props[propName];\n *        if (propValue != null && typeof propValue !== 'string' &&\n *            !(propValue instanceof URI)) {\n *          return new Error(\n *            'Expected a string or an URI for ' + propName + ' in ' +\n *            componentName\n *          );\n *        }\n *      }\n *    },\n *    render: function() {...}\n *  });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n  array: createPrimitiveTypeChecker('array'),\n  bool: createPrimitiveTypeChecker('boolean'),\n  func: createPrimitiveTypeChecker('function'),\n  number: createPrimitiveTypeChecker('number'),\n  object: createPrimitiveTypeChecker('object'),\n  string: createPrimitiveTypeChecker('string'),\n\n  any: createAnyTypeChecker(),\n  arrayOf: createArrayOfTypeChecker,\n  element: createElementTypeChecker(),\n  instanceOf: createInstanceTypeChecker,\n  node: createNodeChecker(),\n  objectOf: createObjectOfTypeChecker,\n  oneOf: createEnumTypeChecker,\n  oneOfType: createUnionTypeChecker,\n  shape: createShapeTypeChecker\n};\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    componentName = componentName || ANONYMOUS;\n    propFullName = propFullName || propName;\n    if (props[propName] == null) {\n      var locationName = ReactPropTypeLocationNames[location];\n      if (isRequired) {\n        return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n      }\n      return null;\n    } else {\n      return validate(props, propName, componentName, location, propFullName);\n    }\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== expectedType) {\n      var locationName = ReactPropTypeLocationNames[location];\n      // `propValue` being instance of, say, date/regexp, pass the 'object'\n      // check, but we can offer a more precise error message here rather than\n      // 'of type `object`'.\n      var preciseType = getPreciseType(propValue);\n\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n  return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    if (!Array.isArray(propValue)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var propType = getPropType(propValue);\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n    }\n    for (var i = 0; i < propValue.length; i++) {\n      var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']');\n      if (error instanceof Error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!ReactElement.isValidElement(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!(props[propName] instanceof expectedClass)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var expectedClassName = expectedClass.name || ANONYMOUS;\n      var actualClassName = getClassName(props[propName]);\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n  if (!Array.isArray(expectedValues)) {\n    return createChainableTypeChecker(function () {\n      return new Error('Invalid argument supplied to oneOf, expected an instance of array.');\n    });\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    for (var i = 0; i < expectedValues.length; i++) {\n      if (propValue === expectedValues[i]) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    var valuesString = JSON.stringify(expectedValues);\n    return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n    }\n    for (var key in propValue) {\n      if (propValue.hasOwnProperty(key)) {\n        var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n  if (!Array.isArray(arrayOfTypeCheckers)) {\n    return createChainableTypeChecker(function () {\n      return new Error('Invalid argument supplied to oneOfType, expected an instance of array.');\n    });\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (checker(props, propName, componentName, location, propFullName) == null) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!isNode(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n    }\n    for (var key in shapeTypes) {\n      var checker = shapeTypes[key];\n      if (!checker) {\n        continue;\n      }\n      var error = checker(propValue, key, componentName, location, propFullName + '.' + key);\n      if (error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n  switch (typeof propValue) {\n    case 'number':\n    case 'string':\n    case 'undefined':\n      return true;\n    case 'boolean':\n      return !propValue;\n    case 'object':\n      if (Array.isArray(propValue)) {\n        return propValue.every(isNode);\n      }\n      if (propValue === null || ReactElement.isValidElement(propValue)) {\n        return true;\n      }\n\n      var iteratorFn = getIteratorFn(propValue);\n      if (iteratorFn) {\n        var iterator = iteratorFn.call(propValue);\n        var step;\n        if (iteratorFn !== propValue.entries) {\n          while (!(step = iterator.next()).done) {\n            if (!isNode(step.value)) {\n              return false;\n            }\n          }\n        } else {\n          // Iterator will provide entry [k,v] tuples rather than values.\n          while (!(step = iterator.next()).done) {\n            var entry = step.value;\n            if (entry) {\n              if (!isNode(entry[1])) {\n                return false;\n              }\n            }\n          }\n        }\n      } else {\n        return false;\n      }\n\n      return true;\n    default:\n      return false;\n  }\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n  var propType = typeof propValue;\n  if (Array.isArray(propValue)) {\n    return 'array';\n  }\n  if (propValue instanceof RegExp) {\n    // Old webkits (at least until Android 4.0) return 'function' rather than\n    // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n    // passes PropTypes.object.\n    return 'object';\n  }\n  return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n  var propType = getPropType(propValue);\n  if (propType === 'object') {\n    if (propValue instanceof Date) {\n      return 'date';\n    } else if (propValue instanceof RegExp) {\n      return 'regexp';\n    }\n  }\n  return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n  if (!propValue.constructor || !propValue.constructor.name) {\n    return '<<anonymous>>';\n  }\n  return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;"
    },
    {
      "id": 179,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getIteratorFn.js",
      "name": "./~/react/lib/getIteratorFn.js",
      "index": 179,
      "index2": 170,
      "size": 1171,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 178,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactPropTypes.js",
          "module": "./~/react/lib/ReactPropTypes.js",
          "moduleName": "./~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "./getIteratorFn",
          "loc": "18:20-46"
        },
        {
          "moduleId": 182,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
          "module": "./~/react/lib/traverseAllChildren.js",
          "moduleName": "./~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./getIteratorFn",
          "loc": "18:20-46"
        },
        {
          "moduleId": 225,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
          "module": "./~/react/lib/ReactElementValidator.js",
          "moduleName": "./~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./getIteratorFn",
          "loc": "27:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * @typechecks static-only\n */\n\n'use strict';\n\n/* global Symbol */\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n *     var iteratorFn = getIteratorFn(myIterable);\n *     if (iteratorFn) {\n *       var iterator = iteratorFn.call(myIterable);\n *       ...\n *     }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n  var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n  if (typeof iteratorFn === 'function') {\n    return iteratorFn;\n  }\n}\n\nmodule.exports = getIteratorFn;"
    },
    {
      "id": 180,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMOption.js",
      "name": "./~/react/lib/ReactDOMOption.js",
      "index": 180,
      "index2": 177,
      "size": 2822,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMOption",
          "loc": "26:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\nvar valueContextKey = ReactDOMSelect.valueContextKey;\n\n/**\n * Implements an <option> native component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n  mountWrapper: function (inst, props, context) {\n    // TODO (yungsters): Remove support for `selected` in <option>.\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : undefined;\n    }\n\n    // Look up whether this option is 'selected' via context\n    var selectValue = context[valueContextKey];\n\n    // If context key is null (e.g., no specified value or after initial mount)\n    // or missing (e.g., for <datalist>), we don't change props.selected\n    var selected = null;\n    if (selectValue != null) {\n      selected = false;\n      if (Array.isArray(selectValue)) {\n        // multiple\n        for (var i = 0; i < selectValue.length; i++) {\n          if ('' + selectValue[i] === '' + props.value) {\n            selected = true;\n            break;\n          }\n        }\n      } else {\n        selected = '' + selectValue === '' + props.value;\n      }\n    }\n\n    inst._wrapperState = { selected: selected };\n  },\n\n  getNativeProps: function (inst, props, context) {\n    var nativeProps = assign({ selected: undefined, children: undefined }, props);\n\n    // Read state only from initial mount because <select> updates value\n    // manually; we need the initial state only for server rendering\n    if (inst._wrapperState.selected != null) {\n      nativeProps.selected = inst._wrapperState.selected;\n    }\n\n    var content = '';\n\n    // Flatten children and warn if they aren't strings or numbers;\n    // invalid types are ignored.\n    ReactChildren.forEach(props.children, function (child) {\n      if (child == null) {\n        return;\n      }\n      if (typeof child === 'string' || typeof child === 'number') {\n        content += child;\n      } else {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : undefined;\n      }\n    });\n\n    if (content) {\n      nativeProps.children = content;\n    }\n\n    return nativeProps;\n  }\n\n};\n\nmodule.exports = ReactDOMOption;"
    },
    {
      "id": 181,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildren.js",
      "name": "./~/react/lib/ReactChildren.js",
      "index": 181,
      "index2": 175,
      "size": 5835,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 180,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMOption.js",
          "module": "./~/react/lib/ReactDOMOption.js",
          "moduleName": "./~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "./ReactChildren",
          "loc": "14:20-46"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactChildren",
          "loc": "14:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/(?!\\/)/g;\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '//');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n  this.func = forEachFunction;\n  this.context = forEachContext;\n  this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n  var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n  this.result = mapResult;\n  this.keyPrefix = keyPrefix;\n  this.func = mapFunction;\n  this.context = mapContext;\n  this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n  this.result = null;\n  this.keyPrefix = null;\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result;\n  var keyPrefix = bookKeeping.keyPrefix;\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n  } else if (mappedChild != null) {\n    if (ReactElement.isValidElement(mappedChild)) {\n      mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n      // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild !== child ? escapeUserProvidedKey(mappedChild.key || '') + '/' : '') + childKey);\n    }\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n  var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n  return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n  return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n */\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n  return result;\n}\n\nvar ReactChildren = {\n  forEach: forEachChildren,\n  map: mapChildren,\n  mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n  count: countChildren,\n  toArray: toArray\n};\n\nmodule.exports = ReactChildren;"
    },
    {
      "id": 182,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/traverseAllChildren.js",
      "name": "./~/react/lib/traverseAllChildren.js",
      "index": 182,
      "index2": 174,
      "size": 6897,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildren.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 181,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildren.js",
          "module": "./~/react/lib/ReactChildren.js",
          "moduleName": "./~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "./traverseAllChildren",
          "loc": "18:26-58"
        },
        {
          "moduleId": 186,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildReconciler.js",
          "module": "./~/react/lib/ReactChildReconciler.js",
          "moduleName": "./~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./traverseAllChildren",
          "loc": "19:26-58"
        },
        {
          "moduleId": 187,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/flattenChildren.js",
          "module": "./~/react/lib/flattenChildren.js",
          "moduleName": "./~/react/lib/flattenChildren.js",
          "type": "cjs require",
          "userRequest": "./traverseAllChildren",
          "loc": "14:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = ReactInstanceHandles.SEPARATOR;\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar userProvidedKeyEscaperLookup = {\n  '=': '=0',\n  '.': '=1',\n  ':': '=2'\n};\n\nvar userProvidedKeyEscapeRegex = /[=.:]/g;\n\nvar didWarnAboutMaps = false;\n\nfunction userProvidedKeyEscaper(match) {\n  return userProvidedKeyEscaperLookup[match];\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n  if (component && component.key != null) {\n    // Explicit key\n    return wrapUserProvidedKey(component.key);\n  }\n  // Implicit key determined by the index in the set\n  return index.toString(36);\n}\n\n/**\n * Escape a component key so that it is safe to use in a reactid.\n *\n * @param {*} text Component key to be escaped.\n * @return {string} An escaped string.\n */\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper);\n}\n\n/**\n * Wrap a `key` value explicitly provided by the user to distinguish it from\n * implicitly-generated keys generated by a component's index in its parent.\n *\n * @param {string} key Value of a user-provided `key` attribute\n * @return {string}\n */\nfunction wrapUserProvidedKey(key) {\n  return '$' + escapeUserProvidedKey(key);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n    callback(traverseContext, children,\n    // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n    if (iteratorFn) {\n      var iterator = iteratorFn.call(children);\n      var step;\n      if (iteratorFn !== children.entries) {\n        var ii = 0;\n        while (!(step = iterator.next()).done) {\n          child = step.value;\n          nextName = nextNamePrefix + getComponentKey(child, ii++);\n          subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n        }\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : undefined;\n          didWarnAboutMaps = true;\n        }\n        // Iterator will provide entry [k,v] tuples rather than values.\n        while (!(step = iterator.next()).done) {\n          var entry = step.value;\n          if (entry) {\n            child = entry[1];\n            nextName = nextNamePrefix + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n            subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n          }\n        }\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n      if (process.env.NODE_ENV !== 'production') {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n        if (children._isReactElement) {\n          addendum = ' It looks like you\\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';\n        }\n        if (ReactCurrentOwner.current) {\n          var name = ReactCurrentOwner.current.getName();\n          if (name) {\n            addendum += ' Check the render method of `' + name + '`.';\n          }\n        }\n      }\n      var childrenString = String(children);\n      !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined;\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;"
    },
    {
      "id": 183,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelect.js",
      "name": "./~/react/lib/ReactDOMSelect.js",
      "index": 183,
      "index2": 176,
      "size": 6106,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMSelect",
          "loc": "27:21-48"
        },
        {
          "moduleId": 180,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMOption.js",
          "module": "./~/react/lib/ReactDOMOption.js",
          "moduleName": "./~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMSelect",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\nvar valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2);\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n  if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n    this._wrapperState.pendingUpdate = false;\n\n    var props = this._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n\n    if (value != null) {\n      updateOptions(this, Boolean(props.multiple), value);\n    }\n  }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n  var owner = inst._currentElement._owner;\n  LinkedValueUtils.checkPropTypes('select', props, owner);\n\n  for (var i = 0; i < valuePropNames.length; i++) {\n    var propName = valuePropNames[i];\n    if (props[propName] == null) {\n      continue;\n    }\n    if (props.multiple) {\n      process.env.NODE_ENV !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n    } else {\n      process.env.NODE_ENV !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n    }\n  }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n  var selectedValue, i;\n  var options = ReactMount.getNode(inst._rootNodeID).options;\n\n  if (multiple) {\n    selectedValue = {};\n    for (i = 0; i < propValue.length; i++) {\n      selectedValue['' + propValue[i]] = true;\n    }\n    for (i = 0; i < options.length; i++) {\n      var selected = selectedValue.hasOwnProperty(options[i].value);\n      if (options[i].selected !== selected) {\n        options[i].selected = selected;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    selectedValue = '' + propValue;\n    for (i = 0; i < options.length; i++) {\n      if (options[i].value === selectedValue) {\n        options[i].selected = true;\n        return;\n      }\n    }\n    if (options.length) {\n      options[0].selected = true;\n    }\n  }\n}\n\n/**\n * Implements a <select> native component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n  valueContextKey: valueContextKey,\n\n  getNativeProps: function (inst, props, context) {\n    return assign({}, props, {\n      onChange: inst._wrapperState.onChange,\n      value: undefined\n    });\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      checkSelectPropTypes(inst, props);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    inst._wrapperState = {\n      pendingUpdate: false,\n      initialValue: value != null ? value : props.defaultValue,\n      onChange: _handleChange.bind(inst),\n      wasMultiple: Boolean(props.multiple)\n    };\n  },\n\n  processChildContext: function (inst, props, context) {\n    // Pass down initial value so initial generated markup has correct\n    // `selected` attributes\n    var childContext = assign({}, context);\n    childContext[valueContextKey] = inst._wrapperState.initialValue;\n    return childContext;\n  },\n\n  postUpdateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // After the initial mount, we control selected-ness manually so don't pass\n    // the context value down\n    inst._wrapperState.initialValue = undefined;\n\n    var wasMultiple = inst._wrapperState.wasMultiple;\n    inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      inst._wrapperState.pendingUpdate = false;\n      updateOptions(inst, Boolean(props.multiple), value);\n    } else if (wasMultiple !== Boolean(props.multiple)) {\n      // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n      if (props.defaultValue != null) {\n        updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n      } else {\n        // Revert the select back to its default unselected state.\n        updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n      }\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  this._wrapperState.pendingUpdate = true;\n  ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;"
    },
    {
      "id": 184,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMTextarea.js",
      "name": "./~/react/lib/ReactDOMTextarea.js",
      "index": 184,
      "index2": 178,
      "size": 4347,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMTextarea",
          "loc": "28:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMTextarea.updateWrapper(this);\n  }\n}\n\n/**\n * Implements a <textarea> native component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n  getNativeProps: function (inst, props, context) {\n    !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : invariant(false) : undefined;\n\n    // Always set children to the same thing. In IE9, the selection range will\n    // get reset if `textContent` is mutated.\n    var nativeProps = assign({}, props, {\n      defaultValue: undefined,\n      value: undefined,\n      children: inst._wrapperState.initialValue,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return nativeProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n    }\n\n    var defaultValue = props.defaultValue;\n    // TODO (yungsters): Remove support for children content in <textarea>.\n    var children = props.children;\n    if (children != null) {\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : undefined;\n      }\n      !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : invariant(false) : undefined;\n      if (Array.isArray(children)) {\n        !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : invariant(false) : undefined;\n        children = children[0];\n      }\n\n      defaultValue = '' + children;\n    }\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n    var value = LinkedValueUtils.getValue(props);\n\n    inst._wrapperState = {\n      // We save the initial value so that `ReactDOMComponent` doesn't update\n      // `textContent` (unnecessary since we update value).\n      // The initial value can be a boolean or object so that's why it's\n      // forced to be a string.\n      initialValue: '' + (value != null ? value : defaultValue),\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;"
    },
    {
      "id": 185,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
      "name": "./~/react/lib/ReactMultiChild.js",
      "index": 185,
      "index2": 181,
      "size": 14685,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactMultiChild",
          "loc": "30:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar flattenChildren = require('./flattenChildren');\n\n/**\n * Updating children of a component may trigger recursive updates. The depth is\n * used to batch recursive updates to render markup more efficiently.\n *\n * @type {number}\n * @private\n */\nvar updateDepth = 0;\n\n/**\n * Queue of update configuration objects.\n *\n * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`.\n *\n * @type {array<object>}\n * @private\n */\nvar updateQueue = [];\n\n/**\n * Queue of markup to be rendered.\n *\n * @type {array<string>}\n * @private\n */\nvar markupQueue = [];\n\n/**\n * Enqueues markup to be rendered and inserted at a supplied index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction enqueueInsertMarkup(parentID, markup, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n    markupIndex: markupQueue.push(markup) - 1,\n    content: null,\n    fromIndex: null,\n    toIndex: toIndex\n  });\n}\n\n/**\n * Enqueues moving an existing element to another index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction enqueueMove(parentID, fromIndex, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n    markupIndex: null,\n    content: null,\n    fromIndex: fromIndex,\n    toIndex: toIndex\n  });\n}\n\n/**\n * Enqueues removing an element at an index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction enqueueRemove(parentID, fromIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n    markupIndex: null,\n    content: null,\n    fromIndex: fromIndex,\n    toIndex: null\n  });\n}\n\n/**\n * Enqueues setting the markup of a node.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction enqueueSetMarkup(parentID, markup) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.SET_MARKUP,\n    markupIndex: null,\n    content: markup,\n    fromIndex: null,\n    toIndex: null\n  });\n}\n\n/**\n * Enqueues setting the text content.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction enqueueTextContent(parentID, textContent) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n    markupIndex: null,\n    content: textContent,\n    fromIndex: null,\n    toIndex: null\n  });\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue() {\n  if (updateQueue.length) {\n    ReactComponentEnvironment.processChildrenUpdates(updateQueue, markupQueue);\n    clearQueue();\n  }\n}\n\n/**\n * Clears any enqueued updates.\n *\n * @private\n */\nfunction clearQueue() {\n  updateQueue.length = 0;\n  markupQueue.length = 0;\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n  /**\n   * Provides common functionality for components that must reconcile multiple\n   * children. This is used by `ReactDOMComponent` to mount, update, and\n   * unmount child components.\n   *\n   * @lends {ReactMultiChild.prototype}\n   */\n  Mixin: {\n\n    _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n        }\n      }\n      return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n    },\n\n    _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, transaction, context) {\n      var nextChildren;\n      if (process.env.NODE_ENV !== 'production') {\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            nextChildren = flattenChildren(nextNestedChildrenElements);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n          return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n        }\n      }\n      nextChildren = flattenChildren(nextNestedChildrenElements);\n      return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n    },\n\n    /**\n     * Generates a \"mount image\" for each of the supplied children. In the case\n     * of `ReactDOMComponent`, a mount image is a string of markup.\n     *\n     * @param {?object} nestedChildren Nested child maps.\n     * @return {array} An array of mounted representations.\n     * @internal\n     */\n    mountChildren: function (nestedChildren, transaction, context) {\n      var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n      this._renderedChildren = children;\n      var mountImages = [];\n      var index = 0;\n      for (var name in children) {\n        if (children.hasOwnProperty(name)) {\n          var child = children[name];\n          // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n          var rootID = this._rootNodeID + name;\n          var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n          child._mountIndex = index++;\n          mountImages.push(mountImage);\n        }\n      }\n      return mountImages;\n    },\n\n    /**\n     * Replaces any rendered children with a text content string.\n     *\n     * @param {string} nextContent String of content.\n     * @internal\n     */\n    updateTextContent: function (nextContent) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        var prevChildren = this._renderedChildren;\n        // Remove any rendered children.\n        ReactChildReconciler.unmountChildren(prevChildren);\n        // TODO: The setTextContent operation should be enough\n        for (var name in prevChildren) {\n          if (prevChildren.hasOwnProperty(name)) {\n            this._unmountChild(prevChildren[name]);\n          }\n        }\n        // Set new text content.\n        this.setTextContent(nextContent);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Replaces any rendered children with a markup string.\n     *\n     * @param {string} nextMarkup String of markup.\n     * @internal\n     */\n    updateMarkup: function (nextMarkup) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        var prevChildren = this._renderedChildren;\n        // Remove any rendered children.\n        ReactChildReconciler.unmountChildren(prevChildren);\n        for (var name in prevChildren) {\n          if (prevChildren.hasOwnProperty(name)) {\n            this._unmountChildByName(prevChildren[name], name);\n          }\n        }\n        this.setMarkup(nextMarkup);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Updates the rendered children with new children.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @internal\n     */\n    updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        this._updateChildren(nextNestedChildrenElements, transaction, context);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Improve performance by isolating this hot code path from the try/catch\n     * block in `updateChildren`.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @final\n     * @protected\n     */\n    _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      var prevChildren = this._renderedChildren;\n      var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context);\n      this._renderedChildren = nextChildren;\n      if (!nextChildren && !prevChildren) {\n        return;\n      }\n      var name;\n      // `nextIndex` will increment for each child in `nextChildren`, but\n      // `lastIndex` will be the last index visited in `prevChildren`.\n      var lastIndex = 0;\n      var nextIndex = 0;\n      for (name in nextChildren) {\n        if (!nextChildren.hasOwnProperty(name)) {\n          continue;\n        }\n        var prevChild = prevChildren && prevChildren[name];\n        var nextChild = nextChildren[name];\n        if (prevChild === nextChild) {\n          this.moveChild(prevChild, nextIndex, lastIndex);\n          lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n          prevChild._mountIndex = nextIndex;\n        } else {\n          if (prevChild) {\n            // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n            lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n            this._unmountChild(prevChild);\n          }\n          // The child must be instantiated before it's mounted.\n          this._mountChildByNameAtIndex(nextChild, name, nextIndex, transaction, context);\n        }\n        nextIndex++;\n      }\n      // Remove children that are no longer present.\n      for (name in prevChildren) {\n        if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n          this._unmountChild(prevChildren[name]);\n        }\n      }\n    },\n\n    /**\n     * Unmounts all rendered children. This should be used to clean up children\n     * when this component is unmounted.\n     *\n     * @internal\n     */\n    unmountChildren: function () {\n      var renderedChildren = this._renderedChildren;\n      ReactChildReconciler.unmountChildren(renderedChildren);\n      this._renderedChildren = null;\n    },\n\n    /**\n     * Moves a child component to the supplied index.\n     *\n     * @param {ReactComponent} child Component to move.\n     * @param {number} toIndex Destination index of the element.\n     * @param {number} lastIndex Last index visited of the siblings of `child`.\n     * @protected\n     */\n    moveChild: function (child, toIndex, lastIndex) {\n      // If the index of `child` is less than `lastIndex`, then it needs to\n      // be moved. Otherwise, we do not need to move it because a child will be\n      // inserted or moved before `child`.\n      if (child._mountIndex < lastIndex) {\n        enqueueMove(this._rootNodeID, child._mountIndex, toIndex);\n      }\n    },\n\n    /**\n     * Creates a child component.\n     *\n     * @param {ReactComponent} child Component to create.\n     * @param {string} mountImage Markup to insert.\n     * @protected\n     */\n    createChild: function (child, mountImage) {\n      enqueueInsertMarkup(this._rootNodeID, mountImage, child._mountIndex);\n    },\n\n    /**\n     * Removes a child component.\n     *\n     * @param {ReactComponent} child Child to remove.\n     * @protected\n     */\n    removeChild: function (child) {\n      enqueueRemove(this._rootNodeID, child._mountIndex);\n    },\n\n    /**\n     * Sets this text content string.\n     *\n     * @param {string} textContent Text content to set.\n     * @protected\n     */\n    setTextContent: function (textContent) {\n      enqueueTextContent(this._rootNodeID, textContent);\n    },\n\n    /**\n     * Sets this markup string.\n     *\n     * @param {string} markup Markup to set.\n     * @protected\n     */\n    setMarkup: function (markup) {\n      enqueueSetMarkup(this._rootNodeID, markup);\n    },\n\n    /**\n     * Mounts a child with the supplied name.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to mount.\n     * @param {string} name Name of the child.\n     * @param {number} index Index at which to insert the child.\n     * @param {ReactReconcileTransaction} transaction\n     * @private\n     */\n    _mountChildByNameAtIndex: function (child, name, index, transaction, context) {\n      // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n      var rootID = this._rootNodeID + name;\n      var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n      child._mountIndex = index;\n      this.createChild(child, mountImage);\n    },\n\n    /**\n     * Unmounts a rendered child.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to unmount.\n     * @private\n     */\n    _unmountChild: function (child) {\n      this.removeChild(child);\n      child._mountIndex = null;\n    }\n\n  }\n\n};\n\nmodule.exports = ReactMultiChild;"
    },
    {
      "id": 186,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactChildReconciler.js",
      "name": "./~/react/lib/ReactChildReconciler.js",
      "index": 186,
      "index2": 179,
      "size": 4521,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 185,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
          "module": "./~/react/lib/ReactMultiChild.js",
          "moduleName": "./~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactChildReconciler",
          "loc": "20:27-60"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nfunction instantiateChild(childInstances, child, name) {\n  // We found a component instance.\n  var keyUnique = childInstances[name] === undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n  }\n  if (child != null && keyUnique) {\n    childInstances[name] = instantiateReactComponent(child, null);\n  }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n  /**\n   * Generates a \"mount image\" for each of the supplied children. In the case\n   * of `ReactDOMComponent`, a mount image is a string of markup.\n   *\n   * @param {?object} nestedChildNodes Nested child maps.\n   * @return {?object} A set of child instances.\n   * @internal\n   */\n  instantiateChildren: function (nestedChildNodes, transaction, context) {\n    if (nestedChildNodes == null) {\n      return null;\n    }\n    var childInstances = {};\n    traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n    return childInstances;\n  },\n\n  /**\n   * Updates the rendered children and returns a new set of children.\n   *\n   * @param {?object} prevChildren Previously initialized set of children.\n   * @param {?object} nextChildren Flat child element maps.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @return {?object} A new set of child instances.\n   * @internal\n   */\n  updateChildren: function (prevChildren, nextChildren, transaction, context) {\n    // We currently don't have a way to track moves here but if we use iterators\n    // instead of for..in we can zip the iterators and check if an item has\n    // moved.\n    // TODO: If nothing has changed, return the prevChildren object so that we\n    // can quickly bailout if nothing has changed.\n    if (!nextChildren && !prevChildren) {\n      return null;\n    }\n    var name;\n    for (name in nextChildren) {\n      if (!nextChildren.hasOwnProperty(name)) {\n        continue;\n      }\n      var prevChild = prevChildren && prevChildren[name];\n      var prevElement = prevChild && prevChild._currentElement;\n      var nextElement = nextChildren[name];\n      if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n        ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n        nextChildren[name] = prevChild;\n      } else {\n        if (prevChild) {\n          ReactReconciler.unmountComponent(prevChild, name);\n        }\n        // The child must be instantiated before it's mounted.\n        var nextChildInstance = instantiateReactComponent(nextElement, null);\n        nextChildren[name] = nextChildInstance;\n      }\n    }\n    // Unmount children that are no longer present.\n    for (name in prevChildren) {\n      if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n        ReactReconciler.unmountComponent(prevChildren[name]);\n      }\n    }\n    return nextChildren;\n  },\n\n  /**\n   * Unmounts all rendered children. This should be used to clean up children\n   * when this component is unmounted.\n   *\n   * @param {?object} renderedChildren Previously initialized set of children.\n   * @internal\n   */\n  unmountChildren: function (renderedChildren) {\n    for (var name in renderedChildren) {\n      if (renderedChildren.hasOwnProperty(name)) {\n        var renderedChild = renderedChildren[name];\n        ReactReconciler.unmountComponent(renderedChild);\n      }\n    }\n  }\n\n};\n\nmodule.exports = ReactChildReconciler;"
    },
    {
      "id": 187,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/flattenChildren.js",
      "name": "./~/react/lib/flattenChildren.js",
      "index": 187,
      "index2": 180,
      "size": 1653,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 185,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactMultiChild.js",
          "module": "./~/react/lib/ReactMultiChild.js",
          "moduleName": "./~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./flattenChildren",
          "loc": "22:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n */\n\n'use strict';\n\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name) {\n  // We found a component instance.\n  var result = traverseContext;\n  var keyUnique = result[name] === undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n  }\n  if (keyUnique && child != null) {\n    result[name] = child;\n  }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n  var result = {};\n  traverseAllChildren(children, flattenSingleChildIntoContext, result);\n  return result;\n}\n\nmodule.exports = flattenChildren;"
    },
    {
      "id": 188,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/shallowEqual.js",
      "name": "./~/fbjs/lib/shallowEqual.js",
      "index": 188,
      "index2": 182,
      "size": 1276,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 164,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMComponent.js",
          "module": "./~/react/lib/ReactDOMComponent.js",
          "moduleName": "./~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/shallowEqual",
          "loc": "42:19-51"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/shallowEqual",
          "loc": "23:19-51"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqual\n * @typechecks\n * \n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  var bHasOwnProperty = hasOwnProperty.bind(objB);\n  for (var i = 0; i < keysA.length; i++) {\n    if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;"
    },
    {
      "id": 189,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
      "name": "./~/react/lib/ReactEventListener.js",
      "index": 189,
      "index2": 186,
      "size": 7513,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactEventListener",
          "loc": "26:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * Finds the parent React component of `node`.\n *\n * @param {*} node\n * @return {?DOMEventTarget} Parent container, or `null` if the specified node\n *                           is not nested.\n */\nfunction findParent(node) {\n  // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n  var nodeID = ReactMount.getID(node);\n  var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n  var container = ReactMount.findReactContainerForID(rootID);\n  var parent = ReactMount.getFirstReactDOM(container);\n  return parent;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n  this.topLevelType = topLevelType;\n  this.nativeEvent = nativeEvent;\n  this.ancestors = [];\n}\nassign(TopLevelCallbackBookKeeping.prototype, {\n  destructor: function () {\n    this.topLevelType = null;\n    this.nativeEvent = null;\n    this.ancestors.length = 0;\n  }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n  // TODO: Re-enable event.path handling\n  //\n  // if (bookKeeping.nativeEvent.path && bookKeeping.nativeEvent.path.length > 1) {\n  //   // New browsers have a path attribute on native events\n  //   handleTopLevelWithPath(bookKeeping);\n  // } else {\n  //   // Legacy browsers don't have a path attribute on native events\n  //   handleTopLevelWithoutPath(bookKeeping);\n  // }\n\n  void handleTopLevelWithPath; // temporarily unused\n  handleTopLevelWithoutPath(bookKeeping);\n}\n\n// Legacy browsers don't have a path attribute on native events\nfunction handleTopLevelWithoutPath(bookKeeping) {\n  var topLevelTarget = ReactMount.getFirstReactDOM(getEventTarget(bookKeeping.nativeEvent)) || window;\n\n  // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n  var ancestor = topLevelTarget;\n  while (ancestor) {\n    bookKeeping.ancestors.push(ancestor);\n    ancestor = findParent(ancestor);\n  }\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    topLevelTarget = bookKeeping.ancestors[i];\n    var topLevelTargetID = ReactMount.getID(topLevelTarget) || '';\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, topLevelTarget, topLevelTargetID, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\n// New browsers have a path attribute on native events\nfunction handleTopLevelWithPath(bookKeeping) {\n  var path = bookKeeping.nativeEvent.path;\n  var currentNativeTarget = path[0];\n  var eventsFired = 0;\n  for (var i = 0; i < path.length; i++) {\n    var currentPathElement = path[i];\n    if (currentPathElement.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE) {\n      currentNativeTarget = path[i + 1];\n    }\n    // TODO: slow\n    var reactParent = ReactMount.getFirstReactDOM(currentPathElement);\n    if (reactParent === currentPathElement) {\n      var currentPathElementID = ReactMount.getID(currentPathElement);\n      var newRootID = ReactInstanceHandles.getReactRootIDFromNodeID(currentPathElementID);\n      bookKeeping.ancestors.push(currentPathElement);\n\n      var topLevelTargetID = ReactMount.getID(currentPathElement) || '';\n      eventsFired++;\n      ReactEventListener._handleTopLevel(bookKeeping.topLevelType, currentPathElement, topLevelTargetID, bookKeeping.nativeEvent, currentNativeTarget);\n\n      // Jump to the root of this React render tree\n      while (currentPathElementID !== newRootID) {\n        i++;\n        currentPathElement = path[i];\n        currentPathElementID = ReactMount.getID(currentPathElement);\n      }\n    }\n  }\n  if (eventsFired === 0) {\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, window, '', bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\nfunction scrollValueMonitor(cb) {\n  var scrollPosition = getUnboundedScrollPosition(window);\n  cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n  _enabled: true,\n  _handleTopLevel: null,\n\n  WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n  setHandleTopLevel: function (handleTopLevel) {\n    ReactEventListener._handleTopLevel = handleTopLevel;\n  },\n\n  setEnabled: function (enabled) {\n    ReactEventListener._enabled = !!enabled;\n  },\n\n  isEnabled: function () {\n    return ReactEventListener._enabled;\n  },\n\n  /**\n   * Traps top-level events by using event bubbling.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  /**\n   * Traps a top-level event by using event capturing.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  monitorScrollValue: function (refresh) {\n    var callback = scrollValueMonitor.bind(null, refresh);\n    EventListener.listen(window, 'scroll', callback);\n  },\n\n  dispatchEvent: function (topLevelType, nativeEvent) {\n    if (!ReactEventListener._enabled) {\n      return;\n    }\n\n    var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n    try {\n      // Event queue being processed in the same cycle allows\n      // `preventDefault`.\n      ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n    } finally {\n      TopLevelCallbackBookKeeping.release(bookKeeping);\n    }\n  }\n};\n\nmodule.exports = ReactEventListener;"
    },
    {
      "id": 190,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/EventListener.js",
      "name": "./~/fbjs/lib/EventListener.js",
      "index": 190,
      "index2": 184,
      "size": 2653,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/EventListener",
          "loc": "15:20-53"
        },
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/EventListener",
          "loc": "15:20-53"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule EventListener\n * @typechecks\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function (target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function () {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function () {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function (target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function () {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function () {}\n};\n\nmodule.exports = EventListener;"
    },
    {
      "id": 191,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/getUnboundedScrollPosition.js",
      "name": "./~/fbjs/lib/getUnboundedScrollPosition.js",
      "index": 191,
      "index2": 185,
      "size": 1091,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 189,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactEventListener.js",
          "module": "./~/react/lib/ReactEventListener.js",
          "moduleName": "./~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getUnboundedScrollPosition",
          "loc": "24:33-79"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getUnboundedScrollPosition\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\nfunction getUnboundedScrollPosition(scrollable) {\n  if (scrollable === window) {\n    return {\n      x: window.pageXOffset || document.documentElement.scrollLeft,\n      y: window.pageYOffset || document.documentElement.scrollTop\n    };\n  }\n  return {\n    x: scrollable.scrollLeft,\n    y: scrollable.scrollTop\n  };\n}\n\nmodule.exports = getUnboundedScrollPosition;"
    },
    {
      "id": 192,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
      "name": "./~/react/lib/ReactInjection.js",
      "index": 192,
      "index2": 190,
      "size": 1368,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactInjection",
          "loc": "27:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactClass = require('./ReactClass');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactNativeComponent = require('./ReactNativeComponent');\nvar ReactPerf = require('./ReactPerf');\nvar ReactRootIndex = require('./ReactRootIndex');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n  Component: ReactComponentEnvironment.injection,\n  Class: ReactClass.injection,\n  DOMProperty: DOMProperty.injection,\n  EmptyComponent: ReactEmptyComponent.injection,\n  EventPluginHub: EventPluginHub.injection,\n  EventEmitter: ReactBrowserEventEmitter.injection,\n  NativeComponent: ReactNativeComponent.injection,\n  Perf: ReactPerf.injection,\n  RootIndex: ReactRootIndex.injection,\n  Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;"
    },
    {
      "id": 193,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
      "name": "./~/react/lib/ReactClass.js",
      "index": 193,
      "index2": 189,
      "size": 27823,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 192,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInjection.js",
          "module": "./~/react/lib/ReactInjection.js",
          "moduleName": "./~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactClass",
          "loc": "17:17-40"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactClass",
          "loc": "16:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar keyMirror = require('fbjs/lib/keyMirror');\nvar keyOf = require('fbjs/lib/keyOf');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n  /**\n   * These methods may be defined only once by the class specification or mixin.\n   */\n  DEFINE_ONCE: null,\n  /**\n   * These methods may be defined by both the class specification and mixins.\n   * Subsequent definitions will be chained. These methods must return void.\n   */\n  DEFINE_MANY: null,\n  /**\n   * These methods are overriding the base class.\n   */\n  OVERRIDE_BASE: null,\n  /**\n   * These methods are similar to DEFINE_MANY, except we assume they return\n   * objects. We try to merge the keys of the return values of all the mixed in\n   * functions. If there is a key conflict we throw.\n   */\n  DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\nvar warnedSetProps = false;\nfunction warnSetProps() {\n  if (!warnedSetProps) {\n    warnedSetProps = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'setProps(...) and replaceProps(...) are deprecated. ' + 'Instead, call render again at the top level.') : undefined;\n  }\n}\n\n/**\n * Composite components are higher-level components that compose other composite\n * or native components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return <div>Hello World</div>;\n *     }\n *   });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n  /**\n   * An array of Mixin objects to include when defining your component.\n   *\n   * @type {array}\n   * @optional\n   */\n  mixins: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * An object containing properties and methods that should be defined on\n   * the component's constructor instead of its prototype (static methods).\n   *\n   * @type {object}\n   * @optional\n   */\n  statics: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of prop types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  propTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  contextTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types this component sets for its children.\n   *\n   * @type {object}\n   * @optional\n   */\n  childContextTypes: SpecPolicy.DEFINE_MANY,\n\n  // ==== Definition methods ====\n\n  /**\n   * Invoked when the component is mounted. Values in the mapping will be set on\n   * `this.props` if that prop is not specified (i.e. using an `in` check).\n   *\n   * This method is invoked before `getInitialState` and therefore cannot rely\n   * on `this.state` or use `this.setState`.\n   *\n   * @return {object}\n   * @optional\n   */\n  getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Invoked once before the component is mounted. The return value will be used\n   * as the initial value of `this.state`.\n   *\n   *   getInitialState: function() {\n   *     return {\n   *       isOn: false,\n   *       fooBaz: new BazFoo()\n   *     }\n   *   }\n   *\n   * @return {object}\n   * @optional\n   */\n  getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * @return {object}\n   * @optional\n   */\n  getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Uses props from `this.props` and state from `this.state` to render the\n   * structure of the component.\n   *\n   * No guarantees are made about when or how often this method is invoked, so\n   * it must not have side effects.\n   *\n   *   render: function() {\n   *     var name = this.props.name;\n   *     return <div>Hello, {name}!</div>;\n   *   }\n   *\n   * @return {ReactComponent}\n   * @nosideeffects\n   * @required\n   */\n  render: SpecPolicy.DEFINE_ONCE,\n\n  // ==== Delegate methods ====\n\n  /**\n   * Invoked when the component is initially created and about to be mounted.\n   * This may have side effects, but any external subscriptions or data created\n   * by this method must be cleaned up in `componentWillUnmount`.\n   *\n   * @optional\n   */\n  componentWillMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component has been mounted and has a DOM representation.\n   * However, there is no guarantee that the DOM node is in the document.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been mounted (initialized and rendered) for the first time.\n   *\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked before the component receives new props.\n   *\n   * Use this as an opportunity to react to a prop transition by updating the\n   * state using `this.setState`. Current props are accessed via `this.props`.\n   *\n   *   componentWillReceiveProps: function(nextProps, nextContext) {\n   *     this.setState({\n   *       likesIncreasing: nextProps.likeCount > this.props.likeCount\n   *     });\n   *   }\n   *\n   * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n   * transition may cause a state change, but the opposite is not true. If you\n   * need it, you are probably looking for `componentWillUpdate`.\n   *\n   * @param {object} nextProps\n   * @optional\n   */\n  componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked while deciding if the component should be updated as a result of\n   * receiving new props, state and/or context.\n   *\n   * Use this as an opportunity to `return false` when you're certain that the\n   * transition to the new props/state/context will not require a component\n   * update.\n   *\n   *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n   *     return !equal(nextProps, this.props) ||\n   *       !equal(nextState, this.state) ||\n   *       !equal(nextContext, this.context);\n   *   }\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @return {boolean} True if the component should update.\n   * @optional\n   */\n  shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n  /**\n   * Invoked when the component is about to update due to a transition from\n   * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n   * and `nextContext`.\n   *\n   * Use this as an opportunity to perform preparation before an update occurs.\n   *\n   * NOTE: You **cannot** use `this.setState()` in this method.\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @param {ReactReconcileTransaction} transaction\n   * @optional\n   */\n  componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component's DOM representation has been updated.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been updated.\n   *\n   * @param {object} prevProps\n   * @param {?object} prevState\n   * @param {?object} prevContext\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component is about to be removed from its parent and have\n   * its DOM representation destroyed.\n   *\n   * Use this as an opportunity to deallocate any external resources.\n   *\n   * NOTE: There is no `componentDidUnmount` since your component will have been\n   * destroyed by that point.\n   *\n   * @optional\n   */\n  componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n  // ==== Advanced methods ====\n\n  /**\n   * Updates the component's currently mounted DOM representation.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   * @overridable\n   */\n  updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n  displayName: function (Constructor, displayName) {\n    Constructor.displayName = displayName;\n  },\n  mixins: function (Constructor, mixins) {\n    if (mixins) {\n      for (var i = 0; i < mixins.length; i++) {\n        mixSpecIntoComponent(Constructor, mixins[i]);\n      }\n    }\n  },\n  childContextTypes: function (Constructor, childContextTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext);\n    }\n    Constructor.childContextTypes = assign({}, Constructor.childContextTypes, childContextTypes);\n  },\n  contextTypes: function (Constructor, contextTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context);\n    }\n    Constructor.contextTypes = assign({}, Constructor.contextTypes, contextTypes);\n  },\n  /**\n   * Special case getDefaultProps which should move into statics but requires\n   * automatic merging.\n   */\n  getDefaultProps: function (Constructor, getDefaultProps) {\n    if (Constructor.getDefaultProps) {\n      Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n    } else {\n      Constructor.getDefaultProps = getDefaultProps;\n    }\n  },\n  propTypes: function (Constructor, propTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);\n    }\n    Constructor.propTypes = assign({}, Constructor.propTypes, propTypes);\n  },\n  statics: function (Constructor, statics) {\n    mixStaticSpecIntoComponent(Constructor, statics);\n  },\n  autobind: function () {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n  for (var propName in typeDef) {\n    if (typeDef.hasOwnProperty(propName)) {\n      // use a warning instead of an invariant so components\n      // don't show up in prod but not in __DEV__\n      process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : undefined;\n    }\n  }\n}\n\nfunction validateMethodOverride(proto, name) {\n  var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n  // Disallow overriding of base class methods unless explicitly allowed.\n  if (ReactClassMixin.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : undefined;\n  }\n\n  // Disallow defining methods more than once unless explicitly allowed.\n  if (proto.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : undefined;\n  }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classses.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n  if (!spec) {\n    return;\n  }\n\n  !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n  !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n\n  var proto = Constructor.prototype;\n\n  // By handling mixins before any other properties, we ensure the same\n  // chaining order is applied to methods with DEFINE_MANY policy, whether\n  // mixins are listed before or after these methods in the spec.\n  if (spec.hasOwnProperty(MIXINS_KEY)) {\n    RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n  }\n\n  for (var name in spec) {\n    if (!spec.hasOwnProperty(name)) {\n      continue;\n    }\n\n    if (name === MIXINS_KEY) {\n      // We have already handled mixins in a special case above.\n      continue;\n    }\n\n    var property = spec[name];\n    validateMethodOverride(proto, name);\n\n    if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n      RESERVED_SPEC_KEYS[name](Constructor, property);\n    } else {\n      // Setup methods on prototype:\n      // The following member methods should not be automatically bound:\n      // 1. Expected ReactClass methods (in the \"interface\").\n      // 2. Overridden methods (that were mixed in).\n      var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n      var isAlreadyDefined = proto.hasOwnProperty(name);\n      var isFunction = typeof property === 'function';\n      var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n      if (shouldAutoBind) {\n        if (!proto.__reactAutoBindMap) {\n          proto.__reactAutoBindMap = {};\n        }\n        proto.__reactAutoBindMap[name] = property;\n        proto[name] = property;\n      } else {\n        if (isAlreadyDefined) {\n          var specPolicy = ReactClassInterface[name];\n\n          // These cases should already be caught by validateMethodOverride.\n          !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : undefined;\n\n          // For methods which are defined more than once, call the existing\n          // methods before calling the new property, merging if appropriate.\n          if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n            proto[name] = createMergedResultFunction(proto[name], property);\n          } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n            proto[name] = createChainedFunction(proto[name], property);\n          }\n        } else {\n          proto[name] = property;\n          if (process.env.NODE_ENV !== 'production') {\n            // Add verbose displayName to the function, which helps when looking\n            // at profiling tools.\n            if (typeof property === 'function' && spec.displayName) {\n              proto[name].displayName = spec.displayName + '_' + name;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n  if (!statics) {\n    return;\n  }\n  for (var name in statics) {\n    var property = statics[name];\n    if (!statics.hasOwnProperty(name)) {\n      continue;\n    }\n\n    var isReserved = (name in RESERVED_SPEC_KEYS);\n    !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(false) : undefined;\n\n    var isInherited = (name in Constructor);\n    !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : undefined;\n    Constructor[name] = property;\n  }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n  !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : undefined;\n\n  for (var key in two) {\n    if (two.hasOwnProperty(key)) {\n      !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(false) : undefined;\n      one[key] = two[key];\n    }\n  }\n  return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n  return function mergedResult() {\n    var a = one.apply(this, arguments);\n    var b = two.apply(this, arguments);\n    if (a == null) {\n      return b;\n    } else if (b == null) {\n      return a;\n    }\n    var c = {};\n    mergeIntoWithNoDuplicateKeys(c, a);\n    mergeIntoWithNoDuplicateKeys(c, b);\n    return c;\n  };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n  return function chainedFunction() {\n    one.apply(this, arguments);\n    two.apply(this, arguments);\n  };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n  var boundMethod = method.bind(component);\n  if (process.env.NODE_ENV !== 'production') {\n    boundMethod.__reactBoundContext = component;\n    boundMethod.__reactBoundMethod = method;\n    boundMethod.__reactBoundArguments = null;\n    var componentName = component.constructor.displayName;\n    var _bind = boundMethod.bind;\n    /* eslint-disable block-scoped-var, no-undef */\n    boundMethod.bind = function (newThis) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      // User is trying to bind() an autobound method; we effectively will\n      // ignore the value of \"this\" that the user is trying to use, so\n      // let's warn.\n      if (newThis !== component && newThis !== null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : undefined;\n      } else if (!args.length) {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : undefined;\n        return boundMethod;\n      }\n      var reboundMethod = _bind.apply(boundMethod, arguments);\n      reboundMethod.__reactBoundContext = component;\n      reboundMethod.__reactBoundMethod = method;\n      reboundMethod.__reactBoundArguments = args;\n      return reboundMethod;\n      /* eslint-enable */\n    };\n  }\n  return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n  for (var autoBindKey in component.__reactAutoBindMap) {\n    if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {\n      var method = component.__reactAutoBindMap[autoBindKey];\n      component[autoBindKey] = bindAutoBindMethod(component, method);\n    }\n  }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n  /**\n   * TODO: This will be deprecated because state should always keep a consistent\n   * type signature and the only use case for this, is to avoid that.\n   */\n  replaceState: function (newState, callback) {\n    this.updater.enqueueReplaceState(this, newState);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  },\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function () {\n    return this.updater.isMounted(this);\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {object} partialProps Subset of the next props.\n   * @param {?function} callback Called after props are updated.\n   * @final\n   * @public\n   * @deprecated\n   */\n  setProps: function (partialProps, callback) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnSetProps();\n    }\n    this.updater.enqueueSetProps(this, partialProps);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  },\n\n  /**\n   * Replace all the props.\n   *\n   * @param {object} newProps Subset of the next props.\n   * @param {?function} callback Called after props are updated.\n   * @final\n   * @public\n   * @deprecated\n   */\n  replaceProps: function (newProps, callback) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnSetProps();\n    }\n    this.updater.enqueueReplaceProps(this, newProps);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  }\n};\n\nvar ReactClassComponent = function () {};\nassign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n  /**\n   * Creates a composite component class given a class specification.\n   *\n   * @param {object} spec Class specification (which must define `render`).\n   * @return {function} Component constructor function.\n   * @public\n   */\n  createClass: function (spec) {\n    var Constructor = function (props, context, updater) {\n      // This constructor is overridden by mocks. The argument is used\n      // by mocks to assert on what gets mounted.\n\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : undefined;\n      }\n\n      // Wire up auto-binding\n      if (this.__reactAutoBindMap) {\n        bindAutoBindMethods(this);\n      }\n\n      this.props = props;\n      this.context = context;\n      this.refs = emptyObject;\n      this.updater = updater || ReactNoopUpdateQueue;\n\n      this.state = null;\n\n      // ReactClasses doesn't have constructors. Instead, they use the\n      // getInitialState and componentWillMount methods for initialization.\n\n      var initialState = this.getInitialState ? this.getInitialState() : null;\n      if (process.env.NODE_ENV !== 'production') {\n        // We allow auto-mocks to proceed as if they're returning null.\n        if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) {\n          // This is probably bad practice. Consider warning here and\n          // deprecating this convenience.\n          initialState = null;\n        }\n      }\n      !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n      this.state = initialState;\n    };\n    Constructor.prototype = new ReactClassComponent();\n    Constructor.prototype.constructor = Constructor;\n\n    injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n    mixSpecIntoComponent(Constructor, spec);\n\n    // Initialize the defaultProps property after all mixins have been merged.\n    if (Constructor.getDefaultProps) {\n      Constructor.defaultProps = Constructor.getDefaultProps();\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This is a tag to indicate that the use of these method names is ok,\n      // since it's used with createClass. If it's not, then it's likely a\n      // mistake so we'll warn you to use the static property, property\n      // initializer or constructor respectively.\n      if (Constructor.getDefaultProps) {\n        Constructor.getDefaultProps.isReactClassApproved = {};\n      }\n      if (Constructor.prototype.getInitialState) {\n        Constructor.prototype.getInitialState.isReactClassApproved = {};\n      }\n    }\n\n    !Constructor.prototype.render ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : undefined;\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : undefined;\n    }\n\n    // Reduce time spent doing lookups by setting these on the prototype.\n    for (var methodName in ReactClassInterface) {\n      if (!Constructor.prototype[methodName]) {\n        Constructor.prototype[methodName] = null;\n      }\n    }\n\n    return Constructor;\n  },\n\n  injection: {\n    injectMixin: function (mixin) {\n      injectedMixins.push(mixin);\n    }\n  }\n\n};\n\nmodule.exports = ReactClass;"
    },
    {
      "id": 194,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
      "name": "./~/react/lib/ReactComponent.js",
      "index": 194,
      "index2": 188,
      "size": 5041,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactComponent",
          "loc": "14:21-48"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactComponent",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : undefined;\n  }\n  this.updater.enqueueSetState(this, partialState);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback);\n  }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback);\n  }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n  var deprecatedAPIs = {\n    getDOMNode: ['getDOMNode', 'Use ReactDOM.findDOMNode(component) instead.'],\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceProps: ['replaceProps', 'Instead, call render again at the top level.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'],\n    setProps: ['setProps', 'Instead, call render again at the top level.']\n  };\n  var defineDeprecationWarning = function (methodName, info) {\n    if (canDefineProperty) {\n      Object.defineProperty(ReactComponent.prototype, methodName, {\n        get: function () {\n          process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined;\n          return undefined;\n        }\n      });\n    }\n  };\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nmodule.exports = ReactComponent;"
    },
    {
      "id": 195,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactNoopUpdateQueue.js",
      "name": "./~/react/lib/ReactNoopUpdateQueue.js",
      "index": 195,
      "index2": 187,
      "size": 3937,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 193,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactClass.js",
          "module": "./~/react/lib/ReactClass.js",
          "moduleName": "./~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactNoopUpdateQueue",
          "loc": "18:27-60"
        },
        {
          "moduleId": 194,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactComponent.js",
          "module": "./~/react/lib/ReactComponent.js",
          "moduleName": "./~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactNoopUpdateQueue",
          "loc": "14:27-60"
        }
      ],
      "source": "/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnTDZ(publicInstance, callerName) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : undefined;\n  }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {},\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    warnTDZ(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    warnTDZ(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    warnTDZ(publicInstance, 'setState');\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialProps Subset of the next props.\n   * @internal\n   */\n  enqueueSetProps: function (publicInstance, partialProps) {\n    warnTDZ(publicInstance, 'setProps');\n  },\n\n  /**\n   * Replaces all of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} props New props.\n   * @internal\n   */\n  enqueueReplaceProps: function (publicInstance, props) {\n    warnTDZ(publicInstance, 'replaceProps');\n  }\n\n};\n\nmodule.exports = ReactNoopUpdateQueue;"
    },
    {
      "id": 196,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
      "name": "./~/react/lib/ReactReconcileTransaction.js",
      "index": 196,
      "index2": 195,
      "size": 4581,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactReconcileTransaction",
          "loc": "30:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n  /**\n   * @return {Selection} Selection information.\n   */\n  initialize: ReactInputSelection.getSelectionInformation,\n  /**\n   * @param {Selection} sel Selection information returned from `initialize`.\n   */\n  close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n  /**\n   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n   * the reconciliation.\n   */\n  initialize: function () {\n    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n    ReactBrowserEventEmitter.setEnabled(false);\n    return currentlyEnabled;\n  },\n\n  /**\n   * @param {boolean} previouslyEnabled Enabled status of\n   *   `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n   *   restores the previous value.\n   */\n  close: function (previouslyEnabled) {\n    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n  }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  /**\n   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n   */\n  close: function () {\n    this.reactMountReady.notifyAll();\n  }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n *   modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n *   track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(forceHTML) {\n  this.reinitializeTransaction();\n  // Only server-side rendering really needs this option (see\n  // `ReactServerRendering`), but server-side uses\n  // `ReactServerRenderingTransaction` instead. This option is here so that it's\n  // accessible and defaults to false when `ReactDOMComponent` and\n  // `ReactTextComponent` checks it in `mountComponent`.`\n  this.renderToStaticMarkup = false;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = !forceHTML && ReactDOMFeatureFlags.useCreateElement;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array<object>} List of operation wrap procedures.\n   *   TODO: convert to array<TransactionWrapper>\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\nassign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;"
    },
    {
      "id": 197,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInputSelection.js",
      "name": "./~/react/lib/ReactInputSelection.js",
      "index": 197,
      "index2": 194,
      "size": 4320,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 196,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "./~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "./~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./ReactInputSelection",
          "loc": "19:26-58"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactInputSelection",
          "loc": "17:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n  return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n  hasSelectionCapabilities: function (elem) {\n    var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n    return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n  },\n\n  getSelectionInformation: function () {\n    var focusedElem = getActiveElement();\n    return {\n      focusedElem: focusedElem,\n      selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n    };\n  },\n\n  /**\n   * @restoreSelection: If any selection information was potentially lost,\n   * restore it. This is useful when performing operations that could remove dom\n   * nodes and place them back in, resulting in focus being lost.\n   */\n  restoreSelection: function (priorSelectionInformation) {\n    var curFocusedElem = getActiveElement();\n    var priorFocusedElem = priorSelectionInformation.focusedElem;\n    var priorSelectionRange = priorSelectionInformation.selectionRange;\n    if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n      if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n        ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n      }\n      focusNode(priorFocusedElem);\n    }\n  },\n\n  /**\n   * @getSelection: Gets the selection bounds of a focused textarea, input or\n   * contentEditable node.\n   * -@input: Look up selection bounds of this input\n   * -@return {start: selectionStart, end: selectionEnd}\n   */\n  getSelection: function (input) {\n    var selection;\n\n    if ('selectionStart' in input) {\n      // Modern browser with input or textarea.\n      selection = {\n        start: input.selectionStart,\n        end: input.selectionEnd\n      };\n    } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) {\n      // IE8 input.\n      var range = document.selection.createRange();\n      // There can only be one selection per document in IE, so it must\n      // be in our element.\n      if (range.parentElement() === input) {\n        selection = {\n          start: -range.moveStart('character', -input.value.length),\n          end: -range.moveEnd('character', -input.value.length)\n        };\n      }\n    } else {\n      // Content editable or old IE textarea.\n      selection = ReactDOMSelection.getOffsets(input);\n    }\n\n    return selection || { start: 0, end: 0 };\n  },\n\n  /**\n   * @setSelection: Sets the selection bounds of a textarea or input and focuses\n   * the input.\n   * -@input     Set selection bounds of this input or textarea\n   * -@offsets   Object of same form that is returned from get*\n   */\n  setSelection: function (input, offsets) {\n    var start = offsets.start;\n    var end = offsets.end;\n    if (typeof end === 'undefined') {\n      end = start;\n    }\n\n    if ('selectionStart' in input) {\n      input.selectionStart = start;\n      input.selectionEnd = Math.min(end, input.value.length);\n    } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) {\n      var range = input.createTextRange();\n      range.collapse(true);\n      range.moveStart('character', start);\n      range.moveEnd('character', end - start);\n      range.select();\n    } else {\n      ReactDOMSelection.setOffsets(input, offsets);\n    }\n  }\n};\n\nmodule.exports = ReactInputSelection;"
    },
    {
      "id": 198,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelection.js",
      "name": "./~/react/lib/ReactDOMSelection.js",
      "index": 198,
      "index2": 192,
      "size": 6827,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInputSelection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 197,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInputSelection.js",
          "module": "./~/react/lib/ReactInputSelection.js",
          "moduleName": "./~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMSelection",
          "loc": "14:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n  return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n  var selection = document.selection;\n  var selectedRange = selection.createRange();\n  var selectedLength = selectedRange.text.length;\n\n  // Duplicate selection so we can move range without breaking user selection.\n  var fromStart = selectedRange.duplicate();\n  fromStart.moveToElementText(node);\n  fromStart.setEndPoint('EndToStart', selectedRange);\n\n  var startOffset = fromStart.text.length;\n  var endOffset = startOffset + selectedLength;\n\n  return {\n    start: startOffset,\n    end: endOffset\n  };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n  var selection = window.getSelection && window.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode;\n  var anchorOffset = selection.anchorOffset;\n  var focusNode = selection.focusNode;\n  var focusOffset = selection.focusOffset;\n\n  var currentRange = selection.getRangeAt(0);\n\n  // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n  // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n  // divs do not seem to expose properties, triggering a \"Permission denied\n  // error\" if any of its properties are accessed. The only seemingly possible\n  // way to avoid erroring is to access a property that typically works for\n  // non-anonymous divs and catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n  try {\n    /* eslint-disable no-unused-expressions */\n    currentRange.startContainer.nodeType;\n    currentRange.endContainer.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  // If the node and offset values are the same, the selection is collapsed.\n  // `Selection.isCollapsed` is available natively, but IE sometimes gets\n  // this value wrong.\n  var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n  var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n  var tempRange = currentRange.cloneRange();\n  tempRange.selectNodeContents(node);\n  tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n  var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n  var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n  var end = start + rangeLength;\n\n  // Detect whether the selection is backward.\n  var detectionRange = document.createRange();\n  detectionRange.setStart(anchorNode, anchorOffset);\n  detectionRange.setEnd(focusNode, focusOffset);\n  var isBackward = detectionRange.collapsed;\n\n  return {\n    start: isBackward ? end : start,\n    end: isBackward ? start : end\n  };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n  var range = document.selection.createRange().duplicate();\n  var start, end;\n\n  if (typeof offsets.end === 'undefined') {\n    start = offsets.start;\n    end = start;\n  } else if (offsets.start > offsets.end) {\n    start = offsets.end;\n    end = offsets.start;\n  } else {\n    start = offsets.start;\n    end = offsets.end;\n  }\n\n  range.moveToElementText(node);\n  range.moveStart('character', start);\n  range.setEndPoint('EndToStart', range);\n  range.moveEnd('character', end - start);\n  range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n  if (!window.getSelection) {\n    return;\n  }\n\n  var selection = window.getSelection();\n  var length = node[getTextContentAccessor()].length;\n  var start = Math.min(offsets.start, length);\n  var end = typeof offsets.end === 'undefined' ? start : Math.min(offsets.end, length);\n\n  // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    var range = document.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n  /**\n   * @param {DOMElement} node\n   */\n  getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n  /**\n   * @param {DOMElement|DOMTextNode} node\n   * @param {object} offsets\n   */\n  setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;"
    },
    {
      "id": 199,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getNodeForCharacterOffset.js",
      "name": "./~/react/lib/getNodeForCharacterOffset.js",
      "index": 199,
      "index2": 191,
      "size": 1658,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 198,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMSelection.js",
          "module": "./~/react/lib/ReactDOMSelection.js",
          "moduleName": "./~/react/lib/ReactDOMSelection.js",
          "type": "cjs require",
          "userRequest": "./getNodeForCharacterOffset",
          "loc": "16:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n  return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n    node = node.parentNode;\n  }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === 3) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\nmodule.exports = getNodeForCharacterOffset;"
    },
    {
      "id": 200,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/getActiveElement.js",
      "name": "./~/fbjs/lib/getActiveElement.js",
      "index": 200,
      "index2": 193,
      "size": 924,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 197,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactInputSelection.js",
          "module": "./~/react/lib/ReactInputSelection.js",
          "moduleName": "./~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getActiveElement",
          "loc": "18:23-59"
        },
        {
          "moduleId": 201,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
          "module": "./~/react/lib/SelectEventPlugin.js",
          "moduleName": "./~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getActiveElement",
          "loc": "20:23-59"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getActiveElement\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n */\n'use strict';\n\nfunction getActiveElement() /*?DOMElement*/{\n  if (typeof document === 'undefined') {\n    return null;\n  }\n  try {\n    return document.activeElement || document.body;\n  } catch (e) {\n    return document.body;\n  }\n}\n\nmodule.exports = getActiveElement;"
    },
    {
      "id": 201,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SelectEventPlugin.js",
      "name": "./~/react/lib/SelectEventPlugin.js",
      "index": 201,
      "index2": 196,
      "size": 6705,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./SelectEventPlugin",
          "loc": "31:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSelect: null }),\n      captured: keyOf({ onSelectCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n  }\n};\n\nvar activeElement = null;\nvar activeElementID = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n  if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else if (window.getSelection) {\n    var selection = window.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  } else if (document.selection) {\n    var range = document.selection.createRange();\n    return {\n      parentElement: range.parentElement(),\n      text: range.text,\n      top: range.boundingTop,\n      left: range.boundingLeft\n    };\n  }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n    return null;\n  }\n\n  // Only fire when selection has actually changed.\n  var currentSelection = getSelection(activeElement);\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementID, nativeEvent, nativeEventTarget);\n\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement;\n\n    EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n    return syntheticEvent;\n  }\n\n  return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    if (!hasListener) {\n      return null;\n    }\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case topLevelTypes.topFocus:\n        if (isTextInputElement(topLevelTarget) || topLevelTarget.contentEditable === 'true') {\n          activeElement = topLevelTarget;\n          activeElementID = topLevelTargetID;\n          lastSelection = null;\n        }\n        break;\n      case topLevelTypes.topBlur:\n        activeElement = null;\n        activeElementID = null;\n        lastSelection = null;\n        break;\n\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n      case topLevelTypes.topMouseDown:\n        mouseDown = true;\n        break;\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topMouseUp:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n      case topLevelTypes.topSelectionChange:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n      // falls through\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  },\n\n  didPutListener: function (id, registrationName, listener) {\n    if (registrationName === ON_SELECT_KEY) {\n      hasListener = true;\n    }\n  }\n};\n\nmodule.exports = SelectEventPlugin;"
    },
    {
      "id": 202,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ServerReactRootIndex.js",
      "name": "./~/react/lib/ServerReactRootIndex.js",
      "index": 202,
      "index2": 197,
      "size": 868,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ServerReactRootIndex",
          "loc": "32:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ServerReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Size of the reactRoot ID space. We generate random numbers for React root\n * IDs and if there's a collision the events and DOM update system will\n * get confused. In the future we need a way to generate GUIDs but for\n * now this will work on a smaller scale.\n */\nvar GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53);\n\nvar ServerReactRootIndex = {\n  createReactRootIndex: function () {\n    return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX);\n  }\n};\n\nmodule.exports = ServerReactRootIndex;"
    },
    {
      "id": 203,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "name": "./~/react/lib/SimpleEventPlugin.js",
      "index": 203,
      "index2": 206,
      "size": 17439,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./SimpleEventPlugin",
          "loc": "33:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactMount = require('./ReactMount');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  abort: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAbort: true }),\n      captured: keyOf({ onAbortCapture: true })\n    }\n  },\n  blur: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBlur: true }),\n      captured: keyOf({ onBlurCapture: true })\n    }\n  },\n  canPlay: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlay: true }),\n      captured: keyOf({ onCanPlayCapture: true })\n    }\n  },\n  canPlayThrough: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlayThrough: true }),\n      captured: keyOf({ onCanPlayThroughCapture: true })\n    }\n  },\n  click: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onClick: true }),\n      captured: keyOf({ onClickCapture: true })\n    }\n  },\n  contextMenu: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onContextMenu: true }),\n      captured: keyOf({ onContextMenuCapture: true })\n    }\n  },\n  copy: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCopy: true }),\n      captured: keyOf({ onCopyCapture: true })\n    }\n  },\n  cut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCut: true }),\n      captured: keyOf({ onCutCapture: true })\n    }\n  },\n  doubleClick: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDoubleClick: true }),\n      captured: keyOf({ onDoubleClickCapture: true })\n    }\n  },\n  drag: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrag: true }),\n      captured: keyOf({ onDragCapture: true })\n    }\n  },\n  dragEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnd: true }),\n      captured: keyOf({ onDragEndCapture: true })\n    }\n  },\n  dragEnter: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnter: true }),\n      captured: keyOf({ onDragEnterCapture: true })\n    }\n  },\n  dragExit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragExit: true }),\n      captured: keyOf({ onDragExitCapture: true })\n    }\n  },\n  dragLeave: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragLeave: true }),\n      captured: keyOf({ onDragLeaveCapture: true })\n    }\n  },\n  dragOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragOver: true }),\n      captured: keyOf({ onDragOverCapture: true })\n    }\n  },\n  dragStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragStart: true }),\n      captured: keyOf({ onDragStartCapture: true })\n    }\n  },\n  drop: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrop: true }),\n      captured: keyOf({ onDropCapture: true })\n    }\n  },\n  durationChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDurationChange: true }),\n      captured: keyOf({ onDurationChangeCapture: true })\n    }\n  },\n  emptied: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEmptied: true }),\n      captured: keyOf({ onEmptiedCapture: true })\n    }\n  },\n  encrypted: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEncrypted: true }),\n      captured: keyOf({ onEncryptedCapture: true })\n    }\n  },\n  ended: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEnded: true }),\n      captured: keyOf({ onEndedCapture: true })\n    }\n  },\n  error: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onError: true }),\n      captured: keyOf({ onErrorCapture: true })\n    }\n  },\n  focus: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onFocus: true }),\n      captured: keyOf({ onFocusCapture: true })\n    }\n  },\n  input: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onInput: true }),\n      captured: keyOf({ onInputCapture: true })\n    }\n  },\n  keyDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyDown: true }),\n      captured: keyOf({ onKeyDownCapture: true })\n    }\n  },\n  keyPress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyPress: true }),\n      captured: keyOf({ onKeyPressCapture: true })\n    }\n  },\n  keyUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyUp: true }),\n      captured: keyOf({ onKeyUpCapture: true })\n    }\n  },\n  load: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoad: true }),\n      captured: keyOf({ onLoadCapture: true })\n    }\n  },\n  loadedData: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedData: true }),\n      captured: keyOf({ onLoadedDataCapture: true })\n    }\n  },\n  loadedMetadata: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedMetadata: true }),\n      captured: keyOf({ onLoadedMetadataCapture: true })\n    }\n  },\n  loadStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadStart: true }),\n      captured: keyOf({ onLoadStartCapture: true })\n    }\n  },\n  // Note: We do not allow listening to mouseOver events. Instead, use the\n  // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n  mouseDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseDown: true }),\n      captured: keyOf({ onMouseDownCapture: true })\n    }\n  },\n  mouseMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseMove: true }),\n      captured: keyOf({ onMouseMoveCapture: true })\n    }\n  },\n  mouseOut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOut: true }),\n      captured: keyOf({ onMouseOutCapture: true })\n    }\n  },\n  mouseOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOver: true }),\n      captured: keyOf({ onMouseOverCapture: true })\n    }\n  },\n  mouseUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseUp: true }),\n      captured: keyOf({ onMouseUpCapture: true })\n    }\n  },\n  paste: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPaste: true }),\n      captured: keyOf({ onPasteCapture: true })\n    }\n  },\n  pause: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPause: true }),\n      captured: keyOf({ onPauseCapture: true })\n    }\n  },\n  play: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlay: true }),\n      captured: keyOf({ onPlayCapture: true })\n    }\n  },\n  playing: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlaying: true }),\n      captured: keyOf({ onPlayingCapture: true })\n    }\n  },\n  progress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onProgress: true }),\n      captured: keyOf({ onProgressCapture: true })\n    }\n  },\n  rateChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onRateChange: true }),\n      captured: keyOf({ onRateChangeCapture: true })\n    }\n  },\n  reset: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onReset: true }),\n      captured: keyOf({ onResetCapture: true })\n    }\n  },\n  scroll: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onScroll: true }),\n      captured: keyOf({ onScrollCapture: true })\n    }\n  },\n  seeked: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeked: true }),\n      captured: keyOf({ onSeekedCapture: true })\n    }\n  },\n  seeking: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeking: true }),\n      captured: keyOf({ onSeekingCapture: true })\n    }\n  },\n  stalled: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onStalled: true }),\n      captured: keyOf({ onStalledCapture: true })\n    }\n  },\n  submit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSubmit: true }),\n      captured: keyOf({ onSubmitCapture: true })\n    }\n  },\n  suspend: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSuspend: true }),\n      captured: keyOf({ onSuspendCapture: true })\n    }\n  },\n  timeUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTimeUpdate: true }),\n      captured: keyOf({ onTimeUpdateCapture: true })\n    }\n  },\n  touchCancel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchCancel: true }),\n      captured: keyOf({ onTouchCancelCapture: true })\n    }\n  },\n  touchEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchEnd: true }),\n      captured: keyOf({ onTouchEndCapture: true })\n    }\n  },\n  touchMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchMove: true }),\n      captured: keyOf({ onTouchMoveCapture: true })\n    }\n  },\n  touchStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchStart: true }),\n      captured: keyOf({ onTouchStartCapture: true })\n    }\n  },\n  volumeChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onVolumeChange: true }),\n      captured: keyOf({ onVolumeChangeCapture: true })\n    }\n  },\n  waiting: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWaiting: true }),\n      captured: keyOf({ onWaitingCapture: true })\n    }\n  },\n  wheel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWheel: true }),\n      captured: keyOf({ onWheelCapture: true })\n    }\n  }\n};\n\nvar topLevelEventsToDispatchConfig = {\n  topAbort: eventTypes.abort,\n  topBlur: eventTypes.blur,\n  topCanPlay: eventTypes.canPlay,\n  topCanPlayThrough: eventTypes.canPlayThrough,\n  topClick: eventTypes.click,\n  topContextMenu: eventTypes.contextMenu,\n  topCopy: eventTypes.copy,\n  topCut: eventTypes.cut,\n  topDoubleClick: eventTypes.doubleClick,\n  topDrag: eventTypes.drag,\n  topDragEnd: eventTypes.dragEnd,\n  topDragEnter: eventTypes.dragEnter,\n  topDragExit: eventTypes.dragExit,\n  topDragLeave: eventTypes.dragLeave,\n  topDragOver: eventTypes.dragOver,\n  topDragStart: eventTypes.dragStart,\n  topDrop: eventTypes.drop,\n  topDurationChange: eventTypes.durationChange,\n  topEmptied: eventTypes.emptied,\n  topEncrypted: eventTypes.encrypted,\n  topEnded: eventTypes.ended,\n  topError: eventTypes.error,\n  topFocus: eventTypes.focus,\n  topInput: eventTypes.input,\n  topKeyDown: eventTypes.keyDown,\n  topKeyPress: eventTypes.keyPress,\n  topKeyUp: eventTypes.keyUp,\n  topLoad: eventTypes.load,\n  topLoadedData: eventTypes.loadedData,\n  topLoadedMetadata: eventTypes.loadedMetadata,\n  topLoadStart: eventTypes.loadStart,\n  topMouseDown: eventTypes.mouseDown,\n  topMouseMove: eventTypes.mouseMove,\n  topMouseOut: eventTypes.mouseOut,\n  topMouseOver: eventTypes.mouseOver,\n  topMouseUp: eventTypes.mouseUp,\n  topPaste: eventTypes.paste,\n  topPause: eventTypes.pause,\n  topPlay: eventTypes.play,\n  topPlaying: eventTypes.playing,\n  topProgress: eventTypes.progress,\n  topRateChange: eventTypes.rateChange,\n  topReset: eventTypes.reset,\n  topScroll: eventTypes.scroll,\n  topSeeked: eventTypes.seeked,\n  topSeeking: eventTypes.seeking,\n  topStalled: eventTypes.stalled,\n  topSubmit: eventTypes.submit,\n  topSuspend: eventTypes.suspend,\n  topTimeUpdate: eventTypes.timeUpdate,\n  topTouchCancel: eventTypes.touchCancel,\n  topTouchEnd: eventTypes.touchEnd,\n  topTouchMove: eventTypes.touchMove,\n  topTouchStart: eventTypes.touchStart,\n  topVolumeChange: eventTypes.volumeChange,\n  topWaiting: eventTypes.waiting,\n  topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n  topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nvar SimpleEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n    if (!dispatchConfig) {\n      return null;\n    }\n    var EventConstructor;\n    switch (topLevelType) {\n      case topLevelTypes.topAbort:\n      case topLevelTypes.topCanPlay:\n      case topLevelTypes.topCanPlayThrough:\n      case topLevelTypes.topDurationChange:\n      case topLevelTypes.topEmptied:\n      case topLevelTypes.topEncrypted:\n      case topLevelTypes.topEnded:\n      case topLevelTypes.topError:\n      case topLevelTypes.topInput:\n      case topLevelTypes.topLoad:\n      case topLevelTypes.topLoadedData:\n      case topLevelTypes.topLoadedMetadata:\n      case topLevelTypes.topLoadStart:\n      case topLevelTypes.topPause:\n      case topLevelTypes.topPlay:\n      case topLevelTypes.topPlaying:\n      case topLevelTypes.topProgress:\n      case topLevelTypes.topRateChange:\n      case topLevelTypes.topReset:\n      case topLevelTypes.topSeeked:\n      case topLevelTypes.topSeeking:\n      case topLevelTypes.topStalled:\n      case topLevelTypes.topSubmit:\n      case topLevelTypes.topSuspend:\n      case topLevelTypes.topTimeUpdate:\n      case topLevelTypes.topVolumeChange:\n      case topLevelTypes.topWaiting:\n        // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n        EventConstructor = SyntheticEvent;\n        break;\n      case topLevelTypes.topKeyPress:\n        // FireFox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n      case topLevelTypes.topBlur:\n      case topLevelTypes.topFocus:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n      case topLevelTypes.topClick:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topDoubleClick:\n      case topLevelTypes.topMouseDown:\n      case topLevelTypes.topMouseMove:\n      case topLevelTypes.topMouseOut:\n      case topLevelTypes.topMouseOver:\n      case topLevelTypes.topMouseUp:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n      case topLevelTypes.topDrag:\n      case topLevelTypes.topDragEnd:\n      case topLevelTypes.topDragEnter:\n      case topLevelTypes.topDragExit:\n      case topLevelTypes.topDragLeave:\n      case topLevelTypes.topDragOver:\n      case topLevelTypes.topDragStart:\n      case topLevelTypes.topDrop:\n        EventConstructor = SyntheticDragEvent;\n        break;\n      case topLevelTypes.topTouchCancel:\n      case topLevelTypes.topTouchEnd:\n      case topLevelTypes.topTouchMove:\n      case topLevelTypes.topTouchStart:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n      case topLevelTypes.topScroll:\n        EventConstructor = SyntheticUIEvent;\n        break;\n      case topLevelTypes.topWheel:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n      case topLevelTypes.topCopy:\n      case topLevelTypes.topCut:\n      case topLevelTypes.topPaste:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n    }\n    !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : invariant(false) : undefined;\n    var event = EventConstructor.getPooled(dispatchConfig, topLevelTargetID, nativeEvent, nativeEventTarget);\n    EventPropagators.accumulateTwoPhaseDispatches(event);\n    return event;\n  },\n\n  didPutListener: function (id, registrationName, listener) {\n    // Mobile Safari does not fire properly bubble click events on\n    // non-interactive elements, which means delegated click listeners do not\n    // fire. The workaround for this bug involves attaching an empty click\n    // listener on the target node.\n    if (registrationName === ON_CLICK_KEY) {\n      var node = ReactMount.getNode(id);\n      if (!onClickListeners[id]) {\n        onClickListeners[id] = EventListener.listen(node, 'click', emptyFunction);\n      }\n    }\n  },\n\n  willDeleteListener: function (id, registrationName) {\n    if (registrationName === ON_CLICK_KEY) {\n      onClickListeners[id].remove();\n      delete onClickListeners[id];\n    }\n  }\n\n};\n\nmodule.exports = SimpleEventPlugin;"
    },
    {
      "id": 204,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticClipboardEvent.js",
      "name": "./~/react/lib/SyntheticClipboardEvent.js",
      "index": 204,
      "index2": 198,
      "size": 1229,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticClipboardEvent",
          "loc": "18:30-66"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;"
    },
    {
      "id": 205,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticFocusEvent.js",
      "name": "./~/react/lib/SyntheticFocusEvent.js",
      "index": 205,
      "index2": 199,
      "size": 1122,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticFocusEvent",
          "loc": "20:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n  relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;"
    },
    {
      "id": 206,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticKeyboardEvent.js",
      "name": "./~/react/lib/SyntheticKeyboardEvent.js",
      "index": 206,
      "index2": 202,
      "size": 2764,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticKeyboardEvent",
          "loc": "21:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;"
    },
    {
      "id": 207,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getEventCharCode.js",
      "name": "./~/react/lib/getEventCharCode.js",
      "index": 207,
      "index2": 200,
      "size": 1564,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./getEventCharCode",
          "loc": "29:23-52"
        },
        {
          "moduleId": 206,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "./~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "./~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventCharCode",
          "loc": "17:23-52"
        },
        {
          "moduleId": 208,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getEventKey.js",
          "module": "./~/react/lib/getEventKey.js",
          "moduleName": "./~/react/lib/getEventKey.js",
          "type": "cjs require",
          "userRequest": "./getEventCharCode",
          "loc": "15:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode;\n\n    // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  }\n\n  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\nmodule.exports = getEventCharCode;"
    },
    {
      "id": 208,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/getEventKey.js",
      "name": "./~/react/lib/getEventKey.js",
      "index": 208,
      "index2": 201,
      "size": 2927,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticKeyboardEvent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 206,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "./~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "./~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventKey",
          "loc": "18:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n * @typechecks static-only\n */\n\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n  'Esc': 'Escape',\n  'Spacebar': ' ',\n  'Left': 'ArrowLeft',\n  'Up': 'ArrowUp',\n  'Right': 'ArrowRight',\n  'Down': 'ArrowDown',\n  'Del': 'Delete',\n  'Win': 'OS',\n  'Menu': 'ContextMenu',\n  'Apps': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n  8: 'Backspace',\n  9: 'Tab',\n  12: 'Clear',\n  13: 'Enter',\n  16: 'Shift',\n  17: 'Control',\n  18: 'Alt',\n  19: 'Pause',\n  20: 'CapsLock',\n  27: 'Escape',\n  32: ' ',\n  33: 'PageUp',\n  34: 'PageDown',\n  35: 'End',\n  36: 'Home',\n  37: 'ArrowLeft',\n  38: 'ArrowUp',\n  39: 'ArrowRight',\n  40: 'ArrowDown',\n  45: 'Insert',\n  46: 'Delete',\n  112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n  118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n  144: 'NumLock',\n  145: 'ScrollLock',\n  224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  }\n\n  // Browser does not implement `key`, polyfill as much of it as we can.\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent);\n\n    // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n  return '';\n}\n\nmodule.exports = getEventKey;"
    },
    {
      "id": 209,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticDragEvent.js",
      "name": "./~/react/lib/SyntheticDragEvent.js",
      "index": 209,
      "index2": 203,
      "size": 1126,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticDragEvent",
          "loc": "23:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n  dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;"
    },
    {
      "id": 210,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticTouchEvent.js",
      "name": "./~/react/lib/SyntheticTouchEvent.js",
      "index": 210,
      "index2": 204,
      "size": 1333,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticTouchEvent",
          "loc": "24:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;"
    },
    {
      "id": 211,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SyntheticWheelEvent.js",
      "name": "./~/react/lib/SyntheticWheelEvent.js",
      "index": 211,
      "index2": 205,
      "size": 1992,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 203,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "./~/react/lib/SimpleEventPlugin.js",
          "moduleName": "./~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticWheelEvent",
          "loc": "26:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX :\n    // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY :\n    // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY :\n    // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n  deltaZ: null,\n\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;"
    },
    {
      "id": 212,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/SVGDOMPropertyConfig.js",
      "name": "./~/react/lib/SVGDOMPropertyConfig.js",
      "index": 212,
      "index2": 207,
      "size": 3799,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./SVGDOMPropertyConfig",
          "loc": "34:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\n\nvar NS = {\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\nvar SVGDOMPropertyConfig = {\n  Properties: {\n    clipPath: MUST_USE_ATTRIBUTE,\n    cx: MUST_USE_ATTRIBUTE,\n    cy: MUST_USE_ATTRIBUTE,\n    d: MUST_USE_ATTRIBUTE,\n    dx: MUST_USE_ATTRIBUTE,\n    dy: MUST_USE_ATTRIBUTE,\n    fill: MUST_USE_ATTRIBUTE,\n    fillOpacity: MUST_USE_ATTRIBUTE,\n    fontFamily: MUST_USE_ATTRIBUTE,\n    fontSize: MUST_USE_ATTRIBUTE,\n    fx: MUST_USE_ATTRIBUTE,\n    fy: MUST_USE_ATTRIBUTE,\n    gradientTransform: MUST_USE_ATTRIBUTE,\n    gradientUnits: MUST_USE_ATTRIBUTE,\n    markerEnd: MUST_USE_ATTRIBUTE,\n    markerMid: MUST_USE_ATTRIBUTE,\n    markerStart: MUST_USE_ATTRIBUTE,\n    offset: MUST_USE_ATTRIBUTE,\n    opacity: MUST_USE_ATTRIBUTE,\n    patternContentUnits: MUST_USE_ATTRIBUTE,\n    patternUnits: MUST_USE_ATTRIBUTE,\n    points: MUST_USE_ATTRIBUTE,\n    preserveAspectRatio: MUST_USE_ATTRIBUTE,\n    r: MUST_USE_ATTRIBUTE,\n    rx: MUST_USE_ATTRIBUTE,\n    ry: MUST_USE_ATTRIBUTE,\n    spreadMethod: MUST_USE_ATTRIBUTE,\n    stopColor: MUST_USE_ATTRIBUTE,\n    stopOpacity: MUST_USE_ATTRIBUTE,\n    stroke: MUST_USE_ATTRIBUTE,\n    strokeDasharray: MUST_USE_ATTRIBUTE,\n    strokeLinecap: MUST_USE_ATTRIBUTE,\n    strokeOpacity: MUST_USE_ATTRIBUTE,\n    strokeWidth: MUST_USE_ATTRIBUTE,\n    textAnchor: MUST_USE_ATTRIBUTE,\n    transform: MUST_USE_ATTRIBUTE,\n    version: MUST_USE_ATTRIBUTE,\n    viewBox: MUST_USE_ATTRIBUTE,\n    x1: MUST_USE_ATTRIBUTE,\n    x2: MUST_USE_ATTRIBUTE,\n    x: MUST_USE_ATTRIBUTE,\n    xlinkActuate: MUST_USE_ATTRIBUTE,\n    xlinkArcrole: MUST_USE_ATTRIBUTE,\n    xlinkHref: MUST_USE_ATTRIBUTE,\n    xlinkRole: MUST_USE_ATTRIBUTE,\n    xlinkShow: MUST_USE_ATTRIBUTE,\n    xlinkTitle: MUST_USE_ATTRIBUTE,\n    xlinkType: MUST_USE_ATTRIBUTE,\n    xmlBase: MUST_USE_ATTRIBUTE,\n    xmlLang: MUST_USE_ATTRIBUTE,\n    xmlSpace: MUST_USE_ATTRIBUTE,\n    y1: MUST_USE_ATTRIBUTE,\n    y2: MUST_USE_ATTRIBUTE,\n    y: MUST_USE_ATTRIBUTE\n  },\n  DOMAttributeNamespaces: {\n    xlinkActuate: NS.xlink,\n    xlinkArcrole: NS.xlink,\n    xlinkHref: NS.xlink,\n    xlinkRole: NS.xlink,\n    xlinkShow: NS.xlink,\n    xlinkTitle: NS.xlink,\n    xlinkType: NS.xlink,\n    xmlBase: NS.xml,\n    xmlLang: NS.xml,\n    xmlSpace: NS.xml\n  },\n  DOMAttributeNames: {\n    clipPath: 'clip-path',\n    fillOpacity: 'fill-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    gradientTransform: 'gradientTransform',\n    gradientUnits: 'gradientUnits',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    patternContentUnits: 'patternContentUnits',\n    patternUnits: 'patternUnits',\n    preserveAspectRatio: 'preserveAspectRatio',\n    spreadMethod: 'spreadMethod',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strokeDasharray: 'stroke-dasharray',\n    strokeLinecap: 'stroke-linecap',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    textAnchor: 'text-anchor',\n    viewBox: 'viewBox',\n    xlinkActuate: 'xlink:actuate',\n    xlinkArcrole: 'xlink:arcrole',\n    xlinkHref: 'xlink:href',\n    xlinkRole: 'xlink:role',\n    xlinkShow: 'xlink:show',\n    xlinkTitle: 'xlink:title',\n    xlinkType: 'xlink:type',\n    xmlBase: 'xml:base',\n    xmlLang: 'xml:lang',\n    xmlSpace: 'xml:space'\n  }\n};\n\nmodule.exports = SVGDOMPropertyConfig;"
    },
    {
      "id": 213,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
      "name": "./~/react/lib/ReactDefaultPerf.js",
      "index": 213,
      "index2": 211,
      "size": 8632,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 142,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "./~/react/lib/ReactDefaultInjection.js",
          "moduleName": "./~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultPerf",
          "loc": "89:29-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerf\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDefaultPerfAnalysis = require('./ReactDefaultPerfAnalysis');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\n\nvar performanceNow = require('fbjs/lib/performanceNow');\n\nfunction roundFloat(val) {\n  return Math.floor(val * 100) / 100;\n}\n\nfunction addValue(obj, key, val) {\n  obj[key] = (obj[key] || 0) + val;\n}\n\nvar ReactDefaultPerf = {\n  _allMeasurements: [], // last item in the list is the current one\n  _mountStack: [0],\n  _injected: false,\n\n  start: function () {\n    if (!ReactDefaultPerf._injected) {\n      ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure);\n    }\n\n    ReactDefaultPerf._allMeasurements.length = 0;\n    ReactPerf.enableMeasure = true;\n  },\n\n  stop: function () {\n    ReactPerf.enableMeasure = false;\n  },\n\n  getLastMeasurements: function () {\n    return ReactDefaultPerf._allMeasurements;\n  },\n\n  printExclusive: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements);\n    console.table(summary.map(function (item) {\n      return {\n        'Component class name': item.componentName,\n        'Total inclusive time (ms)': roundFloat(item.inclusive),\n        'Exclusive mount time (ms)': roundFloat(item.exclusive),\n        'Exclusive render time (ms)': roundFloat(item.render),\n        'Mount time per instance (ms)': roundFloat(item.exclusive / item.count),\n        'Render time per instance (ms)': roundFloat(item.render / item.count),\n        'Instances': item.count\n      };\n    }));\n    // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct\n    // number.\n  },\n\n  printInclusive: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements);\n    console.table(summary.map(function (item) {\n      return {\n        'Owner > component': item.componentName,\n        'Inclusive time (ms)': roundFloat(item.time),\n        'Instances': item.count\n      };\n    }));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  getMeasurementsSummaryMap: function (measurements) {\n    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements, true);\n    return summary.map(function (item) {\n      return {\n        'Owner > component': item.componentName,\n        'Wasted time (ms)': item.time,\n        'Instances': item.count\n      };\n    });\n  },\n\n  printWasted: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  printDOM: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);\n    console.table(summary.map(function (item) {\n      var result = {};\n      result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id;\n      result.type = item.type;\n      result.args = JSON.stringify(item.args);\n      return result;\n    }));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  _recordWrite: function (id, fnName, totalTime, args) {\n    // TODO: totalTime isn't that useful since it doesn't count paints/reflows\n    var writes = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].writes;\n    writes[id] = writes[id] || [];\n    writes[id].push({\n      type: fnName,\n      time: totalTime,\n      args: args\n    });\n  },\n\n  measure: function (moduleName, fnName, func) {\n    return function () {\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      var totalTime;\n      var rv;\n      var start;\n\n      if (fnName === '_renderNewRootComponent' || fnName === 'flushBatchedUpdates') {\n        // A \"measurement\" is a set of metrics recorded for each flush. We want\n        // to group the metrics for a given flush together so we can look at the\n        // components that rendered and the DOM operations that actually\n        // happened to determine the amount of \"wasted work\" performed.\n        ReactDefaultPerf._allMeasurements.push({\n          exclusive: {},\n          inclusive: {},\n          render: {},\n          counts: {},\n          writes: {},\n          displayNames: {},\n          totalTime: 0,\n          created: {}\n        });\n        start = performanceNow();\n        rv = func.apply(this, args);\n        ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start;\n        return rv;\n      } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') {\n        start = performanceNow();\n        rv = func.apply(this, args);\n        totalTime = performanceNow() - start;\n\n        if (fnName === '_mountImageIntoNode') {\n          var mountID = ReactMount.getID(args[1]);\n          ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]);\n        } else if (fnName === 'dangerouslyProcessChildrenUpdates') {\n          // special format\n          args[0].forEach(function (update) {\n            var writeArgs = {};\n            if (update.fromIndex !== null) {\n              writeArgs.fromIndex = update.fromIndex;\n            }\n            if (update.toIndex !== null) {\n              writeArgs.toIndex = update.toIndex;\n            }\n            if (update.textContent !== null) {\n              writeArgs.textContent = update.textContent;\n            }\n            if (update.markupIndex !== null) {\n              writeArgs.markup = args[1][update.markupIndex];\n            }\n            ReactDefaultPerf._recordWrite(update.parentID, update.type, totalTime, writeArgs);\n          });\n        } else {\n          // basic format\n          var id = args[0];\n          if (typeof id === 'object') {\n            id = ReactMount.getID(args[0]);\n          }\n          ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1));\n        }\n        return rv;\n      } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()?\n      fnName === '_renderValidatedComponent')) {\n\n        if (this._currentElement.type === ReactMount.TopLevelWrapper) {\n          return func.apply(this, args);\n        }\n\n        var rootNodeID = fnName === 'mountComponent' ? args[0] : this._rootNodeID;\n        var isRender = fnName === '_renderValidatedComponent';\n        var isMount = fnName === 'mountComponent';\n\n        var mountStack = ReactDefaultPerf._mountStack;\n        var entry = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1];\n\n        if (isRender) {\n          addValue(entry.counts, rootNodeID, 1);\n        } else if (isMount) {\n          entry.created[rootNodeID] = true;\n          mountStack.push(0);\n        }\n\n        start = performanceNow();\n        rv = func.apply(this, args);\n        totalTime = performanceNow() - start;\n\n        if (isRender) {\n          addValue(entry.render, rootNodeID, totalTime);\n        } else if (isMount) {\n          var subMountTime = mountStack.pop();\n          mountStack[mountStack.length - 1] += totalTime;\n          addValue(entry.exclusive, rootNodeID, totalTime - subMountTime);\n          addValue(entry.inclusive, rootNodeID, totalTime);\n        } else {\n          addValue(entry.inclusive, rootNodeID, totalTime);\n        }\n\n        entry.displayNames[rootNodeID] = {\n          current: this.getName(),\n          owner: this._currentElement._owner ? this._currentElement._owner.getName() : '<root>'\n        };\n\n        return rv;\n      } else {\n        return func.apply(this, args);\n      }\n    };\n  }\n};\n\nmodule.exports = ReactDefaultPerf;"
    },
    {
      "id": 214,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerfAnalysis.js",
      "name": "./~/react/lib/ReactDefaultPerfAnalysis.js",
      "index": 214,
      "index2": 208,
      "size": 5785,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 213,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "./~/react/lib/ReactDefaultPerf.js",
          "moduleName": "./~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultPerfAnalysis",
          "loc": "16:31-68"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerfAnalysis\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\n\n// Don't try to save users less than 1.2ms (a number I made up)\nvar DONT_CARE_THRESHOLD = 1.2;\nvar DOM_OPERATION_TYPES = {\n  '_mountImageIntoNode': 'set innerHTML',\n  INSERT_MARKUP: 'set innerHTML',\n  MOVE_EXISTING: 'move',\n  REMOVE_NODE: 'remove',\n  SET_MARKUP: 'set innerHTML',\n  TEXT_CONTENT: 'set textContent',\n  'setValueForProperty': 'update attribute',\n  'setValueForAttribute': 'update attribute',\n  'deleteValueForProperty': 'remove attribute',\n  'setValueForStyles': 'update styles',\n  'replaceNodeWithMarkup': 'replace',\n  'updateTextContent': 'set textContent'\n};\n\nfunction getTotalTime(measurements) {\n  // TODO: return number of DOM ops? could be misleading.\n  // TODO: measure dropped frames after reconcile?\n  // TODO: log total time of each reconcile and the top-level component\n  // class that triggered it.\n  var totalTime = 0;\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    totalTime += measurement.totalTime;\n  }\n  return totalTime;\n}\n\nfunction getDOMSummary(measurements) {\n  var items = [];\n  measurements.forEach(function (measurement) {\n    Object.keys(measurement.writes).forEach(function (id) {\n      measurement.writes[id].forEach(function (write) {\n        items.push({\n          id: id,\n          type: DOM_OPERATION_TYPES[write.type] || write.type,\n          args: write.args\n        });\n      });\n    });\n  });\n  return items;\n}\n\nfunction getExclusiveSummary(measurements) {\n  var candidates = {};\n  var displayName;\n\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n    for (var id in allIDs) {\n      displayName = measurement.displayNames[id].current;\n\n      candidates[displayName] = candidates[displayName] || {\n        componentName: displayName,\n        inclusive: 0,\n        exclusive: 0,\n        render: 0,\n        count: 0\n      };\n      if (measurement.render[id]) {\n        candidates[displayName].render += measurement.render[id];\n      }\n      if (measurement.exclusive[id]) {\n        candidates[displayName].exclusive += measurement.exclusive[id];\n      }\n      if (measurement.inclusive[id]) {\n        candidates[displayName].inclusive += measurement.inclusive[id];\n      }\n      if (measurement.counts[id]) {\n        candidates[displayName].count += measurement.counts[id];\n      }\n    }\n  }\n\n  // Now make a sorted array with the results.\n  var arr = [];\n  for (displayName in candidates) {\n    if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) {\n      arr.push(candidates[displayName]);\n    }\n  }\n\n  arr.sort(function (a, b) {\n    return b.exclusive - a.exclusive;\n  });\n\n  return arr;\n}\n\nfunction getInclusiveSummary(measurements, onlyClean) {\n  var candidates = {};\n  var inclusiveKey;\n\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n    var cleanComponents;\n\n    if (onlyClean) {\n      cleanComponents = getUnchangedComponents(measurement);\n    }\n\n    for (var id in allIDs) {\n      if (onlyClean && !cleanComponents[id]) {\n        continue;\n      }\n\n      var displayName = measurement.displayNames[id];\n\n      // Inclusive time is not useful for many components without knowing where\n      // they are instantiated. So we aggregate inclusive time with both the\n      // owner and current displayName as the key.\n      inclusiveKey = displayName.owner + ' > ' + displayName.current;\n\n      candidates[inclusiveKey] = candidates[inclusiveKey] || {\n        componentName: inclusiveKey,\n        time: 0,\n        count: 0\n      };\n\n      if (measurement.inclusive[id]) {\n        candidates[inclusiveKey].time += measurement.inclusive[id];\n      }\n      if (measurement.counts[id]) {\n        candidates[inclusiveKey].count += measurement.counts[id];\n      }\n    }\n  }\n\n  // Now make a sorted array with the results.\n  var arr = [];\n  for (inclusiveKey in candidates) {\n    if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) {\n      arr.push(candidates[inclusiveKey]);\n    }\n  }\n\n  arr.sort(function (a, b) {\n    return b.time - a.time;\n  });\n\n  return arr;\n}\n\nfunction getUnchangedComponents(measurement) {\n  // For a given reconcile, look at which components did not actually\n  // render anything to the DOM and return a mapping of their ID to\n  // the amount of time it took to render the entire subtree.\n  var cleanComponents = {};\n  var dirtyLeafIDs = Object.keys(measurement.writes);\n  var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n  for (var id in allIDs) {\n    var isDirty = false;\n    // For each component that rendered, see if a component that triggered\n    // a DOM op is in its subtree.\n    for (var i = 0; i < dirtyLeafIDs.length; i++) {\n      if (dirtyLeafIDs[i].indexOf(id) === 0) {\n        isDirty = true;\n        break;\n      }\n    }\n    // check if component newly created\n    if (measurement.created[id]) {\n      isDirty = true;\n    }\n    if (!isDirty && measurement.counts[id] > 0) {\n      cleanComponents[id] = true;\n    }\n  }\n  return cleanComponents;\n}\n\nvar ReactDefaultPerfAnalysis = {\n  getExclusiveSummary: getExclusiveSummary,\n  getInclusiveSummary: getInclusiveSummary,\n  getDOMSummary: getDOMSummary,\n  getTotalTime: getTotalTime\n};\n\nmodule.exports = ReactDefaultPerfAnalysis;"
    },
    {
      "id": 215,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/performanceNow.js",
      "name": "./~/fbjs/lib/performanceNow.js",
      "index": 215,
      "index2": 210,
      "size": 844,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 213,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "./~/react/lib/ReactDefaultPerf.js",
          "moduleName": "./~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/performanceNow",
          "loc": "20:21-55"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performanceNow\n * @typechecks\n */\n\n'use strict';\n\nvar performance = require('./performance');\n\nvar performanceNow;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (performance.now) {\n  performanceNow = function () {\n    return performance.now();\n  };\n} else {\n  performanceNow = function () {\n    return Date.now();\n  };\n}\n\nmodule.exports = performanceNow;"
    },
    {
      "id": 216,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/performance.js",
      "name": "./~/fbjs/lib/performance.js",
      "index": 216,
      "index2": 209,
      "size": 612,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/performanceNow.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 215,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/performanceNow.js",
          "module": "./~/fbjs/lib/performanceNow.js",
          "moduleName": "./~/fbjs/lib/performanceNow.js",
          "type": "cjs require",
          "userRequest": "./performance",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performance\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n  performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};"
    },
    {
      "id": 217,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactVersion.js",
      "name": "./~/react/lib/ReactVersion.js",
      "index": 217,
      "index2": 213,
      "size": 379,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactVersion",
          "loc": "24:19-44"
        },
        {
          "moduleId": 219,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMServer.js",
          "module": "./~/react/lib/ReactDOMServer.js",
          "moduleName": "./~/react/lib/ReactDOMServer.js",
          "type": "cjs require",
          "userRequest": "./ReactVersion",
          "loc": "16:19-44"
        },
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactVersion",
          "loc": "21:19-44"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '0.14.7';"
    },
    {
      "id": 218,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/renderSubtreeIntoContainer.js",
      "name": "./~/react/lib/renderSubtreeIntoContainer.js",
      "index": 218,
      "index2": 214,
      "size": 463,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 75,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOM.js",
          "module": "./~/react/lib/ReactDOM.js",
          "moduleName": "./~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./renderSubtreeIntoContainer",
          "loc": "27:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;"
    },
    {
      "id": 219,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMServer.js",
      "name": "./~/react/lib/ReactDOMServer.js",
      "index": 219,
      "index2": 219,
      "size": 766,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 74,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
          "module": "./~/react/lib/React.js",
          "moduleName": "./~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMServer",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMServer\n */\n\n'use strict';\n\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactServerRendering = require('./ReactServerRendering');\nvar ReactVersion = require('./ReactVersion');\n\nReactDefaultInjection.inject();\n\nvar ReactDOMServer = {\n  renderToString: ReactServerRendering.renderToString,\n  renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,\n  version: ReactVersion\n};\n\nmodule.exports = ReactDOMServer;"
    },
    {
      "id": 220,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
      "name": "./~/react/lib/ReactServerRendering.js",
      "index": 220,
      "index2": 218,
      "size": 3298,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMServer.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 219,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMServer.js",
          "module": "./~/react/lib/ReactDOMServer.js",
          "moduleName": "./~/react/lib/ReactDOMServer.js",
          "type": "cjs require",
          "userRequest": "./ReactServerRendering",
          "loc": "15:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule ReactServerRendering\n */\n'use strict';\n\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactServerBatchingStrategy = require('./ReactServerBatchingStrategy');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup\n */\nfunction renderToString(element) {\n  !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    var id = ReactInstanceHandles.createReactRootID();\n    transaction = ReactServerRenderingTransaction.getPooled(false);\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, null);\n      var markup = componentInstance.mountComponent(id, transaction, emptyObject);\n      return ReactMarkupChecksum.addChecksumToMarkup(markup);\n    }, null);\n  } finally {\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n  }\n}\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup, without the extra React ID and checksum\n * (for generating static pages)\n */\nfunction renderToStaticMarkup(element) {\n  !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    var id = ReactInstanceHandles.createReactRootID();\n    transaction = ReactServerRenderingTransaction.getPooled(true);\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, null);\n      return componentInstance.mountComponent(id, transaction, emptyObject);\n    }, null);\n  } finally {\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n  }\n}\n\nmodule.exports = {\n  renderToString: renderToString,\n  renderToStaticMarkup: renderToStaticMarkup\n};"
    },
    {
      "id": 221,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerBatchingStrategy.js",
      "name": "./~/react/lib/ReactServerBatchingStrategy.js",
      "index": 221,
      "index2": 216,
      "size": 673,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactServerBatchingStrategy",
          "loc": "18:34-74"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerBatchingStrategy\n * @typechecks\n */\n\n'use strict';\n\nvar ReactServerBatchingStrategy = {\n  isBatchingUpdates: false,\n  batchedUpdates: function (callback) {\n    // Don't do anything here. During the server rendering we don't want to\n    // schedule any updates. We will simply ignore them.\n  }\n};\n\nmodule.exports = ReactServerBatchingStrategy;"
    },
    {
      "id": 222,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRenderingTransaction.js",
      "name": "./~/react/lib/ReactServerRenderingTransaction.js",
      "index": 222,
      "index2": 217,
      "size": 2300,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 220,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactServerRendering.js",
          "module": "./~/react/lib/ReactServerRendering.js",
          "moduleName": "./~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactServerRenderingTransaction",
          "loc": "19:38-82"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n * @typechecks\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar CallbackQueue = require('./CallbackQueue');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\n/**\n * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks\n * during the performing of the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  close: emptyFunction\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING];\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n  this.reinitializeTransaction();\n  this.renderToStaticMarkup = renderToStaticMarkup;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = false;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array} Empty list of operation wrap procedures.\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\nassign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;"
    },
    {
      "id": 223,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "name": "./~/react/lib/ReactIsomorphic.js",
      "index": 223,
      "index2": 224,
      "size": 2054,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 74,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
          "module": "./~/react/lib/React.js",
          "moduleName": "./~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./ReactIsomorphic",
          "loc": "16:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactIsomorphic\n */\n\n'use strict';\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactElementValidator = require('./ReactElementValidator');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar assign = require('./Object.assign');\nvar onlyChild = require('./onlyChild');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n  createElement = ReactElementValidator.createElement;\n  createFactory = ReactElementValidator.createFactory;\n  cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar React = {\n\n  // Modern\n\n  Children: {\n    map: ReactChildren.map,\n    forEach: ReactChildren.forEach,\n    count: ReactChildren.count,\n    toArray: ReactChildren.toArray,\n    only: onlyChild\n  },\n\n  Component: ReactComponent,\n\n  createElement: createElement,\n  cloneElement: cloneElement,\n  isValidElement: ReactElement.isValidElement,\n\n  // Classic\n\n  PropTypes: ReactPropTypes,\n  createClass: ReactClass.createClass,\n  createFactory: createFactory,\n  createMixin: function (mixin) {\n    // Currently a noop. Will be used to validate and trace mixins.\n    return mixin;\n  },\n\n  // This looks DOM specific but these are actually isomorphic helpers\n  // since they are just generating DOM strings.\n  DOM: ReactDOMFactories,\n\n  version: ReactVersion,\n\n  // Hook for JSX spread, don't use this for anything else.\n  __spread: assign\n};\n\nmodule.exports = React;"
    },
    {
      "id": 224,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMFactories.js",
      "name": "./~/react/lib/ReactDOMFactories.js",
      "index": 224,
      "index2": 222,
      "size": 3357,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMFactories",
          "loc": "17:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactElementValidator = require('./ReactElementValidator');\n\nvar mapObject = require('fbjs/lib/mapObject');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @param {string} tag Tag name (e.g. `div`).\n * @private\n */\nfunction createDOMFactory(tag) {\n  if (process.env.NODE_ENV !== 'production') {\n    return ReactElementValidator.createFactory(tag);\n  }\n  return ReactElement.createFactory(tag);\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = mapObject({\n  a: 'a',\n  abbr: 'abbr',\n  address: 'address',\n  area: 'area',\n  article: 'article',\n  aside: 'aside',\n  audio: 'audio',\n  b: 'b',\n  base: 'base',\n  bdi: 'bdi',\n  bdo: 'bdo',\n  big: 'big',\n  blockquote: 'blockquote',\n  body: 'body',\n  br: 'br',\n  button: 'button',\n  canvas: 'canvas',\n  caption: 'caption',\n  cite: 'cite',\n  code: 'code',\n  col: 'col',\n  colgroup: 'colgroup',\n  data: 'data',\n  datalist: 'datalist',\n  dd: 'dd',\n  del: 'del',\n  details: 'details',\n  dfn: 'dfn',\n  dialog: 'dialog',\n  div: 'div',\n  dl: 'dl',\n  dt: 'dt',\n  em: 'em',\n  embed: 'embed',\n  fieldset: 'fieldset',\n  figcaption: 'figcaption',\n  figure: 'figure',\n  footer: 'footer',\n  form: 'form',\n  h1: 'h1',\n  h2: 'h2',\n  h3: 'h3',\n  h4: 'h4',\n  h5: 'h5',\n  h6: 'h6',\n  head: 'head',\n  header: 'header',\n  hgroup: 'hgroup',\n  hr: 'hr',\n  html: 'html',\n  i: 'i',\n  iframe: 'iframe',\n  img: 'img',\n  input: 'input',\n  ins: 'ins',\n  kbd: 'kbd',\n  keygen: 'keygen',\n  label: 'label',\n  legend: 'legend',\n  li: 'li',\n  link: 'link',\n  main: 'main',\n  map: 'map',\n  mark: 'mark',\n  menu: 'menu',\n  menuitem: 'menuitem',\n  meta: 'meta',\n  meter: 'meter',\n  nav: 'nav',\n  noscript: 'noscript',\n  object: 'object',\n  ol: 'ol',\n  optgroup: 'optgroup',\n  option: 'option',\n  output: 'output',\n  p: 'p',\n  param: 'param',\n  picture: 'picture',\n  pre: 'pre',\n  progress: 'progress',\n  q: 'q',\n  rp: 'rp',\n  rt: 'rt',\n  ruby: 'ruby',\n  s: 's',\n  samp: 'samp',\n  script: 'script',\n  section: 'section',\n  select: 'select',\n  small: 'small',\n  source: 'source',\n  span: 'span',\n  strong: 'strong',\n  style: 'style',\n  sub: 'sub',\n  summary: 'summary',\n  sup: 'sup',\n  table: 'table',\n  tbody: 'tbody',\n  td: 'td',\n  textarea: 'textarea',\n  tfoot: 'tfoot',\n  th: 'th',\n  thead: 'thead',\n  time: 'time',\n  title: 'title',\n  tr: 'tr',\n  track: 'track',\n  u: 'u',\n  ul: 'ul',\n  'var': 'var',\n  video: 'video',\n  wbr: 'wbr',\n\n  // SVG\n  circle: 'circle',\n  clipPath: 'clipPath',\n  defs: 'defs',\n  ellipse: 'ellipse',\n  g: 'g',\n  image: 'image',\n  line: 'line',\n  linearGradient: 'linearGradient',\n  mask: 'mask',\n  path: 'path',\n  pattern: 'pattern',\n  polygon: 'polygon',\n  polyline: 'polyline',\n  radialGradient: 'radialGradient',\n  rect: 'rect',\n  stop: 'stop',\n  svg: 'svg',\n  text: 'text',\n  tspan: 'tspan'\n\n}, createDOMFactory);\n\nmodule.exports = ReactDOMFactories;"
    },
    {
      "id": 225,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactElementValidator.js",
      "name": "./~/react/lib/ReactElementValidator.js",
      "index": 225,
      "index2": 220,
      "size": 10768,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactElementValidator",
          "loc": "19:28-62"
        },
        {
          "moduleId": 224,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMFactories.js",
          "module": "./~/react/lib/ReactDOMFactories.js",
          "moduleName": "./~/react/lib/ReactDOMFactories.js",
          "type": "cjs require",
          "userRequest": "./ReactElementValidator",
          "loc": "16:28-62"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = ReactCurrentOwner.current.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nvar loggedTypeFailures = {};\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n  element._store.validated = true;\n\n  var addenda = getAddendaForKeyUse('uniqueKey', element, parentType);\n  if (addenda === null) {\n    // we already showed the warning\n    return;\n  }\n  process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : undefined;\n}\n\n/**\n * Shared warning and monitoring code for the key warnings.\n *\n * @internal\n * @param {string} messageType A key used for de-duping warnings.\n * @param {ReactElement} element Component that requires a key.\n * @param {*} parentType element's parent's type.\n * @returns {?object} A set of addenda to use in the warning message, or null\n * if the warning has already been shown before (and shouldn't be shown again).\n */\nfunction getAddendaForKeyUse(messageType, element, parentType) {\n  var addendum = getDeclarationErrorAddendum();\n  if (!addendum) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n    if (parentName) {\n      addendum = ' Check the top-level render call using <' + parentName + '>.';\n    }\n  }\n\n  var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {});\n  if (memoizer[addendum]) {\n    return null;\n  }\n  memoizer[addendum] = true;\n\n  var addenda = {\n    parentOrOwner: addendum,\n    url: ' See https://fb.me/react-warning-keys for more information.',\n    childOwner: null\n  };\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n  }\n\n  return addenda;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n      if (ReactElement.isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (ReactElement.isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n    // Entry iterators provide implicit keys.\n    if (iteratorFn) {\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n        while (!(step = iterator.next()).done) {\n          if (ReactElement.isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * Assert that the props are valid\n *\n * @param {string} componentName Name of the component for error messages.\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\nfunction checkPropTypes(componentName, propTypes, props, location) {\n  for (var propName in propTypes) {\n    if (propTypes.hasOwnProperty(propName)) {\n      var error;\n      // Prop type validation may throw. In case they do, we don't want to\n      // fail the render phase where it didn't fail before. So we log it.\n      // After these have been cleaned up, we'll let them throw.\n      try {\n        // This is intentionally an invariant that gets caught. It's the same\n        // behavior as without this statement except with a better message.\n        !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n        error = propTypes[propName](props, propName, componentName, location);\n      } catch (ex) {\n        error = ex;\n      }\n      process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : undefined;\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum();\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : undefined;\n      }\n    }\n  }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n  var componentClass = element.type;\n  if (typeof componentClass !== 'function') {\n    return;\n  }\n  var name = componentClass.displayName || componentClass.name;\n  if (componentClass.propTypes) {\n    checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop);\n  }\n  if (typeof componentClass.getDefaultProps === 'function') {\n    process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : undefined;\n  }\n}\n\nvar ReactElementValidator = {\n\n  createElement: function (type, props, children) {\n    var validType = typeof type === 'string' || typeof type === 'function';\n    // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n    process.env.NODE_ENV !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : undefined;\n\n    var element = ReactElement.createElement.apply(this, arguments);\n\n    // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n    if (element == null) {\n      return element;\n    }\n\n    // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n    if (validType) {\n      for (var i = 2; i < arguments.length; i++) {\n        validateChildKeys(arguments[i], type);\n      }\n    }\n\n    validatePropTypes(element);\n\n    return element;\n  },\n\n  createFactory: function (type) {\n    var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n    // Legacy hook TODO: Warn if this is accessed\n    validatedFactory.type = type;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (canDefineProperty) {\n        Object.defineProperty(validatedFactory, 'type', {\n          enumerable: false,\n          get: function () {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : undefined;\n            Object.defineProperty(this, 'type', {\n              value: type\n            });\n            return type;\n          }\n        });\n      }\n    }\n\n    return validatedFactory;\n  },\n\n  cloneElement: function (element, props, children) {\n    var newElement = ReactElement.cloneElement.apply(this, arguments);\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], newElement.type);\n    }\n    validatePropTypes(newElement);\n    return newElement;\n  }\n\n};\n\nmodule.exports = ReactElementValidator;"
    },
    {
      "id": 226,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/fbjs/lib/mapObject.js",
      "name": "./~/fbjs/lib/mapObject.js",
      "index": 226,
      "index2": 221,
      "size": 1466,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMFactories.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 224,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactDOMFactories.js",
          "module": "./~/react/lib/ReactDOMFactories.js",
          "moduleName": "./~/react/lib/ReactDOMFactories.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/mapObject",
          "loc": "18:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule mapObject\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n *  - the property value\n *  - the property name\n *  - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\nfunction mapObject(object, callback, context) {\n  if (!object) {\n    return null;\n  }\n  var result = {};\n  for (var name in object) {\n    if (hasOwnProperty.call(object, name)) {\n      result[name] = callback.call(context, object[name], name, object);\n    }\n  }\n  return result;\n}\n\nmodule.exports = mapObject;"
    },
    {
      "id": 227,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/onlyChild.js",
      "name": "./~/react/lib/onlyChild.js",
      "index": 227,
      "index2": 223,
      "size": 1211,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 223,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/ReactIsomorphic.js",
          "module": "./~/react/lib/ReactIsomorphic.js",
          "moduleName": "./~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./onlyChild",
          "loc": "24:16-38"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection. The current implementation of this\n * function assumes that a single child gets passed without a wrapper, but the\n * purpose of this helper function is to abstract away the particular structure\n * of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactComponent} The first and only `ReactComponent` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n  !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : undefined;\n  return children;\n}\n\nmodule.exports = onlyChild;"
    },
    {
      "id": 228,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/deprecated.js",
      "name": "./~/react/lib/deprecated.js",
      "index": 228,
      "index2": 225,
      "size": 1768,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 74,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react/lib/React.js",
          "module": "./~/react/lib/React.js",
          "moduleName": "./~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./deprecated",
          "loc": "19:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule deprecated\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * This will log a single deprecation notice per function and forward the call\n * on to the new API.\n *\n * @param {string} fnName The name of the function\n * @param {string} newModule The module that fn will exist in\n * @param {string} newPackage The module that fn will exist in\n * @param {*} ctx The context this forwarded call should run in\n * @param {function} fn The function to forward on to\n * @return {function} The function that will warn once and then call fn\n */\nfunction deprecated(fnName, newModule, newPackage, ctx, fn) {\n  var warned = false;\n  if (process.env.NODE_ENV !== 'production') {\n    var newFn = function () {\n      process.env.NODE_ENV !== 'production' ? warning(warned,\n      // Require examples in this string must be split to prevent React's\n      // build tools from mistaking them for real requires.\n      // Otherwise the build tools will attempt to build a '%s' module.\n      'React.%s is deprecated. Please use %s.%s from require' + '(\\'%s\\') ' + 'instead.', fnName, newModule, fnName, newPackage) : undefined;\n      warned = true;\n      return fn.apply(ctx, arguments);\n    };\n    // We need to make sure all properties of the original fn are copied over.\n    // In particular, this is needed to support PropTypes\n    return assign(newFn, fn);\n  }\n\n  return fn;\n}\n\nmodule.exports = deprecated;"
    },
    {
      "id": 229,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-dom/index.js",
      "name": "./~/react-dom/index.js",
      "index": 229,
      "index2": 228,
      "size": 63,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "multi _vendor",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "multi _vendor",
          "module": "multi _vendor",
          "moduleName": "multi _vendor",
          "type": "single entry",
          "userRequest": "react-dom"
        },
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
          "module": "./modules/client.js",
          "moduleName": "./modules/client.js",
          "type": "cjs require",
          "userRequest": "react-dom",
          "loc": "7:16-36"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = require('react/lib/ReactDOM');\n"
    },
    {
      "id": 230,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "name": "./~/react-router/lib/index.js",
      "index": 230,
      "index2": 285,
      "size": 3299,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "multi _vendor",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "multi _vendor",
          "module": "multi _vendor",
          "moduleName": "multi _vendor",
          "type": "single entry",
          "userRequest": "react-router"
        },
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
          "module": "./modules/client.js",
          "moduleName": "./modules/client.js",
          "type": "cjs require",
          "userRequest": "react-router",
          "loc": "9:19-42"
        },
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "react-router",
          "loc": "13:19-42"
        },
        {
          "moduleId": 451,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/App.js",
          "module": "./modules/components/App.js",
          "moduleName": "./modules/components/App.js",
          "type": "cjs require",
          "userRequest": "react-router",
          "loc": "11:19-42"
        }
      ],
      "source": "/* components */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _Router2 = require('./Router');\n\nvar _Router3 = _interopRequireDefault(_Router2);\n\nexports.Router = _Router3['default'];\n\nvar _Link2 = require('./Link');\n\nvar _Link3 = _interopRequireDefault(_Link2);\n\nexports.Link = _Link3['default'];\n\nvar _IndexLink2 = require('./IndexLink');\n\nvar _IndexLink3 = _interopRequireDefault(_IndexLink2);\n\nexports.IndexLink = _IndexLink3['default'];\n\n/* components (configuration) */\n\nvar _IndexRedirect2 = require('./IndexRedirect');\n\nvar _IndexRedirect3 = _interopRequireDefault(_IndexRedirect2);\n\nexports.IndexRedirect = _IndexRedirect3['default'];\n\nvar _IndexRoute2 = require('./IndexRoute');\n\nvar _IndexRoute3 = _interopRequireDefault(_IndexRoute2);\n\nexports.IndexRoute = _IndexRoute3['default'];\n\nvar _Redirect2 = require('./Redirect');\n\nvar _Redirect3 = _interopRequireDefault(_Redirect2);\n\nexports.Redirect = _Redirect3['default'];\n\nvar _Route2 = require('./Route');\n\nvar _Route3 = _interopRequireDefault(_Route2);\n\nexports.Route = _Route3['default'];\n\n/* mixins */\n\nvar _History2 = require('./History');\n\nvar _History3 = _interopRequireDefault(_History2);\n\nexports.History = _History3['default'];\n\nvar _Lifecycle2 = require('./Lifecycle');\n\nvar _Lifecycle3 = _interopRequireDefault(_Lifecycle2);\n\nexports.Lifecycle = _Lifecycle3['default'];\n\nvar _RouteContext2 = require('./RouteContext');\n\nvar _RouteContext3 = _interopRequireDefault(_RouteContext2);\n\nexports.RouteContext = _RouteContext3['default'];\n\n/* utils */\n\nvar _useRoutes2 = require('./useRoutes');\n\nvar _useRoutes3 = _interopRequireDefault(_useRoutes2);\n\nexports.useRoutes = _useRoutes3['default'];\n\nvar _RouteUtils = require('./RouteUtils');\n\nexports.createRoutes = _RouteUtils.createRoutes;\n\nvar _RouterContext2 = require('./RouterContext');\n\nvar _RouterContext3 = _interopRequireDefault(_RouterContext2);\n\nexports.RouterContext = _RouterContext3['default'];\n\nvar _RoutingContext2 = require('./RoutingContext');\n\nvar _RoutingContext3 = _interopRequireDefault(_RoutingContext2);\n\nexports.RoutingContext = _RoutingContext3['default'];\n\nvar _PropTypes2 = require('./PropTypes');\n\nvar _PropTypes3 = _interopRequireDefault(_PropTypes2);\n\nexports.PropTypes = _PropTypes3['default'];\n\nvar _match2 = require('./match');\n\nvar _match3 = _interopRequireDefault(_match2);\n\nexports.match = _match3['default'];\n\nvar _useRouterHistory2 = require('./useRouterHistory');\n\nvar _useRouterHistory3 = _interopRequireDefault(_useRouterHistory2);\n\nexports.useRouterHistory = _useRouterHistory3['default'];\n\nvar _PatternUtils = require('./PatternUtils');\n\nexports.formatPattern = _PatternUtils.formatPattern;\n\n/* histories */\n\nvar _browserHistory2 = require('./browserHistory');\n\nvar _browserHistory3 = _interopRequireDefault(_browserHistory2);\n\nexports.browserHistory = _browserHistory3['default'];\n\nvar _hashHistory2 = require('./hashHistory');\n\nvar _hashHistory3 = _interopRequireDefault(_hashHistory2);\n\nexports.hashHistory = _hashHistory3['default'];\n\nvar _createMemoryHistory2 = require('./createMemoryHistory');\n\nvar _createMemoryHistory3 = _interopRequireDefault(_createMemoryHistory2);\n\nexports.createMemoryHistory = _createMemoryHistory3['default'];"
    },
    {
      "id": 231,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
      "name": "./~/react-router/lib/Router.js",
      "index": 231,
      "index2": 264,
      "size": 7600,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./Router",
          "loc": "8:15-34"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar _historyLibCreateHashHistory = require('history/lib/createHashHistory');\n\nvar _historyLibCreateHashHistory2 = _interopRequireDefault(_historyLibCreateHashHistory);\n\nvar _historyLibUseQueries = require('history/lib/useQueries');\n\nvar _historyLibUseQueries2 = _interopRequireDefault(_historyLibUseQueries);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _PropTypes = require('./PropTypes');\n\nvar _RouterContext = require('./RouterContext');\n\nvar _RouterContext2 = _interopRequireDefault(_RouterContext);\n\nvar _RouteUtils = require('./RouteUtils');\n\nvar _RouterUtils = require('./RouterUtils');\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nfunction isDeprecatedHistory(history) {\n  return !history || !history.__v2_compatible__;\n}\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar func = _React$PropTypes.func;\nvar object = _React$PropTypes.object;\n\n/**\n * A <Router> is a high-level API for automatically setting up\n * a router that renders a <RouterContext> with all the props\n * it needs each time the URL changes.\n */\nvar Router = _react2['default'].createClass({\n  displayName: 'Router',\n\n  propTypes: {\n    history: object,\n    children: _PropTypes.routes,\n    routes: _PropTypes.routes, // alias for children\n    render: func,\n    createElement: func,\n    onError: func,\n    onUpdate: func,\n\n    // PRIVATE: For client-side rehydration of server match.\n    matchContext: object\n  },\n\n  getDefaultProps: function getDefaultProps() {\n    return {\n      render: function render(props) {\n        return _react2['default'].createElement(_RouterContext2['default'], props);\n      }\n    };\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      location: null,\n      routes: null,\n      params: null,\n      components: null\n    };\n  },\n\n  handleError: function handleError(error) {\n    if (this.props.onError) {\n      this.props.onError.call(this, error);\n    } else {\n      // Throw errors by default so we don't silently swallow them!\n      throw error; // This error probably occurred in getChildRoutes or getComponents.\n    }\n  },\n\n  componentWillMount: function componentWillMount() {\n    var _this = this;\n\n    var _props = this.props;\n    var parseQueryString = _props.parseQueryString;\n    var stringifyQuery = _props.stringifyQuery;\n\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](!(parseQueryString || stringifyQuery), '`parseQueryString` and `stringifyQuery` are deprecated. Please create a custom history. http://tiny.cc/router-customquerystring') : undefined;\n\n    var _createRouterObjects = this.createRouterObjects();\n\n    var history = _createRouterObjects.history;\n    var transitionManager = _createRouterObjects.transitionManager;\n    var router = _createRouterObjects.router;\n\n    this._unlisten = transitionManager.listen(function (error, state) {\n      if (error) {\n        _this.handleError(error);\n      } else {\n        _this.setState(state, _this.props.onUpdate);\n      }\n    });\n\n    this.history = history;\n    this.router = router;\n  },\n\n  createRouterObjects: function createRouterObjects() {\n    var matchContext = this.props.matchContext;\n\n    if (matchContext) {\n      return matchContext;\n    }\n\n    var history = this.props.history;\n    var _props2 = this.props;\n    var routes = _props2.routes;\n    var children = _props2.children;\n\n    if (isDeprecatedHistory(history)) {\n      history = this.wrapDeprecatedHistory(history);\n    }\n\n    var transitionManager = _createTransitionManager2['default'](history, _RouteUtils.createRoutes(routes || children));\n    var router = _RouterUtils.createRouterObject(history, transitionManager);\n    var routingHistory = _RouterUtils.createRoutingHistory(history, transitionManager);\n\n    return { history: routingHistory, transitionManager: transitionManager, router: router };\n  },\n\n  wrapDeprecatedHistory: function wrapDeprecatedHistory(history) {\n    var _props3 = this.props;\n    var parseQueryString = _props3.parseQueryString;\n    var stringifyQuery = _props3.stringifyQuery;\n\n    var createHistory = undefined;\n    if (history) {\n      process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'It appears you have provided a deprecated history object to `<Router/>`, please use a history provided by ' + 'React Router with `import { browserHistory } from \\'react-router\\'` or `import { hashHistory } from \\'react-router\\'`. ' + 'If you are using a custom history please create it with `useRouterHistory`, see http://tiny.cc/router-usinghistory for details.') : undefined;\n      createHistory = function () {\n        return history;\n      };\n    } else {\n      process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, '`Router` no longer defaults the history prop to hash history. Please use the `hashHistory` singleton instead. http://tiny.cc/router-defaulthistory') : undefined;\n      createHistory = _historyLibCreateHashHistory2['default'];\n    }\n\n    return _historyLibUseQueries2['default'](createHistory)({ parseQueryString: parseQueryString, stringifyQuery: stringifyQuery });\n  },\n\n  /* istanbul ignore next: sanity check */\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](nextProps.history === this.props.history, 'You cannot change <Router history>; it will be ignored') : undefined;\n\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default']((nextProps.routes || nextProps.children) === (this.props.routes || this.props.children), 'You cannot change <Router routes>; it will be ignored') : undefined;\n  },\n\n  componentWillUnmount: function componentWillUnmount() {\n    if (this._unlisten) this._unlisten();\n  },\n\n  render: function render() {\n    var _state = this.state;\n    var location = _state.location;\n    var routes = _state.routes;\n    var params = _state.params;\n    var components = _state.components;\n    var _props4 = this.props;\n    var createElement = _props4.createElement;\n    var render = _props4.render;\n\n    var props = _objectWithoutProperties(_props4, ['createElement', 'render']);\n\n    if (location == null) return null; // Async match\n\n    // Only forward non-Router-specific props to routing context, as those are\n    // the only ones that might be custom routing context props.\n    Object.keys(Router.propTypes).forEach(function (propType) {\n      return delete props[propType];\n    });\n\n    return render(_extends({}, props, {\n      history: this.history,\n      router: this.router,\n      location: location,\n      routes: routes,\n      params: params,\n      components: components,\n      createElement: createElement\n    }));\n  }\n\n});\n\nexports['default'] = Router;\nmodule.exports = exports['default'];"
    },
    {
      "id": 232,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
      "name": "./~/history/lib/createHashHistory.js",
      "index": 232,
      "index2": 245,
      "size": 7448,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "history/lib/createHashHistory",
          "loc": "11:35-75"
        },
        {
          "moduleId": 286,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/hashHistory.js",
          "module": "./~/react-router/lib/hashHistory.js",
          "moduleName": "./~/react-router/lib/hashHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/createHashHistory",
          "loc": "7:35-75"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = require('./Actions');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _createDOMHistory = require('./createDOMHistory');\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\nfunction isAbsolutePath(path) {\n  return typeof path === 'string' && path.charAt(0) === '/';\n}\n\nfunction ensureSlash() {\n  var path = _DOMUtils.getHashPath();\n\n  if (isAbsolutePath(path)) return true;\n\n  _DOMUtils.replaceHashPath('/' + path);\n\n  return false;\n}\n\nfunction addQueryStringValueToPath(path, key, value) {\n  return path + (path.indexOf('?') === -1 ? '?' : '&') + (key + '=' + value);\n}\n\nfunction stripQueryStringValueFromPath(path, key) {\n  return path.replace(new RegExp('[?&]?' + key + '=[a-zA-Z0-9]+'), '');\n}\n\nfunction getQueryStringValueFromPath(path, key) {\n  var match = path.match(new RegExp('\\\\?.*?\\\\b' + key + '=(.+?)\\\\b'));\n  return match && match[1];\n}\n\nvar DefaultQueryKey = '_k';\n\nfunction createHashHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Hash history needs a DOM') : _invariant2['default'](false) : undefined;\n\n  var queryKey = options.queryKey;\n\n  if (queryKey === undefined || !!queryKey) queryKey = typeof queryKey === 'string' ? queryKey : DefaultQueryKey;\n\n  function getCurrentLocation() {\n    var path = _DOMUtils.getHashPath();\n\n    var key = undefined,\n        state = undefined;\n    if (queryKey) {\n      key = getQueryStringValueFromPath(path, queryKey);\n      path = stripQueryStringValueFromPath(path, queryKey);\n\n      if (key) {\n        state = _DOMStateStorage.readState(key);\n      } else {\n        state = null;\n        key = history.createKey();\n        _DOMUtils.replaceHashPath(addQueryStringValueToPath(path, queryKey, key));\n      }\n    } else {\n      key = state = null;\n    }\n\n    var location = _PathUtils.parsePath(path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function startHashChangeListener(_ref) {\n    var transitionTo = _ref.transitionTo;\n\n    function hashChangeListener() {\n      if (!ensureSlash()) return; // Always make sure hashes are preceeded with a /.\n\n      transitionTo(getCurrentLocation());\n    }\n\n    ensureSlash();\n    _DOMUtils.addEventListener(window, 'hashchange', hashChangeListener);\n\n    return function () {\n      _DOMUtils.removeEventListener(window, 'hashchange', hashChangeListener);\n    };\n  }\n\n  function finishTransition(location) {\n    var basename = location.basename;\n    var pathname = location.pathname;\n    var search = location.search;\n    var state = location.state;\n    var action = location.action;\n    var key = location.key;\n\n    if (action === _Actions.POP) return; // Nothing to do.\n\n    var path = (basename || '') + pathname + search;\n\n    if (queryKey) {\n      path = addQueryStringValueToPath(path, queryKey, key);\n      _DOMStateStorage.saveState(key, state);\n    } else {\n      // Drop key and state.\n      location.key = location.state = null;\n    }\n\n    var currentHash = _DOMUtils.getHashPath();\n\n    if (action === _Actions.PUSH) {\n      if (currentHash !== path) {\n        window.location.hash = path;\n      } else {\n        process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'You cannot PUSH the same path using hash history') : undefined;\n      }\n    } else if (currentHash !== path) {\n      // REPLACE\n      _DOMUtils.replaceHashPath(path);\n    }\n  }\n\n  var history = _createDOMHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: _DOMStateStorage.saveState\n  }));\n\n  var listenerCount = 0,\n      stopHashChangeListener = undefined;\n\n  function listenBefore(listener) {\n    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history);\n\n    var unlisten = history.listenBefore(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopHashChangeListener();\n    };\n  }\n\n  function listen(listener) {\n    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history);\n\n    var unlisten = history.listen(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopHashChangeListener();\n    };\n  }\n\n  function push(location) {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || location.state == null, 'You cannot use state without a queryKey it will be dropped') : undefined;\n\n    history.push(location);\n  }\n\n  function replace(location) {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || location.state == null, 'You cannot use state without a queryKey it will be dropped') : undefined;\n\n    history.replace(location);\n  }\n\n  var goIsSupportedWithoutReload = _DOMUtils.supportsGoWithoutReloadUsingHash();\n\n  function go(n) {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](goIsSupportedWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : undefined;\n\n    history.go(n);\n  }\n\n  function createHref(path) {\n    return '#' + history.createHref(path);\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history);\n\n    history.registerTransitionHook(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    history.unregisterTransitionHook(hook);\n\n    if (--listenerCount === 0) stopHashChangeListener();\n  }\n\n  // deprecated\n  function pushState(state, path) {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined;\n\n    history.pushState(state, path);\n  }\n\n  // deprecated\n  function replaceState(state, path) {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined;\n\n    history.replaceState(state, path);\n  }\n\n  return _extends({}, history, {\n    listenBefore: listenBefore,\n    listen: listen,\n    push: push,\n    replace: replace,\n    go: go,\n    createHref: createHref,\n\n    registerTransitionHook: registerTransitionHook, // deprecated - warning is in createHistory\n    unregisterTransitionHook: unregisterTransitionHook, // deprecated - warning is in createHistory\n    pushState: pushState, // deprecated - warning is in createHistory\n    replaceState: replaceState // deprecated - warning is in createHistory\n  });\n}\n\nexports['default'] = createHashHistory;\nmodule.exports = exports['default'];"
    },
    {
      "id": 233,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/warning/browser.js",
      "name": "./~/warning/browser.js",
      "index": 233,
      "index2": 229,
      "size": 1807,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/routerWarning.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "9:15-33"
        },
        {
          "moduleId": 236,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/PathUtils.js",
          "module": "./~/history/lib/PathUtils.js",
          "moduleName": "./~/history/lib/PathUtils.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "9:15-33"
        },
        {
          "moduleId": 239,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/DOMStateStorage.js",
          "module": "./~/history/lib/DOMStateStorage.js",
          "moduleName": "./~/history/lib/DOMStateStorage.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "10:15-33"
        },
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "9:15-33"
        },
        {
          "moduleId": 246,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createLocation.js",
          "module": "./~/history/lib/createLocation.js",
          "moduleName": "./~/history/lib/createLocation.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "9:15-33"
        },
        {
          "moduleId": 247,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/runTransitionHook.js",
          "module": "./~/history/lib/runTransitionHook.js",
          "moduleName": "./~/history/lib/runTransitionHook.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "7:15-33"
        },
        {
          "moduleId": 248,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/deprecate.js",
          "module": "./~/history/lib/deprecate.js",
          "moduleName": "./~/history/lib/deprecate.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "7:15-33"
        },
        {
          "moduleId": 249,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
          "module": "./~/history/lib/useQueries.js",
          "moduleName": "./~/history/lib/useQueries.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "9:15-33"
        },
        {
          "moduleId": 253,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/routerWarning.js",
          "module": "./~/react-router/lib/routerWarning.js",
          "moduleName": "./~/react-router/lib/routerWarning.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "8:15-33"
        },
        {
          "moduleId": 281,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
          "module": "./~/history/lib/createMemoryHistory.js",
          "moduleName": "./~/history/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "warning",
          "loc": "9:15-33"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n"
    },
    {
      "id": 234,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/invariant/browser.js",
      "name": "./~/invariant/browser.js",
      "index": 234,
      "index2": 230,
      "size": 1516,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "13:17-37"
        },
        {
          "moduleId": 240,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createDOMHistory.js",
          "module": "./~/history/lib/createDOMHistory.js",
          "moduleName": "./~/history/lib/createDOMHistory.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "9:17-37"
        },
        {
          "moduleId": 255,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/PatternUtils.js",
          "module": "./~/react-router/lib/PatternUtils.js",
          "moduleName": "./~/react-router/lib/PatternUtils.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "12:17-37"
        },
        {
          "moduleId": 263,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
          "module": "./~/react-router/lib/RouterContext.js",
          "moduleName": "./~/react-router/lib/RouterContext.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "9:17-37"
        },
        {
          "moduleId": 269,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
          "module": "./~/react-router/lib/IndexRedirect.js",
          "moduleName": "./~/react-router/lib/IndexRedirect.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "15:17-37"
        },
        {
          "moduleId": 270,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Redirect.js",
          "module": "./~/react-router/lib/Redirect.js",
          "moduleName": "./~/react-router/lib/Redirect.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "11:17-37"
        },
        {
          "moduleId": 271,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRoute.js",
          "module": "./~/react-router/lib/IndexRoute.js",
          "moduleName": "./~/react-router/lib/IndexRoute.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "15:17-37"
        },
        {
          "moduleId": 272,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Route.js",
          "module": "./~/react-router/lib/Route.js",
          "moduleName": "./~/react-router/lib/Route.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "11:17-37"
        },
        {
          "moduleId": 274,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Lifecycle.js",
          "module": "./~/react-router/lib/Lifecycle.js",
          "moduleName": "./~/react-router/lib/Lifecycle.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "15:17-37"
        },
        {
          "moduleId": 278,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/match.js",
          "module": "./~/react-router/lib/match.js",
          "moduleName": "./~/react-router/lib/match.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "11:17-37"
        },
        {
          "moduleId": 281,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
          "module": "./~/history/lib/createMemoryHistory.js",
          "moduleName": "./~/history/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "13:17-37"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "invariant",
          "loc": "9:17-37"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n"
    },
    {
      "id": 235,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/Actions.js",
      "name": "./~/history/lib/Actions.js",
      "index": 235,
      "index2": 231,
      "size": 720,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "./Actions",
          "loc": "17:15-35"
        },
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "./Actions",
          "loc": "21:15-35"
        },
        {
          "moduleId": 246,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createLocation.js",
          "module": "./~/history/lib/createLocation.js",
          "moduleName": "./~/history/lib/createLocation.js",
          "type": "cjs require",
          "userRequest": "./Actions",
          "loc": "13:15-35"
        },
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "history/lib/Actions",
          "loc": "15:25-55"
        },
        {
          "moduleId": 281,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
          "module": "./~/history/lib/createMemoryHistory.js",
          "moduleName": "./~/history/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "./Actions",
          "loc": "19:15-35"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "./Actions",
          "loc": "13:15-35"
        }
      ],
      "source": "/**\n * Indicates that navigation was caused by a call to history.push.\n */\n'use strict';\n\nexports.__esModule = true;\nvar PUSH = 'PUSH';\n\nexports.PUSH = PUSH;\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = 'REPLACE';\n\nexports.REPLACE = REPLACE;\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = 'POP';\n\nexports.POP = POP;\nexports['default'] = {\n  PUSH: PUSH,\n  REPLACE: REPLACE,\n  POP: POP\n};"
    },
    {
      "id": 236,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/PathUtils.js",
      "name": "./~/history/lib/PathUtils.js",
      "index": 236,
      "index2": 232,
      "size": 1200,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "19:17-39"
        },
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "17:17-39"
        },
        {
          "moduleId": 246,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createLocation.js",
          "module": "./~/history/lib/createLocation.js",
          "moduleName": "./~/history/lib/createLocation.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "15:17-39"
        },
        {
          "moduleId": 249,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
          "module": "./~/history/lib/useQueries.js",
          "moduleName": "./~/history/lib/useQueries.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "19:17-39"
        },
        {
          "moduleId": 280,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useBasename.js",
          "module": "./~/history/lib/useBasename.js",
          "moduleName": "./~/history/lib/useBasename.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "11:17-39"
        },
        {
          "moduleId": 281,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
          "module": "./~/history/lib/createMemoryHistory.js",
          "moduleName": "./~/history/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "17:17-39"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "./PathUtils",
          "loc": "15:17-39"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports.extractPath = extractPath;\nexports.parsePath = parsePath;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction extractPath(string) {\n  var match = string.match(/^https?:\\/\\/[^\\/]*/);\n\n  if (match == null) return string;\n\n  return string.substring(match[0].length);\n}\n\nfunction parsePath(path) {\n  var pathname = extractPath(path);\n  var search = '';\n  var hash = '';\n\n  process.env.NODE_ENV !== 'production' ? _warning2['default'](path === pathname, 'A path must be pathname + search + hash only, not a fully qualified URL like \"%s\"', path) : undefined;\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substring(hashIndex);\n    pathname = pathname.substring(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substring(searchIndex);\n    pathname = pathname.substring(0, searchIndex);\n  }\n\n  if (pathname === '') pathname = '/';\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash\n  };\n}"
    },
    {
      "id": 237,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/ExecutionEnvironment.js",
      "name": "./~/history/lib/ExecutionEnvironment.js",
      "index": 237,
      "index2": 233,
      "size": 175,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "21:28-61"
        },
        {
          "moduleId": 240,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createDOMHistory.js",
          "module": "./~/history/lib/createDOMHistory.js",
          "moduleName": "./~/history/lib/createDOMHistory.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "13:28-61"
        },
        {
          "moduleId": 280,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useBasename.js",
          "module": "./~/history/lib/useBasename.js",
          "moduleName": "./~/history/lib/useBasename.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "9:28-61"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "17:28-61"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.canUseDOM = canUseDOM;"
    },
    {
      "id": 238,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/DOMUtils.js",
      "name": "./~/history/lib/DOMUtils.js",
      "index": 238,
      "index2": 234,
      "size": 2301,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "./DOMUtils",
          "loc": "23:16-37"
        },
        {
          "moduleId": 240,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createDOMHistory.js",
          "module": "./~/history/lib/createDOMHistory.js",
          "moduleName": "./~/history/lib/createDOMHistory.js",
          "type": "cjs require",
          "userRequest": "./DOMUtils",
          "loc": "15:16-37"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "./DOMUtils",
          "loc": "19:16-37"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.getHashPath = getHashPath;\nexports.replaceHashPath = replaceHashPath;\nexports.getWindowPath = getWindowPath;\nexports.go = go;\nexports.getUserConfirmation = getUserConfirmation;\nexports.supportsHistory = supportsHistory;\nexports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash;\n\nfunction addEventListener(node, event, listener) {\n  if (node.addEventListener) {\n    node.addEventListener(event, listener, false);\n  } else {\n    node.attachEvent('on' + event, listener);\n  }\n}\n\nfunction removeEventListener(node, event, listener) {\n  if (node.removeEventListener) {\n    node.removeEventListener(event, listener, false);\n  } else {\n    node.detachEvent('on' + event, listener);\n  }\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  return window.location.href.split('#')[1] || '';\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(window.location.pathname + window.location.search + '#' + path);\n}\n\nfunction getWindowPath() {\n  return window.location.pathname + window.location.search + window.location.hash;\n}\n\nfunction go(n) {\n  if (n) window.history.go(n);\n}\n\nfunction getUserConfirmation(message, callback) {\n  callback(window.confirm(message));\n}\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) {\n    return false;\n  }\n  return window.history && 'pushState' in window.history;\n}\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  var ua = navigator.userAgent;\n  return ua.indexOf('Firefox') === -1;\n}"
    },
    {
      "id": 239,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/DOMStateStorage.js",
      "name": "./~/history/lib/DOMStateStorage.js",
      "index": 239,
      "index2": 235,
      "size": 2147,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "./DOMStateStorage",
          "loc": "25:23-51"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "./DOMStateStorage",
          "loc": "21:23-51"
        }
      ],
      "source": "/*eslint-disable no-empty */\n'use strict';\n\nexports.__esModule = true;\nexports.saveState = saveState;\nexports.readState = readState;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar KeyPrefix = '@@History/';\nvar QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR'];\n\nvar SecurityError = 'SecurityError';\n\nfunction createKey(key) {\n  return KeyPrefix + key;\n}\n\nfunction saveState(key, state) {\n  try {\n    if (state == null) {\n      window.sessionStorage.removeItem(createKey(key));\n    } else {\n      window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n    }\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined;\n\n      return;\n    }\n\n    if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) {\n      // Safari \"private mode\" throws QuotaExceededError.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined;\n\n      return;\n    }\n\n    throw error;\n  }\n}\n\nfunction readState(key) {\n  var json = undefined;\n  try {\n    json = window.sessionStorage.getItem(createKey(key));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined;\n\n      return null;\n    }\n  }\n\n  if (json) {\n    try {\n      return JSON.parse(json);\n    } catch (error) {\n      // Ignore invalid JSON.\n    }\n  }\n\n  return null;\n}"
    },
    {
      "id": 240,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createDOMHistory.js",
      "name": "./~/history/lib/createDOMHistory.js",
      "index": 240,
      "index2": 244,
      "size": 1294,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 232,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHashHistory.js",
          "module": "./~/history/lib/createHashHistory.js",
          "moduleName": "./~/history/lib/createHashHistory.js",
          "type": "cjs require",
          "userRequest": "./createDOMHistory",
          "loc": "27:24-53"
        },
        {
          "moduleId": 284,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
          "module": "./~/history/lib/createBrowserHistory.js",
          "moduleName": "./~/history/lib/createBrowserHistory.js",
          "type": "cjs require",
          "userRequest": "./createDOMHistory",
          "loc": "23:24-53"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createDOMHistory(options) {\n  var history = _createHistory2['default'](_extends({\n    getUserConfirmation: _DOMUtils.getUserConfirmation\n  }, options, {\n    go: _DOMUtils.go\n  }));\n\n  function listen(listener) {\n    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined;\n\n    return history.listen(listener);\n  }\n\n  return _extends({}, history, {\n    listen: listen\n  });\n}\n\nexports['default'] = createDOMHistory;\nmodule.exports = exports['default'];"
    },
    {
      "id": 241,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
      "name": "./~/history/lib/createHistory.js",
      "index": 241,
      "index2": 243,
      "size": 8426,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 240,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createDOMHistory.js",
          "module": "./~/history/lib/createDOMHistory.js",
          "moduleName": "./~/history/lib/createDOMHistory.js",
          "type": "cjs require",
          "userRequest": "./createHistory",
          "loc": "17:21-47"
        },
        {
          "moduleId": 281,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
          "module": "./~/history/lib/createMemoryHistory.js",
          "moduleName": "./~/history/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "./createHistory",
          "loc": "21:21-47"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _deepEqual = require('deep-equal');\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _Actions = require('./Actions');\n\nvar _createLocation2 = require('./createLocation');\n\nvar _createLocation3 = _interopRequireDefault(_createLocation2);\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction createRandomKey(length) {\n  return Math.random().toString(36).substr(2, length);\n}\n\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search &&\n  //a.action === b.action && // Different action !== location change.\n  a.key === b.key && _deepEqual2['default'](a.state, b.state);\n}\n\nvar DefaultKeyLength = 6;\n\nfunction createHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var getCurrentLocation = options.getCurrentLocation;\n  var finishTransition = options.finishTransition;\n  var saveState = options.saveState;\n  var go = options.go;\n  var getUserConfirmation = options.getUserConfirmation;\n  var keyLength = options.keyLength;\n\n  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength;\n\n  var transitionHooks = [];\n\n  function listenBefore(hook) {\n    transitionHooks.push(hook);\n\n    return function () {\n      transitionHooks = transitionHooks.filter(function (item) {\n        return item !== hook;\n      });\n    };\n  }\n\n  var allKeys = [];\n  var changeListeners = [];\n  var location = undefined;\n\n  function getCurrent() {\n    if (pendingLocation && pendingLocation.action === _Actions.POP) {\n      return allKeys.indexOf(pendingLocation.key);\n    } else if (location) {\n      return allKeys.indexOf(location.key);\n    } else {\n      return -1;\n    }\n  }\n\n  function updateLocation(newLocation) {\n    var current = getCurrent();\n\n    location = newLocation;\n\n    if (location.action === _Actions.PUSH) {\n      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]);\n    } else if (location.action === _Actions.REPLACE) {\n      allKeys[current] = location.key;\n    }\n\n    changeListeners.forEach(function (listener) {\n      listener(location);\n    });\n  }\n\n  function listen(listener) {\n    changeListeners.push(listener);\n\n    if (location) {\n      listener(location);\n    } else {\n      var _location = getCurrentLocation();\n      allKeys = [_location.key];\n      updateLocation(_location);\n    }\n\n    return function () {\n      changeListeners = changeListeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function confirmTransitionTo(location, callback) {\n    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) {\n      _runTransitionHook2['default'](transitionHooks[index], location, function (result) {\n        if (result != null) {\n          done(result);\n        } else {\n          next();\n        }\n      });\n    }, function (message) {\n      if (getUserConfirmation && typeof message === 'string') {\n        getUserConfirmation(message, function (ok) {\n          callback(ok !== false);\n        });\n      } else {\n        callback(message !== false);\n      }\n    });\n  }\n\n  var pendingLocation = undefined;\n\n  function transitionTo(nextLocation) {\n    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do.\n\n    pendingLocation = nextLocation;\n\n    confirmTransitionTo(nextLocation, function (ok) {\n      if (pendingLocation !== nextLocation) return; // Transition was interrupted.\n\n      if (ok) {\n        // treat PUSH to current path like REPLACE to be consistent with browsers\n        if (nextLocation.action === _Actions.PUSH) {\n          var prevPath = createPath(location);\n          var nextPath = createPath(nextLocation);\n\n          if (nextPath === prevPath && _deepEqual2['default'](location.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE;\n        }\n\n        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);\n      } else if (location && nextLocation.action === _Actions.POP) {\n        var prevIndex = allKeys.indexOf(location.key);\n        var nextIndex = allKeys.indexOf(nextLocation.key);\n\n        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL.\n      }\n    });\n  }\n\n  function push(location) {\n    transitionTo(createLocation(location, _Actions.PUSH, createKey()));\n  }\n\n  function replace(location) {\n    transitionTo(createLocation(location, _Actions.REPLACE, createKey()));\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function createKey() {\n    return createRandomKey(keyLength);\n  }\n\n  function createPath(location) {\n    if (location == null || typeof location === 'string') return location;\n\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n\n    var result = pathname;\n\n    if (search) result += search;\n\n    if (hash) result += hash;\n\n    return result;\n  }\n\n  function createHref(location) {\n    return createPath(location);\n  }\n\n  function createLocation(location, action) {\n    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\n    if (typeof action === 'object') {\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'The state (2nd) argument to history.createLocation is deprecated; use a ' + 'location descriptor instead') : undefined;\n\n      if (typeof location === 'string') location = _PathUtils.parsePath(location);\n\n      location = _extends({}, location, { state: action });\n\n      action = key;\n      key = arguments[3] || createKey();\n    }\n\n    return _createLocation3['default'](location, action, key);\n  }\n\n  // deprecated\n  function setState(state) {\n    if (location) {\n      updateLocationState(location, state);\n      updateLocation(location);\n    } else {\n      updateLocationState(getCurrentLocation(), state);\n    }\n  }\n\n  function updateLocationState(location, state) {\n    location.state = _extends({}, location.state, state);\n    saveState(location.key, location.state);\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    transitionHooks = transitionHooks.filter(function (item) {\n      return item !== hook;\n    });\n  }\n\n  // deprecated\n  function pushState(state, path) {\n    if (typeof path === 'string') path = _PathUtils.parsePath(path);\n\n    push(_extends({ state: state }, path));\n  }\n\n  // deprecated\n  function replaceState(state, path) {\n    if (typeof path === 'string') path = _PathUtils.parsePath(path);\n\n    replace(_extends({ state: state }, path));\n  }\n\n  return {\n    listenBefore: listenBefore,\n    listen: listen,\n    transitionTo: transitionTo,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    createKey: createKey,\n    createPath: createPath,\n    createHref: createHref,\n    createLocation: createLocation,\n\n    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'),\n    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'),\n    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'),\n    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n  };\n}\n\nexports['default'] = createHistory;\nmodule.exports = exports['default'];"
    },
    {
      "id": 242,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/index.js",
      "name": "./~/history/~/deep-equal/index.js",
      "index": 242,
      "index2": 238,
      "size": 3051,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "deep-equal",
          "loc": "13:17-38"
        }
      ],
      "source": "var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n  if (!opts) opts = {};\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n\n  } else if (actual instanceof Date && expected instanceof Date) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n    return opts.strict ? actual === expected : actual == expected;\n\n  // 7.4. For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else {\n    return objEquiv(actual, expected, opts);\n  }\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') return false;\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  var i, key;\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n    return false;\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) return false;\n  //~~~I've managed to break Object.keys through screwy arguments passing.\n  //   Converting to array solves the problem.\n  if (isArguments(a)) {\n    if (!isArguments(b)) {\n      return false;\n    }\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return deepEqual(a, b, opts);\n  }\n  if (isBuffer(a)) {\n    if (!isBuffer(b)) {\n      return false;\n    }\n    if (a.length !== b.length) return false;\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) return false;\n    }\n    return true;\n  }\n  try {\n    var ka = objectKeys(a),\n        kb = objectKeys(b);\n  } catch (e) {//happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length != kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) return false;\n  }\n  return typeof a === typeof b;\n}\n"
    },
    {
      "id": 243,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/lib/keys.js",
      "name": "./~/history/~/deep-equal/lib/keys.js",
      "index": 243,
      "index2": 236,
      "size": 202,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 242,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/index.js",
          "module": "./~/history/~/deep-equal/index.js",
          "moduleName": "./~/history/~/deep-equal/index.js",
          "type": "cjs require",
          "userRequest": "./lib/keys.js",
          "loc": "2:17-41"
        }
      ],
      "source": "exports = module.exports = typeof Object.keys === 'function'\n  ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n}\n"
    },
    {
      "id": 244,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/lib/is_arguments.js",
      "name": "./~/history/~/deep-equal/lib/is_arguments.js",
      "index": 244,
      "index2": 237,
      "size": 641,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 242,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/node_modules/deep-equal/index.js",
          "module": "./~/history/~/deep-equal/index.js",
          "moduleName": "./~/history/~/deep-equal/index.js",
          "type": "cjs require",
          "userRequest": "./lib/is_arguments.js",
          "loc": "3:18-50"
        }
      ],
      "source": "var supportsArgumentsClass = (function(){\n  return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n  return object &&\n    typeof object == 'object' &&\n    typeof object.length == 'number' &&\n    Object.prototype.hasOwnProperty.call(object, 'callee') &&\n    !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n    false;\n};\n"
    },
    {
      "id": 245,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/AsyncUtils.js",
      "name": "./~/history/lib/AsyncUtils.js",
      "index": 245,
      "index2": 239,
      "size": 1066,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "./AsyncUtils",
          "loc": "19:18-41"
        }
      ],
      "source": "\"use strict\";\n\nexports.__esModule = true;\nvar _slice = Array.prototype.slice;\nexports.loopAsync = loopAsync;\n\nfunction loopAsync(turns, work, callback) {\n  var currentTurn = 0,\n      isDone = false;\n  var sync = false,\n      hasNext = false,\n      doneArgs = undefined;\n\n  function done() {\n    isDone = true;\n    if (sync) {\n      // Iterate instead of recursing if possible.\n      doneArgs = [].concat(_slice.call(arguments));\n      return;\n    }\n\n    callback.apply(this, arguments);\n  }\n\n  function next() {\n    if (isDone) {\n      return;\n    }\n\n    hasNext = true;\n    if (sync) {\n      // Iterate instead of recursing if possible.\n      return;\n    }\n\n    sync = true;\n\n    while (!isDone && currentTurn < turns && hasNext) {\n      hasNext = false;\n      work.call(this, currentTurn++, next, done);\n    }\n\n    sync = false;\n\n    if (isDone) {\n      // This means the loop finished synchronously.\n      callback.apply(this, doneArgs);\n      return;\n    }\n\n    if (currentTurn >= turns && hasNext) {\n      isDone = true;\n      callback();\n    }\n  }\n\n  next();\n}"
    },
    {
      "id": 246,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createLocation.js",
      "name": "./~/history/lib/createLocation.js",
      "index": 246,
      "index2": 240,
      "size": 1747,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "./createLocation",
          "loc": "23:23-50"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _Actions = require('./Actions');\n\nvar _PathUtils = require('./PathUtils');\n\nfunction createLocation() {\n  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n  if (typeof location === 'string') location = _PathUtils.parsePath(location);\n\n  if (typeof action === 'object') {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'The state (2nd) argument to createLocation is deprecated; use a ' + 'location descriptor instead') : undefined;\n\n    location = _extends({}, location, { state: action });\n\n    action = key || _Actions.POP;\n    key = _fourthArg;\n  }\n\n  var pathname = location.pathname || '/';\n  var search = location.search || '';\n  var hash = location.hash || '';\n  var state = location.state || null;\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash,\n    state: state,\n    action: action,\n    key: key\n  };\n}\n\nexports['default'] = createLocation;\nmodule.exports = exports['default'];"
    },
    {
      "id": 247,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/runTransitionHook.js",
      "name": "./~/history/lib/runTransitionHook.js",
      "index": 247,
      "index2": 241,
      "size": 775,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "./runTransitionHook",
          "loc": "27:25-55"
        },
        {
          "moduleId": 249,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
          "module": "./~/history/lib/useQueries.js",
          "moduleName": "./~/history/lib/useQueries.js",
          "type": "cjs require",
          "userRequest": "./runTransitionHook",
          "loc": "15:25-55"
        },
        {
          "moduleId": 280,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useBasename.js",
          "module": "./~/history/lib/useBasename.js",
          "moduleName": "./~/history/lib/useBasename.js",
          "type": "cjs require",
          "userRequest": "./runTransitionHook",
          "loc": "13:25-55"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction runTransitionHook(hook, location, callback) {\n  var result = hook(location, callback);\n\n  if (hook.length < 2) {\n    // Assume the hook runs synchronously and automatically\n    // call the callback with the return value.\n    callback(result);\n  } else {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](result === undefined, 'You should not \"return\" in a transition hook with a callback argument; call the callback instead') : undefined;\n  }\n}\n\nexports['default'] = runTransitionHook;\nmodule.exports = exports['default'];"
    },
    {
      "id": 248,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/deprecate.js",
      "name": "./~/history/lib/deprecate.js",
      "index": 248,
      "index2": 242,
      "size": 509,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 241,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createHistory.js",
          "module": "./~/history/lib/createHistory.js",
          "moduleName": "./~/history/lib/createHistory.js",
          "type": "cjs require",
          "userRequest": "./deprecate",
          "loc": "31:17-39"
        },
        {
          "moduleId": 249,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
          "module": "./~/history/lib/useQueries.js",
          "moduleName": "./~/history/lib/useQueries.js",
          "type": "cjs require",
          "userRequest": "./deprecate",
          "loc": "21:17-39"
        },
        {
          "moduleId": 280,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useBasename.js",
          "module": "./~/history/lib/useBasename.js",
          "moduleName": "./~/history/lib/useBasename.js",
          "type": "cjs require",
          "userRequest": "./deprecate",
          "loc": "17:17-39"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction deprecate(fn, message) {\n  return function () {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] ' + message) : undefined;\n    return fn.apply(this, arguments);\n  };\n}\n\nexports['default'] = deprecate;\nmodule.exports = exports['default'];"
    },
    {
      "id": 249,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
      "name": "./~/history/lib/useQueries.js",
      "index": 249,
      "index2": 248,
      "size": 5986,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "history/lib/useQueries",
          "loc": "15:28-61"
        },
        {
          "moduleId": 276,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRoutes.js",
          "module": "./~/react-router/lib/useRoutes.js",
          "moduleName": "./~/react-router/lib/useRoutes.js",
          "type": "cjs require",
          "userRequest": "history/lib/useQueries",
          "loc": "11:28-61"
        },
        {
          "moduleId": 279,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createMemoryHistory.js",
          "module": "./~/react-router/lib/createMemoryHistory.js",
          "moduleName": "./~/react-router/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/useQueries",
          "loc": "8:28-61"
        },
        {
          "moduleId": 282,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRouterHistory.js",
          "module": "./~/react-router/lib/useRouterHistory.js",
          "moduleName": "./~/react-router/lib/useRouterHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/useQueries",
          "loc": "8:28-61"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _queryString = require('query-string');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nvar SEARCH_BASE_KEY = '$searchBase';\n\nfunction defaultStringifyQuery(query) {\n  return _queryString.stringify(query).replace(/%20/g, '+');\n}\n\nvar defaultParseQueryString = _queryString.parse;\n\nfunction isNestedObject(object) {\n  for (var p in object) {\n    if (object.hasOwnProperty(p) && typeof object[p] === 'object' && !Array.isArray(object[p]) && object[p] !== null) return true;\n  }return false;\n}\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nfunction useQueries(createHistory) {\n  return function () {\n    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    var history = createHistory(options);\n\n    var stringifyQuery = options.stringifyQuery;\n    var parseQueryString = options.parseQueryString;\n\n    if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n    if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n    function addQuery(location) {\n      if (location.query == null) {\n        var search = location.search;\n\n        location.query = parseQueryString(search.substring(1));\n        location[SEARCH_BASE_KEY] = { search: search, searchBase: '' };\n      }\n\n      // TODO: Instead of all the book-keeping here, this should just strip the\n      // stringified query from the search.\n\n      return location;\n    }\n\n    function appendQuery(location, query) {\n      var _extends2;\n\n      var searchBaseSpec = location[SEARCH_BASE_KEY];\n      var queryString = query ? stringifyQuery(query) : '';\n      if (!searchBaseSpec && !queryString) {\n        return location;\n      }\n\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](stringifyQuery !== defaultStringifyQuery || !isNestedObject(query), 'useQueries does not stringify nested query objects by default; ' + 'use a custom stringifyQuery function') : undefined;\n\n      if (typeof location === 'string') location = _PathUtils.parsePath(location);\n\n      var searchBase = undefined;\n      if (searchBaseSpec && location.search === searchBaseSpec.search) {\n        searchBase = searchBaseSpec.searchBase;\n      } else {\n        searchBase = location.search || '';\n      }\n\n      var search = searchBase;\n      if (queryString) {\n        search += (search ? '&' : '?') + queryString;\n      }\n\n      return _extends({}, location, (_extends2 = {\n        search: search\n      }, _extends2[SEARCH_BASE_KEY] = { search: search, searchBase: searchBase }, _extends2));\n    }\n\n    // Override all read methods with query-aware versions.\n    function listenBefore(hook) {\n      return history.listenBefore(function (location, callback) {\n        _runTransitionHook2['default'](hook, addQuery(location), callback);\n      });\n    }\n\n    function listen(listener) {\n      return history.listen(function (location) {\n        listener(addQuery(location));\n      });\n    }\n\n    // Override all write methods with query-aware versions.\n    function push(location) {\n      history.push(appendQuery(location, location.query));\n    }\n\n    function replace(location) {\n      history.replace(appendQuery(location, location.query));\n    }\n\n    function createPath(location, query) {\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](!query, 'the query argument to createPath is deprecated; use a location descriptor instead') : undefined;\n\n      return history.createPath(appendQuery(location, query || location.query));\n    }\n\n    function createHref(location, query) {\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](!query, 'the query argument to createHref is deprecated; use a location descriptor instead') : undefined;\n\n      return history.createHref(appendQuery(location, query || location.query));\n    }\n\n    function createLocation(location) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      var fullLocation = history.createLocation.apply(history, [appendQuery(location, location.query)].concat(args));\n      if (location.query) {\n        fullLocation.query = location.query;\n      }\n      return addQuery(fullLocation);\n    }\n\n    // deprecated\n    function pushState(state, path, query) {\n      if (typeof path === 'string') path = _PathUtils.parsePath(path);\n\n      push(_extends({ state: state }, path, { query: query }));\n    }\n\n    // deprecated\n    function replaceState(state, path, query) {\n      if (typeof path === 'string') path = _PathUtils.parsePath(path);\n\n      replace(_extends({ state: state }, path, { query: query }));\n    }\n\n    return _extends({}, history, {\n      listenBefore: listenBefore,\n      listen: listen,\n      push: push,\n      replace: replace,\n      createPath: createPath,\n      createHref: createHref,\n      createLocation: createLocation,\n\n      pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n      replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n    });\n  };\n}\n\nexports['default'] = useQueries;\nmodule.exports = exports['default'];"
    },
    {
      "id": 250,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/query-string/index.js",
      "name": "./~/query-string/index.js",
      "index": 250,
      "index2": 247,
      "size": 1481,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 249,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useQueries.js",
          "module": "./~/history/lib/useQueries.js",
          "moduleName": "./~/history/lib/useQueries.js",
          "type": "cjs require",
          "userRequest": "query-string",
          "loc": "13:19-42"
        }
      ],
      "source": "'use strict';\nvar strictUriEncode = require('strict-uri-encode');\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n\tif (typeof str !== 'string') {\n\t\treturn {};\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn {};\n\t}\n\n\treturn str.split('&').reduce(function (ret, param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\tkey = decodeURIComponent(key);\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tif (!ret.hasOwnProperty(key)) {\n\t\t\tret[key] = val;\n\t\t} else if (Array.isArray(ret[key])) {\n\t\t\tret[key].push(val);\n\t\t} else {\n\t\t\tret[key] = [ret[key], val];\n\t\t}\n\n\t\treturn ret;\n\t}, {});\n};\n\nexports.stringify = function (obj) {\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn key;\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\treturn val.slice().sort().map(function (val2) {\n\t\t\t\treturn strictUriEncode(key) + '=' + strictUriEncode(val2);\n\t\t\t}).join('&');\n\t\t}\n\n\t\treturn strictUriEncode(key) + '=' + strictUriEncode(val);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n"
    },
    {
      "id": 251,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/strict-uri-encode/index.js",
      "name": "./~/strict-uri-encode/index.js",
      "index": 251,
      "index2": 246,
      "size": 182,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/query-string/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 250,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/query-string/index.js",
          "module": "./~/query-string/index.js",
          "moduleName": "./~/query-string/index.js",
          "type": "cjs require",
          "userRequest": "strict-uri-encode",
          "loc": "2:22-50"
        }
      ],
      "source": "'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n"
    },
    {
      "id": 252,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "name": "./~/react-router/lib/createTransitionManager.js",
      "index": 252,
      "index2": 258,
      "size": 9953,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "./createTransitionManager",
          "loc": "23:31-67"
        },
        {
          "moduleId": 276,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRoutes.js",
          "module": "./~/react-router/lib/useRoutes.js",
          "moduleName": "./~/react-router/lib/useRoutes.js",
          "type": "cjs require",
          "userRequest": "./createTransitionManager",
          "loc": "15:31-67"
        },
        {
          "moduleId": 278,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/match.js",
          "module": "./~/react-router/lib/match.js",
          "moduleName": "./~/react-router/lib/match.js",
          "type": "cjs require",
          "userRequest": "./createTransitionManager",
          "loc": "19:31-67"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports['default'] = createTransitionManager;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _historyLibActions = require('history/lib/Actions');\n\nvar _computeChangedRoutes2 = require('./computeChangedRoutes');\n\nvar _computeChangedRoutes3 = _interopRequireDefault(_computeChangedRoutes2);\n\nvar _TransitionUtils = require('./TransitionUtils');\n\nvar _isActive2 = require('./isActive');\n\nvar _isActive3 = _interopRequireDefault(_isActive2);\n\nvar _getComponents = require('./getComponents');\n\nvar _getComponents2 = _interopRequireDefault(_getComponents);\n\nvar _matchRoutes = require('./matchRoutes');\n\nvar _matchRoutes2 = _interopRequireDefault(_matchRoutes);\n\nfunction hasAnyProperties(object) {\n  for (var p in object) {\n    if (object.hasOwnProperty(p)) return true;\n  }return false;\n}\n\nfunction createTransitionManager(history, routes) {\n  var state = {};\n\n  // Signature should be (location, indexOnly), but needs to support (path,\n  // query, indexOnly)\n  function isActive(location) {\n    var indexOnlyOrDeprecatedQuery = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n    var deprecatedIndexOnly = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n    var indexOnly = undefined;\n    if (indexOnlyOrDeprecatedQuery && indexOnlyOrDeprecatedQuery !== true || deprecatedIndexOnly !== null) {\n      process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, '`isActive(pathname, query, indexOnly) is deprecated; use `isActive(location, indexOnly)` with a location descriptor instead. http://tiny.cc/router-isActivedeprecated') : undefined;\n      location = { pathname: location, query: indexOnlyOrDeprecatedQuery };\n      indexOnly = deprecatedIndexOnly || false;\n    } else {\n      location = history.createLocation(location);\n      indexOnly = indexOnlyOrDeprecatedQuery;\n    }\n\n    return _isActive3['default'](location, indexOnly, state.location, state.routes, state.params);\n  }\n\n  function createLocationFromRedirectInfo(location) {\n    return history.createLocation(location, _historyLibActions.REPLACE);\n  }\n\n  var partialNextState = undefined;\n\n  function match(location, callback) {\n    if (partialNextState && partialNextState.location === location) {\n      // Continue from where we left off.\n      finishMatch(partialNextState, callback);\n    } else {\n      _matchRoutes2['default'](routes, location, function (error, nextState) {\n        if (error) {\n          callback(error);\n        } else if (nextState) {\n          finishMatch(_extends({}, nextState, { location: location }), callback);\n        } else {\n          callback();\n        }\n      });\n    }\n  }\n\n  function finishMatch(nextState, callback) {\n    var _computeChangedRoutes = _computeChangedRoutes3['default'](state, nextState);\n\n    var leaveRoutes = _computeChangedRoutes.leaveRoutes;\n    var enterRoutes = _computeChangedRoutes.enterRoutes;\n\n    _TransitionUtils.runLeaveHooks(leaveRoutes);\n\n    // Tear down confirmation hooks for left routes\n    leaveRoutes.forEach(removeListenBeforeHooksForRoute);\n\n    _TransitionUtils.runEnterHooks(enterRoutes, nextState, function (error, redirectInfo) {\n      if (error) {\n        callback(error);\n      } else if (redirectInfo) {\n        callback(null, createLocationFromRedirectInfo(redirectInfo));\n      } else {\n        // TODO: Fetch components after state is updated.\n        _getComponents2['default'](nextState, function (error, components) {\n          if (error) {\n            callback(error);\n          } else {\n            // TODO: Make match a pure function and have some other API\n            // for \"match and update state\".\n            callback(null, null, state = _extends({}, nextState, { components: components }));\n          }\n        });\n      }\n    });\n  }\n\n  var RouteGuid = 1;\n\n  function getRouteID(route) {\n    var create = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\n\n    return route.__id__ || create && (route.__id__ = RouteGuid++);\n  }\n\n  var RouteHooks = {};\n\n  function getRouteHooksForRoutes(routes) {\n    return routes.reduce(function (hooks, route) {\n      hooks.push.apply(hooks, RouteHooks[getRouteID(route)]);\n      return hooks;\n    }, []);\n  }\n\n  function transitionHook(location, callback) {\n    _matchRoutes2['default'](routes, location, function (error, nextState) {\n      if (nextState == null) {\n        // TODO: We didn't actually match anything, but hang\n        // onto error/nextState so we don't have to matchRoutes\n        // again in the listen callback.\n        callback();\n        return;\n      }\n\n      // Cache some state here so we don't have to\n      // matchRoutes() again in the listen callback.\n      partialNextState = _extends({}, nextState, { location: location });\n\n      var hooks = getRouteHooksForRoutes(_computeChangedRoutes3['default'](state, partialNextState).leaveRoutes);\n\n      var result = undefined;\n      for (var i = 0, len = hooks.length; result == null && i < len; ++i) {\n        // Passing the location arg here indicates to\n        // the user that this is a transition hook.\n        result = hooks[i](location);\n      }\n\n      callback(result);\n    });\n  }\n\n  /* istanbul ignore next: untestable with Karma */\n  function beforeUnloadHook() {\n    // Synchronously check to see if any route hooks want\n    // to prevent the current window/tab from closing.\n    if (state.routes) {\n      var hooks = getRouteHooksForRoutes(state.routes);\n\n      var message = undefined;\n      for (var i = 0, len = hooks.length; typeof message !== 'string' && i < len; ++i) {\n        // Passing no args indicates to the user that this is a\n        // beforeunload hook. We don't know the next location.\n        message = hooks[i]();\n      }\n\n      return message;\n    }\n  }\n\n  var unlistenBefore = undefined,\n      unlistenBeforeUnload = undefined;\n\n  function removeListenBeforeHooksForRoute(route) {\n    var routeID = getRouteID(route, false);\n    if (!routeID) {\n      return;\n    }\n\n    delete RouteHooks[routeID];\n\n    if (!hasAnyProperties(RouteHooks)) {\n      // teardown transition & beforeunload hooks\n      if (unlistenBefore) {\n        unlistenBefore();\n        unlistenBefore = null;\n      }\n\n      if (unlistenBeforeUnload) {\n        unlistenBeforeUnload();\n        unlistenBeforeUnload = null;\n      }\n    }\n  }\n\n  /**\n   * Registers the given hook function to run before leaving the given route.\n   *\n   * During a normal transition, the hook function receives the next location\n   * as its only argument and must return either a) a prompt message to show\n   * the user, to make sure they want to leave the page or b) false, to prevent\n   * the transition.\n   *\n   * During the beforeunload event (in browsers) the hook receives no arguments.\n   * In this case it must return a prompt message to prevent the transition.\n   *\n   * Returns a function that may be used to unbind the listener.\n   */\n  function listenBeforeLeavingRoute(route, hook) {\n    // TODO: Warn if they register for a route that isn't currently\n    // active. They're probably doing something wrong, like re-creating\n    // route objects on every location change.\n    var routeID = getRouteID(route);\n    var hooks = RouteHooks[routeID];\n\n    if (!hooks) {\n      var thereWereNoRouteHooks = !hasAnyProperties(RouteHooks);\n\n      RouteHooks[routeID] = [hook];\n\n      if (thereWereNoRouteHooks) {\n        // setup transition & beforeunload hooks\n        unlistenBefore = history.listenBefore(transitionHook);\n\n        if (history.listenBeforeUnload) unlistenBeforeUnload = history.listenBeforeUnload(beforeUnloadHook);\n      }\n    } else {\n      if (hooks.indexOf(hook) === -1) {\n        process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'adding multiple leave hooks for the same route is deprecated; manage multiple confirmations in your own code instead') : undefined;\n\n        hooks.push(hook);\n      }\n    }\n\n    return function () {\n      var hooks = RouteHooks[routeID];\n\n      if (hooks) {\n        var newHooks = hooks.filter(function (item) {\n          return item !== hook;\n        });\n\n        if (newHooks.length === 0) {\n          removeListenBeforeHooksForRoute(route);\n        } else {\n          RouteHooks[routeID] = newHooks;\n        }\n      }\n    };\n  }\n\n  /**\n   * This is the API for stateful environments. As the location\n   * changes, we update state and call the listener. We can also\n   * gracefully handle errors and redirects.\n   */\n  function listen(listener) {\n    // TODO: Only use a single history listener. Otherwise we'll\n    // end up with multiple concurrent calls to match.\n    return history.listen(function (location) {\n      if (state.location === location) {\n        listener(null, state);\n      } else {\n        match(location, function (error, redirectLocation, nextState) {\n          if (error) {\n            listener(error);\n          } else if (redirectLocation) {\n            history.transitionTo(redirectLocation);\n          } else if (nextState) {\n            listener(null, nextState);\n          } else {\n            process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'Location \"%s\" did not match any routes', location.pathname + location.search + location.hash) : undefined;\n          }\n        });\n      }\n    });\n  }\n\n  return {\n    isActive: isActive,\n    match: match,\n    listenBeforeLeavingRoute: listenBeforeLeavingRoute,\n    listen: listen\n  };\n}\n\n//export default useRoutes\nmodule.exports = exports['default'];"
    },
    {
      "id": 253,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/routerWarning.js",
      "name": "./~/react-router/lib/routerWarning.js",
      "index": 253,
      "index2": 249,
      "size": 674,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "37:21-47"
        },
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "11:21-47"
        },
        {
          "moduleId": 256,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/TransitionUtils.js",
          "module": "./~/react-router/lib/TransitionUtils.js",
          "moduleName": "./~/react-router/lib/TransitionUtils.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "11:21-47"
        },
        {
          "moduleId": 260,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/matchRoutes.js",
          "module": "./~/react-router/lib/matchRoutes.js",
          "moduleName": "./~/react-router/lib/matchRoutes.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "7:21-47"
        },
        {
          "moduleId": 261,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouteUtils.js",
          "module": "./~/react-router/lib/RouteUtils.js",
          "moduleName": "./~/react-router/lib/RouteUtils.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "18:21-47"
        },
        {
          "moduleId": 263,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
          "module": "./~/react-router/lib/RouterContext.js",
          "moduleName": "./~/react-router/lib/RouterContext.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "27:21-47"
        },
        {
          "moduleId": 264,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/deprecateObjectProperties.js",
          "module": "./~/react-router/lib/deprecateObjectProperties.js",
          "moduleName": "./~/react-router/lib/deprecateObjectProperties.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "9:21-47"
        },
        {
          "moduleId": 267,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Link.js",
          "module": "./~/react-router/lib/Link.js",
          "moduleName": "./~/react-router/lib/Link.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "15:21-47"
        },
        {
          "moduleId": 269,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
          "module": "./~/react-router/lib/IndexRedirect.js",
          "moduleName": "./~/react-router/lib/IndexRedirect.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "11:21-47"
        },
        {
          "moduleId": 271,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRoute.js",
          "module": "./~/react-router/lib/IndexRoute.js",
          "moduleName": "./~/react-router/lib/IndexRoute.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "11:21-47"
        },
        {
          "moduleId": 273,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/History.js",
          "module": "./~/react-router/lib/History.js",
          "moduleName": "./~/react-router/lib/History.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "7:21-47"
        },
        {
          "moduleId": 274,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Lifecycle.js",
          "module": "./~/react-router/lib/Lifecycle.js",
          "moduleName": "./~/react-router/lib/Lifecycle.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "7:21-47"
        },
        {
          "moduleId": 275,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouteContext.js",
          "module": "./~/react-router/lib/RouteContext.js",
          "moduleName": "./~/react-router/lib/RouteContext.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "7:21-47"
        },
        {
          "moduleId": 276,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRoutes.js",
          "module": "./~/react-router/lib/useRoutes.js",
          "moduleName": "./~/react-router/lib/useRoutes.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "19:21-47"
        },
        {
          "moduleId": 277,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RoutingContext.js",
          "module": "./~/react-router/lib/RoutingContext.js",
          "moduleName": "./~/react-router/lib/RoutingContext.js",
          "type": "cjs require",
          "userRequest": "./routerWarning",
          "loc": "15:21-47"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports['default'] = routerWarning;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction routerWarning(falseToWarn, message) {\n  message = '[react-router] ' + message;\n\n  for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    args[_key - 2] = arguments[_key];\n  }\n\n  process.env.NODE_ENV !== 'production' ? _warning2['default'].apply(undefined, [falseToWarn, message].concat(args)) : undefined;\n}\n\nmodule.exports = exports['default'];"
    },
    {
      "id": 254,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/computeChangedRoutes.js",
      "name": "./~/react-router/lib/computeChangedRoutes.js",
      "index": 254,
      "index2": 251,
      "size": 1694,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "./computeChangedRoutes",
          "loc": "17:29-62"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _PatternUtils = require('./PatternUtils');\n\nfunction routeParamsChanged(route, prevState, nextState) {\n  if (!route.path) return false;\n\n  var paramNames = _PatternUtils.getParamNames(route.path);\n\n  return paramNames.some(function (paramName) {\n    return prevState.params[paramName] !== nextState.params[paramName];\n  });\n}\n\n/**\n * Returns an object of { leaveRoutes, enterRoutes } determined by\n * the change from prevState to nextState. We leave routes if either\n * 1) they are not in the next state or 2) they are in the next state\n * but their params have changed (i.e. /users/123 => /users/456).\n *\n * leaveRoutes are ordered starting at the leaf route of the tree\n * we're leaving up to the common parent route. enterRoutes are ordered\n * from the top of the tree we're entering down to the leaf route.\n */\nfunction computeChangedRoutes(prevState, nextState) {\n  var prevRoutes = prevState && prevState.routes;\n  var nextRoutes = nextState.routes;\n\n  var leaveRoutes = undefined,\n      enterRoutes = undefined;\n  if (prevRoutes) {\n    leaveRoutes = prevRoutes.filter(function (route) {\n      return nextRoutes.indexOf(route) === -1 || routeParamsChanged(route, prevState, nextState);\n    });\n\n    // onLeave hooks start at the leaf route.\n    leaveRoutes.reverse();\n\n    enterRoutes = nextRoutes.filter(function (route) {\n      return prevRoutes.indexOf(route) === -1 || leaveRoutes.indexOf(route) !== -1;\n    });\n  } else {\n    leaveRoutes = [];\n    enterRoutes = nextRoutes;\n  }\n\n  return {\n    leaveRoutes: leaveRoutes,\n    enterRoutes: enterRoutes\n  };\n}\n\nexports['default'] = computeChangedRoutes;\nmodule.exports = exports['default'];"
    },
    {
      "id": 255,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/PatternUtils.js",
      "name": "./~/react-router/lib/PatternUtils.js",
      "index": 255,
      "index2": 250,
      "size": 6795,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./PatternUtils",
          "loc": "114:20-45"
        },
        {
          "moduleId": 254,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/computeChangedRoutes.js",
          "module": "./~/react-router/lib/computeChangedRoutes.js",
          "moduleName": "./~/react-router/lib/computeChangedRoutes.js",
          "type": "cjs require",
          "userRequest": "./PatternUtils",
          "loc": "5:20-45"
        },
        {
          "moduleId": 258,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/isActive.js",
          "module": "./~/react-router/lib/isActive.js",
          "moduleName": "./~/react-router/lib/isActive.js",
          "type": "cjs require",
          "userRequest": "./PatternUtils",
          "loc": "6:20-45"
        },
        {
          "moduleId": 260,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/matchRoutes.js",
          "module": "./~/react-router/lib/matchRoutes.js",
          "moduleName": "./~/react-router/lib/matchRoutes.js",
          "type": "cjs require",
          "userRequest": "./PatternUtils",
          "loc": "13:20-45"
        },
        {
          "moduleId": 265,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/getRouteParams.js",
          "module": "./~/react-router/lib/getRouteParams.js",
          "moduleName": "./~/react-router/lib/getRouteParams.js",
          "type": "cjs require",
          "userRequest": "./PatternUtils",
          "loc": "5:20-45"
        },
        {
          "moduleId": 270,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Redirect.js",
          "module": "./~/react-router/lib/Redirect.js",
          "moduleName": "./~/react-router/lib/Redirect.js",
          "type": "cjs require",
          "userRequest": "./PatternUtils",
          "loc": "17:20-45"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports.compilePattern = compilePattern;\nexports.matchPattern = matchPattern;\nexports.getParamNames = getParamNames;\nexports.getParams = getParams;\nexports.formatPattern = formatPattern;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction escapeRegExp(string) {\n  return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction escapeSource(string) {\n  return escapeRegExp(string).replace(/\\/+/g, '/+');\n}\n\nfunction _compilePattern(pattern) {\n  var regexpSource = '';\n  var paramNames = [];\n  var tokens = [];\n\n  var match = undefined,\n      lastIndex = 0,\n      matcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|\\*\\*|\\*|\\(|\\)/g;\n  while (match = matcher.exec(pattern)) {\n    if (match.index !== lastIndex) {\n      tokens.push(pattern.slice(lastIndex, match.index));\n      regexpSource += escapeSource(pattern.slice(lastIndex, match.index));\n    }\n\n    if (match[1]) {\n      regexpSource += '([^/?#]+)';\n      paramNames.push(match[1]);\n    } else if (match[0] === '**') {\n      regexpSource += '([\\\\s\\\\S]*)';\n      paramNames.push('splat');\n    } else if (match[0] === '*') {\n      regexpSource += '([\\\\s\\\\S]*?)';\n      paramNames.push('splat');\n    } else if (match[0] === '(') {\n      regexpSource += '(?:';\n    } else if (match[0] === ')') {\n      regexpSource += ')?';\n    }\n\n    tokens.push(match[0]);\n\n    lastIndex = matcher.lastIndex;\n  }\n\n  if (lastIndex !== pattern.length) {\n    tokens.push(pattern.slice(lastIndex, pattern.length));\n    regexpSource += escapeSource(pattern.slice(lastIndex, pattern.length));\n  }\n\n  return {\n    pattern: pattern,\n    regexpSource: regexpSource,\n    paramNames: paramNames,\n    tokens: tokens\n  };\n}\n\nvar CompiledPatternsCache = {};\n\nfunction compilePattern(pattern) {\n  if (!(pattern in CompiledPatternsCache)) CompiledPatternsCache[pattern] = _compilePattern(pattern);\n\n  return CompiledPatternsCache[pattern];\n}\n\n/**\n * Attempts to match a pattern on the given pathname. Patterns may use\n * the following special characters:\n *\n * - :paramName     Matches a URL segment up to the next /, ?, or #. The\n *                  captured string is considered a \"param\"\n * - ()             Wraps a segment of the URL that is optional\n * - *              Consumes (non-greedy) all characters up to the next\n *                  character in the pattern, or to the end of the URL if\n *                  there is none\n * - **             Consumes (greedy) all characters up to the next character\n *                  in the pattern, or to the end of the URL if there is none\n *\n * The return value is an object with the following properties:\n *\n * - remainingPathname\n * - paramNames\n * - paramValues\n */\n\nfunction matchPattern(pattern, pathname) {\n  // Make leading slashes consistent between pattern and pathname.\n  if (pattern.charAt(0) !== '/') {\n    pattern = '/' + pattern;\n  }\n  if (pathname.charAt(0) !== '/') {\n    pathname = '/' + pathname;\n  }\n\n  var _compilePattern2 = compilePattern(pattern);\n\n  var regexpSource = _compilePattern2.regexpSource;\n  var paramNames = _compilePattern2.paramNames;\n  var tokens = _compilePattern2.tokens;\n\n  regexpSource += '/*'; // Capture path separators\n\n  // Special-case patterns like '*' for catch-all routes.\n  var captureRemaining = tokens[tokens.length - 1] !== '*';\n\n  if (captureRemaining) {\n    // This will match newlines in the remaining path.\n    regexpSource += '([\\\\s\\\\S]*?)';\n  }\n\n  var match = pathname.match(new RegExp('^' + regexpSource + '$', 'i'));\n\n  var remainingPathname = undefined,\n      paramValues = undefined;\n  if (match != null) {\n    if (captureRemaining) {\n      remainingPathname = match.pop();\n      var matchedPath = match[0].substr(0, match[0].length - remainingPathname.length);\n\n      // If we didn't match the entire pathname, then make sure that the match\n      // we did get ends at a path separator (potentially the one we added\n      // above at the beginning of the path, if the actual match was empty).\n      if (remainingPathname && matchedPath.charAt(matchedPath.length - 1) !== '/') {\n        return {\n          remainingPathname: null,\n          paramNames: paramNames,\n          paramValues: null\n        };\n      }\n    } else {\n      // If this matched at all, then the match was the entire pathname.\n      remainingPathname = '';\n    }\n\n    paramValues = match.slice(1).map(function (v) {\n      return v != null ? decodeURIComponent(v) : v;\n    });\n  } else {\n    remainingPathname = paramValues = null;\n  }\n\n  return {\n    remainingPathname: remainingPathname,\n    paramNames: paramNames,\n    paramValues: paramValues\n  };\n}\n\nfunction getParamNames(pattern) {\n  return compilePattern(pattern).paramNames;\n}\n\nfunction getParams(pattern, pathname) {\n  var _matchPattern = matchPattern(pattern, pathname);\n\n  var paramNames = _matchPattern.paramNames;\n  var paramValues = _matchPattern.paramValues;\n\n  if (paramValues != null) {\n    return paramNames.reduce(function (memo, paramName, index) {\n      memo[paramName] = paramValues[index];\n      return memo;\n    }, {});\n  }\n\n  return null;\n}\n\n/**\n * Returns a version of the given pattern with params interpolated. Throws\n * if there is a dynamic segment of the pattern for which there is no param.\n */\n\nfunction formatPattern(pattern, params) {\n  params = params || {};\n\n  var _compilePattern3 = compilePattern(pattern);\n\n  var tokens = _compilePattern3.tokens;\n\n  var parenCount = 0,\n      pathname = '',\n      splatIndex = 0;\n\n  var token = undefined,\n      paramName = undefined,\n      paramValue = undefined;\n  for (var i = 0, len = tokens.length; i < len; ++i) {\n    token = tokens[i];\n\n    if (token === '*' || token === '**') {\n      paramValue = Array.isArray(params.splat) ? params.splat[splatIndex++] : params.splat;\n\n      !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Missing splat #%s for path \"%s\"', splatIndex, pattern) : _invariant2['default'](false) : undefined;\n\n      if (paramValue != null) pathname += encodeURI(paramValue);\n    } else if (token === '(') {\n      parenCount += 1;\n    } else if (token === ')') {\n      parenCount -= 1;\n    } else if (token.charAt(0) === ':') {\n      paramName = token.substring(1);\n      paramValue = params[paramName];\n\n      !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Missing \"%s\" parameter for path \"%s\"', paramName, pattern) : _invariant2['default'](false) : undefined;\n\n      if (paramValue != null) pathname += encodeURIComponent(paramValue);\n    } else {\n      pathname += token;\n    }\n  }\n\n  return pathname.replace(/\\/+/g, '/');\n}"
    },
    {
      "id": 256,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/TransitionUtils.js",
      "name": "./~/react-router/lib/TransitionUtils.js",
      "index": 256,
      "index2": 253,
      "size": 2489,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "./TransitionUtils",
          "loc": "21:23-51"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports.runEnterHooks = runEnterHooks;\nexports.runLeaveHooks = runLeaveHooks;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nfunction createEnterHook(hook, route) {\n  return function (a, b, callback) {\n    hook.apply(route, arguments);\n\n    if (hook.length < 3) {\n      // Assume hook executes synchronously and\n      // automatically call the callback.\n      callback();\n    }\n  };\n}\n\nfunction getEnterHooks(routes) {\n  return routes.reduce(function (hooks, route) {\n    if (route.onEnter) hooks.push(createEnterHook(route.onEnter, route));\n\n    return hooks;\n  }, []);\n}\n\n/**\n * Runs all onEnter hooks in the given array of routes in order\n * with onEnter(nextState, replace, callback) and calls\n * callback(error, redirectInfo) when finished. The first hook\n * to use replace short-circuits the loop.\n *\n * If a hook needs to run asynchronously, it may use the callback\n * function. However, doing so will cause the transition to pause,\n * which could lead to a non-responsive UI if the hook is slow.\n */\n\nfunction runEnterHooks(routes, nextState, callback) {\n  var hooks = getEnterHooks(routes);\n\n  if (!hooks.length) {\n    callback();\n    return;\n  }\n\n  var redirectInfo = undefined;\n  function replace(location, deprecatedPathname, deprecatedQuery) {\n    if (deprecatedPathname) {\n      process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, '`replaceState(state, pathname, query) is deprecated; use `replace(location)` with a location descriptor instead. http://tiny.cc/router-isActivedeprecated') : undefined;\n      redirectInfo = {\n        pathname: deprecatedPathname,\n        query: deprecatedQuery,\n        state: location\n      };\n\n      return;\n    }\n\n    redirectInfo = location;\n  }\n\n  _AsyncUtils.loopAsync(hooks.length, function (index, next, done) {\n    hooks[index](nextState, replace, function (error) {\n      if (error || redirectInfo) {\n        done(error, redirectInfo); // No need to continue.\n      } else {\n          next();\n        }\n    });\n  }, callback);\n}\n\n/**\n * Runs all onLeave hooks in the given array of routes in order.\n */\n\nfunction runLeaveHooks(routes) {\n  for (var i = 0, len = routes.length; i < len; ++i) {\n    if (routes[i].onLeave) routes[i].onLeave.call(routes[i]);\n  }\n}"
    },
    {
      "id": 257,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/AsyncUtils.js",
      "name": "./~/react-router/lib/AsyncUtils.js",
      "index": 257,
      "index2": 252,
      "size": 1683,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/TransitionUtils.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 256,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/TransitionUtils.js",
          "module": "./~/react-router/lib/TransitionUtils.js",
          "moduleName": "./~/react-router/lib/TransitionUtils.js",
          "type": "cjs require",
          "userRequest": "./AsyncUtils",
          "loc": "9:18-41"
        },
        {
          "moduleId": 259,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/getComponents.js",
          "module": "./~/react-router/lib/getComponents.js",
          "moduleName": "./~/react-router/lib/getComponents.js",
          "type": "cjs require",
          "userRequest": "./AsyncUtils",
          "loc": "5:18-41"
        },
        {
          "moduleId": 260,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/matchRoutes.js",
          "module": "./~/react-router/lib/matchRoutes.js",
          "moduleName": "./~/react-router/lib/matchRoutes.js",
          "type": "cjs require",
          "userRequest": "./AsyncUtils",
          "loc": "11:18-41"
        }
      ],
      "source": "\"use strict\";\n\nexports.__esModule = true;\nvar _slice = Array.prototype.slice;\nexports.loopAsync = loopAsync;\nexports.mapAsync = mapAsync;\n\nfunction loopAsync(turns, work, callback) {\n  var currentTurn = 0,\n      isDone = false;\n  var sync = false,\n      hasNext = false,\n      doneArgs = undefined;\n\n  function done() {\n    isDone = true;\n    if (sync) {\n      // Iterate instead of recursing if possible.\n      doneArgs = [].concat(_slice.call(arguments));\n      return;\n    }\n\n    callback.apply(this, arguments);\n  }\n\n  function next() {\n    if (isDone) {\n      return;\n    }\n\n    hasNext = true;\n    if (sync) {\n      // Iterate instead of recursing if possible.\n      return;\n    }\n\n    sync = true;\n\n    while (!isDone && currentTurn < turns && hasNext) {\n      hasNext = false;\n      work.call(this, currentTurn++, next, done);\n    }\n\n    sync = false;\n\n    if (isDone) {\n      // This means the loop finished synchronously.\n      callback.apply(this, doneArgs);\n      return;\n    }\n\n    if (currentTurn >= turns && hasNext) {\n      isDone = true;\n      callback();\n    }\n  }\n\n  next();\n}\n\nfunction mapAsync(array, work, callback) {\n  var length = array.length;\n  var values = [];\n\n  if (length === 0) return callback(null, values);\n\n  var isDone = false,\n      doneCount = 0;\n\n  function done(index, error, value) {\n    if (isDone) return;\n\n    if (error) {\n      isDone = true;\n      callback(error);\n    } else {\n      values[index] = value;\n\n      isDone = ++doneCount === length;\n\n      if (isDone) callback(null, values);\n    }\n  }\n\n  array.forEach(function (item, index) {\n    work(item, index, function (error, value) {\n      done(index, error, value);\n    });\n  });\n}"
    },
    {
      "id": 258,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/isActive.js",
      "name": "./~/react-router/lib/isActive.js",
      "index": 258,
      "index2": 254,
      "size": 3176,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "./isActive",
          "loc": "23:17-38"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports['default'] = isActive;\n\nvar _PatternUtils = require('./PatternUtils');\n\nfunction deepEqual(a, b) {\n  if (a == b) return true;\n\n  if (a == null || b == null) return false;\n\n  if (Array.isArray(a)) {\n    return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n      return deepEqual(item, b[index]);\n    });\n  }\n\n  if (typeof a === 'object') {\n    for (var p in a) {\n      if (!a.hasOwnProperty(p)) {\n        continue;\n      }\n\n      if (a[p] === undefined) {\n        if (b[p] !== undefined) {\n          return false;\n        }\n      } else if (!b.hasOwnProperty(p)) {\n        return false;\n      } else if (!deepEqual(a[p], b[p])) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  return String(a) === String(b);\n}\n\nfunction paramsAreActive(paramNames, paramValues, activeParams) {\n  // FIXME: This doesn't work on repeated params in activeParams.\n  return paramNames.every(function (paramName, index) {\n    return String(paramValues[index]) === String(activeParams[paramName]);\n  });\n}\n\nfunction getMatchingRouteIndex(pathname, activeRoutes, activeParams) {\n  var remainingPathname = pathname,\n      paramNames = [],\n      paramValues = [];\n\n  for (var i = 0, len = activeRoutes.length; i < len; ++i) {\n    var route = activeRoutes[i];\n    var pattern = route.path || '';\n\n    if (pattern.charAt(0) === '/') {\n      remainingPathname = pathname;\n      paramNames = [];\n      paramValues = [];\n    }\n\n    if (remainingPathname !== null) {\n      var matched = _PatternUtils.matchPattern(pattern, remainingPathname);\n      remainingPathname = matched.remainingPathname;\n      paramNames = [].concat(paramNames, matched.paramNames);\n      paramValues = [].concat(paramValues, matched.paramValues);\n    }\n\n    if (remainingPathname === '' && route.path && paramsAreActive(paramNames, paramValues, activeParams)) return i;\n  }\n\n  return null;\n}\n\n/**\n * Returns true if the given pathname matches the active routes\n * and params.\n */\nfunction routeIsActive(pathname, routes, params, indexOnly) {\n  var i = getMatchingRouteIndex(pathname, routes, params);\n\n  if (i === null) {\n    // No match.\n    return false;\n  } else if (!indexOnly) {\n    // Any match is good enough.\n    return true;\n  }\n\n  // If any remaining routes past the match index have paths, then we can't\n  // be on the index route.\n  return routes.slice(i + 1).every(function (route) {\n    return !route.path;\n  });\n}\n\n/**\n * Returns true if all key/value pairs in the given query are\n * currently active.\n */\nfunction queryIsActive(query, activeQuery) {\n  if (activeQuery == null) return query == null;\n\n  if (query == null) return true;\n\n  return deepEqual(query, activeQuery);\n}\n\n/**\n * Returns true if a <Link> to the given pathname/query combination is\n * currently active.\n */\n\nfunction isActive(_ref, indexOnly, currentLocation, routes, params) {\n  var pathname = _ref.pathname;\n  var query = _ref.query;\n\n  if (currentLocation == null) return false;\n\n  if (!routeIsActive(pathname, routes, params, indexOnly)) return false;\n\n  return queryIsActive(query, currentLocation.query);\n}\n\nmodule.exports = exports['default'];"
    },
    {
      "id": 259,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/getComponents.js",
      "name": "./~/react-router/lib/getComponents.js",
      "index": 259,
      "index2": 255,
      "size": 971,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "./getComponents",
          "loc": "27:21-47"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nfunction getComponentsForRoute(location, route, callback) {\n  if (route.component || route.components) {\n    callback(null, route.component || route.components);\n  } else if (route.getComponent) {\n    route.getComponent(location, callback);\n  } else if (route.getComponents) {\n    route.getComponents(location, callback);\n  } else {\n    callback();\n  }\n}\n\n/**\n * Asynchronously fetches all components needed for the given router\n * state and calls callback(error, components) when finished.\n *\n * Note: This operation may finish synchronously if no routes have an\n * asynchronous getComponents method.\n */\nfunction getComponents(nextState, callback) {\n  _AsyncUtils.mapAsync(nextState.routes, function (route, index, callback) {\n    getComponentsForRoute(nextState.location, route, callback);\n  }, callback);\n}\n\nexports['default'] = getComponents;\nmodule.exports = exports['default'];"
    },
    {
      "id": 260,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/matchRoutes.js",
      "name": "./~/react-router/lib/matchRoutes.js",
      "index": 260,
      "index2": 257,
      "size": 6460,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 252,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createTransitionManager.js",
          "module": "./~/react-router/lib/createTransitionManager.js",
          "moduleName": "./~/react-router/lib/createTransitionManager.js",
          "type": "cjs require",
          "userRequest": "./matchRoutes",
          "loc": "31:19-43"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _PatternUtils = require('./PatternUtils');\n\nvar _RouteUtils = require('./RouteUtils');\n\nfunction getChildRoutes(route, location, callback) {\n  if (route.childRoutes) {\n    return [null, route.childRoutes];\n  }\n  if (!route.getChildRoutes) {\n    return [];\n  }\n\n  var sync = true,\n      result = undefined;\n\n  route.getChildRoutes(location, function (error, childRoutes) {\n    childRoutes = !error && _RouteUtils.createRoutes(childRoutes);\n    if (sync) {\n      result = [error, childRoutes];\n      return;\n    }\n\n    callback(error, childRoutes);\n  });\n\n  sync = false;\n  return result; // Might be undefined.\n}\n\nfunction getIndexRoute(route, location, callback) {\n  if (route.indexRoute) {\n    callback(null, route.indexRoute);\n  } else if (route.getIndexRoute) {\n    route.getIndexRoute(location, function (error, indexRoute) {\n      callback(error, !error && _RouteUtils.createRoutes(indexRoute)[0]);\n    });\n  } else if (route.childRoutes) {\n    (function () {\n      var pathless = route.childRoutes.filter(function (obj) {\n        return !obj.hasOwnProperty('path');\n      });\n\n      _AsyncUtils.loopAsync(pathless.length, function (index, next, done) {\n        getIndexRoute(pathless[index], location, function (error, indexRoute) {\n          if (error || indexRoute) {\n            var routes = [pathless[index]].concat(Array.isArray(indexRoute) ? indexRoute : [indexRoute]);\n            done(error, routes);\n          } else {\n            next();\n          }\n        });\n      }, function (err, routes) {\n        callback(null, routes);\n      });\n    })();\n  } else {\n    callback();\n  }\n}\n\nfunction assignParams(params, paramNames, paramValues) {\n  return paramNames.reduce(function (params, paramName, index) {\n    var paramValue = paramValues && paramValues[index];\n\n    if (Array.isArray(params[paramName])) {\n      params[paramName].push(paramValue);\n    } else if (paramName in params) {\n      params[paramName] = [params[paramName], paramValue];\n    } else {\n      params[paramName] = paramValue;\n    }\n\n    return params;\n  }, params);\n}\n\nfunction createParams(paramNames, paramValues) {\n  return assignParams({}, paramNames, paramValues);\n}\n\nfunction matchRouteDeep(route, location, remainingPathname, paramNames, paramValues, callback) {\n  var pattern = route.path || '';\n\n  if (pattern.charAt(0) === '/') {\n    remainingPathname = location.pathname;\n    paramNames = [];\n    paramValues = [];\n  }\n\n  if (remainingPathname !== null) {\n    var matched = _PatternUtils.matchPattern(pattern, remainingPathname);\n    remainingPathname = matched.remainingPathname;\n    paramNames = [].concat(paramNames, matched.paramNames);\n    paramValues = [].concat(paramValues, matched.paramValues);\n\n    if (remainingPathname === '' && route.path) {\n      var _ret2 = (function () {\n        var match = {\n          routes: [route],\n          params: createParams(paramNames, paramValues)\n        };\n\n        getIndexRoute(route, location, function (error, indexRoute) {\n          if (error) {\n            callback(error);\n          } else {\n            if (Array.isArray(indexRoute)) {\n              var _match$routes;\n\n              process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](indexRoute.every(function (route) {\n                return !route.path;\n              }), 'Index routes should not have paths') : undefined;\n              (_match$routes = match.routes).push.apply(_match$routes, indexRoute);\n            } else if (indexRoute) {\n              process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](!indexRoute.path, 'Index routes should not have paths') : undefined;\n              match.routes.push(indexRoute);\n            }\n\n            callback(null, match);\n          }\n        });\n        return {\n          v: undefined\n        };\n      })();\n\n      if (typeof _ret2 === 'object') return _ret2.v;\n    }\n  }\n\n  if (remainingPathname != null || route.childRoutes) {\n    // Either a) this route matched at least some of the path or b)\n    // we don't have to load this route's children asynchronously. In\n    // either case continue checking for matches in the subtree.\n    var onChildRoutes = function onChildRoutes(error, childRoutes) {\n      if (error) {\n        callback(error);\n      } else if (childRoutes) {\n        // Check the child routes to see if any of them match.\n        matchRoutes(childRoutes, location, function (error, match) {\n          if (error) {\n            callback(error);\n          } else if (match) {\n            // A child route matched! Augment the match and pass it up the stack.\n            match.routes.unshift(route);\n            callback(null, match);\n          } else {\n            callback();\n          }\n        }, remainingPathname, paramNames, paramValues);\n      } else {\n        callback();\n      }\n    };\n\n    var result = getChildRoutes(route, location, onChildRoutes);\n    if (result) {\n      onChildRoutes.apply(undefined, result);\n    }\n  } else {\n    callback();\n  }\n}\n\n/**\n * Asynchronously matches the given location to a set of routes and calls\n * callback(error, state) when finished. The state object will have the\n * following properties:\n *\n * - routes       An array of routes that matched, in hierarchical order\n * - params       An object of URL parameters\n *\n * Note: This operation may finish synchronously if no routes have an\n * asynchronous getChildRoutes method.\n */\nfunction matchRoutes(routes, location, callback) {\n  var remainingPathname = arguments.length <= 3 || arguments[3] === undefined ? location.pathname : arguments[3];\n  var paramNames = arguments.length <= 4 || arguments[4] === undefined ? [] : arguments[4];\n  var paramValues = arguments.length <= 5 || arguments[5] === undefined ? [] : arguments[5];\n  return (function () {\n    _AsyncUtils.loopAsync(routes.length, function (index, next, done) {\n      matchRouteDeep(routes[index], location, remainingPathname, paramNames, paramValues, function (error, match) {\n        if (error || match) {\n          done(error, match);\n        } else {\n          next();\n        }\n      });\n    }, callback);\n  })();\n}\n\nexports['default'] = matchRoutes;\nmodule.exports = exports['default'];"
    },
    {
      "id": 261,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouteUtils.js",
      "name": "./~/react-router/lib/RouteUtils.js",
      "index": 261,
      "index2": 256,
      "size": 3525,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "80:18-41"
        },
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "33:18-41"
        },
        {
          "moduleId": 260,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/matchRoutes.js",
          "module": "./~/react-router/lib/matchRoutes.js",
          "moduleName": "./~/react-router/lib/matchRoutes.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "15:18-41"
        },
        {
          "moduleId": 263,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
          "module": "./~/react-router/lib/RouterContext.js",
          "moduleName": "./~/react-router/lib/RouterContext.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "25:18-41"
        },
        {
          "moduleId": 270,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Redirect.js",
          "module": "./~/react-router/lib/Redirect.js",
          "moduleName": "./~/react-router/lib/Redirect.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "15:18-41"
        },
        {
          "moduleId": 271,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRoute.js",
          "module": "./~/react-router/lib/IndexRoute.js",
          "moduleName": "./~/react-router/lib/IndexRoute.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "19:18-41"
        },
        {
          "moduleId": 272,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Route.js",
          "module": "./~/react-router/lib/Route.js",
          "moduleName": "./~/react-router/lib/Route.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "15:18-41"
        },
        {
          "moduleId": 278,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/match.js",
          "module": "./~/react-router/lib/match.js",
          "moduleName": "./~/react-router/lib/match.js",
          "type": "cjs require",
          "userRequest": "./RouteUtils",
          "loc": "23:18-41"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.isReactChildren = isReactChildren;\nexports.createRouteFromReactElement = createRouteFromReactElement;\nexports.createRoutesFromReactChildren = createRoutesFromReactChildren;\nexports.createRoutes = createRoutes;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nfunction isValidChild(object) {\n  return object == null || _react2['default'].isValidElement(object);\n}\n\nfunction isReactChildren(object) {\n  return isValidChild(object) || Array.isArray(object) && object.every(isValidChild);\n}\n\nfunction checkPropTypes(componentName, propTypes, props) {\n  componentName = componentName || 'UnknownComponent';\n\n  for (var propName in propTypes) {\n    if (propTypes.hasOwnProperty(propName)) {\n      var error = propTypes[propName](props, propName, componentName);\n\n      /* istanbul ignore if: error logging */\n      if (error instanceof Error) process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, error.message) : undefined;\n    }\n  }\n}\n\nfunction createRoute(defaultProps, props) {\n  return _extends({}, defaultProps, props);\n}\n\nfunction createRouteFromReactElement(element) {\n  var type = element.type;\n  var route = createRoute(type.defaultProps, element.props);\n\n  if (type.propTypes) checkPropTypes(type.displayName || type.name, type.propTypes, route);\n\n  if (route.children) {\n    var childRoutes = createRoutesFromReactChildren(route.children, route);\n\n    if (childRoutes.length) route.childRoutes = childRoutes;\n\n    delete route.children;\n  }\n\n  return route;\n}\n\n/**\n * Creates and returns a routes object from the given ReactChildren. JSX\n * provides a convenient way to visualize how routes in the hierarchy are\n * nested.\n *\n *   import { Route, createRoutesFromReactChildren } from 'react-router'\n *   \n *   const routes = createRoutesFromReactChildren(\n *     <Route component={App}>\n *       <Route path=\"home\" component={Dashboard}/>\n *       <Route path=\"news\" component={NewsFeed}/>\n *     </Route>\n *   )\n *\n * Note: This method is automatically used when you provide <Route> children\n * to a <Router> component.\n */\n\nfunction createRoutesFromReactChildren(children, parentRoute) {\n  var routes = [];\n\n  _react2['default'].Children.forEach(children, function (element) {\n    if (_react2['default'].isValidElement(element)) {\n      // Component classes may have a static create* method.\n      if (element.type.createRouteFromReactElement) {\n        var route = element.type.createRouteFromReactElement(element, parentRoute);\n\n        if (route) routes.push(route);\n      } else {\n        routes.push(createRouteFromReactElement(element));\n      }\n    }\n  });\n\n  return routes;\n}\n\n/**\n * Creates and returns an array of routes from the given object which\n * may be a JSX route, a plain object route, or an array of either.\n */\n\nfunction createRoutes(routes) {\n  if (isReactChildren(routes)) {\n    routes = createRoutesFromReactChildren(routes);\n  } else if (routes && !Array.isArray(routes)) {\n    routes = [routes];\n  }\n\n  return routes;\n}"
    },
    {
      "id": 262,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/PropTypes.js",
      "name": "./~/react-router/lib/PropTypes.js",
      "index": 262,
      "index2": 259,
      "size": 1318,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "96:18-40"
        },
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "27:17-39"
        },
        {
          "moduleId": 269,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
          "module": "./~/react-router/lib/IndexRedirect.js",
          "moduleName": "./~/react-router/lib/IndexRedirect.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "23:17-39"
        },
        {
          "moduleId": 270,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Redirect.js",
          "module": "./~/react-router/lib/Redirect.js",
          "moduleName": "./~/react-router/lib/Redirect.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "19:17-39"
        },
        {
          "moduleId": 271,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRoute.js",
          "module": "./~/react-router/lib/IndexRoute.js",
          "moduleName": "./~/react-router/lib/IndexRoute.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "21:17-39"
        },
        {
          "moduleId": 272,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Route.js",
          "module": "./~/react-router/lib/Route.js",
          "moduleName": "./~/react-router/lib/Route.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "17:17-39"
        },
        {
          "moduleId": 273,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/History.js",
          "module": "./~/react-router/lib/History.js",
          "moduleName": "./~/react-router/lib/History.js",
          "type": "cjs require",
          "userRequest": "./PropTypes",
          "loc": "11:17-39"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports.falsy = falsy;\n\nvar _react = require('react');\n\nvar func = _react.PropTypes.func;\nvar object = _react.PropTypes.object;\nvar arrayOf = _react.PropTypes.arrayOf;\nvar oneOfType = _react.PropTypes.oneOfType;\nvar element = _react.PropTypes.element;\nvar shape = _react.PropTypes.shape;\nvar string = _react.PropTypes.string;\n\nfunction falsy(props, propName, componentName) {\n  if (props[propName]) return new Error('<' + componentName + '> should not have a \"' + propName + '\" prop');\n}\n\nvar history = shape({\n  listen: func.isRequired,\n  pushState: func.isRequired,\n  replaceState: func.isRequired,\n  go: func.isRequired\n});\n\nexports.history = history;\nvar location = shape({\n  pathname: string.isRequired,\n  search: string.isRequired,\n  state: object,\n  action: string.isRequired,\n  key: string\n});\n\nexports.location = location;\nvar component = oneOfType([func, string]);\nexports.component = component;\nvar components = oneOfType([component, object]);\nexports.components = components;\nvar route = oneOfType([object, element]);\nexports.route = route;\nvar routes = oneOfType([route, arrayOf(route)]);\n\nexports.routes = routes;\nexports['default'] = {\n  falsy: falsy,\n  history: history,\n  location: location,\n  component: component,\n  components: components,\n  route: route\n};"
    },
    {
      "id": 263,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
      "name": "./~/react-router/lib/RouterContext.js",
      "index": 263,
      "index2": 262,
      "size": 4948,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./RouterContext",
          "loc": "84:22-48"
        },
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "./RouterContext",
          "loc": "29:21-47"
        },
        {
          "moduleId": 277,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RoutingContext.js",
          "module": "./~/react-router/lib/RoutingContext.js",
          "moduleName": "./~/react-router/lib/RoutingContext.js",
          "type": "cjs require",
          "userRequest": "./RouterContext",
          "loc": "11:21-47"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _deprecateObjectProperties = require('./deprecateObjectProperties');\n\nvar _deprecateObjectProperties2 = _interopRequireDefault(_deprecateObjectProperties);\n\nvar _getRouteParams = require('./getRouteParams');\n\nvar _getRouteParams2 = _interopRequireDefault(_getRouteParams);\n\nvar _RouteUtils = require('./RouteUtils');\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar array = _React$PropTypes.array;\nvar func = _React$PropTypes.func;\nvar object = _React$PropTypes.object;\n\n/**\n * A <RouterContext> renders the component tree for a given router state\n * and sets the history object and the current location in context.\n */\nvar RouterContext = _react2['default'].createClass({\n  displayName: 'RouterContext',\n\n  propTypes: {\n    history: object,\n    router: object.isRequired,\n    location: object.isRequired,\n    routes: array.isRequired,\n    params: object.isRequired,\n    components: array.isRequired,\n    createElement: func.isRequired\n  },\n\n  getDefaultProps: function getDefaultProps() {\n    return {\n      createElement: _react2['default'].createElement\n    };\n  },\n\n  childContextTypes: {\n    history: object,\n    location: object.isRequired,\n    router: object.isRequired\n  },\n\n  getChildContext: function getChildContext() {\n    var _props = this.props;\n    var router = _props.router;\n    var history = _props.history;\n    var location = _props.location;\n\n    if (!router) {\n      process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, '`<RouterContext>` expects a `router` rather than a `history`') : undefined;\n\n      router = _extends({}, history, {\n        setRouteLeaveHook: history.listenBeforeLeavingRoute\n      });\n      delete router.listenBeforeLeavingRoute;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      location = _deprecateObjectProperties2['default'](location, '`context.location` is deprecated, please use a route component\\'s `props.location` instead. http://tiny.cc/router-accessinglocation');\n    }\n\n    return { history: history, location: location, router: router };\n  },\n\n  createElement: function createElement(component, props) {\n    return component == null ? null : this.props.createElement(component, props);\n  },\n\n  render: function render() {\n    var _this = this;\n\n    var _props2 = this.props;\n    var history = _props2.history;\n    var location = _props2.location;\n    var routes = _props2.routes;\n    var params = _props2.params;\n    var components = _props2.components;\n\n    var element = null;\n\n    if (components) {\n      element = components.reduceRight(function (element, components, index) {\n        if (components == null) return element; // Don't create new children; use the grandchildren.\n\n        var route = routes[index];\n        var routeParams = _getRouteParams2['default'](route, params);\n        var props = {\n          history: history,\n          location: location,\n          params: params,\n          route: route,\n          routeParams: routeParams,\n          routes: routes\n        };\n\n        if (_RouteUtils.isReactChildren(element)) {\n          props.children = element;\n        } else if (element) {\n          for (var prop in element) {\n            if (element.hasOwnProperty(prop)) props[prop] = element[prop];\n          }\n        }\n\n        if (typeof components === 'object') {\n          var elements = {};\n\n          for (var key in components) {\n            if (components.hasOwnProperty(key)) {\n              // Pass through the key as a prop to createElement to allow\n              // custom createElement functions to know which named component\n              // they're rendering, for e.g. matching up to fetched data.\n              elements[key] = _this.createElement(components[key], _extends({\n                key: key }, props));\n            }\n          }\n\n          return elements;\n        }\n\n        return _this.createElement(components, props);\n      }, element);\n    }\n\n    !(element === null || element === false || _react2['default'].isValidElement(element)) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'The root route must render a single element') : _invariant2['default'](false) : undefined;\n\n    return element;\n  }\n\n});\n\nexports['default'] = RouterContext;\nmodule.exports = exports['default'];"
    },
    {
      "id": 264,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/deprecateObjectProperties.js",
      "name": "./~/react-router/lib/deprecateObjectProperties.js",
      "index": 264,
      "index2": 260,
      "size": 1449,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 263,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
          "module": "./~/react-router/lib/RouterContext.js",
          "moduleName": "./~/react-router/lib/RouterContext.js",
          "type": "cjs require",
          "userRequest": "./deprecateObjectProperties",
          "loc": "17:33-71"
        },
        {
          "moduleId": 266,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterUtils.js",
          "module": "./~/react-router/lib/RouterUtils.js",
          "moduleName": "./~/react-router/lib/RouterUtils.js",
          "type": "cjs require",
          "userRequest": "./deprecateObjectProperties",
          "loc": "12:33-71"
        }
      ],
      "source": "/*eslint no-empty: 0*/\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = deprecateObjectProperties;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar useMembrane = false;\n\nif (process.env.NODE_ENV !== 'production') {\n  try {\n    if (Object.defineProperty({}, 'x', { get: function get() {\n        return true;\n      } }).x) {\n      useMembrane = true;\n    }\n  } catch (e) {}\n}\n\n// wraps an object in a membrane to warn about deprecated property access\n\nfunction deprecateObjectProperties(object, message) {\n  if (!useMembrane) return object;\n\n  var membrane = {};\n\n  var _loop = function (prop) {\n    if (typeof object[prop] === 'function') {\n      membrane[prop] = function () {\n        process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, message) : undefined;\n        return object[prop].apply(object, arguments);\n      };\n    } else {\n      Object.defineProperty(membrane, prop, {\n        configurable: false,\n        enumerable: false,\n        get: function get() {\n          process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, message) : undefined;\n          return object[prop];\n        }\n      });\n    }\n  };\n\n  for (var prop in object) {\n    _loop(prop);\n  }\n\n  return membrane;\n}\n\nmodule.exports = exports['default'];"
    },
    {
      "id": 265,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/getRouteParams.js",
      "name": "./~/react-router/lib/getRouteParams.js",
      "index": 265,
      "index2": 261,
      "size": 578,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 263,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterContext.js",
          "module": "./~/react-router/lib/RouterContext.js",
          "moduleName": "./~/react-router/lib/RouterContext.js",
          "type": "cjs require",
          "userRequest": "./getRouteParams",
          "loc": "21:22-49"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _PatternUtils = require('./PatternUtils');\n\n/**\n * Extracts an object of params the given route cares about from\n * the given params object.\n */\nfunction getRouteParams(route, params) {\n  var routeParams = {};\n\n  if (!route.path) return routeParams;\n\n  var paramNames = _PatternUtils.getParamNames(route.path);\n\n  for (var p in params) {\n    if (params.hasOwnProperty(p) && paramNames.indexOf(p) !== -1) routeParams[p] = params[p];\n  }return routeParams;\n}\n\nexports['default'] = getRouteParams;\nmodule.exports = exports['default'];"
    },
    {
      "id": 266,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouterUtils.js",
      "name": "./~/react-router/lib/RouterUtils.js",
      "index": 266,
      "index2": 263,
      "size": 1260,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 231,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Router.js",
          "module": "./~/react-router/lib/Router.js",
          "moduleName": "./~/react-router/lib/Router.js",
          "type": "cjs require",
          "userRequest": "./RouterUtils",
          "loc": "35:19-43"
        },
        {
          "moduleId": 278,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/match.js",
          "module": "./~/react-router/lib/match.js",
          "moduleName": "./~/react-router/lib/match.js",
          "type": "cjs require",
          "userRequest": "./RouterUtils",
          "loc": "25:19-43"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.createRouterObject = createRouterObject;\nexports.createRoutingHistory = createRoutingHistory;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _deprecateObjectProperties = require('./deprecateObjectProperties');\n\nvar _deprecateObjectProperties2 = _interopRequireDefault(_deprecateObjectProperties);\n\nfunction createRouterObject(history, transitionManager) {\n  return _extends({}, history, {\n    setRouteLeaveHook: transitionManager.listenBeforeLeavingRoute,\n    isActive: transitionManager.isActive\n  });\n}\n\n// deprecated\n\nfunction createRoutingHistory(history, transitionManager) {\n  history = _extends({}, history, transitionManager);\n\n  if (process.env.NODE_ENV !== 'production') {\n    history = _deprecateObjectProperties2['default'](history, '`props.history` and `context.history` are deprecated. Please use `context.router`. http://tiny.cc/router-contextchanges');\n  }\n\n  return history;\n}"
    },
    {
      "id": 267,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Link.js",
      "name": "./~/react-router/lib/Link.js",
      "index": 267,
      "index2": 265,
      "size": 5103,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./Link",
          "loc": "14:13-30"
        },
        {
          "moduleId": 268,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexLink.js",
          "module": "./~/react-router/lib/IndexLink.js",
          "moduleName": "./~/react-router/lib/IndexLink.js",
          "type": "cjs require",
          "userRequest": "./Link",
          "loc": "13:12-29"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar bool = _React$PropTypes.bool;\nvar object = _React$PropTypes.object;\nvar string = _React$PropTypes.string;\nvar func = _React$PropTypes.func;\nvar oneOfType = _React$PropTypes.oneOfType;\n\nfunction isLeftClickEvent(event) {\n  return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nfunction isEmptyObject(object) {\n  for (var p in object) {\n    if (object.hasOwnProperty(p)) return false;\n  }return true;\n}\n\nfunction createLocationDescriptor(to, _ref) {\n  var query = _ref.query;\n  var hash = _ref.hash;\n  var state = _ref.state;\n\n  if (query || hash || state) {\n    return { pathname: to, query: query, hash: hash, state: state };\n  }\n\n  return to;\n}\n\n/**\n * A <Link> is used to create an <a> element that links to a route.\n * When that route is active, the link gets the value of its\n * activeClassName prop.\n *\n * For example, assuming you have the following route:\n *\n *   <Route path=\"/posts/:postID\" component={Post} />\n *\n * You could use the following component to link to that route:\n *\n *   <Link to={`/posts/${post.id}`} />\n *\n * Links may pass along location state and/or query string parameters\n * in the state/query props, respectively.\n *\n *   <Link ... query={{ show: true }} state={{ the: 'state' }} />\n */\nvar Link = _react2['default'].createClass({\n  displayName: 'Link',\n\n  contextTypes: {\n    router: object\n  },\n\n  propTypes: {\n    to: oneOfType([string, object]).isRequired,\n    query: object,\n    hash: string,\n    state: object,\n    activeStyle: object,\n    activeClassName: string,\n    onlyActiveOnIndex: bool.isRequired,\n    onClick: func\n  },\n\n  getDefaultProps: function getDefaultProps() {\n    return {\n      onlyActiveOnIndex: false,\n      className: '',\n      style: {}\n    };\n  },\n\n  handleClick: function handleClick(event) {\n    var allowTransition = true;\n\n    if (this.props.onClick) this.props.onClick(event);\n\n    if (isModifiedEvent(event) || !isLeftClickEvent(event)) return;\n\n    if (event.defaultPrevented === true) allowTransition = false;\n\n    // If target prop is set (e.g. to \"_blank\") let browser handle link.\n    /* istanbul ignore if: untestable with Karma */\n    if (this.props.target) {\n      if (!allowTransition) event.preventDefault();\n\n      return;\n    }\n\n    event.preventDefault();\n\n    if (allowTransition) {\n      var _props = this.props;\n      var to = _props.to;\n      var query = _props.query;\n      var hash = _props.hash;\n      var state = _props.state;\n\n      var _location = createLocationDescriptor(to, { query: query, hash: hash, state: state });\n\n      this.context.router.push(_location);\n    }\n  },\n\n  render: function render() {\n    var _props2 = this.props;\n    var to = _props2.to;\n    var query = _props2.query;\n    var hash = _props2.hash;\n    var state = _props2.state;\n    var activeClassName = _props2.activeClassName;\n    var activeStyle = _props2.activeStyle;\n    var onlyActiveOnIndex = _props2.onlyActiveOnIndex;\n\n    var props = _objectWithoutProperties(_props2, ['to', 'query', 'hash', 'state', 'activeClassName', 'activeStyle', 'onlyActiveOnIndex']);\n\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](!(query || hash || state), 'the `query`, `hash`, and `state` props on `<Link>` are deprecated, use `<Link to={{ pathname, query, hash, state }}/>. http://tiny.cc/router-isActivedeprecated') : undefined;\n\n    // Ignore if rendered outside the context of router, simplifies unit testing.\n    var router = this.context.router;\n\n    if (router) {\n      var _location2 = createLocationDescriptor(to, { query: query, hash: hash, state: state });\n      props.href = router.createHref(_location2);\n\n      if (activeClassName || activeStyle != null && !isEmptyObject(activeStyle)) {\n        if (router.isActive(_location2, onlyActiveOnIndex)) {\n          if (activeClassName) props.className += props.className === '' ? activeClassName : ' ' + activeClassName;\n\n          if (activeStyle) props.style = _extends({}, props.style, activeStyle);\n        }\n      }\n    }\n\n    return _react2['default'].createElement('a', _extends({}, props, { onClick: this.handleClick }));\n  }\n\n});\n\nexports['default'] = Link;\nmodule.exports = exports['default'];"
    },
    {
      "id": 268,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexLink.js",
      "name": "./~/react-router/lib/IndexLink.js",
      "index": 268,
      "index2": 266,
      "size": 924,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./IndexLink",
          "loc": "20:18-40"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Link = require('./Link');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\n/**\n * An <IndexLink> is used to link to an <IndexRoute>.\n */\nvar IndexLink = _react2['default'].createClass({\n  displayName: 'IndexLink',\n\n  render: function render() {\n    return _react2['default'].createElement(_Link2['default'], _extends({}, this.props, { onlyActiveOnIndex: true }));\n  }\n\n});\n\nexports['default'] = IndexLink;\nmodule.exports = exports['default'];"
    },
    {
      "id": 269,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
      "name": "./~/react-router/lib/IndexRedirect.js",
      "index": 269,
      "index2": 268,
      "size": 1849,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./IndexRedirect",
          "loc": "28:22-48"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Redirect = require('./Redirect');\n\nvar _Redirect2 = _interopRequireDefault(_Redirect);\n\nvar _PropTypes = require('./PropTypes');\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar string = _React$PropTypes.string;\nvar object = _React$PropTypes.object;\n\n/**\n * An <IndexRedirect> is used to redirect from an indexRoute.\n */\nvar IndexRedirect = _react2['default'].createClass({\n  displayName: 'IndexRedirect',\n\n  statics: {\n\n    createRouteFromReactElement: function createRouteFromReactElement(element, parentRoute) {\n      /* istanbul ignore else: sanity check */\n      if (parentRoute) {\n        parentRoute.indexRoute = _Redirect2['default'].createRouteFromReactElement(element);\n      } else {\n        process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'An <IndexRedirect> does not make sense at the root of your route config') : undefined;\n      }\n    }\n\n  },\n\n  propTypes: {\n    to: string.isRequired,\n    query: object,\n    state: object,\n    onEnter: _PropTypes.falsy,\n    children: _PropTypes.falsy\n  },\n\n  /* istanbul ignore next: sanity check */\n  render: function render() {\n    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<IndexRedirect> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n  }\n\n});\n\nexports['default'] = IndexRedirect;\nmodule.exports = exports['default'];"
    },
    {
      "id": 270,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Redirect.js",
      "name": "./~/react-router/lib/Redirect.js",
      "index": 270,
      "index2": 267,
      "size": 2918,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./Redirect",
          "loc": "40:17-38"
        },
        {
          "moduleId": 269,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRedirect.js",
          "module": "./~/react-router/lib/IndexRedirect.js",
          "moduleName": "./~/react-router/lib/IndexRedirect.js",
          "type": "cjs require",
          "userRequest": "./Redirect",
          "loc": "19:16-37"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _RouteUtils = require('./RouteUtils');\n\nvar _PatternUtils = require('./PatternUtils');\n\nvar _PropTypes = require('./PropTypes');\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar string = _React$PropTypes.string;\nvar object = _React$PropTypes.object;\n\n/**\n * A <Redirect> is used to declare another URL path a client should\n * be sent to when they request a given URL.\n *\n * Redirects are placed alongside routes in the route configuration\n * and are traversed in the same manner.\n */\nvar Redirect = _react2['default'].createClass({\n  displayName: 'Redirect',\n\n  statics: {\n\n    createRouteFromReactElement: function createRouteFromReactElement(element) {\n      var route = _RouteUtils.createRouteFromReactElement(element);\n\n      if (route.from) route.path = route.from;\n\n      route.onEnter = function (nextState, replace) {\n        var location = nextState.location;\n        var params = nextState.params;\n\n        var pathname = undefined;\n        if (route.to.charAt(0) === '/') {\n          pathname = _PatternUtils.formatPattern(route.to, params);\n        } else if (!route.to) {\n          pathname = location.pathname;\n        } else {\n          var routeIndex = nextState.routes.indexOf(route);\n          var parentPattern = Redirect.getRoutePattern(nextState.routes, routeIndex - 1);\n          var pattern = parentPattern.replace(/\\/*$/, '/') + route.to;\n          pathname = _PatternUtils.formatPattern(pattern, params);\n        }\n\n        replace({\n          pathname: pathname,\n          query: route.query || location.query,\n          state: route.state || location.state\n        });\n      };\n\n      return route;\n    },\n\n    getRoutePattern: function getRoutePattern(routes, routeIndex) {\n      var parentPattern = '';\n\n      for (var i = routeIndex; i >= 0; i--) {\n        var route = routes[i];\n        var pattern = route.path || '';\n\n        parentPattern = pattern.replace(/\\/*$/, '/') + parentPattern;\n\n        if (pattern.indexOf('/') === 0) break;\n      }\n\n      return '/' + parentPattern;\n    }\n\n  },\n\n  propTypes: {\n    path: string,\n    from: string, // Alias for path\n    to: string.isRequired,\n    query: object,\n    state: object,\n    onEnter: _PropTypes.falsy,\n    children: _PropTypes.falsy\n  },\n\n  /* istanbul ignore next: sanity check */\n  render: function render() {\n    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<Redirect> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n  }\n\n});\n\nexports['default'] = Redirect;\nmodule.exports = exports['default'];"
    },
    {
      "id": 271,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/IndexRoute.js",
      "name": "./~/react-router/lib/IndexRoute.js",
      "index": 271,
      "index2": 269,
      "size": 1751,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./IndexRoute",
          "loc": "34:19-42"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _RouteUtils = require('./RouteUtils');\n\nvar _PropTypes = require('./PropTypes');\n\nvar func = _react2['default'].PropTypes.func;\n\n/**\n * An <IndexRoute> is used to specify its parent's <Route indexRoute> in\n * a JSX route config.\n */\nvar IndexRoute = _react2['default'].createClass({\n  displayName: 'IndexRoute',\n\n  statics: {\n\n    createRouteFromReactElement: function createRouteFromReactElement(element, parentRoute) {\n      /* istanbul ignore else: sanity check */\n      if (parentRoute) {\n        parentRoute.indexRoute = _RouteUtils.createRouteFromReactElement(element);\n      } else {\n        process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'An <IndexRoute> does not make sense at the root of your route config') : undefined;\n      }\n    }\n\n  },\n\n  propTypes: {\n    path: _PropTypes.falsy,\n    component: _PropTypes.component,\n    components: _PropTypes.components,\n    getComponent: func,\n    getComponents: func\n  },\n\n  /* istanbul ignore next: sanity check */\n  render: function render() {\n    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<IndexRoute> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n  }\n\n});\n\nexports['default'] = IndexRoute;\nmodule.exports = exports['default'];"
    },
    {
      "id": 272,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Route.js",
      "name": "./~/react-router/lib/Route.js",
      "index": 272,
      "index2": 270,
      "size": 1676,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./Route",
          "loc": "46:14-32"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _RouteUtils = require('./RouteUtils');\n\nvar _PropTypes = require('./PropTypes');\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar string = _React$PropTypes.string;\nvar func = _React$PropTypes.func;\n\n/**\n * A <Route> is used to declare which components are rendered to the\n * page when the URL matches a given pattern.\n *\n * Routes are arranged in a nested tree structure. When a new URL is\n * requested, the tree is searched depth-first to find a route whose\n * path matches the URL.  When one is found, all routes in the tree\n * that lead to it are considered \"active\" and their components are\n * rendered into the DOM, nested in the same order as in the tree.\n */\nvar Route = _react2['default'].createClass({\n  displayName: 'Route',\n\n  statics: {\n    createRouteFromReactElement: _RouteUtils.createRouteFromReactElement\n  },\n\n  propTypes: {\n    path: string,\n    component: _PropTypes.component,\n    components: _PropTypes.components,\n    getComponent: func,\n    getComponents: func\n  },\n\n  /* istanbul ignore next: sanity check */\n  render: function render() {\n    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<Route> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n  }\n\n});\n\nexports['default'] = Route;\nmodule.exports = exports['default'];"
    },
    {
      "id": 273,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/History.js",
      "name": "./~/react-router/lib/History.js",
      "index": 273,
      "index2": 271,
      "size": 841,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./History",
          "loc": "54:16-36"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _PropTypes = require('./PropTypes');\n\n/**\n * A mixin that adds the \"history\" instance variable to components.\n */\nvar History = {\n\n  contextTypes: {\n    history: _PropTypes.history\n  },\n\n  componentWillMount: function componentWillMount() {\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'the `History` mixin is deprecated, please access `context.router` with your own `contextTypes`. http://tiny.cc/router-historymixin') : undefined;\n    this.history = this.context.history;\n  }\n\n};\n\nexports['default'] = History;\nmodule.exports = exports['default'];"
    },
    {
      "id": 274,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/Lifecycle.js",
      "name": "./~/react-router/lib/Lifecycle.js",
      "index": 274,
      "index2": 272,
      "size": 2739,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./Lifecycle",
          "loc": "60:18-40"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar object = _react2['default'].PropTypes.object;\n\n/**\n * The Lifecycle mixin adds the routerWillLeave lifecycle method to a\n * component that may be used to cancel a transition or prompt the user\n * for confirmation.\n *\n * On standard transitions, routerWillLeave receives a single argument: the\n * location we're transitioning to. To cancel the transition, return false.\n * To prompt the user for confirmation, return a prompt message (string).\n *\n * During the beforeunload event (assuming you're using the useBeforeUnload\n * history enhancer), routerWillLeave does not receive a location object\n * because it isn't possible for us to know the location we're transitioning\n * to. In this case routerWillLeave must return a prompt message to prevent\n * the user from closing the window/tab.\n */\nvar Lifecycle = {\n\n  contextTypes: {\n    history: object.isRequired,\n    // Nested children receive the route as context, either\n    // set by the route component using the RouteContext mixin\n    // or by some other ancestor.\n    route: object\n  },\n\n  propTypes: {\n    // Route components receive the route object as a prop.\n    route: object\n  },\n\n  componentDidMount: function componentDidMount() {\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'the `Lifecycle` mixin is deprecated, please use `context.router.setRouteLeaveHook(route, hook)`. http://tiny.cc/router-lifecyclemixin') : undefined;\n    !this.routerWillLeave ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'The Lifecycle mixin requires you to define a routerWillLeave method') : _invariant2['default'](false) : undefined;\n\n    var route = this.props.route || this.context.route;\n\n    !route ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'The Lifecycle mixin must be used on either a) a <Route component> or ' + 'b) a descendant of a <Route component> that uses the RouteContext mixin') : _invariant2['default'](false) : undefined;\n\n    this._unlistenBeforeLeavingRoute = this.context.history.listenBeforeLeavingRoute(route, this.routerWillLeave);\n  },\n\n  componentWillUnmount: function componentWillUnmount() {\n    if (this._unlistenBeforeLeavingRoute) this._unlistenBeforeLeavingRoute();\n  }\n\n};\n\nexports['default'] = Lifecycle;\nmodule.exports = exports['default'];"
    },
    {
      "id": 275,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RouteContext.js",
      "name": "./~/react-router/lib/RouteContext.js",
      "index": 275,
      "index2": 273,
      "size": 1230,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./RouteContext",
          "loc": "66:21-46"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar object = _react2['default'].PropTypes.object;\n\n/**\n * The RouteContext mixin provides a convenient way for route\n * components to set the route in context. This is needed for\n * routes that render elements that want to use the Lifecycle\n * mixin to prevent transitions.\n */\nvar RouteContext = {\n\n  propTypes: {\n    route: object.isRequired\n  },\n\n  childContextTypes: {\n    route: object.isRequired\n  },\n\n  getChildContext: function getChildContext() {\n    return {\n      route: this.props.route\n    };\n  },\n\n  componentWillMount: function componentWillMount() {\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, 'The `RouteContext` mixin is deprecated. You can provide `this.props.route` on context with your own `contextTypes`. http://tiny.cc/router-routecontextmixin') : undefined;\n  }\n\n};\n\nexports['default'] = RouteContext;\nmodule.exports = exports['default'];"
    },
    {
      "id": 276,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRoutes.js",
      "name": "./~/react-router/lib/useRoutes.js",
      "index": 276,
      "index2": 274,
      "size": 2118,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./useRoutes",
          "loc": "74:18-40"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar _historyLibUseQueries = require('history/lib/useQueries');\n\nvar _historyLibUseQueries2 = _interopRequireDefault(_historyLibUseQueries);\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know about routing.\n *\n * Enhances history objects with the following methods:\n *\n * - listen((error, nextState) => {})\n * - listenBeforeLeavingRoute(route, (nextLocation) => {})\n * - match(location, (error, redirectLocation, nextState) => {})\n * - isActive(pathname, query, indexOnly=false)\n */\nfunction useRoutes(createHistory) {\n  process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, '`useRoutes` is deprecated. Please use `createTransitionManager` instead.') : undefined;\n\n  return function () {\n    var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    var routes = _ref.routes;\n\n    var options = _objectWithoutProperties(_ref, ['routes']);\n\n    var history = _historyLibUseQueries2['default'](createHistory)(options);\n    var transitionManager = _createTransitionManager2['default'](history, routes);\n    return _extends({}, history, transitionManager);\n  };\n}\n\nexports['default'] = useRoutes;\nmodule.exports = exports['default'];"
    },
    {
      "id": 277,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/RoutingContext.js",
      "name": "./~/react-router/lib/RoutingContext.js",
      "index": 277,
      "index2": 275,
      "size": 1037,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./RoutingContext",
          "loc": "90:23-50"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _RouterContext = require('./RouterContext');\n\nvar _RouterContext2 = _interopRequireDefault(_RouterContext);\n\nvar _routerWarning = require('./routerWarning');\n\nvar _routerWarning2 = _interopRequireDefault(_routerWarning);\n\nvar RoutingContext = _react2['default'].createClass({\n  displayName: 'RoutingContext',\n\n  componentWillMount: function componentWillMount() {\n    process.env.NODE_ENV !== 'production' ? _routerWarning2['default'](false, '`RoutingContext` has been renamed to `RouterContext`. Please use `import { RouterContext } from \\'react-router\\'`. http://tiny.cc/router-routercontext') : undefined;\n  },\n\n  render: function render() {\n    return _react2['default'].createElement(_RouterContext2['default'], this.props);\n  }\n});\n\nexports['default'] = RoutingContext;\nmodule.exports = exports['default'];"
    },
    {
      "id": 278,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/match.js",
      "name": "./~/react-router/lib/match.js",
      "index": 278,
      "index2": 279,
      "size": 3153,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./match",
          "loc": "102:14-32"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _createMemoryHistory = require('./createMemoryHistory');\n\nvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _RouteUtils = require('./RouteUtils');\n\nvar _RouterUtils = require('./RouterUtils');\n\n/**\n * A high-level API to be used for server-side rendering.\n *\n * This function matches a location to a set of routes and calls\n * callback(error, redirectLocation, renderProps) when finished.\n *\n * Note: You probably don't want to use this in a browser unless you're using\n * server-side rendering with async routes.\n */\nfunction match(_ref, callback) {\n  var history = _ref.history;\n  var routes = _ref.routes;\n  var location = _ref.location;\n\n  var options = _objectWithoutProperties(_ref, ['history', 'routes', 'location']);\n\n  !(history || location) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'match needs a history or a location') : _invariant2['default'](false) : undefined;\n\n  history = history ? history : _createMemoryHistory2['default'](options);\n  var transitionManager = _createTransitionManager2['default'](history, _RouteUtils.createRoutes(routes));\n\n  var unlisten = undefined;\n\n  if (location) {\n    // Allow match({ location: '/the/path', ... })\n    location = history.createLocation(location);\n  } else {\n    // Pick up the location from the history via synchronous history.listen\n    // call if needed.\n    unlisten = history.listen(function (historyLocation) {\n      location = historyLocation;\n    });\n  }\n\n  var router = _RouterUtils.createRouterObject(history, transitionManager);\n  history = _RouterUtils.createRoutingHistory(history, transitionManager);\n\n  transitionManager.match(location, function (error, redirectLocation, nextState) {\n    callback(error, redirectLocation, nextState && _extends({}, nextState, {\n      history: history,\n      router: router,\n      matchContext: { history: history, transitionManager: transitionManager, router: router }\n    }));\n\n    // Defer removing the listener to here to prevent DOM histories from having\n    // to unwind DOM event listeners unnecessarily, in case callback renders a\n    // <Router> and attaches another history listener.\n    if (unlisten) {\n      unlisten();\n    }\n  });\n}\n\nexports['default'] = match;\nmodule.exports = exports['default'];"
    },
    {
      "id": 279,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createMemoryHistory.js",
      "name": "./~/react-router/lib/createMemoryHistory.js",
      "index": 279,
      "index2": 278,
      "size": 1235,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./createMemoryHistory",
          "loc": "132:28-60"
        },
        {
          "moduleId": 278,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/match.js",
          "module": "./~/react-router/lib/match.js",
          "moduleName": "./~/react-router/lib/match.js",
          "type": "cjs require",
          "userRequest": "./createMemoryHistory",
          "loc": "15:27-59"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports['default'] = createMemoryHistory;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _historyLibUseQueries = require('history/lib/useQueries');\n\nvar _historyLibUseQueries2 = _interopRequireDefault(_historyLibUseQueries);\n\nvar _historyLibUseBasename = require('history/lib/useBasename');\n\nvar _historyLibUseBasename2 = _interopRequireDefault(_historyLibUseBasename);\n\nvar _historyLibCreateMemoryHistory = require('history/lib/createMemoryHistory');\n\nvar _historyLibCreateMemoryHistory2 = _interopRequireDefault(_historyLibCreateMemoryHistory);\n\nfunction createMemoryHistory(options) {\n  // signatures and type checking differ between `useRoutes` and\n  // `createMemoryHistory`, have to create `memoryHistory` first because\n  // `useQueries` doesn't understand the signature\n  var memoryHistory = _historyLibCreateMemoryHistory2['default'](options);\n  var createHistory = function createHistory() {\n    return memoryHistory;\n  };\n  var history = _historyLibUseQueries2['default'](_historyLibUseBasename2['default'](createHistory))(options);\n  history.__v2_compatible__ = true;\n  return history;\n}\n\nmodule.exports = exports['default'];"
    },
    {
      "id": 280,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/useBasename.js",
      "name": "./~/history/lib/useBasename.js",
      "index": 280,
      "index2": 276,
      "size": 4268,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRouterHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 279,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createMemoryHistory.js",
          "module": "./~/react-router/lib/createMemoryHistory.js",
          "moduleName": "./~/react-router/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/useBasename",
          "loc": "12:29-63"
        },
        {
          "moduleId": 282,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRouterHistory.js",
          "module": "./~/react-router/lib/useRouterHistory.js",
          "moduleName": "./~/react-router/lib/useRouterHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/useBasename",
          "loc": "12:29-63"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction useBasename(createHistory) {\n  return function () {\n    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n    var history = createHistory(options);\n\n    var basename = options.basename;\n\n    // Automatically use the value of <base href> in HTML\n    // documents as basename if it's not explicitly given.\n    if (basename == null && _ExecutionEnvironment.canUseDOM) {\n      var base = document.getElementsByTagName('base')[0];\n\n      if (base) basename = _PathUtils.extractPath(base.href);\n    }\n\n    function addBasename(location) {\n      if (basename && location.basename == null) {\n        if (location.pathname.indexOf(basename) === 0) {\n          location.pathname = location.pathname.substring(basename.length);\n          location.basename = basename;\n\n          if (location.pathname === '') location.pathname = '/';\n        } else {\n          location.basename = '';\n        }\n      }\n\n      return location;\n    }\n\n    function prependBasename(location) {\n      if (!basename) return location;\n\n      if (typeof location === 'string') location = _PathUtils.parsePath(location);\n\n      var pname = location.pathname;\n      var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n      var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n      var pathname = normalizedBasename + normalizedPathname;\n\n      return _extends({}, location, {\n        pathname: pathname\n      });\n    }\n\n    // Override all read methods with basename-aware versions.\n    function listenBefore(hook) {\n      return history.listenBefore(function (location, callback) {\n        _runTransitionHook2['default'](hook, addBasename(location), callback);\n      });\n    }\n\n    function listen(listener) {\n      return history.listen(function (location) {\n        listener(addBasename(location));\n      });\n    }\n\n    // Override all write methods with basename-aware versions.\n    function push(location) {\n      history.push(prependBasename(location));\n    }\n\n    function replace(location) {\n      history.replace(prependBasename(location));\n    }\n\n    function createPath(location) {\n      return history.createPath(prependBasename(location));\n    }\n\n    function createHref(location) {\n      return history.createHref(prependBasename(location));\n    }\n\n    function createLocation(location) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args)));\n    }\n\n    // deprecated\n    function pushState(state, path) {\n      if (typeof path === 'string') path = _PathUtils.parsePath(path);\n\n      push(_extends({ state: state }, path));\n    }\n\n    // deprecated\n    function replaceState(state, path) {\n      if (typeof path === 'string') path = _PathUtils.parsePath(path);\n\n      replace(_extends({ state: state }, path));\n    }\n\n    return _extends({}, history, {\n      listenBefore: listenBefore,\n      listen: listen,\n      push: push,\n      replace: replace,\n      createPath: createPath,\n      createHref: createHref,\n      createLocation: createLocation,\n\n      pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n      replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n    });\n  };\n}\n\nexports['default'] = useBasename;\nmodule.exports = exports['default'];"
    },
    {
      "id": 281,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createMemoryHistory.js",
      "name": "./~/history/lib/createMemoryHistory.js",
      "index": 281,
      "index2": 277,
      "size": 4308,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createMemoryHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 279,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createMemoryHistory.js",
          "module": "./~/react-router/lib/createMemoryHistory.js",
          "moduleName": "./~/react-router/lib/createMemoryHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/createMemoryHistory",
          "loc": "16:37-79"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _Actions = require('./Actions');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createStateStorage(entries) {\n  return entries.filter(function (entry) {\n    return entry.state;\n  }).reduce(function (memo, entry) {\n    memo[entry.key] = entry.state;\n    return memo;\n  }, {});\n}\n\nfunction createMemoryHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  if (Array.isArray(options)) {\n    options = { entries: options };\n  } else if (typeof options === 'string') {\n    options = { entries: [options] };\n  }\n\n  var history = _createHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: saveState,\n    go: go\n  }));\n\n  var _options = options;\n  var entries = _options.entries;\n  var current = _options.current;\n\n  if (typeof entries === 'string') {\n    entries = [entries];\n  } else if (!Array.isArray(entries)) {\n    entries = ['/'];\n  }\n\n  entries = entries.map(function (entry) {\n    var key = history.createKey();\n\n    if (typeof entry === 'string') return { pathname: entry, key: key };\n\n    if (typeof entry === 'object' && entry) return _extends({}, entry, { key: key });\n\n    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Unable to create history entry from %s', entry) : _invariant2['default'](false) : undefined;\n  });\n\n  if (current == null) {\n    current = entries.length - 1;\n  } else {\n    !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : _invariant2['default'](false) : undefined;\n  }\n\n  var storage = createStateStorage(entries);\n\n  function saveState(key, state) {\n    storage[key] = state;\n  }\n\n  function readState(key) {\n    return storage[key];\n  }\n\n  function getCurrentLocation() {\n    var entry = entries[current];\n    var basename = entry.basename;\n    var pathname = entry.pathname;\n    var search = entry.search;\n\n    var path = (basename || '') + pathname + (search || '');\n\n    var key = undefined,\n        state = undefined;\n    if (entry.key) {\n      key = entry.key;\n      state = readState(key);\n    } else {\n      key = history.createKey();\n      state = null;\n      entry.key = key;\n    }\n\n    var location = _PathUtils.parsePath(path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function canGo(n) {\n    var index = current + n;\n    return index >= 0 && index < entries.length;\n  }\n\n  function go(n) {\n    if (n) {\n      if (!canGo(n)) {\n        process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'Cannot go(%s) there is not enough history', n) : undefined;\n        return;\n      }\n\n      current += n;\n\n      var currentLocation = getCurrentLocation();\n\n      // change action to POP\n      history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n    }\n  }\n\n  function finishTransition(location) {\n    switch (location.action) {\n      case _Actions.PUSH:\n        current += 1;\n\n        // if we are not on the top of stack\n        // remove rest and push new\n        if (current < entries.length) entries.splice(current);\n\n        entries.push(location);\n        saveState(location.key, location.state);\n        break;\n      case _Actions.REPLACE:\n        entries[current] = location;\n        saveState(location.key, location.state);\n        break;\n    }\n  }\n\n  return history;\n}\n\nexports['default'] = createMemoryHistory;\nmodule.exports = exports['default'];"
    },
    {
      "id": 282,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/useRouterHistory.js",
      "name": "./~/react-router/lib/useRouterHistory.js",
      "index": 282,
      "index2": 280,
      "size": 755,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./useRouterHistory",
          "loc": "108:25-54"
        },
        {
          "moduleId": 285,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createRouterHistory.js",
          "module": "./~/react-router/lib/createRouterHistory.js",
          "moduleName": "./~/react-router/lib/createRouterHistory.js",
          "type": "cjs require",
          "userRequest": "./useRouterHistory",
          "loc": "7:24-53"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports['default'] = useRouterHistory;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _historyLibUseQueries = require('history/lib/useQueries');\n\nvar _historyLibUseQueries2 = _interopRequireDefault(_historyLibUseQueries);\n\nvar _historyLibUseBasename = require('history/lib/useBasename');\n\nvar _historyLibUseBasename2 = _interopRequireDefault(_historyLibUseBasename);\n\nfunction useRouterHistory(createHistory) {\n  return function (options) {\n    var history = _historyLibUseQueries2['default'](_historyLibUseBasename2['default'](createHistory))(options);\n    history.__v2_compatible__ = true;\n    return history;\n  };\n}\n\nmodule.exports = exports['default'];"
    },
    {
      "id": 283,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/browserHistory.js",
      "name": "./~/react-router/lib/browserHistory.js",
      "index": 283,
      "index2": 283,
      "size": 596,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./browserHistory",
          "loc": "120:23-50"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _historyLibCreateBrowserHistory = require('history/lib/createBrowserHistory');\n\nvar _historyLibCreateBrowserHistory2 = _interopRequireDefault(_historyLibCreateBrowserHistory);\n\nvar _createRouterHistory = require('./createRouterHistory');\n\nvar _createRouterHistory2 = _interopRequireDefault(_createRouterHistory);\n\nexports['default'] = _createRouterHistory2['default'](_historyLibCreateBrowserHistory2['default']);\nmodule.exports = exports['default'];"
    },
    {
      "id": 284,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/history/lib/createBrowserHistory.js",
      "name": "./~/history/lib/createBrowserHistory.js",
      "index": 284,
      "index2": 281,
      "size": 5222,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/browserHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 283,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/browserHistory.js",
          "module": "./~/react-router/lib/browserHistory.js",
          "moduleName": "./~/react-router/lib/browserHistory.js",
          "type": "cjs require",
          "userRequest": "history/lib/createBrowserHistory",
          "loc": "7:38-81"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = require('./Actions');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _createDOMHistory = require('./createDOMHistory');\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve URLs.\n */\nfunction createBrowserHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined;\n\n  var forceRefresh = options.forceRefresh;\n\n  var isSupported = _DOMUtils.supportsHistory();\n  var useRefresh = !isSupported || forceRefresh;\n\n  function getCurrentLocation(historyState) {\n    historyState = historyState || window.history.state || {};\n\n    var path = _DOMUtils.getWindowPath();\n    var _historyState = historyState;\n    var key = _historyState.key;\n\n    var state = undefined;\n    if (key) {\n      state = _DOMStateStorage.readState(key);\n    } else {\n      state = null;\n      key = history.createKey();\n\n      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path);\n    }\n\n    var location = _PathUtils.parsePath(path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function startPopStateListener(_ref) {\n    var transitionTo = _ref.transitionTo;\n\n    function popStateListener(event) {\n      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit.\n\n      transitionTo(getCurrentLocation(event.state));\n    }\n\n    _DOMUtils.addEventListener(window, 'popstate', popStateListener);\n\n    return function () {\n      _DOMUtils.removeEventListener(window, 'popstate', popStateListener);\n    };\n  }\n\n  function finishTransition(location) {\n    var basename = location.basename;\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n    var state = location.state;\n    var action = location.action;\n    var key = location.key;\n\n    if (action === _Actions.POP) return; // Nothing to do.\n\n    _DOMStateStorage.saveState(key, state);\n\n    var path = (basename || '') + pathname + search + hash;\n    var historyState = {\n      key: key\n    };\n\n    if (action === _Actions.PUSH) {\n      if (useRefresh) {\n        window.location.href = path;\n        return false; // Prevent location update.\n      } else {\n          window.history.pushState(historyState, null, path);\n        }\n    } else {\n      // REPLACE\n      if (useRefresh) {\n        window.location.replace(path);\n        return false; // Prevent location update.\n      } else {\n          window.history.replaceState(historyState, null, path);\n        }\n    }\n  }\n\n  var history = _createDOMHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: _DOMStateStorage.saveState\n  }));\n\n  var listenerCount = 0,\n      stopPopStateListener = undefined;\n\n  function listenBefore(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listenBefore(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  function listen(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listen(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    history.registerTransitionHook(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    history.unregisterTransitionHook(hook);\n\n    if (--listenerCount === 0) stopPopStateListener();\n  }\n\n  return _extends({}, history, {\n    listenBefore: listenBefore,\n    listen: listen,\n    registerTransitionHook: registerTransitionHook,\n    unregisterTransitionHook: unregisterTransitionHook\n  });\n}\n\nexports['default'] = createBrowserHistory;\nmodule.exports = exports['default'];"
    },
    {
      "id": 285,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/createRouterHistory.js",
      "name": "./~/react-router/lib/createRouterHistory.js",
      "index": 285,
      "index2": 282,
      "size": 579,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/browserHistory.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 283,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/browserHistory.js",
          "module": "./~/react-router/lib/browserHistory.js",
          "moduleName": "./~/react-router/lib/browserHistory.js",
          "type": "cjs require",
          "userRequest": "./createRouterHistory",
          "loc": "11:27-59"
        },
        {
          "moduleId": 286,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/hashHistory.js",
          "module": "./~/react-router/lib/hashHistory.js",
          "moduleName": "./~/react-router/lib/hashHistory.js",
          "type": "cjs require",
          "userRequest": "./createRouterHistory",
          "loc": "11:27-59"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _useRouterHistory = require('./useRouterHistory');\n\nvar _useRouterHistory2 = _interopRequireDefault(_useRouterHistory);\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports['default'] = function (createHistory) {\n  var history = undefined;\n  if (canUseDOM) history = _useRouterHistory2['default'](createHistory)();\n  return history;\n};\n\nmodule.exports = exports['default'];"
    },
    {
      "id": 286,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/hashHistory.js",
      "name": "./~/react-router/lib/hashHistory.js",
      "index": 286,
      "index2": 284,
      "size": 581,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 230,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-router/lib/index.js",
          "module": "./~/react-router/lib/index.js",
          "moduleName": "./~/react-router/lib/index.js",
          "type": "cjs require",
          "userRequest": "./hashHistory",
          "loc": "126:20-44"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _historyLibCreateHashHistory = require('history/lib/createHashHistory');\n\nvar _historyLibCreateHashHistory2 = _interopRequireDefault(_historyLibCreateHashHistory);\n\nvar _createRouterHistory = require('./createRouterHistory');\n\nvar _createRouterHistory2 = _interopRequireDefault(_createRouterHistory);\n\nexports['default'] = _createRouterHistory2['default'](_historyLibCreateHashHistory2['default']);\nmodule.exports = exports['default'];"
    },
    {
      "id": 287,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/index.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/index.js",
      "index": 287,
      "index2": 443,
      "size": 60,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "multi _vendor",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "multi _vendor",
          "module": "multi _vendor",
          "moduleName": "multi _vendor",
          "type": "single entry",
          "userRequest": "react-project"
        },
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "react-project",
          "loc": "15:20-44"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = require('./lib//PublicAPI');"
    },
    {
      "id": 288,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/lib/PublicAPI.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/lib/PublicAPI.js",
      "index": 288,
      "index2": 442,
      "size": 1089,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 287,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/index.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/index.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/index.js",
          "type": "cjs require",
          "userRequest": "./lib//PublicAPI",
          "loc": "3:17-44"
        }
      ],
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ServerRoute = undefined;\nexports.lazy = lazy;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nvar _React$PropTypes = _react2.default.PropTypes;\nvar func = _React$PropTypes.func;\nvar string = _React$PropTypes.string;\nvar object = _React$PropTypes.object;\nvar oneOfType = _React$PropTypes.oneOfType;\nfunction lazy(loader) {\n  return function (location, cb) {\n    loader(function (Mod) {\n      cb(null, Mod.default);\n    });\n  };\n}\n\nvar handler = oneOfType([func, object]);\n\nvar ServerRoute = exports.ServerRoute = _react2.default.createClass({\n  displayName: 'ServerRoute',\n\n  propTypes: {\n    path: string.isRequired,\n    get: handler,\n    post: handler,\n    patch: handler,\n    put: handler,\n    delete: handler\n  },\n  getDefaultProps: function getDefaultProps() {\n    return {\n      isServerRoute: true\n    };\n  },\n  render: function render() {\n    return null;\n  }\n});"
    },
    {
      "id": 289,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/react.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/react.js",
      "index": 289,
      "index2": 441,
      "size": 56,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/lib/PublicAPI.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 288,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/lib/PublicAPI.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/lib/PublicAPI.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/lib/PublicAPI.js",
          "type": "cjs require",
          "userRequest": "react",
          "loc": "9:13-29"
        }
      ],
      "source": "'use strict';\n\nmodule.exports = require('./lib/React');\n"
    },
    {
      "id": 290,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
      "index": 290,
      "index2": 440,
      "size": 1490,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/react.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 289,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/react.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/react.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/react.js",
          "type": "cjs require",
          "userRequest": "./lib/React",
          "loc": "3:17-39"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar ReactDOM = require('./ReactDOM');\nvar ReactDOMServer = require('./ReactDOMServer');\nvar ReactIsomorphic = require('./ReactIsomorphic');\n\nvar assign = require('./Object.assign');\nvar deprecated = require('./deprecated');\n\n// `version` will be added here by ReactIsomorphic.\nvar React = {};\n\nassign(React, ReactIsomorphic);\n\nassign(React, {\n  // ReactDOM\n  findDOMNode: deprecated('findDOMNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.findDOMNode),\n  render: deprecated('render', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.render),\n  unmountComponentAtNode: deprecated('unmountComponentAtNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.unmountComponentAtNode),\n\n  // ReactDOMServer\n  renderToString: deprecated('renderToString', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToString),\n  renderToStaticMarkup: deprecated('renderToStaticMarkup', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToStaticMarkup)\n});\n\nReact.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;\nReact.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer;\n\nmodule.exports = React;"
    },
    {
      "id": 291,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
      "index": 291,
      "index2": 429,
      "size": 3709,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 290,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./ReactDOM",
          "loc": "14:15-36"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdates = require('./ReactUpdates');\nvar ReactVersion = require('./ReactVersion');\n\nvar findDOMNode = require('./findDOMNode');\nvar renderSubtreeIntoContainer = require('./renderSubtreeIntoContainer');\nvar warning = require('fbjs/lib/warning');\n\nReactDefaultInjection.inject();\n\nvar render = ReactPerf.measure('React', 'render', ReactMount.render);\n\nvar React = {\n  findDOMNode: findDOMNode,\n  render: render,\n  unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n  version: ReactVersion,\n\n  /* eslint-disable camelcase */\n  unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n  unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n    CurrentOwner: ReactCurrentOwner,\n    InstanceHandles: ReactInstanceHandles,\n    Mount: ReactMount,\n    Reconciler: ReactReconciler,\n    TextComponent: ReactDOMTextComponent\n  });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n    // First check if devtools is not installed\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n      // If we're in Chrome or Firefox, provide a download link if not installed.\n      if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n        console.debug('Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools');\n      }\n    }\n\n    // If we're in IE8, check to see if we are in compatibility mode and provide\n    // information on preventing compatibility mode\n    var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n    process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : undefined;\n\n    var expectedFeatures = [\n    // shims\n    Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim,\n\n    // shams\n    Object.create, Object.freeze];\n\n    for (var i = 0; i < expectedFeatures.length; i++) {\n      if (!expectedFeatures[i]) {\n        console.error('One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills');\n        break;\n      }\n    }\n  }\n}\n\nmodule.exports = React;"
    },
    {
      "id": 292,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCurrentOwner.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCurrentOwner.js",
      "index": 292,
      "index2": 286,
      "size": 653,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "16:24-54"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "16:24-54"
        },
        {
          "moduleId": 329,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElement.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "14:24-54"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "14:24-54"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "15:24-54"
        },
        {
          "moduleId": 378,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/findDOMNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "15:24-54"
        },
        {
          "moduleId": 398,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "14:24-54"
        },
        {
          "moduleId": 401,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "18:24-54"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactCurrentOwner",
          "loc": "24:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;"
    },
    {
      "id": 293,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
      "index": 293,
      "index2": 351,
      "size": 4317,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMTextComponent",
          "loc": "17:28-62"
        },
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMTextComponent",
          "loc": "25:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactMount = require('./ReactMount');\n\nvar assign = require('./Object.assign');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setTextContent = require('./setTextContent');\nvar validateDOMNesting = require('./validateDOMNesting');\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n *  - When mounting text into the DOM, adjacent text nodes are merged.\n *  - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings in elements so that they can undergo\n * the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function (props) {\n  // This constructor and its argument is currently used by mocks.\n};\n\nassign(ReactDOMTextComponent.prototype, {\n\n  /**\n   * @param {ReactText} text\n   * @internal\n   */\n  construct: function (text) {\n    // TODO: This is really a ReactText (ReactNode), not a ReactElement\n    this._currentElement = text;\n    this._stringText = '' + text;\n\n    // Properties\n    this._rootNodeID = null;\n    this._mountIndex = 0;\n  },\n\n  /**\n   * Creates the markup for this text node. This node is not intended to have\n   * any features besides containing text content.\n   *\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {string} Markup for this text node.\n   * @internal\n   */\n  mountComponent: function (rootID, transaction, context) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (context[validateDOMNesting.ancestorInfoContextKey]) {\n        validateDOMNesting('span', null, context[validateDOMNesting.ancestorInfoContextKey]);\n      }\n    }\n\n    this._rootNodeID = rootID;\n    if (transaction.useCreateElement) {\n      var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n      var el = ownerDocument.createElement('span');\n      DOMPropertyOperations.setAttributeForID(el, rootID);\n      // Populate node cache\n      ReactMount.getID(el);\n      setTextContent(el, this._stringText);\n      return el;\n    } else {\n      var escapedText = escapeTextContentForBrowser(this._stringText);\n\n      if (transaction.renderToStaticMarkup) {\n        // Normally we'd wrap this in a `span` for the reasons stated above, but\n        // since this is a situation where React won't take over (static pages),\n        // we can simply return the text as it is.\n        return escapedText;\n      }\n\n      return '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' + escapedText + '</span>';\n    }\n  },\n\n  /**\n   * Updates this component by updating the text content.\n   *\n   * @param {ReactText} nextText The next text content\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  receiveComponent: function (nextText, transaction) {\n    if (nextText !== this._currentElement) {\n      this._currentElement = nextText;\n      var nextStringText = '' + nextText;\n      if (nextStringText !== this._stringText) {\n        // TODO: Save this as pending props and use performUpdateIfNecessary\n        // and/or updateComponent to do the actual update for consistency with\n        // other component types?\n        this._stringText = nextStringText;\n        var node = ReactMount.getNode(this._rootNodeID);\n        DOMChildrenOperations.updateTextContent(node, nextStringText);\n      }\n    }\n  },\n\n  unmountComponent: function () {\n    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n  }\n\n});\n\nmodule.exports = ReactDOMTextComponent;"
    },
    {
      "id": 294,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
      "index": 294,
      "index2": 301,
      "size": 4996,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMChildrenOperations",
          "loc": "15:28-62"
        },
        {
          "moduleId": 314,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./DOMChildrenOperations",
          "loc": "15:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar Danger = require('./Danger');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\nvar ReactPerf = require('./ReactPerf');\n\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nfunction insertChildAt(parentNode, childNode, index) {\n  // By exploiting arrays returning `undefined` for an undefined index, we can\n  // rely exclusively on `insertBefore(node, null)` instead of also using\n  // `appendChild(node)`. However, using `undefined` is not allowed by all\n  // browsers so we must replace it with `null`.\n\n  // fix render order error in safari\n  // IE8 will throw error when index out of list size.\n  var beforeChild = index >= parentNode.childNodes.length ? null : parentNode.childNodes.item(index);\n\n  parentNode.insertBefore(childNode, beforeChild);\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n  dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,\n\n  updateTextContent: setTextContent,\n\n  /**\n   * Updates a component's children by processing a series of updates. The\n   * update configurations are each expected to have a `parentNode` property.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @param {array<string>} markupList List of markup strings.\n   * @internal\n   */\n  processUpdates: function (updates, markupList) {\n    var update;\n    // Mapping from parent IDs to initial child orderings.\n    var initialChildren = null;\n    // List of children that will be moved or removed.\n    var updatedChildren = null;\n\n    for (var i = 0; i < updates.length; i++) {\n      update = updates[i];\n      if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {\n        var updatedIndex = update.fromIndex;\n        var updatedChild = update.parentNode.childNodes[updatedIndex];\n        var parentID = update.parentID;\n\n        !updatedChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a <tbody> when using tables, ' + 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' + 'in an <svg> parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID) : invariant(false) : undefined;\n\n        initialChildren = initialChildren || {};\n        initialChildren[parentID] = initialChildren[parentID] || [];\n        initialChildren[parentID][updatedIndex] = updatedChild;\n\n        updatedChildren = updatedChildren || [];\n        updatedChildren.push(updatedChild);\n      }\n    }\n\n    var renderedMarkup;\n    // markupList is either a list of markup or just a list of elements\n    if (markupList.length && typeof markupList[0] === 'string') {\n      renderedMarkup = Danger.dangerouslyRenderMarkup(markupList);\n    } else {\n      renderedMarkup = markupList;\n    }\n\n    // Remove updated children first so that `toIndex` is consistent.\n    if (updatedChildren) {\n      for (var j = 0; j < updatedChildren.length; j++) {\n        updatedChildren[j].parentNode.removeChild(updatedChildren[j]);\n      }\n    }\n\n    for (var k = 0; k < updates.length; k++) {\n      update = updates[k];\n      switch (update.type) {\n        case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n          insertChildAt(update.parentNode, renderedMarkup[update.markupIndex], update.toIndex);\n          break;\n        case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n          insertChildAt(update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex);\n          break;\n        case ReactMultiChildUpdateTypes.SET_MARKUP:\n          setInnerHTML(update.parentNode, update.content);\n          break;\n        case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n          setTextContent(update.parentNode, update.content);\n          break;\n        case ReactMultiChildUpdateTypes.REMOVE_NODE:\n          // Already removed by the for-loop above.\n          break;\n      }\n    }\n  }\n\n};\n\nReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', {\n  updateTextContent: 'updateTextContent'\n});\n\nmodule.exports = DOMChildrenOperations;"
    },
    {
      "id": 295,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
      "index": 295,
      "index2": 294,
      "size": 6962,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 294,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./Danger",
          "loc": "15:13-32"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar createNodesFromMarkup = require('fbjs/lib/createNodesFromMarkup');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getMarkupWrap = require('fbjs/lib/getMarkupWrap');\nvar invariant = require('fbjs/lib/invariant');\n\nvar OPEN_TAG_NAME_EXP = /^(<[^ \\/>]+)/;\nvar RESULT_INDEX_ATTR = 'data-danger-index';\n\n/**\n * Extracts the `nodeName` from a string of markup.\n *\n * NOTE: Extracting the `nodeName` does not require a regular expression match\n * because we make assumptions about React-generated markup (i.e. there are no\n * spaces surrounding the opening tag and there is at least one attribute).\n *\n * @param {string} markup String of markup.\n * @return {string} Node name of the supplied markup.\n * @see http://jsperf.com/extract-nodename\n */\nfunction getNodeName(markup) {\n  return markup.substring(1, markup.indexOf(' '));\n}\n\nvar Danger = {\n\n  /**\n   * Renders markup into an array of nodes. The markup is expected to render\n   * into a list of root nodes. Also, the length of `resultList` and\n   * `markupList` should be the same.\n   *\n   * @param {array<string>} markupList List of markup strings to render.\n   * @return {array<DOMElement>} List of rendered nodes.\n   * @internal\n   */\n  dangerouslyRenderMarkup: function (markupList) {\n    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : undefined;\n    var nodeName;\n    var markupByNodeName = {};\n    // Group markup by `nodeName` if a wrap is necessary, else by '*'.\n    for (var i = 0; i < markupList.length; i++) {\n      !markupList[i] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : undefined;\n      nodeName = getNodeName(markupList[i]);\n      nodeName = getMarkupWrap(nodeName) ? nodeName : '*';\n      markupByNodeName[nodeName] = markupByNodeName[nodeName] || [];\n      markupByNodeName[nodeName][i] = markupList[i];\n    }\n    var resultList = [];\n    var resultListAssignmentCount = 0;\n    for (nodeName in markupByNodeName) {\n      if (!markupByNodeName.hasOwnProperty(nodeName)) {\n        continue;\n      }\n      var markupListByNodeName = markupByNodeName[nodeName];\n\n      // This for-in loop skips the holes of the sparse array. The order of\n      // iteration should follow the order of assignment, which happens to match\n      // numerical index order, but we don't rely on that.\n      var resultIndex;\n      for (resultIndex in markupListByNodeName) {\n        if (markupListByNodeName.hasOwnProperty(resultIndex)) {\n          var markup = markupListByNodeName[resultIndex];\n\n          // Push the requested markup with an additional RESULT_INDEX_ATTR\n          // attribute.  If the markup does not start with a < character, it\n          // will be discarded below (with an appropriate console.error).\n          markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP,\n          // This index will be parsed back out below.\n          '$1 ' + RESULT_INDEX_ATTR + '=\"' + resultIndex + '\" ');\n        }\n      }\n\n      // Render each group of markup with similar wrapping `nodeName`.\n      var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with <script> tags.\n      );\n\n      for (var j = 0; j < renderNodes.length; ++j) {\n        var renderNode = renderNodes[j];\n        if (renderNode.hasAttribute && renderNode.hasAttribute(RESULT_INDEX_ATTR)) {\n\n          resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR);\n          renderNode.removeAttribute(RESULT_INDEX_ATTR);\n\n          !!resultList.hasOwnProperty(resultIndex) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Assigning to an already-occupied result index.') : invariant(false) : undefined;\n\n          resultList[resultIndex] = renderNode;\n\n          // This should match resultList.length and markupList.length when\n          // we're done.\n          resultListAssignmentCount += 1;\n        } else if (process.env.NODE_ENV !== 'production') {\n          console.error('Danger: Discarding unexpected node:', renderNode);\n        }\n      }\n    }\n\n    // Although resultList was populated out of order, it should now be a dense\n    // array.\n    !(resultListAssignmentCount === resultList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Did not assign to every index of resultList.') : invariant(false) : undefined;\n\n    !(resultList.length === markupList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Expected markup to render %s nodes, but rendered %s.', markupList.length, resultList.length) : invariant(false) : undefined;\n\n    return resultList;\n  },\n\n  /**\n   * Replaces a node with a string of markup at its current position within its\n   * parent. The markup must render into a single root node.\n   *\n   * @param {DOMElement} oldChild Child node to replace.\n   * @param {string} markup Markup to render in place of the child node.\n   * @internal\n   */\n  dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {\n    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 'worker thread. Make sure `window` and `document` are available ' + 'globally before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n    !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(false) : undefined;\n    !(oldChild.tagName.toLowerCase() !== 'html') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' + '<html> node. This is because browser quirks make this unreliable ' + 'and/or slow. If you want to render to the root you must use ' + 'server rendering. See ReactDOMServer.renderToString().') : invariant(false) : undefined;\n\n    var newChild;\n    if (typeof markup === 'string') {\n      newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n    } else {\n      newChild = markup;\n    }\n    oldChild.parentNode.replaceChild(newChild, oldChild);\n  }\n\n};\n\nmodule.exports = Danger;"
    },
    {
      "id": 296,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/ExecutionEnvironment.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/ExecutionEnvironment.js",
      "index": 296,
      "index2": 287,
      "size": 1094,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "59:29-69"
        },
        {
          "moduleId": 295,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "15:27-67"
        },
        {
          "moduleId": 297,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "17:27-60"
        },
        {
          "moduleId": 301,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/getMarkupWrap.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getMarkupWrap.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getMarkupWrap.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "16:27-60"
        },
        {
          "moduleId": 306,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/setInnerHTML.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setInnerHTML.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setInnerHTML.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 307,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/setTextContent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 327,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/isEventSupported.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/isEventSupported.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/isEventSupported.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "19:27-67"
        },
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "17:27-67"
        },
        {
          "moduleId": 362,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getTextContentAccessor.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getTextContentAccessor.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getTextContentAccessor.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "17:27-67"
        },
        {
          "moduleId": 376,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/HTMLDOMPropertyConfig.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/HTMLDOMPropertyConfig.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/HTMLDOMPropertyConfig.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "15:27-67"
        },
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 414,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "14:27-67"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/ExecutionEnvironment",
          "loc": "16:27-67"
        },
        {
          "moduleId": 432,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/performance.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/performance.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/performance.js",
          "type": "cjs require",
          "userRequest": "./ExecutionEnvironment",
          "loc": "15:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;"
    },
    {
      "id": 297,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createNodesFromMarkup.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
      "index": 297,
      "index2": 292,
      "size": 2712,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 295,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/createNodesFromMarkup",
          "loc": "17:28-69"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createNodesFromMarkup\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar createArrayFromMixed = require('./createArrayFromMixed');\nvar getMarkupWrap = require('./getMarkupWrap');\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n  var nodeNameMatch = markup.match(nodeNamePattern);\n  return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n  var node = dummyNode;\n  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined;\n  var nodeName = getNodeName(markup);\n\n  var wrap = nodeName && getMarkupWrap(nodeName);\n  if (wrap) {\n    node.innerHTML = wrap[1] + markup + wrap[2];\n\n    var wrapDepth = wrap[0];\n    while (wrapDepth--) {\n      node = node.lastChild;\n    }\n  } else {\n    node.innerHTML = markup;\n  }\n\n  var scripts = node.getElementsByTagName('script');\n  if (scripts.length) {\n    !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined;\n    createArrayFromMixed(scripts).forEach(handleScript);\n  }\n\n  var nodes = createArrayFromMixed(node.childNodes);\n  while (node.lastChild) {\n    node.removeChild(node.lastChild);\n  }\n  return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;"
    },
    {
      "id": 298,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createArrayFromMixed.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createArrayFromMixed.js",
      "index": 298,
      "index2": 290,
      "size": 2358,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createNodesFromMarkup.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 297,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./createArrayFromMixed",
          "loc": "19:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createArrayFromMixed\n * @typechecks\n */\n\n'use strict';\n\nvar toArray = require('./toArray');\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n *   A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n *   Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n  return(\n    // not null/false\n    !!obj && (\n    // arrays are objects, NodeLists are functions in Safari\n    typeof obj == 'object' || typeof obj == 'function') &&\n    // quacks like an array\n    'length' in obj &&\n    // not window\n    !('setInterval' in obj) &&\n    // no DOM node should be considered an array-like\n    // a 'select' element has 'length' and 'item' properties on IE8\n    typeof obj.nodeType != 'number' && (\n    // a real array\n    Array.isArray(obj) ||\n    // arguments\n    'callee' in obj ||\n    // HTMLCollection/NodeList\n    'item' in obj)\n  );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n *   var createArrayFromMixed = require('createArrayFromMixed');\n *\n *   function takesOneOrMoreThings(things) {\n *     things = createArrayFromMixed(things);\n *     ...\n *   }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n  if (!hasArrayNature(obj)) {\n    return [obj];\n  } else if (Array.isArray(obj)) {\n    return obj.slice();\n  } else {\n    return toArray(obj);\n  }\n}\n\nmodule.exports = createArrayFromMixed;"
    },
    {
      "id": 299,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/toArray.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/toArray.js",
      "index": 299,
      "index2": 289,
      "size": 1981,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createArrayFromMixed.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 298,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createArrayFromMixed.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createArrayFromMixed.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createArrayFromMixed.js",
          "type": "cjs require",
          "userRequest": "./toArray",
          "loc": "15:14-34"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule toArray\n * @typechecks\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n  var length = obj.length;\n\n  // Some browse builtin objects can report typeof 'function' (e.g. NodeList in\n  // old versions of Safari).\n  !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : undefined;\n\n  !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : undefined;\n\n  !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : undefined;\n\n  // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n  // without method will throw during the slice call and skip straight to the\n  // fallback.\n  if (obj.hasOwnProperty) {\n    try {\n      return Array.prototype.slice.call(obj);\n    } catch (e) {\n      // IE < 9 does not support Array#slice on collections objects\n    }\n  }\n\n  // Fall back to copying key by key. This assumes all keys have a value,\n  // so will not preserve sparsely populated inputs.\n  var ret = Array(length);\n  for (var ii = 0; ii < length; ii++) {\n    ret[ii] = obj[ii];\n  }\n  return ret;\n}\n\nmodule.exports = toArray;"
    },
    {
      "id": 300,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/invariant.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/invariant.js",
      "index": 300,
      "index2": 288,
      "size": 1515,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInstanceHandles.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 294,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "21:16-45"
        },
        {
          "moduleId": 295,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 297,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "21:16-38"
        },
        {
          "moduleId": 299,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/toArray.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/toArray.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/toArray.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "15:16-38"
        },
        {
          "moduleId": 301,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/getMarkupWrap.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getMarkupWrap.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getMarkupWrap.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "18:16-38"
        },
        {
          "moduleId": 304,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/keyMirror.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/keyMirror.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/keyMirror.js",
          "type": "cjs require",
          "userRequest": "./invariant",
          "loc": "15:16-38"
        },
        {
          "moduleId": 310,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMProperty.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMProperty.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMProperty.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        },
        {
          "moduleId": 314,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "32:16-45"
        },
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 319,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginRegistry.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginRegistry.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginRegistry.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        },
        {
          "moduleId": 320,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "17:16-45"
        },
        {
          "moduleId": 322,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/accumulateInto.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/accumulateInto.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/accumulateInto.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 332,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInstanceHandles.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInstanceHandles.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInstanceHandles.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "17:16-45"
        },
        {
          "moduleId": 339,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactOwner.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactOwner.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactOwner.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "21:16-45"
        },
        {
          "moduleId": 342,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CallbackQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "17:16-45"
        },
        {
          "moduleId": 343,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/PooledClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/PooledClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/PooledClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 344,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Transaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Transaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Transaction.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 349,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "26:16-45"
        },
        {
          "moduleId": 351,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponentEnvironment.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentEnvironment.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentEnvironment.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "14:16-45"
        },
        {
          "moduleId": 356,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactNativeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNativeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNativeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        },
        {
          "moduleId": 378,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/findDOMNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "19:16-45"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "37:16-45"
        },
        {
          "moduleId": 392,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "20:16-45"
        },
        {
          "moduleId": 393,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/LinkedValueUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "18:16-45"
        },
        {
          "moduleId": 398,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "19:16-45"
        },
        {
          "moduleId": 400,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "19:16-45"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "22:16-45"
        },
        {
          "moduleId": 410,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "18:16-45"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "30:16-45"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "24:16-45"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "28:16-45"
        },
        {
          "moduleId": 443,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/onlyChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/onlyChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/onlyChild.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/invariant",
          "loc": "15:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\nmodule.exports = invariant;"
    },
    {
      "id": 301,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/getMarkupWrap.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getMarkupWrap.js",
      "index": 301,
      "index2": 291,
      "size": 3064,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 295,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getMarkupWrap",
          "loc": "19:20-53"
        },
        {
          "moduleId": 297,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/createNodesFromMarkup.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/createNodesFromMarkup.js",
          "type": "cjs require",
          "userRequest": "./getMarkupWrap",
          "loc": "20:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getMarkupWrap\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar invariant = require('./invariant');\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n  '*': [1, '?<div>', '</div>'],\n\n  'area': [1, '<map>', '</map>'],\n  'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n  'legend': [1, '<fieldset>', '</fieldset>'],\n  'param': [1, '<object>', '</object>'],\n  'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n  'optgroup': selectWrap,\n  'option': selectWrap,\n\n  'caption': tableWrap,\n  'colgroup': tableWrap,\n  'tbody': tableWrap,\n  'tfoot': tableWrap,\n  'thead': tableWrap,\n\n  'td': trWrap,\n  'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n  markupWrap[nodeName] = svgWrap;\n  shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : undefined;\n  if (!markupWrap.hasOwnProperty(nodeName)) {\n    nodeName = '*';\n  }\n  if (!shouldWrap.hasOwnProperty(nodeName)) {\n    if (nodeName === '*') {\n      dummyNode.innerHTML = '<link />';\n    } else {\n      dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n    }\n    shouldWrap[nodeName] = !dummyNode.firstChild;\n  }\n  return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;"
    },
    {
      "id": 302,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/emptyFunction.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/emptyFunction.js",
      "index": 302,
      "index2": 293,
      "size": 1086,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/warning.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 295,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Danger.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Danger.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "18:20-53"
        },
        {
          "moduleId": 312,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/warning.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/warning.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/warning.js",
          "type": "cjs require",
          "userRequest": "./emptyFunction",
          "loc": "14:20-46"
        },
        {
          "moduleId": 357,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/validateDOMNesting.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "15:20-53"
        },
        {
          "moduleId": 364,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "18:20-53"
        },
        {
          "moduleId": 379,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "18:20-53"
        },
        {
          "moduleId": 394,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypes.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "17:20-53"
        },
        {
          "moduleId": 397,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "17:20-53"
        },
        {
          "moduleId": 406,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/EventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/EventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/EventListener.js",
          "type": "cjs require",
          "userRequest": "./emptyFunction",
          "loc": "22:20-46"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "28:20-53"
        },
        {
          "moduleId": 438,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyFunction",
          "loc": "20:20-53"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\n\"use strict\";\n\nfunction makeEmptyFunction(arg) {\n  return function () {\n    return arg;\n  };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n  return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n  return arg;\n};\n\nmodule.exports = emptyFunction;"
    },
    {
      "id": 303,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChildUpdateTypes.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChildUpdateTypes.js",
      "index": 303,
      "index2": 296,
      "size": 861,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 294,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactMultiChildUpdateTypes",
          "loc": "16:33-72"
        },
        {
          "moduleId": 401,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactMultiChildUpdateTypes",
          "loc": "16:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n  INSERT_MARKUP: null,\n  MOVE_EXISTING: null,\n  REMOVE_NODE: null,\n  SET_MARKUP: null,\n  TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;"
    },
    {
      "id": 304,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/keyMirror.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/keyMirror.js",
      "index": 304,
      "index2": 295,
      "size": 1271,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 303,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChildUpdateTypes.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChildUpdateTypes.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChildUpdateTypes.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "14:16-45"
        },
        {
          "moduleId": 317,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventConstants.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventConstants.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventConstants.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "14:16-45"
        },
        {
          "moduleId": 352,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypeLocations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypeLocations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypeLocations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "14:16-45"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyMirror",
          "loc": "23:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyMirror\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('./invariant');\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n *   var COLORS = keyMirror({blue: null, red: null});\n *   var myColor = COLORS.blue;\n *   var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n *   Input:  {key1: val1, key2: val2}\n *   Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function (obj) {\n  var ret = {};\n  var key;\n  !(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined;\n  for (key in obj) {\n    if (!obj.hasOwnProperty(key)) {\n      continue;\n    }\n    ret[key] = key;\n  }\n  return ret;\n};\n\nmodule.exports = keyMirror;"
    },
    {
      "id": 305,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPerf.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPerf.js",
      "index": 305,
      "index2": 297,
      "size": 2510,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "21:16-38"
        },
        {
          "moduleId": 294,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "17:16-38"
        },
        {
          "moduleId": 309,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "16:16-38"
        },
        {
          "moduleId": 314,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "18:16-38"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "23:16-38"
        },
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "19:16-38"
        },
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "16:16-38"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "18:16-38"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "31:16-38"
        },
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "17:16-38"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "21:16-38"
        },
        {
          "moduleId": 429,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./ReactPerf",
          "loc": "18:16-38"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPerf\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * ReactPerf is a general AOP system designed to measure performance. This\n * module only has the hooks: see ReactDefaultPerf for the analysis tool.\n */\nvar ReactPerf = {\n  /**\n   * Boolean to enable/disable measurement. Set to false by default to prevent\n   * accidental logging and perf loss.\n   */\n  enableMeasure: false,\n\n  /**\n   * Holds onto the measure function in use. By default, don't measure\n   * anything, but we'll override this if we inject a measure function.\n   */\n  storedMeasure: _noMeasure,\n\n  /**\n   * @param {object} object\n   * @param {string} objectName\n   * @param {object<string>} methodNames\n   */\n  measureMethods: function (object, objectName, methodNames) {\n    if (process.env.NODE_ENV !== 'production') {\n      for (var key in methodNames) {\n        if (!methodNames.hasOwnProperty(key)) {\n          continue;\n        }\n        object[key] = ReactPerf.measure(objectName, methodNames[key], object[key]);\n      }\n    }\n  },\n\n  /**\n   * Use this to wrap methods you want to measure. Zero overhead in production.\n   *\n   * @param {string} objName\n   * @param {string} fnName\n   * @param {function} func\n   * @return {function}\n   */\n  measure: function (objName, fnName, func) {\n    if (process.env.NODE_ENV !== 'production') {\n      var measuredFunc = null;\n      var wrapper = function () {\n        if (ReactPerf.enableMeasure) {\n          if (!measuredFunc) {\n            measuredFunc = ReactPerf.storedMeasure(objName, fnName, func);\n          }\n          return measuredFunc.apply(this, arguments);\n        }\n        return func.apply(this, arguments);\n      };\n      wrapper.displayName = objName + '_' + fnName;\n      return wrapper;\n    }\n    return func;\n  },\n\n  injection: {\n    /**\n     * @param {function} measure\n     */\n    injectMeasure: function (measure) {\n      ReactPerf.storedMeasure = measure;\n    }\n  }\n};\n\n/**\n * Simply passes through the measured function, without measuring it.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\nfunction _noMeasure(objName, fnName, func) {\n  return func;\n}\n\nmodule.exports = ReactPerf;"
    },
    {
      "id": 306,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/setInnerHTML.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setInnerHTML.js",
      "index": 306,
      "index2": 298,
      "size": 3348,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 294,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "19:19-44"
        },
        {
          "moduleId": 307,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/setTextContent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "16:19-44"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "33:19-44"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./setInnerHTML",
          "loc": "40:19-44"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n/* globals MSApp */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = function (node, html) {\n  node.innerHTML = html;\n};\n\n// Win8 apps: Allow all html to be inserted\nif (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n  setInnerHTML = function (node, html) {\n    MSApp.execUnsafeLocalFunction(function () {\n      node.innerHTML = html;\n    });\n  };\n}\n\nif (ExecutionEnvironment.canUseDOM) {\n  // IE8: When updating a just created node with innerHTML only leading\n  // whitespace is removed. When updating an existing node with innerHTML\n  // whitespace in root TextNodes is also collapsed.\n  // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n  // Feature detection; only IE8 is known to behave improperly like this.\n  var testElement = document.createElement('div');\n  testElement.innerHTML = ' ';\n  if (testElement.innerHTML === '') {\n    setInnerHTML = function (node, html) {\n      // Magic theory: IE8 supposedly differentiates between added and updated\n      // nodes when processing innerHTML, innerHTML on updated nodes suffers\n      // from worse whitespace behavior. Re-adding a node like this triggers\n      // the initial and more favorable whitespace behavior.\n      // TODO: What to do on a detached node?\n      if (node.parentNode) {\n        node.parentNode.replaceChild(node, node);\n      }\n\n      // We also implement a workaround for non-visible tags disappearing into\n      // thin air on IE8, this only happens if there is no visible text\n      // in-front of the non-visible tags. Piggyback on the whitespace fix\n      // and simply check if any non-visible tags appear in the source.\n      if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n        // Recover leading whitespace by temporarily prepending any character.\n        // \\uFEFF has the potential advantage of being zero-width/invisible.\n        // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n        // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n        // the actual Unicode character (by Babel, for example).\n        // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n        node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n        // deleteData leaves an empty `TextNode` which offsets the index of all\n        // children. Definitely want to avoid this.\n        var textNode = node.firstChild;\n        if (textNode.data.length === 1) {\n          node.removeChild(textNode);\n        } else {\n          textNode.deleteData(0, 1);\n        }\n      } else {\n        node.innerHTML = html;\n      }\n    };\n  }\n}\n\nmodule.exports = setInnerHTML;"
    },
    {
      "id": 307,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/setTextContent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
      "index": 307,
      "index2": 300,
      "size": 1200,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./setTextContent",
          "loc": "22:21-48"
        },
        {
          "moduleId": 294,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMChildrenOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMChildrenOperations.js",
          "type": "cjs require",
          "userRequest": "./setTextContent",
          "loc": "20:21-48"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./setTextContent",
          "loc": "41:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar setInnerHTML = require('./setInnerHTML');\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n  node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n  if (!('textContent' in document.documentElement)) {\n    setTextContent = function (node, text) {\n      setInnerHTML(node, escapeTextContentForBrowser(text));\n    };\n  }\n}\n\nmodule.exports = setTextContent;"
    },
    {
      "id": 308,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/escapeTextContentForBrowser.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/escapeTextContentForBrowser.js",
      "index": 308,
      "index2": 299,
      "size": 849,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "21:34-74"
        },
        {
          "moduleId": 307,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/setTextContent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/setTextContent.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "15:34-74"
        },
        {
          "moduleId": 311,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/quoteAttributeValueForBrowser.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/quoteAttributeValueForBrowser.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/quoteAttributeValueForBrowser.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "14:34-74"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./escapeTextContentForBrowser",
          "loc": "36:34-74"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\nvar ESCAPE_LOOKUP = {\n  '&': '&amp;',\n  '>': '&gt;',\n  '<': '&lt;',\n  '\"': '&quot;',\n  '\\'': '&#x27;'\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\nfunction escaper(match) {\n  return ESCAPE_LOOKUP[match];\n}\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n  return ('' + text).replace(ESCAPE_REGEX, escaper);\n}\n\nmodule.exports = escapeTextContentForBrowser;"
    },
    {
      "id": 309,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMPropertyOperations.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
      "index": 309,
      "index2": 305,
      "size": 7880,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMPropertyOperations",
          "loc": "16:28-62"
        },
        {
          "moduleId": 314,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./DOMPropertyOperations",
          "loc": "16:28-62"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMPropertyOperations",
          "loc": "20:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactPerf = require('./ReactPerf');\n\nvar quoteAttributeValueForBrowser = require('./quoteAttributeValueForBrowser');\nvar warning = require('fbjs/lib/warning');\n\n// Simplified subset\nvar VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\\w\\.\\-]*$/;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n    return true;\n  }\n  if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n    return false;\n  }\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n  illegalAttributeNameCache[attributeName] = true;\n  process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined;\n  return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n  return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  var reactProps = {\n    children: true,\n    dangerouslySetInnerHTML: true,\n    key: true,\n    ref: true\n  };\n  var warnedProperties = {};\n\n  var warnUnknownProperty = function (name) {\n    if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n      return;\n    }\n\n    warnedProperties[name] = true;\n    var lowerCasedName = name.toLowerCase();\n\n    // data-* attributes should be lowercase; suggest the lowercase version\n    var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n    // For now, only warn when we have a suggested correction. This prevents\n    // logging too much when using transferPropsTo.\n    process.env.NODE_ENV !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName) : undefined;\n  };\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n  /**\n   * Creates markup for the ID property.\n   *\n   * @param {string} id Unescaped ID.\n   * @return {string} Markup string.\n   */\n  createMarkupForID: function (id) {\n    return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n  },\n\n  setAttributeForID: function (node, id) {\n    node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n  },\n\n  /**\n   * Creates markup for a property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {?string} Markup string, or null if the property was invalid.\n   */\n  createMarkupForProperty: function (name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      if (shouldIgnoreValue(propertyInfo, value)) {\n        return '';\n      }\n      var attributeName = propertyInfo.attributeName;\n      if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n        return attributeName + '=\"\"';\n      }\n      return attributeName + '=' + quoteAttributeValueForBrowser(value);\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      if (value == null) {\n        return '';\n      }\n      return name + '=' + quoteAttributeValueForBrowser(value);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n    return null;\n  },\n\n  /**\n   * Creates markup for a custom property.\n   *\n   * @param {string} name\n   * @param {*} value\n   * @return {string} Markup string, or empty string if the property was invalid.\n   */\n  createMarkupForCustomAttribute: function (name, value) {\n    if (!isAttributeNameSafe(name) || value == null) {\n      return '';\n    }\n    return name + '=' + quoteAttributeValueForBrowser(value);\n  },\n\n  /**\n   * Sets the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   * @param {*} value\n   */\n  setValueForProperty: function (node, name, value) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, value);\n      } else if (shouldIgnoreValue(propertyInfo, value)) {\n        this.deleteValueForProperty(node, name);\n      } else if (propertyInfo.mustUseAttribute) {\n        var attributeName = propertyInfo.attributeName;\n        var namespace = propertyInfo.attributeNamespace;\n        // `setAttribute` with objects becomes only `[object]` in IE8/9,\n        // ('' + value) makes it output the correct toString()-value.\n        if (namespace) {\n          node.setAttributeNS(namespace, attributeName, '' + value);\n        } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n          node.setAttribute(attributeName, '');\n        } else {\n          node.setAttribute(attributeName, '' + value);\n        }\n      } else {\n        var propName = propertyInfo.propertyName;\n        // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the\n        // property type before comparing; only `value` does and is string.\n        if (!propertyInfo.hasSideEffects || '' + node[propName] !== '' + value) {\n          // Contrary to `setAttribute`, object properties are properly\n          // `toString`ed by IE8/9.\n          node[propName] = value;\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      DOMPropertyOperations.setValueForAttribute(node, name, value);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n  },\n\n  setValueForAttribute: function (node, name, value) {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n    if (value == null) {\n      node.removeAttribute(name);\n    } else {\n      node.setAttribute(name, '' + value);\n    }\n  },\n\n  /**\n   * Deletes the value for a property on a node.\n   *\n   * @param {DOMElement} node\n   * @param {string} name\n   */\n  deleteValueForProperty: function (node, name) {\n    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n    if (propertyInfo) {\n      var mutationMethod = propertyInfo.mutationMethod;\n      if (mutationMethod) {\n        mutationMethod(node, undefined);\n      } else if (propertyInfo.mustUseAttribute) {\n        node.removeAttribute(propertyInfo.attributeName);\n      } else {\n        var propName = propertyInfo.propertyName;\n        var defaultValue = DOMProperty.getDefaultValueForProperty(node.nodeName, propName);\n        if (!propertyInfo.hasSideEffects || '' + node[propName] !== defaultValue) {\n          node[propName] = defaultValue;\n        }\n      }\n    } else if (DOMProperty.isCustomAttribute(name)) {\n      node.removeAttribute(name);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warnUnknownProperty(name);\n    }\n  }\n\n};\n\nReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', {\n  setValueForProperty: 'setValueForProperty',\n  setValueForAttribute: 'setValueForAttribute',\n  deleteValueForProperty: 'deleteValueForProperty'\n});\n\nmodule.exports = DOMPropertyOperations;"
    },
    {
      "id": 310,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMProperty.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMProperty.js",
      "index": 310,
      "index2": 302,
      "size": 9571,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 309,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "15:18-42"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 376,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/HTMLDOMPropertyConfig.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/HTMLDOMPropertyConfig.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/HTMLDOMPropertyConfig.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "19:18-42"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 428,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SVGDOMPropertyConfig.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SVGDOMPropertyConfig.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SVGDOMPropertyConfig.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "14:18-42"
        },
        {
          "moduleId": 429,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./DOMProperty",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nfunction checkMask(value, bitmask) {\n  return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n  /**\n   * Mapping from normalized, camelcased property names to a configuration that\n   * specifies how the associated DOM property should be accessed or rendered.\n   */\n  MUST_USE_ATTRIBUTE: 0x1,\n  MUST_USE_PROPERTY: 0x2,\n  HAS_SIDE_EFFECTS: 0x4,\n  HAS_BOOLEAN_VALUE: 0x8,\n  HAS_NUMERIC_VALUE: 0x10,\n  HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10,\n  HAS_OVERLOADED_BOOLEAN_VALUE: 0x40,\n\n  /**\n   * Inject some specialized knowledge about the DOM. This takes a config object\n   * with the following properties:\n   *\n   * isCustomAttribute: function that given an attribute name will return true\n   * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n   * attributes where it's impossible to enumerate all of the possible\n   * attribute names,\n   *\n   * Properties: object mapping DOM property name to one of the\n   * DOMPropertyInjection constants or null. If your attribute isn't in here,\n   * it won't get written to the DOM.\n   *\n   * DOMAttributeNames: object mapping React attribute name to the DOM\n   * attribute name. Attribute names not specified use the **lowercase**\n   * normalized name.\n   *\n   * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n   * attribute namespace URL. (Attribute names not specified use no namespace.)\n   *\n   * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n   * Property names not specified use the normalized name.\n   *\n   * DOMMutationMethods: Properties that require special mutation methods. If\n   * `value` is undefined, the mutation method should unset the property.\n   *\n   * @param {object} domPropertyConfig the config as described above.\n   */\n  injectDOMPropertyConfig: function (domPropertyConfig) {\n    var Injection = DOMPropertyInjection;\n    var Properties = domPropertyConfig.Properties || {};\n    var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n    var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n    var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n    var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n    if (domPropertyConfig.isCustomAttribute) {\n      DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n    }\n\n    for (var propName in Properties) {\n      !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property ' + '\\'%s\\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : undefined;\n\n      var lowerCased = propName.toLowerCase();\n      var propConfig = Properties[propName];\n\n      var propertyInfo = {\n        attributeName: lowerCased,\n        attributeNamespace: null,\n        propertyName: propName,\n        mutationMethod: null,\n\n        mustUseAttribute: checkMask(propConfig, Injection.MUST_USE_ATTRIBUTE),\n        mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n        hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS),\n        hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n        hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n        hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n        hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n      };\n\n      !(!propertyInfo.mustUseAttribute || !propertyInfo.mustUseProperty) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Cannot require using both attribute and property: %s', propName) : invariant(false) : undefined;\n      !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : undefined;\n      !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : undefined;\n\n      if (process.env.NODE_ENV !== 'production') {\n        DOMProperty.getPossibleStandardName[lowerCased] = propName;\n      }\n\n      if (DOMAttributeNames.hasOwnProperty(propName)) {\n        var attributeName = DOMAttributeNames[propName];\n        propertyInfo.attributeName = attributeName;\n        if (process.env.NODE_ENV !== 'production') {\n          DOMProperty.getPossibleStandardName[attributeName] = propName;\n        }\n      }\n\n      if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n        propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n      }\n\n      if (DOMPropertyNames.hasOwnProperty(propName)) {\n        propertyInfo.propertyName = DOMPropertyNames[propName];\n      }\n\n      if (DOMMutationMethods.hasOwnProperty(propName)) {\n        propertyInfo.mutationMethod = DOMMutationMethods[propName];\n      }\n\n      DOMProperty.properties[propName] = propertyInfo;\n    }\n  }\n};\nvar defaultValueCache = {};\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n *   > DOMProperty.isValid['id']\n *   true\n *   > DOMProperty.isValid['foobar']\n *   undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n  ID_ATTRIBUTE_NAME: 'data-reactid',\n\n  /**\n   * Map from property \"standard name\" to an object with info about how to set\n   * the property in the DOM. Each object contains:\n   *\n   * attributeName:\n   *   Used when rendering markup or with `*Attribute()`.\n   * attributeNamespace\n   * propertyName:\n   *   Used on DOM node instances. (This includes properties that mutate due to\n   *   external factors.)\n   * mutationMethod:\n   *   If non-null, used instead of the property or `setAttribute()` after\n   *   initial render.\n   * mustUseAttribute:\n   *   Whether the property must be accessed and mutated using `*Attribute()`.\n   *   (This includes anything that fails `<propName> in <element>`.)\n   * mustUseProperty:\n   *   Whether the property must be accessed and mutated as an object property.\n   * hasSideEffects:\n   *   Whether or not setting a value causes side effects such as triggering\n   *   resources to be loaded or text selection changes. If true, we read from\n   *   the DOM before updating to ensure that the value is only set if it has\n   *   changed.\n   * hasBooleanValue:\n   *   Whether the property should be removed when set to a falsey value.\n   * hasNumericValue:\n   *   Whether the property must be numeric or parse as a numeric and should be\n   *   removed when set to a falsey value.\n   * hasPositiveNumericValue:\n   *   Whether the property must be positive numeric or parse as a positive\n   *   numeric and should be removed when set to a falsey value.\n   * hasOverloadedBooleanValue:\n   *   Whether the property can be used as a flag as well as with a value.\n   *   Removed when strictly equal to false; present without a value when\n   *   strictly equal to true; present with a value otherwise.\n   */\n  properties: {},\n\n  /**\n   * Mapping from lowercase property names to the properly cased version, used\n   * to warn in the case of missing properties. Available only in __DEV__.\n   * @type {Object}\n   */\n  getPossibleStandardName: process.env.NODE_ENV !== 'production' ? {} : null,\n\n  /**\n   * All of the isCustomAttribute() functions that have been injected.\n   */\n  _isCustomAttributeFunctions: [],\n\n  /**\n   * Checks whether a property name is a custom attribute.\n   * @method\n   */\n  isCustomAttribute: function (attributeName) {\n    for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n      var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n      if (isCustomAttributeFn(attributeName)) {\n        return true;\n      }\n    }\n    return false;\n  },\n\n  /**\n   * Returns the default property value for a DOM property (i.e., not an\n   * attribute). Most default values are '' or false, but not all. Worse yet,\n   * some (in particular, `type`) vary depending on the type of element.\n   *\n   * TODO: Is it better to grab all the possible properties when creating an\n   * element to avoid having to create the same element twice?\n   */\n  getDefaultValueForProperty: function (nodeName, prop) {\n    var nodeDefaults = defaultValueCache[nodeName];\n    var testElement;\n    if (!nodeDefaults) {\n      defaultValueCache[nodeName] = nodeDefaults = {};\n    }\n    if (!(prop in nodeDefaults)) {\n      testElement = document.createElement(nodeName);\n      nodeDefaults[prop] = testElement[prop];\n    }\n    return nodeDefaults[prop];\n  },\n\n  injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;"
    },
    {
      "id": 311,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/quoteAttributeValueForBrowser.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/quoteAttributeValueForBrowser.js",
      "index": 311,
      "index2": 303,
      "size": 746,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 309,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./quoteAttributeValueForBrowser",
          "loc": "18:36-78"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n  return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;"
    },
    {
      "id": 312,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/warning.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/warning.js",
      "index": 312,
      "index2": 304,
      "size": 1771,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "28:14-41"
        },
        {
          "moduleId": 309,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DOMPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DOMPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "36:14-41"
        },
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "21:14-41"
        },
        {
          "moduleId": 320,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "18:14-41"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "21:14-41"
        },
        {
          "moduleId": 349,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "21:14-41"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "28:14-41"
        },
        {
          "moduleId": 357,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/validateDOMNesting.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "16:14-41"
        },
        {
          "moduleId": 360,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "17:14-41"
        },
        {
          "moduleId": 364,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 377,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserComponentMixin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "17:14-41"
        },
        {
          "moduleId": 378,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/findDOMNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "44:14-41"
        },
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "23:14-41"
        },
        {
          "moduleId": 393,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/LinkedValueUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 396,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMOption.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "18:14-41"
        },
        {
          "moduleId": 398,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 399,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelect.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 400,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 402,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildReconciler.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "20:14-41"
        },
        {
          "moduleId": 403,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/flattenChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/flattenChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/flattenChildren.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "15:14-41"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "25:14-41"
        },
        {
          "moduleId": 410,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "19:14-41"
        },
        {
          "moduleId": 411,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactNoopUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNoopUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNoopUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "14:14-41"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "29:14-41"
        },
        {
          "moduleId": 444,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/deprecated.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/deprecated.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/deprecated.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/warning",
          "loc": "15:14-41"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  warning = function (condition, format) {\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n\n    if (format.indexOf('Failed Composite propType: ') === 0) {\n      return; // Ignore CompositeComponent proptype check.\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // --- Welcome to debugging React ---\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch (x) {}\n    }\n  };\n}\n\nmodule.exports = warning;"
    },
    {
      "id": 313,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentBrowserEnvironment.js",
      "index": 313,
      "index2": 350,
      "size": 1258,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentBrowserEnvironment",
          "loc": "17:39-84"
        },
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentBrowserEnvironment",
          "loc": "22:39-84"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentBrowserEnvironment",
          "loc": "23:39-84"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar ReactMount = require('./ReactMount');\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n  processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n  replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID,\n\n  /**\n   * If a particular environment requires that some resources be cleaned up,\n   * specify this in the injected Mixin. In the DOM, we would likely want to\n   * purge any cached node ID lookups.\n   *\n   * @private\n   */\n  unmountIDFromEnvironment: function (rootNodeID) {\n    ReactMount.purgeID(rootNodeID);\n  }\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;"
    },
    {
      "id": 314,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMIDOperations.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
      "index": 314,
      "index2": 349,
      "size": 3294,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 313,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentBrowserEnvironment.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentBrowserEnvironment.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMIDOperations",
          "loc": "14:27-60"
        },
        {
          "moduleId": 392,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMIDOperations",
          "loc": "14:27-60"
        },
        {
          "moduleId": 400,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMIDOperations",
          "loc": "15:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = require('./DOMChildrenOperations');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Errors for properties that should not be updated with `updatePropertyByID()`.\n *\n * @type {object}\n * @private\n */\nvar INVALID_PROPERTY_ERRORS = {\n  dangerouslySetInnerHTML: '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.',\n  style: '`style` must be set using `updateStylesByID()`.'\n};\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n  /**\n   * Updates a DOM node with new property values. This should only be used to\n   * update DOM properties in `DOMProperty`.\n   *\n   * @param {string} id ID of the node to update.\n   * @param {string} name A valid property name, see `DOMProperty`.\n   * @param {*} value New value of the property.\n   * @internal\n   */\n  updatePropertyByID: function (id, name, value) {\n    var node = ReactMount.getNode(id);\n    !!INVALID_PROPERTY_ERRORS.hasOwnProperty(name) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updatePropertyByID(...): %s', INVALID_PROPERTY_ERRORS[name]) : invariant(false) : undefined;\n\n    // If we're updating to null or undefined, we should remove the property\n    // from the DOM node instead of inadvertantly setting to a string. This\n    // brings us in line with the same behavior we have on initial render.\n    if (value != null) {\n      DOMPropertyOperations.setValueForProperty(node, name, value);\n    } else {\n      DOMPropertyOperations.deleteValueForProperty(node, name);\n    }\n  },\n\n  /**\n   * Replaces a DOM node that exists in the document with markup.\n   *\n   * @param {string} id ID of child to be replaced.\n   * @param {string} markup Dangerous markup to inject in place of child.\n   * @internal\n   * @see {Danger.dangerouslyReplaceNodeWithMarkup}\n   */\n  dangerouslyReplaceNodeWithMarkupByID: function (id, markup) {\n    var node = ReactMount.getNode(id);\n    DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup);\n  },\n\n  /**\n   * Updates a component's children by processing a series of updates.\n   *\n   * @param {array<object>} updates List of update configurations.\n   * @param {array<string>} markup List of markup strings.\n   * @internal\n   */\n  dangerouslyProcessChildrenUpdates: function (updates, markup) {\n    for (var i = 0; i < updates.length; i++) {\n      updates[i].parentNode = ReactMount.getNode(updates[i].parentID);\n    }\n    DOMChildrenOperations.processUpdates(updates, markup);\n  }\n};\n\nReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {\n  dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID',\n  dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates'\n});\n\nmodule.exports = ReactDOMIDOperations;"
    },
    {
      "id": 315,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
      "index": 315,
      "index2": 348,
      "size": 36774,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "20:17-40"
        },
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "18:17-40"
        },
        {
          "moduleId": 313,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponentBrowserEnvironment.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentBrowserEnvironment.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentBrowserEnvironment.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "15:17-40"
        },
        {
          "moduleId": 314,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMIDOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMIDOperations.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "29:17-40"
        },
        {
          "moduleId": 372,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "19:17-40"
        },
        {
          "moduleId": 378,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/findDOMNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "29:17-40"
        },
        {
          "moduleId": 381,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/AutoFocusUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "15:17-40"
        },
        {
          "moduleId": 392,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "16:17-40"
        },
        {
          "moduleId": 399,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelect.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "15:17-40"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "19:17-40"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 429,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "17:17-40"
        },
        {
          "moduleId": 434,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/renderSubtreeIntoContainer.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/renderSubtreeIntoContainer.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/renderSubtreeIntoContainer.js",
          "type": "cjs require",
          "userRequest": "./ReactMount",
          "loc": "14:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactElement = require('./ReactElement');\nvar ReactEmptyComponentRegistry = require('./ReactEmptyComponentRegistry');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar containsNode = require('fbjs/lib/containsNode');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\nvar setInnerHTML = require('./setInnerHTML');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar nodeCache = {};\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar ownerDocumentContextKey = '__ReactMount_ownerDocument$' + Math.random().toString(36).slice(2);\n\n/** Mapping from reactRootID to React component instance. */\nvar instancesByReactRootID = {};\n\n/** Mapping from reactRootID to `container` nodes. */\nvar containersByReactRootID = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  /** __DEV__-only mapping from reactRootID to root elements. */\n  var rootElementsByReactRootID = {};\n}\n\n// Used to store breadth-first search state in findComponentRoot.\nvar findComponentRootReusableArray = [];\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n  var minLen = Math.min(string1.length, string2.length);\n  for (var i = 0; i < minLen; i++) {\n    if (string1.charAt(i) !== string2.charAt(i)) {\n      return i;\n    }\n  }\n  return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\n/**\n * @param {DOMElement} container DOM element that may contain a React component.\n * @return {?string} A \"reactRoot\" ID, if a React component is rendered.\n */\nfunction getReactRootID(container) {\n  var rootElement = getReactRootElementInContainer(container);\n  return rootElement && ReactMount.getID(rootElement);\n}\n\n/**\n * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form\n * element can return its control whose name or ID equals ATTR_NAME. All\n * DOM nodes support `getAttributeNode` but this can also get called on\n * other objects so just return '' if we're given something other than a\n * DOM node (such as window).\n *\n * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node.\n * @return {string} ID of the supplied `domNode`.\n */\nfunction getID(node) {\n  var id = internalGetID(node);\n  if (id) {\n    if (nodeCache.hasOwnProperty(id)) {\n      var cached = nodeCache[id];\n      if (cached !== node) {\n        !!isValid(cached, id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Two valid but unequal nodes with the same `%s`: %s', ATTR_NAME, id) : invariant(false) : undefined;\n\n        nodeCache[id] = node;\n      }\n    } else {\n      nodeCache[id] = node;\n    }\n  }\n\n  return id;\n}\n\nfunction internalGetID(node) {\n  // If node is something like a window, document, or text node, none of\n  // which support attributes or a .getAttribute method, gracefully return\n  // the empty string, as if the attribute were missing.\n  return node && node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Sets the React-specific ID of the given node.\n *\n * @param {DOMElement} node The DOM node whose ID will be set.\n * @param {string} id The value of the ID attribute.\n */\nfunction setID(node, id) {\n  var oldID = internalGetID(node);\n  if (oldID !== id) {\n    delete nodeCache[oldID];\n  }\n  node.setAttribute(ATTR_NAME, id);\n  nodeCache[id] = node;\n}\n\n/**\n * Finds the node with the supplied React-generated DOM ID.\n *\n * @param {string} id A React-generated DOM ID.\n * @return {DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNode(id) {\n  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n    nodeCache[id] = ReactMount.findReactNodeByID(id);\n  }\n  return nodeCache[id];\n}\n\n/**\n * Finds the node with the supplied public React instance.\n *\n * @param {*} instance A public React instance.\n * @return {?DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNodeFromInstance(instance) {\n  var id = ReactInstanceMap.get(instance)._rootNodeID;\n  if (ReactEmptyComponentRegistry.isNullComponentID(id)) {\n    return null;\n  }\n  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n    nodeCache[id] = ReactMount.findReactNodeByID(id);\n  }\n  return nodeCache[id];\n}\n\n/**\n * A node is \"valid\" if it is contained by a currently mounted container.\n *\n * This means that the node does not have to be contained by a document in\n * order to be considered valid.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @param {string} id The expected ID of the node.\n * @return {boolean} Whether the node is contained by a mounted container.\n */\nfunction isValid(node, id) {\n  if (node) {\n    !(internalGetID(node) === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Unexpected modification of `%s`', ATTR_NAME) : invariant(false) : undefined;\n\n    var container = ReactMount.findReactContainerForID(id);\n    if (container && containsNode(container, node)) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n/**\n * Causes the cache to forget about one React-specific ID.\n *\n * @param {string} id The ID to forget.\n */\nfunction purgeID(id) {\n  delete nodeCache[id];\n}\n\nvar deepestNodeSoFar = null;\nfunction findDeepestCachedAncestorImpl(ancestorID) {\n  var ancestor = nodeCache[ancestorID];\n  if (ancestor && isValid(ancestor, ancestorID)) {\n    deepestNodeSoFar = ancestor;\n  } else {\n    // This node isn't populated in the cache, so presumably none of its\n    // descendants are. Break out of the loop.\n    return false;\n  }\n}\n\n/**\n * Return the deepest cached node whose ID is a prefix of `targetID`.\n */\nfunction findDeepestCachedAncestor(targetID) {\n  deepestNodeSoFar = null;\n  ReactInstanceHandles.traverseAncestors(targetID, findDeepestCachedAncestorImpl);\n\n  var foundNode = deepestNodeSoFar;\n  deepestNodeSoFar = null;\n  return foundNode;\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(componentInstance, rootID, container, transaction, shouldReuseMarkup, context) {\n  if (ReactDOMFeatureFlags.useCreateElement) {\n    context = assign({}, context);\n    if (container.nodeType === DOC_NODE_TYPE) {\n      context[ownerDocumentContextKey] = container;\n    } else {\n      context[ownerDocumentContextKey] = container.ownerDocument;\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (context === emptyObject) {\n      context = {};\n    }\n    var tag = container.nodeName.toLowerCase();\n    context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(null, tag, null);\n  }\n  var markup = ReactReconciler.mountComponent(componentInstance, rootID, transaction, context);\n  componentInstance._renderedComponent._topLevelWrapper = componentInstance;\n  ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, rootID, container, shouldReuseMarkup, context) {\n  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n  /* forceHTML */shouldReuseMarkup);\n  transaction.perform(mountComponentIntoNode, null, componentInstance, rootID, container, transaction, shouldReuseMarkup, context);\n  ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container) {\n  ReactReconciler.unmountComponent(instance);\n\n  if (container.nodeType === DOC_NODE_TYPE) {\n    container = container.documentElement;\n  }\n\n  // http://jsperf.com/emptying-a-node\n  while (container.lastChild) {\n    container.removeChild(container.lastChild);\n  }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(node) {\n  var reactRootID = getReactRootID(node);\n  return reactRootID ? reactRootID !== ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID) : false;\n}\n\n/**\n * Returns the first (deepest) ancestor of a node which is rendered by this copy\n * of React.\n */\nfunction findFirstReactDOMImpl(node) {\n  // This node might be from another React instance, so we make sure not to\n  // examine the node cache here\n  for (; node && node.parentNode !== node; node = node.parentNode) {\n    if (node.nodeType !== 1) {\n      // Not a DOMElement, therefore not a React component\n      continue;\n    }\n    var nodeID = internalGetID(node);\n    if (!nodeID) {\n      continue;\n    }\n    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n\n    // If containersByReactRootID contains the container we find by crawling up\n    // the tree, we know that this instance of React rendered the node.\n    // nb. isValid's strategy (with containsNode) does not work because render\n    // trees may be nested and we don't want a false positive in that case.\n    var current = node;\n    var lastID;\n    do {\n      lastID = internalGetID(current);\n      current = current.parentNode;\n      if (current == null) {\n        // The passed-in node has been detached from the container it was\n        // originally rendered into.\n        return null;\n      }\n    } while (lastID !== reactRootID);\n\n    if (current === containersByReactRootID[reactRootID]) {\n      return node;\n    }\n  }\n  return null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar TopLevelWrapper = function () {};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n  TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n  // this.props is actually a ReactElement\n  return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n *   ReactMount.render(\n *     component,\n *     document.getElementById('container')\n *   );\n *\n *   <div id=\"container\">                   <-- Supplied `container`.\n *     <div data-reactid=\".3\">              <-- Rendered reactRoot of React\n *       // ...                                 component.\n *     </div>\n *   </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n  TopLevelWrapper: TopLevelWrapper,\n\n  /** Exposed for debugging purposes **/\n  _instancesByReactRootID: instancesByReactRootID,\n\n  /**\n   * This is a hook provided to support rendering React components while\n   * ensuring that the apparent scroll position of its `container` does not\n   * change.\n   *\n   * @param {DOMElement} container The `container` being rendered into.\n   * @param {function} renderCallback This must be called once to do the render.\n   */\n  scrollMonitor: function (container, renderCallback) {\n    renderCallback();\n  },\n\n  /**\n   * Take a component that's already mounted into the DOM and replace its props\n   * @param {ReactComponent} prevComponent component instance already in the DOM\n   * @param {ReactElement} nextElement component instance to render\n   * @param {DOMElement} container container to render into\n   * @param {?function} callback function triggered on completion\n   */\n  _updateRootComponent: function (prevComponent, nextElement, container, callback) {\n    ReactMount.scrollMonitor(container, function () {\n      ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement);\n      if (callback) {\n        ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n      }\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Record the root element in case it later gets transplanted.\n      rootElementsByReactRootID[getReactRootID(container)] = getReactRootElementInContainer(container);\n    }\n\n    return prevComponent;\n  },\n\n  /**\n   * Register a component into the instance map and starts scroll value\n   * monitoring\n   * @param {ReactComponent} nextComponent component instance to render\n   * @param {DOMElement} container container to render into\n   * @return {string} reactRoot ID prefix\n   */\n  _registerComponent: function (nextComponent, container) {\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n    ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n\n    var reactRootID = ReactMount.registerContainer(container);\n    instancesByReactRootID[reactRootID] = nextComponent;\n    return reactRootID;\n  },\n\n  /**\n   * Render a new component into the DOM.\n   * @param {ReactElement} nextElement element to render\n   * @param {DOMElement} container container to render into\n   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n   * @return {ReactComponent} nextComponent\n   */\n  _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case.\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n    var componentInstance = instantiateReactComponent(nextElement, null);\n    var reactRootID = ReactMount._registerComponent(componentInstance, container);\n\n    // The initial render is synchronous but any updates that happen during\n    // rendering, in componentWillMount or componentDidMount, will be batched\n    // according to the current batching strategy.\n\n    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, reactRootID, container, shouldReuseMarkup, context);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Record the root element in case it later gets transplanted.\n      rootElementsByReactRootID[reactRootID] = getReactRootElementInContainer(container);\n    }\n\n    return componentInstance;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !(parentComponent != null && parentComponent._reactInternalInstance != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : invariant(false) : undefined;\n    return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n  },\n\n  _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {\n    !ReactElement.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing an element string, make sure to instantiate ' + 'it by passing it to React.createElement.' : typeof nextElement === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' :\n    // Check if it quacks like an element\n    nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : invariant(false) : undefined;\n\n    process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : undefined;\n\n    var nextWrappedElement = new ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n    var prevComponent = instancesByReactRootID[getReactRootID(container)];\n\n    if (prevComponent) {\n      var prevWrappedElement = prevComponent._currentElement;\n      var prevElement = prevWrappedElement.props;\n      if (shouldUpdateReactComponent(prevElement, nextElement)) {\n        var publicInst = prevComponent._renderedComponent.getPublicInstance();\n        var updatedCallback = callback && function () {\n          callback.call(publicInst);\n        };\n        ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, updatedCallback);\n        return publicInst;\n      } else {\n        ReactMount.unmountComponentAtNode(container);\n      }\n    }\n\n    var reactRootElement = getReactRootElementInContainer(container);\n    var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n    var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : undefined;\n\n      if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n        var rootElementSibling = reactRootElement;\n        while (rootElementSibling) {\n          if (internalGetID(rootElementSibling)) {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : undefined;\n            break;\n          }\n          rootElementSibling = rootElementSibling.nextSibling;\n        }\n      }\n    }\n\n    var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n    var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, parentComponent != null ? parentComponent._reactInternalInstance._processChildContext(parentComponent._reactInternalInstance._context) : emptyObject)._renderedComponent.getPublicInstance();\n    if (callback) {\n      callback.call(component);\n    }\n    return component;\n  },\n\n  /**\n   * Renders a React component into the DOM in the supplied `container`.\n   *\n   * If the React component was previously rendered into `container`, this will\n   * perform an update on it and only mutate the DOM as necessary to reflect the\n   * latest React component.\n   *\n   * @param {ReactElement} nextElement Component element to render.\n   * @param {DOMElement} container DOM element to render into.\n   * @param {?function} callback function triggered on completion\n   * @return {ReactComponent} Component instance rendered in `container`.\n   */\n  render: function (nextElement, container, callback) {\n    return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n  },\n\n  /**\n   * Registers a container node into which React components will be rendered.\n   * This also creates the \"reactRoot\" ID that will be assigned to the element\n   * rendered within.\n   *\n   * @param {DOMElement} container DOM element to register as a container.\n   * @return {string} The \"reactRoot\" ID of elements rendered within.\n   */\n  registerContainer: function (container) {\n    var reactRootID = getReactRootID(container);\n    if (reactRootID) {\n      // If one exists, make sure it is a valid \"reactRoot\" ID.\n      reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID);\n    }\n    if (!reactRootID) {\n      // No valid \"reactRoot\" ID found, create one.\n      reactRootID = ReactInstanceHandles.createReactRootID();\n    }\n    containersByReactRootID[reactRootID] = container;\n    return reactRootID;\n  },\n\n  /**\n   * Unmounts and destroys the React component rendered in the `container`.\n   *\n   * @param {DOMElement} container DOM element containing a React component.\n   * @return {boolean} True if a component was found in and unmounted from\n   *                   `container`\n   */\n  unmountComponentAtNode: function (container) {\n    // Various parts of our code (such as ReactCompositeComponent's\n    // _renderValidatedComponent) assume that calls to render aren't nested;\n    // verify that that's the case. (Strictly speaking, unmounting won't cause a\n    // render but we still don't expect to be in a render call here.)\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n    var reactRootID = getReactRootID(container);\n    var component = instancesByReactRootID[reactRootID];\n    if (!component) {\n      // Check if the node being unmounted was rendered by React, but isn't a\n      // root node.\n      var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n      // Check if the container itself is a React root node.\n      var containerID = internalGetID(container);\n      var isContainerReactRoot = containerID && containerID === ReactInstanceHandles.getReactRootIDFromNodeID(containerID);\n\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : undefined;\n      }\n\n      return false;\n    }\n    ReactUpdates.batchedUpdates(unmountComponentFromNode, component, container);\n    delete instancesByReactRootID[reactRootID];\n    delete containersByReactRootID[reactRootID];\n    if (process.env.NODE_ENV !== 'production') {\n      delete rootElementsByReactRootID[reactRootID];\n    }\n    return true;\n  },\n\n  /**\n   * Finds the container DOM element that contains React component to which the\n   * supplied DOM `id` belongs.\n   *\n   * @param {string} id The ID of an element rendered by a React component.\n   * @return {?DOMElement} DOM element that contains the `id`.\n   */\n  findReactContainerForID: function (id) {\n    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id);\n    var container = containersByReactRootID[reactRootID];\n\n    if (process.env.NODE_ENV !== 'production') {\n      var rootElement = rootElementsByReactRootID[reactRootID];\n      if (rootElement && rootElement.parentNode !== container) {\n        process.env.NODE_ENV !== 'production' ? warning(\n        // Call internalGetID here because getID calls isValid which calls\n        // findReactContainerForID (this function).\n        internalGetID(rootElement) === reactRootID, 'ReactMount: Root element ID differed from reactRootID.') : undefined;\n        var containerChild = container.firstChild;\n        if (containerChild && reactRootID === internalGetID(containerChild)) {\n          // If the container has a new child with the same ID as the old\n          // root element, then rootElementsByReactRootID[reactRootID] is\n          // just stale and needs to be updated. The case that deserves a\n          // warning is when the container is empty.\n          rootElementsByReactRootID[reactRootID] = containerChild;\n        } else {\n          process.env.NODE_ENV !== 'production' ? warning(false, 'ReactMount: Root element has been removed from its original ' + 'container. New container: %s', rootElement.parentNode) : undefined;\n        }\n      }\n    }\n\n    return container;\n  },\n\n  /**\n   * Finds an element rendered by React with the supplied ID.\n   *\n   * @param {string} id ID of a DOM node in the React component.\n   * @return {DOMElement} Root DOM node of the React component.\n   */\n  findReactNodeByID: function (id) {\n    var reactRoot = ReactMount.findReactContainerForID(id);\n    return ReactMount.findComponentRoot(reactRoot, id);\n  },\n\n  /**\n   * Traverses up the ancestors of the supplied node to find a node that is a\n   * DOM representation of a React component rendered by this copy of React.\n   *\n   * @param {*} node\n   * @return {?DOMEventTarget}\n   * @internal\n   */\n  getFirstReactDOM: function (node) {\n    return findFirstReactDOMImpl(node);\n  },\n\n  /**\n   * Finds a node with the supplied `targetID` inside of the supplied\n   * `ancestorNode`.  Exploits the ID naming scheme to perform the search\n   * quickly.\n   *\n   * @param {DOMEventTarget} ancestorNode Search from this root.\n   * @pararm {string} targetID ID of the DOM representation of the component.\n   * @return {DOMEventTarget} DOM node with the supplied `targetID`.\n   * @internal\n   */\n  findComponentRoot: function (ancestorNode, targetID) {\n    var firstChildren = findComponentRootReusableArray;\n    var childIndex = 0;\n\n    var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode;\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw on the next line; give an early warning\n      process.env.NODE_ENV !== 'production' ? warning(deepestAncestor != null, 'React can\\'t find the root component node for data-reactid value ' + '`%s`. If you\\'re seeing this message, it probably means that ' + 'you\\'ve loaded two copies of React on the page. At this time, only ' + 'a single copy of React can be loaded at a time.', targetID) : undefined;\n    }\n\n    firstChildren[0] = deepestAncestor.firstChild;\n    firstChildren.length = 1;\n\n    while (childIndex < firstChildren.length) {\n      var child = firstChildren[childIndex++];\n      var targetChild;\n\n      while (child) {\n        var childID = ReactMount.getID(child);\n        if (childID) {\n          // Even if we find the node we're looking for, we finish looping\n          // through its siblings to ensure they're cached so that we don't have\n          // to revisit this node again. Otherwise, we make n^2 calls to getID\n          // when visiting the many children of a single node in order.\n\n          if (targetID === childID) {\n            targetChild = child;\n          } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) {\n            // If we find a child whose ID is an ancestor of the given ID,\n            // then we can be sure that we only want to search the subtree\n            // rooted at this child, so we can throw out the rest of the\n            // search state.\n            firstChildren.length = childIndex = 0;\n            firstChildren.push(child.firstChild);\n          }\n        } else {\n          // If this child had no ID, then there's a chance that it was\n          // injected automatically by the browser, as when a `<table>`\n          // element sprouts an extra `<tbody>` child as a side effect of\n          // `.innerHTML` parsing. Optimistically continue down this\n          // branch, but not before examining the other siblings.\n          firstChildren.push(child.firstChild);\n        }\n\n        child = child.nextSibling;\n      }\n\n      if (targetChild) {\n        // Emptying firstChildren/findComponentRootReusableArray is\n        // not necessary for correctness, but it helps the GC reclaim\n        // any nodes that were left at the end of the search.\n        firstChildren.length = 0;\n\n        return targetChild;\n      }\n    }\n\n    firstChildren.length = 0;\n\n    !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findComponentRoot(..., %s): Unable to find element. This probably ' + 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 'parent. ' + 'Try inspecting the child nodes of the element with React ID `%s`.', targetID, ReactMount.getID(ancestorNode)) : invariant(false) : undefined;\n  },\n\n  _mountImageIntoNode: function (markup, container, shouldReuseMarkup, transaction) {\n    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : invariant(false) : undefined;\n\n    if (shouldReuseMarkup) {\n      var rootElement = getReactRootElementInContainer(container);\n      if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n        return;\n      } else {\n        var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n        rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n        var rootMarkup = rootElement.outerHTML;\n        rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n        var normalizedMarkup = markup;\n        if (process.env.NODE_ENV !== 'production') {\n          // because rootMarkup is retrieved from the DOM, various normalizations\n          // will have occurred which will not be present in `markup`. Here,\n          // insert markup into a <div> or <iframe> depending on the container\n          // type to perform the same normalizations before comparing.\n          var normalizer;\n          if (container.nodeType === ELEMENT_NODE_TYPE) {\n            normalizer = document.createElement('div');\n            normalizer.innerHTML = markup;\n            normalizedMarkup = normalizer.innerHTML;\n          } else {\n            normalizer = document.createElement('iframe');\n            document.body.appendChild(normalizer);\n            normalizer.contentDocument.write(markup);\n            normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n            document.body.removeChild(normalizer);\n          }\n        }\n\n        var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n        var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n        !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using ' + 'server rendering but the checksum was invalid. This usually ' + 'means you rendered a different component type or props on ' + 'the client from the one on the server, or your render() ' + 'methods are impure. React cannot handle this case due to ' + 'cross-browser quirks by rendering at the document root. You ' + 'should look for environment dependent code in your components ' + 'and ensure the props are the same client and server side:\\n%s', difference) : invariant(false) : undefined;\n\n        if (process.env.NODE_ENV !== 'production') {\n          process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : undefined;\n        }\n      }\n    }\n\n    !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but ' + 'you didn\\'t use server rendering. We can\\'t do this ' + 'without using server rendering due to cross-browser quirks. ' + 'See ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n\n    if (transaction.useCreateElement) {\n      while (container.lastChild) {\n        container.removeChild(container.lastChild);\n      }\n      container.appendChild(markup);\n    } else {\n      setInnerHTML(container, markup);\n    }\n  },\n\n  ownerDocumentContextKey: ownerDocumentContextKey,\n\n  /**\n   * React ID utilities.\n   */\n\n  getReactRootID: getReactRootID,\n\n  getID: getID,\n\n  setID: setID,\n\n  getNode: getNode,\n\n  getNodeFromInstance: getNodeFromInstance,\n\n  isValid: isValid,\n\n  purgeID: purgeID\n};\n\nReactPerf.measureMethods(ReactMount, 'ReactMount', {\n  _renderNewRootComponent: '_renderNewRootComponent',\n  _mountImageIntoNode: '_mountImageIntoNode'\n});\n\nmodule.exports = ReactMount;"
    },
    {
      "id": 316,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
      "index": 316,
      "index2": 317,
      "size": 12417,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "15:31-68"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "22:31-68"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "19:31-68"
        },
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserEventEmitter",
          "loc": "17:31-68"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar ReactEventEmitterMixin = require('./ReactEventEmitterMixin');\nvar ReactPerf = require('./ReactPerf');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar assign = require('./Object.assign');\nvar isEventSupported = require('./isEventSupported');\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactEventListener, which is injected and can therefore support pluggable\n *    event sources. This is the only work that occurs in the main thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginHub` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|EventPluginHub|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n  topAbort: 'abort',\n  topBlur: 'blur',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topChange: 'change',\n  topClick: 'click',\n  topCompositionEnd: 'compositionend',\n  topCompositionStart: 'compositionstart',\n  topCompositionUpdate: 'compositionupdate',\n  topContextMenu: 'contextmenu',\n  topCopy: 'copy',\n  topCut: 'cut',\n  topDoubleClick: 'dblclick',\n  topDrag: 'drag',\n  topDragEnd: 'dragend',\n  topDragEnter: 'dragenter',\n  topDragExit: 'dragexit',\n  topDragLeave: 'dragleave',\n  topDragOver: 'dragover',\n  topDragStart: 'dragstart',\n  topDrop: 'drop',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topFocus: 'focus',\n  topInput: 'input',\n  topKeyDown: 'keydown',\n  topKeyPress: 'keypress',\n  topKeyUp: 'keyup',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topMouseDown: 'mousedown',\n  topMouseMove: 'mousemove',\n  topMouseOut: 'mouseout',\n  topMouseOver: 'mouseover',\n  topMouseUp: 'mouseup',\n  topPaste: 'paste',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topScroll: 'scroll',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topSelectionChange: 'selectionchange',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTextInput: 'textInput',\n  topTimeUpdate: 'timeupdate',\n  topTouchCancel: 'touchcancel',\n  topTouchEnd: 'touchend',\n  topTouchMove: 'touchmove',\n  topTouchStart: 'touchstart',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting',\n  topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n  // directly.\n  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n    mountAt[topListenersIDKey] = reactTopListenersCounter++;\n    alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n  }\n  return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n *   ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {\n\n  /**\n   * Injectable event backend\n   */\n  ReactEventListener: null,\n\n  injection: {\n    /**\n     * @param {object} ReactEventListener\n     */\n    injectReactEventListener: function (ReactEventListener) {\n      ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n      ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n    }\n  },\n\n  /**\n   * Sets whether or not any created callbacks should be enabled.\n   *\n   * @param {boolean} enabled True if callbacks should be enabled.\n   */\n  setEnabled: function (enabled) {\n    if (ReactBrowserEventEmitter.ReactEventListener) {\n      ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n    }\n  },\n\n  /**\n   * @return {boolean} True if callbacks are enabled.\n   */\n  isEnabled: function () {\n    return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n  },\n\n  /**\n   * We listen for bubbled touch events on the document object.\n   *\n   * Firefox v8.01 (and possibly others) exhibited strange behavior when\n   * mounting `onmousemove` events at some node that was not the document\n   * element. The symptoms were that if your mouse is not moving over something\n   * contained within that mount point (for example on the background) the\n   * top-level listeners for `onmousemove` won't be called. However, if you\n   * register the `mousemove` on the document object, then it will of course\n   * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n   * top-level listeners to the document object only, at least for these\n   * movement types of events and possibly all events.\n   *\n   * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n   *\n   * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n   * they bubble to document.\n   *\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {object} contentDocumentHandle Document which owns the container\n   */\n  listenTo: function (registrationName, contentDocumentHandle) {\n    var mountAt = contentDocumentHandle;\n    var isListening = getListeningForDocument(mountAt);\n    var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n    var topLevelTypes = EventConstants.topLevelTypes;\n    for (var i = 0; i < dependencies.length; i++) {\n      var dependency = dependencies[i];\n      if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n        if (dependency === topLevelTypes.topWheel) {\n          if (isEventSupported('wheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n          } else if (isEventSupported('mousewheel')) {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n          } else {\n            // Firefox needs to capture a different mouse scroll event.\n            // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n          }\n        } else if (dependency === topLevelTypes.topScroll) {\n\n          if (isEventSupported('scroll', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n          } else {\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n          }\n        } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n          if (isEventSupported('focus', true)) {\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n          } else if (isEventSupported('focusin')) {\n            // IE has `focusin` and `focusout` events which bubble.\n            // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n          }\n\n          // to make sure blur and focus event listeners are only attached once\n          isListening[topLevelTypes.topBlur] = true;\n          isListening[topLevelTypes.topFocus] = true;\n        } else if (topEventMapping.hasOwnProperty(dependency)) {\n          ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n        }\n\n        isListening[dependency] = true;\n      }\n    }\n  },\n\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n  },\n\n  /**\n   * Listens to window scroll and resize events. We cache scroll values so that\n   * application code can access them without triggering reflows.\n   *\n   * NOTE: Scroll events do not bubble.\n   *\n   * @see http://www.quirksmode.org/dom/events/scroll.html\n   */\n  ensureScrollValueMonitoring: function () {\n    if (!isMonitoringScrollValue) {\n      var refresh = ViewportMetrics.refreshScrollValues;\n      ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n      isMonitoringScrollValue = true;\n    }\n  },\n\n  eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs,\n\n  registrationNameModules: EventPluginHub.registrationNameModules,\n\n  putListener: EventPluginHub.putListener,\n\n  getListener: EventPluginHub.getListener,\n\n  deleteListener: EventPluginHub.deleteListener,\n\n  deleteAllListeners: EventPluginHub.deleteAllListeners\n\n});\n\nReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', {\n  putListener: 'putListener',\n  deleteListener: 'deleteListener'\n});\n\nmodule.exports = ReactBrowserEventEmitter;"
    },
    {
      "id": 317,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventConstants.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventConstants.js",
      "index": 317,
      "index2": 306,
      "size": 2036,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "15:21-48"
        },
        {
          "moduleId": 320,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "15:21-48"
        },
        {
          "moduleId": 360,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 372,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "15:21-48"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "21:21-48"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventConstants",
          "loc": "14:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n  topAbort: null,\n  topBlur: null,\n  topCanPlay: null,\n  topCanPlayThrough: null,\n  topChange: null,\n  topClick: null,\n  topCompositionEnd: null,\n  topCompositionStart: null,\n  topCompositionUpdate: null,\n  topContextMenu: null,\n  topCopy: null,\n  topCut: null,\n  topDoubleClick: null,\n  topDrag: null,\n  topDragEnd: null,\n  topDragEnter: null,\n  topDragExit: null,\n  topDragLeave: null,\n  topDragOver: null,\n  topDragStart: null,\n  topDrop: null,\n  topDurationChange: null,\n  topEmptied: null,\n  topEncrypted: null,\n  topEnded: null,\n  topError: null,\n  topFocus: null,\n  topInput: null,\n  topKeyDown: null,\n  topKeyPress: null,\n  topKeyUp: null,\n  topLoad: null,\n  topLoadedData: null,\n  topLoadedMetadata: null,\n  topLoadStart: null,\n  topMouseDown: null,\n  topMouseMove: null,\n  topMouseOut: null,\n  topMouseOver: null,\n  topMouseUp: null,\n  topPaste: null,\n  topPause: null,\n  topPlay: null,\n  topPlaying: null,\n  topProgress: null,\n  topRateChange: null,\n  topReset: null,\n  topScroll: null,\n  topSeeked: null,\n  topSeeking: null,\n  topSelectionChange: null,\n  topStalled: null,\n  topSubmit: null,\n  topSuspend: null,\n  topTextInput: null,\n  topTimeUpdate: null,\n  topTouchCancel: null,\n  topTouchEnd: null,\n  topTouchMove: null,\n  topTouchStart: null,\n  topVolumeChange: null,\n  topWaiting: null,\n  topWheel: null\n});\n\nvar EventConstants = {\n  topLevelTypes: topLevelTypes,\n  PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;"
    },
    {
      "id": 318,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
      "index": 318,
      "index2": 312,
      "size": 9218,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "16:21-48"
        },
        {
          "moduleId": 324,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventEmitterMixin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventEmitterMixin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventEmitterMixin.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "14:21-48"
        },
        {
          "moduleId": 360,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "15:21-48"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "15:21-48"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./EventPluginHub",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar EventPluginRegistry = require('./EventPluginRegistry');\nvar EventPluginUtils = require('./EventPluginUtils');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function (event, simulated) {\n  if (event) {\n    EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\nvar executeDispatchesAndReleaseSimulated = function (e) {\n  return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e, false);\n};\n\n/**\n * - `InstanceHandle`: [required] Module that performs logical traversals of DOM\n *   hierarchy given ids of the logical DOM elements involved.\n */\nvar InstanceHandle = null;\n\nfunction validateInstanceHandle() {\n  var valid = InstanceHandle && InstanceHandle.traverseTwoPhase && InstanceHandle.traverseEnterLeave;\n  process.env.NODE_ENV !== 'production' ? warning(valid, 'InstanceHandle not injected before use!') : undefined;\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n *   `extractEvents` {function(string, DOMEventTarget, string, object): *}\n *     Required. When a top-level event is fired, this method is expected to\n *     extract synthetic events that will in turn be queued and dispatched.\n *\n *   `eventTypes` {object}\n *     Optional, plugins that fire events must publish a mapping of registration\n *     names that are used to register listeners. Values of this mapping must\n *     be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n *   `executeDispatch` {function(object, function, string)}\n *     Optional, allows plugins to override how an event gets dispatched. By\n *     default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n  /**\n   * Methods for injecting dependencies.\n   */\n  injection: {\n\n    /**\n     * @param {object} InjectedMount\n     * @public\n     */\n    injectMount: EventPluginUtils.injection.injectMount,\n\n    /**\n     * @param {object} InjectedInstanceHandle\n     * @public\n     */\n    injectInstanceHandle: function (InjectedInstanceHandle) {\n      InstanceHandle = InjectedInstanceHandle;\n      if (process.env.NODE_ENV !== 'production') {\n        validateInstanceHandle();\n      }\n    },\n\n    getInstanceHandle: function () {\n      if (process.env.NODE_ENV !== 'production') {\n        validateInstanceHandle();\n      }\n      return InstanceHandle;\n    },\n\n    /**\n     * @param {array} InjectedEventPluginOrder\n     * @public\n     */\n    injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n    /**\n     * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n     */\n    injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n  },\n\n  eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs,\n\n  registrationNameModules: EventPluginRegistry.registrationNameModules,\n\n  /**\n   * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent.\n   *\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @param {?function} listener The callback to store.\n   */\n  putListener: function (id, registrationName, listener) {\n    !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : invariant(false) : undefined;\n\n    var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n    bankForRegistrationName[id] = listener;\n\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.didPutListener) {\n      PluginModule.didPutListener(id, registrationName, listener);\n    }\n  },\n\n  /**\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   * @return {?function} The stored callback.\n   */\n  getListener: function (id, registrationName) {\n    var bankForRegistrationName = listenerBank[registrationName];\n    return bankForRegistrationName && bankForRegistrationName[id];\n  },\n\n  /**\n   * Deletes a listener from the registration bank.\n   *\n   * @param {string} id ID of the DOM element.\n   * @param {string} registrationName Name of listener (e.g. `onClick`).\n   */\n  deleteListener: function (id, registrationName) {\n    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n    if (PluginModule && PluginModule.willDeleteListener) {\n      PluginModule.willDeleteListener(id, registrationName);\n    }\n\n    var bankForRegistrationName = listenerBank[registrationName];\n    // TODO: This should never be null -- when is it?\n    if (bankForRegistrationName) {\n      delete bankForRegistrationName[id];\n    }\n  },\n\n  /**\n   * Deletes all listeners for the DOM element with the supplied ID.\n   *\n   * @param {string} id ID of the DOM element.\n   */\n  deleteAllListeners: function (id) {\n    for (var registrationName in listenerBank) {\n      if (!listenerBank[registrationName][id]) {\n        continue;\n      }\n\n      var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n      if (PluginModule && PluginModule.willDeleteListener) {\n        PluginModule.willDeleteListener(id, registrationName);\n      }\n\n      delete listenerBank[registrationName][id];\n    }\n  },\n\n  /**\n   * Allows registered plugins an opportunity to extract events from top-level\n   * native browser events.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @internal\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var events;\n    var plugins = EventPluginRegistry.plugins;\n    for (var i = 0; i < plugins.length; i++) {\n      // Not every plugin in the ordering may be loaded at runtime.\n      var possiblePlugin = plugins[i];\n      if (possiblePlugin) {\n        var extractedEvents = possiblePlugin.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n        if (extractedEvents) {\n          events = accumulateInto(events, extractedEvents);\n        }\n      }\n    }\n    return events;\n  },\n\n  /**\n   * Enqueues a synthetic event that should be dispatched when\n   * `processEventQueue` is invoked.\n   *\n   * @param {*} events An accumulation of synthetic events.\n   * @internal\n   */\n  enqueueEvents: function (events) {\n    if (events) {\n      eventQueue = accumulateInto(eventQueue, events);\n    }\n  },\n\n  /**\n   * Dispatches all synthetic events on the event queue.\n   *\n   * @internal\n   */\n  processEventQueue: function (simulated) {\n    // Set `eventQueue` to null before processing it so that we can tell if more\n    // events get enqueued while processing.\n    var processingEventQueue = eventQueue;\n    eventQueue = null;\n    if (simulated) {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n    } else {\n      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n    }\n    !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined;\n    // This would be a good time to rethrow if any of the event handlers threw.\n    ReactErrorUtils.rethrowCaughtError();\n  },\n\n  /**\n   * These are needed for tests only. Do not use!\n   */\n  __purge: function () {\n    listenerBank = {};\n  },\n\n  __getListenerBank: function () {\n    return listenerBank;\n  }\n\n};\n\nmodule.exports = EventPluginHub;"
    },
    {
      "id": 319,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginRegistry.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginRegistry.js",
      "index": 319,
      "index2": 307,
      "size": 8411,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./EventPluginRegistry",
          "loc": "17:26-58"
        },
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./EventPluginRegistry",
          "loc": "14:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n  if (!EventPluginOrder) {\n    // Wait until an `EventPluginOrder` is injected.\n    return;\n  }\n  for (var pluginName in namesToPlugins) {\n    var PluginModule = namesToPlugins[pluginName];\n    var pluginIndex = EventPluginOrder.indexOf(pluginName);\n    !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : undefined;\n    if (EventPluginRegistry.plugins[pluginIndex]) {\n      continue;\n    }\n    !PluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : undefined;\n    EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n    var publishedEvents = PluginModule.eventTypes;\n    for (var eventName in publishedEvents) {\n      !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : undefined;\n    }\n  }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n  !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : undefined;\n  EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n      }\n    }\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n  !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : undefined;\n  EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n  EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n  /**\n   * Ordered list of injected plugins.\n   */\n  plugins: [],\n\n  /**\n   * Mapping from event name to dispatch config\n   */\n  eventNameDispatchConfigs: {},\n\n  /**\n   * Mapping from registration name to plugin module\n   */\n  registrationNameModules: {},\n\n  /**\n   * Mapping from registration name to event name\n   */\n  registrationNameDependencies: {},\n\n  /**\n   * Injects an ordering of plugins (by plugin name). This allows the ordering\n   * to be decoupled from injection of the actual plugins so that ordering is\n   * always deterministic regardless of packaging, on-the-fly injection, etc.\n   *\n   * @param {array} InjectedEventPluginOrder\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginOrder}\n   */\n  injectEventPluginOrder: function (InjectedEventPluginOrder) {\n    !!EventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : undefined;\n    // Clone the ordering so it cannot be dynamically mutated.\n    EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n    recomputePluginOrdering();\n  },\n\n  /**\n   * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n   * in the ordering injected by `injectEventPluginOrder`.\n   *\n   * Plugins can be injected as part of page initialization or on-the-fly.\n   *\n   * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n   * @internal\n   * @see {EventPluginHub.injection.injectEventPluginsByName}\n   */\n  injectEventPluginsByName: function (injectedNamesToPlugins) {\n    var isOrderingDirty = false;\n    for (var pluginName in injectedNamesToPlugins) {\n      if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n        continue;\n      }\n      var PluginModule = injectedNamesToPlugins[pluginName];\n      if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n        !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : undefined;\n        namesToPlugins[pluginName] = PluginModule;\n        isOrderingDirty = true;\n      }\n    }\n    if (isOrderingDirty) {\n      recomputePluginOrdering();\n    }\n  },\n\n  /**\n   * Looks up the plugin for the supplied event.\n   *\n   * @param {object} event A synthetic event.\n   * @return {?object} The plugin that created the supplied event.\n   * @internal\n   */\n  getPluginModuleForEvent: function (event) {\n    var dispatchConfig = event.dispatchConfig;\n    if (dispatchConfig.registrationName) {\n      return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n    }\n    for (var phase in dispatchConfig.phasedRegistrationNames) {\n      if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n        continue;\n      }\n      var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n      if (PluginModule) {\n        return PluginModule;\n      }\n    }\n    return null;\n  },\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _resetEventPlugins: function () {\n    EventPluginOrder = null;\n    for (var pluginName in namesToPlugins) {\n      if (namesToPlugins.hasOwnProperty(pluginName)) {\n        delete namesToPlugins[pluginName];\n      }\n    }\n    EventPluginRegistry.plugins.length = 0;\n\n    var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n    for (var eventName in eventNameDispatchConfigs) {\n      if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n        delete eventNameDispatchConfigs[eventName];\n      }\n    }\n\n    var registrationNameModules = EventPluginRegistry.registrationNameModules;\n    for (var registrationName in registrationNameModules) {\n      if (registrationNameModules.hasOwnProperty(registrationName)) {\n        delete registrationNameModules[registrationName];\n      }\n    }\n  }\n\n};\n\nmodule.exports = EventPluginRegistry;"
    },
    {
      "id": 320,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginUtils.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
      "index": 320,
      "index2": 309,
      "size": 6785,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./EventPluginUtils",
          "loc": "15:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar ReactErrorUtils = require('./ReactErrorUtils');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `Mount`: [required] Module that can convert between React dom IDs and\n *   actual node references.\n */\nvar injection = {\n  Mount: null,\n  injectMount: function (InjectedMount) {\n    injection.Mount = InjectedMount;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(InjectedMount && InjectedMount.getNode && InjectedMount.getID, 'EventPluginUtils.injection.injectMount(...): Injected Mount ' + 'module is missing getNode or getID.') : undefined;\n    }\n  }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n  return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchIDs = event._dispatchIDs;\n\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var idsIsArr = Array.isArray(dispatchIDs);\n    var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0;\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n    process.env.NODE_ENV !== 'production' ? warning(idsIsArr === listenersIsArr && IDsLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined;\n  };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {string} domID DOM id to pass to the callback.\n */\nfunction executeDispatch(event, simulated, listener, domID) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = injection.Mount.getNode(domID);\n  if (simulated) {\n    ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID);\n  } else {\n    ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID);\n  }\n  event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchIDs = event._dispatchIDs;\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and IDs are two parallel arrays that are always in sync.\n      executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, simulated, dispatchListeners, dispatchIDs);\n  }\n  event._dispatchListeners = null;\n  event._dispatchIDs = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchIDs = event._dispatchIDs;\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and IDs are two parallel arrays that are always in sync.\n      if (dispatchListeners[i](event, dispatchIDs[i])) {\n        return dispatchIDs[i];\n      }\n    }\n  } else if (dispatchListeners) {\n    if (dispatchListeners(event, dispatchIDs)) {\n      return dispatchIDs;\n    }\n  }\n  return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n  var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n  event._dispatchIDs = null;\n  event._dispatchListeners = null;\n  return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n  if (process.env.NODE_ENV !== 'production') {\n    validateEventDispatches(event);\n  }\n  var dispatchListener = event._dispatchListeners;\n  var dispatchID = event._dispatchIDs;\n  !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : undefined;\n  var res = dispatchListener ? dispatchListener(event, dispatchID) : null;\n  event._dispatchListeners = null;\n  event._dispatchIDs = null;\n  return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n  return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n  isEndish: isEndish,\n  isMoveish: isMoveish,\n  isStartish: isStartish,\n\n  executeDirectDispatch: executeDirectDispatch,\n  executeDispatchesInOrder: executeDispatchesInOrder,\n  executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n  hasDispatches: hasDispatches,\n\n  getNode: function (id) {\n    return injection.Mount.getNode(id);\n  },\n  getID: function (node) {\n    return injection.Mount.getID(node);\n  },\n\n  injection: injection\n};\n\nmodule.exports = EventPluginUtils;"
    },
    {
      "id": 321,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactErrorUtils.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactErrorUtils.js",
      "index": 321,
      "index2": 308,
      "size": 2273,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./ReactErrorUtils",
          "loc": "16:22-50"
        },
        {
          "moduleId": 320,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactErrorUtils",
          "loc": "15:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n * @typechecks\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n  try {\n    return func(a, b);\n  } catch (x) {\n    if (caughtError === null) {\n      caughtError = x;\n    }\n    return undefined;\n  }\n}\n\nvar ReactErrorUtils = {\n  invokeGuardedCallback: invokeGuardedCallback,\n\n  /**\n   * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n   * handler are sure to be rethrown by rethrowCaughtError.\n   */\n  invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n  /**\n   * During execution of guarded functions we will capture the first error which\n   * we will rethrow to be handled by the top level error handler.\n   */\n  rethrowCaughtError: function () {\n    if (caughtError) {\n      var error = caughtError;\n      caughtError = null;\n      throw error;\n    }\n  }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n  /**\n   * To help development we can get better devtools integration by simulating a\n   * real browser event.\n   */\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n    ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n      var boundFunc = func.bind(null, a, b);\n      var evtType = 'react-' + name;\n      fakeNode.addEventListener(evtType, boundFunc, false);\n      var evt = document.createEvent('Event');\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n      fakeNode.removeEventListener(evtType, boundFunc, false);\n    };\n  }\n}\n\nmodule.exports = ReactErrorUtils;"
    },
    {
      "id": 322,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/accumulateInto.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/accumulateInto.js",
      "index": 322,
      "index2": 310,
      "size": 1743,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./accumulateInto",
          "loc": "18:21-48"
        },
        {
          "moduleId": 360,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./accumulateInto",
          "loc": "19:21-48"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n *\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : undefined;\n  if (current == null) {\n    return next;\n  }\n\n  // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n  var currentIsArray = Array.isArray(current);\n  var nextIsArray = Array.isArray(next);\n\n  if (currentIsArray && nextIsArray) {\n    current.push.apply(current, next);\n    return current;\n  }\n\n  if (currentIsArray) {\n    current.push(next);\n    return current;\n  }\n\n  if (nextIsArray) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\nmodule.exports = accumulateInto;"
    },
    {
      "id": 323,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/forEachAccumulated.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/forEachAccumulated.js",
      "index": 323,
      "index2": 311,
      "size": 893,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 318,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPluginHub.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPluginHub.js",
          "type": "cjs require",
          "userRequest": "./forEachAccumulated",
          "loc": "19:25-56"
        },
        {
          "moduleId": 360,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
          "type": "cjs require",
          "userRequest": "./forEachAccumulated",
          "loc": "20:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\nvar forEachAccumulated = function (arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n};\n\nmodule.exports = forEachAccumulated;"
    },
    {
      "id": 324,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventEmitterMixin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventEmitterMixin.js",
      "index": 324,
      "index2": 313,
      "size": 1303,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./ReactEventEmitterMixin",
          "loc": "18:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = require('./EventPluginHub');\n\nfunction runEventQueueInBatch(events) {\n  EventPluginHub.enqueueEvents(events);\n  EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n  /**\n   * Streams a fired top-level event to `EventPluginHub` where plugins have the\n   * opportunity to create `ReactEvent`s to be dispatched.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {object} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native environment event.\n   */\n  handleTopLevel: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var events = EventPluginHub.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n    runEventQueueInBatch(events);\n  }\n};\n\nmodule.exports = ReactEventEmitterMixin;"
    },
    {
      "id": 325,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ViewportMetrics.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ViewportMetrics.js",
      "index": 325,
      "index2": 314,
      "size": 638,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./ViewportMetrics",
          "loc": "20:22-50"
        },
        {
          "moduleId": 373,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticMouseEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
          "type": "cjs require",
          "userRequest": "./ViewportMetrics",
          "loc": "16:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n  currentScrollLeft: 0,\n\n  currentScrollTop: 0,\n\n  refreshScrollValues: function (scrollPosition) {\n    ViewportMetrics.currentScrollLeft = scrollPosition.x;\n    ViewportMetrics.currentScrollTop = scrollPosition.y;\n  }\n\n};\n\nmodule.exports = ViewportMetrics;"
    },
    {
      "id": 326,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Object.assign.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Object.assign.js",
      "index": 326,
      "index2": 315,
      "size": 1261,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 290,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "20:13-39"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "28:13-39"
        },
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "22:13-39"
        },
        {
          "moduleId": 329,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElement.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "16:13-39"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "20:13-39"
        },
        {
          "moduleId": 342,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CallbackQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "16:13-39"
        },
        {
          "moduleId": 349,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "24:13-39"
        },
        {
          "moduleId": 355,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 356,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactNativeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNativeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNativeComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        },
        {
          "moduleId": 357,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/validateDOMNesting.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        },
        {
          "moduleId": 361,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/FallbackCompositionState.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 364,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 379,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "34:13-39"
        },
        {
          "moduleId": 392,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 396,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMOption.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "17:13-39"
        },
        {
          "moduleId": 399,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelect.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 400,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "18:13-39"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "22:13-39"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "20:13-39"
        },
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "22:13-39"
        },
        {
          "moduleId": 430,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerfAnalysis.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerfAnalysis.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerfAnalysis.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        },
        {
          "moduleId": 438,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "19:13-39"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "23:13-39"
        },
        {
          "moduleId": 444,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/deprecated.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/deprecated.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/deprecated.js",
          "type": "cjs require",
          "userRequest": "./Object.assign",
          "loc": "14:13-39"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n  if (target == null) {\n    throw new TypeError('Object.assign target cannot be null or undefined');\n  }\n\n  var to = Object(target);\n  var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n  for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n    var nextSource = arguments[nextIndex];\n    if (nextSource == null) {\n      continue;\n    }\n\n    var from = Object(nextSource);\n\n    // We don't currently support accessors nor proxies. Therefore this\n    // copy cannot throw. If we ever supported this then we must handle\n    // exceptions and side-effects. We don't support symbols so they won't\n    // be transferred.\n\n    for (var key in from) {\n      if (hasOwnProperty.call(from, key)) {\n        to[key] = from[key];\n      }\n    }\n  }\n\n  return to;\n}\n\nmodule.exports = assign;"
    },
    {
      "id": 327,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/isEventSupported.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/isEventSupported.js",
      "index": 327,
      "index2": 316,
      "size": 1972,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 316,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserEventEmitter.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserEventEmitter.js",
          "type": "cjs require",
          "userRequest": "./isEventSupported",
          "loc": "23:23-52"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./isEventSupported",
          "loc": "22:23-52"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./isEventSupported",
          "loc": "38:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n  useHasFeature = document.implementation && document.implementation.hasFeature &&\n  // always returns true in newer browsers as per the standard.\n  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n  document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n  if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = (eventName in document);\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nmodule.exports = isEventSupported;"
    },
    {
      "id": 328,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMFeatureFlags.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFeatureFlags.js",
      "index": 328,
      "index2": 318,
      "size": 458,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMFeatureFlags",
          "loc": "17:27-60"
        },
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMFeatureFlags",
          "loc": "18:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n  useCreateElement: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;"
    },
    {
      "id": 329,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElement.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
      "index": 329,
      "index2": 320,
      "size": 8075,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "18:19-44"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "16:19-44"
        },
        {
          "moduleId": 355,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "14:19-44"
        },
        {
          "moduleId": 394,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypes.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "14:19-44"
        },
        {
          "moduleId": 397,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 398,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "18:19-44"
        },
        {
          "moduleId": 440,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMFactories.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "15:19-44"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "21:19-44"
        },
        {
          "moduleId": 443,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/onlyChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/onlyChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/onlyChild.js",
          "type": "cjs require",
          "userRequest": "./ReactElement",
          "loc": "13:19-44"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar assign = require('./Object.assign');\nvar canDefineProperty = require('./canDefineProperty');\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allow us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  if (process.env.NODE_ENV !== 'production') {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {};\n\n    // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n    if (canDefineProperty) {\n      Object.defineProperty(element._store, 'validated', {\n        configurable: false,\n        enumerable: false,\n        writable: true,\n        value: false\n      });\n      // self and source are DEV only properties.\n      Object.defineProperty(element, '_self', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: self\n      });\n      // Two elements created in two different places should be considered\n      // equal for testing purposes and therefore we hide it from enumeration.\n      Object.defineProperty(element, '_source', {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: source\n      });\n    } else {\n      element._store.validated = false;\n      element._self = self;\n      element._source = source;\n    }\n    Object.freeze(element.props);\n    Object.freeze(element);\n  }\n\n  return element;\n};\n\nReactElement.createElement = function (type, config, children) {\n  var propName;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    ref = config.ref === undefined ? null : config.ref;\n    key = config.key === undefined ? null : '' + config.key;\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source;\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (typeof props[propName] === 'undefined') {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\nReactElement.createFactory = function (type) {\n  var factory = ReactElement.createElement.bind(null, type);\n  // Expose the type on the factory and the prototype so that it can be\n  // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n  // This should not be named `constructor` since this may not be the function\n  // that created the element, and it may not even be a constructor.\n  // Legacy hook TODO: Warn if this is accessed\n  factory.type = type;\n  return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n  return newElement;\n};\n\nReactElement.cloneAndReplaceProps = function (oldElement, newProps) {\n  var newElement = ReactElement(oldElement.type, oldElement.key, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, newProps);\n\n  if (process.env.NODE_ENV !== 'production') {\n    // If the key on the original is valid, then the clone is valid\n    newElement._store.validated = oldElement._store.validated;\n  }\n\n  return newElement;\n};\n\nReactElement.cloneElement = function (element, config, children) {\n  var propName;\n\n  // Original props are copied\n  var props = assign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n  // Self is preserved since the owner is preserved.\n  var self = element._self;\n  // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n  var source = element._source;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config != null) {\n    if (config.ref !== undefined) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n    if (config.key !== undefined) {\n      key = '' + config.key;\n    }\n    // Remaining properties override existing props\n    for (propName in config) {\n      if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;"
    },
    {
      "id": 330,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/canDefineProperty.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/canDefineProperty.js",
      "index": 330,
      "index2": 319,
      "size": 629,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 329,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElement.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElement.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "17:24-54"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "35:24-54"
        },
        {
          "moduleId": 410,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "16:24-54"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./canDefineProperty",
          "loc": "26:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule canDefineProperty\n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n  try {\n    Object.defineProperty({}, 'x', { get: function () {} });\n    canDefineProperty = true;\n  } catch (x) {\n    // IE will fail on defineProperty\n  }\n}\n\nmodule.exports = canDefineProperty;"
    },
    {
      "id": 331,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEmptyComponentRegistry.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponentRegistry.js",
      "index": 331,
      "index2": 321,
      "size": 1380,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponentRegistry",
          "loc": "19:34-74"
        },
        {
          "moduleId": 355,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponentRegistry",
          "loc": "15:34-74"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponentRegistry\n */\n\n'use strict';\n\n// This registry keeps track of the React IDs of the components that rendered to\n// `null` (in reality a placeholder such as `noscript`)\nvar nullComponentIDsRegistry = {};\n\n/**\n * @param {string} id Component's `_rootNodeID`.\n * @return {boolean} True if the component is rendered to null.\n */\nfunction isNullComponentID(id) {\n  return !!nullComponentIDsRegistry[id];\n}\n\n/**\n * Mark the component as having rendered to null.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction registerNullComponentID(id) {\n  nullComponentIDsRegistry[id] = true;\n}\n\n/**\n * Unmark the component as having rendered to null: it renders to something now.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction deregisterNullComponentID(id) {\n  delete nullComponentIDsRegistry[id];\n}\n\nvar ReactEmptyComponentRegistry = {\n  isNullComponentID: isNullComponentID,\n  registerNullComponentID: registerNullComponentID,\n  deregisterNullComponentID: deregisterNullComponentID\n};\n\nmodule.exports = ReactEmptyComponentRegistry;"
    },
    {
      "id": 332,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInstanceHandles.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInstanceHandles.js",
      "index": 332,
      "index2": 323,
      "size": 10649,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "19:27-60"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "20:27-60"
        },
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "28:27-60"
        },
        {
          "moduleId": 398,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "16:27-60"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "18:27-60"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceHandles",
          "loc": "16:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceHandles\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactRootIndex = require('./ReactRootIndex');\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar SEPARATOR = '.';\nvar SEPARATOR_LENGTH = SEPARATOR.length;\n\n/**\n * Maximum depth of traversals before we consider the possibility of a bad ID.\n */\nvar MAX_TREE_DEPTH = 10000;\n\n/**\n * Creates a DOM ID prefix to use when mounting React components.\n *\n * @param {number} index A unique integer\n * @return {string} React root ID.\n * @internal\n */\nfunction getReactRootIDString(index) {\n  return SEPARATOR + index.toString(36);\n}\n\n/**\n * Checks if a character in the supplied ID is a separator or the end.\n *\n * @param {string} id A React DOM ID.\n * @param {number} index Index of the character to check.\n * @return {boolean} True if the character is a separator or end of the ID.\n * @private\n */\nfunction isBoundary(id, index) {\n  return id.charAt(index) === SEPARATOR || index === id.length;\n}\n\n/**\n * Checks if the supplied string is a valid React DOM ID.\n *\n * @param {string} id A React DOM ID, maybe.\n * @return {boolean} True if the string is a valid React DOM ID.\n * @private\n */\nfunction isValidID(id) {\n  return id === '' || id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR;\n}\n\n/**\n * Checks if the first ID is an ancestor of or equal to the second ID.\n *\n * @param {string} ancestorID\n * @param {string} descendantID\n * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`.\n * @internal\n */\nfunction isAncestorIDOf(ancestorID, descendantID) {\n  return descendantID.indexOf(ancestorID) === 0 && isBoundary(descendantID, ancestorID.length);\n}\n\n/**\n * Gets the parent ID of the supplied React DOM ID, `id`.\n *\n * @param {string} id ID of a component.\n * @return {string} ID of the parent, or an empty string.\n * @private\n */\nfunction getParentID(id) {\n  return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : '';\n}\n\n/**\n * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the\n * supplied `destinationID`. If they are equal, the ID is returned.\n *\n * @param {string} ancestorID ID of an ancestor node of `destinationID`.\n * @param {string} destinationID ID of the destination node.\n * @return {string} Next ID on the path from `ancestorID` to `destinationID`.\n * @private\n */\nfunction getNextDescendantID(ancestorID, destinationID) {\n  !(isValidID(ancestorID) && isValidID(destinationID)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.', ancestorID, destinationID) : invariant(false) : undefined;\n  !isAncestorIDOf(ancestorID, destinationID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(...): React has made an invalid assumption about ' + 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.', ancestorID, destinationID) : invariant(false) : undefined;\n  if (ancestorID === destinationID) {\n    return ancestorID;\n  }\n  // Skip over the ancestor and the immediate separator. Traverse until we hit\n  // another separator or we reach the end of `destinationID`.\n  var start = ancestorID.length + SEPARATOR_LENGTH;\n  var i;\n  for (i = start; i < destinationID.length; i++) {\n    if (isBoundary(destinationID, i)) {\n      break;\n    }\n  }\n  return destinationID.substr(0, i);\n}\n\n/**\n * Gets the nearest common ancestor ID of two IDs.\n *\n * Using this ID scheme, the nearest common ancestor ID is the longest common\n * prefix of the two IDs that immediately preceded a \"marker\" in both strings.\n *\n * @param {string} oneID\n * @param {string} twoID\n * @return {string} Nearest common ancestor ID, or the empty string if none.\n * @private\n */\nfunction getFirstCommonAncestorID(oneID, twoID) {\n  var minLength = Math.min(oneID.length, twoID.length);\n  if (minLength === 0) {\n    return '';\n  }\n  var lastCommonMarkerIndex = 0;\n  // Use `<=` to traverse until the \"EOL\" of the shorter string.\n  for (var i = 0; i <= minLength; i++) {\n    if (isBoundary(oneID, i) && isBoundary(twoID, i)) {\n      lastCommonMarkerIndex = i;\n    } else if (oneID.charAt(i) !== twoID.charAt(i)) {\n      break;\n    }\n  }\n  var longestCommonID = oneID.substr(0, lastCommonMarkerIndex);\n  !isValidID(longestCommonID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s', oneID, twoID, longestCommonID) : invariant(false) : undefined;\n  return longestCommonID;\n}\n\n/**\n * Traverses the parent path between two IDs (either up or down). The IDs must\n * not be the same, and there must exist a parent path between them. If the\n * callback returns `false`, traversal is stopped.\n *\n * @param {?string} start ID at which to start traversal.\n * @param {?string} stop ID at which to end traversal.\n * @param {function} cb Callback to invoke each ID with.\n * @param {*} arg Argument to invoke the callback with.\n * @param {?boolean} skipFirst Whether or not to skip the first node.\n * @param {?boolean} skipLast Whether or not to skip the last node.\n * @private\n */\nfunction traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) {\n  start = start || '';\n  stop = stop || '';\n  !(start !== stop) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.', start) : invariant(false) : undefined;\n  var traverseUp = isAncestorIDOf(stop, start);\n  !(traverseUp || isAncestorIDOf(start, stop)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' + 'not have a parent path.', start, stop) : invariant(false) : undefined;\n  // Traverse from `start` to `stop` one depth at a time.\n  var depth = 0;\n  var traverse = traverseUp ? getParentID : getNextDescendantID;\n  for (var id = start;; /* until break */id = traverse(id, stop)) {\n    var ret;\n    if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) {\n      ret = cb(id, traverseUp, arg);\n    }\n    if (ret === false || id === stop) {\n      // Only break //after// visiting `stop`.\n      break;\n    }\n    !(depth++ < MAX_TREE_DEPTH) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' + 'traversing the React DOM ID tree. This may be due to malformed IDs: %s', start, stop, id) : invariant(false) : undefined;\n  }\n}\n\n/**\n * Manages the IDs assigned to DOM representations of React components. This\n * uses a specific scheme in order to traverse the DOM efficiently (e.g. in\n * order to simulate events).\n *\n * @internal\n */\nvar ReactInstanceHandles = {\n\n  /**\n   * Constructs a React root ID\n   * @return {string} A React root ID.\n   */\n  createReactRootID: function () {\n    return getReactRootIDString(ReactRootIndex.createReactRootIndex());\n  },\n\n  /**\n   * Constructs a React ID by joining a root ID with a name.\n   *\n   * @param {string} rootID Root ID of a parent component.\n   * @param {string} name A component's name (as flattened children).\n   * @return {string} A React ID.\n   * @internal\n   */\n  createReactID: function (rootID, name) {\n    return rootID + name;\n  },\n\n  /**\n   * Gets the DOM ID of the React component that is the root of the tree that\n   * contains the React component with the supplied DOM ID.\n   *\n   * @param {string} id DOM ID of a React component.\n   * @return {?string} DOM ID of the React component that is the root.\n   * @internal\n   */\n  getReactRootIDFromNodeID: function (id) {\n    if (id && id.charAt(0) === SEPARATOR && id.length > 1) {\n      var index = id.indexOf(SEPARATOR, 1);\n      return index > -1 ? id.substr(0, index) : id;\n    }\n    return null;\n  },\n\n  /**\n   * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n   * should would receive a `mouseEnter` or `mouseLeave` event.\n   *\n   * NOTE: Does not invoke the callback on the nearest common ancestor because\n   * nothing \"entered\" or \"left\" that element.\n   *\n   * @param {string} leaveID ID being left.\n   * @param {string} enterID ID being entered.\n   * @param {function} cb Callback to invoke on each entered/left ID.\n   * @param {*} upArg Argument to invoke the callback with on left IDs.\n   * @param {*} downArg Argument to invoke the callback with on entered IDs.\n   * @internal\n   */\n  traverseEnterLeave: function (leaveID, enterID, cb, upArg, downArg) {\n    var ancestorID = getFirstCommonAncestorID(leaveID, enterID);\n    if (ancestorID !== leaveID) {\n      traverseParentPath(leaveID, ancestorID, cb, upArg, false, true);\n    }\n    if (ancestorID !== enterID) {\n      traverseParentPath(ancestorID, enterID, cb, downArg, true, false);\n    }\n  },\n\n  /**\n   * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n   *\n   * NOTE: This traversal happens on IDs without touching the DOM.\n   *\n   * @param {string} targetID ID of the target node.\n   * @param {function} cb Callback to invoke.\n   * @param {*} arg Argument to invoke the callback with.\n   * @internal\n   */\n  traverseTwoPhase: function (targetID, cb, arg) {\n    if (targetID) {\n      traverseParentPath('', targetID, cb, arg, true, false);\n      traverseParentPath(targetID, '', cb, arg, false, true);\n    }\n  },\n\n  /**\n   * Same as `traverseTwoPhase` but skips the `targetID`.\n   */\n  traverseTwoPhaseSkipTarget: function (targetID, cb, arg) {\n    if (targetID) {\n      traverseParentPath('', targetID, cb, arg, true, true);\n      traverseParentPath(targetID, '', cb, arg, true, true);\n    }\n  },\n\n  /**\n   * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For\n   * example, passing `.0.$row-0.1` would result in `cb` getting called\n   * with `.0`, `.0.$row-0`, and `.0.$row-0.1`.\n   *\n   * NOTE: This traversal happens on IDs without touching the DOM.\n   *\n   * @param {string} targetID ID of the target node.\n   * @param {function} cb Callback to invoke.\n   * @param {*} arg Argument to invoke the callback with.\n   * @internal\n   */\n  traverseAncestors: function (targetID, cb, arg) {\n    traverseParentPath('', targetID, cb, arg, true, false);\n  },\n\n  getFirstCommonAncestorID: getFirstCommonAncestorID,\n\n  /**\n   * Exposed for unit testing.\n   * @private\n   */\n  _getNextDescendantID: getNextDescendantID,\n\n  isAncestorIDOf: isAncestorIDOf,\n\n  SEPARATOR: SEPARATOR\n\n};\n\nmodule.exports = ReactInstanceHandles;"
    },
    {
      "id": 333,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactRootIndex.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactRootIndex.js",
      "index": 333,
      "index2": 322,
      "size": 723,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInstanceHandles.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 332,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInstanceHandles.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInstanceHandles.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInstanceHandles.js",
          "type": "cjs require",
          "userRequest": "./ReactRootIndex",
          "loc": "15:21-48"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactRootIndex",
          "loc": "22:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar ReactRootIndexInjection = {\n  /**\n   * @param {function} _createReactRootIndex\n   */\n  injectCreateReactRootIndex: function (_createReactRootIndex) {\n    ReactRootIndex.createReactRootIndex = _createReactRootIndex;\n  }\n};\n\nvar ReactRootIndex = {\n  createReactRootIndex: null,\n  injection: ReactRootIndexInjection\n};\n\nmodule.exports = ReactRootIndex;"
    },
    {
      "id": 334,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInstanceMap.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInstanceMap.js",
      "index": 334,
      "index2": 324,
      "size": 1253,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "21:23-52"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "16:23-52"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "17:23-52"
        },
        {
          "moduleId": 377,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserComponentMixin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "14:23-52"
        },
        {
          "moduleId": 378,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/findDOMNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
          "type": "cjs require",
          "userRequest": "./ReactInstanceMap",
          "loc": "16:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\nvar ReactInstanceMap = {\n\n  /**\n   * This API should be called `delete` but we'd have to make sure to always\n   * transform these to strings for IE support. When this transform is fully\n   * supported we can rename it.\n   */\n  remove: function (key) {\n    key._reactInternalInstance = undefined;\n  },\n\n  get: function (key) {\n    return key._reactInternalInstance;\n  },\n\n  has: function (key) {\n    return key._reactInternalInstance !== undefined;\n  },\n\n  set: function (key, value) {\n    key._reactInternalInstance = value;\n  }\n\n};\n\nmodule.exports = ReactInstanceMap;"
    },
    {
      "id": 335,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMarkupChecksum.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMarkupChecksum.js",
      "index": 335,
      "index2": 326,
      "size": 1386,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactMarkupChecksum",
          "loc": "22:26-58"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactMarkupChecksum",
          "loc": "17:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = require('./adler32');\n\nvar TAG_END = /\\/?>/;\n\nvar ReactMarkupChecksum = {\n  CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n  /**\n   * @param {string} markup Markup string\n   * @return {string} Markup string with checksum attribute attached\n   */\n  addChecksumToMarkup: function (markup) {\n    var checksum = adler32(markup);\n\n    // Add checksum (handle both parent tags and self-closing tags)\n    return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n  },\n\n  /**\n   * @param {string} markup to use\n   * @param {DOMElement} element root React element\n   * @returns {boolean} whether or not the markup is the same\n   */\n  canReuseMarkup: function (markup, element) {\n    var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n    existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n    var markupChecksum = adler32(markup);\n    return markupChecksum === existingChecksum;\n  }\n};\n\nmodule.exports = ReactMarkupChecksum;"
    },
    {
      "id": 336,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/adler32.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/adler32.js",
      "index": 336,
      "index2": 325,
      "size": 1196,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMarkupChecksum.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 335,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMarkupChecksum.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMarkupChecksum.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMarkupChecksum.js",
          "type": "cjs require",
          "userRequest": "./adler32",
          "loc": "14:14-34"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n  var a = 1;\n  var b = 0;\n  var i = 0;\n  var l = data.length;\n  var m = l & ~0x3;\n  while (i < m) {\n    for (; i < Math.min(i + 4096, m); i += 4) {\n      b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n    }\n    a %= MOD;\n    b %= MOD;\n  }\n  for (; i < l; i++) {\n    b += a += data.charCodeAt(i);\n  }\n  a %= MOD;\n  b %= MOD;\n  return a | b << 16;\n}\n\nmodule.exports = adler32;"
    },
    {
      "id": 337,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconciler.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconciler.js",
      "index": 337,
      "index2": 329,
      "size": 3550,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "22:22-50"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "24:22-50"
        },
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "17:22-50"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "21:22-50"
        },
        {
          "moduleId": 355,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEmptyComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "16:22-50"
        },
        {
          "moduleId": 401,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "19:22-50"
        },
        {
          "moduleId": 402,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildReconciler.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./ReactReconciler",
          "loc": "15:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = require('./ReactRef');\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n  ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (internalInstance, rootID, transaction, context) {\n    var markup = internalInstance.mountComponent(rootID, transaction, context);\n    if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n    return markup;\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function (internalInstance) {\n    ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n    internalInstance.unmountComponent();\n  },\n\n  /**\n   * Update a component using a new element.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @internal\n   */\n  receiveComponent: function (internalInstance, nextElement, transaction, context) {\n    var prevElement = internalInstance._currentElement;\n\n    if (nextElement === prevElement && context === internalInstance._context) {\n      // Since elements are immutable after the owner is rendered,\n      // we can do a cheap identity compare here to determine if this is a\n      // superfluous reconcile. It's possible for state to be mutable but such\n      // change should trigger an update of the owner which would recreate\n      // the element. We explicitly check for the existence of an owner since\n      // it's possible for an element created outside a composite to be\n      // deeply mutated and reused.\n\n      // TODO: Bailing out early is just a perf optimization right?\n      // TODO: Removing the return statement should affect correctness?\n      return;\n    }\n\n    var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n    if (refsChanged) {\n      ReactRef.detachRefs(internalInstance, prevElement);\n    }\n\n    internalInstance.receiveComponent(nextElement, transaction, context);\n\n    if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n    }\n  },\n\n  /**\n   * Flush any dirty changes in a component.\n   *\n   * @param {ReactComponent} internalInstance\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (internalInstance, transaction) {\n    internalInstance.performUpdateIfNecessary(transaction);\n  }\n\n};\n\nmodule.exports = ReactReconciler;"
    },
    {
      "id": 338,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactRef.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactRef.js",
      "index": 338,
      "index2": 328,
      "size": 2342,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconciler.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 337,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconciler.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconciler.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconciler.js",
          "type": "cjs require",
          "userRequest": "./ReactRef",
          "loc": "14:15-36"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = require('./ReactOwner');\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(component.getPublicInstance());\n  } else {\n    // Legacy ref\n    ReactOwner.addComponentAsRefTo(component, ref, owner);\n  }\n}\n\nfunction detachRef(ref, component, owner) {\n  if (typeof ref === 'function') {\n    ref(null);\n  } else {\n    // Legacy ref\n    ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n  }\n}\n\nReactRef.attachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    attachRef(ref, instance, element._owner);\n  }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n  // If either the owner or a `ref` has changed, make sure the newest owner\n  // has stored a reference to `this`, and the previous owner (if different)\n  // has forgotten the reference to `this`. We use the element instead\n  // of the public this.props because the post processing cannot determine\n  // a ref. The ref conceptually lives on the element.\n\n  // TODO: Should this even be possible? The owner cannot change because\n  // it's forbidden by shouldUpdateReactComponent. The ref can change\n  // if you swap the keys of but not the refs. Reconsider where this check\n  // is made. It probably belongs where the key checking and\n  // instantiateReactComponent is done.\n\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n\n  return(\n    // This has a few false positives w/r/t empty components.\n    prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref\n  );\n};\n\nReactRef.detachRefs = function (instance, element) {\n  if (element === null || element === false) {\n    return;\n  }\n  var ref = element.ref;\n  if (ref != null) {\n    detachRef(ref, instance, element._owner);\n  }\n};\n\nmodule.exports = ReactRef;"
    },
    {
      "id": 339,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactOwner.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactOwner.js",
      "index": 339,
      "index2": 327,
      "size": 3446,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactRef.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 338,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactRef.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactRef.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactRef.js",
          "type": "cjs require",
          "userRequest": "./ReactOwner",
          "loc": "14:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return (\n *         <div onClick={this.handleClick}>\n *           <CustomComponent ref=\"custom\" />\n *         </div>\n *       );\n *     },\n *     handleClick: function() {\n *       this.refs.custom.handleClick();\n *     },\n *     componentDidMount: function() {\n *       this.refs.custom.initialize();\n *     }\n *   });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n  /**\n   * @param {?object} object\n   * @return {boolean} True if `object` is a valid owner.\n   * @final\n   */\n  isValidOwner: function (object) {\n    return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n  },\n\n  /**\n   * Adds a component by ref to an owner component.\n   *\n   * @param {ReactComponent} component Component to reference.\n   * @param {string} ref Name by which to refer to the component.\n   * @param {ReactOwner} owner Component on which to record the ref.\n   * @final\n   * @internal\n   */\n  addComponentAsRefTo: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n    owner.attachRef(ref, component);\n  },\n\n  /**\n   * Removes a component by ref from an owner component.\n   *\n   * @param {ReactComponent} component Component to dereference.\n   * @param {string} ref Name of the ref to remove.\n   * @param {ReactOwner} owner Component on which the ref is recorded.\n   * @final\n   * @internal\n   */\n  removeComponentAsRefFrom: function (component, ref, owner) {\n    !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n    // Check that `component` is still the current ref because we do not want to\n    // detach the ref if another component stole it.\n    if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) {\n      owner.detachRef(ref);\n    }\n  }\n\n};\n\nmodule.exports = ReactOwner;"
    },
    {
      "id": 340,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
      "index": 340,
      "index2": 334,
      "size": 10938,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdateQueue",
          "loc": "25:23-52"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdateQueue",
          "loc": "22:23-52"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdateQueue",
          "loc": "32:23-52"
        }
      ],
      "source": "/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction enqueueUpdate(internalInstance) {\n  ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n  var internalInstance = ReactInstanceMap.get(publicInstance);\n  if (!internalInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      // Only warn when we have a callerName. Otherwise we should be silent.\n      // We're probably calling from enqueueCallback. We don't want to warn\n      // there because we already warned for the corresponding lifecycle method.\n      process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor.displayName) : undefined;\n    }\n    return null;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition ' + '(such as within `render`). Render methods should be a pure function ' + 'of props and state.', callerName) : undefined;\n  }\n\n  return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      var owner = ReactCurrentOwner.current;\n      if (owner !== null) {\n        process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n        owner._warnedAboutRefsInRender = true;\n      }\n    }\n    var internalInstance = ReactInstanceMap.get(publicInstance);\n    if (internalInstance) {\n      // During componentWillMount and render this will still be null but after\n      // that will always render to something. At least for now. So we can use\n      // this hack.\n      return !!internalInstance._renderedComponent;\n    } else {\n      return false;\n    }\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {\n    !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n    // Previously we would throw an error if we didn't have an internal\n    // instance. Since we want to make it a no-op instead, we mirror the same\n    // behavior we have in other enqueue* methods.\n    // We also need to ignore callbacks in componentWillMount. See\n    // enqueueUpdates.\n    if (!internalInstance) {\n      return null;\n    }\n\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    // TODO: The callback here is ignored when setState is called from\n    // componentWillMount. Either fix it or disallow doing so completely in\n    // favor of getInitialState. Alternatively, we can disallow\n    // componentWillMount during server-side rendering.\n    enqueueUpdate(internalInstance);\n  },\n\n  enqueueCallbackInternal: function (internalInstance, callback) {\n    !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n    if (internalInstance._pendingCallbacks) {\n      internalInstance._pendingCallbacks.push(callback);\n    } else {\n      internalInstance._pendingCallbacks = [callback];\n    }\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingForceUpdate = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    internalInstance._pendingStateQueue = [completeState];\n    internalInstance._pendingReplaceState = true;\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n    if (!internalInstance) {\n      return;\n    }\n\n    var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n    queue.push(partialState);\n\n    enqueueUpdate(internalInstance);\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialProps Subset of the next props.\n   * @internal\n   */\n  enqueueSetProps: function (publicInstance, partialProps) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setProps');\n    if (!internalInstance) {\n      return;\n    }\n    ReactUpdateQueue.enqueueSetPropsInternal(internalInstance, partialProps);\n  },\n\n  enqueueSetPropsInternal: function (internalInstance, partialProps) {\n    var topLevelWrapper = internalInstance._topLevelWrapper;\n    !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setProps(...): You called `setProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n    // Merge with the pending element if it exists, otherwise with existing\n    // element props.\n    var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n    var element = wrapElement.props;\n    var props = assign({}, element.props, partialProps);\n    topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n    enqueueUpdate(topLevelWrapper);\n  },\n\n  /**\n   * Replaces all of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} props New props.\n   * @internal\n   */\n  enqueueReplaceProps: function (publicInstance, props) {\n    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceProps');\n    if (!internalInstance) {\n      return;\n    }\n    ReactUpdateQueue.enqueueReplacePropsInternal(internalInstance, props);\n  },\n\n  enqueueReplacePropsInternal: function (internalInstance, props) {\n    var topLevelWrapper = internalInstance._topLevelWrapper;\n    !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'replaceProps(...): You called `replaceProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n    // Merge with the pending element if it exists, otherwise with existing\n    // element props.\n    var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n    var element = wrapElement.props;\n    topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n    enqueueUpdate(topLevelWrapper);\n  },\n\n  enqueueElementInternal: function (internalInstance, newElement) {\n    internalInstance._pendingElement = newElement;\n    enqueueUpdate(internalInstance);\n  }\n\n};\n\nmodule.exports = ReactUpdateQueue;"
    },
    {
      "id": 341,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
      "index": 341,
      "index2": 333,
      "size": 8542,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "23:19-44"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "26:19-44"
        },
        {
          "moduleId": 340,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdateQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdateQueue.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "17:19-44"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "18:19-44"
        },
        {
          "moduleId": 379,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "14:19-44"
        },
        {
          "moduleId": 392,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "17:19-44"
        },
        {
          "moduleId": 399,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelect.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "16:19-44"
        },
        {
          "moduleId": 400,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "16:19-44"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "20:19-44"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "23:19-44"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactUpdates",
          "loc": "20:19-44"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactPerf = require('./ReactPerf');\nvar ReactReconciler = require('./ReactReconciler');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar dirtyComponents = [];\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n  !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : undefined;\n}\n\nvar NESTED_UPDATES = {\n  initialize: function () {\n    this.dirtyComponentsLength = dirtyComponents.length;\n  },\n  close: function () {\n    if (this.dirtyComponentsLength !== dirtyComponents.length) {\n      // Additional updates were enqueued by componentDidUpdate handlers or\n      // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n      // these new updates so that if A's componentDidUpdate calls setState on\n      // B, B will update before the callback A's updater provided when calling\n      // setState.\n      dirtyComponents.splice(0, this.dirtyComponentsLength);\n      flushBatchedUpdates();\n    } else {\n      dirtyComponents.length = 0;\n    }\n  }\n};\n\nvar UPDATE_QUEUEING = {\n  initialize: function () {\n    this.callbackQueue.reset();\n  },\n  close: function () {\n    this.callbackQueue.notifyAll();\n  }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n  this.reinitializeTransaction();\n  this.dirtyComponentsLength = null;\n  this.callbackQueue = CallbackQueue.getPooled();\n  this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* forceHTML */false);\n}\n\nassign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  destructor: function () {\n    this.dirtyComponentsLength = null;\n    CallbackQueue.release(this.callbackQueue);\n    this.callbackQueue = null;\n    ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n    this.reconcileTransaction = null;\n  },\n\n  perform: function (method, scope, a) {\n    // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n    // with this transaction's wrappers around it.\n    return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n  }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n  ensureInjected();\n  batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n  return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n  var len = transaction.dirtyComponentsLength;\n  !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : undefined;\n\n  // Since reconciling a component higher in the owner hierarchy usually (not\n  // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n  // them before their children by sorting the array.\n  dirtyComponents.sort(mountOrderComparator);\n\n  for (var i = 0; i < len; i++) {\n    // If a component is unmounted before pending changes apply, it will still\n    // be here, but we assume that it has cleared its _pendingCallbacks and\n    // that performUpdateIfNecessary is a noop.\n    var component = dirtyComponents[i];\n\n    // If performUpdateIfNecessary happens to enqueue any new updates, we\n    // shouldn't execute the callbacks until the next render happens, so\n    // stash the callbacks first\n    var callbacks = component._pendingCallbacks;\n    component._pendingCallbacks = null;\n\n    ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction);\n\n    if (callbacks) {\n      for (var j = 0; j < callbacks.length; j++) {\n        transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n      }\n    }\n  }\n}\n\nvar flushBatchedUpdates = function () {\n  // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n  // array and perform any updates enqueued by mount-ready handlers (i.e.,\n  // componentDidUpdate) but we need to check here too in order to catch\n  // updates enqueued by setState callbacks and asap calls.\n  while (dirtyComponents.length || asapEnqueued) {\n    if (dirtyComponents.length) {\n      var transaction = ReactUpdatesFlushTransaction.getPooled();\n      transaction.perform(runBatchedUpdates, null, transaction);\n      ReactUpdatesFlushTransaction.release(transaction);\n    }\n\n    if (asapEnqueued) {\n      asapEnqueued = false;\n      var queue = asapCallbackQueue;\n      asapCallbackQueue = CallbackQueue.getPooled();\n      queue.notifyAll();\n      CallbackQueue.release(queue);\n    }\n  }\n};\nflushBatchedUpdates = ReactPerf.measure('ReactUpdates', 'flushBatchedUpdates', flushBatchedUpdates);\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n  ensureInjected();\n\n  // Various parts of our code (such as ReactCompositeComponent's\n  // _renderValidatedComponent) assume that calls to render aren't nested;\n  // verify that that's the case. (This is called by each top-level update\n  // function, like setProps, setState, forceUpdate, etc.; creation and\n  // destruction of top-level components is guarded in ReactMount.)\n\n  if (!batchingStrategy.isBatchingUpdates) {\n    batchingStrategy.batchedUpdates(enqueueUpdate, component);\n    return;\n  }\n\n  dirtyComponents.push(component);\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n  !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : undefined;\n  asapCallbackQueue.enqueue(callback, context);\n  asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n  injectReconcileTransaction: function (ReconcileTransaction) {\n    !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : undefined;\n    ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n  },\n\n  injectBatchingStrategy: function (_batchingStrategy) {\n    !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : undefined;\n    !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : undefined;\n    !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : undefined;\n    batchingStrategy = _batchingStrategy;\n  }\n};\n\nvar ReactUpdates = {\n  /**\n   * React references `ReactReconcileTransaction` using this property in order\n   * to allow dependency injection.\n   *\n   * @internal\n   */\n  ReactReconcileTransaction: null,\n\n  batchedUpdates: batchedUpdates,\n  enqueueUpdate: enqueueUpdate,\n  flushBatchedUpdates: flushBatchedUpdates,\n  injection: ReactUpdatesInjection,\n  asap: asap\n};\n\nmodule.exports = ReactUpdates;"
    },
    {
      "id": 342,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CallbackQueue.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
      "index": 342,
      "index2": 331,
      "size": 2436,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./CallbackQueue",
          "loc": "14:20-46"
        },
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./CallbackQueue",
          "loc": "15:20-46"
        },
        {
          "moduleId": 438,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./CallbackQueue",
          "loc": "16:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n  this._callbacks = null;\n  this._contexts = null;\n}\n\nassign(CallbackQueue.prototype, {\n\n  /**\n   * Enqueues a callback to be invoked when `notifyAll` is invoked.\n   *\n   * @param {function} callback Invoked when `notifyAll` is invoked.\n   * @param {?object} context Context to call `callback` with.\n   * @internal\n   */\n  enqueue: function (callback, context) {\n    this._callbacks = this._callbacks || [];\n    this._contexts = this._contexts || [];\n    this._callbacks.push(callback);\n    this._contexts.push(context);\n  },\n\n  /**\n   * Invokes all enqueued callbacks and clears the queue. This is invoked after\n   * the DOM representation of a component has been created or updated.\n   *\n   * @internal\n   */\n  notifyAll: function () {\n    var callbacks = this._callbacks;\n    var contexts = this._contexts;\n    if (callbacks) {\n      !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : undefined;\n      this._callbacks = null;\n      this._contexts = null;\n      for (var i = 0; i < callbacks.length; i++) {\n        callbacks[i].call(contexts[i]);\n      }\n      callbacks.length = 0;\n      contexts.length = 0;\n    }\n  },\n\n  /**\n   * Resets the internal queue.\n   *\n   * @internal\n   */\n  reset: function () {\n    this._callbacks = null;\n    this._contexts = null;\n  },\n\n  /**\n   * `PooledClass` looks for this.\n   */\n  destructor: function () {\n    this.reset();\n  }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;"
    },
    {
      "id": 343,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/PooledClass.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/PooledClass.js",
      "index": 343,
      "index2": 330,
      "size": 3546,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        },
        {
          "moduleId": 342,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CallbackQueue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CallbackQueue.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "14:18-42"
        },
        {
          "moduleId": 361,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/FallbackCompositionState.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        },
        {
          "moduleId": 364,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        },
        {
          "moduleId": 397,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "14:18-42"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "17:18-42"
        },
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "16:18-42"
        },
        {
          "moduleId": 438,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./PooledClass",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function (copyFieldsFrom) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, copyFieldsFrom);\n    return instance;\n  } else {\n    return new Klass(copyFieldsFrom);\n  }\n};\n\nvar twoArgumentPooler = function (a1, a2) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2);\n    return instance;\n  } else {\n    return new Klass(a1, a2);\n  }\n};\n\nvar threeArgumentPooler = function (a1, a2, a3) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3);\n  }\n};\n\nvar fourArgumentPooler = function (a1, a2, a3, a4) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4);\n  }\n};\n\nvar fiveArgumentPooler = function (a1, a2, a3, a4, a5) {\n  var Klass = this;\n  if (Klass.instancePool.length) {\n    var instance = Klass.instancePool.pop();\n    Klass.call(instance, a1, a2, a3, a4, a5);\n    return instance;\n  } else {\n    return new Klass(a1, a2, a3, a4, a5);\n  }\n};\n\nvar standardReleaser = function (instance) {\n  var Klass = this;\n  !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : undefined;\n  instance.destructor();\n  if (Klass.instancePool.length < Klass.poolSize) {\n    Klass.instancePool.push(instance);\n  }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances (optional).\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function (CopyConstructor, pooler) {\n  var NewKlass = CopyConstructor;\n  NewKlass.instancePool = [];\n  NewKlass.getPooled = pooler || DEFAULT_POOLER;\n  if (!NewKlass.poolSize) {\n    NewKlass.poolSize = DEFAULT_POOL_SIZE;\n  }\n  NewKlass.release = standardReleaser;\n  return NewKlass;\n};\n\nvar PooledClass = {\n  addPoolingTo: addPoolingTo,\n  oneArgumentPooler: oneArgumentPooler,\n  twoArgumentPooler: twoArgumentPooler,\n  threeArgumentPooler: threeArgumentPooler,\n  fourArgumentPooler: fourArgumentPooler,\n  fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;"
    },
    {
      "id": 344,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/Transaction.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/Transaction.js",
      "index": 344,
      "index2": 332,
      "size": 9551,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 341,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactUpdates.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactUpdates.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "18:18-42"
        },
        {
          "moduleId": 379,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "15:18-42"
        },
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "20:18-42"
        },
        {
          "moduleId": 438,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRenderingTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
          "type": "cjs require",
          "userRequest": "./Transaction",
          "loc": "17:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n *                       wrappers (injected at creation time)\n *                                      +        +\n *                                      |        |\n *                    +-----------------|--------|--------------+\n *                    |                 v        |              |\n *                    |      +---------------+   |              |\n *                    |   +--|    wrapper1   |---|----+         |\n *                    |   |  +---------------+   v    |         |\n *                    |   |          +-------------+  |         |\n *                    |   |     +----|   wrapper2  |--------+   |\n *                    |   |     |    +-------------+  |     |   |\n *                    |   |     |                     |     |   |\n *                    |   v     v                     v     v   | wrapper\n *                    | +---+ +---+   +---------+   +---+ +---+ | invariants\n * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | |   | |   |   |         |   |   | |   | |\n *                    | +---+ +---+   +---------+   +---+ +---+ |\n *                    |  initialize                    close    |\n *                    +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n *   Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n *   while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n *   reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n *   content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n *   to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n *   when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n  /**\n   * Sets up this instance so that it is prepared for collecting metrics. Does\n   * so such that this setup method may be used on an instance that is already\n   * initialized, in a way that does not consume additional memory upon reuse.\n   * That can be useful if you decide to make your subclass of this mixin a\n   * \"PooledClass\".\n   */\n  reinitializeTransaction: function () {\n    this.transactionWrappers = this.getTransactionWrappers();\n    if (this.wrapperInitData) {\n      this.wrapperInitData.length = 0;\n    } else {\n      this.wrapperInitData = [];\n    }\n    this._isInTransaction = false;\n  },\n\n  _isInTransaction: false,\n\n  /**\n   * @abstract\n   * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n   */\n  getTransactionWrappers: null,\n\n  isInTransaction: function () {\n    return !!this._isInTransaction;\n  },\n\n  /**\n   * Executes the function within a safety window. Use this for the top level\n   * methods that result in large amounts of computation/mutations that would\n   * need to be safety checked. The optional arguments helps prevent the need\n   * to bind in many cases.\n   *\n   * @param {function} method Member of scope to call.\n   * @param {Object} scope Scope to invoke from.\n   * @param {Object?=} a Argument to pass to the method.\n   * @param {Object?=} b Argument to pass to the method.\n   * @param {Object?=} c Argument to pass to the method.\n   * @param {Object?=} d Argument to pass to the method.\n   * @param {Object?=} e Argument to pass to the method.\n   * @param {Object?=} f Argument to pass to the method.\n   *\n   * @return {*} Return value from `method`.\n   */\n  perform: function (method, scope, a, b, c, d, e, f) {\n    !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : undefined;\n    var errorThrown;\n    var ret;\n    try {\n      this._isInTransaction = true;\n      // Catching errors makes debugging more difficult, so we start with\n      // errorThrown set to true before setting it to false after calling\n      // close -- if it's still set to true in the finally block, it means\n      // one of these calls threw.\n      errorThrown = true;\n      this.initializeAll(0);\n      ret = method.call(scope, a, b, c, d, e, f);\n      errorThrown = false;\n    } finally {\n      try {\n        if (errorThrown) {\n          // If `method` throws, prefer to show that stack trace over any thrown\n          // by invoking `closeAll`.\n          try {\n            this.closeAll(0);\n          } catch (err) {}\n        } else {\n          // Since `method` didn't throw, we don't want to silence the exception\n          // here.\n          this.closeAll(0);\n        }\n      } finally {\n        this._isInTransaction = false;\n      }\n    }\n    return ret;\n  },\n\n  initializeAll: function (startIndex) {\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      try {\n        // Catching errors makes debugging more difficult, so we start with the\n        // OBSERVED_ERROR state before overwriting it with the real return value\n        // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n        // block, it means wrapper.initialize threw.\n        this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n        this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n      } finally {\n        if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n          // The initializer for wrapper i threw an error; initialize the\n          // remaining wrappers but silence any exceptions from them to ensure\n          // that the first error is the one to bubble up.\n          try {\n            this.initializeAll(i + 1);\n          } catch (err) {}\n        }\n      }\n    }\n  },\n\n  /**\n   * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n   * them the respective return values of `this.transactionWrappers.init[i]`\n   * (`close`rs that correspond to initializers that failed will not be\n   * invoked).\n   */\n  closeAll: function (startIndex) {\n    !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : undefined;\n    var transactionWrappers = this.transactionWrappers;\n    for (var i = startIndex; i < transactionWrappers.length; i++) {\n      var wrapper = transactionWrappers[i];\n      var initData = this.wrapperInitData[i];\n      var errorThrown;\n      try {\n        // Catching errors makes debugging more difficult, so we start with\n        // errorThrown set to true before setting it to false after calling\n        // close -- if it's still set to true in the finally block, it means\n        // wrapper.close threw.\n        errorThrown = true;\n        if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n          wrapper.close.call(this, initData);\n        }\n        errorThrown = false;\n      } finally {\n        if (errorThrown) {\n          // The closer for wrapper i threw an error; close the remaining\n          // wrappers but silence any exceptions from them to ensure that the\n          // first error is the one to bubble up.\n          try {\n            this.closeAll(i + 1);\n          } catch (e) {}\n        }\n      }\n    }\n    this.wrapperInitData.length = 0;\n  }\n};\n\nvar Transaction = {\n\n  Mixin: Mixin,\n\n  /**\n   * Token to look for to determine if an error occurred.\n   */\n  OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;"
    },
    {
      "id": 345,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/emptyObject.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/emptyObject.js",
      "index": 345,
      "index2": 335,
      "size": 482,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "29:18-49"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "25:18-49"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "21:18-49"
        },
        {
          "moduleId": 410,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "17:18-49"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/emptyObject",
          "loc": "22:18-49"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;"
    },
    {
      "id": 346,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/containsNode.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/containsNode.js",
      "index": 346,
      "index2": 338,
      "size": 1432,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/containsNode",
          "loc": "30:19-51"
        },
        {
          "moduleId": 413,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/containsNode",
          "loc": "16:19-51"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule containsNode\n * @typechecks\n */\n\n'use strict';\n\nvar isTextNode = require('./isTextNode');\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n *\n * @param {?DOMNode} outerNode Outer DOM node.\n * @param {?DOMNode} innerNode Inner DOM node.\n * @return {boolean} True if `outerNode` contains or is `innerNode`.\n */\nfunction containsNode(_x, _x2) {\n  var _again = true;\n\n  _function: while (_again) {\n    var outerNode = _x,\n        innerNode = _x2;\n    _again = false;\n\n    if (!outerNode || !innerNode) {\n      return false;\n    } else if (outerNode === innerNode) {\n      return true;\n    } else if (isTextNode(outerNode)) {\n      return false;\n    } else if (isTextNode(innerNode)) {\n      _x = outerNode;\n      _x2 = innerNode.parentNode;\n      _again = true;\n      continue _function;\n    } else if (outerNode.contains) {\n      return outerNode.contains(innerNode);\n    } else if (outerNode.compareDocumentPosition) {\n      return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n    } else {\n      return false;\n    }\n  }\n}\n\nmodule.exports = containsNode;"
    },
    {
      "id": 347,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/isTextNode.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/isTextNode.js",
      "index": 347,
      "index2": 337,
      "size": 628,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/containsNode.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 346,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/containsNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/containsNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/containsNode.js",
          "type": "cjs require",
          "userRequest": "./isTextNode",
          "loc": "15:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextNode\n * @typechecks\n */\n\n'use strict';\n\nvar isNode = require('./isNode');\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n  return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;"
    },
    {
      "id": 348,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/isNode.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/isNode.js",
      "index": 348,
      "index2": 336,
      "size": 712,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/isTextNode.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 347,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/isTextNode.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/isTextNode.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/isTextNode.js",
          "type": "cjs require",
          "userRequest": "./isNode",
          "loc": "15:13-32"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isNode\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\n'use strict';\n\nfunction isNode(object) {\n  return !!(object && (typeof Node === 'function' ? object instanceof Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;"
    },
    {
      "id": 349,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
      "index": 349,
      "index2": 346,
      "size": 4520,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./instantiateReactComponent",
          "loc": "31:32-70"
        },
        {
          "moduleId": 402,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildReconciler.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./instantiateReactComponent",
          "loc": "17:32-70"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./instantiateReactComponent",
          "loc": "23:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCompositeComponent = require('./ReactCompositeComponent');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactNativeComponent = require('./ReactNativeComponent');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function () {};\nassign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n  _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n  return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node) {\n  var instance;\n\n  if (node === null || node === false) {\n    instance = new ReactEmptyComponent(instantiateReactComponent);\n  } else if (typeof node === 'object') {\n    var element = node;\n    !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) ' + 'or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : typeof element.type, getDeclarationErrorAddendum(element._owner)) : invariant(false) : undefined;\n\n    // Special case string values\n    if (typeof element.type === 'string') {\n      instance = ReactNativeComponent.createInternalComponent(element);\n    } else if (isInternalComponentType(element.type)) {\n      // This is temporarily available for custom components that are not string\n      // representations. I.e. ART. Once those are updated to use the string\n      // representation, we can drop this code path.\n      instance = new element.type(element);\n    } else {\n      instance = new ReactCompositeComponentWrapper();\n    }\n  } else if (typeof node === 'string' || typeof node === 'number') {\n    instance = ReactNativeComponent.createInstanceForText(node);\n  } else {\n    !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : invariant(false) : undefined;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(typeof instance.construct === 'function' && typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : undefined;\n  }\n\n  // Sets up the instance. This can probably just move into the constructor now.\n  instance.construct(node);\n\n  // These two fields are used by the DOM and ART diffing algorithms\n  // respectively. Instead of using expandos on components, we should be\n  // storing the state needed by the diffing algorithms elsewhere.\n  instance._mountIndex = 0;\n  instance._mountImage = null;\n\n  if (process.env.NODE_ENV !== 'production') {\n    instance._isOwnerNecessary = false;\n    instance._warnedAboutRefsInRender = false;\n  }\n\n  // Internal instances should fully constructed at this point, so they should\n  // not get any new fields added to them at this point.\n  if (process.env.NODE_ENV !== 'production') {\n    if (Object.preventExtensions) {\n      Object.preventExtensions(instance);\n    }\n  }\n\n  return instance;\n}\n\nmodule.exports = instantiateReactComponent;"
    },
    {
      "id": 350,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
      "index": 350,
      "index2": 343,
      "size": 27473,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 349,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactCompositeComponent",
          "loc": "15:30-66"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactPerf = require('./ReactPerf');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum(component) {\n  var owner = component._currentElement._owner || null;\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n  var Component = ReactInstanceMap.get(this)._currentElement.type;\n  return Component(this.props, this.context, this.updater);\n};\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n *   - componentWillMount\n *   - render\n *   - [children's constructors]\n *     - [children's componentWillMount and render]\n *     - [children's componentDidMount]\n *     - componentDidMount\n *\n *       Update Phases:\n *       - componentWillReceiveProps (only called if parent updated)\n *       - shouldComponentUpdate\n *         - componentWillUpdate\n *           - render\n *           - [children's constructors or receive props phases]\n *         - componentDidUpdate\n *\n *     - componentWillUnmount\n *     - [children's componentWillUnmount]\n *   - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n  /**\n   * Base constructor for all composite component.\n   *\n   * @param {ReactElement} element\n   * @final\n   * @internal\n   */\n  construct: function (element) {\n    this._currentElement = element;\n    this._rootNodeID = null;\n    this._instance = null;\n\n    // See ReactUpdateQueue\n    this._pendingElement = null;\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    this._renderedComponent = null;\n\n    this._context = null;\n    this._mountOrder = 0;\n    this._topLevelWrapper = null;\n\n    // See ReactUpdates and ReactUpdateQueue.\n    this._pendingCallbacks = null;\n  },\n\n  /**\n   * Initializes the component, renders markup, and registers event listeners.\n   *\n   * @param {string} rootID DOM ID of the root node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @return {?string} Rendered markup to be inserted into the DOM.\n   * @final\n   * @internal\n   */\n  mountComponent: function (rootID, transaction, context) {\n    this._context = context;\n    this._mountOrder = nextMountID++;\n    this._rootNodeID = rootID;\n\n    var publicProps = this._processProps(this._currentElement.props);\n    var publicContext = this._processContext(context);\n\n    var Component = this._currentElement.type;\n\n    // Initialize the public class\n    var inst;\n    var renderedElement;\n\n    // This is a way to detect if Component is a stateless arrow function\n    // component, which is not newable. It might not be 100% reliable but is\n    // something we can do until we start detecting that Component extends\n    // React.Component. We already assume that typeof Component === 'function'.\n    var canInstantiate = ('prototype' in Component);\n\n    if (canInstantiate) {\n      if (process.env.NODE_ENV !== 'production') {\n        ReactCurrentOwner.current = this;\n        try {\n          inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n        } finally {\n          ReactCurrentOwner.current = null;\n        }\n      } else {\n        inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n      }\n    }\n\n    if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) {\n      renderedElement = inst;\n      inst = new StatelessComponent(Component);\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This will throw later in _renderValidatedComponent, but add an early\n      // warning now to help debugging\n      if (inst.render == null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`, returned ' + 'null/false from a stateless component, or tried to render an ' + 'element whose type is a function that isn\\'t a React component.', Component.displayName || Component.name || 'Component') : undefined;\n      } else {\n        // We support ES6 inheriting from React.Component, the module pattern,\n        // and stateless components, but not ES6 classes that don't extend\n        process.env.NODE_ENV !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined;\n      }\n    }\n\n    // These should be set up in the constructor, but as a convenience for\n    // simpler class abstractions, we set them up after the fact.\n    inst.props = publicProps;\n    inst.context = publicContext;\n    inst.refs = emptyObject;\n    inst.updater = ReactUpdateQueue;\n\n    this._instance = inst;\n\n    // Store a reference from the instance back to the internal representation\n    ReactInstanceMap.set(inst, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      // Since plain JS classes are defined without any special initialization\n      // logic, we can not catch common errors early. Therefore, we have to\n      // catch them here, at initialization time, instead.\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined;\n    }\n\n    var initialState = inst.state;\n    if (initialState === undefined) {\n      inst.state = initialState = null;\n    }\n    !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n\n    if (inst.componentWillMount) {\n      inst.componentWillMount();\n      // When mounting, calls to `setState` by `componentWillMount` will set\n      // `this._pendingStateQueue` without triggering a re-render.\n      if (this._pendingStateQueue) {\n        inst.state = this._processPendingState(inst.props, inst.context);\n      }\n    }\n\n    // If not a stateless component, we now render\n    if (renderedElement === undefined) {\n      renderedElement = this._renderValidatedComponent();\n    }\n\n    this._renderedComponent = this._instantiateReactComponent(renderedElement);\n\n    var markup = ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, this._processChildContext(context));\n    if (inst.componentDidMount) {\n      transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n    }\n\n    return markup;\n  },\n\n  /**\n   * Releases any resources allocated by `mountComponent`.\n   *\n   * @final\n   * @internal\n   */\n  unmountComponent: function () {\n    var inst = this._instance;\n\n    if (inst.componentWillUnmount) {\n      inst.componentWillUnmount();\n    }\n\n    ReactReconciler.unmountComponent(this._renderedComponent);\n    this._renderedComponent = null;\n    this._instance = null;\n\n    // Reset pending fields\n    // Even if this component is scheduled for another update in ReactUpdates,\n    // it would still be ignored because these fields are reset.\n    this._pendingStateQueue = null;\n    this._pendingReplaceState = false;\n    this._pendingForceUpdate = false;\n    this._pendingCallbacks = null;\n    this._pendingElement = null;\n\n    // These fields do not really need to be reset since this object is no\n    // longer accessible.\n    this._context = null;\n    this._rootNodeID = null;\n    this._topLevelWrapper = null;\n\n    // Delete the reference from the instance to this internal representation\n    // which allow the internals to be properly cleaned up even if the user\n    // leaks a reference to the public instance.\n    ReactInstanceMap.remove(inst);\n\n    // Some existing components rely on inst.props even after they've been\n    // destroyed (in event handlers).\n    // TODO: inst.props = null;\n    // TODO: inst.state = null;\n    // TODO: inst.context = null;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _maskContext: function (context) {\n    var maskedContext = null;\n    var Component = this._currentElement.type;\n    var contextTypes = Component.contextTypes;\n    if (!contextTypes) {\n      return emptyObject;\n    }\n    maskedContext = {};\n    for (var contextName in contextTypes) {\n      maskedContext[contextName] = context[contextName];\n    }\n    return maskedContext;\n  },\n\n  /**\n   * Filters the context object to only contain keys specified in\n   * `contextTypes`, and asserts that they are valid.\n   *\n   * @param {object} context\n   * @return {?object}\n   * @private\n   */\n  _processContext: function (context) {\n    var maskedContext = this._maskContext(context);\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.contextTypes) {\n        this._checkPropTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n      }\n    }\n    return maskedContext;\n  },\n\n  /**\n   * @param {object} currentContext\n   * @return {object}\n   * @private\n   */\n  _processChildContext: function (currentContext) {\n    var Component = this._currentElement.type;\n    var inst = this._instance;\n    var childContext = inst.getChildContext && inst.getChildContext();\n    if (childContext) {\n      !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n      if (process.env.NODE_ENV !== 'production') {\n        this._checkPropTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n      }\n      for (var name in childContext) {\n        !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : invariant(false) : undefined;\n      }\n      return assign({}, currentContext, childContext);\n    }\n    return currentContext;\n  },\n\n  /**\n   * Processes props by setting default values for unspecified props and\n   * asserting that the props are valid. Does not mutate its argument; returns\n   * a new props object with defaults merged in.\n   *\n   * @param {object} newProps\n   * @return {object}\n   * @private\n   */\n  _processProps: function (newProps) {\n    if (process.env.NODE_ENV !== 'production') {\n      var Component = this._currentElement.type;\n      if (Component.propTypes) {\n        this._checkPropTypes(Component.propTypes, newProps, ReactPropTypeLocations.prop);\n      }\n    }\n    return newProps;\n  },\n\n  /**\n   * Assert that the props are valid\n   *\n   * @param {object} propTypes Map of prop name to a ReactPropType\n   * @param {object} props\n   * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n   * @private\n   */\n  _checkPropTypes: function (propTypes, props, location) {\n    // TODO: Stop validating prop types here and only use the element\n    // validation.\n    var componentName = this.getName();\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error;\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n          error = propTypes[propName](props, propName, componentName, location);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error instanceof Error) {\n          // We may want to extend this logic for similar errors in\n          // top-level render calls, so I'm abstracting it away into\n          // a function to minimize refactoring in the future\n          var addendum = getDeclarationErrorAddendum(this);\n\n          if (location === ReactPropTypeLocations.prop) {\n            // Preface gives us something to blacklist in warning module\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Composite propType: %s%s', error.message, addendum) : undefined;\n          } else {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Context Types: %s%s', error.message, addendum) : undefined;\n          }\n        }\n      }\n    }\n  },\n\n  receiveComponent: function (nextElement, transaction, nextContext) {\n    var prevElement = this._currentElement;\n    var prevContext = this._context;\n\n    this._pendingElement = null;\n\n    this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n  },\n\n  /**\n   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n   * is set, update the component.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  performUpdateIfNecessary: function (transaction) {\n    if (this._pendingElement != null) {\n      ReactReconciler.receiveComponent(this, this._pendingElement || this._currentElement, transaction, this._context);\n    }\n\n    if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n      this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n    }\n  },\n\n  /**\n   * Perform an update to a mounted component. The componentWillReceiveProps and\n   * shouldComponentUpdate methods are called, then (assuming the update isn't\n   * skipped) the remaining update lifecycle methods are called and the DOM\n   * representation is updated.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevParentElement\n   * @param {ReactElement} nextParentElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n    var inst = this._instance;\n\n    var nextContext = this._context === nextUnmaskedContext ? inst.context : this._processContext(nextUnmaskedContext);\n    var nextProps;\n\n    // Distinguish between a props update versus a simple state update\n    if (prevParentElement === nextParentElement) {\n      // Skip checking prop types again -- we don't read inst.props to avoid\n      // warning for DOM component props in this upgrade\n      nextProps = nextParentElement.props;\n    } else {\n      nextProps = this._processProps(nextParentElement.props);\n      // An update here will schedule an update but immediately set\n      // _pendingStateQueue which will ensure that any state updates gets\n      // immediately reconciled instead of waiting for the next batch.\n\n      if (inst.componentWillReceiveProps) {\n        inst.componentWillReceiveProps(nextProps, nextContext);\n      }\n    }\n\n    var nextState = this._processPendingState(nextProps, nextContext);\n\n    var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : undefined;\n    }\n\n    if (shouldUpdate) {\n      this._pendingForceUpdate = false;\n      // Will set `this.props`, `this.state` and `this.context`.\n      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n    } else {\n      // If it's determined that a component should not update, we still want\n      // to set props and state but we shortcut the rest of the update.\n      this._currentElement = nextParentElement;\n      this._context = nextUnmaskedContext;\n      inst.props = nextProps;\n      inst.state = nextState;\n      inst.context = nextContext;\n    }\n  },\n\n  _processPendingState: function (props, context) {\n    var inst = this._instance;\n    var queue = this._pendingStateQueue;\n    var replace = this._pendingReplaceState;\n    this._pendingReplaceState = false;\n    this._pendingStateQueue = null;\n\n    if (!queue) {\n      return inst.state;\n    }\n\n    if (replace && queue.length === 1) {\n      return queue[0];\n    }\n\n    var nextState = assign({}, replace ? queue[0] : inst.state);\n    for (var i = replace ? 1 : 0; i < queue.length; i++) {\n      var partial = queue[i];\n      assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n    }\n\n    return nextState;\n  },\n\n  /**\n   * Merges new props and state, notifies delegate methods of update and\n   * performs update.\n   *\n   * @param {ReactElement} nextElement Next element\n   * @param {object} nextProps Next public object to set as properties.\n   * @param {?object} nextState Next object to set as state.\n   * @param {?object} nextContext Next public object to set as context.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?object} unmaskedContext\n   * @private\n   */\n  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n    var inst = this._instance;\n\n    var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n    var prevProps;\n    var prevState;\n    var prevContext;\n    if (hasComponentDidUpdate) {\n      prevProps = inst.props;\n      prevState = inst.state;\n      prevContext = inst.context;\n    }\n\n    if (inst.componentWillUpdate) {\n      inst.componentWillUpdate(nextProps, nextState, nextContext);\n    }\n\n    this._currentElement = nextElement;\n    this._context = unmaskedContext;\n    inst.props = nextProps;\n    inst.state = nextState;\n    inst.context = nextContext;\n\n    this._updateRenderedComponent(transaction, unmaskedContext);\n\n    if (hasComponentDidUpdate) {\n      transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n    }\n  },\n\n  /**\n   * Call the component's `render` method and update the DOM accordingly.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   */\n  _updateRenderedComponent: function (transaction, context) {\n    var prevComponentInstance = this._renderedComponent;\n    var prevRenderedElement = prevComponentInstance._currentElement;\n    var nextRenderedElement = this._renderValidatedComponent();\n    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n      ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n    } else {\n      // These two IDs are actually the same! But nothing should rely on that.\n      var thisID = this._rootNodeID;\n      var prevComponentID = prevComponentInstance._rootNodeID;\n      ReactReconciler.unmountComponent(prevComponentInstance);\n\n      this._renderedComponent = this._instantiateReactComponent(nextRenderedElement);\n      var nextMarkup = ReactReconciler.mountComponent(this._renderedComponent, thisID, transaction, this._processChildContext(context));\n      this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n    }\n  },\n\n  /**\n   * @protected\n   */\n  _replaceNodeWithMarkupByID: function (prevComponentID, nextMarkup) {\n    ReactComponentEnvironment.replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n  },\n\n  /**\n   * @protected\n   */\n  _renderValidatedComponentWithoutOwnerOrContext: function () {\n    var inst = this._instance;\n    var renderedComponent = inst.render();\n    if (process.env.NODE_ENV !== 'production') {\n      // We allow auto-mocks to proceed as if they're returning null.\n      if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) {\n        // This is probably bad practice. Consider warning here and\n        // deprecating this convenience.\n        renderedComponent = null;\n      }\n    }\n\n    return renderedComponent;\n  },\n\n  /**\n   * @private\n   */\n  _renderValidatedComponent: function () {\n    var renderedComponent;\n    ReactCurrentOwner.current = this;\n    try {\n      renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n    } finally {\n      ReactCurrentOwner.current = null;\n    }\n    !(\n    // TODO: An `isValidNode` function would probably be more appropriate\n    renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n    return renderedComponent;\n  },\n\n  /**\n   * Lazily allocates the refs object and stores `component` as `ref`.\n   *\n   * @param {string} ref Reference name.\n   * @param {component} component Component to store as `ref`.\n   * @final\n   * @private\n   */\n  attachRef: function (ref, component) {\n    var inst = this.getPublicInstance();\n    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined;\n    var publicComponentInstance = component.getPublicInstance();\n    if (process.env.NODE_ENV !== 'production') {\n      var componentName = component && component.getName ? component.getName() : 'a component';\n      process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined;\n    }\n    var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n    refs[ref] = publicComponentInstance;\n  },\n\n  /**\n   * Detaches a reference name.\n   *\n   * @param {string} ref Name to dereference.\n   * @final\n   * @private\n   */\n  detachRef: function (ref) {\n    var refs = this.getPublicInstance().refs;\n    delete refs[ref];\n  },\n\n  /**\n   * Get a text description of the component that can be used to identify it\n   * in error messages.\n   * @return {string} The name or null.\n   * @internal\n   */\n  getName: function () {\n    var type = this._currentElement.type;\n    var constructor = this._instance && this._instance.constructor;\n    return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n  },\n\n  /**\n   * Get the publicly accessible representation of this component - i.e. what\n   * is exposed by refs and returned by render. Can be null for stateless\n   * components.\n   *\n   * @return {ReactComponent} the public component instance.\n   * @internal\n   */\n  getPublicInstance: function () {\n    var inst = this._instance;\n    if (inst instanceof StatelessComponent) {\n      return null;\n    }\n    return inst;\n  },\n\n  // Stub\n  _instantiateReactComponent: null\n\n};\n\nReactPerf.measureMethods(ReactCompositeComponentMixin, 'ReactCompositeComponent', {\n  mountComponent: 'mountComponent',\n  updateComponent: 'updateComponent',\n  _renderValidatedComponent: '_renderValidatedComponent'\n});\n\nvar ReactCompositeComponent = {\n\n  Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;"
    },
    {
      "id": 351,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponentEnvironment.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponentEnvironment.js",
      "index": 351,
      "index2": 339,
      "size": 1671,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentEnvironment",
          "loc": "14:32-70"
        },
        {
          "moduleId": 401,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentEnvironment",
          "loc": "15:32-70"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactComponentEnvironment",
          "loc": "16:32-70"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar invariant = require('fbjs/lib/invariant');\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n  /**\n   * Optionally injectable environment dependent cleanup hook. (server vs.\n   * browser etc). Example: A browser system caches DOM nodes based on component\n   * ID and must remove that cache entry when this instance is unmounted.\n   */\n  unmountIDFromEnvironment: null,\n\n  /**\n   * Optionally injectable hook for swapping out mount images in the middle of\n   * the tree.\n   */\n  replaceNodeWithMarkupByID: null,\n\n  /**\n   * Optionally injectable hook for processing a queue of child updates. Will\n   * later move into MultiChildComponents.\n   */\n  processChildrenUpdates: null,\n\n  injection: {\n    injectEnvironment: function (environment) {\n      !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : invariant(false) : undefined;\n      ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment;\n      ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID;\n      ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n      injected = true;\n    }\n  }\n\n};\n\nmodule.exports = ReactComponentEnvironment;"
    },
    {
      "id": 352,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypeLocations.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypeLocations.js",
      "index": 352,
      "index2": 340,
      "size": 549,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "19:29-64"
        },
        {
          "moduleId": 393,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/LinkedValueUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "16:29-64"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "16:29-64"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocations",
          "loc": "22:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = require('fbjs/lib/keyMirror');\n\nvar ReactPropTypeLocations = keyMirror({\n  prop: null,\n  context: null,\n  childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;"
    },
    {
      "id": 353,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypeLocationNames.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypeLocationNames.js",
      "index": 353,
      "index2": 341,
      "size": 611,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "20:33-72"
        },
        {
          "moduleId": 394,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypes.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "15:33-72"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "17:33-72"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypeLocationNames",
          "loc": "23:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (process.env.NODE_ENV !== 'production') {\n  ReactPropTypeLocationNames = {\n    prop: 'prop',\n    context: 'context',\n    childContext: 'child context'\n  };\n}\n\nmodule.exports = ReactPropTypeLocationNames;"
    },
    {
      "id": 354,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/shouldUpdateReactComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/shouldUpdateReactComponent.js",
      "index": 354,
      "index2": 342,
      "size": 1488,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./shouldUpdateReactComponent",
          "loc": "34:33-72"
        },
        {
          "moduleId": 350,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactCompositeComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactCompositeComponent.js",
          "type": "cjs require",
          "userRequest": "./shouldUpdateReactComponent",
          "loc": "27:33-72"
        },
        {
          "moduleId": 402,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildReconciler.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./shouldUpdateReactComponent",
          "loc": "18:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n  var prevEmpty = prevElement === null || prevElement === false;\n  var nextEmpty = nextElement === null || nextElement === false;\n  if (prevEmpty || nextEmpty) {\n    return prevEmpty === nextEmpty;\n  }\n\n  var prevType = typeof prevElement;\n  var nextType = typeof nextElement;\n  if (prevType === 'string' || prevType === 'number') {\n    return nextType === 'string' || nextType === 'number';\n  } else {\n    return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n  }\n  return false;\n}\n\nmodule.exports = shouldUpdateReactComponent;"
    },
    {
      "id": 355,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEmptyComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEmptyComponent.js",
      "index": 355,
      "index2": 344,
      "size": 1678,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 349,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponent",
          "loc": "16:26-58"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactEmptyComponent",
          "loc": "18:26-58"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactEmptyComponentRegistry = require('./ReactEmptyComponentRegistry');\nvar ReactReconciler = require('./ReactReconciler');\n\nvar assign = require('./Object.assign');\n\nvar placeholderElement;\n\nvar ReactEmptyComponentInjection = {\n  injectEmptyComponent: function (component) {\n    placeholderElement = ReactElement.createElement(component);\n  }\n};\n\nvar ReactEmptyComponent = function (instantiate) {\n  this._currentElement = null;\n  this._rootNodeID = null;\n  this._renderedComponent = instantiate(placeholderElement);\n};\nassign(ReactEmptyComponent.prototype, {\n  construct: function (element) {},\n  mountComponent: function (rootID, transaction, context) {\n    ReactEmptyComponentRegistry.registerNullComponentID(rootID);\n    this._rootNodeID = rootID;\n    return ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, context);\n  },\n  receiveComponent: function () {},\n  unmountComponent: function (rootID, transaction, context) {\n    ReactReconciler.unmountComponent(this._renderedComponent);\n    ReactEmptyComponentRegistry.deregisterNullComponentID(this._rootNodeID);\n    this._rootNodeID = null;\n    this._renderedComponent = null;\n  }\n});\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;"
    },
    {
      "id": 356,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactNativeComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNativeComponent.js",
      "index": 356,
      "index2": 345,
      "size": 3020,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 349,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/instantiateReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/instantiateReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactNativeComponent",
          "loc": "17:27-60"
        },
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactNativeComponent",
          "loc": "20:27-60"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNativeComponent\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar autoGenerateWrapperClass = null;\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around native tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactNativeComponentInjection = {\n  // This accepts a class that receives the tag string. This is a catch all\n  // that can render any kind of tag.\n  injectGenericComponentClass: function (componentClass) {\n    genericComponentClass = componentClass;\n  },\n  // This accepts a text component class that takes the text string to be\n  // rendered as props.\n  injectTextComponentClass: function (componentClass) {\n    textComponentClass = componentClass;\n  },\n  // This accepts a keyed object with classes as values. Each key represents a\n  // tag. That particular tag will use this class instead of the generic one.\n  injectComponentClasses: function (componentClasses) {\n    assign(tagToComponentClass, componentClasses);\n  }\n};\n\n/**\n * Get a composite component wrapper class for a specific tag.\n *\n * @param {ReactElement} element The tag for which to get the class.\n * @return {function} The React class constructor function.\n */\nfunction getComponentClassForElement(element) {\n  if (typeof element.type === 'function') {\n    return element.type;\n  }\n  var tag = element.type;\n  var componentClass = tagToComponentClass[tag];\n  if (componentClass == null) {\n    tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag);\n  }\n  return componentClass;\n}\n\n/**\n * Get a native internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n  !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : undefined;\n  return new genericComponentClass(element.type, element.props);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n  return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n  return component instanceof textComponentClass;\n}\n\nvar ReactNativeComponent = {\n  getComponentClassForElement: getComponentClassForElement,\n  createInternalComponent: createInternalComponent,\n  createInstanceForText: createInstanceForText,\n  isTextComponent: isTextComponent,\n  injection: ReactNativeComponentInjection\n};\n\nmodule.exports = ReactNativeComponent;"
    },
    {
      "id": 357,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/validateDOMNesting.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/validateDOMNesting.js",
      "index": 357,
      "index2": 347,
      "size": 13117,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 293,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextComponent.js",
          "type": "cjs require",
          "userRequest": "./validateDOMNesting",
          "loc": "23:25-56"
        },
        {
          "moduleId": 315,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMount.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMount.js",
          "type": "cjs require",
          "userRequest": "./validateDOMNesting",
          "loc": "35:25-56"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./validateDOMNesting",
          "loc": "43:25-56"
        }
      ],
      "source": "/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n  var buttonScopeTags = inScopeTags.concat(['button']);\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n  var emptyAncestorInfo = {\n    parentTag: null,\n\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  var updatedAncestorInfo = function (oldInfo, tag, instance) {\n    var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo);\n    var info = { tag: tag, instance: instance };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    }\n\n    // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.parentTag = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n\n  /**\n   * Returns whether\n   */\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n      case 'option':\n        return tag === '#text';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n      case 'html':\n        return tag === 'head' || tag === 'body';\n    }\n\n    // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frame':\n      case 'head':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n\n      case 'pre':\n      case 'listing':\n\n      case 'table':\n\n      case 'hr':\n\n      case 'xmp':\n\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  /**\n   * Given a ReactCompositeComponent instance, return a list of its recursive\n   * owners, starting at the root and ending with the instance itself.\n   */\n  var findOwnerStack = function (instance) {\n    if (!instance) {\n      return [];\n    }\n\n    var stack = [];\n    /*eslint-disable space-after-keywords */\n    do {\n      /*eslint-enable space-after-keywords */\n      stack.push(instance);\n    } while (instance = instance._currentElement._owner);\n    stack.reverse();\n    return stack;\n  };\n\n  var didWarn = {};\n\n  validateDOMNesting = function (childTag, childInstance, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.parentTag;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var problematic = invalidParent || invalidAncestor;\n\n    if (problematic) {\n      var ancestorTag = problematic.tag;\n      var ancestorInstance = problematic.instance;\n\n      var childOwner = childInstance && childInstance._currentElement._owner;\n      var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n      var childOwners = findOwnerStack(childOwner);\n      var ancestorOwners = findOwnerStack(ancestorOwner);\n\n      var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n      var i;\n\n      var deepestCommon = -1;\n      for (i = 0; i < minStackLen; i++) {\n        if (childOwners[i] === ancestorOwners[i]) {\n          deepestCommon = i;\n        } else {\n          break;\n        }\n      }\n\n      var UNKNOWN = '(unknown)';\n      var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n        return inst.getName() || UNKNOWN;\n      });\n      var ownerInfo = [].concat(\n      // If the parent and child instances have a common owner ancestor, start\n      // with that -- otherwise we just start with the parent's owners.\n      deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n      // If we're warning about an invalid (non-parent) ancestry, add '...'\n      invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n      var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n      if (didWarn[warnKey]) {\n        return;\n      }\n      didWarn[warnKey] = true;\n\n      if (invalidParent) {\n        var info = '';\n        if (ancestorTag === 'table' && childTag === 'tr') {\n          info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n        }\n        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a child of <%s>. ' + 'See %s.%s', childTag, ancestorTag, ownerInfo, info) : undefined;\n      } else {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a descendant of ' + '<%s>. See %s.', childTag, ancestorTag, ownerInfo) : undefined;\n      }\n    }\n  };\n\n  validateDOMNesting.ancestorInfoContextKey = '__validateDOMNesting_ancestorInfo$' + Math.random().toString(36).slice(2);\n\n  validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n  // For testing\n  validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.parentTag;\n    var parentTag = parentInfo && parentInfo.tag;\n    return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n  };\n}\n\nmodule.exports = validateDOMNesting;"
    },
    {
      "id": 358,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
      "index": 358,
      "index2": 426,
      "size": 3986,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultInjection",
          "loc": "18:28-62"
        },
        {
          "moduleId": 435,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMServer.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultInjection",
          "loc": "14:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = require('./BeforeInputEventPlugin');\nvar ChangeEventPlugin = require('./ChangeEventPlugin');\nvar ClientReactRootIndex = require('./ClientReactRootIndex');\nvar DefaultEventPluginOrder = require('./DefaultEventPluginOrder');\nvar EnterLeaveEventPlugin = require('./EnterLeaveEventPlugin');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar HTMLDOMPropertyConfig = require('./HTMLDOMPropertyConfig');\nvar ReactBrowserComponentMixin = require('./ReactBrowserComponentMixin');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactDOMComponent = require('./ReactDOMComponent');\nvar ReactDOMTextComponent = require('./ReactDOMTextComponent');\nvar ReactEventListener = require('./ReactEventListener');\nvar ReactInjection = require('./ReactInjection');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactReconcileTransaction = require('./ReactReconcileTransaction');\nvar SelectEventPlugin = require('./SelectEventPlugin');\nvar ServerReactRootIndex = require('./ServerReactRootIndex');\nvar SimpleEventPlugin = require('./SimpleEventPlugin');\nvar SVGDOMPropertyConfig = require('./SVGDOMPropertyConfig');\n\nvar alreadyInjected = false;\n\nfunction inject() {\n  if (alreadyInjected) {\n    // TODO: This is currently true because these injections are shared between\n    // the client and the server package. They should be built independently\n    // and not share any injection state. Then this problem will be solved.\n    return;\n  }\n  alreadyInjected = true;\n\n  ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n  /**\n   * Inject modules for resolving DOM hierarchy and plugin ordering.\n   */\n  ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n  ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);\n  ReactInjection.EventPluginHub.injectMount(ReactMount);\n\n  /**\n   * Some important event plugins included by default (without having to require\n   * them).\n   */\n  ReactInjection.EventPluginHub.injectEventPluginsByName({\n    SimpleEventPlugin: SimpleEventPlugin,\n    EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n    ChangeEventPlugin: ChangeEventPlugin,\n    SelectEventPlugin: SelectEventPlugin,\n    BeforeInputEventPlugin: BeforeInputEventPlugin\n  });\n\n  ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent);\n\n  ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n  ReactInjection.Class.injectMixin(ReactBrowserComponentMixin);\n\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n  ReactInjection.EmptyComponent.injectEmptyComponent('noscript');\n\n  ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n  ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n  ReactInjection.RootIndex.injectCreateReactRootIndex(ExecutionEnvironment.canUseDOM ? ClientReactRootIndex.createReactRootIndex : ServerReactRootIndex.createReactRootIndex);\n\n  ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n\n  if (process.env.NODE_ENV !== 'production') {\n    var url = ExecutionEnvironment.canUseDOM && window.location.href || '';\n    if (/[?&]react_perf\\b/.test(url)) {\n      var ReactDefaultPerf = require('./ReactDefaultPerf');\n      ReactDefaultPerf.start();\n    }\n  }\n}\n\nmodule.exports = {\n  inject: inject\n};"
    },
    {
      "id": 359,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
      "index": 359,
      "index2": 359,
      "size": 14866,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./BeforeInputEventPlugin",
          "loc": "14:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar FallbackCompositionState = require('./FallbackCompositionState');\nvar SyntheticCompositionEvent = require('./SyntheticCompositionEvent');\nvar SyntheticInputEvent = require('./SyntheticInputEvent');\n\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n  var opera = window.opera;\n  return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBeforeInput: null }),\n      captured: keyOf({ onBeforeInputCapture: null })\n    },\n    dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionEnd: null }),\n      captured: keyOf({ onCompositionEndCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionStart: null }),\n      captured: keyOf({ onCompositionStartCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCompositionUpdate: null }),\n      captured: keyOf({ onCompositionUpdateCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n  }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n  // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionStart:\n      return eventTypes.compositionStart;\n    case topLevelTypes.topCompositionEnd:\n      return eventTypes.compositionEnd;\n    case topLevelTypes.topCompositionUpdate:\n      return eventTypes.compositionUpdate;\n  }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topKeyUp:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n    case topLevelTypes.topKeyDown:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n    case topLevelTypes.topKeyPress:\n    case topLevelTypes.topMouseDown:\n    case topLevelTypes.topBlur:\n      // Events are not possible without cancelling IME.\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n  return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n  var eventType;\n  var fallbackData;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!currentComposition) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!currentComposition && eventType === eventTypes.compositionStart) {\n      currentComposition = FallbackCompositionState.getPooled(topLevelTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (currentComposition) {\n        fallbackData = currentComposition.getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case topLevelTypes.topCompositionEnd:\n      return getDataFromCustomEvent(nativeEvent);\n    case topLevelTypes.topKeyPress:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case topLevelTypes.topTextInput:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data;\n\n      // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to blacklist it.\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  if (currentComposition) {\n    if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = currentComposition.getData();\n      FallbackCompositionState.release(currentComposition);\n      currentComposition = null;\n      return chars;\n    }\n    return null;\n  }\n\n  switch (topLevelType) {\n    case topLevelTypes.topPaste:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n    case topLevelTypes.topKeyPress:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n        return String.fromCharCode(nativeEvent.which);\n      }\n      return null;\n    case topLevelTypes.topCompositionEnd:\n      return useFallbackCompositionData ? null : nativeEvent.data;\n    default:\n      return null;\n  }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n  var chars;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  }\n\n  // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n  event.data = chars;\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    return [extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget)];\n  }\n};\n\nmodule.exports = BeforeInputEventPlugin;"
    },
    {
      "id": 360,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EventPropagators.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EventPropagators.js",
      "index": 360,
      "index2": 352,
      "size": 5224,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        },
        {
          "moduleId": 372,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "15:23-52"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./EventPropagators",
          "loc": "16:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\n\nvar warning = require('fbjs/lib/warning');\n\nvar accumulateInto = require('./accumulateInto');\nvar forEachAccumulated = require('./forEachAccumulated');\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(id, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(id, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(domID, upwards, event) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(domID, 'Dispatching id must not be null') : undefined;\n  }\n  var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n  var listener = listenerAtPhase(domID, event, phase);\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);\n  }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(event.dispatchMarker, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    EventPluginHub.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(event.dispatchMarker, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(id, ignoredDirection, event) {\n  if (event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(id, registrationName);\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchIDs = accumulateInto(event._dispatchIDs, id);\n    }\n  }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event.dispatchMarker, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, fromID, toID) {\n  EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(fromID, toID, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n  accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n  accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n  accumulateDirectDispatches: accumulateDirectDispatches,\n  accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;"
    },
    {
      "id": 361,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/FallbackCompositionState.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
      "index": 361,
      "index2": 354,
      "size": 2493,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./FallbackCompositionState",
          "loc": "18:31-68"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n  this._root = root;\n  this._startText = this.getText();\n  this._fallbackText = null;\n}\n\nassign(FallbackCompositionState.prototype, {\n  destructor: function () {\n    this._root = null;\n    this._startText = null;\n    this._fallbackText = null;\n  },\n\n  /**\n   * Get current text of input.\n   *\n   * @return {string}\n   */\n  getText: function () {\n    if ('value' in this._root) {\n      return this._root.value;\n    }\n    return this._root[getTextContentAccessor()];\n  },\n\n  /**\n   * Determine the differing substring between the initially stored\n   * text content and the current content.\n   *\n   * @return {string}\n   */\n  getData: function () {\n    if (this._fallbackText) {\n      return this._fallbackText;\n    }\n\n    var start;\n    var startValue = this._startText;\n    var startLength = startValue.length;\n    var end;\n    var endValue = this.getText();\n    var endLength = endValue.length;\n\n    for (start = 0; start < startLength; start++) {\n      if (startValue[start] !== endValue[start]) {\n        break;\n      }\n    }\n\n    var minEnd = startLength - start;\n    for (end = 1; end <= minEnd; end++) {\n      if (startValue[startLength - end] !== endValue[endLength - end]) {\n        break;\n      }\n    }\n\n    var sliceTail = end > 1 ? 1 - end : undefined;\n    this._fallbackText = endValue.slice(start, sliceTail);\n    return this._fallbackText;\n  }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;"
    },
    {
      "id": 362,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getTextContentAccessor.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getTextContentAccessor.js",
      "index": 362,
      "index2": 353,
      "size": 994,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/FallbackCompositionState.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 361,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/FallbackCompositionState.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/FallbackCompositionState.js",
          "type": "cjs require",
          "userRequest": "./getTextContentAccessor",
          "loc": "18:29-64"
        },
        {
          "moduleId": 414,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
          "type": "cjs require",
          "userRequest": "./getTextContentAccessor",
          "loc": "17:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n  if (!contentKey && ExecutionEnvironment.canUseDOM) {\n    // Prefer textContent to innerText because many browsers support both but\n    // SVG <text> elements don't support innerText even when <div> does.\n    contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n  }\n  return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;"
    },
    {
      "id": 363,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticCompositionEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticCompositionEvent.js",
      "index": 363,
      "index2": 356,
      "size": 1161,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticCompositionEvent",
          "loc": "19:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;"
    },
    {
      "id": 364,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticEvent.js",
      "index": 364,
      "index2": 355,
      "size": 5789,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 363,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticCompositionEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticCompositionEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticCompositionEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        },
        {
          "moduleId": 365,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticInputEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticInputEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticInputEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "19:21-48"
        },
        {
          "moduleId": 374,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticUIEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticUIEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticUIEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "18:21-48"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "19:21-48"
        },
        {
          "moduleId": 420,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticClipboardEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticClipboardEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticClipboardEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticEvent",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n  type: null,\n  target: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: emptyFunction.thatReturnsNull,\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n */\nfunction SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  this.dispatchConfig = dispatchConfig;\n  this.dispatchMarker = dispatchMarker;\n  this.nativeEvent = nativeEvent;\n\n  var Interface = this.constructor.Interface;\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n    var normalize = Interface[propName];\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      if (propName === 'target') {\n        this.target = nativeEventTarget;\n      } else {\n        this[propName] = nativeEvent[propName];\n      }\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n  if (defaultPrevented) {\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n  }\n  this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n}\n\nassign(SyntheticEvent.prototype, {\n\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `preventDefault` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n    }\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else {\n      event.returnValue = false;\n    }\n    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n  },\n\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `stopPropagation` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n    }\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else {\n      event.cancelBubble = true;\n    }\n    this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = emptyFunction.thatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: emptyFunction.thatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n    for (var propName in Interface) {\n      this[propName] = null;\n    }\n    this.dispatchConfig = null;\n    this.dispatchMarker = null;\n    this.nativeEvent = null;\n  }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n  var Super = this;\n\n  var prototype = Object.create(Super.prototype);\n  assign(prototype, Class.prototype);\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n\n  Class.Interface = assign({}, Super.Interface, Interface);\n  Class.augmentClass = Super.augmentClass;\n\n  PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;"
    },
    {
      "id": 365,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticInputEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticInputEvent.js",
      "index": 365,
      "index2": 357,
      "size": 1145,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticInputEvent",
          "loc": "20:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\nvar InputEventInterface = {\n  data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;"
    },
    {
      "id": 366,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/keyOf.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/keyOf.js",
      "index": 366,
      "index2": 358,
      "size": 1113,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 359,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/BeforeInputEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/BeforeInputEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "22:12-37"
        },
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "24:12-37"
        },
        {
          "moduleId": 371,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DefaultEventPluginOrder.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DefaultEventPluginOrder.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DefaultEventPluginOrder.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "14:12-37"
        },
        {
          "moduleId": 372,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "20:12-37"
        },
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "39:12-37"
        },
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "24:12-37"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "22:12-37"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/keyOf",
          "loc": "31:12-37"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\n\"use strict\";\n\nvar keyOf = function (oneKeyObj) {\n  var key;\n  for (key in oneKeyObj) {\n    if (!oneKeyObj.hasOwnProperty(key)) {\n      continue;\n    }\n    return key;\n  }\n  return null;\n};\n\nmodule.exports = keyOf;"
    },
    {
      "id": 367,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
      "index": 367,
      "index2": 362,
      "size": 11501,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ChangeEventPlugin",
          "loc": "15:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPluginHub = require('./EventPluginHub');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactUpdates = require('./ReactUpdates');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\nvar isEventSupported = require('./isEventSupported');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onChange: null }),\n      captured: keyOf({ onChangeCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n  }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementID = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // See `handleChange` comment below\n  doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = SyntheticEvent.getPooled(eventTypes.change, activeElementID, nativeEvent, getEventTarget(nativeEvent));\n  EventPropagators.accumulateTwoPhaseDispatches(event);\n\n  // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n  ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  EventPluginHub.enqueueEvents(event);\n  EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetID) {\n  activeElement = target;\n  activeElementID = targetID;\n  activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n  if (!activeElement) {\n    return;\n  }\n  activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n  activeElement = null;\n  activeElementID = null;\n}\n\nfunction getTargetIDForChangeEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topChange) {\n    return topLevelTargetID;\n  }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForChangeEventIE8();\n    startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForChangeEventIE8();\n  }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events\n  isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);\n}\n\n/**\n * (For old IE.) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n  get: function () {\n    return activeElementValueProp.get.call(this);\n  },\n  set: function (val) {\n    // Cast to a string so we can do equality checks.\n    activeElementValue = '' + val;\n    activeElementValueProp.set.call(this, val);\n  }\n};\n\n/**\n * (For old IE.) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetID) {\n  activeElement = target;\n  activeElementID = targetID;\n  activeElementValue = target.value;\n  activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n  // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n  // on DOM elements\n  Object.defineProperty(activeElement, 'value', newValueProp);\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For old IE.) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n\n  // delete restores the original property definition\n  delete activeElement.value;\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n  activeElement = null;\n  activeElementID = null;\n  activeElementValue = null;\n  activeElementValueProp = null;\n}\n\n/**\n * (For old IE.) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n  var value = nativeEvent.srcElement.value;\n  if (value === activeElementValue) {\n    return;\n  }\n  activeElementValue = value;\n\n  manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetIDForInputEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topInput) {\n    // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n    // what we want so fall through here and trigger an abstract event\n    return topLevelTargetID;\n  }\n}\n\n// For IE8 and IE9.\nfunction handleEventsForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topFocus) {\n    // In IE8, we can capture almost all .value changes by adding a\n    // propertychange handler and looking for events with propertyName\n    // equal to 'value'\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(topLevelTarget, topLevelTargetID);\n  } else if (topLevelType === topLevelTypes.topBlur) {\n    stopWatchingForValueChange();\n  }\n}\n\n// For IE8 and IE9.\nfunction getTargetIDForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    if (activeElement && activeElement.value !== activeElementValue) {\n      activeElementValue = activeElement.value;\n      return activeElementID;\n    }\n  }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetIDForClickEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n  if (topLevelType === topLevelTypes.topClick) {\n    return topLevelTargetID;\n  }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n\n    var getTargetIDFunc, handleEventFunc;\n    if (shouldUseChangeEvent(topLevelTarget)) {\n      if (doesChangeEventBubble) {\n        getTargetIDFunc = getTargetIDForChangeEvent;\n      } else {\n        handleEventFunc = handleEventsForChangeEventIE8;\n      }\n    } else if (isTextInputElement(topLevelTarget)) {\n      if (isInputEventSupported) {\n        getTargetIDFunc = getTargetIDForInputEvent;\n      } else {\n        getTargetIDFunc = getTargetIDForInputEventIE;\n        handleEventFunc = handleEventsForInputEventIE;\n      }\n    } else if (shouldUseClickEvent(topLevelTarget)) {\n      getTargetIDFunc = getTargetIDForClickEvent;\n    }\n\n    if (getTargetIDFunc) {\n      var targetID = getTargetIDFunc(topLevelType, topLevelTarget, topLevelTargetID);\n      if (targetID) {\n        var event = SyntheticEvent.getPooled(eventTypes.change, targetID, nativeEvent, nativeEventTarget);\n        event.type = 'change';\n        EventPropagators.accumulateTwoPhaseDispatches(event);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, topLevelTarget, topLevelTargetID);\n    }\n  }\n\n};\n\nmodule.exports = ChangeEventPlugin;"
    },
    {
      "id": 368,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getEventTarget.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getEventTarget.js",
      "index": 368,
      "index2": 360,
      "size": 930,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./getEventTarget",
          "loc": "21:21-48"
        },
        {
          "moduleId": 374,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticUIEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticUIEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticUIEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventTarget",
          "loc": "17:21-48"
        },
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "./getEventTarget",
          "loc": "23:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n  var target = nativeEvent.target || nativeEvent.srcElement || window;\n  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n  return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;"
    },
    {
      "id": 369,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/isTextInputElement.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/isTextInputElement.js",
      "index": 369,
      "index2": 361,
      "size": 1029,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 367,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ChangeEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ChangeEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./isTextInputElement",
          "loc": "23:25-56"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./isTextInputElement",
          "loc": "21:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  'color': true,\n  'date': true,\n  'datetime': true,\n  'datetime-local': true,\n  'email': true,\n  'month': true,\n  'number': true,\n  'password': true,\n  'range': true,\n  'search': true,\n  'tel': true,\n  'text': true,\n  'time': true,\n  'url': true,\n  'week': true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea');\n}\n\nmodule.exports = isTextInputElement;"
    },
    {
      "id": 370,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ClientReactRootIndex.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ClientReactRootIndex.js",
      "index": 370,
      "index2": 363,
      "size": 551,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ClientReactRootIndex",
          "loc": "16:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ClientReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar nextReactRootIndex = 0;\n\nvar ClientReactRootIndex = {\n  createReactRootIndex: function () {\n    return nextReactRootIndex++;\n  }\n};\n\nmodule.exports = ClientReactRootIndex;"
    },
    {
      "id": 371,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/DefaultEventPluginOrder.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/DefaultEventPluginOrder.js",
      "index": 371,
      "index2": 364,
      "size": 1261,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./DefaultEventPluginOrder",
          "loc": "17:30-66"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = require('fbjs/lib/keyOf');\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;"
    },
    {
      "id": 372,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
      "index": 372,
      "index2": 368,
      "size": 3905,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./EnterLeaveEventPlugin",
          "loc": "18:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\nvar ReactMount = require('./ReactMount');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\nvar getFirstReactDOM = ReactMount.getFirstReactDOM;\n\nvar eventTypes = {\n  mouseEnter: {\n    registrationName: keyOf({ onMouseEnter: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  },\n  mouseLeave: {\n    registrationName: keyOf({ onMouseLeave: null }),\n    dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n  }\n};\n\nvar extractedEvents = [null, null];\n\nvar EnterLeaveEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      return null;\n    }\n    if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n      // Must not be a mouse in or mouse out - ignoring.\n      return null;\n    }\n\n    var win;\n    if (topLevelTarget.window === topLevelTarget) {\n      // `topLevelTarget` is probably a window object.\n      win = topLevelTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = topLevelTarget.ownerDocument;\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from;\n    var to;\n    var fromID = '';\n    var toID = '';\n    if (topLevelType === topLevelTypes.topMouseOut) {\n      from = topLevelTarget;\n      fromID = topLevelTargetID;\n      to = getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement);\n      if (to) {\n        toID = ReactMount.getID(to);\n      } else {\n        to = win;\n      }\n      to = to || win;\n    } else {\n      from = win;\n      to = topLevelTarget;\n      toID = topLevelTargetID;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, fromID, nativeEvent, nativeEventTarget);\n    leave.type = 'mouseleave';\n    leave.target = from;\n    leave.relatedTarget = to;\n\n    var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, toID, nativeEvent, nativeEventTarget);\n    enter.type = 'mouseenter';\n    enter.target = to;\n    enter.relatedTarget = from;\n\n    EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID);\n\n    extractedEvents[0] = leave;\n    extractedEvents[1] = enter;\n\n    return extractedEvents;\n  }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;"
    },
    {
      "id": 373,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticMouseEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
      "index": 373,
      "index2": 367,
      "size": 2197,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 372,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/EnterLeaveEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/EnterLeaveEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "17:26-58"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "22:26-58"
        },
        {
          "moduleId": 425,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticDragEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticDragEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticDragEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "15:26-58"
        },
        {
          "moduleId": 427,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticWheelEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticWheelEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticWheelEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticMouseEvent",
          "loc": "15:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar ViewportMetrics = require('./ViewportMetrics');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: function (event) {\n    // Webkit, Firefox, IE9+\n    // which:  1 2 3\n    // button: 0 1 2 (standard)\n    var button = event.button;\n    if ('which' in event) {\n      return button;\n    }\n    // IE<9\n    // which:  undefined\n    // button: 0 0 0\n    // button: 1 4 2 (onmouseup)\n    return button === 2 ? 2 : button === 4 ? 1 : 0;\n  },\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  // \"Proprietary\" Interface.\n  pageX: function (event) {\n    return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n  },\n  pageY: function (event) {\n    return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;"
    },
    {
      "id": 374,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticUIEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticUIEvent.js",
      "index": 374,
      "index2": 365,
      "size": 1642,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 373,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticMouseEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "25:23-52"
        },
        {
          "moduleId": 421,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticFocusEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticFocusEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticFocusEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        },
        {
          "moduleId": 422,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        },
        {
          "moduleId": 426,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticTouchEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticTouchEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticTouchEvent.js",
          "type": "cjs require",
          "userRequest": "./SyntheticUIEvent",
          "loc": "15:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getEventTarget = require('./getEventTarget');\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n  view: function (event) {\n    if (event.view) {\n      return event.view;\n    }\n\n    var target = getEventTarget(event);\n    if (target != null && target.window === target) {\n      // target is a window object\n      return target;\n    }\n\n    var doc = target.ownerDocument;\n    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n    if (doc) {\n      return doc.defaultView || doc.parentWindow;\n    } else {\n      return window;\n    }\n  },\n  detail: function (event) {\n    return event.detail || 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;"
    },
    {
      "id": 375,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getEventModifierState.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getEventModifierState.js",
      "index": 375,
      "index2": 366,
      "size": 1298,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticMouseEvent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 373,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticMouseEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticMouseEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventModifierState",
          "loc": "18:28-62"
        },
        {
          "moduleId": 422,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventModifierState",
          "loc": "19:28-62"
        },
        {
          "moduleId": 426,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticTouchEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticTouchEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticTouchEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventModifierState",
          "loc": "17:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n  'Alt': 'altKey',\n  'Control': 'ctrlKey',\n  'Meta': 'metaKey',\n  'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;"
    },
    {
      "id": 376,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/HTMLDOMPropertyConfig.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/HTMLDOMPropertyConfig.js",
      "index": 376,
      "index2": 369,
      "size": 7628,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./HTMLDOMPropertyConfig",
          "loc": "20:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar hasSVG;\nif (ExecutionEnvironment.canUseDOM) {\n  var implementation = document.implementation;\n  hasSVG = implementation && implementation.hasFeature && implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n}\n\nvar HTMLDOMPropertyConfig = {\n  isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n  Properties: {\n    /**\n     * Standard Properties\n     */\n    accept: null,\n    acceptCharset: null,\n    accessKey: null,\n    action: null,\n    allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    allowTransparency: MUST_USE_ATTRIBUTE,\n    alt: null,\n    async: HAS_BOOLEAN_VALUE,\n    autoComplete: null,\n    // autoFocus is polyfilled/normalized by AutoFocusUtils\n    // autoFocus: HAS_BOOLEAN_VALUE,\n    autoPlay: HAS_BOOLEAN_VALUE,\n    capture: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    cellPadding: null,\n    cellSpacing: null,\n    charSet: MUST_USE_ATTRIBUTE,\n    challenge: MUST_USE_ATTRIBUTE,\n    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    classID: MUST_USE_ATTRIBUTE,\n    // To set className on SVG elements, it's necessary to use .setAttribute;\n    // this works on HTML elements too in all browsers except IE8. Conveniently,\n    // IE8 doesn't support SVG and so we can simply use the attribute in\n    // browsers that support SVG and the property in browsers that don't,\n    // regardless of whether the element is HTML or SVG.\n    className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY,\n    cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    colSpan: null,\n    content: null,\n    contentEditable: null,\n    contextMenu: MUST_USE_ATTRIBUTE,\n    controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    coords: null,\n    crossOrigin: null,\n    data: null, // For `<object />` acts as `src`.\n    dateTime: MUST_USE_ATTRIBUTE,\n    'default': HAS_BOOLEAN_VALUE,\n    defer: HAS_BOOLEAN_VALUE,\n    dir: null,\n    disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    download: HAS_OVERLOADED_BOOLEAN_VALUE,\n    draggable: null,\n    encType: null,\n    form: MUST_USE_ATTRIBUTE,\n    formAction: MUST_USE_ATTRIBUTE,\n    formEncType: MUST_USE_ATTRIBUTE,\n    formMethod: MUST_USE_ATTRIBUTE,\n    formNoValidate: HAS_BOOLEAN_VALUE,\n    formTarget: MUST_USE_ATTRIBUTE,\n    frameBorder: MUST_USE_ATTRIBUTE,\n    headers: null,\n    height: MUST_USE_ATTRIBUTE,\n    hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    high: null,\n    href: null,\n    hrefLang: null,\n    htmlFor: null,\n    httpEquiv: null,\n    icon: null,\n    id: MUST_USE_PROPERTY,\n    inputMode: MUST_USE_ATTRIBUTE,\n    integrity: null,\n    is: MUST_USE_ATTRIBUTE,\n    keyParams: MUST_USE_ATTRIBUTE,\n    keyType: MUST_USE_ATTRIBUTE,\n    kind: null,\n    label: null,\n    lang: null,\n    list: MUST_USE_ATTRIBUTE,\n    loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    low: null,\n    manifest: MUST_USE_ATTRIBUTE,\n    marginHeight: null,\n    marginWidth: null,\n    max: null,\n    maxLength: MUST_USE_ATTRIBUTE,\n    media: MUST_USE_ATTRIBUTE,\n    mediaGroup: null,\n    method: null,\n    min: null,\n    minLength: MUST_USE_ATTRIBUTE,\n    multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    name: null,\n    nonce: MUST_USE_ATTRIBUTE,\n    noValidate: HAS_BOOLEAN_VALUE,\n    open: HAS_BOOLEAN_VALUE,\n    optimum: null,\n    pattern: null,\n    placeholder: null,\n    poster: null,\n    preload: null,\n    radioGroup: null,\n    readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    rel: null,\n    required: HAS_BOOLEAN_VALUE,\n    reversed: HAS_BOOLEAN_VALUE,\n    role: MUST_USE_ATTRIBUTE,\n    rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    rowSpan: null,\n    sandbox: null,\n    scope: null,\n    scoped: HAS_BOOLEAN_VALUE,\n    scrolling: null,\n    seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n    shape: null,\n    size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n    sizes: MUST_USE_ATTRIBUTE,\n    span: HAS_POSITIVE_NUMERIC_VALUE,\n    spellCheck: null,\n    src: null,\n    srcDoc: MUST_USE_PROPERTY,\n    srcLang: null,\n    srcSet: MUST_USE_ATTRIBUTE,\n    start: HAS_NUMERIC_VALUE,\n    step: null,\n    style: null,\n    summary: null,\n    tabIndex: null,\n    target: null,\n    title: null,\n    type: null,\n    useMap: null,\n    value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,\n    width: MUST_USE_ATTRIBUTE,\n    wmode: MUST_USE_ATTRIBUTE,\n    wrap: null,\n\n    /**\n     * RDFa Properties\n     */\n    about: MUST_USE_ATTRIBUTE,\n    datatype: MUST_USE_ATTRIBUTE,\n    inlist: MUST_USE_ATTRIBUTE,\n    prefix: MUST_USE_ATTRIBUTE,\n    // property is also supported for OpenGraph in meta tags.\n    property: MUST_USE_ATTRIBUTE,\n    resource: MUST_USE_ATTRIBUTE,\n    'typeof': MUST_USE_ATTRIBUTE,\n    vocab: MUST_USE_ATTRIBUTE,\n\n    /**\n     * Non-standard Properties\n     */\n    // autoCapitalize and autoCorrect are supported in Mobile Safari for\n    // keyboard hints.\n    autoCapitalize: MUST_USE_ATTRIBUTE,\n    autoCorrect: MUST_USE_ATTRIBUTE,\n    // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n    autoSave: null,\n    // color is for Safari mask-icon link\n    color: null,\n    // itemProp, itemScope, itemType are for\n    // Microdata support. See http://schema.org/docs/gs.html\n    itemProp: MUST_USE_ATTRIBUTE,\n    itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n    itemType: MUST_USE_ATTRIBUTE,\n    // itemID and itemRef are for Microdata support as well but\n    // only specified in the the WHATWG spec document. See\n    // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n    itemID: MUST_USE_ATTRIBUTE,\n    itemRef: MUST_USE_ATTRIBUTE,\n    // results show looking glass icon and recent searches on input\n    // search fields in WebKit/Blink\n    results: null,\n    // IE-only attribute that specifies security restrictions on an iframe\n    // as an alternative to the sandbox attribute on IE<10\n    security: MUST_USE_ATTRIBUTE,\n    // IE-only attribute that controls focus behavior\n    unselectable: MUST_USE_ATTRIBUTE\n  },\n  DOMAttributeNames: {\n    acceptCharset: 'accept-charset',\n    className: 'class',\n    htmlFor: 'for',\n    httpEquiv: 'http-equiv'\n  },\n  DOMPropertyNames: {\n    autoComplete: 'autocomplete',\n    autoFocus: 'autofocus',\n    autoPlay: 'autoplay',\n    autoSave: 'autosave',\n    // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter.\n    // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding\n    encType: 'encoding',\n    hrefLang: 'hreflang',\n    radioGroup: 'radiogroup',\n    spellCheck: 'spellcheck',\n    srcDoc: 'srcdoc',\n    srcSet: 'srcset'\n  }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;"
    },
    {
      "id": 377,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserComponentMixin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
      "index": 377,
      "index2": 371,
      "size": 1149,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactBrowserComponentMixin",
          "loc": "21:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserComponentMixin\n */\n\n'use strict';\n\nvar ReactInstanceMap = require('./ReactInstanceMap');\n\nvar findDOMNode = require('./findDOMNode');\nvar warning = require('fbjs/lib/warning');\n\nvar didWarnKey = '_getDOMNodeDidWarn';\n\nvar ReactBrowserComponentMixin = {\n  /**\n   * Returns the DOM node rendered by this component.\n   *\n   * @return {DOMElement} The root node of this component.\n   * @final\n   * @protected\n   */\n  getDOMNode: function () {\n    process.env.NODE_ENV !== 'production' ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'ReactDOM.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined;\n    this.constructor[didWarnKey] = true;\n    return findDOMNode(this);\n  }\n};\n\nmodule.exports = ReactBrowserComponentMixin;"
    },
    {
      "id": 378,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/findDOMNode.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/findDOMNode.js",
      "index": 378,
      "index2": 370,
      "size": 2174,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./findDOMNode",
          "loc": "26:18-42"
        },
        {
          "moduleId": 377,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactBrowserComponentMixin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactBrowserComponentMixin.js",
          "type": "cjs require",
          "userRequest": "./findDOMNode",
          "loc": "16:18-42"
        },
        {
          "moduleId": 381,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/AutoFocusUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
          "type": "cjs require",
          "userRequest": "./findDOMNode",
          "loc": "17:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactInstanceMap = require('./ReactInstanceMap');\nvar ReactMount = require('./ReactMount');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n  if (process.env.NODE_ENV !== 'production') {\n    var owner = ReactCurrentOwner.current;\n    if (owner !== null) {\n      process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n      owner._warnedAboutRefsInRender = true;\n    }\n  }\n  if (componentOrElement == null) {\n    return null;\n  }\n  if (componentOrElement.nodeType === 1) {\n    return componentOrElement;\n  }\n  if (ReactInstanceMap.has(componentOrElement)) {\n    return ReactMount.getNodeFromInstance(componentOrElement);\n  }\n  !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : invariant(false) : undefined;\n  !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined;\n}\n\nmodule.exports = findDOMNode;"
    },
    {
      "id": 379,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultBatchingStrategy.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultBatchingStrategy.js",
      "index": 379,
      "index2": 372,
      "size": 1916,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultBatchingStrategy",
          "loc": "23:35-76"
        },
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultBatchingStrategy",
          "loc": "14:35-76"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar ReactUpdates = require('./ReactUpdates');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\nvar RESET_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: function () {\n    ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n  }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n  initialize: emptyFunction,\n  close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n  this.reinitializeTransaction();\n}\n\nassign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n  isBatchingUpdates: false,\n\n  /**\n   * Call the provided function in a context within which calls to `setState`\n   * and friends are batched such that components aren't updated unnecessarily.\n   */\n  batchedUpdates: function (callback, a, b, c, d, e) {\n    var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n    ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n    // The code is written this way to avoid extra allocations\n    if (alreadyBatchingUpdates) {\n      callback(a, b, c, d, e);\n    } else {\n      transaction.perform(callback, null, a, b, c, d, e);\n    }\n  }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;"
    },
    {
      "id": 380,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
      "index": 380,
      "index2": 397,
      "size": 36947,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMComponent",
          "loc": "24:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n * @typechecks static-only\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar AutoFocusUtils = require('./AutoFocusUtils');\nvar CSSPropertyOperations = require('./CSSPropertyOperations');\nvar DOMProperty = require('./DOMProperty');\nvar DOMPropertyOperations = require('./DOMPropertyOperations');\nvar EventConstants = require('./EventConstants');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactComponentBrowserEnvironment = require('./ReactComponentBrowserEnvironment');\nvar ReactDOMButton = require('./ReactDOMButton');\nvar ReactDOMInput = require('./ReactDOMInput');\nvar ReactDOMOption = require('./ReactDOMOption');\nvar ReactDOMSelect = require('./ReactDOMSelect');\nvar ReactDOMTextarea = require('./ReactDOMTextarea');\nvar ReactMount = require('./ReactMount');\nvar ReactMultiChild = require('./ReactMultiChild');\nvar ReactPerf = require('./ReactPerf');\nvar ReactUpdateQueue = require('./ReactUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar canDefineProperty = require('./canDefineProperty');\nvar escapeTextContentForBrowser = require('./escapeTextContentForBrowser');\nvar invariant = require('fbjs/lib/invariant');\nvar isEventSupported = require('./isEventSupported');\nvar keyOf = require('fbjs/lib/keyOf');\nvar setInnerHTML = require('./setInnerHTML');\nvar setTextContent = require('./setTextContent');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\nvar validateDOMNesting = require('./validateDOMNesting');\nvar warning = require('fbjs/lib/warning');\n\nvar deleteListener = ReactBrowserEventEmitter.deleteListener;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar CHILDREN = keyOf({ children: null });\nvar STYLE = keyOf({ style: null });\nvar HTML = keyOf({ __html: null });\n\nvar ELEMENT_NODE_TYPE = 1;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n  if (internalInstance) {\n    var owner = internalInstance._currentElement._owner || null;\n    if (owner) {\n      var name = owner.getName();\n      if (name) {\n        return ' This DOM node was rendered by `' + name + '`.';\n      }\n    }\n  }\n  return '';\n}\n\nvar legacyPropsDescriptor;\nif (process.env.NODE_ENV !== 'production') {\n  legacyPropsDescriptor = {\n    props: {\n      enumerable: false,\n      get: function () {\n        var component = this._reactInternalComponent;\n        process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .props of a DOM node; instead, ' + 'recreate the props as `render` did originally or read the DOM ' + 'properties/attributes directly from this node (e.g., ' + 'this.refs.box.className).%s', getDeclarationErrorAddendum(component)) : undefined;\n        return component._currentElement.props;\n      }\n    }\n  };\n}\n\nfunction legacyGetDOMNode() {\n  if (process.env.NODE_ENV !== 'production') {\n    var component = this._reactInternalComponent;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .getDOMNode() of a DOM node; ' + 'instead, use the node directly.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  return this;\n}\n\nfunction legacyIsMounted() {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .isMounted() of a DOM node.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  return !!component;\n}\n\nfunction legacySetStateEtc() {\n  if (process.env.NODE_ENV !== 'production') {\n    var component = this._reactInternalComponent;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setState(), .replaceState(), or ' + '.forceUpdate() of a DOM node. This is a no-op.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n}\n\nfunction legacySetProps(partialProps, callback) {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  if (!component) {\n    return;\n  }\n  ReactUpdateQueue.enqueueSetPropsInternal(component, partialProps);\n  if (callback) {\n    ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n  }\n}\n\nfunction legacyReplaceProps(partialProps, callback) {\n  var component = this._reactInternalComponent;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .replaceProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n  }\n  if (!component) {\n    return;\n  }\n  ReactUpdateQueue.enqueueReplacePropsInternal(component, partialProps);\n  if (callback) {\n    ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n  }\n}\n\nfunction friendlyStringify(obj) {\n  if (typeof obj === 'object') {\n    if (Array.isArray(obj)) {\n      return '[' + obj.map(friendlyStringify).join(', ') + ']';\n    } else {\n      var pairs = [];\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) {\n          var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n          pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n        }\n      }\n      return '{' + pairs.join(', ') + '}';\n    }\n  } else if (typeof obj === 'string') {\n    return JSON.stringify(obj);\n  } else if (typeof obj === 'function') {\n    return '[function object]';\n  }\n  // Differs from JSON.stringify in that undefined becauses undefined and that\n  // inf and nan don't become null\n  return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n  if (style1 == null || style2 == null) {\n    return;\n  }\n  if (shallowEqual(style1, style2)) {\n    return;\n  }\n\n  var componentName = component._tag;\n  var owner = component._currentElement._owner;\n  var ownerName;\n  if (owner) {\n    ownerName = owner.getName();\n  }\n\n  var hash = ownerName + '|' + componentName;\n\n  if (styleMutationWarning.hasOwnProperty(hash)) {\n    return;\n  }\n\n  styleMutationWarning[hash] = true;\n\n  process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n  if (!props) {\n    return;\n  }\n  // Note the use of `==` which checks for null or undefined.\n  if (process.env.NODE_ENV !== 'production') {\n    if (voidElementTags[component._tag]) {\n      process.env.NODE_ENV !== 'production' ? warning(props.children == null && props.dangerouslySetInnerHTML == null, '%s is a void element tag and must not have `children` or ' + 'use `props.dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : undefined;\n    }\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined;\n    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined;\n    process.env.NODE_ENV !== 'production' ? warning(!props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : undefined;\n  }\n  !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \\'em\\'}} when ' + 'using JSX.%s', getDeclarationErrorAddendum(component)) : invariant(false) : undefined;\n}\n\nfunction enqueuePutListener(id, registrationName, listener, transaction) {\n  if (process.env.NODE_ENV !== 'production') {\n    // IE8 has no API for event capturing and the `onScroll` event doesn't\n    // bubble.\n    process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : undefined;\n  }\n  var container = ReactMount.findReactContainerForID(id);\n  if (container) {\n    var doc = container.nodeType === ELEMENT_NODE_TYPE ? container.ownerDocument : container;\n    listenTo(registrationName, doc);\n  }\n  transaction.getReactMountReady().enqueue(putListener, {\n    id: id,\n    registrationName: registrationName,\n    listener: listener\n  });\n}\n\nfunction putListener() {\n  var listenerToPut = this;\n  ReactBrowserEventEmitter.putListener(listenerToPut.id, listenerToPut.registrationName, listenerToPut.listener);\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n  topAbort: 'abort',\n  topCanPlay: 'canplay',\n  topCanPlayThrough: 'canplaythrough',\n  topDurationChange: 'durationchange',\n  topEmptied: 'emptied',\n  topEncrypted: 'encrypted',\n  topEnded: 'ended',\n  topError: 'error',\n  topLoadedData: 'loadeddata',\n  topLoadedMetadata: 'loadedmetadata',\n  topLoadStart: 'loadstart',\n  topPause: 'pause',\n  topPlay: 'play',\n  topPlaying: 'playing',\n  topProgress: 'progress',\n  topRateChange: 'ratechange',\n  topSeeked: 'seeked',\n  topSeeking: 'seeking',\n  topStalled: 'stalled',\n  topSuspend: 'suspend',\n  topTimeUpdate: 'timeupdate',\n  topVolumeChange: 'volumechange',\n  topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n  var inst = this;\n  // If a component renders to null or if another component fatals and causes\n  // the state of the tree to be corrupted, `node` here can be null.\n  !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : invariant(false) : undefined;\n  var node = ReactMount.getNode(inst._rootNodeID);\n  !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : invariant(false) : undefined;\n\n  switch (inst._tag) {\n    case 'iframe':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'video':\n    case 'audio':\n\n      inst._wrapperState.listeners = [];\n      // create listener for each media event\n      for (var event in mediaEvents) {\n        if (mediaEvents.hasOwnProperty(event)) {\n          inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n        }\n      }\n\n      break;\n    case 'img':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n      break;\n    case 'form':\n      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n      break;\n  }\n}\n\nfunction mountReadyInputWrapper() {\n  ReactDOMInput.mountReadyWrapper(this);\n}\n\nfunction postUpdateSelectWrapper() {\n  ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special cased tags.\n\nvar omittedCloseTags = {\n  'area': true,\n  'base': true,\n  'br': true,\n  'col': true,\n  'embed': true,\n  'hr': true,\n  'img': true,\n  'input': true,\n  'keygen': true,\n  'link': true,\n  'meta': true,\n  'param': true,\n  'source': true,\n  'track': true,\n  'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n  'listing': true,\n  'pre': true,\n  'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = assign({\n  'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = ({}).hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n  if (!hasOwnProperty.call(validatedTagCache, tag)) {\n    !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : invariant(false) : undefined;\n    validatedTagCache[tag] = true;\n  }\n}\n\nfunction processChildContextDev(context, inst) {\n  // Pass down our tag name to child components for validation purposes\n  context = assign({}, context);\n  var info = context[validateDOMNesting.ancestorInfoContextKey];\n  context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst);\n  return context;\n}\n\nfunction isCustomComponent(tagName, props) {\n  return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n *  - Event listeners: `onClick`, `onMouseDown`, etc.\n *  - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(tag) {\n  validateDangerousTag(tag);\n  this._tag = tag.toLowerCase();\n  this._renderedChildren = null;\n  this._previousStyle = null;\n  this._previousStyleCopy = null;\n  this._rootNodeID = null;\n  this._wrapperState = null;\n  this._topLevelWrapper = null;\n  this._nodeWithLegacyProperties = null;\n  if (process.env.NODE_ENV !== 'production') {\n    this._unprocessedContextDev = null;\n    this._processedContextDev = null;\n  }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n  construct: function (element) {\n    this._currentElement = element;\n  },\n\n  /**\n   * Generates root tag markup then recurses. This method has side effects and\n   * is not idempotent.\n   *\n   * @internal\n   * @param {string} rootID The root DOM ID for this node.\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   * @return {string} The computed markup.\n   */\n  mountComponent: function (rootID, transaction, context) {\n    this._rootNodeID = rootID;\n\n    var props = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'iframe':\n      case 'img':\n      case 'form':\n      case 'video':\n      case 'audio':\n        this._wrapperState = {\n          listeners: null\n        };\n        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n        break;\n      case 'button':\n        props = ReactDOMButton.getNativeProps(this, props, context);\n        break;\n      case 'input':\n        ReactDOMInput.mountWrapper(this, props, context);\n        props = ReactDOMInput.getNativeProps(this, props, context);\n        break;\n      case 'option':\n        ReactDOMOption.mountWrapper(this, props, context);\n        props = ReactDOMOption.getNativeProps(this, props, context);\n        break;\n      case 'select':\n        ReactDOMSelect.mountWrapper(this, props, context);\n        props = ReactDOMSelect.getNativeProps(this, props, context);\n        context = ReactDOMSelect.processChildContext(this, props, context);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.mountWrapper(this, props, context);\n        props = ReactDOMTextarea.getNativeProps(this, props, context);\n        break;\n    }\n\n    assertValidProps(this, props);\n    if (process.env.NODE_ENV !== 'production') {\n      if (context[validateDOMNesting.ancestorInfoContextKey]) {\n        validateDOMNesting(this._tag, this, context[validateDOMNesting.ancestorInfoContextKey]);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._unprocessedContextDev = context;\n      this._processedContextDev = processChildContextDev(context, this);\n      context = this._processedContextDev;\n    }\n\n    var mountImage;\n    if (transaction.useCreateElement) {\n      var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n      var el = ownerDocument.createElement(this._currentElement.type);\n      DOMPropertyOperations.setAttributeForID(el, this._rootNodeID);\n      // Populate node cache\n      ReactMount.getID(el);\n      this._updateDOMProperties({}, props, transaction, el);\n      this._createInitialChildren(transaction, props, context, el);\n      mountImage = el;\n    } else {\n      var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n      var tagContent = this._createContentMarkup(transaction, props, context);\n      if (!tagContent && omittedCloseTags[this._tag]) {\n        mountImage = tagOpen + '/>';\n      } else {\n        mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n      }\n    }\n\n    switch (this._tag) {\n      case 'input':\n        transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this);\n      // falls through\n      case 'button':\n      case 'select':\n      case 'textarea':\n        if (props.autoFocus) {\n          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n        }\n        break;\n    }\n\n    return mountImage;\n  },\n\n  /**\n   * Creates markup for the open tag and all attributes.\n   *\n   * This method has side effects because events get registered.\n   *\n   * Iterating over object properties is faster than iterating over arrays.\n   * @see http://jsperf.com/obj-vs-arr-iteration\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @return {string} Markup of opening tag.\n   */\n  _createOpenTagMarkupAndPutListeners: function (transaction, props) {\n    var ret = '<' + this._currentElement.type;\n\n    for (var propKey in props) {\n      if (!props.hasOwnProperty(propKey)) {\n        continue;\n      }\n      var propValue = props[propKey];\n      if (propValue == null) {\n        continue;\n      }\n      if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (propValue) {\n          enqueuePutListener(this._rootNodeID, propKey, propValue, transaction);\n        }\n      } else {\n        if (propKey === STYLE) {\n          if (propValue) {\n            if (process.env.NODE_ENV !== 'production') {\n              // See `_updateDOMProperties`. style block\n              this._previousStyle = propValue;\n            }\n            propValue = this._previousStyleCopy = assign({}, props.style);\n          }\n          propValue = CSSPropertyOperations.createMarkupForStyles(propValue);\n        }\n        var markup = null;\n        if (this._tag != null && isCustomComponent(this._tag, props)) {\n          if (propKey !== CHILDREN) {\n            markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n          }\n        } else {\n          markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n        }\n        if (markup) {\n          ret += ' ' + markup;\n        }\n      }\n    }\n\n    // For static pages, no need to put React ID and checksum. Saves lots of\n    // bytes.\n    if (transaction.renderToStaticMarkup) {\n      return ret;\n    }\n\n    var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID);\n    return ret + ' ' + markupForID;\n  },\n\n  /**\n   * Creates markup for the content between the tags.\n   *\n   * @private\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} props\n   * @param {object} context\n   * @return {string} Content markup.\n   */\n  _createContentMarkup: function (transaction, props, context) {\n    var ret = '';\n\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        ret = innerHTML.__html;\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        ret = escapeTextContentForBrowser(contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        ret = mountImages.join('');\n      }\n    }\n    if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n      // text/html ignores the first character in these tags if it's a newline\n      // Prefer to break application/xml over text/html (for now) by adding\n      // a newline specifically to get eaten by the parser. (Alternately for\n      // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n      // \\r is normalized out by HTMLTextAreaElement#value.)\n      // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n      // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n      // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n      // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n      //  from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n      return '\\n' + ret;\n    } else {\n      return ret;\n    }\n  },\n\n  _createInitialChildren: function (transaction, props, context, el) {\n    // Intentional use of != to avoid catching zero/false.\n    var innerHTML = props.dangerouslySetInnerHTML;\n    if (innerHTML != null) {\n      if (innerHTML.__html != null) {\n        setInnerHTML(el, innerHTML.__html);\n      }\n    } else {\n      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;\n      var childrenToUse = contentToUse != null ? null : props.children;\n      if (contentToUse != null) {\n        // TODO: Validate that text is allowed as a child of this node\n        setTextContent(el, contentToUse);\n      } else if (childrenToUse != null) {\n        var mountImages = this.mountChildren(childrenToUse, transaction, context);\n        for (var i = 0; i < mountImages.length; i++) {\n          el.appendChild(mountImages[i]);\n        }\n      }\n    }\n  },\n\n  /**\n   * Receives a next element and updates the component.\n   *\n   * @internal\n   * @param {ReactElement} nextElement\n   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n   * @param {object} context\n   */\n  receiveComponent: function (nextElement, transaction, context) {\n    var prevElement = this._currentElement;\n    this._currentElement = nextElement;\n    this.updateComponent(transaction, prevElement, nextElement, context);\n  },\n\n  /**\n   * Updates a native DOM component after it has already been allocated and\n   * attached to the DOM. Reconciles the root DOM node, then recurses.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @param {ReactElement} prevElement\n   * @param {ReactElement} nextElement\n   * @internal\n   * @overridable\n   */\n  updateComponent: function (transaction, prevElement, nextElement, context) {\n    var lastProps = prevElement.props;\n    var nextProps = this._currentElement.props;\n\n    switch (this._tag) {\n      case 'button':\n        lastProps = ReactDOMButton.getNativeProps(this, lastProps);\n        nextProps = ReactDOMButton.getNativeProps(this, nextProps);\n        break;\n      case 'input':\n        ReactDOMInput.updateWrapper(this);\n        lastProps = ReactDOMInput.getNativeProps(this, lastProps);\n        nextProps = ReactDOMInput.getNativeProps(this, nextProps);\n        break;\n      case 'option':\n        lastProps = ReactDOMOption.getNativeProps(this, lastProps);\n        nextProps = ReactDOMOption.getNativeProps(this, nextProps);\n        break;\n      case 'select':\n        lastProps = ReactDOMSelect.getNativeProps(this, lastProps);\n        nextProps = ReactDOMSelect.getNativeProps(this, nextProps);\n        break;\n      case 'textarea':\n        ReactDOMTextarea.updateWrapper(this);\n        lastProps = ReactDOMTextarea.getNativeProps(this, lastProps);\n        nextProps = ReactDOMTextarea.getNativeProps(this, nextProps);\n        break;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // If the context is reference-equal to the old one, pass down the same\n      // processed object so the update bailout in ReactReconciler behaves\n      // correctly (and identically in dev and prod). See #5005.\n      if (this._unprocessedContextDev !== context) {\n        this._unprocessedContextDev = context;\n        this._processedContextDev = processChildContextDev(context, this);\n      }\n      context = this._processedContextDev;\n    }\n\n    assertValidProps(this, nextProps);\n    this._updateDOMProperties(lastProps, nextProps, transaction, null);\n    this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n    if (!canDefineProperty && this._nodeWithLegacyProperties) {\n      this._nodeWithLegacyProperties.props = nextProps;\n    }\n\n    if (this._tag === 'select') {\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n    }\n  },\n\n  /**\n   * Reconciles the properties by detecting differences in property values and\n   * updating the DOM as necessary. This function is probably the single most\n   * critical path for performance optimization.\n   *\n   * TODO: Benchmark whether checking for changed values in memory actually\n   *       improves performance (especially statically positioned elements).\n   * TODO: Benchmark the effects of putting this at the top since 99% of props\n   *       do not change for a given reconciliation.\n   * TODO: Benchmark areas that can be improved with caching.\n   *\n   * @private\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {?DOMElement} node\n   */\n  _updateDOMProperties: function (lastProps, nextProps, transaction, node) {\n    var propKey;\n    var styleName;\n    var styleUpdates;\n    for (propKey in lastProps) {\n      if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey)) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        var lastStyle = this._previousStyleCopy;\n        for (styleName in lastStyle) {\n          if (lastStyle.hasOwnProperty(styleName)) {\n            styleUpdates = styleUpdates || {};\n            styleUpdates[styleName] = '';\n          }\n        }\n        this._previousStyleCopy = null;\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (lastProps[propKey]) {\n          // Only call deleteListener if there was a listener previously or\n          // else willDeleteListener gets called when there wasn't actually a\n          // listener (e.g., onClick={null})\n          deleteListener(this._rootNodeID, propKey);\n        }\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        DOMPropertyOperations.deleteValueForProperty(node, propKey);\n      }\n    }\n    for (propKey in nextProps) {\n      var nextProp = nextProps[propKey];\n      var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps[propKey];\n      if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) {\n        continue;\n      }\n      if (propKey === STYLE) {\n        if (nextProp) {\n          if (process.env.NODE_ENV !== 'production') {\n            checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n            this._previousStyle = nextProp;\n          }\n          nextProp = this._previousStyleCopy = assign({}, nextProp);\n        } else {\n          this._previousStyleCopy = null;\n        }\n        if (lastProp) {\n          // Unset styles on `lastProp` but not on `nextProp`.\n          for (styleName in lastProp) {\n            if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = '';\n            }\n          }\n          // Update styles that changed since `lastProp`.\n          for (styleName in nextProp) {\n            if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n              styleUpdates = styleUpdates || {};\n              styleUpdates[styleName] = nextProp[styleName];\n            }\n          }\n        } else {\n          // Relies on `updateStylesByID` not mutating `styleUpdates`.\n          styleUpdates = nextProp;\n        }\n      } else if (registrationNameModules.hasOwnProperty(propKey)) {\n        if (nextProp) {\n          enqueuePutListener(this._rootNodeID, propKey, nextProp, transaction);\n        } else if (lastProp) {\n          deleteListener(this._rootNodeID, propKey);\n        }\n      } else if (isCustomComponent(this._tag, nextProps)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        if (propKey === CHILDREN) {\n          nextProp = null;\n        }\n        DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp);\n      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n        if (!node) {\n          node = ReactMount.getNode(this._rootNodeID);\n        }\n        // If we're updating to null or undefined, we should remove the property\n        // from the DOM node instead of inadvertantly setting to a string. This\n        // brings us in line with the same behavior we have on initial render.\n        if (nextProp != null) {\n          DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n        } else {\n          DOMPropertyOperations.deleteValueForProperty(node, propKey);\n        }\n      }\n    }\n    if (styleUpdates) {\n      if (!node) {\n        node = ReactMount.getNode(this._rootNodeID);\n      }\n      CSSPropertyOperations.setValueForStyles(node, styleUpdates);\n    }\n  },\n\n  /**\n   * Reconciles the children with the various properties that affect the\n   * children content.\n   *\n   * @param {object} lastProps\n   * @param {object} nextProps\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   */\n  _updateDOMChildren: function (lastProps, nextProps, transaction, context) {\n    var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;\n    var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;\n\n    var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n    var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n    // Note the use of `!=` which checks for null or undefined.\n    var lastChildren = lastContent != null ? null : lastProps.children;\n    var nextChildren = nextContent != null ? null : nextProps.children;\n\n    // If we're switching from children to content/html or vice versa, remove\n    // the old content\n    var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n    var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n    if (lastChildren != null && nextChildren == null) {\n      this.updateChildren(null, transaction, context);\n    } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n      this.updateTextContent('');\n    }\n\n    if (nextContent != null) {\n      if (lastContent !== nextContent) {\n        this.updateTextContent('' + nextContent);\n      }\n    } else if (nextHtml != null) {\n      if (lastHtml !== nextHtml) {\n        this.updateMarkup('' + nextHtml);\n      }\n    } else if (nextChildren != null) {\n      this.updateChildren(nextChildren, transaction, context);\n    }\n  },\n\n  /**\n   * Destroys all event registrations for this instance. Does not remove from\n   * the DOM. That must be done by the parent.\n   *\n   * @internal\n   */\n  unmountComponent: function () {\n    switch (this._tag) {\n      case 'iframe':\n      case 'img':\n      case 'form':\n      case 'video':\n      case 'audio':\n        var listeners = this._wrapperState.listeners;\n        if (listeners) {\n          for (var i = 0; i < listeners.length; i++) {\n            listeners[i].remove();\n          }\n        }\n        break;\n      case 'input':\n        ReactDOMInput.unmountWrapper(this);\n        break;\n      case 'html':\n      case 'head':\n      case 'body':\n        /**\n         * Components like <html> <head> and <body> can't be removed or added\n         * easily in a cross-browser way, however it's valuable to be able to\n         * take advantage of React's reconciliation for styling and <title>\n         * management. So we just document it and throw in dangerous cases.\n         */\n        !false ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : undefined;\n        break;\n    }\n\n    this.unmountChildren();\n    ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID);\n    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n    this._rootNodeID = null;\n    this._wrapperState = null;\n    if (this._nodeWithLegacyProperties) {\n      var node = this._nodeWithLegacyProperties;\n      node._reactInternalComponent = null;\n      this._nodeWithLegacyProperties = null;\n    }\n  },\n\n  getPublicInstance: function () {\n    if (!this._nodeWithLegacyProperties) {\n      var node = ReactMount.getNode(this._rootNodeID);\n\n      node._reactInternalComponent = this;\n      node.getDOMNode = legacyGetDOMNode;\n      node.isMounted = legacyIsMounted;\n      node.setState = legacySetStateEtc;\n      node.replaceState = legacySetStateEtc;\n      node.forceUpdate = legacySetStateEtc;\n      node.setProps = legacySetProps;\n      node.replaceProps = legacyReplaceProps;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (canDefineProperty) {\n          Object.defineProperties(node, legacyPropsDescriptor);\n        } else {\n          // updateComponent will update this property on subsequent renders\n          node.props = this._currentElement.props;\n        }\n      } else {\n        // updateComponent will update this property on subsequent renders\n        node.props = this._currentElement.props;\n      }\n\n      this._nodeWithLegacyProperties = node;\n    }\n    return this._nodeWithLegacyProperties;\n  }\n\n};\n\nReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', {\n  mountComponent: 'mountComponent',\n  updateComponent: 'updateComponent'\n});\n\nassign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;"
    },
    {
      "id": 381,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/AutoFocusUtils.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
      "index": 381,
      "index2": 374,
      "size": 816,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./AutoFocusUtils",
          "loc": "17:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nvar findDOMNode = require('./findDOMNode');\nvar focusNode = require('fbjs/lib/focusNode');\n\nvar Mixin = {\n  componentDidMount: function () {\n    if (this.props.autoFocus) {\n      focusNode(findDOMNode(this));\n    }\n  }\n};\n\nvar AutoFocusUtils = {\n  Mixin: Mixin,\n\n  focusDOMComponent: function () {\n    focusNode(ReactMount.getNode(this._rootNodeID));\n  }\n};\n\nmodule.exports = AutoFocusUtils;"
    },
    {
      "id": 382,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/focusNode.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/focusNode.js",
      "index": 382,
      "index2": 373,
      "size": 725,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 381,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/AutoFocusUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/AutoFocusUtils.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/focusNode",
          "loc": "18:16-45"
        },
        {
          "moduleId": 413,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/focusNode",
          "loc": "17:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule focusNode\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\nfunction focusNode(node) {\n  // IE8 can throw \"Can't move focus to the control because it is invisible,\n  // not enabled, or of a type that does not accept the focus.\" for all kinds of\n  // reasons that are too expensive and fragile to test.\n  try {\n    node.focus();\n  } catch (e) {}\n}\n\nmodule.exports = focusNode;"
    },
    {
      "id": 383,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
      "index": 383,
      "index2": 382,
      "size": 5710,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./CSSPropertyOperations",
          "loc": "18:28-62"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactPerf = require('./ReactPerf');\n\nvar camelizeStyleName = require('fbjs/lib/camelizeStyleName');\nvar dangerousStyleValue = require('./dangerousStyleValue');\nvar hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');\nvar memoizeStringOnly = require('fbjs/lib/memoizeStringOnly');\nvar warning = require('fbjs/lib/warning');\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n  return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n  var tempStyle = document.createElement('div').style;\n  try {\n    // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n    tempStyle.font = '';\n  } catch (e) {\n    hasShorthandPropertyBug = true;\n  }\n  // IE8 only supports accessing cssFloat (standard) as styleFloat\n  if (document.documentElement.style.cssFloat === undefined) {\n    styleFloatAccessor = 'styleFloat';\n  }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n  // style values shouldn't contain a semicolon\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name)) : undefined;\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)) : undefined;\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon. ' + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined;\n  };\n\n  /**\n   * @param {string} name\n   * @param {*} value\n   */\n  var warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n  };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n  /**\n   * Serializes a mapping of style properties for use as inline styles:\n   *\n   *   > createMarkupForStyles({width: '200px', height: 0})\n   *   \"width:200px;height:0;\"\n   *\n   * Undefined values are ignored so that declarative programming is easier.\n   * The result should be HTML-escaped before insertion into the DOM.\n   *\n   * @param {object} styles\n   * @return {?string}\n   */\n  createMarkupForStyles: function (styles) {\n    var serialized = '';\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      var styleValue = styles[styleName];\n      if (process.env.NODE_ENV !== 'production') {\n        warnValidStyle(styleName, styleValue);\n      }\n      if (styleValue != null) {\n        serialized += processStyleName(styleName) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue) + ';';\n      }\n    }\n    return serialized || null;\n  },\n\n  /**\n   * Sets the value for multiple styles on a node.  If a value is specified as\n   * '' (empty string), the corresponding style property will be unset.\n   *\n   * @param {DOMElement} node\n   * @param {object} styles\n   */\n  setValueForStyles: function (node, styles) {\n    var style = node.style;\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      if (process.env.NODE_ENV !== 'production') {\n        warnValidStyle(styleName, styles[styleName]);\n      }\n      var styleValue = dangerousStyleValue(styleName, styles[styleName]);\n      if (styleName === 'float') {\n        styleName = styleFloatAccessor;\n      }\n      if (styleValue) {\n        style[styleName] = styleValue;\n      } else {\n        var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n        if (expansion) {\n          // Shorthand property that IE8 won't like unsetting, so unset each\n          // component to placate it\n          for (var individualStyleName in expansion) {\n            style[individualStyleName] = '';\n          }\n        } else {\n          style[styleName] = '';\n        }\n      }\n    }\n  }\n\n};\n\nReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', {\n  setValueForStyles: 'setValueForStyles'\n});\n\nmodule.exports = CSSPropertyOperations;"
    },
    {
      "id": 384,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSProperty.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSProperty.js",
      "index": 384,
      "index2": 375,
      "size": 3501,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./CSSProperty",
          "loc": "15:18-42"
        },
        {
          "moduleId": 387,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/dangerousStyleValue.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/dangerousStyleValue.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/dangerousStyleValue.js",
          "type": "cjs require",
          "userRequest": "./CSSProperty",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n\n  // SVG-related properties\n  fillOpacity: true,\n  stopOpacity: true,\n  strokeDashoffset: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n  background: {\n    backgroundAttachment: true,\n    backgroundColor: true,\n    backgroundImage: true,\n    backgroundPositionX: true,\n    backgroundPositionY: true,\n    backgroundRepeat: true\n  },\n  backgroundPosition: {\n    backgroundPositionX: true,\n    backgroundPositionY: true\n  },\n  border: {\n    borderWidth: true,\n    borderStyle: true,\n    borderColor: true\n  },\n  borderBottom: {\n    borderBottomWidth: true,\n    borderBottomStyle: true,\n    borderBottomColor: true\n  },\n  borderLeft: {\n    borderLeftWidth: true,\n    borderLeftStyle: true,\n    borderLeftColor: true\n  },\n  borderRight: {\n    borderRightWidth: true,\n    borderRightStyle: true,\n    borderRightColor: true\n  },\n  borderTop: {\n    borderTopWidth: true,\n    borderTopStyle: true,\n    borderTopColor: true\n  },\n  font: {\n    fontStyle: true,\n    fontVariant: true,\n    fontWeight: true,\n    fontSize: true,\n    lineHeight: true,\n    fontFamily: true\n  },\n  outline: {\n    outlineWidth: true,\n    outlineStyle: true,\n    outlineColor: true\n  }\n};\n\nvar CSSProperty = {\n  isUnitlessNumber: isUnitlessNumber,\n  shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;"
    },
    {
      "id": 385,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/camelizeStyleName.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/camelizeStyleName.js",
      "index": 385,
      "index2": 377,
      "size": 1031,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/camelizeStyleName",
          "loc": "19:24-61"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelizeStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = require('./camelize');\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n *   > camelizeStyleName('background-color')\n *   < \"backgroundColor\"\n *   > camelizeStyleName('-moz-transition')\n *   < \"MozTransition\"\n *   > camelizeStyleName('-ms-transition')\n *   < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n  return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;"
    },
    {
      "id": 386,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/camelize.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/camelize.js",
      "index": 386,
      "index2": 376,
      "size": 729,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/camelizeStyleName.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 385,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/camelizeStyleName.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/camelizeStyleName.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/camelizeStyleName.js",
          "type": "cjs require",
          "userRequest": "./camelize",
          "loc": "15:15-36"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelize\n * @typechecks\n */\n\n\"use strict\";\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n *   > camelize('background-color')\n *   < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n  return string.replace(_hyphenPattern, function (_, character) {\n    return character.toUpperCase();\n  });\n}\n\nmodule.exports = camelize;"
    },
    {
      "id": 387,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/dangerousStyleValue.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/dangerousStyleValue.js",
      "index": 387,
      "index2": 378,
      "size": 1927,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "./dangerousStyleValue",
          "loc": "20:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = require('./CSSProperty');\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n\n  var isNonNumeric = isNaN(value);\n  if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n    return '' + value; // cast to string\n  }\n\n  if (typeof value === 'string') {\n    value = value.trim();\n  }\n  return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;"
    },
    {
      "id": 388,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/hyphenateStyleName.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/hyphenateStyleName.js",
      "index": 388,
      "index2": 380,
      "size": 1005,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/hyphenateStyleName",
          "loc": "21:25-63"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenateStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = require('./hyphenate');\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n  return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;"
    },
    {
      "id": 389,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/hyphenate.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/hyphenate.js",
      "index": 389,
      "index2": 379,
      "size": 822,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/hyphenateStyleName.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 388,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/hyphenateStyleName.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/hyphenateStyleName.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/hyphenateStyleName.js",
          "type": "cjs require",
          "userRequest": "./hyphenate",
          "loc": "15:16-38"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenate\n * @typechecks\n */\n\n'use strict';\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n *   > hyphenate('backgroundColor')\n *   < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n  return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;"
    },
    {
      "id": 390,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/memoizeStringOnly.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/memoizeStringOnly.js",
      "index": 390,
      "index2": 381,
      "size": 778,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 383,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/CSSPropertyOperations.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/CSSPropertyOperations.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/memoizeStringOnly",
          "loc": "22:24-61"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule memoizeStringOnly\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n *\n * @param {function} callback\n * @return {function}\n */\nfunction memoizeStringOnly(callback) {\n  var cache = {};\n  return function (string) {\n    if (!cache.hasOwnProperty(string)) {\n      cache[string] = callback.call(this, string);\n    }\n    return cache[string];\n  };\n}\n\nmodule.exports = memoizeStringOnly;"
    },
    {
      "id": 391,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMButton.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMButton.js",
      "index": 391,
      "index2": 383,
      "size": 1154,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMButton",
          "loc": "24:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar mouseListenerNames = {\n  onClick: true,\n  onDoubleClick: true,\n  onMouseDown: true,\n  onMouseMove: true,\n  onMouseUp: true,\n\n  onClickCapture: true,\n  onDoubleClickCapture: true,\n  onMouseDownCapture: true,\n  onMouseMoveCapture: true,\n  onMouseUpCapture: true\n};\n\n/**\n * Implements a <button> native component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n  getNativeProps: function (inst, props, context) {\n    if (!props.disabled) {\n      return props;\n    }\n\n    // Copy the props, except the mouse listeners\n    var nativeProps = {};\n    for (var key in props) {\n      if (props.hasOwnProperty(key) && !mouseListenerNames[key]) {\n        nativeProps[key] = props[key];\n      }\n    }\n\n    return nativeProps;\n  }\n};\n\nmodule.exports = ReactDOMButton;"
    },
    {
      "id": 392,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
      "index": 392,
      "index2": 387,
      "size": 5743,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMInput",
          "loc": "25:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\n\nvar instancesByReactID = {};\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMInput.updateWrapper(this);\n  }\n}\n\n/**\n * Implements an <input> native component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n  getNativeProps: function (inst, props, context) {\n    var value = LinkedValueUtils.getValue(props);\n    var checked = LinkedValueUtils.getChecked(props);\n\n    var nativeProps = assign({}, props, {\n      defaultChecked: undefined,\n      defaultValue: undefined,\n      value: value != null ? value : inst._wrapperState.initialValue,\n      checked: checked != null ? checked : inst._wrapperState.initialChecked,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return nativeProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n    }\n\n    var defaultValue = props.defaultValue;\n    inst._wrapperState = {\n      initialChecked: props.defaultChecked || false,\n      initialValue: defaultValue != null ? defaultValue : null,\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  mountReadyWrapper: function (inst) {\n    // Can't be in mountWrapper or else server rendering leaks.\n    instancesByReactID[inst._rootNodeID] = inst;\n  },\n\n  unmountWrapper: function (inst) {\n    delete instancesByReactID[inst._rootNodeID];\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // TODO: Shouldn't this be getChecked(props)?\n    var checked = props.checked;\n    if (checked != null) {\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'checked', checked || false);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  // Here we use asap to wait until all updates have propagated, which\n  // is important when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var rootNode = ReactMount.getNode(this._rootNodeID);\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form, let's just use the global\n    // `querySelectorAll` to ensure we don't miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React with non-React.\n      var otherID = ReactMount.getID(otherNode);\n      !otherID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.') : invariant(false) : undefined;\n      var otherInstance = instancesByReactID[otherID];\n      !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Unknown radio button ID %s.', otherID) : invariant(false) : undefined;\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n    }\n  }\n\n  return returnValue;\n}\n\nmodule.exports = ReactDOMInput;"
    },
    {
      "id": 393,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/LinkedValueUtils.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
      "index": 393,
      "index2": 386,
      "size": 5179,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 392,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMInput.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMInput.js",
          "type": "cjs require",
          "userRequest": "./LinkedValueUtils",
          "loc": "15:23-52"
        },
        {
          "moduleId": 399,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelect.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
          "type": "cjs require",
          "userRequest": "./LinkedValueUtils",
          "loc": "14:23-52"
        },
        {
          "moduleId": 400,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
          "type": "cjs require",
          "userRequest": "./LinkedValueUtils",
          "loc": "14:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\n\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar hasReadOnlyValue = {\n  'button': true,\n  'checkbox': true,\n  'image': true,\n  'hidden': true,\n  'radio': true,\n  'reset': true,\n  'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n  !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use ' + 'checkedLink, you probably don\\'t want to use valueLink and vice versa.') : invariant(false) : undefined;\n}\nfunction _assertValueLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want ' + 'to use value or onChange, you probably don\\'t want to use valueLink.') : invariant(false) : undefined;\n}\n\nfunction _assertCheckedLink(inputProps) {\n  _assertSingleLink(inputProps);\n  !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. ' + 'If you want to use checked or onChange, you probably don\\'t want to ' + 'use checkedLink') : invariant(false) : undefined;\n}\n\nvar propTypes = {\n  value: function (props, propName, componentName) {\n    if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  checked: function (props, propName, componentName) {\n    if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n      return null;\n    }\n    return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n  },\n  onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n  checkPropTypes: function (tagName, props, owner) {\n    for (var propName in propTypes) {\n      if (propTypes.hasOwnProperty(propName)) {\n        var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop);\n      }\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum(owner);\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined;\n      }\n    }\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current value of the input either from value prop or link.\n   */\n  getValue: function (inputProps) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.value;\n    }\n    return inputProps.value;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @return {*} current checked status of the input either from checked prop\n   *             or link.\n   */\n  getChecked: function (inputProps) {\n    if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.value;\n    }\n    return inputProps.checked;\n  },\n\n  /**\n   * @param {object} inputProps Props for form component\n   * @param {SyntheticEvent} event change event to handle\n   */\n  executeOnChange: function (inputProps, event) {\n    if (inputProps.valueLink) {\n      _assertValueLink(inputProps);\n      return inputProps.valueLink.requestChange(event.target.value);\n    } else if (inputProps.checkedLink) {\n      _assertCheckedLink(inputProps);\n      return inputProps.checkedLink.requestChange(event.target.checked);\n    } else if (inputProps.onChange) {\n      return inputProps.onChange.call(undefined, event);\n    }\n  }\n};\n\nmodule.exports = LinkedValueUtils;"
    },
    {
      "id": 394,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypes.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
      "index": 394,
      "index2": 385,
      "size": 12346,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 393,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/LinkedValueUtils.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/LinkedValueUtils.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypes",
          "loc": "15:21-48"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactPropTypes",
          "loc": "20:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getIteratorFn = require('./getIteratorFn');\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n *   var Props = require('ReactPropTypes');\n *   var MyArticle = React.createClass({\n *     propTypes: {\n *       // An optional string prop named \"description\".\n *       description: Props.string,\n *\n *       // A required enum prop named \"category\".\n *       category: Props.oneOf(['News','Photos']).isRequired,\n *\n *       // A prop named \"dialog\" that requires an instance of Dialog.\n *       dialog: Props.instanceOf(Dialog).isRequired\n *     },\n *     render: function() { ... }\n *   });\n *\n * A more formal specification of how these methods are used:\n *\n *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n *   decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n *  var MyLink = React.createClass({\n *    propTypes: {\n *      // An optional string or URI prop named \"href\".\n *      href: function(props, propName, componentName) {\n *        var propValue = props[propName];\n *        if (propValue != null && typeof propValue !== 'string' &&\n *            !(propValue instanceof URI)) {\n *          return new Error(\n *            'Expected a string or an URI for ' + propName + ' in ' +\n *            componentName\n *          );\n *        }\n *      }\n *    },\n *    render: function() {...}\n *  });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n  array: createPrimitiveTypeChecker('array'),\n  bool: createPrimitiveTypeChecker('boolean'),\n  func: createPrimitiveTypeChecker('function'),\n  number: createPrimitiveTypeChecker('number'),\n  object: createPrimitiveTypeChecker('object'),\n  string: createPrimitiveTypeChecker('string'),\n\n  any: createAnyTypeChecker(),\n  arrayOf: createArrayOfTypeChecker,\n  element: createElementTypeChecker(),\n  instanceOf: createInstanceTypeChecker,\n  node: createNodeChecker(),\n  objectOf: createObjectOfTypeChecker,\n  oneOf: createEnumTypeChecker,\n  oneOfType: createUnionTypeChecker,\n  shape: createShapeTypeChecker\n};\n\nfunction createChainableTypeChecker(validate) {\n  function checkType(isRequired, props, propName, componentName, location, propFullName) {\n    componentName = componentName || ANONYMOUS;\n    propFullName = propFullName || propName;\n    if (props[propName] == null) {\n      var locationName = ReactPropTypeLocationNames[location];\n      if (isRequired) {\n        return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n      }\n      return null;\n    } else {\n      return validate(props, propName, componentName, location, propFullName);\n    }\n  }\n\n  var chainedCheckType = checkType.bind(null, false);\n  chainedCheckType.isRequired = checkType.bind(null, true);\n\n  return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== expectedType) {\n      var locationName = ReactPropTypeLocationNames[location];\n      // `propValue` being instance of, say, date/regexp, pass the 'object'\n      // check, but we can offer a more precise error message here rather than\n      // 'of type `object`'.\n      var preciseType = getPreciseType(propValue);\n\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n  return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    if (!Array.isArray(propValue)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var propType = getPropType(propValue);\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n    }\n    for (var i = 0; i < propValue.length; i++) {\n      var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']');\n      if (error instanceof Error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!ReactElement.isValidElement(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!(props[propName] instanceof expectedClass)) {\n      var locationName = ReactPropTypeLocationNames[location];\n      var expectedClassName = expectedClass.name || ANONYMOUS;\n      var actualClassName = getClassName(props[propName]);\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n  if (!Array.isArray(expectedValues)) {\n    return createChainableTypeChecker(function () {\n      return new Error('Invalid argument supplied to oneOf, expected an instance of array.');\n    });\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    for (var i = 0; i < expectedValues.length; i++) {\n      if (propValue === expectedValues[i]) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    var valuesString = JSON.stringify(expectedValues);\n    return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n    }\n    for (var key in propValue) {\n      if (propValue.hasOwnProperty(key)) {\n        var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n  if (!Array.isArray(arrayOfTypeCheckers)) {\n    return createChainableTypeChecker(function () {\n      return new Error('Invalid argument supplied to oneOfType, expected an instance of array.');\n    });\n  }\n\n  function validate(props, propName, componentName, location, propFullName) {\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (checker(props, propName, componentName, location, propFullName) == null) {\n        return null;\n      }\n    }\n\n    var locationName = ReactPropTypeLocationNames[location];\n    return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n  function validate(props, propName, componentName, location, propFullName) {\n    if (!isNode(props[propName])) {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n  function validate(props, propName, componentName, location, propFullName) {\n    var propValue = props[propName];\n    var propType = getPropType(propValue);\n    if (propType !== 'object') {\n      var locationName = ReactPropTypeLocationNames[location];\n      return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n    }\n    for (var key in shapeTypes) {\n      var checker = shapeTypes[key];\n      if (!checker) {\n        continue;\n      }\n      var error = checker(propValue, key, componentName, location, propFullName + '.' + key);\n      if (error) {\n        return error;\n      }\n    }\n    return null;\n  }\n  return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n  switch (typeof propValue) {\n    case 'number':\n    case 'string':\n    case 'undefined':\n      return true;\n    case 'boolean':\n      return !propValue;\n    case 'object':\n      if (Array.isArray(propValue)) {\n        return propValue.every(isNode);\n      }\n      if (propValue === null || ReactElement.isValidElement(propValue)) {\n        return true;\n      }\n\n      var iteratorFn = getIteratorFn(propValue);\n      if (iteratorFn) {\n        var iterator = iteratorFn.call(propValue);\n        var step;\n        if (iteratorFn !== propValue.entries) {\n          while (!(step = iterator.next()).done) {\n            if (!isNode(step.value)) {\n              return false;\n            }\n          }\n        } else {\n          // Iterator will provide entry [k,v] tuples rather than values.\n          while (!(step = iterator.next()).done) {\n            var entry = step.value;\n            if (entry) {\n              if (!isNode(entry[1])) {\n                return false;\n              }\n            }\n          }\n        }\n      } else {\n        return false;\n      }\n\n      return true;\n    default:\n      return false;\n  }\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n  var propType = typeof propValue;\n  if (Array.isArray(propValue)) {\n    return 'array';\n  }\n  if (propValue instanceof RegExp) {\n    // Old webkits (at least until Android 4.0) return 'function' rather than\n    // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n    // passes PropTypes.object.\n    return 'object';\n  }\n  return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n  var propType = getPropType(propValue);\n  if (propType === 'object') {\n    if (propValue instanceof Date) {\n      return 'date';\n    } else if (propValue instanceof RegExp) {\n      return 'regexp';\n    }\n  }\n  return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n  if (!propValue.constructor || !propValue.constructor.name) {\n    return '<<anonymous>>';\n  }\n  return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;"
    },
    {
      "id": 395,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getIteratorFn.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getIteratorFn.js",
      "index": 395,
      "index2": 384,
      "size": 1171,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 394,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactPropTypes.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactPropTypes.js",
          "type": "cjs require",
          "userRequest": "./getIteratorFn",
          "loc": "18:20-46"
        },
        {
          "moduleId": 398,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
          "type": "cjs require",
          "userRequest": "./getIteratorFn",
          "loc": "18:20-46"
        },
        {
          "moduleId": 441,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
          "type": "cjs require",
          "userRequest": "./getIteratorFn",
          "loc": "27:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * @typechecks static-only\n */\n\n'use strict';\n\n/* global Symbol */\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n *     var iteratorFn = getIteratorFn(myIterable);\n *     if (iteratorFn) {\n *       var iterator = iteratorFn.call(myIterable);\n *       ...\n *     }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n  var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n  if (typeof iteratorFn === 'function') {\n    return iteratorFn;\n  }\n}\n\nmodule.exports = getIteratorFn;"
    },
    {
      "id": 396,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMOption.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
      "index": 396,
      "index2": 391,
      "size": 2822,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMOption",
          "loc": "26:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactDOMSelect = require('./ReactDOMSelect');\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\nvar valueContextKey = ReactDOMSelect.valueContextKey;\n\n/**\n * Implements an <option> native component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n  mountWrapper: function (inst, props, context) {\n    // TODO (yungsters): Remove support for `selected` in <option>.\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : undefined;\n    }\n\n    // Look up whether this option is 'selected' via context\n    var selectValue = context[valueContextKey];\n\n    // If context key is null (e.g., no specified value or after initial mount)\n    // or missing (e.g., for <datalist>), we don't change props.selected\n    var selected = null;\n    if (selectValue != null) {\n      selected = false;\n      if (Array.isArray(selectValue)) {\n        // multiple\n        for (var i = 0; i < selectValue.length; i++) {\n          if ('' + selectValue[i] === '' + props.value) {\n            selected = true;\n            break;\n          }\n        }\n      } else {\n        selected = '' + selectValue === '' + props.value;\n      }\n    }\n\n    inst._wrapperState = { selected: selected };\n  },\n\n  getNativeProps: function (inst, props, context) {\n    var nativeProps = assign({ selected: undefined, children: undefined }, props);\n\n    // Read state only from initial mount because <select> updates value\n    // manually; we need the initial state only for server rendering\n    if (inst._wrapperState.selected != null) {\n      nativeProps.selected = inst._wrapperState.selected;\n    }\n\n    var content = '';\n\n    // Flatten children and warn if they aren't strings or numbers;\n    // invalid types are ignored.\n    ReactChildren.forEach(props.children, function (child) {\n      if (child == null) {\n        return;\n      }\n      if (typeof child === 'string' || typeof child === 'number') {\n        content += child;\n      } else {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : undefined;\n      }\n    });\n\n    if (content) {\n      nativeProps.children = content;\n    }\n\n    return nativeProps;\n  }\n\n};\n\nmodule.exports = ReactDOMOption;"
    },
    {
      "id": 397,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildren.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
      "index": 397,
      "index2": 389,
      "size": 5835,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 396,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMOption.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "./ReactChildren",
          "loc": "14:20-46"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactChildren",
          "loc": "14:20-46"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar ReactElement = require('./ReactElement');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar traverseAllChildren = require('./traverseAllChildren');\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/(?!\\/)/g;\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '//');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n  this.func = forEachFunction;\n  this.context = forEachContext;\n  this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n  var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n  this.result = mapResult;\n  this.keyPrefix = keyPrefix;\n  this.func = mapFunction;\n  this.context = mapContext;\n  this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n  this.result = null;\n  this.keyPrefix = null;\n  this.func = null;\n  this.context = null;\n  this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result;\n  var keyPrefix = bookKeeping.keyPrefix;\n  var func = bookKeeping.func;\n  var context = bookKeeping.context;\n\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n  } else if (mappedChild != null) {\n    if (ReactElement.isValidElement(mappedChild)) {\n      mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n      // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild !== child ? escapeUserProvidedKey(mappedChild.key || '') + '/' : '') + childKey);\n    }\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n  var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n  return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n  return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n */\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n  return result;\n}\n\nvar ReactChildren = {\n  forEach: forEachChildren,\n  map: mapChildren,\n  mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n  count: countChildren,\n  toArray: toArray\n};\n\nmodule.exports = ReactChildren;"
    },
    {
      "id": 398,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/traverseAllChildren.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/traverseAllChildren.js",
      "index": 398,
      "index2": 388,
      "size": 6897,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildren.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 397,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildren.js",
          "type": "cjs require",
          "userRequest": "./traverseAllChildren",
          "loc": "18:26-58"
        },
        {
          "moduleId": 402,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildReconciler.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
          "type": "cjs require",
          "userRequest": "./traverseAllChildren",
          "loc": "19:26-58"
        },
        {
          "moduleId": 403,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/flattenChildren.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/flattenChildren.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/flattenChildren.js",
          "type": "cjs require",
          "userRequest": "./traverseAllChildren",
          "loc": "14:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\n\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar SEPARATOR = ReactInstanceHandles.SEPARATOR;\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar userProvidedKeyEscaperLookup = {\n  '=': '=0',\n  '.': '=1',\n  ':': '=2'\n};\n\nvar userProvidedKeyEscapeRegex = /[=.:]/g;\n\nvar didWarnAboutMaps = false;\n\nfunction userProvidedKeyEscaper(match) {\n  return userProvidedKeyEscaperLookup[match];\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n  if (component && component.key != null) {\n    // Explicit key\n    return wrapUserProvidedKey(component.key);\n  }\n  // Implicit key determined by the index in the set\n  return index.toString(36);\n}\n\n/**\n * Escape a component key so that it is safe to use in a reactid.\n *\n * @param {*} text Component key to be escaped.\n * @return {string} An escaped string.\n */\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper);\n}\n\n/**\n * Wrap a `key` value explicitly provided by the user to distinguish it from\n * implicitly-generated keys generated by a component's index in its parent.\n *\n * @param {string} key Value of a user-provided `key` attribute\n * @return {string}\n */\nfunction wrapUserProvidedKey(key) {\n  return '$' + escapeUserProvidedKey(key);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n    callback(traverseContext, children,\n    // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n    if (iteratorFn) {\n      var iterator = iteratorFn.call(children);\n      var step;\n      if (iteratorFn !== children.entries) {\n        var ii = 0;\n        while (!(step = iterator.next()).done) {\n          child = step.value;\n          nextName = nextNamePrefix + getComponentKey(child, ii++);\n          subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n        }\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : undefined;\n          didWarnAboutMaps = true;\n        }\n        // Iterator will provide entry [k,v] tuples rather than values.\n        while (!(step = iterator.next()).done) {\n          var entry = step.value;\n          if (entry) {\n            child = entry[1];\n            nextName = nextNamePrefix + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n            subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n          }\n        }\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n      if (process.env.NODE_ENV !== 'production') {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n        if (children._isReactElement) {\n          addendum = ' It looks like you\\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';\n        }\n        if (ReactCurrentOwner.current) {\n          var name = ReactCurrentOwner.current.getName();\n          if (name) {\n            addendum += ' Check the render method of `' + name + '`.';\n          }\n        }\n      }\n      var childrenString = String(children);\n      !false ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined;\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;"
    },
    {
      "id": 399,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelect.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelect.js",
      "index": 399,
      "index2": 390,
      "size": 6106,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMSelect",
          "loc": "27:21-48"
        },
        {
          "moduleId": 396,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMOption.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMOption.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMSelect",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\nvar valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2);\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n  if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n    this._wrapperState.pendingUpdate = false;\n\n    var props = this._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n\n    if (value != null) {\n      updateOptions(this, Boolean(props.multiple), value);\n    }\n  }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n  if (owner) {\n    var name = owner.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n  var owner = inst._currentElement._owner;\n  LinkedValueUtils.checkPropTypes('select', props, owner);\n\n  for (var i = 0; i < valuePropNames.length; i++) {\n    var propName = valuePropNames[i];\n    if (props[propName] == null) {\n      continue;\n    }\n    if (props.multiple) {\n      process.env.NODE_ENV !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n    } else {\n      process.env.NODE_ENV !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n    }\n  }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n  var selectedValue, i;\n  var options = ReactMount.getNode(inst._rootNodeID).options;\n\n  if (multiple) {\n    selectedValue = {};\n    for (i = 0; i < propValue.length; i++) {\n      selectedValue['' + propValue[i]] = true;\n    }\n    for (i = 0; i < options.length; i++) {\n      var selected = selectedValue.hasOwnProperty(options[i].value);\n      if (options[i].selected !== selected) {\n        options[i].selected = selected;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    selectedValue = '' + propValue;\n    for (i = 0; i < options.length; i++) {\n      if (options[i].value === selectedValue) {\n        options[i].selected = true;\n        return;\n      }\n    }\n    if (options.length) {\n      options[0].selected = true;\n    }\n  }\n}\n\n/**\n * Implements a <select> native component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n  valueContextKey: valueContextKey,\n\n  getNativeProps: function (inst, props, context) {\n    return assign({}, props, {\n      onChange: inst._wrapperState.onChange,\n      value: undefined\n    });\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      checkSelectPropTypes(inst, props);\n    }\n\n    var value = LinkedValueUtils.getValue(props);\n    inst._wrapperState = {\n      pendingUpdate: false,\n      initialValue: value != null ? value : props.defaultValue,\n      onChange: _handleChange.bind(inst),\n      wasMultiple: Boolean(props.multiple)\n    };\n  },\n\n  processChildContext: function (inst, props, context) {\n    // Pass down initial value so initial generated markup has correct\n    // `selected` attributes\n    var childContext = assign({}, context);\n    childContext[valueContextKey] = inst._wrapperState.initialValue;\n    return childContext;\n  },\n\n  postUpdateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n\n    // After the initial mount, we control selected-ness manually so don't pass\n    // the context value down\n    inst._wrapperState.initialValue = undefined;\n\n    var wasMultiple = inst._wrapperState.wasMultiple;\n    inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      inst._wrapperState.pendingUpdate = false;\n      updateOptions(inst, Boolean(props.multiple), value);\n    } else if (wasMultiple !== Boolean(props.multiple)) {\n      // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n      if (props.defaultValue != null) {\n        updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n      } else {\n        // Revert the select back to its default unselected state.\n        updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n      }\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n  this._wrapperState.pendingUpdate = true;\n  ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;"
    },
    {
      "id": 400,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMTextarea.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMTextarea.js",
      "index": 400,
      "index2": 392,
      "size": 4347,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMTextarea",
          "loc": "28:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar LinkedValueUtils = require('./LinkedValueUtils');\nvar ReactDOMIDOperations = require('./ReactDOMIDOperations');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction forceUpdateIfMounted() {\n  if (this._rootNodeID) {\n    // DOM component is still mounted; update\n    ReactDOMTextarea.updateWrapper(this);\n  }\n}\n\n/**\n * Implements a <textarea> native component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n  getNativeProps: function (inst, props, context) {\n    !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : invariant(false) : undefined;\n\n    // Always set children to the same thing. In IE9, the selection range will\n    // get reset if `textContent` is mutated.\n    var nativeProps = assign({}, props, {\n      defaultValue: undefined,\n      value: undefined,\n      children: inst._wrapperState.initialValue,\n      onChange: inst._wrapperState.onChange\n    });\n\n    return nativeProps;\n  },\n\n  mountWrapper: function (inst, props) {\n    if (process.env.NODE_ENV !== 'production') {\n      LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n    }\n\n    var defaultValue = props.defaultValue;\n    // TODO (yungsters): Remove support for children content in <textarea>.\n    var children = props.children;\n    if (children != null) {\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : undefined;\n      }\n      !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : invariant(false) : undefined;\n      if (Array.isArray(children)) {\n        !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : invariant(false) : undefined;\n        children = children[0];\n      }\n\n      defaultValue = '' + children;\n    }\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n    var value = LinkedValueUtils.getValue(props);\n\n    inst._wrapperState = {\n      // We save the initial value so that `ReactDOMComponent` doesn't update\n      // `textContent` (unnecessary since we update value).\n      // The initial value can be a boolean or object so that's why it's\n      // forced to be a string.\n      initialValue: '' + (value != null ? value : defaultValue),\n      onChange: _handleChange.bind(inst)\n    };\n  },\n\n  updateWrapper: function (inst) {\n    var props = inst._currentElement.props;\n    var value = LinkedValueUtils.getValue(props);\n    if (value != null) {\n      // Cast `value` to a string to ensure the value is set correctly. While\n      // browsers typically do this as necessary, jsdom doesn't.\n      ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n    }\n  }\n};\n\nfunction _handleChange(event) {\n  var props = this._currentElement.props;\n  var returnValue = LinkedValueUtils.executeOnChange(props, event);\n  ReactUpdates.asap(forceUpdateIfMounted, this);\n  return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;"
    },
    {
      "id": 401,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
      "index": 401,
      "index2": 395,
      "size": 14685,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactMultiChild",
          "loc": "30:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactMultiChildUpdateTypes = require('./ReactMultiChildUpdateTypes');\n\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\nvar ReactReconciler = require('./ReactReconciler');\nvar ReactChildReconciler = require('./ReactChildReconciler');\n\nvar flattenChildren = require('./flattenChildren');\n\n/**\n * Updating children of a component may trigger recursive updates. The depth is\n * used to batch recursive updates to render markup more efficiently.\n *\n * @type {number}\n * @private\n */\nvar updateDepth = 0;\n\n/**\n * Queue of update configuration objects.\n *\n * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`.\n *\n * @type {array<object>}\n * @private\n */\nvar updateQueue = [];\n\n/**\n * Queue of markup to be rendered.\n *\n * @type {array<string>}\n * @private\n */\nvar markupQueue = [];\n\n/**\n * Enqueues markup to be rendered and inserted at a supplied index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction enqueueInsertMarkup(parentID, markup, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n    markupIndex: markupQueue.push(markup) - 1,\n    content: null,\n    fromIndex: null,\n    toIndex: toIndex\n  });\n}\n\n/**\n * Enqueues moving an existing element to another index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction enqueueMove(parentID, fromIndex, toIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n    markupIndex: null,\n    content: null,\n    fromIndex: fromIndex,\n    toIndex: toIndex\n  });\n}\n\n/**\n * Enqueues removing an element at an index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction enqueueRemove(parentID, fromIndex) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n    markupIndex: null,\n    content: null,\n    fromIndex: fromIndex,\n    toIndex: null\n  });\n}\n\n/**\n * Enqueues setting the markup of a node.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction enqueueSetMarkup(parentID, markup) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.SET_MARKUP,\n    markupIndex: null,\n    content: markup,\n    fromIndex: null,\n    toIndex: null\n  });\n}\n\n/**\n * Enqueues setting the text content.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction enqueueTextContent(parentID, textContent) {\n  // NOTE: Null values reduce hidden classes.\n  updateQueue.push({\n    parentID: parentID,\n    parentNode: null,\n    type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n    markupIndex: null,\n    content: textContent,\n    fromIndex: null,\n    toIndex: null\n  });\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue() {\n  if (updateQueue.length) {\n    ReactComponentEnvironment.processChildrenUpdates(updateQueue, markupQueue);\n    clearQueue();\n  }\n}\n\n/**\n * Clears any enqueued updates.\n *\n * @private\n */\nfunction clearQueue() {\n  updateQueue.length = 0;\n  markupQueue.length = 0;\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n  /**\n   * Provides common functionality for components that must reconcile multiple\n   * children. This is used by `ReactDOMComponent` to mount, update, and\n   * unmount child components.\n   *\n   * @lends {ReactMultiChild.prototype}\n   */\n  Mixin: {\n\n    _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n        }\n      }\n      return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n    },\n\n    _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, transaction, context) {\n      var nextChildren;\n      if (process.env.NODE_ENV !== 'production') {\n        if (this._currentElement) {\n          try {\n            ReactCurrentOwner.current = this._currentElement._owner;\n            nextChildren = flattenChildren(nextNestedChildrenElements);\n          } finally {\n            ReactCurrentOwner.current = null;\n          }\n          return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n        }\n      }\n      nextChildren = flattenChildren(nextNestedChildrenElements);\n      return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n    },\n\n    /**\n     * Generates a \"mount image\" for each of the supplied children. In the case\n     * of `ReactDOMComponent`, a mount image is a string of markup.\n     *\n     * @param {?object} nestedChildren Nested child maps.\n     * @return {array} An array of mounted representations.\n     * @internal\n     */\n    mountChildren: function (nestedChildren, transaction, context) {\n      var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n      this._renderedChildren = children;\n      var mountImages = [];\n      var index = 0;\n      for (var name in children) {\n        if (children.hasOwnProperty(name)) {\n          var child = children[name];\n          // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n          var rootID = this._rootNodeID + name;\n          var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n          child._mountIndex = index++;\n          mountImages.push(mountImage);\n        }\n      }\n      return mountImages;\n    },\n\n    /**\n     * Replaces any rendered children with a text content string.\n     *\n     * @param {string} nextContent String of content.\n     * @internal\n     */\n    updateTextContent: function (nextContent) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        var prevChildren = this._renderedChildren;\n        // Remove any rendered children.\n        ReactChildReconciler.unmountChildren(prevChildren);\n        // TODO: The setTextContent operation should be enough\n        for (var name in prevChildren) {\n          if (prevChildren.hasOwnProperty(name)) {\n            this._unmountChild(prevChildren[name]);\n          }\n        }\n        // Set new text content.\n        this.setTextContent(nextContent);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Replaces any rendered children with a markup string.\n     *\n     * @param {string} nextMarkup String of markup.\n     * @internal\n     */\n    updateMarkup: function (nextMarkup) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        var prevChildren = this._renderedChildren;\n        // Remove any rendered children.\n        ReactChildReconciler.unmountChildren(prevChildren);\n        for (var name in prevChildren) {\n          if (prevChildren.hasOwnProperty(name)) {\n            this._unmountChildByName(prevChildren[name], name);\n          }\n        }\n        this.setMarkup(nextMarkup);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Updates the rendered children with new children.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @internal\n     */\n    updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      updateDepth++;\n      var errorThrown = true;\n      try {\n        this._updateChildren(nextNestedChildrenElements, transaction, context);\n        errorThrown = false;\n      } finally {\n        updateDepth--;\n        if (!updateDepth) {\n          if (errorThrown) {\n            clearQueue();\n          } else {\n            processQueue();\n          }\n        }\n      }\n    },\n\n    /**\n     * Improve performance by isolating this hot code path from the try/catch\n     * block in `updateChildren`.\n     *\n     * @param {?object} nextNestedChildrenElements Nested child element maps.\n     * @param {ReactReconcileTransaction} transaction\n     * @final\n     * @protected\n     */\n    _updateChildren: function (nextNestedChildrenElements, transaction, context) {\n      var prevChildren = this._renderedChildren;\n      var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context);\n      this._renderedChildren = nextChildren;\n      if (!nextChildren && !prevChildren) {\n        return;\n      }\n      var name;\n      // `nextIndex` will increment for each child in `nextChildren`, but\n      // `lastIndex` will be the last index visited in `prevChildren`.\n      var lastIndex = 0;\n      var nextIndex = 0;\n      for (name in nextChildren) {\n        if (!nextChildren.hasOwnProperty(name)) {\n          continue;\n        }\n        var prevChild = prevChildren && prevChildren[name];\n        var nextChild = nextChildren[name];\n        if (prevChild === nextChild) {\n          this.moveChild(prevChild, nextIndex, lastIndex);\n          lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n          prevChild._mountIndex = nextIndex;\n        } else {\n          if (prevChild) {\n            // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n            lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n            this._unmountChild(prevChild);\n          }\n          // The child must be instantiated before it's mounted.\n          this._mountChildByNameAtIndex(nextChild, name, nextIndex, transaction, context);\n        }\n        nextIndex++;\n      }\n      // Remove children that are no longer present.\n      for (name in prevChildren) {\n        if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n          this._unmountChild(prevChildren[name]);\n        }\n      }\n    },\n\n    /**\n     * Unmounts all rendered children. This should be used to clean up children\n     * when this component is unmounted.\n     *\n     * @internal\n     */\n    unmountChildren: function () {\n      var renderedChildren = this._renderedChildren;\n      ReactChildReconciler.unmountChildren(renderedChildren);\n      this._renderedChildren = null;\n    },\n\n    /**\n     * Moves a child component to the supplied index.\n     *\n     * @param {ReactComponent} child Component to move.\n     * @param {number} toIndex Destination index of the element.\n     * @param {number} lastIndex Last index visited of the siblings of `child`.\n     * @protected\n     */\n    moveChild: function (child, toIndex, lastIndex) {\n      // If the index of `child` is less than `lastIndex`, then it needs to\n      // be moved. Otherwise, we do not need to move it because a child will be\n      // inserted or moved before `child`.\n      if (child._mountIndex < lastIndex) {\n        enqueueMove(this._rootNodeID, child._mountIndex, toIndex);\n      }\n    },\n\n    /**\n     * Creates a child component.\n     *\n     * @param {ReactComponent} child Component to create.\n     * @param {string} mountImage Markup to insert.\n     * @protected\n     */\n    createChild: function (child, mountImage) {\n      enqueueInsertMarkup(this._rootNodeID, mountImage, child._mountIndex);\n    },\n\n    /**\n     * Removes a child component.\n     *\n     * @param {ReactComponent} child Child to remove.\n     * @protected\n     */\n    removeChild: function (child) {\n      enqueueRemove(this._rootNodeID, child._mountIndex);\n    },\n\n    /**\n     * Sets this text content string.\n     *\n     * @param {string} textContent Text content to set.\n     * @protected\n     */\n    setTextContent: function (textContent) {\n      enqueueTextContent(this._rootNodeID, textContent);\n    },\n\n    /**\n     * Sets this markup string.\n     *\n     * @param {string} markup Markup to set.\n     * @protected\n     */\n    setMarkup: function (markup) {\n      enqueueSetMarkup(this._rootNodeID, markup);\n    },\n\n    /**\n     * Mounts a child with the supplied name.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to mount.\n     * @param {string} name Name of the child.\n     * @param {number} index Index at which to insert the child.\n     * @param {ReactReconcileTransaction} transaction\n     * @private\n     */\n    _mountChildByNameAtIndex: function (child, name, index, transaction, context) {\n      // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n      var rootID = this._rootNodeID + name;\n      var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n      child._mountIndex = index;\n      this.createChild(child, mountImage);\n    },\n\n    /**\n     * Unmounts a rendered child.\n     *\n     * NOTE: This is part of `updateChildren` and is here for readability.\n     *\n     * @param {ReactComponent} child Component to unmount.\n     * @private\n     */\n    _unmountChild: function (child) {\n      this.removeChild(child);\n      child._mountIndex = null;\n    }\n\n  }\n\n};\n\nmodule.exports = ReactMultiChild;"
    },
    {
      "id": 402,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactChildReconciler.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactChildReconciler.js",
      "index": 402,
      "index2": 393,
      "size": 4521,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 401,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./ReactChildReconciler",
          "loc": "20:27-60"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactReconciler = require('./ReactReconciler');\n\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar shouldUpdateReactComponent = require('./shouldUpdateReactComponent');\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\nfunction instantiateChild(childInstances, child, name) {\n  // We found a component instance.\n  var keyUnique = childInstances[name] === undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n  }\n  if (child != null && keyUnique) {\n    childInstances[name] = instantiateReactComponent(child, null);\n  }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n  /**\n   * Generates a \"mount image\" for each of the supplied children. In the case\n   * of `ReactDOMComponent`, a mount image is a string of markup.\n   *\n   * @param {?object} nestedChildNodes Nested child maps.\n   * @return {?object} A set of child instances.\n   * @internal\n   */\n  instantiateChildren: function (nestedChildNodes, transaction, context) {\n    if (nestedChildNodes == null) {\n      return null;\n    }\n    var childInstances = {};\n    traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n    return childInstances;\n  },\n\n  /**\n   * Updates the rendered children and returns a new set of children.\n   *\n   * @param {?object} prevChildren Previously initialized set of children.\n   * @param {?object} nextChildren Flat child element maps.\n   * @param {ReactReconcileTransaction} transaction\n   * @param {object} context\n   * @return {?object} A new set of child instances.\n   * @internal\n   */\n  updateChildren: function (prevChildren, nextChildren, transaction, context) {\n    // We currently don't have a way to track moves here but if we use iterators\n    // instead of for..in we can zip the iterators and check if an item has\n    // moved.\n    // TODO: If nothing has changed, return the prevChildren object so that we\n    // can quickly bailout if nothing has changed.\n    if (!nextChildren && !prevChildren) {\n      return null;\n    }\n    var name;\n    for (name in nextChildren) {\n      if (!nextChildren.hasOwnProperty(name)) {\n        continue;\n      }\n      var prevChild = prevChildren && prevChildren[name];\n      var prevElement = prevChild && prevChild._currentElement;\n      var nextElement = nextChildren[name];\n      if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n        ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n        nextChildren[name] = prevChild;\n      } else {\n        if (prevChild) {\n          ReactReconciler.unmountComponent(prevChild, name);\n        }\n        // The child must be instantiated before it's mounted.\n        var nextChildInstance = instantiateReactComponent(nextElement, null);\n        nextChildren[name] = nextChildInstance;\n      }\n    }\n    // Unmount children that are no longer present.\n    for (name in prevChildren) {\n      if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n        ReactReconciler.unmountComponent(prevChildren[name]);\n      }\n    }\n    return nextChildren;\n  },\n\n  /**\n   * Unmounts all rendered children. This should be used to clean up children\n   * when this component is unmounted.\n   *\n   * @param {?object} renderedChildren Previously initialized set of children.\n   * @internal\n   */\n  unmountChildren: function (renderedChildren) {\n    for (var name in renderedChildren) {\n      if (renderedChildren.hasOwnProperty(name)) {\n        var renderedChild = renderedChildren[name];\n        ReactReconciler.unmountComponent(renderedChild);\n      }\n    }\n  }\n\n};\n\nmodule.exports = ReactChildReconciler;"
    },
    {
      "id": 403,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/flattenChildren.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/flattenChildren.js",
      "index": 403,
      "index2": 394,
      "size": 1653,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 401,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactMultiChild.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactMultiChild.js",
          "type": "cjs require",
          "userRequest": "./flattenChildren",
          "loc": "22:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n */\n\n'use strict';\n\nvar traverseAllChildren = require('./traverseAllChildren');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name) {\n  // We found a component instance.\n  var result = traverseContext;\n  var keyUnique = result[name] === undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n  }\n  if (keyUnique && child != null) {\n    result[name] = child;\n  }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children) {\n  if (children == null) {\n    return children;\n  }\n  var result = {};\n  traverseAllChildren(children, flattenSingleChildIntoContext, result);\n  return result;\n}\n\nmodule.exports = flattenChildren;"
    },
    {
      "id": 404,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/shallowEqual.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/shallowEqual.js",
      "index": 404,
      "index2": 396,
      "size": 1276,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 380,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMComponent.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/shallowEqual",
          "loc": "42:19-51"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/shallowEqual",
          "loc": "23:19-51"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqual\n * @typechecks\n * \n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (objA === objB) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  var bHasOwnProperty = hasOwnProperty.bind(objB);\n  for (var i = 0; i < keysA.length; i++) {\n    if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;"
    },
    {
      "id": 405,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
      "index": 405,
      "index2": 400,
      "size": 7513,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactEventListener",
          "loc": "26:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventListener = require('fbjs/lib/EventListener');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar PooledClass = require('./PooledClass');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMount = require('./ReactMount');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar assign = require('./Object.assign');\nvar getEventTarget = require('./getEventTarget');\nvar getUnboundedScrollPosition = require('fbjs/lib/getUnboundedScrollPosition');\n\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * Finds the parent React component of `node`.\n *\n * @param {*} node\n * @return {?DOMEventTarget} Parent container, or `null` if the specified node\n *                           is not nested.\n */\nfunction findParent(node) {\n  // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n  var nodeID = ReactMount.getID(node);\n  var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n  var container = ReactMount.findReactContainerForID(rootID);\n  var parent = ReactMount.getFirstReactDOM(container);\n  return parent;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n  this.topLevelType = topLevelType;\n  this.nativeEvent = nativeEvent;\n  this.ancestors = [];\n}\nassign(TopLevelCallbackBookKeeping.prototype, {\n  destructor: function () {\n    this.topLevelType = null;\n    this.nativeEvent = null;\n    this.ancestors.length = 0;\n  }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n  // TODO: Re-enable event.path handling\n  //\n  // if (bookKeeping.nativeEvent.path && bookKeeping.nativeEvent.path.length > 1) {\n  //   // New browsers have a path attribute on native events\n  //   handleTopLevelWithPath(bookKeeping);\n  // } else {\n  //   // Legacy browsers don't have a path attribute on native events\n  //   handleTopLevelWithoutPath(bookKeeping);\n  // }\n\n  void handleTopLevelWithPath; // temporarily unused\n  handleTopLevelWithoutPath(bookKeeping);\n}\n\n// Legacy browsers don't have a path attribute on native events\nfunction handleTopLevelWithoutPath(bookKeeping) {\n  var topLevelTarget = ReactMount.getFirstReactDOM(getEventTarget(bookKeeping.nativeEvent)) || window;\n\n  // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n  var ancestor = topLevelTarget;\n  while (ancestor) {\n    bookKeeping.ancestors.push(ancestor);\n    ancestor = findParent(ancestor);\n  }\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    topLevelTarget = bookKeeping.ancestors[i];\n    var topLevelTargetID = ReactMount.getID(topLevelTarget) || '';\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, topLevelTarget, topLevelTargetID, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\n// New browsers have a path attribute on native events\nfunction handleTopLevelWithPath(bookKeeping) {\n  var path = bookKeeping.nativeEvent.path;\n  var currentNativeTarget = path[0];\n  var eventsFired = 0;\n  for (var i = 0; i < path.length; i++) {\n    var currentPathElement = path[i];\n    if (currentPathElement.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE) {\n      currentNativeTarget = path[i + 1];\n    }\n    // TODO: slow\n    var reactParent = ReactMount.getFirstReactDOM(currentPathElement);\n    if (reactParent === currentPathElement) {\n      var currentPathElementID = ReactMount.getID(currentPathElement);\n      var newRootID = ReactInstanceHandles.getReactRootIDFromNodeID(currentPathElementID);\n      bookKeeping.ancestors.push(currentPathElement);\n\n      var topLevelTargetID = ReactMount.getID(currentPathElement) || '';\n      eventsFired++;\n      ReactEventListener._handleTopLevel(bookKeeping.topLevelType, currentPathElement, topLevelTargetID, bookKeeping.nativeEvent, currentNativeTarget);\n\n      // Jump to the root of this React render tree\n      while (currentPathElementID !== newRootID) {\n        i++;\n        currentPathElement = path[i];\n        currentPathElementID = ReactMount.getID(currentPathElement);\n      }\n    }\n  }\n  if (eventsFired === 0) {\n    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, window, '', bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n  }\n}\n\nfunction scrollValueMonitor(cb) {\n  var scrollPosition = getUnboundedScrollPosition(window);\n  cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n  _enabled: true,\n  _handleTopLevel: null,\n\n  WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n  setHandleTopLevel: function (handleTopLevel) {\n    ReactEventListener._handleTopLevel = handleTopLevel;\n  },\n\n  setEnabled: function (enabled) {\n    ReactEventListener._enabled = !!enabled;\n  },\n\n  isEnabled: function () {\n    return ReactEventListener._enabled;\n  },\n\n  /**\n   * Traps top-level events by using event bubbling.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  /**\n   * Traps a top-level event by using event capturing.\n   *\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {string} handlerBaseName Event name (e.g. \"click\").\n   * @param {object} handle Element on which to attach listener.\n   * @return {?object} An object with a remove function which will forcefully\n   *                  remove the listener.\n   * @internal\n   */\n  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {\n    var element = handle;\n    if (!element) {\n      return null;\n    }\n    return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n  },\n\n  monitorScrollValue: function (refresh) {\n    var callback = scrollValueMonitor.bind(null, refresh);\n    EventListener.listen(window, 'scroll', callback);\n  },\n\n  dispatchEvent: function (topLevelType, nativeEvent) {\n    if (!ReactEventListener._enabled) {\n      return;\n    }\n\n    var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n    try {\n      // Event queue being processed in the same cycle allows\n      // `preventDefault`.\n      ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n    } finally {\n      TopLevelCallbackBookKeeping.release(bookKeeping);\n    }\n  }\n};\n\nmodule.exports = ReactEventListener;"
    },
    {
      "id": 406,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/EventListener.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/EventListener.js",
      "index": 406,
      "index2": 398,
      "size": 2653,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/EventListener",
          "loc": "15:20-53"
        },
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/EventListener",
          "loc": "15:20-53"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule EventListener\n * @typechecks\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n  /**\n   * Listen to DOM events during the bubble phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  listen: function (target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, false);\n      return {\n        remove: function () {\n          target.removeEventListener(eventType, callback, false);\n        }\n      };\n    } else if (target.attachEvent) {\n      target.attachEvent('on' + eventType, callback);\n      return {\n        remove: function () {\n          target.detachEvent('on' + eventType, callback);\n        }\n      };\n    }\n  },\n\n  /**\n   * Listen to DOM events during the capture phase.\n   *\n   * @param {DOMEventTarget} target DOM element to register listener on.\n   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n   * @param {function} callback Callback function.\n   * @return {object} Object with a `remove` method.\n   */\n  capture: function (target, eventType, callback) {\n    if (target.addEventListener) {\n      target.addEventListener(eventType, callback, true);\n      return {\n        remove: function () {\n          target.removeEventListener(eventType, callback, true);\n        }\n      };\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n      }\n      return {\n        remove: emptyFunction\n      };\n    }\n  },\n\n  registerDefault: function () {}\n};\n\nmodule.exports = EventListener;"
    },
    {
      "id": 407,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/getUnboundedScrollPosition.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getUnboundedScrollPosition.js",
      "index": 407,
      "index2": 399,
      "size": 1091,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 405,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactEventListener.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactEventListener.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getUnboundedScrollPosition",
          "loc": "24:33-79"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getUnboundedScrollPosition\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\nfunction getUnboundedScrollPosition(scrollable) {\n  if (scrollable === window) {\n    return {\n      x: window.pageXOffset || document.documentElement.scrollLeft,\n      y: window.pageYOffset || document.documentElement.scrollTop\n    };\n  }\n  return {\n    x: scrollable.scrollLeft,\n    y: scrollable.scrollTop\n  };\n}\n\nmodule.exports = getUnboundedScrollPosition;"
    },
    {
      "id": 408,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
      "index": 408,
      "index2": 404,
      "size": 1368,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactInjection",
          "loc": "27:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar EventPluginHub = require('./EventPluginHub');\nvar ReactComponentEnvironment = require('./ReactComponentEnvironment');\nvar ReactClass = require('./ReactClass');\nvar ReactEmptyComponent = require('./ReactEmptyComponent');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactNativeComponent = require('./ReactNativeComponent');\nvar ReactPerf = require('./ReactPerf');\nvar ReactRootIndex = require('./ReactRootIndex');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar ReactInjection = {\n  Component: ReactComponentEnvironment.injection,\n  Class: ReactClass.injection,\n  DOMProperty: DOMProperty.injection,\n  EmptyComponent: ReactEmptyComponent.injection,\n  EventPluginHub: EventPluginHub.injection,\n  EventEmitter: ReactBrowserEventEmitter.injection,\n  NativeComponent: ReactNativeComponent.injection,\n  Perf: ReactPerf.injection,\n  RootIndex: ReactRootIndex.injection,\n  Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;"
    },
    {
      "id": 409,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
      "index": 409,
      "index2": 403,
      "size": 27823,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 408,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactClass",
          "loc": "17:17-40"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactClass",
          "loc": "16:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar ReactComponent = require('./ReactComponent');\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar assign = require('./Object.assign');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar keyMirror = require('fbjs/lib/keyMirror');\nvar keyOf = require('fbjs/lib/keyOf');\nvar warning = require('fbjs/lib/warning');\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n  /**\n   * These methods may be defined only once by the class specification or mixin.\n   */\n  DEFINE_ONCE: null,\n  /**\n   * These methods may be defined by both the class specification and mixins.\n   * Subsequent definitions will be chained. These methods must return void.\n   */\n  DEFINE_MANY: null,\n  /**\n   * These methods are overriding the base class.\n   */\n  OVERRIDE_BASE: null,\n  /**\n   * These methods are similar to DEFINE_MANY, except we assume they return\n   * objects. We try to merge the keys of the return values of all the mixed in\n   * functions. If there is a key conflict we throw.\n   */\n  DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\nvar warnedSetProps = false;\nfunction warnSetProps() {\n  if (!warnedSetProps) {\n    warnedSetProps = true;\n    process.env.NODE_ENV !== 'production' ? warning(false, 'setProps(...) and replaceProps(...) are deprecated. ' + 'Instead, call render again at the top level.') : undefined;\n  }\n}\n\n/**\n * Composite components are higher-level components that compose other composite\n * or native components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n *   var MyComponent = React.createClass({\n *     render: function() {\n *       return <div>Hello World</div>;\n *     }\n *   });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n  /**\n   * An array of Mixin objects to include when defining your component.\n   *\n   * @type {array}\n   * @optional\n   */\n  mixins: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * An object containing properties and methods that should be defined on\n   * the component's constructor instead of its prototype (static methods).\n   *\n   * @type {object}\n   * @optional\n   */\n  statics: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of prop types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  propTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types for this component.\n   *\n   * @type {object}\n   * @optional\n   */\n  contextTypes: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Definition of context types this component sets for its children.\n   *\n   * @type {object}\n   * @optional\n   */\n  childContextTypes: SpecPolicy.DEFINE_MANY,\n\n  // ==== Definition methods ====\n\n  /**\n   * Invoked when the component is mounted. Values in the mapping will be set on\n   * `this.props` if that prop is not specified (i.e. using an `in` check).\n   *\n   * This method is invoked before `getInitialState` and therefore cannot rely\n   * on `this.state` or use `this.setState`.\n   *\n   * @return {object}\n   * @optional\n   */\n  getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Invoked once before the component is mounted. The return value will be used\n   * as the initial value of `this.state`.\n   *\n   *   getInitialState: function() {\n   *     return {\n   *       isOn: false,\n   *       fooBaz: new BazFoo()\n   *     }\n   *   }\n   *\n   * @return {object}\n   * @optional\n   */\n  getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * @return {object}\n   * @optional\n   */\n  getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n  /**\n   * Uses props from `this.props` and state from `this.state` to render the\n   * structure of the component.\n   *\n   * No guarantees are made about when or how often this method is invoked, so\n   * it must not have side effects.\n   *\n   *   render: function() {\n   *     var name = this.props.name;\n   *     return <div>Hello, {name}!</div>;\n   *   }\n   *\n   * @return {ReactComponent}\n   * @nosideeffects\n   * @required\n   */\n  render: SpecPolicy.DEFINE_ONCE,\n\n  // ==== Delegate methods ====\n\n  /**\n   * Invoked when the component is initially created and about to be mounted.\n   * This may have side effects, but any external subscriptions or data created\n   * by this method must be cleaned up in `componentWillUnmount`.\n   *\n   * @optional\n   */\n  componentWillMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component has been mounted and has a DOM representation.\n   * However, there is no guarantee that the DOM node is in the document.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been mounted (initialized and rendered) for the first time.\n   *\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidMount: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked before the component receives new props.\n   *\n   * Use this as an opportunity to react to a prop transition by updating the\n   * state using `this.setState`. Current props are accessed via `this.props`.\n   *\n   *   componentWillReceiveProps: function(nextProps, nextContext) {\n   *     this.setState({\n   *       likesIncreasing: nextProps.likeCount > this.props.likeCount\n   *     });\n   *   }\n   *\n   * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n   * transition may cause a state change, but the opposite is not true. If you\n   * need it, you are probably looking for `componentWillUpdate`.\n   *\n   * @param {object} nextProps\n   * @optional\n   */\n  componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked while deciding if the component should be updated as a result of\n   * receiving new props, state and/or context.\n   *\n   * Use this as an opportunity to `return false` when you're certain that the\n   * transition to the new props/state/context will not require a component\n   * update.\n   *\n   *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n   *     return !equal(nextProps, this.props) ||\n   *       !equal(nextState, this.state) ||\n   *       !equal(nextContext, this.context);\n   *   }\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @return {boolean} True if the component should update.\n   * @optional\n   */\n  shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n  /**\n   * Invoked when the component is about to update due to a transition from\n   * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n   * and `nextContext`.\n   *\n   * Use this as an opportunity to perform preparation before an update occurs.\n   *\n   * NOTE: You **cannot** use `this.setState()` in this method.\n   *\n   * @param {object} nextProps\n   * @param {?object} nextState\n   * @param {?object} nextContext\n   * @param {ReactReconcileTransaction} transaction\n   * @optional\n   */\n  componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component's DOM representation has been updated.\n   *\n   * Use this as an opportunity to operate on the DOM when the component has\n   * been updated.\n   *\n   * @param {object} prevProps\n   * @param {?object} prevState\n   * @param {?object} prevContext\n   * @param {DOMElement} rootNode DOM element representing the component.\n   * @optional\n   */\n  componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n  /**\n   * Invoked when the component is about to be removed from its parent and have\n   * its DOM representation destroyed.\n   *\n   * Use this as an opportunity to deallocate any external resources.\n   *\n   * NOTE: There is no `componentDidUnmount` since your component will have been\n   * destroyed by that point.\n   *\n   * @optional\n   */\n  componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n  // ==== Advanced methods ====\n\n  /**\n   * Updates the component's currently mounted DOM representation.\n   *\n   * By default, this implements React's rendering and reconciliation algorithm.\n   * Sophisticated clients may wish to override this.\n   *\n   * @param {ReactReconcileTransaction} transaction\n   * @internal\n   * @overridable\n   */\n  updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n  displayName: function (Constructor, displayName) {\n    Constructor.displayName = displayName;\n  },\n  mixins: function (Constructor, mixins) {\n    if (mixins) {\n      for (var i = 0; i < mixins.length; i++) {\n        mixSpecIntoComponent(Constructor, mixins[i]);\n      }\n    }\n  },\n  childContextTypes: function (Constructor, childContextTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, childContextTypes, ReactPropTypeLocations.childContext);\n    }\n    Constructor.childContextTypes = assign({}, Constructor.childContextTypes, childContextTypes);\n  },\n  contextTypes: function (Constructor, contextTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, contextTypes, ReactPropTypeLocations.context);\n    }\n    Constructor.contextTypes = assign({}, Constructor.contextTypes, contextTypes);\n  },\n  /**\n   * Special case getDefaultProps which should move into statics but requires\n   * automatic merging.\n   */\n  getDefaultProps: function (Constructor, getDefaultProps) {\n    if (Constructor.getDefaultProps) {\n      Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n    } else {\n      Constructor.getDefaultProps = getDefaultProps;\n    }\n  },\n  propTypes: function (Constructor, propTypes) {\n    if (process.env.NODE_ENV !== 'production') {\n      validateTypeDef(Constructor, propTypes, ReactPropTypeLocations.prop);\n    }\n    Constructor.propTypes = assign({}, Constructor.propTypes, propTypes);\n  },\n  statics: function (Constructor, statics) {\n    mixStaticSpecIntoComponent(Constructor, statics);\n  },\n  autobind: function () {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n  for (var propName in typeDef) {\n    if (typeDef.hasOwnProperty(propName)) {\n      // use a warning instead of an invariant so components\n      // don't show up in prod but not in __DEV__\n      process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : undefined;\n    }\n  }\n}\n\nfunction validateMethodOverride(proto, name) {\n  var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n  // Disallow overriding of base class methods unless explicitly allowed.\n  if (ReactClassMixin.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : undefined;\n  }\n\n  // Disallow defining methods more than once unless explicitly allowed.\n  if (proto.hasOwnProperty(name)) {\n    !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : undefined;\n  }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classses.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n  if (!spec) {\n    return;\n  }\n\n  !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n  !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n\n  var proto = Constructor.prototype;\n\n  // By handling mixins before any other properties, we ensure the same\n  // chaining order is applied to methods with DEFINE_MANY policy, whether\n  // mixins are listed before or after these methods in the spec.\n  if (spec.hasOwnProperty(MIXINS_KEY)) {\n    RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n  }\n\n  for (var name in spec) {\n    if (!spec.hasOwnProperty(name)) {\n      continue;\n    }\n\n    if (name === MIXINS_KEY) {\n      // We have already handled mixins in a special case above.\n      continue;\n    }\n\n    var property = spec[name];\n    validateMethodOverride(proto, name);\n\n    if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n      RESERVED_SPEC_KEYS[name](Constructor, property);\n    } else {\n      // Setup methods on prototype:\n      // The following member methods should not be automatically bound:\n      // 1. Expected ReactClass methods (in the \"interface\").\n      // 2. Overridden methods (that were mixed in).\n      var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n      var isAlreadyDefined = proto.hasOwnProperty(name);\n      var isFunction = typeof property === 'function';\n      var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n      if (shouldAutoBind) {\n        if (!proto.__reactAutoBindMap) {\n          proto.__reactAutoBindMap = {};\n        }\n        proto.__reactAutoBindMap[name] = property;\n        proto[name] = property;\n      } else {\n        if (isAlreadyDefined) {\n          var specPolicy = ReactClassInterface[name];\n\n          // These cases should already be caught by validateMethodOverride.\n          !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : undefined;\n\n          // For methods which are defined more than once, call the existing\n          // methods before calling the new property, merging if appropriate.\n          if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n            proto[name] = createMergedResultFunction(proto[name], property);\n          } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n            proto[name] = createChainedFunction(proto[name], property);\n          }\n        } else {\n          proto[name] = property;\n          if (process.env.NODE_ENV !== 'production') {\n            // Add verbose displayName to the function, which helps when looking\n            // at profiling tools.\n            if (typeof property === 'function' && spec.displayName) {\n              proto[name].displayName = spec.displayName + '_' + name;\n            }\n          }\n        }\n      }\n    }\n  }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n  if (!statics) {\n    return;\n  }\n  for (var name in statics) {\n    var property = statics[name];\n    if (!statics.hasOwnProperty(name)) {\n      continue;\n    }\n\n    var isReserved = (name in RESERVED_SPEC_KEYS);\n    !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(false) : undefined;\n\n    var isInherited = (name in Constructor);\n    !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : undefined;\n    Constructor[name] = property;\n  }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n  !(one && two && typeof one === 'object' && typeof two === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : undefined;\n\n  for (var key in two) {\n    if (two.hasOwnProperty(key)) {\n      !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(false) : undefined;\n      one[key] = two[key];\n    }\n  }\n  return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n  return function mergedResult() {\n    var a = one.apply(this, arguments);\n    var b = two.apply(this, arguments);\n    if (a == null) {\n      return b;\n    } else if (b == null) {\n      return a;\n    }\n    var c = {};\n    mergeIntoWithNoDuplicateKeys(c, a);\n    mergeIntoWithNoDuplicateKeys(c, b);\n    return c;\n  };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n  return function chainedFunction() {\n    one.apply(this, arguments);\n    two.apply(this, arguments);\n  };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n  var boundMethod = method.bind(component);\n  if (process.env.NODE_ENV !== 'production') {\n    boundMethod.__reactBoundContext = component;\n    boundMethod.__reactBoundMethod = method;\n    boundMethod.__reactBoundArguments = null;\n    var componentName = component.constructor.displayName;\n    var _bind = boundMethod.bind;\n    /* eslint-disable block-scoped-var, no-undef */\n    boundMethod.bind = function (newThis) {\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      // User is trying to bind() an autobound method; we effectively will\n      // ignore the value of \"this\" that the user is trying to use, so\n      // let's warn.\n      if (newThis !== component && newThis !== null) {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : undefined;\n      } else if (!args.length) {\n        process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : undefined;\n        return boundMethod;\n      }\n      var reboundMethod = _bind.apply(boundMethod, arguments);\n      reboundMethod.__reactBoundContext = component;\n      reboundMethod.__reactBoundMethod = method;\n      reboundMethod.__reactBoundArguments = args;\n      return reboundMethod;\n      /* eslint-enable */\n    };\n  }\n  return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n  for (var autoBindKey in component.__reactAutoBindMap) {\n    if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {\n      var method = component.__reactAutoBindMap[autoBindKey];\n      component[autoBindKey] = bindAutoBindMethod(component, method);\n    }\n  }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n  /**\n   * TODO: This will be deprecated because state should always keep a consistent\n   * type signature and the only use case for this, is to avoid that.\n   */\n  replaceState: function (newState, callback) {\n    this.updater.enqueueReplaceState(this, newState);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  },\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function () {\n    return this.updater.isMounted(this);\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {object} partialProps Subset of the next props.\n   * @param {?function} callback Called after props are updated.\n   * @final\n   * @public\n   * @deprecated\n   */\n  setProps: function (partialProps, callback) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnSetProps();\n    }\n    this.updater.enqueueSetProps(this, partialProps);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  },\n\n  /**\n   * Replace all the props.\n   *\n   * @param {object} newProps Subset of the next props.\n   * @param {?function} callback Called after props are updated.\n   * @final\n   * @public\n   * @deprecated\n   */\n  replaceProps: function (newProps, callback) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnSetProps();\n    }\n    this.updater.enqueueReplaceProps(this, newProps);\n    if (callback) {\n      this.updater.enqueueCallback(this, callback);\n    }\n  }\n};\n\nvar ReactClassComponent = function () {};\nassign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n  /**\n   * Creates a composite component class given a class specification.\n   *\n   * @param {object} spec Class specification (which must define `render`).\n   * @return {function} Component constructor function.\n   * @public\n   */\n  createClass: function (spec) {\n    var Constructor = function (props, context, updater) {\n      // This constructor is overridden by mocks. The argument is used\n      // by mocks to assert on what gets mounted.\n\n      if (process.env.NODE_ENV !== 'production') {\n        process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : undefined;\n      }\n\n      // Wire up auto-binding\n      if (this.__reactAutoBindMap) {\n        bindAutoBindMethods(this);\n      }\n\n      this.props = props;\n      this.context = context;\n      this.refs = emptyObject;\n      this.updater = updater || ReactNoopUpdateQueue;\n\n      this.state = null;\n\n      // ReactClasses doesn't have constructors. Instead, they use the\n      // getInitialState and componentWillMount methods for initialization.\n\n      var initialState = this.getInitialState ? this.getInitialState() : null;\n      if (process.env.NODE_ENV !== 'production') {\n        // We allow auto-mocks to proceed as if they're returning null.\n        if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) {\n          // This is probably bad practice. Consider warning here and\n          // deprecating this convenience.\n          initialState = null;\n        }\n      }\n      !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n      this.state = initialState;\n    };\n    Constructor.prototype = new ReactClassComponent();\n    Constructor.prototype.constructor = Constructor;\n\n    injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n    mixSpecIntoComponent(Constructor, spec);\n\n    // Initialize the defaultProps property after all mixins have been merged.\n    if (Constructor.getDefaultProps) {\n      Constructor.defaultProps = Constructor.getDefaultProps();\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      // This is a tag to indicate that the use of these method names is ok,\n      // since it's used with createClass. If it's not, then it's likely a\n      // mistake so we'll warn you to use the static property, property\n      // initializer or constructor respectively.\n      if (Constructor.getDefaultProps) {\n        Constructor.getDefaultProps.isReactClassApproved = {};\n      }\n      if (Constructor.prototype.getInitialState) {\n        Constructor.prototype.getInitialState.isReactClassApproved = {};\n      }\n    }\n\n    !Constructor.prototype.render ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : undefined;\n\n    if (process.env.NODE_ENV !== 'production') {\n      process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : undefined;\n      process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : undefined;\n    }\n\n    // Reduce time spent doing lookups by setting these on the prototype.\n    for (var methodName in ReactClassInterface) {\n      if (!Constructor.prototype[methodName]) {\n        Constructor.prototype[methodName] = null;\n      }\n    }\n\n    return Constructor;\n  },\n\n  injection: {\n    injectMixin: function (mixin) {\n      injectedMixins.push(mixin);\n    }\n  }\n\n};\n\nmodule.exports = ReactClass;"
    },
    {
      "id": 410,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
      "index": 410,
      "index2": 402,
      "size": 5041,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactComponent",
          "loc": "14:21-48"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactComponent",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar ReactNoopUpdateQueue = require('./ReactNoopUpdateQueue');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : undefined;\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : undefined;\n  }\n  this.updater.enqueueSetState(this, partialState);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback);\n  }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this);\n  if (callback) {\n    this.updater.enqueueCallback(this, callback);\n  }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n  var deprecatedAPIs = {\n    getDOMNode: ['getDOMNode', 'Use ReactDOM.findDOMNode(component) instead.'],\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceProps: ['replaceProps', 'Instead, call render again at the top level.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'],\n    setProps: ['setProps', 'Instead, call render again at the top level.']\n  };\n  var defineDeprecationWarning = function (methodName, info) {\n    if (canDefineProperty) {\n      Object.defineProperty(ReactComponent.prototype, methodName, {\n        get: function () {\n          process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined;\n          return undefined;\n        }\n      });\n    }\n  };\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nmodule.exports = ReactComponent;"
    },
    {
      "id": 411,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactNoopUpdateQueue.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactNoopUpdateQueue.js",
      "index": 411,
      "index2": 401,
      "size": 3937,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 409,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactClass.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactClass.js",
          "type": "cjs require",
          "userRequest": "./ReactNoopUpdateQueue",
          "loc": "18:27-60"
        },
        {
          "moduleId": 410,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactComponent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactComponent.js",
          "type": "cjs require",
          "userRequest": "./ReactNoopUpdateQueue",
          "loc": "14:27-60"
        }
      ],
      "source": "/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = require('fbjs/lib/warning');\n\nfunction warnTDZ(publicInstance, callerName) {\n  if (process.env.NODE_ENV !== 'production') {\n    process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : undefined;\n  }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Enqueue a callback that will be executed after all the pending updates\n   * have processed.\n   *\n   * @param {ReactClass} publicInstance The instance to use as `this` context.\n   * @param {?function} callback Called after state is updated.\n   * @internal\n   */\n  enqueueCallback: function (publicInstance, callback) {},\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance) {\n    warnTDZ(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState) {\n    warnTDZ(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState) {\n    warnTDZ(publicInstance, 'setState');\n  },\n\n  /**\n   * Sets a subset of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialProps Subset of the next props.\n   * @internal\n   */\n  enqueueSetProps: function (publicInstance, partialProps) {\n    warnTDZ(publicInstance, 'setProps');\n  },\n\n  /**\n   * Replaces all of the props.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} props New props.\n   * @internal\n   */\n  enqueueReplaceProps: function (publicInstance, props) {\n    warnTDZ(publicInstance, 'replaceProps');\n  }\n\n};\n\nmodule.exports = ReactNoopUpdateQueue;"
    },
    {
      "id": 412,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
      "index": 412,
      "index2": 409,
      "size": 4581,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactReconcileTransaction",
          "loc": "30:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CallbackQueue = require('./CallbackQueue');\nvar PooledClass = require('./PooledClass');\nvar ReactBrowserEventEmitter = require('./ReactBrowserEventEmitter');\nvar ReactDOMFeatureFlags = require('./ReactDOMFeatureFlags');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n  /**\n   * @return {Selection} Selection information.\n   */\n  initialize: ReactInputSelection.getSelectionInformation,\n  /**\n   * @param {Selection} sel Selection information returned from `initialize`.\n   */\n  close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n  /**\n   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n   * the reconciliation.\n   */\n  initialize: function () {\n    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n    ReactBrowserEventEmitter.setEnabled(false);\n    return currentlyEnabled;\n  },\n\n  /**\n   * @param {boolean} previouslyEnabled Enabled status of\n   *   `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n   *   restores the previous value.\n   */\n  close: function (previouslyEnabled) {\n    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n  }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  /**\n   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n   */\n  close: function () {\n    this.reactMountReady.notifyAll();\n  }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n *   modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n *   track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(forceHTML) {\n  this.reinitializeTransaction();\n  // Only server-side rendering really needs this option (see\n  // `ReactServerRendering`), but server-side uses\n  // `ReactServerRenderingTransaction` instead. This option is here so that it's\n  // accessible and defaults to false when `ReactDOMComponent` and\n  // `ReactTextComponent` checks it in `mountComponent`.`\n  this.renderToStaticMarkup = false;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = !forceHTML && ReactDOMFeatureFlags.useCreateElement;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array<object>} List of operation wrap procedures.\n   *   TODO: convert to array<TransactionWrapper>\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\nassign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;"
    },
    {
      "id": 413,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
      "index": 413,
      "index2": 408,
      "size": 4320,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 412,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactReconcileTransaction.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactReconcileTransaction.js",
          "type": "cjs require",
          "userRequest": "./ReactInputSelection",
          "loc": "19:26-58"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./ReactInputSelection",
          "loc": "17:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = require('./ReactDOMSelection');\n\nvar containsNode = require('fbjs/lib/containsNode');\nvar focusNode = require('fbjs/lib/focusNode');\nvar getActiveElement = require('fbjs/lib/getActiveElement');\n\nfunction isInDocument(node) {\n  return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n  hasSelectionCapabilities: function (elem) {\n    var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n    return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n  },\n\n  getSelectionInformation: function () {\n    var focusedElem = getActiveElement();\n    return {\n      focusedElem: focusedElem,\n      selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n    };\n  },\n\n  /**\n   * @restoreSelection: If any selection information was potentially lost,\n   * restore it. This is useful when performing operations that could remove dom\n   * nodes and place them back in, resulting in focus being lost.\n   */\n  restoreSelection: function (priorSelectionInformation) {\n    var curFocusedElem = getActiveElement();\n    var priorFocusedElem = priorSelectionInformation.focusedElem;\n    var priorSelectionRange = priorSelectionInformation.selectionRange;\n    if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n      if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n        ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n      }\n      focusNode(priorFocusedElem);\n    }\n  },\n\n  /**\n   * @getSelection: Gets the selection bounds of a focused textarea, input or\n   * contentEditable node.\n   * -@input: Look up selection bounds of this input\n   * -@return {start: selectionStart, end: selectionEnd}\n   */\n  getSelection: function (input) {\n    var selection;\n\n    if ('selectionStart' in input) {\n      // Modern browser with input or textarea.\n      selection = {\n        start: input.selectionStart,\n        end: input.selectionEnd\n      };\n    } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) {\n      // IE8 input.\n      var range = document.selection.createRange();\n      // There can only be one selection per document in IE, so it must\n      // be in our element.\n      if (range.parentElement() === input) {\n        selection = {\n          start: -range.moveStart('character', -input.value.length),\n          end: -range.moveEnd('character', -input.value.length)\n        };\n      }\n    } else {\n      // Content editable or old IE textarea.\n      selection = ReactDOMSelection.getOffsets(input);\n    }\n\n    return selection || { start: 0, end: 0 };\n  },\n\n  /**\n   * @setSelection: Sets the selection bounds of a textarea or input and focuses\n   * the input.\n   * -@input     Set selection bounds of this input or textarea\n   * -@offsets   Object of same form that is returned from get*\n   */\n  setSelection: function (input, offsets) {\n    var start = offsets.start;\n    var end = offsets.end;\n    if (typeof end === 'undefined') {\n      end = start;\n    }\n\n    if ('selectionStart' in input) {\n      input.selectionStart = start;\n      input.selectionEnd = Math.min(end, input.value.length);\n    } else if (document.selection && (input.nodeName && input.nodeName.toLowerCase() === 'input')) {\n      var range = input.createTextRange();\n      range.collapse(true);\n      range.moveStart('character', start);\n      range.moveEnd('character', end - start);\n      range.select();\n    } else {\n      ReactDOMSelection.setOffsets(input, offsets);\n    }\n  }\n};\n\nmodule.exports = ReactInputSelection;"
    },
    {
      "id": 414,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelection.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
      "index": 414,
      "index2": 406,
      "size": 6827,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 413,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMSelection",
          "loc": "14:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nvar getNodeForCharacterOffset = require('./getNodeForCharacterOffset');\nvar getTextContentAccessor = require('./getTextContentAccessor');\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n  return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n  var selection = document.selection;\n  var selectedRange = selection.createRange();\n  var selectedLength = selectedRange.text.length;\n\n  // Duplicate selection so we can move range without breaking user selection.\n  var fromStart = selectedRange.duplicate();\n  fromStart.moveToElementText(node);\n  fromStart.setEndPoint('EndToStart', selectedRange);\n\n  var startOffset = fromStart.text.length;\n  var endOffset = startOffset + selectedLength;\n\n  return {\n    start: startOffset,\n    end: endOffset\n  };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n  var selection = window.getSelection && window.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode;\n  var anchorOffset = selection.anchorOffset;\n  var focusNode = selection.focusNode;\n  var focusOffset = selection.focusOffset;\n\n  var currentRange = selection.getRangeAt(0);\n\n  // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n  // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n  // divs do not seem to expose properties, triggering a \"Permission denied\n  // error\" if any of its properties are accessed. The only seemingly possible\n  // way to avoid erroring is to access a property that typically works for\n  // non-anonymous divs and catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n  try {\n    /* eslint-disable no-unused-expressions */\n    currentRange.startContainer.nodeType;\n    currentRange.endContainer.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  // If the node and offset values are the same, the selection is collapsed.\n  // `Selection.isCollapsed` is available natively, but IE sometimes gets\n  // this value wrong.\n  var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n  var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n  var tempRange = currentRange.cloneRange();\n  tempRange.selectNodeContents(node);\n  tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n  var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n  var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n  var end = start + rangeLength;\n\n  // Detect whether the selection is backward.\n  var detectionRange = document.createRange();\n  detectionRange.setStart(anchorNode, anchorOffset);\n  detectionRange.setEnd(focusNode, focusOffset);\n  var isBackward = detectionRange.collapsed;\n\n  return {\n    start: isBackward ? end : start,\n    end: isBackward ? start : end\n  };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n  var range = document.selection.createRange().duplicate();\n  var start, end;\n\n  if (typeof offsets.end === 'undefined') {\n    start = offsets.start;\n    end = start;\n  } else if (offsets.start > offsets.end) {\n    start = offsets.end;\n    end = offsets.start;\n  } else {\n    start = offsets.start;\n    end = offsets.end;\n  }\n\n  range.moveToElementText(node);\n  range.moveStart('character', start);\n  range.setEndPoint('EndToStart', range);\n  range.moveEnd('character', end - start);\n  range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n  if (!window.getSelection) {\n    return;\n  }\n\n  var selection = window.getSelection();\n  var length = node[getTextContentAccessor()].length;\n  var start = Math.min(offsets.start, length);\n  var end = typeof offsets.end === 'undefined' ? start : Math.min(offsets.end, length);\n\n  // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    var range = document.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n  /**\n   * @param {DOMElement} node\n   */\n  getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n  /**\n   * @param {DOMElement|DOMTextNode} node\n   * @param {object} offsets\n   */\n  setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;"
    },
    {
      "id": 415,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getNodeForCharacterOffset.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getNodeForCharacterOffset.js",
      "index": 415,
      "index2": 405,
      "size": 1658,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 414,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMSelection.js",
          "type": "cjs require",
          "userRequest": "./getNodeForCharacterOffset",
          "loc": "16:32-70"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n  return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n    node = node.parentNode;\n  }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === 3) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\nmodule.exports = getNodeForCharacterOffset;"
    },
    {
      "id": 416,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/getActiveElement.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/getActiveElement.js",
      "index": 416,
      "index2": 407,
      "size": 924,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 413,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactInputSelection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactInputSelection.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getActiveElement",
          "loc": "18:23-59"
        },
        {
          "moduleId": 417,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/getActiveElement",
          "loc": "20:23-59"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getActiveElement\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n */\n'use strict';\n\nfunction getActiveElement() /*?DOMElement*/{\n  if (typeof document === 'undefined') {\n    return null;\n  }\n  try {\n    return document.activeElement || document.body;\n  } catch (e) {\n    return document.body;\n  }\n}\n\nmodule.exports = getActiveElement;"
    },
    {
      "id": 417,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SelectEventPlugin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SelectEventPlugin.js",
      "index": 417,
      "index2": 410,
      "size": 6705,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./SelectEventPlugin",
          "loc": "31:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventPropagators = require('./EventPropagators');\nvar ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\nvar ReactInputSelection = require('./ReactInputSelection');\nvar SyntheticEvent = require('./SyntheticEvent');\n\nvar getActiveElement = require('fbjs/lib/getActiveElement');\nvar isTextInputElement = require('./isTextInputElement');\nvar keyOf = require('fbjs/lib/keyOf');\nvar shallowEqual = require('fbjs/lib/shallowEqual');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSelect: null }),\n      captured: keyOf({ onSelectCapture: null })\n    },\n    dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n  }\n};\n\nvar activeElement = null;\nvar activeElementID = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n  if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else if (window.getSelection) {\n    var selection = window.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  } else if (document.selection) {\n    var range = document.selection.createRange();\n    return {\n      parentElement: range.parentElement(),\n      text: range.text,\n      top: range.boundingTop,\n      left: range.boundingLeft\n    };\n  }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n    return null;\n  }\n\n  // Only fire when selection has actually changed.\n  var currentSelection = getSelection(activeElement);\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementID, nativeEvent, nativeEventTarget);\n\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement;\n\n    EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n    return syntheticEvent;\n  }\n\n  return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    if (!hasListener) {\n      return null;\n    }\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case topLevelTypes.topFocus:\n        if (isTextInputElement(topLevelTarget) || topLevelTarget.contentEditable === 'true') {\n          activeElement = topLevelTarget;\n          activeElementID = topLevelTargetID;\n          lastSelection = null;\n        }\n        break;\n      case topLevelTypes.topBlur:\n        activeElement = null;\n        activeElementID = null;\n        lastSelection = null;\n        break;\n\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n      case topLevelTypes.topMouseDown:\n        mouseDown = true;\n        break;\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topMouseUp:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n      case topLevelTypes.topSelectionChange:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n      // falls through\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  },\n\n  didPutListener: function (id, registrationName, listener) {\n    if (registrationName === ON_SELECT_KEY) {\n      hasListener = true;\n    }\n  }\n};\n\nmodule.exports = SelectEventPlugin;"
    },
    {
      "id": 418,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ServerReactRootIndex.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ServerReactRootIndex.js",
      "index": 418,
      "index2": 411,
      "size": 868,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ServerReactRootIndex",
          "loc": "32:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ServerReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Size of the reactRoot ID space. We generate random numbers for React root\n * IDs and if there's a collision the events and DOM update system will\n * get confused. In the future we need a way to generate GUIDs but for\n * now this will work on a smaller scale.\n */\nvar GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53);\n\nvar ServerReactRootIndex = {\n  createReactRootIndex: function () {\n    return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX);\n  }\n};\n\nmodule.exports = ServerReactRootIndex;"
    },
    {
      "id": 419,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
      "index": 419,
      "index2": 420,
      "size": 17439,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./SimpleEventPlugin",
          "loc": "33:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = require('./EventConstants');\nvar EventListener = require('fbjs/lib/EventListener');\nvar EventPropagators = require('./EventPropagators');\nvar ReactMount = require('./ReactMount');\nvar SyntheticClipboardEvent = require('./SyntheticClipboardEvent');\nvar SyntheticEvent = require('./SyntheticEvent');\nvar SyntheticFocusEvent = require('./SyntheticFocusEvent');\nvar SyntheticKeyboardEvent = require('./SyntheticKeyboardEvent');\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\nvar SyntheticDragEvent = require('./SyntheticDragEvent');\nvar SyntheticTouchEvent = require('./SyntheticTouchEvent');\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\nvar SyntheticWheelEvent = require('./SyntheticWheelEvent');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar getEventCharCode = require('./getEventCharCode');\nvar invariant = require('fbjs/lib/invariant');\nvar keyOf = require('fbjs/lib/keyOf');\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n  abort: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onAbort: true }),\n      captured: keyOf({ onAbortCapture: true })\n    }\n  },\n  blur: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onBlur: true }),\n      captured: keyOf({ onBlurCapture: true })\n    }\n  },\n  canPlay: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlay: true }),\n      captured: keyOf({ onCanPlayCapture: true })\n    }\n  },\n  canPlayThrough: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCanPlayThrough: true }),\n      captured: keyOf({ onCanPlayThroughCapture: true })\n    }\n  },\n  click: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onClick: true }),\n      captured: keyOf({ onClickCapture: true })\n    }\n  },\n  contextMenu: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onContextMenu: true }),\n      captured: keyOf({ onContextMenuCapture: true })\n    }\n  },\n  copy: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCopy: true }),\n      captured: keyOf({ onCopyCapture: true })\n    }\n  },\n  cut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onCut: true }),\n      captured: keyOf({ onCutCapture: true })\n    }\n  },\n  doubleClick: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDoubleClick: true }),\n      captured: keyOf({ onDoubleClickCapture: true })\n    }\n  },\n  drag: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrag: true }),\n      captured: keyOf({ onDragCapture: true })\n    }\n  },\n  dragEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnd: true }),\n      captured: keyOf({ onDragEndCapture: true })\n    }\n  },\n  dragEnter: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragEnter: true }),\n      captured: keyOf({ onDragEnterCapture: true })\n    }\n  },\n  dragExit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragExit: true }),\n      captured: keyOf({ onDragExitCapture: true })\n    }\n  },\n  dragLeave: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragLeave: true }),\n      captured: keyOf({ onDragLeaveCapture: true })\n    }\n  },\n  dragOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragOver: true }),\n      captured: keyOf({ onDragOverCapture: true })\n    }\n  },\n  dragStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDragStart: true }),\n      captured: keyOf({ onDragStartCapture: true })\n    }\n  },\n  drop: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDrop: true }),\n      captured: keyOf({ onDropCapture: true })\n    }\n  },\n  durationChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onDurationChange: true }),\n      captured: keyOf({ onDurationChangeCapture: true })\n    }\n  },\n  emptied: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEmptied: true }),\n      captured: keyOf({ onEmptiedCapture: true })\n    }\n  },\n  encrypted: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEncrypted: true }),\n      captured: keyOf({ onEncryptedCapture: true })\n    }\n  },\n  ended: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onEnded: true }),\n      captured: keyOf({ onEndedCapture: true })\n    }\n  },\n  error: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onError: true }),\n      captured: keyOf({ onErrorCapture: true })\n    }\n  },\n  focus: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onFocus: true }),\n      captured: keyOf({ onFocusCapture: true })\n    }\n  },\n  input: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onInput: true }),\n      captured: keyOf({ onInputCapture: true })\n    }\n  },\n  keyDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyDown: true }),\n      captured: keyOf({ onKeyDownCapture: true })\n    }\n  },\n  keyPress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyPress: true }),\n      captured: keyOf({ onKeyPressCapture: true })\n    }\n  },\n  keyUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onKeyUp: true }),\n      captured: keyOf({ onKeyUpCapture: true })\n    }\n  },\n  load: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoad: true }),\n      captured: keyOf({ onLoadCapture: true })\n    }\n  },\n  loadedData: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedData: true }),\n      captured: keyOf({ onLoadedDataCapture: true })\n    }\n  },\n  loadedMetadata: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadedMetadata: true }),\n      captured: keyOf({ onLoadedMetadataCapture: true })\n    }\n  },\n  loadStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onLoadStart: true }),\n      captured: keyOf({ onLoadStartCapture: true })\n    }\n  },\n  // Note: We do not allow listening to mouseOver events. Instead, use the\n  // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n  mouseDown: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseDown: true }),\n      captured: keyOf({ onMouseDownCapture: true })\n    }\n  },\n  mouseMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseMove: true }),\n      captured: keyOf({ onMouseMoveCapture: true })\n    }\n  },\n  mouseOut: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOut: true }),\n      captured: keyOf({ onMouseOutCapture: true })\n    }\n  },\n  mouseOver: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseOver: true }),\n      captured: keyOf({ onMouseOverCapture: true })\n    }\n  },\n  mouseUp: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onMouseUp: true }),\n      captured: keyOf({ onMouseUpCapture: true })\n    }\n  },\n  paste: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPaste: true }),\n      captured: keyOf({ onPasteCapture: true })\n    }\n  },\n  pause: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPause: true }),\n      captured: keyOf({ onPauseCapture: true })\n    }\n  },\n  play: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlay: true }),\n      captured: keyOf({ onPlayCapture: true })\n    }\n  },\n  playing: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onPlaying: true }),\n      captured: keyOf({ onPlayingCapture: true })\n    }\n  },\n  progress: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onProgress: true }),\n      captured: keyOf({ onProgressCapture: true })\n    }\n  },\n  rateChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onRateChange: true }),\n      captured: keyOf({ onRateChangeCapture: true })\n    }\n  },\n  reset: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onReset: true }),\n      captured: keyOf({ onResetCapture: true })\n    }\n  },\n  scroll: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onScroll: true }),\n      captured: keyOf({ onScrollCapture: true })\n    }\n  },\n  seeked: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeked: true }),\n      captured: keyOf({ onSeekedCapture: true })\n    }\n  },\n  seeking: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSeeking: true }),\n      captured: keyOf({ onSeekingCapture: true })\n    }\n  },\n  stalled: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onStalled: true }),\n      captured: keyOf({ onStalledCapture: true })\n    }\n  },\n  submit: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSubmit: true }),\n      captured: keyOf({ onSubmitCapture: true })\n    }\n  },\n  suspend: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onSuspend: true }),\n      captured: keyOf({ onSuspendCapture: true })\n    }\n  },\n  timeUpdate: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTimeUpdate: true }),\n      captured: keyOf({ onTimeUpdateCapture: true })\n    }\n  },\n  touchCancel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchCancel: true }),\n      captured: keyOf({ onTouchCancelCapture: true })\n    }\n  },\n  touchEnd: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchEnd: true }),\n      captured: keyOf({ onTouchEndCapture: true })\n    }\n  },\n  touchMove: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchMove: true }),\n      captured: keyOf({ onTouchMoveCapture: true })\n    }\n  },\n  touchStart: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onTouchStart: true }),\n      captured: keyOf({ onTouchStartCapture: true })\n    }\n  },\n  volumeChange: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onVolumeChange: true }),\n      captured: keyOf({ onVolumeChangeCapture: true })\n    }\n  },\n  waiting: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWaiting: true }),\n      captured: keyOf({ onWaitingCapture: true })\n    }\n  },\n  wheel: {\n    phasedRegistrationNames: {\n      bubbled: keyOf({ onWheel: true }),\n      captured: keyOf({ onWheelCapture: true })\n    }\n  }\n};\n\nvar topLevelEventsToDispatchConfig = {\n  topAbort: eventTypes.abort,\n  topBlur: eventTypes.blur,\n  topCanPlay: eventTypes.canPlay,\n  topCanPlayThrough: eventTypes.canPlayThrough,\n  topClick: eventTypes.click,\n  topContextMenu: eventTypes.contextMenu,\n  topCopy: eventTypes.copy,\n  topCut: eventTypes.cut,\n  topDoubleClick: eventTypes.doubleClick,\n  topDrag: eventTypes.drag,\n  topDragEnd: eventTypes.dragEnd,\n  topDragEnter: eventTypes.dragEnter,\n  topDragExit: eventTypes.dragExit,\n  topDragLeave: eventTypes.dragLeave,\n  topDragOver: eventTypes.dragOver,\n  topDragStart: eventTypes.dragStart,\n  topDrop: eventTypes.drop,\n  topDurationChange: eventTypes.durationChange,\n  topEmptied: eventTypes.emptied,\n  topEncrypted: eventTypes.encrypted,\n  topEnded: eventTypes.ended,\n  topError: eventTypes.error,\n  topFocus: eventTypes.focus,\n  topInput: eventTypes.input,\n  topKeyDown: eventTypes.keyDown,\n  topKeyPress: eventTypes.keyPress,\n  topKeyUp: eventTypes.keyUp,\n  topLoad: eventTypes.load,\n  topLoadedData: eventTypes.loadedData,\n  topLoadedMetadata: eventTypes.loadedMetadata,\n  topLoadStart: eventTypes.loadStart,\n  topMouseDown: eventTypes.mouseDown,\n  topMouseMove: eventTypes.mouseMove,\n  topMouseOut: eventTypes.mouseOut,\n  topMouseOver: eventTypes.mouseOver,\n  topMouseUp: eventTypes.mouseUp,\n  topPaste: eventTypes.paste,\n  topPause: eventTypes.pause,\n  topPlay: eventTypes.play,\n  topPlaying: eventTypes.playing,\n  topProgress: eventTypes.progress,\n  topRateChange: eventTypes.rateChange,\n  topReset: eventTypes.reset,\n  topScroll: eventTypes.scroll,\n  topSeeked: eventTypes.seeked,\n  topSeeking: eventTypes.seeking,\n  topStalled: eventTypes.stalled,\n  topSubmit: eventTypes.submit,\n  topSuspend: eventTypes.suspend,\n  topTimeUpdate: eventTypes.timeUpdate,\n  topTouchCancel: eventTypes.touchCancel,\n  topTouchEnd: eventTypes.touchEnd,\n  topTouchMove: eventTypes.touchMove,\n  topTouchStart: eventTypes.touchStart,\n  topVolumeChange: eventTypes.volumeChange,\n  topWaiting: eventTypes.waiting,\n  topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n  topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nvar SimpleEventPlugin = {\n\n  eventTypes: eventTypes,\n\n  /**\n   * @param {string} topLevelType Record from `EventConstants`.\n   * @param {DOMEventTarget} topLevelTarget The listening component root node.\n   * @param {string} topLevelTargetID ID of `topLevelTarget`.\n   * @param {object} nativeEvent Native browser event.\n   * @return {*} An accumulation of synthetic events.\n   * @see {EventPluginHub.extractEvents}\n   */\n  extractEvents: function (topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n    if (!dispatchConfig) {\n      return null;\n    }\n    var EventConstructor;\n    switch (topLevelType) {\n      case topLevelTypes.topAbort:\n      case topLevelTypes.topCanPlay:\n      case topLevelTypes.topCanPlayThrough:\n      case topLevelTypes.topDurationChange:\n      case topLevelTypes.topEmptied:\n      case topLevelTypes.topEncrypted:\n      case topLevelTypes.topEnded:\n      case topLevelTypes.topError:\n      case topLevelTypes.topInput:\n      case topLevelTypes.topLoad:\n      case topLevelTypes.topLoadedData:\n      case topLevelTypes.topLoadedMetadata:\n      case topLevelTypes.topLoadStart:\n      case topLevelTypes.topPause:\n      case topLevelTypes.topPlay:\n      case topLevelTypes.topPlaying:\n      case topLevelTypes.topProgress:\n      case topLevelTypes.topRateChange:\n      case topLevelTypes.topReset:\n      case topLevelTypes.topSeeked:\n      case topLevelTypes.topSeeking:\n      case topLevelTypes.topStalled:\n      case topLevelTypes.topSubmit:\n      case topLevelTypes.topSuspend:\n      case topLevelTypes.topTimeUpdate:\n      case topLevelTypes.topVolumeChange:\n      case topLevelTypes.topWaiting:\n        // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n        EventConstructor = SyntheticEvent;\n        break;\n      case topLevelTypes.topKeyPress:\n        // FireFox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topKeyDown:\n      case topLevelTypes.topKeyUp:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n      case topLevelTypes.topBlur:\n      case topLevelTypes.topFocus:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n      case topLevelTypes.topClick:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n      /* falls through */\n      case topLevelTypes.topContextMenu:\n      case topLevelTypes.topDoubleClick:\n      case topLevelTypes.topMouseDown:\n      case topLevelTypes.topMouseMove:\n      case topLevelTypes.topMouseOut:\n      case topLevelTypes.topMouseOver:\n      case topLevelTypes.topMouseUp:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n      case topLevelTypes.topDrag:\n      case topLevelTypes.topDragEnd:\n      case topLevelTypes.topDragEnter:\n      case topLevelTypes.topDragExit:\n      case topLevelTypes.topDragLeave:\n      case topLevelTypes.topDragOver:\n      case topLevelTypes.topDragStart:\n      case topLevelTypes.topDrop:\n        EventConstructor = SyntheticDragEvent;\n        break;\n      case topLevelTypes.topTouchCancel:\n      case topLevelTypes.topTouchEnd:\n      case topLevelTypes.topTouchMove:\n      case topLevelTypes.topTouchStart:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n      case topLevelTypes.topScroll:\n        EventConstructor = SyntheticUIEvent;\n        break;\n      case topLevelTypes.topWheel:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n      case topLevelTypes.topCopy:\n      case topLevelTypes.topCut:\n      case topLevelTypes.topPaste:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n    }\n    !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : invariant(false) : undefined;\n    var event = EventConstructor.getPooled(dispatchConfig, topLevelTargetID, nativeEvent, nativeEventTarget);\n    EventPropagators.accumulateTwoPhaseDispatches(event);\n    return event;\n  },\n\n  didPutListener: function (id, registrationName, listener) {\n    // Mobile Safari does not fire properly bubble click events on\n    // non-interactive elements, which means delegated click listeners do not\n    // fire. The workaround for this bug involves attaching an empty click\n    // listener on the target node.\n    if (registrationName === ON_CLICK_KEY) {\n      var node = ReactMount.getNode(id);\n      if (!onClickListeners[id]) {\n        onClickListeners[id] = EventListener.listen(node, 'click', emptyFunction);\n      }\n    }\n  },\n\n  willDeleteListener: function (id, registrationName) {\n    if (registrationName === ON_CLICK_KEY) {\n      onClickListeners[id].remove();\n      delete onClickListeners[id];\n    }\n  }\n\n};\n\nmodule.exports = SimpleEventPlugin;"
    },
    {
      "id": 420,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticClipboardEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticClipboardEvent.js",
      "index": 420,
      "index2": 412,
      "size": 1229,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticClipboardEvent",
          "loc": "18:30-66"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = require('./SyntheticEvent');\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;"
    },
    {
      "id": 421,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticFocusEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticFocusEvent.js",
      "index": 421,
      "index2": 413,
      "size": 1122,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticFocusEvent",
          "loc": "20:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n  relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;"
    },
    {
      "id": 422,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticKeyboardEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
      "index": 422,
      "index2": 416,
      "size": 2764,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticKeyboardEvent",
          "loc": "21:29-64"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventCharCode = require('./getEventCharCode');\nvar getEventKey = require('./getEventKey');\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;"
    },
    {
      "id": 423,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getEventCharCode.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getEventCharCode.js",
      "index": 423,
      "index2": 414,
      "size": 1564,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./getEventCharCode",
          "loc": "29:23-52"
        },
        {
          "moduleId": 422,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventCharCode",
          "loc": "17:23-52"
        },
        {
          "moduleId": 424,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getEventKey.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getEventKey.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getEventKey.js",
          "type": "cjs require",
          "userRequest": "./getEventCharCode",
          "loc": "15:23-52"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode;\n\n    // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  }\n\n  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\nmodule.exports = getEventCharCode;"
    },
    {
      "id": 424,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/getEventKey.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/getEventKey.js",
      "index": 424,
      "index2": 415,
      "size": 2927,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticKeyboardEvent.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 422,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticKeyboardEvent.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticKeyboardEvent.js",
          "type": "cjs require",
          "userRequest": "./getEventKey",
          "loc": "18:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n * @typechecks static-only\n */\n\n'use strict';\n\nvar getEventCharCode = require('./getEventCharCode');\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n  'Esc': 'Escape',\n  'Spacebar': ' ',\n  'Left': 'ArrowLeft',\n  'Up': 'ArrowUp',\n  'Right': 'ArrowRight',\n  'Down': 'ArrowDown',\n  'Del': 'Delete',\n  'Win': 'OS',\n  'Menu': 'ContextMenu',\n  'Apps': 'ContextMenu',\n  'Scroll': 'ScrollLock',\n  'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n  8: 'Backspace',\n  9: 'Tab',\n  12: 'Clear',\n  13: 'Enter',\n  16: 'Shift',\n  17: 'Control',\n  18: 'Alt',\n  19: 'Pause',\n  20: 'CapsLock',\n  27: 'Escape',\n  32: ' ',\n  33: 'PageUp',\n  34: 'PageDown',\n  35: 'End',\n  36: 'Home',\n  37: 'ArrowLeft',\n  38: 'ArrowUp',\n  39: 'ArrowRight',\n  40: 'ArrowDown',\n  45: 'Insert',\n  46: 'Delete',\n  112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n  118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n  144: 'NumLock',\n  145: 'ScrollLock',\n  224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  }\n\n  // Browser does not implement `key`, polyfill as much of it as we can.\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent);\n\n    // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n  return '';\n}\n\nmodule.exports = getEventKey;"
    },
    {
      "id": 425,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticDragEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticDragEvent.js",
      "index": 425,
      "index2": 417,
      "size": 1126,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticDragEvent",
          "loc": "23:25-56"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n  dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;"
    },
    {
      "id": 426,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticTouchEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticTouchEvent.js",
      "index": 426,
      "index2": 418,
      "size": 1333,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticTouchEvent",
          "loc": "24:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = require('./SyntheticUIEvent');\n\nvar getEventModifierState = require('./getEventModifierState');\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;"
    },
    {
      "id": 427,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SyntheticWheelEvent.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SyntheticWheelEvent.js",
      "index": 427,
      "index2": 419,
      "size": 1992,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 419,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SimpleEventPlugin.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SimpleEventPlugin.js",
          "type": "cjs require",
          "userRequest": "./SyntheticWheelEvent",
          "loc": "26:26-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = require('./SyntheticMouseEvent');\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX :\n    // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY :\n    // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY :\n    // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n  deltaZ: null,\n\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;"
    },
    {
      "id": 428,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/SVGDOMPropertyConfig.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/SVGDOMPropertyConfig.js",
      "index": 428,
      "index2": 421,
      "size": 3799,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./SVGDOMPropertyConfig",
          "loc": "34:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\n\nvar NS = {\n  xlink: 'http://www.w3.org/1999/xlink',\n  xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\nvar SVGDOMPropertyConfig = {\n  Properties: {\n    clipPath: MUST_USE_ATTRIBUTE,\n    cx: MUST_USE_ATTRIBUTE,\n    cy: MUST_USE_ATTRIBUTE,\n    d: MUST_USE_ATTRIBUTE,\n    dx: MUST_USE_ATTRIBUTE,\n    dy: MUST_USE_ATTRIBUTE,\n    fill: MUST_USE_ATTRIBUTE,\n    fillOpacity: MUST_USE_ATTRIBUTE,\n    fontFamily: MUST_USE_ATTRIBUTE,\n    fontSize: MUST_USE_ATTRIBUTE,\n    fx: MUST_USE_ATTRIBUTE,\n    fy: MUST_USE_ATTRIBUTE,\n    gradientTransform: MUST_USE_ATTRIBUTE,\n    gradientUnits: MUST_USE_ATTRIBUTE,\n    markerEnd: MUST_USE_ATTRIBUTE,\n    markerMid: MUST_USE_ATTRIBUTE,\n    markerStart: MUST_USE_ATTRIBUTE,\n    offset: MUST_USE_ATTRIBUTE,\n    opacity: MUST_USE_ATTRIBUTE,\n    patternContentUnits: MUST_USE_ATTRIBUTE,\n    patternUnits: MUST_USE_ATTRIBUTE,\n    points: MUST_USE_ATTRIBUTE,\n    preserveAspectRatio: MUST_USE_ATTRIBUTE,\n    r: MUST_USE_ATTRIBUTE,\n    rx: MUST_USE_ATTRIBUTE,\n    ry: MUST_USE_ATTRIBUTE,\n    spreadMethod: MUST_USE_ATTRIBUTE,\n    stopColor: MUST_USE_ATTRIBUTE,\n    stopOpacity: MUST_USE_ATTRIBUTE,\n    stroke: MUST_USE_ATTRIBUTE,\n    strokeDasharray: MUST_USE_ATTRIBUTE,\n    strokeLinecap: MUST_USE_ATTRIBUTE,\n    strokeOpacity: MUST_USE_ATTRIBUTE,\n    strokeWidth: MUST_USE_ATTRIBUTE,\n    textAnchor: MUST_USE_ATTRIBUTE,\n    transform: MUST_USE_ATTRIBUTE,\n    version: MUST_USE_ATTRIBUTE,\n    viewBox: MUST_USE_ATTRIBUTE,\n    x1: MUST_USE_ATTRIBUTE,\n    x2: MUST_USE_ATTRIBUTE,\n    x: MUST_USE_ATTRIBUTE,\n    xlinkActuate: MUST_USE_ATTRIBUTE,\n    xlinkArcrole: MUST_USE_ATTRIBUTE,\n    xlinkHref: MUST_USE_ATTRIBUTE,\n    xlinkRole: MUST_USE_ATTRIBUTE,\n    xlinkShow: MUST_USE_ATTRIBUTE,\n    xlinkTitle: MUST_USE_ATTRIBUTE,\n    xlinkType: MUST_USE_ATTRIBUTE,\n    xmlBase: MUST_USE_ATTRIBUTE,\n    xmlLang: MUST_USE_ATTRIBUTE,\n    xmlSpace: MUST_USE_ATTRIBUTE,\n    y1: MUST_USE_ATTRIBUTE,\n    y2: MUST_USE_ATTRIBUTE,\n    y: MUST_USE_ATTRIBUTE\n  },\n  DOMAttributeNamespaces: {\n    xlinkActuate: NS.xlink,\n    xlinkArcrole: NS.xlink,\n    xlinkHref: NS.xlink,\n    xlinkRole: NS.xlink,\n    xlinkShow: NS.xlink,\n    xlinkTitle: NS.xlink,\n    xlinkType: NS.xlink,\n    xmlBase: NS.xml,\n    xmlLang: NS.xml,\n    xmlSpace: NS.xml\n  },\n  DOMAttributeNames: {\n    clipPath: 'clip-path',\n    fillOpacity: 'fill-opacity',\n    fontFamily: 'font-family',\n    fontSize: 'font-size',\n    gradientTransform: 'gradientTransform',\n    gradientUnits: 'gradientUnits',\n    markerEnd: 'marker-end',\n    markerMid: 'marker-mid',\n    markerStart: 'marker-start',\n    patternContentUnits: 'patternContentUnits',\n    patternUnits: 'patternUnits',\n    preserveAspectRatio: 'preserveAspectRatio',\n    spreadMethod: 'spreadMethod',\n    stopColor: 'stop-color',\n    stopOpacity: 'stop-opacity',\n    strokeDasharray: 'stroke-dasharray',\n    strokeLinecap: 'stroke-linecap',\n    strokeOpacity: 'stroke-opacity',\n    strokeWidth: 'stroke-width',\n    textAnchor: 'text-anchor',\n    viewBox: 'viewBox',\n    xlinkActuate: 'xlink:actuate',\n    xlinkArcrole: 'xlink:arcrole',\n    xlinkHref: 'xlink:href',\n    xlinkRole: 'xlink:role',\n    xlinkShow: 'xlink:show',\n    xlinkTitle: 'xlink:title',\n    xlinkType: 'xlink:type',\n    xmlBase: 'xml:base',\n    xmlLang: 'xml:lang',\n    xmlSpace: 'xml:space'\n  }\n};\n\nmodule.exports = SVGDOMPropertyConfig;"
    },
    {
      "id": 429,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
      "index": 429,
      "index2": 425,
      "size": 8632,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 358,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultInjection.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultInjection.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultPerf",
          "loc": "89:29-58"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerf\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = require('./DOMProperty');\nvar ReactDefaultPerfAnalysis = require('./ReactDefaultPerfAnalysis');\nvar ReactMount = require('./ReactMount');\nvar ReactPerf = require('./ReactPerf');\n\nvar performanceNow = require('fbjs/lib/performanceNow');\n\nfunction roundFloat(val) {\n  return Math.floor(val * 100) / 100;\n}\n\nfunction addValue(obj, key, val) {\n  obj[key] = (obj[key] || 0) + val;\n}\n\nvar ReactDefaultPerf = {\n  _allMeasurements: [], // last item in the list is the current one\n  _mountStack: [0],\n  _injected: false,\n\n  start: function () {\n    if (!ReactDefaultPerf._injected) {\n      ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure);\n    }\n\n    ReactDefaultPerf._allMeasurements.length = 0;\n    ReactPerf.enableMeasure = true;\n  },\n\n  stop: function () {\n    ReactPerf.enableMeasure = false;\n  },\n\n  getLastMeasurements: function () {\n    return ReactDefaultPerf._allMeasurements;\n  },\n\n  printExclusive: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements);\n    console.table(summary.map(function (item) {\n      return {\n        'Component class name': item.componentName,\n        'Total inclusive time (ms)': roundFloat(item.inclusive),\n        'Exclusive mount time (ms)': roundFloat(item.exclusive),\n        'Exclusive render time (ms)': roundFloat(item.render),\n        'Mount time per instance (ms)': roundFloat(item.exclusive / item.count),\n        'Render time per instance (ms)': roundFloat(item.render / item.count),\n        'Instances': item.count\n      };\n    }));\n    // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct\n    // number.\n  },\n\n  printInclusive: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements);\n    console.table(summary.map(function (item) {\n      return {\n        'Owner > component': item.componentName,\n        'Inclusive time (ms)': roundFloat(item.time),\n        'Instances': item.count\n      };\n    }));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  getMeasurementsSummaryMap: function (measurements) {\n    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements, true);\n    return summary.map(function (item) {\n      return {\n        'Owner > component': item.componentName,\n        'Wasted time (ms)': item.time,\n        'Instances': item.count\n      };\n    });\n  },\n\n  printWasted: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  printDOM: function (measurements) {\n    measurements = measurements || ReactDefaultPerf._allMeasurements;\n    var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);\n    console.table(summary.map(function (item) {\n      var result = {};\n      result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id;\n      result.type = item.type;\n      result.args = JSON.stringify(item.args);\n      return result;\n    }));\n    console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n  },\n\n  _recordWrite: function (id, fnName, totalTime, args) {\n    // TODO: totalTime isn't that useful since it doesn't count paints/reflows\n    var writes = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].writes;\n    writes[id] = writes[id] || [];\n    writes[id].push({\n      type: fnName,\n      time: totalTime,\n      args: args\n    });\n  },\n\n  measure: function (moduleName, fnName, func) {\n    return function () {\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      var totalTime;\n      var rv;\n      var start;\n\n      if (fnName === '_renderNewRootComponent' || fnName === 'flushBatchedUpdates') {\n        // A \"measurement\" is a set of metrics recorded for each flush. We want\n        // to group the metrics for a given flush together so we can look at the\n        // components that rendered and the DOM operations that actually\n        // happened to determine the amount of \"wasted work\" performed.\n        ReactDefaultPerf._allMeasurements.push({\n          exclusive: {},\n          inclusive: {},\n          render: {},\n          counts: {},\n          writes: {},\n          displayNames: {},\n          totalTime: 0,\n          created: {}\n        });\n        start = performanceNow();\n        rv = func.apply(this, args);\n        ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start;\n        return rv;\n      } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') {\n        start = performanceNow();\n        rv = func.apply(this, args);\n        totalTime = performanceNow() - start;\n\n        if (fnName === '_mountImageIntoNode') {\n          var mountID = ReactMount.getID(args[1]);\n          ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]);\n        } else if (fnName === 'dangerouslyProcessChildrenUpdates') {\n          // special format\n          args[0].forEach(function (update) {\n            var writeArgs = {};\n            if (update.fromIndex !== null) {\n              writeArgs.fromIndex = update.fromIndex;\n            }\n            if (update.toIndex !== null) {\n              writeArgs.toIndex = update.toIndex;\n            }\n            if (update.textContent !== null) {\n              writeArgs.textContent = update.textContent;\n            }\n            if (update.markupIndex !== null) {\n              writeArgs.markup = args[1][update.markupIndex];\n            }\n            ReactDefaultPerf._recordWrite(update.parentID, update.type, totalTime, writeArgs);\n          });\n        } else {\n          // basic format\n          var id = args[0];\n          if (typeof id === 'object') {\n            id = ReactMount.getID(args[0]);\n          }\n          ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1));\n        }\n        return rv;\n      } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()?\n      fnName === '_renderValidatedComponent')) {\n\n        if (this._currentElement.type === ReactMount.TopLevelWrapper) {\n          return func.apply(this, args);\n        }\n\n        var rootNodeID = fnName === 'mountComponent' ? args[0] : this._rootNodeID;\n        var isRender = fnName === '_renderValidatedComponent';\n        var isMount = fnName === 'mountComponent';\n\n        var mountStack = ReactDefaultPerf._mountStack;\n        var entry = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1];\n\n        if (isRender) {\n          addValue(entry.counts, rootNodeID, 1);\n        } else if (isMount) {\n          entry.created[rootNodeID] = true;\n          mountStack.push(0);\n        }\n\n        start = performanceNow();\n        rv = func.apply(this, args);\n        totalTime = performanceNow() - start;\n\n        if (isRender) {\n          addValue(entry.render, rootNodeID, totalTime);\n        } else if (isMount) {\n          var subMountTime = mountStack.pop();\n          mountStack[mountStack.length - 1] += totalTime;\n          addValue(entry.exclusive, rootNodeID, totalTime - subMountTime);\n          addValue(entry.inclusive, rootNodeID, totalTime);\n        } else {\n          addValue(entry.inclusive, rootNodeID, totalTime);\n        }\n\n        entry.displayNames[rootNodeID] = {\n          current: this.getName(),\n          owner: this._currentElement._owner ? this._currentElement._owner.getName() : '<root>'\n        };\n\n        return rv;\n      } else {\n        return func.apply(this, args);\n      }\n    };\n  }\n};\n\nmodule.exports = ReactDefaultPerf;"
    },
    {
      "id": 430,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerfAnalysis.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerfAnalysis.js",
      "index": 430,
      "index2": 422,
      "size": 5785,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 429,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "./ReactDefaultPerfAnalysis",
          "loc": "16:31-68"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerfAnalysis\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\n\n// Don't try to save users less than 1.2ms (a number I made up)\nvar DONT_CARE_THRESHOLD = 1.2;\nvar DOM_OPERATION_TYPES = {\n  '_mountImageIntoNode': 'set innerHTML',\n  INSERT_MARKUP: 'set innerHTML',\n  MOVE_EXISTING: 'move',\n  REMOVE_NODE: 'remove',\n  SET_MARKUP: 'set innerHTML',\n  TEXT_CONTENT: 'set textContent',\n  'setValueForProperty': 'update attribute',\n  'setValueForAttribute': 'update attribute',\n  'deleteValueForProperty': 'remove attribute',\n  'setValueForStyles': 'update styles',\n  'replaceNodeWithMarkup': 'replace',\n  'updateTextContent': 'set textContent'\n};\n\nfunction getTotalTime(measurements) {\n  // TODO: return number of DOM ops? could be misleading.\n  // TODO: measure dropped frames after reconcile?\n  // TODO: log total time of each reconcile and the top-level component\n  // class that triggered it.\n  var totalTime = 0;\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    totalTime += measurement.totalTime;\n  }\n  return totalTime;\n}\n\nfunction getDOMSummary(measurements) {\n  var items = [];\n  measurements.forEach(function (measurement) {\n    Object.keys(measurement.writes).forEach(function (id) {\n      measurement.writes[id].forEach(function (write) {\n        items.push({\n          id: id,\n          type: DOM_OPERATION_TYPES[write.type] || write.type,\n          args: write.args\n        });\n      });\n    });\n  });\n  return items;\n}\n\nfunction getExclusiveSummary(measurements) {\n  var candidates = {};\n  var displayName;\n\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n    for (var id in allIDs) {\n      displayName = measurement.displayNames[id].current;\n\n      candidates[displayName] = candidates[displayName] || {\n        componentName: displayName,\n        inclusive: 0,\n        exclusive: 0,\n        render: 0,\n        count: 0\n      };\n      if (measurement.render[id]) {\n        candidates[displayName].render += measurement.render[id];\n      }\n      if (measurement.exclusive[id]) {\n        candidates[displayName].exclusive += measurement.exclusive[id];\n      }\n      if (measurement.inclusive[id]) {\n        candidates[displayName].inclusive += measurement.inclusive[id];\n      }\n      if (measurement.counts[id]) {\n        candidates[displayName].count += measurement.counts[id];\n      }\n    }\n  }\n\n  // Now make a sorted array with the results.\n  var arr = [];\n  for (displayName in candidates) {\n    if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) {\n      arr.push(candidates[displayName]);\n    }\n  }\n\n  arr.sort(function (a, b) {\n    return b.exclusive - a.exclusive;\n  });\n\n  return arr;\n}\n\nfunction getInclusiveSummary(measurements, onlyClean) {\n  var candidates = {};\n  var inclusiveKey;\n\n  for (var i = 0; i < measurements.length; i++) {\n    var measurement = measurements[i];\n    var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n    var cleanComponents;\n\n    if (onlyClean) {\n      cleanComponents = getUnchangedComponents(measurement);\n    }\n\n    for (var id in allIDs) {\n      if (onlyClean && !cleanComponents[id]) {\n        continue;\n      }\n\n      var displayName = measurement.displayNames[id];\n\n      // Inclusive time is not useful for many components without knowing where\n      // they are instantiated. So we aggregate inclusive time with both the\n      // owner and current displayName as the key.\n      inclusiveKey = displayName.owner + ' > ' + displayName.current;\n\n      candidates[inclusiveKey] = candidates[inclusiveKey] || {\n        componentName: inclusiveKey,\n        time: 0,\n        count: 0\n      };\n\n      if (measurement.inclusive[id]) {\n        candidates[inclusiveKey].time += measurement.inclusive[id];\n      }\n      if (measurement.counts[id]) {\n        candidates[inclusiveKey].count += measurement.counts[id];\n      }\n    }\n  }\n\n  // Now make a sorted array with the results.\n  var arr = [];\n  for (inclusiveKey in candidates) {\n    if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) {\n      arr.push(candidates[inclusiveKey]);\n    }\n  }\n\n  arr.sort(function (a, b) {\n    return b.time - a.time;\n  });\n\n  return arr;\n}\n\nfunction getUnchangedComponents(measurement) {\n  // For a given reconcile, look at which components did not actually\n  // render anything to the DOM and return a mapping of their ID to\n  // the amount of time it took to render the entire subtree.\n  var cleanComponents = {};\n  var dirtyLeafIDs = Object.keys(measurement.writes);\n  var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n  for (var id in allIDs) {\n    var isDirty = false;\n    // For each component that rendered, see if a component that triggered\n    // a DOM op is in its subtree.\n    for (var i = 0; i < dirtyLeafIDs.length; i++) {\n      if (dirtyLeafIDs[i].indexOf(id) === 0) {\n        isDirty = true;\n        break;\n      }\n    }\n    // check if component newly created\n    if (measurement.created[id]) {\n      isDirty = true;\n    }\n    if (!isDirty && measurement.counts[id] > 0) {\n      cleanComponents[id] = true;\n    }\n  }\n  return cleanComponents;\n}\n\nvar ReactDefaultPerfAnalysis = {\n  getExclusiveSummary: getExclusiveSummary,\n  getInclusiveSummary: getInclusiveSummary,\n  getDOMSummary: getDOMSummary,\n  getTotalTime: getTotalTime\n};\n\nmodule.exports = ReactDefaultPerfAnalysis;"
    },
    {
      "id": 431,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/performanceNow.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/performanceNow.js",
      "index": 431,
      "index2": 424,
      "size": 844,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 429,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDefaultPerf.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDefaultPerf.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/performanceNow",
          "loc": "20:21-55"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performanceNow\n * @typechecks\n */\n\n'use strict';\n\nvar performance = require('./performance');\n\nvar performanceNow;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (performance.now) {\n  performanceNow = function () {\n    return performance.now();\n  };\n} else {\n  performanceNow = function () {\n    return Date.now();\n  };\n}\n\nmodule.exports = performanceNow;"
    },
    {
      "id": 432,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/performance.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/performance.js",
      "index": 432,
      "index2": 423,
      "size": 612,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/performanceNow.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 431,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/performanceNow.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/performanceNow.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/performanceNow.js",
          "type": "cjs require",
          "userRequest": "./performance",
          "loc": "15:18-42"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performance\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n  performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};"
    },
    {
      "id": 433,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactVersion.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactVersion.js",
      "index": 433,
      "index2": 427,
      "size": 379,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./ReactVersion",
          "loc": "24:19-44"
        },
        {
          "moduleId": 435,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMServer.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
          "type": "cjs require",
          "userRequest": "./ReactVersion",
          "loc": "16:19-44"
        },
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactVersion",
          "loc": "21:19-44"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '0.14.7';"
    },
    {
      "id": 434,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/renderSubtreeIntoContainer.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/renderSubtreeIntoContainer.js",
      "index": 434,
      "index2": 428,
      "size": 463,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 291,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOM.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOM.js",
          "type": "cjs require",
          "userRequest": "./renderSubtreeIntoContainer",
          "loc": "27:33-72"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = require('./ReactMount');\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;"
    },
    {
      "id": 435,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMServer.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
      "index": 435,
      "index2": 433,
      "size": 766,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 290,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMServer",
          "loc": "15:21-48"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMServer\n */\n\n'use strict';\n\nvar ReactDefaultInjection = require('./ReactDefaultInjection');\nvar ReactServerRendering = require('./ReactServerRendering');\nvar ReactVersion = require('./ReactVersion');\n\nReactDefaultInjection.inject();\n\nvar ReactDOMServer = {\n  renderToString: ReactServerRendering.renderToString,\n  renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,\n  version: ReactVersion\n};\n\nmodule.exports = ReactDOMServer;"
    },
    {
      "id": 436,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
      "index": 436,
      "index2": 432,
      "size": 3298,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMServer.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 435,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMServer.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMServer.js",
          "type": "cjs require",
          "userRequest": "./ReactServerRendering",
          "loc": "15:27-60"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule ReactServerRendering\n */\n'use strict';\n\nvar ReactDefaultBatchingStrategy = require('./ReactDefaultBatchingStrategy');\nvar ReactElement = require('./ReactElement');\nvar ReactInstanceHandles = require('./ReactInstanceHandles');\nvar ReactMarkupChecksum = require('./ReactMarkupChecksum');\nvar ReactServerBatchingStrategy = require('./ReactServerBatchingStrategy');\nvar ReactServerRenderingTransaction = require('./ReactServerRenderingTransaction');\nvar ReactUpdates = require('./ReactUpdates');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar instantiateReactComponent = require('./instantiateReactComponent');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup\n */\nfunction renderToString(element) {\n  !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    var id = ReactInstanceHandles.createReactRootID();\n    transaction = ReactServerRenderingTransaction.getPooled(false);\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, null);\n      var markup = componentInstance.mountComponent(id, transaction, emptyObject);\n      return ReactMarkupChecksum.addChecksumToMarkup(markup);\n    }, null);\n  } finally {\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n  }\n}\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup, without the extra React ID and checksum\n * (for generating static pages)\n */\nfunction renderToStaticMarkup(element) {\n  !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n  var transaction;\n  try {\n    ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n    var id = ReactInstanceHandles.createReactRootID();\n    transaction = ReactServerRenderingTransaction.getPooled(true);\n\n    return transaction.perform(function () {\n      var componentInstance = instantiateReactComponent(element, null);\n      return componentInstance.mountComponent(id, transaction, emptyObject);\n    }, null);\n  } finally {\n    ReactServerRenderingTransaction.release(transaction);\n    // Revert to the DOM batching strategy since these two renderers\n    // currently share these stateful modules.\n    ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n  }\n}\n\nmodule.exports = {\n  renderToString: renderToString,\n  renderToStaticMarkup: renderToStaticMarkup\n};"
    },
    {
      "id": 437,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerBatchingStrategy.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerBatchingStrategy.js",
      "index": 437,
      "index2": 430,
      "size": 673,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactServerBatchingStrategy",
          "loc": "18:34-74"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerBatchingStrategy\n * @typechecks\n */\n\n'use strict';\n\nvar ReactServerBatchingStrategy = {\n  isBatchingUpdates: false,\n  batchedUpdates: function (callback) {\n    // Don't do anything here. During the server rendering we don't want to\n    // schedule any updates. We will simply ignore them.\n  }\n};\n\nmodule.exports = ReactServerBatchingStrategy;"
    },
    {
      "id": 438,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRenderingTransaction.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRenderingTransaction.js",
      "index": 438,
      "index2": 431,
      "size": 2300,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 436,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactServerRendering.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactServerRendering.js",
          "type": "cjs require",
          "userRequest": "./ReactServerRenderingTransaction",
          "loc": "19:38-82"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n * @typechecks\n */\n\n'use strict';\n\nvar PooledClass = require('./PooledClass');\nvar CallbackQueue = require('./CallbackQueue');\nvar Transaction = require('./Transaction');\n\nvar assign = require('./Object.assign');\nvar emptyFunction = require('fbjs/lib/emptyFunction');\n\n/**\n * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks\n * during the performing of the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n  /**\n   * Initializes the internal `onDOMReady` queue.\n   */\n  initialize: function () {\n    this.reactMountReady.reset();\n  },\n\n  close: emptyFunction\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING];\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n  this.reinitializeTransaction();\n  this.renderToStaticMarkup = renderToStaticMarkup;\n  this.reactMountReady = CallbackQueue.getPooled(null);\n  this.useCreateElement = false;\n}\n\nvar Mixin = {\n  /**\n   * @see Transaction\n   * @abstract\n   * @final\n   * @return {array} Empty list of operation wrap procedures.\n   */\n  getTransactionWrappers: function () {\n    return TRANSACTION_WRAPPERS;\n  },\n\n  /**\n   * @return {object} The queue to collect `onDOMReady` callbacks with.\n   */\n  getReactMountReady: function () {\n    return this.reactMountReady;\n  },\n\n  /**\n   * `PooledClass` looks for this, and will invoke this before allowing this\n   * instance to be reused.\n   */\n  destructor: function () {\n    CallbackQueue.release(this.reactMountReady);\n    this.reactMountReady = null;\n  }\n};\n\nassign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;"
    },
    {
      "id": 439,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
      "index": 439,
      "index2": 438,
      "size": 2054,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 290,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./ReactIsomorphic",
          "loc": "16:22-50"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactIsomorphic\n */\n\n'use strict';\n\nvar ReactChildren = require('./ReactChildren');\nvar ReactComponent = require('./ReactComponent');\nvar ReactClass = require('./ReactClass');\nvar ReactDOMFactories = require('./ReactDOMFactories');\nvar ReactElement = require('./ReactElement');\nvar ReactElementValidator = require('./ReactElementValidator');\nvar ReactPropTypes = require('./ReactPropTypes');\nvar ReactVersion = require('./ReactVersion');\n\nvar assign = require('./Object.assign');\nvar onlyChild = require('./onlyChild');\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n  createElement = ReactElementValidator.createElement;\n  createFactory = ReactElementValidator.createFactory;\n  cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar React = {\n\n  // Modern\n\n  Children: {\n    map: ReactChildren.map,\n    forEach: ReactChildren.forEach,\n    count: ReactChildren.count,\n    toArray: ReactChildren.toArray,\n    only: onlyChild\n  },\n\n  Component: ReactComponent,\n\n  createElement: createElement,\n  cloneElement: cloneElement,\n  isValidElement: ReactElement.isValidElement,\n\n  // Classic\n\n  PropTypes: ReactPropTypes,\n  createClass: ReactClass.createClass,\n  createFactory: createFactory,\n  createMixin: function (mixin) {\n    // Currently a noop. Will be used to validate and trace mixins.\n    return mixin;\n  },\n\n  // This looks DOM specific but these are actually isomorphic helpers\n  // since they are just generating DOM strings.\n  DOM: ReactDOMFactories,\n\n  version: ReactVersion,\n\n  // Hook for JSX spread, don't use this for anything else.\n  __spread: assign\n};\n\nmodule.exports = React;"
    },
    {
      "id": 440,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMFactories.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
      "index": 440,
      "index2": 436,
      "size": 3357,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactDOMFactories",
          "loc": "17:24-54"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactElementValidator = require('./ReactElementValidator');\n\nvar mapObject = require('fbjs/lib/mapObject');\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @param {string} tag Tag name (e.g. `div`).\n * @private\n */\nfunction createDOMFactory(tag) {\n  if (process.env.NODE_ENV !== 'production') {\n    return ReactElementValidator.createFactory(tag);\n  }\n  return ReactElement.createFactory(tag);\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = mapObject({\n  a: 'a',\n  abbr: 'abbr',\n  address: 'address',\n  area: 'area',\n  article: 'article',\n  aside: 'aside',\n  audio: 'audio',\n  b: 'b',\n  base: 'base',\n  bdi: 'bdi',\n  bdo: 'bdo',\n  big: 'big',\n  blockquote: 'blockquote',\n  body: 'body',\n  br: 'br',\n  button: 'button',\n  canvas: 'canvas',\n  caption: 'caption',\n  cite: 'cite',\n  code: 'code',\n  col: 'col',\n  colgroup: 'colgroup',\n  data: 'data',\n  datalist: 'datalist',\n  dd: 'dd',\n  del: 'del',\n  details: 'details',\n  dfn: 'dfn',\n  dialog: 'dialog',\n  div: 'div',\n  dl: 'dl',\n  dt: 'dt',\n  em: 'em',\n  embed: 'embed',\n  fieldset: 'fieldset',\n  figcaption: 'figcaption',\n  figure: 'figure',\n  footer: 'footer',\n  form: 'form',\n  h1: 'h1',\n  h2: 'h2',\n  h3: 'h3',\n  h4: 'h4',\n  h5: 'h5',\n  h6: 'h6',\n  head: 'head',\n  header: 'header',\n  hgroup: 'hgroup',\n  hr: 'hr',\n  html: 'html',\n  i: 'i',\n  iframe: 'iframe',\n  img: 'img',\n  input: 'input',\n  ins: 'ins',\n  kbd: 'kbd',\n  keygen: 'keygen',\n  label: 'label',\n  legend: 'legend',\n  li: 'li',\n  link: 'link',\n  main: 'main',\n  map: 'map',\n  mark: 'mark',\n  menu: 'menu',\n  menuitem: 'menuitem',\n  meta: 'meta',\n  meter: 'meter',\n  nav: 'nav',\n  noscript: 'noscript',\n  object: 'object',\n  ol: 'ol',\n  optgroup: 'optgroup',\n  option: 'option',\n  output: 'output',\n  p: 'p',\n  param: 'param',\n  picture: 'picture',\n  pre: 'pre',\n  progress: 'progress',\n  q: 'q',\n  rp: 'rp',\n  rt: 'rt',\n  ruby: 'ruby',\n  s: 's',\n  samp: 'samp',\n  script: 'script',\n  section: 'section',\n  select: 'select',\n  small: 'small',\n  source: 'source',\n  span: 'span',\n  strong: 'strong',\n  style: 'style',\n  sub: 'sub',\n  summary: 'summary',\n  sup: 'sup',\n  table: 'table',\n  tbody: 'tbody',\n  td: 'td',\n  textarea: 'textarea',\n  tfoot: 'tfoot',\n  th: 'th',\n  thead: 'thead',\n  time: 'time',\n  title: 'title',\n  tr: 'tr',\n  track: 'track',\n  u: 'u',\n  ul: 'ul',\n  'var': 'var',\n  video: 'video',\n  wbr: 'wbr',\n\n  // SVG\n  circle: 'circle',\n  clipPath: 'clipPath',\n  defs: 'defs',\n  ellipse: 'ellipse',\n  g: 'g',\n  image: 'image',\n  line: 'line',\n  linearGradient: 'linearGradient',\n  mask: 'mask',\n  path: 'path',\n  pattern: 'pattern',\n  polygon: 'polygon',\n  polyline: 'polyline',\n  radialGradient: 'radialGradient',\n  rect: 'rect',\n  stop: 'stop',\n  svg: 'svg',\n  text: 'text',\n  tspan: 'tspan'\n\n}, createDOMFactory);\n\nmodule.exports = ReactDOMFactories;"
    },
    {
      "id": 441,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactElementValidator.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactElementValidator.js",
      "index": 441,
      "index2": 434,
      "size": 10768,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./ReactElementValidator",
          "loc": "19:28-62"
        },
        {
          "moduleId": 440,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMFactories.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
          "type": "cjs require",
          "userRequest": "./ReactElementValidator",
          "loc": "16:28-62"
        }
      ],
      "source": "/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar ReactElement = require('./ReactElement');\nvar ReactPropTypeLocations = require('./ReactPropTypeLocations');\nvar ReactPropTypeLocationNames = require('./ReactPropTypeLocationNames');\nvar ReactCurrentOwner = require('./ReactCurrentOwner');\n\nvar canDefineProperty = require('./canDefineProperty');\nvar getIteratorFn = require('./getIteratorFn');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = ReactCurrentOwner.current.getName();\n    if (name) {\n      return ' Check the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nvar loggedTypeFailures = {};\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n  element._store.validated = true;\n\n  var addenda = getAddendaForKeyUse('uniqueKey', element, parentType);\n  if (addenda === null) {\n    // we already showed the warning\n    return;\n  }\n  process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : undefined;\n}\n\n/**\n * Shared warning and monitoring code for the key warnings.\n *\n * @internal\n * @param {string} messageType A key used for de-duping warnings.\n * @param {ReactElement} element Component that requires a key.\n * @param {*} parentType element's parent's type.\n * @returns {?object} A set of addenda to use in the warning message, or null\n * if the warning has already been shown before (and shouldn't be shown again).\n */\nfunction getAddendaForKeyUse(messageType, element, parentType) {\n  var addendum = getDeclarationErrorAddendum();\n  if (!addendum) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n    if (parentName) {\n      addendum = ' Check the top-level render call using <' + parentName + '>.';\n    }\n  }\n\n  var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {});\n  if (memoizer[addendum]) {\n    return null;\n  }\n  memoizer[addendum] = true;\n\n  var addenda = {\n    parentOrOwner: addendum,\n    url: ' See https://fb.me/react-warning-keys for more information.',\n    childOwner: null\n  };\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n  }\n\n  return addenda;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n      if (ReactElement.isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (ReactElement.isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n    // Entry iterators provide implicit keys.\n    if (iteratorFn) {\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n        while (!(step = iterator.next()).done) {\n          if (ReactElement.isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * Assert that the props are valid\n *\n * @param {string} componentName Name of the component for error messages.\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\nfunction checkPropTypes(componentName, propTypes, props, location) {\n  for (var propName in propTypes) {\n    if (propTypes.hasOwnProperty(propName)) {\n      var error;\n      // Prop type validation may throw. In case they do, we don't want to\n      // fail the render phase where it didn't fail before. So we log it.\n      // After these have been cleaned up, we'll let them throw.\n      try {\n        // This is intentionally an invariant that gets caught. It's the same\n        // behavior as without this statement except with a better message.\n        !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n        error = propTypes[propName](props, propName, componentName, location);\n      } catch (ex) {\n        error = ex;\n      }\n      process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error) : undefined;\n      if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n        // Only monitor this failure once because there tends to be a lot of the\n        // same error.\n        loggedTypeFailures[error.message] = true;\n\n        var addendum = getDeclarationErrorAddendum();\n        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : undefined;\n      }\n    }\n  }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n  var componentClass = element.type;\n  if (typeof componentClass !== 'function') {\n    return;\n  }\n  var name = componentClass.displayName || componentClass.name;\n  if (componentClass.propTypes) {\n    checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop);\n  }\n  if (typeof componentClass.getDefaultProps === 'function') {\n    process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : undefined;\n  }\n}\n\nvar ReactElementValidator = {\n\n  createElement: function (type, props, children) {\n    var validType = typeof type === 'string' || typeof type === 'function';\n    // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n    process.env.NODE_ENV !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : undefined;\n\n    var element = ReactElement.createElement.apply(this, arguments);\n\n    // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n    if (element == null) {\n      return element;\n    }\n\n    // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n    if (validType) {\n      for (var i = 2; i < arguments.length; i++) {\n        validateChildKeys(arguments[i], type);\n      }\n    }\n\n    validatePropTypes(element);\n\n    return element;\n  },\n\n  createFactory: function (type) {\n    var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n    // Legacy hook TODO: Warn if this is accessed\n    validatedFactory.type = type;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (canDefineProperty) {\n        Object.defineProperty(validatedFactory, 'type', {\n          enumerable: false,\n          get: function () {\n            process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : undefined;\n            Object.defineProperty(this, 'type', {\n              value: type\n            });\n            return type;\n          }\n        });\n      }\n    }\n\n    return validatedFactory;\n  },\n\n  cloneElement: function (element, props, children) {\n    var newElement = ReactElement.cloneElement.apply(this, arguments);\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], newElement.type);\n    }\n    validatePropTypes(newElement);\n    return newElement;\n  }\n\n};\n\nmodule.exports = ReactElementValidator;"
    },
    {
      "id": 442,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/fbjs/lib/mapObject.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/fbjs/lib/mapObject.js",
      "index": 442,
      "index2": 435,
      "size": 1466,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMFactories.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 440,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactDOMFactories.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactDOMFactories.js",
          "type": "cjs require",
          "userRequest": "fbjs/lib/mapObject",
          "loc": "18:16-45"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule mapObject\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n *  - the property value\n *  - the property name\n *  - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\nfunction mapObject(object, callback, context) {\n  if (!object) {\n    return null;\n  }\n  var result = {};\n  for (var name in object) {\n    if (hasOwnProperty.call(object, name)) {\n      result[name] = callback.call(context, object[name], name, object);\n    }\n  }\n  return result;\n}\n\nmodule.exports = mapObject;"
    },
    {
      "id": 443,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/onlyChild.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/onlyChild.js",
      "index": 443,
      "index2": 437,
      "size": 1211,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 439,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/ReactIsomorphic.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/ReactIsomorphic.js",
          "type": "cjs require",
          "userRequest": "./onlyChild",
          "loc": "24:16-38"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar ReactElement = require('./ReactElement');\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection. The current implementation of this\n * function assumes that a single child gets passed without a wrapper, but the\n * purpose of this helper function is to abstract away the particular structure\n * of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactComponent} The first and only `ReactComponent` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n  !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : undefined;\n  return children;\n}\n\nmodule.exports = onlyChild;"
    },
    {
      "id": 444,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/deprecated.js",
      "name": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/deprecated.js",
      "index": 444,
      "index2": 439,
      "size": 1768,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 290,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/react/lib/React.js",
          "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "moduleName": "/Users/ryanflorence/Code/github/ryanflorence/react-project/~/react/lib/React.js",
          "type": "cjs require",
          "userRequest": "./deprecated",
          "loc": "19:17-40"
        }
      ],
      "source": "/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule deprecated\n */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar warning = require('fbjs/lib/warning');\n\n/**\n * This will log a single deprecation notice per function and forward the call\n * on to the new API.\n *\n * @param {string} fnName The name of the function\n * @param {string} newModule The module that fn will exist in\n * @param {string} newPackage The module that fn will exist in\n * @param {*} ctx The context this forwarded call should run in\n * @param {function} fn The function to forward on to\n * @return {function} The function that will warn once and then call fn\n */\nfunction deprecated(fnName, newModule, newPackage, ctx, fn) {\n  var warned = false;\n  if (process.env.NODE_ENV !== 'production') {\n    var newFn = function () {\n      process.env.NODE_ENV !== 'production' ? warning(warned,\n      // Require examples in this string must be split to prevent React's\n      // build tools from mistaking them for real requires.\n      // Otherwise the build tools will attempt to build a '%s' module.\n      'React.%s is deprecated. Please use %s.%s from require' + '(\\'%s\\') ' + 'instead.', fnName, newModule, fnName, newPackage) : undefined;\n      warned = true;\n      return fn.apply(ctx, arguments);\n    };\n    // We need to make sure all properties of the original fn are copied over.\n    // In particular, this is needed to support PropTypes\n    return assign(newFn, fn);\n  }\n\n  return fn;\n}\n\nmodule.exports = deprecated;"
    },
    {
      "id": 445,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "name": "./modules/routes.js",
      "index": 446,
      "index2": 458,
      "size": 1619,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 0,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/client.js",
          "module": "./modules/client.js",
          "moduleName": "./modules/client.js",
          "type": "cjs require",
          "userRequest": "../modules/routes",
          "loc": "11:14-42"
        }
      ],
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nrequire('../modules/styles.css');\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _reactProject = require('react-project');\n\nvar _hello = require('./api/hello');\n\nvar _hello2 = _interopRequireDefault(_hello);\n\nvar _App = require('./components/App');\n\nvar _App2 = _interopRequireDefault(_App);\n\nvar _Home = require('./components/Home');\n\nvar _Home2 = _interopRequireDefault(_Home);\n\nvar _NoMatch = require('./components/NoMatch');\n\nvar _NoMatch2 = _interopRequireDefault(_NoMatch);\n\nvar _Dragon = require('./components/Dragon');\n\nvar _Dragon2 = _interopRequireDefault(_Dragon);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createElement(\n  _reactRouter.Route,\n  null,\n  _react2.default.createElement(\n    _reactRouter.Route,\n    { path: '/', component: _App2.default },\n    _react2.default.createElement(_reactRouter.IndexRoute, { component: _Home2.default }),\n    _react2.default.createElement(_reactRouter.Route, { path: 'dragon', component: _Dragon2.default })\n  ),\n  _react2.default.createElement(\n    _reactProject.ServerRoute,\n    { path: '/api' },\n    _react2.default.createElement(_reactProject.ServerRoute, { path: ':hello', get: _hello2.default })\n  ),\n  _react2.default.createElement(_reactRouter.Redirect, { from: '/not-dragon', to: '/dragon' }),\n  _react2.default.createElement(_reactRouter.Route, { path: '*', status: 404, component: _NoMatch2.default })\n);"
    },
    {
      "id": 446,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"extract\":true,\"remove\":true}!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/style-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
      "name": "./modules/styles.css",
      "index": 447,
      "index2": 448,
      "size": 41,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "../modules/styles.css",
          "loc": "7:0-32"
        }
      ],
      "source": "// removed by extract-text-webpack-plugin"
    },
    {
      "id": 447,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
      "name": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
      "index": 448,
      "index2": 446,
      "size": 240,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"extract\":true,\"remove\":true}!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/style-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [],
      "source": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"body {\\n  background: #f0f0f0;\\n  font-family: sans-serif;\\n  font-weight: 200;\\n}\\n\", \"\"]);\n\n// exports\n"
    },
    {
      "id": 448,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/lib/css-base.js",
      "name": "./~/css-loader/lib/css-base.js",
      "index": 449,
      "index2": 445,
      "size": 1506,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 447,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
          "module": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
          "moduleName": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
          "type": "cjs require",
          "userRequest": "./../node_modules/css-loader/lib/css-base.js",
          "loc": "1:27-82"
        },
        {
          "moduleId": 458,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
          "module": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
          "moduleName": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
          "type": "cjs require",
          "userRequest": "./../../../node_modules/css-loader/lib/css-base.js",
          "loc": "1:27-88"
        }
      ],
      "source": "/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n"
    },
    {
      "id": 449,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/style-loader/addStyles.js",
      "name": "./~/style-loader/addStyles.js",
      "index": 450,
      "index2": 447,
      "size": 7212,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"extract\":true,\"remove\":true}!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/style-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [],
      "source": "/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n"
    },
    {
      "id": 450,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/null-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/api/hello.js",
      "name": "./modules/api/hello.js",
      "index": 451,
      "index2": 449,
      "size": 36,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "./api/hello",
          "loc": "17:13-35"
        }
      ],
      "source": "// empty (null-loader)\n\"use strict\";"
    },
    {
      "id": 451,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/App.js",
      "name": "./modules/components/App.js",
      "index": 452,
      "index2": 451,
      "size": 1594,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "./components/App",
          "loc": "21:11-38"
        }
      ],
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _reactTitleComponent = require('react-title-component');\n\nvar _reactTitleComponent2 = _interopRequireDefault(_reactTitleComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createClass({\n  displayName: 'App',\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(_reactTitleComponent2.default, { render: 'Awesome App' }),\n      _react2.default.createElement(\n        'h1',\n        null,\n        'Welcome to your app.'\n      ),\n      _react2.default.createElement(\n        'ul',\n        null,\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            _reactRouter.IndexLink,\n            { to: '/' },\n            'Home'\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            _reactRouter.Link,\n            { to: '/dragon' },\n            'A DRAGON!'\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            _reactRouter.Link,\n            { to: '/not-dragon' },\n            'An old URL to a DRAGON!'\n          )\n        )\n      ),\n      this.props.children\n    );\n  }\n});"
    },
    {
      "id": 452,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/react-title-component/lib/Title.js",
      "name": "./~/react-title-component/lib/Title.js",
      "index": 453,
      "index2": 450,
      "size": 1305,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/App.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 451,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/App.js",
          "module": "./modules/components/App.js",
          "moduleName": "./modules/components/App.js",
          "type": "cjs require",
          "userRequest": "react-title-component",
          "loc": "13:27-59"
        },
        {
          "moduleId": 453,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Home.js",
          "module": "./modules/components/Home.js",
          "moduleName": "./modules/components/Home.js",
          "type": "cjs require",
          "userRequest": "react-title-component",
          "loc": "11:27-59"
        },
        {
          "moduleId": 455,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
          "module": "./modules/components/Dragon/index.js",
          "moduleName": "./modules/components/Dragon/index.js",
          "type": "cjs require",
          "userRequest": "react-title-component",
          "loc": "17:27-59"
        }
      ],
      "source": "'use strict';\n\nexports.__esModule = true;\nexports.flushTitle = flushTitle;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar titles = [];\n\nfunction getTitle() {\n  return titles[titles.length - 1];\n}\n\nfunction updateTitle() {\n  document.title = getTitle();\n}\n\nfunction flushTitle() {\n  var title = getTitle();\n  titles = [];\n  return title;\n}\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar oneOfType = _React$PropTypes.oneOfType;\nvar string = _React$PropTypes.string;\nvar func = _React$PropTypes.func;\n\nvar Title = _react2['default'].createClass({\n  displayName: 'Title',\n\n  propTypes: {\n    render: oneOfType([string, func]).isRequired\n  },\n\n  getInitialState: function getInitialState() {\n    return {\n      index: titles.push('') - 1\n    };\n  },\n\n  componentWillUnmount: function componentWillUnmount() {\n    titles.pop();\n  },\n\n  componentDidMount: updateTitle,\n\n  componentDidUpdate: updateTitle,\n\n  render: function render() {\n    var render = this.props.render;\n\n    titles[this.state.index] = typeof render === 'function' ? render(titles[this.state.index - 1] || '') : render;\n    return this.props.children || null;\n  }\n\n});\n\nexports['default'] = Title;"
    },
    {
      "id": 453,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Home.js",
      "name": "./modules/components/Home.js",
      "index": 454,
      "index2": 452,
      "size": 814,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "./components/Home",
          "loc": "25:12-40"
        }
      ],
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactTitleComponent = require('react-title-component');\n\nvar _reactTitleComponent2 = _interopRequireDefault(_reactTitleComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createClass({\n  displayName: 'Home',\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(_reactTitleComponent2.default, { render: function render(prev) {\n          return prev + ' | Home';\n        } }),\n      _react2.default.createElement(\n        'p',\n        null,\n        'Home!'\n      )\n    );\n  }\n});"
    },
    {
      "id": 454,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/NoMatch.js",
      "name": "./modules/components/NoMatch.js",
      "index": 455,
      "index2": 453,
      "size": 454,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "./components/NoMatch",
          "loc": "29:15-46"
        }
      ],
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createClass({\n  displayName: 'NoMatch',\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      '404'\n    );\n  }\n});"
    },
    {
      "id": 455,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
      "name": "./modules/components/Dragon/index.js",
      "index": 456,
      "index2": 457,
      "size": 1059,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 445,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/routes.js",
          "module": "./modules/routes.js",
          "moduleName": "./modules/routes.js",
          "type": "cjs require",
          "userRequest": "./components/Dragon",
          "loc": "33:14-44"
        }
      ],
      "source": "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _dragon = require('./dragon.jpg');\n\nvar _dragon2 = _interopRequireDefault(_dragon);\n\nvar _styles = require('./styles.css');\n\nvar _reactTitleComponent = require('react-title-component');\n\nvar _reactTitleComponent2 = _interopRequireDefault(_reactTitleComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createClass({\n  displayName: 'Dragon',\n  render: function render() {\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(_reactTitleComponent2.default, { render: function render(prev) {\n          return prev + ' | Dragon!';\n        } }),\n      _react2.default.createElement(\n        'h2',\n        { className: _styles.header },\n        'RAR!'\n      ),\n      _react2.default.createElement('img', { src: _dragon2.default, height: '400' })\n    );\n  }\n});"
    },
    {
      "id": 456,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/url-loader/index.js?limit=10000!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/dragon.jpg",
      "name": "./modules/components/Dragon/dragon.jpg",
      "index": 457,
      "index2": 454,
      "size": 82,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [
        "1d6600c436721252b8048b7bc6bfb806.jpg"
      ],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 455,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
          "module": "./modules/components/Dragon/index.js",
          "moduleName": "./modules/components/Dragon/index.js",
          "type": "cjs require",
          "userRequest": "./dragon.jpg",
          "loc": "11:14-37"
        }
      ],
      "source": "module.exports = __webpack_public_path__ + \"1d6600c436721252b8048b7bc6bfb806.jpg\";"
    },
    {
      "id": 457,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"extract\":true,\"remove\":true}!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/style-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
      "name": "./modules/components/Dragon/styles.css",
      "index": 458,
      "index2": 456,
      "size": 95,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        1
      ],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 455,
          "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/babel-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/index.js",
          "module": "./modules/components/Dragon/index.js",
          "moduleName": "./modules/components/Dragon/index.js",
          "type": "cjs require",
          "userRequest": "./styles.css",
          "loc": "15:14-37"
        }
      ],
      "source": "// removed by extract-text-webpack-plugin\nmodule.exports = {\"header\":\"styles__header___P9w1l\"};"
    },
    {
      "id": 458,
      "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
      "name": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
      "index": 459,
      "index2": 455,
      "size": 280,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [],
      "assets": [],
      "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/node_modules/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"extract\":true,\"remove\":true}!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/style-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [],
      "source": "exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".styles__header___P9w1l {\\n  color: hsl(10, 50%, 50%);\\n}\\n\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"header\": \"styles__header___P9w1l\"\n};"
    }
  ],
  "filteredModules": 0,
  "children": [
    {
      "errors": [],
      "warnings": [],
      "publicPath": "http://localhost:8081/",
      "assetsByChunkName": {},
      "assets": [],
      "chunks": [
        {
          "id": 0,
          "rendered": true,
          "initial": true,
          "entry": true,
          "extraAsync": false,
          "size": 1746,
          "names": [],
          "files": [
            "extract-text-webpack-plugin-output-filename"
          ],
          "hash": "d894386b1d152857bee1",
          "parents": [],
          "origins": [
            {
              "moduleId": 0,
              "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
              "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
              "moduleName": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
              "loc": "",
              "reasons": []
            }
          ]
        }
      ],
      "modules": [
        {
          "id": 0,
          "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
          "name": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
          "index": 0,
          "index2": 1,
          "size": 240,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": null,
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [],
          "source": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"body {\\n  background: #f0f0f0;\\n  font-family: sans-serif;\\n  font-weight: 200;\\n}\\n\", \"\"]);\n\n// exports\n"
        },
        {
          "id": 1,
          "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/lib/css-base.js",
          "name": "./~/css-loader/lib/css-base.js",
          "index": 1,
          "index2": 0,
          "size": 1506,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/styles.css",
              "module": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
              "moduleName": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/styles.css",
              "type": "cjs require",
              "userRequest": "./../node_modules/css-loader/lib/css-base.js",
              "loc": "1:27-82"
            }
          ],
          "source": "/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n"
        }
      ],
      "filteredModules": 0,
      "children": [],
      "name": "extract-text-webpack-plugin"
    },
    {
      "errors": [],
      "warnings": [],
      "publicPath": "http://localhost:8081/",
      "assetsByChunkName": {},
      "assets": [],
      "chunks": [
        {
          "id": 0,
          "rendered": true,
          "initial": true,
          "entry": true,
          "extraAsync": false,
          "size": 1786,
          "names": [],
          "files": [
            "extract-text-webpack-plugin-output-filename"
          ],
          "hash": "ec8a7021d3c92d2fea84",
          "parents": [],
          "origins": [
            {
              "moduleId": 0,
              "module": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
              "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
              "moduleName": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
              "loc": "",
              "reasons": []
            }
          ]
        }
      ],
      "modules": [
        {
          "id": 0,
          "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
          "name": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
          "index": 0,
          "index2": 1,
          "size": 280,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": null,
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [],
          "source": "exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".styles__header___P9w1l {\\n  color: hsl(10, 50%, 50%);\\n}\\n\\n\", \"\"]);\n\n// exports\nexports.locals = {\n\t\"header\": \"styles__header___P9w1l\"\n};"
        },
        {
          "id": 1,
          "identifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/lib/css-base.js",
          "name": "./~/css-loader/lib/css-base.js",
          "index": 1,
          "index2": 0,
          "size": 1506,
          "cacheable": true,
          "built": true,
          "optional": false,
          "prefetched": false,
          "chunks": [
            0
          ],
          "assets": [],
          "issuer": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
          "failed": false,
          "errors": 0,
          "warnings": 0,
          "reasons": [
            {
              "moduleId": 0,
              "moduleIdentifier": "/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/css-loader/index.js?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/node_modules/postcss-loader/index.js!/Users/ryanflorence/Code/github/ryanflorence/react-project/create-react-project/blueprint/modules/components/Dragon/styles.css",
              "module": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
              "moduleName": "./~/css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!./~/postcss-loader!./modules/components/Dragon/styles.css",
              "type": "cjs require",
              "userRequest": "./../../../node_modules/css-loader/lib/css-base.js",
              "loc": "1:27-88"
            }
          ],
          "source": "/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n"
        }
      ],
      "filteredModules": 0,
      "children": [],
      "name": "extract-text-webpack-plugin"
    }
  ]
}