diff options
| author | Jason <jason.daurus@gmail.com> | 2016-03-02 21:21:41 +0800 | 
|---|---|---|
| committer | Jason <jason.daurus@gmail.com> | 2016-03-02 21:55:36 +0800 | 
| commit | 70af4fae46a9b74feb2fd04f370ebce13d5450b0 (patch) | |
| tree | f296ad49039285c2b55ee119d9f911e931acd7ff | |
| parent | 8089752cb2b13fdb13500e577c459ce34abbcbea (diff) | |
| download | mitmproxy-70af4fae46a9b74feb2fd04f370ebce13d5450b0.tar.gz mitmproxy-70af4fae46a9b74feb2fd04f370ebce13d5450b0.tar.bz2 mitmproxy-70af4fae46a9b74feb2fd04f370ebce13d5450b0.zip | |
[web] StoreView.index -> indexOf
| -rw-r--r-- | mitmproxy/web/static/app.js | 8 | ||||
| -rw-r--r-- | mitmproxy/web/static/vendor.js | 4484 | ||||
| -rw-r--r-- | web/src/js/components/flowtable.js | 2 | ||||
| -rw-r--r-- | web/src/js/store/view.js | 6 | 
4 files changed, 2250 insertions, 2250 deletions
| diff --git a/mitmproxy/web/static/app.js b/mitmproxy/web/static/app.js index 4299f749..3537d355 100644 --- a/mitmproxy/web/static/app.js +++ b/mitmproxy/web/static/app.js @@ -1580,7 +1580,7 @@ var FlowTable = _react2.default.createClass({          this.forceUpdate();      },      scrollIntoView: function scrollIntoView(flow) { -        this.scrollRowIntoView(this.context.view.index(flow), _reactDom2.default.findDOMNode(this.refs.body).offsetTop); +        this.scrollRowIntoView(this.context.view.indexOf(flow), _reactDom2.default.findDOMNode(this.refs.body).offsetTop);      },      renderRow: function renderRow(flow) {          var selected = flow === this.props.selected; @@ -6317,12 +6317,12 @@ _lodash2.default.extend(StoreView.prototype, _events.EventEmitter.prototype, {          });          this.emit("recalculate");      }, -    index: function index(elem) { -        return _lodash2.default.sortedIndexBy(this.list, elem, this.sortfun); +    indexOf: function indexOf(elem) { +        return this.list.indexOf(elem, _lodash2.default.sortedIndexBy(this.list, elem, this.sortfun));      },      add: function add(elem) {          if (this.filt(elem)) { -            var idx = this.index(elem); +            var idx = _lodash2.default.sortedIndexBy(this.list, elem, this.sortfun);              if (idx === this.list.length) {                  //happens often, .push is way faster.                  this.list.push(elem); diff --git a/mitmproxy/web/static/vendor.js b/mitmproxy/web/static/vendor.js index cc631d27..6bb4b947 100644 --- a/mitmproxy/web/static/vendor.js +++ b/mitmproxy/web/static/vendor.js @@ -1,97 +1,186 @@  require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ -// shim for using process in browser +var pSlice = Array.prototype.slice; +var objectKeys = require('./lib/keys.js'); +var isArguments = require('./lib/is_arguments.js'); -var process = module.exports = {}; -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; +var deepEqual = module.exports = function (actual, expected, opts) { +  if (!opts) opts = {}; +  // 7.1. All identical values are equivalent, as determined by ===. +  if (actual === expected) { +    return true; -function cleanUpNextTick() { -    draining = false; -    if (currentQueue.length) { -        queue = currentQueue.concat(queue); -    } else { -        queueIndex = -1; -    } -    if (queue.length) { -        drainQueue(); -    } +  } else if (actual instanceof Date && expected instanceof Date) { +    return actual.getTime() === expected.getTime(); + +  // 7.3. Other pairs that do not both pass typeof value == 'object', +  // equivalence is determined by ==. +  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') { +    return opts.strict ? actual === expected : actual == expected; + +  // 7.4. For all other Object pairs, including Array objects, equivalence is +  // determined by having the same number of owned properties (as verified +  // with Object.prototype.hasOwnProperty.call), the same set of keys +  // (although not necessarily the same order), equivalent values for every +  // corresponding key, and an identical 'prototype' property. Note: this +  // accounts for both named and indexed properties on Arrays. +  } else { +    return objEquiv(actual, expected, opts); +  }  } -function drainQueue() { -    if (draining) { -        return; -    } -    var timeout = setTimeout(cleanUpNextTick); -    draining = true; +function isUndefinedOrNull(value) { +  return value === null || value === undefined; +} -    var len = queue.length; -    while(len) { -        currentQueue = queue; -        queue = []; -        while (++queueIndex < len) { -            if (currentQueue) { -                currentQueue[queueIndex].run(); -            } -        } -        queueIndex = -1; -        len = queue.length; -    } -    currentQueue = null; -    draining = false; -    clearTimeout(timeout); +function isBuffer (x) { +  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false; +  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') { +    return false; +  } +  if (x.length > 0 && typeof x[0] !== 'number') return false; +  return true;  } -process.nextTick = function (fun) { -    var args = new Array(arguments.length - 1); -    if (arguments.length > 1) { -        for (var i = 1; i < arguments.length; i++) { -            args[i - 1] = arguments[i]; -        } +function objEquiv(a, b, opts) { +  var i, key; +  if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) +    return false; +  // an identical 'prototype' property. +  if (a.prototype !== b.prototype) return false; +  //~~~I've managed to break Object.keys through screwy arguments passing. +  //   Converting to array solves the problem. +  if (isArguments(a)) { +    if (!isArguments(b)) { +      return false;      } -    queue.push(new Item(fun, args)); -    if (queue.length === 1 && !draining) { -        setTimeout(drainQueue, 0); +    a = pSlice.call(a); +    b = pSlice.call(b); +    return deepEqual(a, b, opts); +  } +  if (isBuffer(a)) { +    if (!isBuffer(b)) { +      return false; +    } +    if (a.length !== b.length) return false; +    for (i = 0; i < a.length; i++) { +      if (a[i] !== b[i]) return false;      } +    return true; +  } +  try { +    var ka = objectKeys(a), +        kb = objectKeys(b); +  } catch (e) {//happens when one is a string literal and the other isn't +    return false; +  } +  // having the same number of owned properties (keys incorporates +  // hasOwnProperty) +  if (ka.length != kb.length) +    return false; +  //the same set of keys (although not necessarily the same order), +  ka.sort(); +  kb.sort(); +  //~~~cheap key test +  for (i = ka.length - 1; i >= 0; i--) { +    if (ka[i] != kb[i]) +      return false; +  } +  //equivalent values for every corresponding key, and +  //~~~possibly expensive deep test +  for (i = ka.length - 1; i >= 0; i--) { +    key = ka[i]; +    if (!deepEqual(a[key], b[key], opts)) return false; +  } +  return typeof a === typeof b; +} + +},{"./lib/is_arguments.js":2,"./lib/keys.js":3}],2:[function(require,module,exports){ +var supportsArgumentsClass = (function(){ +  return Object.prototype.toString.call(arguments) +})() == '[object Arguments]'; + +exports = module.exports = supportsArgumentsClass ? supported : unsupported; + +exports.supported = supported; +function supported(object) { +  return Object.prototype.toString.call(object) == '[object Arguments]';  }; -// v8 likes predictible objects -function Item(fun, array) { -    this.fun = fun; -    this.array = array; -} -Item.prototype.run = function () { -    this.fun.apply(null, this.array); +exports.unsupported = unsupported; +function unsupported(object){ +  return object && +    typeof object == 'object' && +    typeof object.length == 'number' && +    Object.prototype.hasOwnProperty.call(object, 'callee') && +    !Object.prototype.propertyIsEnumerable.call(object, 'callee') || +    false;  }; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; -function noop() {} +},{}],3:[function(require,module,exports){ +exports = module.exports = typeof Object.keys === 'function' +  ? Object.keys : shim; -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; +exports.shim = shim; +function shim (obj) { +  var keys = []; +  for (var key in obj) keys.push(key); +  return keys; +} -process.binding = function (name) { -    throw new Error('process.binding is not supported'); -}; +},{}],4:[function(require,module,exports){ +(function (process){ +/** + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule invariant + */ -process.cwd = function () { return '/' }; -process.chdir = function (dir) { -    throw new Error('process.chdir is not supported'); +"use strict"; + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var invariant = function (condition, format, a, b, c, d, e, f) { +  if (process.env.NODE_ENV !== 'production') { +    if (format === undefined) { +      throw new Error('invariant requires an error message argument'); +    } +  } + +  if (!condition) { +    var error; +    if (format === undefined) { +      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); +    } else { +      var args = [a, b, c, d, e, f]; +      var argIndex = 0; +      error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () { +        return args[argIndex++]; +      })); +    } + +    error.framesToPop = 1; // we don't care about invariant's own frame +    throw error; +  }  }; -process.umask = function() { return 0; }; -},{}],2:[function(require,module,exports){ +module.exports = invariant; +}).call(this,require('_process')) + +},{"_process":23}],5:[function(require,module,exports){  (function (process){  /**   * Copyright (c) 2014-2015, Facebook, Inc. @@ -326,7 +415,1627 @@ var Dispatcher = (function () {  module.exports = Dispatcher;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":3}],3:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":4}],6:[function(require,module,exports){ +/** + * Indicates that navigation was caused by a call to history.push. + */ +'use strict'; + +exports.__esModule = true; +var PUSH = 'PUSH'; + +exports.PUSH = PUSH; +/** + * Indicates that navigation was caused by a call to history.replace. + */ +var REPLACE = 'REPLACE'; + +exports.REPLACE = REPLACE; +/** + * Indicates that navigation was caused by some other action such + * as using a browser's back/forward buttons and/or manually manipulating + * the URL in a browser's location bar. This is the default. + * + * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate + * for more information. + */ +var POP = 'POP'; + +exports.POP = POP; +exports['default'] = { +  PUSH: PUSH, +  REPLACE: REPLACE, +  POP: POP +}; +},{}],7:[function(require,module,exports){ +"use strict"; + +exports.__esModule = true; +exports.loopAsync = loopAsync; + +function loopAsync(turns, work, callback) { +  var currentTurn = 0; +  var isDone = false; + +  function done() { +    isDone = true; +    callback.apply(this, arguments); +  } + +  function next() { +    if (isDone) return; + +    if (currentTurn < turns) { +      work.call(this, currentTurn++, next, done); +    } else { +      done.apply(this, arguments); +    } +  } + +  next(); +} +},{}],8:[function(require,module,exports){ +(function (process){ +/*eslint-disable no-empty */ +'use strict'; + +exports.__esModule = true; +exports.saveState = saveState; +exports.readState = readState; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +var KeyPrefix = '@@History/'; +var QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; + +var SecurityError = 'SecurityError'; + +function createKey(key) { +  return KeyPrefix + key; +} + +function saveState(key, state) { +  try { +    if (state == null) { +      window.sessionStorage.removeItem(createKey(key)); +    } else { +      window.sessionStorage.setItem(createKey(key), JSON.stringify(state)); +    } +  } catch (error) { +    if (error.name === SecurityError) { +      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any +      // attempt to access window.sessionStorage. +      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined; + +      return; +    } + +    if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) { +      // Safari "private mode" throws QuotaExceededError. +      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined; + +      return; +    } + +    throw error; +  } +} + +function readState(key) { +  var json = undefined; +  try { +    json = window.sessionStorage.getItem(createKey(key)); +  } catch (error) { +    if (error.name === SecurityError) { +      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any +      // attempt to access window.sessionStorage. +      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined; + +      return null; +    } +  } + +  if (json) { +    try { +      return JSON.parse(json); +    } catch (error) { +      // Ignore invalid JSON. +    } +  } + +  return null; +} +}).call(this,require('_process')) + +},{"_process":23,"warning":232}],9:[function(require,module,exports){ +'use strict'; + +exports.__esModule = true; +exports.addEventListener = addEventListener; +exports.removeEventListener = removeEventListener; +exports.getHashPath = getHashPath; +exports.replaceHashPath = replaceHashPath; +exports.getWindowPath = getWindowPath; +exports.go = go; +exports.getUserConfirmation = getUserConfirmation; +exports.supportsHistory = supportsHistory; +exports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash; + +function addEventListener(node, event, listener) { +  if (node.addEventListener) { +    node.addEventListener(event, listener, false); +  } else { +    node.attachEvent('on' + event, listener); +  } +} + +function removeEventListener(node, event, listener) { +  if (node.removeEventListener) { +    node.removeEventListener(event, listener, false); +  } else { +    node.detachEvent('on' + event, listener); +  } +} + +function getHashPath() { +  // We can't use window.location.hash here because it's not +  // consistent across browsers - Firefox will pre-decode it! +  return window.location.href.split('#')[1] || ''; +} + +function replaceHashPath(path) { +  window.location.replace(window.location.pathname + window.location.search + '#' + path); +} + +function getWindowPath() { +  return window.location.pathname + window.location.search + window.location.hash; +} + +function go(n) { +  if (n) window.history.go(n); +} + +function getUserConfirmation(message, callback) { +  callback(window.confirm(message)); +} + +/** + * Returns true if the HTML5 history API is supported. Taken from Modernizr. + * + * https://github.com/Modernizr/Modernizr/blob/master/LICENSE + * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js + * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586 + */ + +function supportsHistory() { +  var ua = navigator.userAgent; +  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) { +    return false; +  } +  return window.history && 'pushState' in window.history; +} + +/** + * Returns false if using go(n) with hash history causes a full page reload. + */ + +function supportsGoWithoutReloadUsingHash() { +  var ua = navigator.userAgent; +  return ua.indexOf('Firefox') === -1; +} +},{}],10:[function(require,module,exports){ +'use strict'; + +exports.__esModule = true; +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +exports.canUseDOM = canUseDOM; +},{}],11:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; +exports.extractPath = extractPath; +exports.parsePath = parsePath; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +function extractPath(string) { +  var match = string.match(/^https?:\/\/[^\/]*/); + +  if (match == null) return string; + +  return string.substring(match[0].length); +} + +function parsePath(path) { +  var pathname = extractPath(path); +  var search = ''; +  var hash = ''; + +  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; + +  var hashIndex = pathname.indexOf('#'); +  if (hashIndex !== -1) { +    hash = pathname.substring(hashIndex); +    pathname = pathname.substring(0, hashIndex); +  } + +  var searchIndex = pathname.indexOf('?'); +  if (searchIndex !== -1) { +    search = pathname.substring(searchIndex); +    pathname = pathname.substring(0, searchIndex); +  } + +  if (pathname === '') pathname = '/'; + +  return { +    pathname: pathname, +    search: search, +    hash: hash +  }; +} +}).call(this,require('_process')) + +},{"_process":23,"warning":232}],12:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _invariant = require('invariant'); + +var _invariant2 = _interopRequireDefault(_invariant); + +var _Actions = require('./Actions'); + +var _PathUtils = require('./PathUtils'); + +var _ExecutionEnvironment = require('./ExecutionEnvironment'); + +var _DOMUtils = require('./DOMUtils'); + +var _DOMStateStorage = require('./DOMStateStorage'); + +var _createDOMHistory = require('./createDOMHistory'); + +var _createDOMHistory2 = _interopRequireDefault(_createDOMHistory); + +/** + * Creates and returns a history object that uses HTML5's history API + * (pushState, replaceState, and the popstate event) to manage history. + * This is the recommended method of managing history in browsers because + * it provides the cleanest URLs. + * + * Note: In browsers that do not support the HTML5 history API full + * page reloads will be used to preserve URLs. + */ +function createBrowserHistory() { +  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + +  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined; + +  var forceRefresh = options.forceRefresh; + +  var isSupported = _DOMUtils.supportsHistory(); +  var useRefresh = !isSupported || forceRefresh; + +  function getCurrentLocation(historyState) { +    historyState = historyState || window.history.state || {}; + +    var path = _DOMUtils.getWindowPath(); +    var _historyState = historyState; +    var key = _historyState.key; + +    var state = undefined; +    if (key) { +      state = _DOMStateStorage.readState(key); +    } else { +      state = null; +      key = history.createKey(); + +      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path); +    } + +    var location = _PathUtils.parsePath(path); + +    return history.createLocation(_extends({}, location, { state: state }), undefined, key); +  } + +  function startPopStateListener(_ref) { +    var transitionTo = _ref.transitionTo; + +    function popStateListener(event) { +      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit. + +      transitionTo(getCurrentLocation(event.state)); +    } + +    _DOMUtils.addEventListener(window, 'popstate', popStateListener); + +    return function () { +      _DOMUtils.removeEventListener(window, 'popstate', popStateListener); +    }; +  } + +  function finishTransition(location) { +    var basename = location.basename; +    var pathname = location.pathname; +    var search = location.search; +    var hash = location.hash; +    var state = location.state; +    var action = location.action; +    var key = location.key; + +    if (action === _Actions.POP) return; // Nothing to do. + +    _DOMStateStorage.saveState(key, state); + +    var path = (basename || '') + pathname + search + hash; +    var historyState = { +      key: key +    }; + +    if (action === _Actions.PUSH) { +      if (useRefresh) { +        window.location.href = path; +        return false; // Prevent location update. +      } else { +          window.history.pushState(historyState, null, path); +        } +    } else { +      // REPLACE +      if (useRefresh) { +        window.location.replace(path); +        return false; // Prevent location update. +      } else { +          window.history.replaceState(historyState, null, path); +        } +    } +  } + +  var history = _createDOMHistory2['default'](_extends({}, options, { +    getCurrentLocation: getCurrentLocation, +    finishTransition: finishTransition, +    saveState: _DOMStateStorage.saveState +  })); + +  var listenerCount = 0, +      stopPopStateListener = undefined; + +  function listenBefore(listener) { +    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history); + +    var unlisten = history.listenBefore(listener); + +    return function () { +      unlisten(); + +      if (--listenerCount === 0) stopPopStateListener(); +    }; +  } + +  function listen(listener) { +    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history); + +    var unlisten = history.listen(listener); + +    return function () { +      unlisten(); + +      if (--listenerCount === 0) stopPopStateListener(); +    }; +  } + +  // deprecated +  function registerTransitionHook(hook) { +    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history); + +    history.registerTransitionHook(hook); +  } + +  // deprecated +  function unregisterTransitionHook(hook) { +    history.unregisterTransitionHook(hook); + +    if (--listenerCount === 0) stopPopStateListener(); +  } + +  return _extends({}, history, { +    listenBefore: listenBefore, +    listen: listen, +    registerTransitionHook: registerTransitionHook, +    unregisterTransitionHook: unregisterTransitionHook +  }); +} + +exports['default'] = createBrowserHistory; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./Actions":6,"./DOMStateStorage":8,"./DOMUtils":9,"./ExecutionEnvironment":10,"./PathUtils":11,"./createDOMHistory":13,"_process":23,"invariant":22}],13:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _invariant = require('invariant'); + +var _invariant2 = _interopRequireDefault(_invariant); + +var _ExecutionEnvironment = require('./ExecutionEnvironment'); + +var _DOMUtils = require('./DOMUtils'); + +var _createHistory = require('./createHistory'); + +var _createHistory2 = _interopRequireDefault(_createHistory); + +function createDOMHistory(options) { +  var history = _createHistory2['default'](_extends({ +    getUserConfirmation: _DOMUtils.getUserConfirmation +  }, options, { +    go: _DOMUtils.go +  })); + +  function listen(listener) { +    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined; + +    return history.listen(listener); +  } + +  return _extends({}, history, { +    listen: listen +  }); +} + +exports['default'] = createDOMHistory; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./DOMUtils":9,"./ExecutionEnvironment":10,"./createHistory":15,"_process":23,"invariant":22}],14:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +var _invariant = require('invariant'); + +var _invariant2 = _interopRequireDefault(_invariant); + +var _Actions = require('./Actions'); + +var _PathUtils = require('./PathUtils'); + +var _ExecutionEnvironment = require('./ExecutionEnvironment'); + +var _DOMUtils = require('./DOMUtils'); + +var _DOMStateStorage = require('./DOMStateStorage'); + +var _createDOMHistory = require('./createDOMHistory'); + +var _createDOMHistory2 = _interopRequireDefault(_createDOMHistory); + +function isAbsolutePath(path) { +  return typeof path === 'string' && path.charAt(0) === '/'; +} + +function ensureSlash() { +  var path = _DOMUtils.getHashPath(); + +  if (isAbsolutePath(path)) return true; + +  _DOMUtils.replaceHashPath('/' + path); + +  return false; +} + +function addQueryStringValueToPath(path, key, value) { +  return path + (path.indexOf('?') === -1 ? '?' : '&') + (key + '=' + value); +} + +function stripQueryStringValueFromPath(path, key) { +  return path.replace(new RegExp('[?&]?' + key + '=[a-zA-Z0-9]+'), ''); +} + +function getQueryStringValueFromPath(path, key) { +  var match = path.match(new RegExp('\\?.*?\\b' + key + '=(.+?)\\b')); +  return match && match[1]; +} + +var DefaultQueryKey = '_k'; + +function createHashHistory() { +  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + +  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Hash history needs a DOM') : _invariant2['default'](false) : undefined; + +  var queryKey = options.queryKey; + +  if (queryKey === undefined || !!queryKey) queryKey = typeof queryKey === 'string' ? queryKey : DefaultQueryKey; + +  function getCurrentLocation() { +    var path = _DOMUtils.getHashPath(); + +    var key = undefined, +        state = undefined; +    if (queryKey) { +      key = getQueryStringValueFromPath(path, queryKey); +      path = stripQueryStringValueFromPath(path, queryKey); + +      if (key) { +        state = _DOMStateStorage.readState(key); +      } else { +        state = null; +        key = history.createKey(); +        _DOMUtils.replaceHashPath(addQueryStringValueToPath(path, queryKey, key)); +      } +    } else { +      key = state = null; +    } + +    var location = _PathUtils.parsePath(path); + +    return history.createLocation(_extends({}, location, { state: state }), undefined, key); +  } + +  function startHashChangeListener(_ref) { +    var transitionTo = _ref.transitionTo; + +    function hashChangeListener() { +      if (!ensureSlash()) return; // Always make sure hashes are preceeded with a /. + +      transitionTo(getCurrentLocation()); +    } + +    ensureSlash(); +    _DOMUtils.addEventListener(window, 'hashchange', hashChangeListener); + +    return function () { +      _DOMUtils.removeEventListener(window, 'hashchange', hashChangeListener); +    }; +  } + +  function finishTransition(location) { +    var basename = location.basename; +    var pathname = location.pathname; +    var search = location.search; +    var state = location.state; +    var action = location.action; +    var key = location.key; + +    if (action === _Actions.POP) return; // Nothing to do. + +    var path = (basename || '') + pathname + search; + +    if (queryKey) { +      path = addQueryStringValueToPath(path, queryKey, key); +      _DOMStateStorage.saveState(key, state); +    } else { +      // Drop key and state. +      location.key = location.state = null; +    } + +    var currentHash = _DOMUtils.getHashPath(); + +    if (action === _Actions.PUSH) { +      if (currentHash !== path) { +        window.location.hash = path; +      } else { +        process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'You cannot PUSH the same path using hash history') : undefined; +      } +    } else if (currentHash !== path) { +      // REPLACE +      _DOMUtils.replaceHashPath(path); +    } +  } + +  var history = _createDOMHistory2['default'](_extends({}, options, { +    getCurrentLocation: getCurrentLocation, +    finishTransition: finishTransition, +    saveState: _DOMStateStorage.saveState +  })); + +  var listenerCount = 0, +      stopHashChangeListener = undefined; + +  function listenBefore(listener) { +    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history); + +    var unlisten = history.listenBefore(listener); + +    return function () { +      unlisten(); + +      if (--listenerCount === 0) stopHashChangeListener(); +    }; +  } + +  function listen(listener) { +    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history); + +    var unlisten = history.listen(listener); + +    return function () { +      unlisten(); + +      if (--listenerCount === 0) stopHashChangeListener(); +    }; +  } + +  function push(location) { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || location.state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; + +    history.push(location); +  } + +  function replace(location) { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || location.state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; + +    history.replace(location); +  } + +  var goIsSupportedWithoutReload = _DOMUtils.supportsGoWithoutReloadUsingHash(); + +  function go(n) { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](goIsSupportedWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : undefined; + +    history.go(n); +  } + +  function createHref(path) { +    return '#' + history.createHref(path); +  } + +  // deprecated +  function registerTransitionHook(hook) { +    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history); + +    history.registerTransitionHook(hook); +  } + +  // deprecated +  function unregisterTransitionHook(hook) { +    history.unregisterTransitionHook(hook); + +    if (--listenerCount === 0) stopHashChangeListener(); +  } + +  // deprecated +  function pushState(state, path) { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; + +    history.pushState(state, path); +  } + +  // deprecated +  function replaceState(state, path) { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; + +    history.replaceState(state, path); +  } + +  return _extends({}, history, { +    listenBefore: listenBefore, +    listen: listen, +    push: push, +    replace: replace, +    go: go, +    createHref: createHref, + +    registerTransitionHook: registerTransitionHook, // deprecated - warning is in createHistory +    unregisterTransitionHook: unregisterTransitionHook, // deprecated - warning is in createHistory +    pushState: pushState, // deprecated - warning is in createHistory +    replaceState: replaceState // deprecated - warning is in createHistory +  }); +} + +exports['default'] = createHashHistory; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./Actions":6,"./DOMStateStorage":8,"./DOMUtils":9,"./ExecutionEnvironment":10,"./PathUtils":11,"./createDOMHistory":13,"_process":23,"invariant":22,"warning":232}],15:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +var _deepEqual = require('deep-equal'); + +var _deepEqual2 = _interopRequireDefault(_deepEqual); + +var _PathUtils = require('./PathUtils'); + +var _AsyncUtils = require('./AsyncUtils'); + +var _Actions = require('./Actions'); + +var _createLocation2 = require('./createLocation'); + +var _createLocation3 = _interopRequireDefault(_createLocation2); + +var _runTransitionHook = require('./runTransitionHook'); + +var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); + +var _deprecate = require('./deprecate'); + +var _deprecate2 = _interopRequireDefault(_deprecate); + +function createRandomKey(length) { +  return Math.random().toString(36).substr(2, length); +} + +function locationsAreEqual(a, b) { +  return a.pathname === b.pathname && a.search === b.search && +  //a.action === b.action && // Different action !== location change. +  a.key === b.key && _deepEqual2['default'](a.state, b.state); +} + +var DefaultKeyLength = 6; + +function createHistory() { +  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; +  var getCurrentLocation = options.getCurrentLocation; +  var finishTransition = options.finishTransition; +  var saveState = options.saveState; +  var go = options.go; +  var keyLength = options.keyLength; +  var getUserConfirmation = options.getUserConfirmation; + +  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength; + +  var transitionHooks = []; + +  function listenBefore(hook) { +    transitionHooks.push(hook); + +    return function () { +      transitionHooks = transitionHooks.filter(function (item) { +        return item !== hook; +      }); +    }; +  } + +  var allKeys = []; +  var changeListeners = []; +  var location = undefined; + +  function getCurrent() { +    if (pendingLocation && pendingLocation.action === _Actions.POP) { +      return allKeys.indexOf(pendingLocation.key); +    } else if (location) { +      return allKeys.indexOf(location.key); +    } else { +      return -1; +    } +  } + +  function updateLocation(newLocation) { +    var current = getCurrent(); + +    location = newLocation; + +    if (location.action === _Actions.PUSH) { +      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]); +    } else if (location.action === _Actions.REPLACE) { +      allKeys[current] = location.key; +    } + +    changeListeners.forEach(function (listener) { +      listener(location); +    }); +  } + +  function listen(listener) { +    changeListeners.push(listener); + +    if (location) { +      listener(location); +    } else { +      var _location = getCurrentLocation(); +      allKeys = [_location.key]; +      updateLocation(_location); +    } + +    return function () { +      changeListeners = changeListeners.filter(function (item) { +        return item !== listener; +      }); +    }; +  } + +  function confirmTransitionTo(location, callback) { +    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) { +      _runTransitionHook2['default'](transitionHooks[index], location, function (result) { +        if (result != null) { +          done(result); +        } else { +          next(); +        } +      }); +    }, function (message) { +      if (getUserConfirmation && typeof message === 'string') { +        getUserConfirmation(message, function (ok) { +          callback(ok !== false); +        }); +      } else { +        callback(message !== false); +      } +    }); +  } + +  var pendingLocation = undefined; + +  function transitionTo(nextLocation) { +    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do. + +    pendingLocation = nextLocation; + +    confirmTransitionTo(nextLocation, function (ok) { +      if (pendingLocation !== nextLocation) return; // Transition was interrupted. + +      if (ok) { +        // treat PUSH to current path like REPLACE to be consistent with browsers +        if (nextLocation.action === _Actions.PUSH) { +          var prevPath = createPath(location); +          var nextPath = createPath(nextLocation); + +          if (nextPath === prevPath && _deepEqual2['default'](location.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE; +        } + +        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation); +      } else if (location && nextLocation.action === _Actions.POP) { +        var prevIndex = allKeys.indexOf(location.key); +        var nextIndex = allKeys.indexOf(nextLocation.key); + +        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL. +      } +    }); +  } + +  function push(location) { +    transitionTo(createLocation(location, _Actions.PUSH, createKey())); +  } + +  function replace(location) { +    transitionTo(createLocation(location, _Actions.REPLACE, createKey())); +  } + +  function goBack() { +    go(-1); +  } + +  function goForward() { +    go(1); +  } + +  function createKey() { +    return createRandomKey(keyLength); +  } + +  function createPath(location) { +    if (location == null || typeof location === 'string') return location; + +    var pathname = location.pathname; +    var search = location.search; +    var hash = location.hash; + +    var result = pathname; + +    if (search) result += search; + +    if (hash) result += hash; + +    return result; +  } + +  function createHref(location) { +    return createPath(location); +  } + +  function createLocation(location, action) { +    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2]; + +    if (typeof action === 'object') { +      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'The state (2nd) argument to history.createLocation is deprecated; use a ' + 'location descriptor instead') : undefined; + +      if (typeof location === 'string') location = _PathUtils.parsePath(location); + +      location = _extends({}, location, { state: action }); + +      action = key; +      key = arguments[3] || createKey(); +    } + +    return _createLocation3['default'](location, action, key); +  } + +  // deprecated +  function setState(state) { +    if (location) { +      updateLocationState(location, state); +      updateLocation(location); +    } else { +      updateLocationState(getCurrentLocation(), state); +    } +  } + +  function updateLocationState(location, state) { +    location.state = _extends({}, location.state, state); +    saveState(location.key, location.state); +  } + +  // deprecated +  function registerTransitionHook(hook) { +    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook); +  } + +  // deprecated +  function unregisterTransitionHook(hook) { +    transitionHooks = transitionHooks.filter(function (item) { +      return item !== hook; +    }); +  } + +  // deprecated +  function pushState(state, path) { +    if (typeof path === 'string') path = _PathUtils.parsePath(path); + +    push(_extends({ state: state }, path)); +  } + +  // deprecated +  function replaceState(state, path) { +    if (typeof path === 'string') path = _PathUtils.parsePath(path); + +    replace(_extends({ state: state }, path)); +  } + +  return { +    listenBefore: listenBefore, +    listen: listen, +    transitionTo: transitionTo, +    push: push, +    replace: replace, +    go: go, +    goBack: goBack, +    goForward: goForward, +    createKey: createKey, +    createPath: createPath, +    createHref: createHref, +    createLocation: createLocation, + +    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'), +    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'), +    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'), +    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'), +    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead') +  }; +} + +exports['default'] = createHistory; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./Actions":6,"./AsyncUtils":7,"./PathUtils":11,"./createLocation":16,"./deprecate":18,"./runTransitionHook":19,"_process":23,"deep-equal":1,"warning":232}],16:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +var _Actions = require('./Actions'); + +var _PathUtils = require('./PathUtils'); + +function createLocation() { +  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0]; +  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1]; +  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2]; + +  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3]; + +  if (typeof location === 'string') location = _PathUtils.parsePath(location); + +  if (typeof action === 'object') { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'The state (2nd) argument to createLocation is deprecated; use a ' + 'location descriptor instead') : undefined; + +    location = _extends({}, location, { state: action }); + +    action = key || _Actions.POP; +    key = _fourthArg; +  } + +  var pathname = location.pathname || '/'; +  var search = location.search || ''; +  var hash = location.hash || ''; +  var state = location.state || null; + +  return { +    pathname: pathname, +    search: search, +    hash: hash, +    state: state, +    action: action, +    key: key +  }; +} + +exports['default'] = createLocation; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./Actions":6,"./PathUtils":11,"_process":23,"warning":232}],17:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +var _invariant = require('invariant'); + +var _invariant2 = _interopRequireDefault(_invariant); + +var _PathUtils = require('./PathUtils'); + +var _Actions = require('./Actions'); + +var _createHistory = require('./createHistory'); + +var _createHistory2 = _interopRequireDefault(_createHistory); + +function createStateStorage(entries) { +  return entries.filter(function (entry) { +    return entry.state; +  }).reduce(function (memo, entry) { +    memo[entry.key] = entry.state; +    return memo; +  }, {}); +} + +function createMemoryHistory() { +  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + +  if (Array.isArray(options)) { +    options = { entries: options }; +  } else if (typeof options === 'string') { +    options = { entries: [options] }; +  } + +  var history = _createHistory2['default'](_extends({}, options, { +    getCurrentLocation: getCurrentLocation, +    finishTransition: finishTransition, +    saveState: saveState, +    go: go +  })); + +  var _options = options; +  var entries = _options.entries; +  var current = _options.current; + +  if (typeof entries === 'string') { +    entries = [entries]; +  } else if (!Array.isArray(entries)) { +    entries = ['/']; +  } + +  entries = entries.map(function (entry) { +    var key = history.createKey(); + +    if (typeof entry === 'string') return { pathname: entry, key: key }; + +    if (typeof entry === 'object' && entry) return _extends({}, entry, { key: key }); + +    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Unable to create history entry from %s', entry) : _invariant2['default'](false) : undefined; +  }); + +  if (current == null) { +    current = entries.length - 1; +  } else { +    !(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; +  } + +  var storage = createStateStorage(entries); + +  function saveState(key, state) { +    storage[key] = state; +  } + +  function readState(key) { +    return storage[key]; +  } + +  function getCurrentLocation() { +    var entry = entries[current]; +    var key = entry.key; +    var basename = entry.basename; +    var pathname = entry.pathname; +    var search = entry.search; + +    var path = (basename || '') + pathname + (search || ''); + +    var state = undefined; +    if (key) { +      state = readState(key); +    } else { +      state = null; +      key = history.createKey(); +      entry.key = key; +    } + +    var location = _PathUtils.parsePath(path); + +    return history.createLocation(_extends({}, location, { state: state }), undefined, key); +  } + +  function canGo(n) { +    var index = current + n; +    return index >= 0 && index < entries.length; +  } + +  function go(n) { +    if (n) { +      if (!canGo(n)) { +        process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'Cannot go(%s) there is not enough history', n) : undefined; +        return; +      } + +      current += n; + +      var currentLocation = getCurrentLocation(); + +      // change action to POP +      history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP })); +    } +  } + +  function finishTransition(location) { +    switch (location.action) { +      case _Actions.PUSH: +        current += 1; + +        // if we are not on the top of stack +        // remove rest and push new +        if (current < entries.length) entries.splice(current); + +        entries.push(location); +        saveState(location.key, location.state); +        break; +      case _Actions.REPLACE: +        entries[current] = location; +        saveState(location.key, location.state); +        break; +    } +  } + +  return history; +} + +exports['default'] = createMemoryHistory; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./Actions":6,"./PathUtils":11,"./createHistory":15,"_process":23,"invariant":22,"warning":232}],18:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +function deprecate(fn, message) { +  return function () { +    process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] ' + message) : undefined; +    return fn.apply(this, arguments); +  }; +} + +exports['default'] = deprecate; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"_process":23,"warning":232}],19:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +function runTransitionHook(hook, location, callback) { +  var result = hook(location, callback); + +  if (hook.length < 2) { +    // Assume the hook runs synchronously and automatically +    // call the callback with the return value. +    callback(result); +  } else { +    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; +  } +} + +exports['default'] = runTransitionHook; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"_process":23,"warning":232}],20:[function(require,module,exports){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _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; } + +var _ExecutionEnvironment = require('./ExecutionEnvironment'); + +var _PathUtils = require('./PathUtils'); + +var _runTransitionHook = require('./runTransitionHook'); + +var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); + +var _deprecate = require('./deprecate'); + +var _deprecate2 = _interopRequireDefault(_deprecate); + +function useBasename(createHistory) { +  return function () { +    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; +    var basename = options.basename; + +    var historyOptions = _objectWithoutProperties(options, ['basename']); + +    var history = createHistory(historyOptions); + +    // Automatically use the value of <base href> in HTML +    // documents as basename if it's not explicitly given. +    if (basename == null && _ExecutionEnvironment.canUseDOM) { +      var base = document.getElementsByTagName('base')[0]; + +      if (base) basename = _PathUtils.extractPath(base.href); +    } + +    function addBasename(location) { +      if (basename && location.basename == null) { +        if (location.pathname.indexOf(basename) === 0) { +          location.pathname = location.pathname.substring(basename.length); +          location.basename = basename; + +          if (location.pathname === '') location.pathname = '/'; +        } else { +          location.basename = ''; +        } +      } + +      return location; +    } + +    function prependBasename(location) { +      if (!basename) return location; + +      if (typeof location === 'string') location = _PathUtils.parsePath(location); + +      var pname = location.pathname; +      var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/'; +      var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname; +      var pathname = normalizedBasename + normalizedPathname; + +      return _extends({}, location, { +        pathname: pathname +      }); +    } + +    // Override all read methods with basename-aware versions. +    function listenBefore(hook) { +      return history.listenBefore(function (location, callback) { +        _runTransitionHook2['default'](hook, addBasename(location), callback); +      }); +    } + +    function listen(listener) { +      return history.listen(function (location) { +        listener(addBasename(location)); +      }); +    } + +    // Override all write methods with basename-aware versions. +    function push(location) { +      history.push(prependBasename(location)); +    } + +    function replace(location) { +      history.replace(prependBasename(location)); +    } + +    function createPath(location) { +      return history.createPath(prependBasename(location)); +    } + +    function createHref(location) { +      return history.createHref(prependBasename(location)); +    } + +    function createLocation(location) { +      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { +        args[_key - 1] = arguments[_key]; +      } + +      return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args))); +    } + +    // deprecated +    function pushState(state, path) { +      if (typeof path === 'string') path = _PathUtils.parsePath(path); + +      push(_extends({ state: state }, path)); +    } + +    // deprecated +    function replaceState(state, path) { +      if (typeof path === 'string') path = _PathUtils.parsePath(path); + +      replace(_extends({ state: state }, path)); +    } + +    return _extends({}, history, { +      listenBefore: listenBefore, +      listen: listen, +      push: push, +      replace: replace, +      createPath: createPath, +      createHref: createHref, +      createLocation: createLocation, + +      pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'), +      replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead') +    }); +  }; +} + +exports['default'] = useBasename; +module.exports = exports['default']; +},{"./ExecutionEnvironment":10,"./PathUtils":11,"./deprecate":18,"./runTransitionHook":19}],21:[function(require,module,exports){ +(function (process){ +'use strict'; + +exports.__esModule = true; + +var _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; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _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; } + +var _warning = require('warning'); + +var _warning2 = _interopRequireDefault(_warning); + +var _queryString = require('query-string'); + +var _runTransitionHook = require('./runTransitionHook'); + +var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); + +var _PathUtils = require('./PathUtils'); + +var _deprecate = require('./deprecate'); + +var _deprecate2 = _interopRequireDefault(_deprecate); + +var SEARCH_BASE_KEY = '$searchBase'; + +function defaultStringifyQuery(query) { +  return _queryString.stringify(query).replace(/%20/g, '+'); +} + +var defaultParseQueryString = _queryString.parse; + +function isNestedObject(object) { +  for (var p in object) { +    if (object.hasOwnProperty(p) && typeof object[p] === 'object' && !Array.isArray(object[p]) && object[p] !== null) return true; +  }return false; +} + +/** + * Returns a new createHistory function that may be used to create + * history objects that know how to handle URL queries. + */ +function useQueries(createHistory) { +  return function () { +    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; +    var stringifyQuery = options.stringifyQuery; +    var parseQueryString = options.parseQueryString; + +    var historyOptions = _objectWithoutProperties(options, ['stringifyQuery', 'parseQueryString']); + +    var history = createHistory(historyOptions); + +    if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery; + +    if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString; + +    function addQuery(location) { +      if (location.query == null) { +        var search = location.search; + +        location.query = parseQueryString(search.substring(1)); +        location[SEARCH_BASE_KEY] = { search: search, searchBase: '' }; +      } + +      // TODO: Instead of all the book-keeping here, this should just strip the +      // stringified query from the search. + +      return location; +    } + +    function appendQuery(location, query) { +      var _extends2; + +      var searchBaseSpec = location[SEARCH_BASE_KEY]; +      var queryString = query ? stringifyQuery(query) : ''; +      if (!searchBaseSpec && !queryString) { +        return location; +      } + +      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; + +      if (typeof location === 'string') location = _PathUtils.parsePath(location); + +      var searchBase = undefined; +      if (searchBaseSpec && location.search === searchBaseSpec.search) { +        searchBase = searchBaseSpec.searchBase; +      } else { +        searchBase = location.search || ''; +      } + +      var search = searchBase; +      if (queryString) { +        search += (search ? '&' : '?') + queryString; +      } + +      return _extends({}, location, (_extends2 = { +        search: search +      }, _extends2[SEARCH_BASE_KEY] = { search: search, searchBase: searchBase }, _extends2)); +    } + +    // Override all read methods with query-aware versions. +    function listenBefore(hook) { +      return history.listenBefore(function (location, callback) { +        _runTransitionHook2['default'](hook, addQuery(location), callback); +      }); +    } + +    function listen(listener) { +      return history.listen(function (location) { +        listener(addQuery(location)); +      }); +    } + +    // Override all write methods with query-aware versions. +    function push(location) { +      history.push(appendQuery(location, location.query)); +    } + +    function replace(location) { +      history.replace(appendQuery(location, location.query)); +    } + +    function createPath(location, query) { +      process.env.NODE_ENV !== 'production' ? _warning2['default'](!query, 'the query argument to createPath is deprecated; use a location descriptor instead') : undefined; + +      return history.createPath(appendQuery(location, query || location.query)); +    } + +    function createHref(location, query) { +      process.env.NODE_ENV !== 'production' ? _warning2['default'](!query, 'the query argument to createHref is deprecated; use a location descriptor instead') : undefined; + +      return history.createHref(appendQuery(location, query || location.query)); +    } + +    function createLocation(location) { +      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { +        args[_key - 1] = arguments[_key]; +      } + +      var fullLocation = history.createLocation.apply(history, [appendQuery(location, location.query)].concat(args)); +      if (location.query) { +        fullLocation.query = location.query; +      } +      return addQuery(fullLocation); +    } + +    // deprecated +    function pushState(state, path, query) { +      if (typeof path === 'string') path = _PathUtils.parsePath(path); + +      push(_extends({ state: state }, path, { query: query })); +    } + +    // deprecated +    function replaceState(state, path, query) { +      if (typeof path === 'string') path = _PathUtils.parsePath(path); + +      replace(_extends({ state: state }, path, { query: query })); +    } + +    return _extends({}, history, { +      listenBefore: listenBefore, +      listen: listen, +      push: push, +      replace: replace, +      createPath: createPath, +      createHref: createHref, +      createLocation: createLocation, + +      pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'), +      replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead') +    }); +  }; +} + +exports['default'] = useQueries; +module.exports = exports['default']; +}).call(this,require('_process')) + +},{"./PathUtils":11,"./deprecate":18,"./runTransitionHook":19,"_process":23,"query-string":24,"warning":232}],22:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -335,11 +2044,9 @@ module.exports = Dispatcher;   * This source code is licensed under the BSD-style license found in the   * LICENSE file in the root directory of this source tree. An additional grant   * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule invariant   */ -"use strict"; +'use strict';  /**   * Use invariant() to assert state which your program assumes to be true. @@ -352,7 +2059,7 @@ module.exports = Dispatcher;   * will remain to ensure logic does not differ in production.   */ -var invariant = function (condition, format, a, b, c, d, e, f) { +var invariant = function(condition, format, a, b, c, d, e, f) {    if (process.env.NODE_ENV !== 'production') {      if (format === undefined) {        throw new Error('invariant requires an error message argument'); @@ -362,13 +2069,17 @@ var invariant = function (condition, format, a, b, c, d, e, f) {    if (!condition) {      var error;      if (format === undefined) { -      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); +      error = new Error( +        'Minified exception occurred; use the non-minified dev environment ' + +        'for the full error message and additional helpful warnings.' +      );      } else {        var args = [a, b, c, d, e, f];        var argIndex = 0; -      error = new Error('Invariant Violation: ' + format.replace(/%s/g, function () { -        return args[argIndex++]; -      })); +      error = new Error( +        format.replace(/%s/g, function() { return args[argIndex++]; }) +      ); +      error.name = 'Invariant Violation';      }      error.framesToPop = 1; // we don't care about invariant's own frame @@ -377,9 +2088,171 @@ var invariant = function (condition, format, a, b, c, d, e, f) {  };  module.exports = invariant; +  }).call(this,require('_process')) -},{"_process":1}],4:[function(require,module,exports){ +},{"_process":23}],23:[function(require,module,exports){ +// shim for using process in browser + +var process = module.exports = {}; +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { +    draining = false; +    if (currentQueue.length) { +        queue = currentQueue.concat(queue); +    } else { +        queueIndex = -1; +    } +    if (queue.length) { +        drainQueue(); +    } +} + +function drainQueue() { +    if (draining) { +        return; +    } +    var timeout = setTimeout(cleanUpNextTick); +    draining = true; + +    var len = queue.length; +    while(len) { +        currentQueue = queue; +        queue = []; +        while (++queueIndex < len) { +            if (currentQueue) { +                currentQueue[queueIndex].run(); +            } +        } +        queueIndex = -1; +        len = queue.length; +    } +    currentQueue = null; +    draining = false; +    clearTimeout(timeout); +} + +process.nextTick = function (fun) { +    var args = new Array(arguments.length - 1); +    if (arguments.length > 1) { +        for (var i = 1; i < arguments.length; i++) { +            args[i - 1] = arguments[i]; +        } +    } +    queue.push(new Item(fun, args)); +    if (queue.length === 1 && !draining) { +        setTimeout(drainQueue, 0); +    } +}; + +// v8 likes predictible objects +function Item(fun, array) { +    this.fun = fun; +    this.array = array; +} +Item.prototype.run = function () { +    this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { +    throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { +    throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],24:[function(require,module,exports){ +'use strict'; +var strictUriEncode = require('strict-uri-encode'); + +exports.extract = function (str) { +	return str.split('?')[1] || ''; +}; + +exports.parse = function (str) { +	if (typeof str !== 'string') { +		return {}; +	} + +	str = str.trim().replace(/^(\?|#|&)/, ''); + +	if (!str) { +		return {}; +	} + +	return str.split('&').reduce(function (ret, param) { +		var parts = param.replace(/\+/g, ' ').split('='); +		// Firefox (pre 40) decodes `%3D` to `=` +		// https://github.com/sindresorhus/query-string/pull/37 +		var key = parts.shift(); +		var val = parts.length > 0 ? parts.join('=') : undefined; + +		key = decodeURIComponent(key); + +		// missing `=` should be `null`: +		// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters +		val = val === undefined ? null : decodeURIComponent(val); + +		if (!ret.hasOwnProperty(key)) { +			ret[key] = val; +		} else if (Array.isArray(ret[key])) { +			ret[key].push(val); +		} else { +			ret[key] = [ret[key], val]; +		} + +		return ret; +	}, {}); +}; + +exports.stringify = function (obj) { +	return obj ? Object.keys(obj).sort().map(function (key) { +		var val = obj[key]; + +		if (val === undefined) { +			return ''; +		} + +		if (val === null) { +			return key; +		} + +		if (Array.isArray(val)) { +			return val.slice().sort().map(function (val2) { +				return strictUriEncode(key) + '=' + strictUriEncode(val2); +			}).join('&'); +		} + +		return strictUriEncode(key) + '=' + strictUriEncode(val); +	}).filter(function (x) { +		return x.length > 0; +	}).join('&') : ''; +}; + +},{"strict-uri-encode":231}],25:[function(require,module,exports){  "use strict";  exports.__esModule = true; @@ -470,7 +2343,7 @@ function mapAsync(array, work, callback) {      });    });  } -},{}],5:[function(require,module,exports){ +},{}],26:[function(require,module,exports){  (function (process){  'use strict'; @@ -504,7 +2377,7 @@ exports['default'] = History;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./PropTypes":12,"./routerWarning":34,"_process":1}],6:[function(require,module,exports){ +},{"./PropTypes":33,"./routerWarning":55,"_process":23}],27:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -535,7 +2408,7 @@ var IndexLink = _react2['default'].createClass({  exports['default'] = IndexLink;  module.exports = exports['default']; -},{"./Link":10,"react":"react"}],7:[function(require,module,exports){ +},{"./Link":31,"react":"react"}],28:[function(require,module,exports){  (function (process){  'use strict'; @@ -603,7 +2476,7 @@ exports['default'] = IndexRedirect;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./PropTypes":12,"./Redirect":13,"./routerWarning":34,"_process":1,"invariant":58,"react":"react"}],8:[function(require,module,exports){ +},{"./PropTypes":33,"./Redirect":34,"./routerWarning":55,"_process":23,"invariant":22,"react":"react"}],29:[function(require,module,exports){  (function (process){  'use strict'; @@ -668,7 +2541,7 @@ exports['default'] = IndexRoute;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./PropTypes":12,"./RouteUtils":16,"./routerWarning":34,"_process":1,"invariant":58,"react":"react"}],9:[function(require,module,exports){ +},{"./PropTypes":33,"./RouteUtils":37,"./routerWarning":55,"_process":23,"invariant":22,"react":"react"}],30:[function(require,module,exports){  (function (process){  'use strict'; @@ -741,7 +2614,7 @@ exports['default'] = Lifecycle;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./routerWarning":34,"_process":1,"invariant":58,"react":"react"}],10:[function(require,module,exports){ +},{"./routerWarning":55,"_process":23,"invariant":22,"react":"react"}],31:[function(require,module,exports){  (function (process){  'use strict'; @@ -909,7 +2782,7 @@ exports['default'] = Link;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./routerWarning":34,"_process":1,"react":"react"}],11:[function(require,module,exports){ +},{"./routerWarning":55,"_process":23,"react":"react"}],32:[function(require,module,exports){  (function (process){  'use strict'; @@ -1140,7 +3013,7 @@ function formatPattern(pattern, params) {  }  }).call(this,require('_process')) -},{"_process":1,"invariant":58}],12:[function(require,module,exports){ +},{"_process":23,"invariant":22}],33:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -1194,7 +3067,7 @@ exports['default'] = {    components: components,    route: route  }; -},{"react":"react"}],13:[function(require,module,exports){ +},{"react":"react"}],34:[function(require,module,exports){  (function (process){  'use strict'; @@ -1301,7 +3174,7 @@ exports['default'] = Redirect;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./PatternUtils":11,"./PropTypes":12,"./RouteUtils":16,"_process":1,"invariant":58,"react":"react"}],14:[function(require,module,exports){ +},{"./PatternUtils":32,"./PropTypes":33,"./RouteUtils":37,"_process":23,"invariant":22,"react":"react"}],35:[function(require,module,exports){  (function (process){  'use strict'; @@ -1361,7 +3234,7 @@ exports['default'] = Route;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./PropTypes":12,"./RouteUtils":16,"_process":1,"invariant":58,"react":"react"}],15:[function(require,module,exports){ +},{"./PropTypes":33,"./RouteUtils":37,"_process":23,"invariant":22,"react":"react"}],36:[function(require,module,exports){  (function (process){  'use strict'; @@ -1411,7 +3284,7 @@ exports['default'] = RouteContext;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./routerWarning":34,"_process":1,"react":"react"}],16:[function(require,module,exports){ +},{"./routerWarning":55,"_process":23,"react":"react"}],37:[function(require,module,exports){  (function (process){  'use strict'; @@ -1529,7 +3402,7 @@ function createRoutes(routes) {  }  }).call(this,require('_process')) -},{"./routerWarning":34,"_process":1,"react":"react"}],17:[function(require,module,exports){ +},{"./routerWarning":55,"_process":23,"react":"react"}],38:[function(require,module,exports){  (function (process){  'use strict'; @@ -1743,7 +3616,7 @@ exports['default'] = Router;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./PropTypes":12,"./RouteUtils":16,"./RouterContext":18,"./RouterUtils":19,"./createTransitionManager":26,"./routerWarning":34,"_process":1,"history/lib/createHashHistory":45,"history/lib/useQueries":52,"react":"react"}],18:[function(require,module,exports){ +},{"./PropTypes":33,"./RouteUtils":37,"./RouterContext":39,"./RouterUtils":40,"./createTransitionManager":47,"./routerWarning":55,"_process":23,"history/lib/createHashHistory":14,"history/lib/useQueries":21,"react":"react"}],39:[function(require,module,exports){  (function (process){  'use strict'; @@ -1901,7 +3774,7 @@ exports['default'] = RouterContext;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./RouteUtils":16,"./deprecateObjectProperties":27,"./getRouteParams":29,"./routerWarning":34,"_process":1,"invariant":58,"react":"react"}],19:[function(require,module,exports){ +},{"./RouteUtils":37,"./deprecateObjectProperties":48,"./getRouteParams":50,"./routerWarning":55,"_process":23,"invariant":22,"react":"react"}],40:[function(require,module,exports){  (function (process){  'use strict'; @@ -1938,7 +3811,7 @@ function createRoutingHistory(history, transitionManager) {  }  }).call(this,require('_process')) -},{"./deprecateObjectProperties":27,"_process":1}],20:[function(require,module,exports){ +},{"./deprecateObjectProperties":48,"_process":23}],41:[function(require,module,exports){  (function (process){  'use strict'; @@ -1974,7 +3847,7 @@ exports['default'] = RoutingContext;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./RouterContext":18,"./routerWarning":34,"_process":1,"react":"react"}],21:[function(require,module,exports){ +},{"./RouterContext":39,"./routerWarning":55,"_process":23,"react":"react"}],42:[function(require,module,exports){  (function (process){  'use strict'; @@ -2067,7 +3940,7 @@ function runLeaveHooks(routes) {  }  }).call(this,require('_process')) -},{"./AsyncUtils":4,"./routerWarning":34,"_process":1}],22:[function(require,module,exports){ +},{"./AsyncUtils":25,"./routerWarning":55,"_process":23}],43:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2084,7 +3957,7 @@ var _createRouterHistory2 = _interopRequireDefault(_createRouterHistory);  exports['default'] = _createRouterHistory2['default'](_historyLibCreateBrowserHistory2['default']);  module.exports = exports['default']; -},{"./createRouterHistory":25,"history/lib/createBrowserHistory":43}],23:[function(require,module,exports){ +},{"./createRouterHistory":46,"history/lib/createBrowserHistory":12}],44:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2141,7 +4014,7 @@ function computeChangedRoutes(prevState, nextState) {  exports['default'] = computeChangedRoutes;  module.exports = exports['default']; -},{"./PatternUtils":11}],24:[function(require,module,exports){ +},{"./PatternUtils":32}],45:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2175,7 +4048,7 @@ function createMemoryHistory(options) {  }  module.exports = exports['default']; -},{"history/lib/createMemoryHistory":48,"history/lib/useBasename":51,"history/lib/useQueries":52}],25:[function(require,module,exports){ +},{"history/lib/createMemoryHistory":17,"history/lib/useBasename":20,"history/lib/useQueries":21}],46:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2195,7 +4068,7 @@ exports['default'] = function (createHistory) {  };  module.exports = exports['default']; -},{"./useRouterHistory":35}],26:[function(require,module,exports){ +},{"./useRouterHistory":56}],47:[function(require,module,exports){  (function (process){  'use strict'; @@ -2495,7 +4368,7 @@ function createTransitionManager(history, routes) {  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./TransitionUtils":21,"./computeChangedRoutes":23,"./getComponents":28,"./isActive":31,"./matchRoutes":33,"./routerWarning":34,"_process":1,"history/lib/Actions":37}],27:[function(require,module,exports){ +},{"./TransitionUtils":42,"./computeChangedRoutes":44,"./getComponents":49,"./isActive":52,"./matchRoutes":54,"./routerWarning":55,"_process":23,"history/lib/Actions":6}],48:[function(require,module,exports){  (function (process){  /*eslint no-empty: 0*/  'use strict'; @@ -2556,7 +4429,7 @@ function deprecateObjectProperties(object, message) {  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./routerWarning":34,"_process":1}],28:[function(require,module,exports){ +},{"./routerWarning":55,"_process":23}],49:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2590,7 +4463,7 @@ function getComponents(nextState, callback) {  exports['default'] = getComponents;  module.exports = exports['default']; -},{"./AsyncUtils":4}],29:[function(require,module,exports){ +},{"./AsyncUtils":25}],50:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2615,7 +4488,7 @@ function getRouteParams(route, params) {  exports['default'] = getRouteParams;  module.exports = exports['default']; -},{"./PatternUtils":11}],30:[function(require,module,exports){ +},{"./PatternUtils":32}],51:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2632,7 +4505,7 @@ var _createRouterHistory2 = _interopRequireDefault(_createRouterHistory);  exports['default'] = _createRouterHistory2['default'](_historyLibCreateHashHistory2['default']);  module.exports = exports['default']; -},{"./createRouterHistory":25,"history/lib/createHashHistory":45}],31:[function(require,module,exports){ +},{"./createRouterHistory":46,"history/lib/createHashHistory":14}],52:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -2760,7 +4633,7 @@ function isActive(_ref, indexOnly, currentLocation, routes, params) {  }  module.exports = exports['default']; -},{"./PatternUtils":11}],32:[function(require,module,exports){ +},{"./PatternUtils":32}],53:[function(require,module,exports){  (function (process){  'use strict'; @@ -2845,7 +4718,7 @@ exports['default'] = match;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./RouteUtils":16,"./RouterUtils":19,"./createMemoryHistory":24,"./createTransitionManager":26,"_process":1,"invariant":58}],33:[function(require,module,exports){ +},{"./RouteUtils":37,"./RouterUtils":40,"./createMemoryHistory":45,"./createTransitionManager":47,"_process":23,"invariant":22}],54:[function(require,module,exports){  (function (process){  'use strict'; @@ -3055,7 +4928,7 @@ exports['default'] = matchRoutes;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./AsyncUtils":4,"./PatternUtils":11,"./RouteUtils":16,"./routerWarning":34,"_process":1}],34:[function(require,module,exports){ +},{"./AsyncUtils":25,"./PatternUtils":32,"./RouteUtils":37,"./routerWarning":55,"_process":23}],55:[function(require,module,exports){  (function (process){  'use strict'; @@ -3081,7 +4954,7 @@ function routerWarning(falseToWarn, message) {  module.exports = exports['default'];  }).call(this,require('_process')) -},{"_process":1,"warning":59}],35:[function(require,module,exports){ +},{"_process":23,"warning":232}],56:[function(require,module,exports){  'use strict';  exports.__esModule = true; @@ -3106,7 +4979,7 @@ function useRouterHistory(createHistory) {  }  module.exports = exports['default']; -},{"history/lib/useBasename":51,"history/lib/useQueries":52}],36:[function(require,module,exports){ +},{"history/lib/useBasename":20,"history/lib/useQueries":21}],57:[function(require,module,exports){  (function (process){  'use strict'; @@ -3161,1953 +5034,7 @@ exports['default'] = useRoutes;  module.exports = exports['default'];  }).call(this,require('_process')) -},{"./createTransitionManager":26,"./routerWarning":34,"_process":1,"history/lib/useQueries":52}],37:[function(require,module,exports){ -/** - * Indicates that navigation was caused by a call to history.push. - */ -'use strict'; - -exports.__esModule = true; -var PUSH = 'PUSH'; - -exports.PUSH = PUSH; -/** - * Indicates that navigation was caused by a call to history.replace. - */ -var REPLACE = 'REPLACE'; - -exports.REPLACE = REPLACE; -/** - * Indicates that navigation was caused by some other action such - * as using a browser's back/forward buttons and/or manually manipulating - * the URL in a browser's location bar. This is the default. - * - * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate - * for more information. - */ -var POP = 'POP'; - -exports.POP = POP; -exports['default'] = { -  PUSH: PUSH, -  REPLACE: REPLACE, -  POP: POP -}; -},{}],38:[function(require,module,exports){ -"use strict"; - -exports.__esModule = true; -exports.loopAsync = loopAsync; - -function loopAsync(turns, work, callback) { -  var currentTurn = 0; -  var isDone = false; - -  function done() { -    isDone = true; -    callback.apply(this, arguments); -  } - -  function next() { -    if (isDone) return; - -    if (currentTurn < turns) { -      work.call(this, currentTurn++, next, done); -    } else { -      done.apply(this, arguments); -    } -  } - -  next(); -} -},{}],39:[function(require,module,exports){ -(function (process){ -/*eslint-disable no-empty */ -'use strict'; - -exports.__esModule = true; -exports.saveState = saveState; -exports.readState = readState; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -var KeyPrefix = '@@History/'; -var QuotaExceededErrors = ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR']; - -var SecurityError = 'SecurityError'; - -function createKey(key) { -  return KeyPrefix + key; -} - -function saveState(key, state) { -  try { -    if (state == null) { -      window.sessionStorage.removeItem(createKey(key)); -    } else { -      window.sessionStorage.setItem(createKey(key), JSON.stringify(state)); -    } -  } catch (error) { -    if (error.name === SecurityError) { -      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any -      // attempt to access window.sessionStorage. -      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined; - -      return; -    } - -    if (QuotaExceededErrors.indexOf(error.name) >= 0 && window.sessionStorage.length === 0) { -      // Safari "private mode" throws QuotaExceededError. -      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined; - -      return; -    } - -    throw error; -  } -} - -function readState(key) { -  var json = undefined; -  try { -    json = window.sessionStorage.getItem(createKey(key)); -  } catch (error) { -    if (error.name === SecurityError) { -      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any -      // attempt to access window.sessionStorage. -      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined; - -      return null; -    } -  } - -  if (json) { -    try { -      return JSON.parse(json); -    } catch (error) { -      // Ignore invalid JSON. -    } -  } - -  return null; -} -}).call(this,require('_process')) - -},{"_process":1,"warning":59}],40:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; -exports.addEventListener = addEventListener; -exports.removeEventListener = removeEventListener; -exports.getHashPath = getHashPath; -exports.replaceHashPath = replaceHashPath; -exports.getWindowPath = getWindowPath; -exports.go = go; -exports.getUserConfirmation = getUserConfirmation; -exports.supportsHistory = supportsHistory; -exports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash; - -function addEventListener(node, event, listener) { -  if (node.addEventListener) { -    node.addEventListener(event, listener, false); -  } else { -    node.attachEvent('on' + event, listener); -  } -} - -function removeEventListener(node, event, listener) { -  if (node.removeEventListener) { -    node.removeEventListener(event, listener, false); -  } else { -    node.detachEvent('on' + event, listener); -  } -} - -function getHashPath() { -  // We can't use window.location.hash here because it's not -  // consistent across browsers - Firefox will pre-decode it! -  return window.location.href.split('#')[1] || ''; -} - -function replaceHashPath(path) { -  window.location.replace(window.location.pathname + window.location.search + '#' + path); -} - -function getWindowPath() { -  return window.location.pathname + window.location.search + window.location.hash; -} - -function go(n) { -  if (n) window.history.go(n); -} - -function getUserConfirmation(message, callback) { -  callback(window.confirm(message)); -} - -/** - * Returns true if the HTML5 history API is supported. Taken from Modernizr. - * - * https://github.com/Modernizr/Modernizr/blob/master/LICENSE - * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js - * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586 - */ - -function supportsHistory() { -  var ua = navigator.userAgent; -  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) { -    return false; -  } -  return window.history && 'pushState' in window.history; -} - -/** - * Returns false if using go(n) with hash history causes a full page reload. - */ - -function supportsGoWithoutReloadUsingHash() { -  var ua = navigator.userAgent; -  return ua.indexOf('Firefox') === -1; -} -},{}],41:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); -exports.canUseDOM = canUseDOM; -},{}],42:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; -exports.extractPath = extractPath; -exports.parsePath = parsePath; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -function extractPath(string) { -  var match = string.match(/^https?:\/\/[^\/]*/); - -  if (match == null) return string; - -  return string.substring(match[0].length); -} - -function parsePath(path) { -  var pathname = extractPath(path); -  var search = ''; -  var hash = ''; - -  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; - -  var hashIndex = pathname.indexOf('#'); -  if (hashIndex !== -1) { -    hash = pathname.substring(hashIndex); -    pathname = pathname.substring(0, hashIndex); -  } - -  var searchIndex = pathname.indexOf('?'); -  if (searchIndex !== -1) { -    search = pathname.substring(searchIndex); -    pathname = pathname.substring(0, searchIndex); -  } - -  if (pathname === '') pathname = '/'; - -  return { -    pathname: pathname, -    search: search, -    hash: hash -  }; -} -}).call(this,require('_process')) - -},{"_process":1,"warning":59}],43:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _invariant = require('invariant'); - -var _invariant2 = _interopRequireDefault(_invariant); - -var _Actions = require('./Actions'); - -var _PathUtils = require('./PathUtils'); - -var _ExecutionEnvironment = require('./ExecutionEnvironment'); - -var _DOMUtils = require('./DOMUtils'); - -var _DOMStateStorage = require('./DOMStateStorage'); - -var _createDOMHistory = require('./createDOMHistory'); - -var _createDOMHistory2 = _interopRequireDefault(_createDOMHistory); - -/** - * Creates and returns a history object that uses HTML5's history API - * (pushState, replaceState, and the popstate event) to manage history. - * This is the recommended method of managing history in browsers because - * it provides the cleanest URLs. - * - * Note: In browsers that do not support the HTML5 history API full - * page reloads will be used to preserve URLs. - */ -function createBrowserHistory() { -  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - -  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined; - -  var forceRefresh = options.forceRefresh; - -  var isSupported = _DOMUtils.supportsHistory(); -  var useRefresh = !isSupported || forceRefresh; - -  function getCurrentLocation(historyState) { -    historyState = historyState || window.history.state || {}; - -    var path = _DOMUtils.getWindowPath(); -    var _historyState = historyState; -    var key = _historyState.key; - -    var state = undefined; -    if (key) { -      state = _DOMStateStorage.readState(key); -    } else { -      state = null; -      key = history.createKey(); - -      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path); -    } - -    var location = _PathUtils.parsePath(path); - -    return history.createLocation(_extends({}, location, { state: state }), undefined, key); -  } - -  function startPopStateListener(_ref) { -    var transitionTo = _ref.transitionTo; - -    function popStateListener(event) { -      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit. - -      transitionTo(getCurrentLocation(event.state)); -    } - -    _DOMUtils.addEventListener(window, 'popstate', popStateListener); - -    return function () { -      _DOMUtils.removeEventListener(window, 'popstate', popStateListener); -    }; -  } - -  function finishTransition(location) { -    var basename = location.basename; -    var pathname = location.pathname; -    var search = location.search; -    var hash = location.hash; -    var state = location.state; -    var action = location.action; -    var key = location.key; - -    if (action === _Actions.POP) return; // Nothing to do. - -    _DOMStateStorage.saveState(key, state); - -    var path = (basename || '') + pathname + search + hash; -    var historyState = { -      key: key -    }; - -    if (action === _Actions.PUSH) { -      if (useRefresh) { -        window.location.href = path; -        return false; // Prevent location update. -      } else { -          window.history.pushState(historyState, null, path); -        } -    } else { -      // REPLACE -      if (useRefresh) { -        window.location.replace(path); -        return false; // Prevent location update. -      } else { -          window.history.replaceState(historyState, null, path); -        } -    } -  } - -  var history = _createDOMHistory2['default'](_extends({}, options, { -    getCurrentLocation: getCurrentLocation, -    finishTransition: finishTransition, -    saveState: _DOMStateStorage.saveState -  })); - -  var listenerCount = 0, -      stopPopStateListener = undefined; - -  function listenBefore(listener) { -    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history); - -    var unlisten = history.listenBefore(listener); - -    return function () { -      unlisten(); - -      if (--listenerCount === 0) stopPopStateListener(); -    }; -  } - -  function listen(listener) { -    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history); - -    var unlisten = history.listen(listener); - -    return function () { -      unlisten(); - -      if (--listenerCount === 0) stopPopStateListener(); -    }; -  } - -  // deprecated -  function registerTransitionHook(hook) { -    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history); - -    history.registerTransitionHook(hook); -  } - -  // deprecated -  function unregisterTransitionHook(hook) { -    history.unregisterTransitionHook(hook); - -    if (--listenerCount === 0) stopPopStateListener(); -  } - -  return _extends({}, history, { -    listenBefore: listenBefore, -    listen: listen, -    registerTransitionHook: registerTransitionHook, -    unregisterTransitionHook: unregisterTransitionHook -  }); -} - -exports['default'] = createBrowserHistory; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./Actions":37,"./DOMStateStorage":39,"./DOMUtils":40,"./ExecutionEnvironment":41,"./PathUtils":42,"./createDOMHistory":44,"_process":1,"invariant":58}],44:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _invariant = require('invariant'); - -var _invariant2 = _interopRequireDefault(_invariant); - -var _ExecutionEnvironment = require('./ExecutionEnvironment'); - -var _DOMUtils = require('./DOMUtils'); - -var _createHistory = require('./createHistory'); - -var _createHistory2 = _interopRequireDefault(_createHistory); - -function createDOMHistory(options) { -  var history = _createHistory2['default'](_extends({ -    getUserConfirmation: _DOMUtils.getUserConfirmation -  }, options, { -    go: _DOMUtils.go -  })); - -  function listen(listener) { -    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined; - -    return history.listen(listener); -  } - -  return _extends({}, history, { -    listen: listen -  }); -} - -exports['default'] = createDOMHistory; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./DOMUtils":40,"./ExecutionEnvironment":41,"./createHistory":46,"_process":1,"invariant":58}],45:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -var _invariant = require('invariant'); - -var _invariant2 = _interopRequireDefault(_invariant); - -var _Actions = require('./Actions'); - -var _PathUtils = require('./PathUtils'); - -var _ExecutionEnvironment = require('./ExecutionEnvironment'); - -var _DOMUtils = require('./DOMUtils'); - -var _DOMStateStorage = require('./DOMStateStorage'); - -var _createDOMHistory = require('./createDOMHistory'); - -var _createDOMHistory2 = _interopRequireDefault(_createDOMHistory); - -function isAbsolutePath(path) { -  return typeof path === 'string' && path.charAt(0) === '/'; -} - -function ensureSlash() { -  var path = _DOMUtils.getHashPath(); - -  if (isAbsolutePath(path)) return true; - -  _DOMUtils.replaceHashPath('/' + path); - -  return false; -} - -function addQueryStringValueToPath(path, key, value) { -  return path + (path.indexOf('?') === -1 ? '?' : '&') + (key + '=' + value); -} - -function stripQueryStringValueFromPath(path, key) { -  return path.replace(new RegExp('[?&]?' + key + '=[a-zA-Z0-9]+'), ''); -} - -function getQueryStringValueFromPath(path, key) { -  var match = path.match(new RegExp('\\?.*?\\b' + key + '=(.+?)\\b')); -  return match && match[1]; -} - -var DefaultQueryKey = '_k'; - -function createHashHistory() { -  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - -  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Hash history needs a DOM') : _invariant2['default'](false) : undefined; - -  var queryKey = options.queryKey; - -  if (queryKey === undefined || !!queryKey) queryKey = typeof queryKey === 'string' ? queryKey : DefaultQueryKey; - -  function getCurrentLocation() { -    var path = _DOMUtils.getHashPath(); - -    var key = undefined, -        state = undefined; -    if (queryKey) { -      key = getQueryStringValueFromPath(path, queryKey); -      path = stripQueryStringValueFromPath(path, queryKey); - -      if (key) { -        state = _DOMStateStorage.readState(key); -      } else { -        state = null; -        key = history.createKey(); -        _DOMUtils.replaceHashPath(addQueryStringValueToPath(path, queryKey, key)); -      } -    } else { -      key = state = null; -    } - -    var location = _PathUtils.parsePath(path); - -    return history.createLocation(_extends({}, location, { state: state }), undefined, key); -  } - -  function startHashChangeListener(_ref) { -    var transitionTo = _ref.transitionTo; - -    function hashChangeListener() { -      if (!ensureSlash()) return; // Always make sure hashes are preceeded with a /. - -      transitionTo(getCurrentLocation()); -    } - -    ensureSlash(); -    _DOMUtils.addEventListener(window, 'hashchange', hashChangeListener); - -    return function () { -      _DOMUtils.removeEventListener(window, 'hashchange', hashChangeListener); -    }; -  } - -  function finishTransition(location) { -    var basename = location.basename; -    var pathname = location.pathname; -    var search = location.search; -    var state = location.state; -    var action = location.action; -    var key = location.key; - -    if (action === _Actions.POP) return; // Nothing to do. - -    var path = (basename || '') + pathname + search; - -    if (queryKey) { -      path = addQueryStringValueToPath(path, queryKey, key); -      _DOMStateStorage.saveState(key, state); -    } else { -      // Drop key and state. -      location.key = location.state = null; -    } - -    var currentHash = _DOMUtils.getHashPath(); - -    if (action === _Actions.PUSH) { -      if (currentHash !== path) { -        window.location.hash = path; -      } else { -        process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'You cannot PUSH the same path using hash history') : undefined; -      } -    } else if (currentHash !== path) { -      // REPLACE -      _DOMUtils.replaceHashPath(path); -    } -  } - -  var history = _createDOMHistory2['default'](_extends({}, options, { -    getCurrentLocation: getCurrentLocation, -    finishTransition: finishTransition, -    saveState: _DOMStateStorage.saveState -  })); - -  var listenerCount = 0, -      stopHashChangeListener = undefined; - -  function listenBefore(listener) { -    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history); - -    var unlisten = history.listenBefore(listener); - -    return function () { -      unlisten(); - -      if (--listenerCount === 0) stopHashChangeListener(); -    }; -  } - -  function listen(listener) { -    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history); - -    var unlisten = history.listen(listener); - -    return function () { -      unlisten(); - -      if (--listenerCount === 0) stopHashChangeListener(); -    }; -  } - -  function push(location) { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || location.state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; - -    history.push(location); -  } - -  function replace(location) { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || location.state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; - -    history.replace(location); -  } - -  var goIsSupportedWithoutReload = _DOMUtils.supportsGoWithoutReloadUsingHash(); - -  function go(n) { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](goIsSupportedWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : undefined; - -    history.go(n); -  } - -  function createHref(path) { -    return '#' + history.createHref(path); -  } - -  // deprecated -  function registerTransitionHook(hook) { -    if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history); - -    history.registerTransitionHook(hook); -  } - -  // deprecated -  function unregisterTransitionHook(hook) { -    history.unregisterTransitionHook(hook); - -    if (--listenerCount === 0) stopHashChangeListener(); -  } - -  // deprecated -  function pushState(state, path) { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; - -    history.pushState(state, path); -  } - -  // deprecated -  function replaceState(state, path) { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined; - -    history.replaceState(state, path); -  } - -  return _extends({}, history, { -    listenBefore: listenBefore, -    listen: listen, -    push: push, -    replace: replace, -    go: go, -    createHref: createHref, - -    registerTransitionHook: registerTransitionHook, // deprecated - warning is in createHistory -    unregisterTransitionHook: unregisterTransitionHook, // deprecated - warning is in createHistory -    pushState: pushState, // deprecated - warning is in createHistory -    replaceState: replaceState // deprecated - warning is in createHistory -  }); -} - -exports['default'] = createHashHistory; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./Actions":37,"./DOMStateStorage":39,"./DOMUtils":40,"./ExecutionEnvironment":41,"./PathUtils":42,"./createDOMHistory":44,"_process":1,"invariant":58,"warning":59}],46:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -var _deepEqual = require('deep-equal'); - -var _deepEqual2 = _interopRequireDefault(_deepEqual); - -var _PathUtils = require('./PathUtils'); - -var _AsyncUtils = require('./AsyncUtils'); - -var _Actions = require('./Actions'); - -var _createLocation2 = require('./createLocation'); - -var _createLocation3 = _interopRequireDefault(_createLocation2); - -var _runTransitionHook = require('./runTransitionHook'); - -var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); - -var _deprecate = require('./deprecate'); - -var _deprecate2 = _interopRequireDefault(_deprecate); - -function createRandomKey(length) { -  return Math.random().toString(36).substr(2, length); -} - -function locationsAreEqual(a, b) { -  return a.pathname === b.pathname && a.search === b.search && -  //a.action === b.action && // Different action !== location change. -  a.key === b.key && _deepEqual2['default'](a.state, b.state); -} - -var DefaultKeyLength = 6; - -function createHistory() { -  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; -  var getCurrentLocation = options.getCurrentLocation; -  var finishTransition = options.finishTransition; -  var saveState = options.saveState; -  var go = options.go; -  var keyLength = options.keyLength; -  var getUserConfirmation = options.getUserConfirmation; - -  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength; - -  var transitionHooks = []; - -  function listenBefore(hook) { -    transitionHooks.push(hook); - -    return function () { -      transitionHooks = transitionHooks.filter(function (item) { -        return item !== hook; -      }); -    }; -  } - -  var allKeys = []; -  var changeListeners = []; -  var location = undefined; - -  function getCurrent() { -    if (pendingLocation && pendingLocation.action === _Actions.POP) { -      return allKeys.indexOf(pendingLocation.key); -    } else if (location) { -      return allKeys.indexOf(location.key); -    } else { -      return -1; -    } -  } - -  function updateLocation(newLocation) { -    var current = getCurrent(); - -    location = newLocation; - -    if (location.action === _Actions.PUSH) { -      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]); -    } else if (location.action === _Actions.REPLACE) { -      allKeys[current] = location.key; -    } - -    changeListeners.forEach(function (listener) { -      listener(location); -    }); -  } - -  function listen(listener) { -    changeListeners.push(listener); - -    if (location) { -      listener(location); -    } else { -      var _location = getCurrentLocation(); -      allKeys = [_location.key]; -      updateLocation(_location); -    } - -    return function () { -      changeListeners = changeListeners.filter(function (item) { -        return item !== listener; -      }); -    }; -  } - -  function confirmTransitionTo(location, callback) { -    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) { -      _runTransitionHook2['default'](transitionHooks[index], location, function (result) { -        if (result != null) { -          done(result); -        } else { -          next(); -        } -      }); -    }, function (message) { -      if (getUserConfirmation && typeof message === 'string') { -        getUserConfirmation(message, function (ok) { -          callback(ok !== false); -        }); -      } else { -        callback(message !== false); -      } -    }); -  } - -  var pendingLocation = undefined; - -  function transitionTo(nextLocation) { -    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do. - -    pendingLocation = nextLocation; - -    confirmTransitionTo(nextLocation, function (ok) { -      if (pendingLocation !== nextLocation) return; // Transition was interrupted. - -      if (ok) { -        // treat PUSH to current path like REPLACE to be consistent with browsers -        if (nextLocation.action === _Actions.PUSH) { -          var prevPath = createPath(location); -          var nextPath = createPath(nextLocation); - -          if (nextPath === prevPath && _deepEqual2['default'](location.state, nextLocation.state)) nextLocation.action = _Actions.REPLACE; -        } - -        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation); -      } else if (location && nextLocation.action === _Actions.POP) { -        var prevIndex = allKeys.indexOf(location.key); -        var nextIndex = allKeys.indexOf(nextLocation.key); - -        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL. -      } -    }); -  } - -  function push(location) { -    transitionTo(createLocation(location, _Actions.PUSH, createKey())); -  } - -  function replace(location) { -    transitionTo(createLocation(location, _Actions.REPLACE, createKey())); -  } - -  function goBack() { -    go(-1); -  } - -  function goForward() { -    go(1); -  } - -  function createKey() { -    return createRandomKey(keyLength); -  } - -  function createPath(location) { -    if (location == null || typeof location === 'string') return location; - -    var pathname = location.pathname; -    var search = location.search; -    var hash = location.hash; - -    var result = pathname; - -    if (search) result += search; - -    if (hash) result += hash; - -    return result; -  } - -  function createHref(location) { -    return createPath(location); -  } - -  function createLocation(location, action) { -    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2]; - -    if (typeof action === 'object') { -      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'The state (2nd) argument to history.createLocation is deprecated; use a ' + 'location descriptor instead') : undefined; - -      if (typeof location === 'string') location = _PathUtils.parsePath(location); - -      location = _extends({}, location, { state: action }); - -      action = key; -      key = arguments[3] || createKey(); -    } - -    return _createLocation3['default'](location, action, key); -  } - -  // deprecated -  function setState(state) { -    if (location) { -      updateLocationState(location, state); -      updateLocation(location); -    } else { -      updateLocationState(getCurrentLocation(), state); -    } -  } - -  function updateLocationState(location, state) { -    location.state = _extends({}, location.state, state); -    saveState(location.key, location.state); -  } - -  // deprecated -  function registerTransitionHook(hook) { -    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook); -  } - -  // deprecated -  function unregisterTransitionHook(hook) { -    transitionHooks = transitionHooks.filter(function (item) { -      return item !== hook; -    }); -  } - -  // deprecated -  function pushState(state, path) { -    if (typeof path === 'string') path = _PathUtils.parsePath(path); - -    push(_extends({ state: state }, path)); -  } - -  // deprecated -  function replaceState(state, path) { -    if (typeof path === 'string') path = _PathUtils.parsePath(path); - -    replace(_extends({ state: state }, path)); -  } - -  return { -    listenBefore: listenBefore, -    listen: listen, -    transitionTo: transitionTo, -    push: push, -    replace: replace, -    go: go, -    goBack: goBack, -    goForward: goForward, -    createKey: createKey, -    createPath: createPath, -    createHref: createHref, -    createLocation: createLocation, - -    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'), -    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'), -    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'), -    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'), -    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead') -  }; -} - -exports['default'] = createHistory; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./Actions":37,"./AsyncUtils":38,"./PathUtils":42,"./createLocation":47,"./deprecate":49,"./runTransitionHook":50,"_process":1,"deep-equal":53,"warning":59}],47:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -var _Actions = require('./Actions'); - -var _PathUtils = require('./PathUtils'); - -function createLocation() { -  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0]; -  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1]; -  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2]; - -  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3]; - -  if (typeof location === 'string') location = _PathUtils.parsePath(location); - -  if (typeof action === 'object') { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'The state (2nd) argument to createLocation is deprecated; use a ' + 'location descriptor instead') : undefined; - -    location = _extends({}, location, { state: action }); - -    action = key || _Actions.POP; -    key = _fourthArg; -  } - -  var pathname = location.pathname || '/'; -  var search = location.search || ''; -  var hash = location.hash || ''; -  var state = location.state || null; - -  return { -    pathname: pathname, -    search: search, -    hash: hash, -    state: state, -    action: action, -    key: key -  }; -} - -exports['default'] = createLocation; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./Actions":37,"./PathUtils":42,"_process":1,"warning":59}],48:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -var _invariant = require('invariant'); - -var _invariant2 = _interopRequireDefault(_invariant); - -var _PathUtils = require('./PathUtils'); - -var _Actions = require('./Actions'); - -var _createHistory = require('./createHistory'); - -var _createHistory2 = _interopRequireDefault(_createHistory); - -function createStateStorage(entries) { -  return entries.filter(function (entry) { -    return entry.state; -  }).reduce(function (memo, entry) { -    memo[entry.key] = entry.state; -    return memo; -  }, {}); -} - -function createMemoryHistory() { -  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - -  if (Array.isArray(options)) { -    options = { entries: options }; -  } else if (typeof options === 'string') { -    options = { entries: [options] }; -  } - -  var history = _createHistory2['default'](_extends({}, options, { -    getCurrentLocation: getCurrentLocation, -    finishTransition: finishTransition, -    saveState: saveState, -    go: go -  })); - -  var _options = options; -  var entries = _options.entries; -  var current = _options.current; - -  if (typeof entries === 'string') { -    entries = [entries]; -  } else if (!Array.isArray(entries)) { -    entries = ['/']; -  } - -  entries = entries.map(function (entry) { -    var key = history.createKey(); - -    if (typeof entry === 'string') return { pathname: entry, key: key }; - -    if (typeof entry === 'object' && entry) return _extends({}, entry, { key: key }); - -    !false ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Unable to create history entry from %s', entry) : _invariant2['default'](false) : undefined; -  }); - -  if (current == null) { -    current = entries.length - 1; -  } else { -    !(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; -  } - -  var storage = createStateStorage(entries); - -  function saveState(key, state) { -    storage[key] = state; -  } - -  function readState(key) { -    return storage[key]; -  } - -  function getCurrentLocation() { -    var entry = entries[current]; -    var key = entry.key; -    var basename = entry.basename; -    var pathname = entry.pathname; -    var search = entry.search; - -    var path = (basename || '') + pathname + (search || ''); - -    var state = undefined; -    if (key) { -      state = readState(key); -    } else { -      state = null; -      key = history.createKey(); -      entry.key = key; -    } - -    var location = _PathUtils.parsePath(path); - -    return history.createLocation(_extends({}, location, { state: state }), undefined, key); -  } - -  function canGo(n) { -    var index = current + n; -    return index >= 0 && index < entries.length; -  } - -  function go(n) { -    if (n) { -      if (!canGo(n)) { -        process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'Cannot go(%s) there is not enough history', n) : undefined; -        return; -      } - -      current += n; - -      var currentLocation = getCurrentLocation(); - -      // change action to POP -      history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP })); -    } -  } - -  function finishTransition(location) { -    switch (location.action) { -      case _Actions.PUSH: -        current += 1; - -        // if we are not on the top of stack -        // remove rest and push new -        if (current < entries.length) entries.splice(current); - -        entries.push(location); -        saveState(location.key, location.state); -        break; -      case _Actions.REPLACE: -        entries[current] = location; -        saveState(location.key, location.state); -        break; -    } -  } - -  return history; -} - -exports['default'] = createMemoryHistory; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./Actions":37,"./PathUtils":42,"./createHistory":46,"_process":1,"invariant":58,"warning":59}],49:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -function deprecate(fn, message) { -  return function () { -    process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] ' + message) : undefined; -    return fn.apply(this, arguments); -  }; -} - -exports['default'] = deprecate; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"_process":1,"warning":59}],50:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -function runTransitionHook(hook, location, callback) { -  var result = hook(location, callback); - -  if (hook.length < 2) { -    // Assume the hook runs synchronously and automatically -    // call the callback with the return value. -    callback(result); -  } else { -    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; -  } -} - -exports['default'] = runTransitionHook; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"_process":1,"warning":59}],51:[function(require,module,exports){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _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; } - -var _ExecutionEnvironment = require('./ExecutionEnvironment'); - -var _PathUtils = require('./PathUtils'); - -var _runTransitionHook = require('./runTransitionHook'); - -var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); - -var _deprecate = require('./deprecate'); - -var _deprecate2 = _interopRequireDefault(_deprecate); - -function useBasename(createHistory) { -  return function () { -    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; -    var basename = options.basename; - -    var historyOptions = _objectWithoutProperties(options, ['basename']); - -    var history = createHistory(historyOptions); - -    // Automatically use the value of <base href> in HTML -    // documents as basename if it's not explicitly given. -    if (basename == null && _ExecutionEnvironment.canUseDOM) { -      var base = document.getElementsByTagName('base')[0]; - -      if (base) basename = _PathUtils.extractPath(base.href); -    } - -    function addBasename(location) { -      if (basename && location.basename == null) { -        if (location.pathname.indexOf(basename) === 0) { -          location.pathname = location.pathname.substring(basename.length); -          location.basename = basename; - -          if (location.pathname === '') location.pathname = '/'; -        } else { -          location.basename = ''; -        } -      } - -      return location; -    } - -    function prependBasename(location) { -      if (!basename) return location; - -      if (typeof location === 'string') location = _PathUtils.parsePath(location); - -      var pname = location.pathname; -      var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/'; -      var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname; -      var pathname = normalizedBasename + normalizedPathname; - -      return _extends({}, location, { -        pathname: pathname -      }); -    } - -    // Override all read methods with basename-aware versions. -    function listenBefore(hook) { -      return history.listenBefore(function (location, callback) { -        _runTransitionHook2['default'](hook, addBasename(location), callback); -      }); -    } - -    function listen(listener) { -      return history.listen(function (location) { -        listener(addBasename(location)); -      }); -    } - -    // Override all write methods with basename-aware versions. -    function push(location) { -      history.push(prependBasename(location)); -    } - -    function replace(location) { -      history.replace(prependBasename(location)); -    } - -    function createPath(location) { -      return history.createPath(prependBasename(location)); -    } - -    function createHref(location) { -      return history.createHref(prependBasename(location)); -    } - -    function createLocation(location) { -      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { -        args[_key - 1] = arguments[_key]; -      } - -      return addBasename(history.createLocation.apply(history, [prependBasename(location)].concat(args))); -    } - -    // deprecated -    function pushState(state, path) { -      if (typeof path === 'string') path = _PathUtils.parsePath(path); - -      push(_extends({ state: state }, path)); -    } - -    // deprecated -    function replaceState(state, path) { -      if (typeof path === 'string') path = _PathUtils.parsePath(path); - -      replace(_extends({ state: state }, path)); -    } - -    return _extends({}, history, { -      listenBefore: listenBefore, -      listen: listen, -      push: push, -      replace: replace, -      createPath: createPath, -      createHref: createHref, -      createLocation: createLocation, - -      pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'), -      replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead') -    }); -  }; -} - -exports['default'] = useBasename; -module.exports = exports['default']; -},{"./ExecutionEnvironment":41,"./PathUtils":42,"./deprecate":49,"./runTransitionHook":50}],52:[function(require,module,exports){ -(function (process){ -'use strict'; - -exports.__esModule = true; - -var _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; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _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; } - -var _warning = require('warning'); - -var _warning2 = _interopRequireDefault(_warning); - -var _queryString = require('query-string'); - -var _runTransitionHook = require('./runTransitionHook'); - -var _runTransitionHook2 = _interopRequireDefault(_runTransitionHook); - -var _PathUtils = require('./PathUtils'); - -var _deprecate = require('./deprecate'); - -var _deprecate2 = _interopRequireDefault(_deprecate); - -var SEARCH_BASE_KEY = '$searchBase'; - -function defaultStringifyQuery(query) { -  return _queryString.stringify(query).replace(/%20/g, '+'); -} - -var defaultParseQueryString = _queryString.parse; - -function isNestedObject(object) { -  for (var p in object) { -    if (object.hasOwnProperty(p) && typeof object[p] === 'object' && !Array.isArray(object[p]) && object[p] !== null) return true; -  }return false; -} - -/** - * Returns a new createHistory function that may be used to create - * history objects that know how to handle URL queries. - */ -function useQueries(createHistory) { -  return function () { -    var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; -    var stringifyQuery = options.stringifyQuery; -    var parseQueryString = options.parseQueryString; - -    var historyOptions = _objectWithoutProperties(options, ['stringifyQuery', 'parseQueryString']); - -    var history = createHistory(historyOptions); - -    if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery; - -    if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString; - -    function addQuery(location) { -      if (location.query == null) { -        var search = location.search; - -        location.query = parseQueryString(search.substring(1)); -        location[SEARCH_BASE_KEY] = { search: search, searchBase: '' }; -      } - -      // TODO: Instead of all the book-keeping here, this should just strip the -      // stringified query from the search. - -      return location; -    } - -    function appendQuery(location, query) { -      var _extends2; - -      var searchBaseSpec = location[SEARCH_BASE_KEY]; -      var queryString = query ? stringifyQuery(query) : ''; -      if (!searchBaseSpec && !queryString) { -        return location; -      } - -      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; - -      if (typeof location === 'string') location = _PathUtils.parsePath(location); - -      var searchBase = undefined; -      if (searchBaseSpec && location.search === searchBaseSpec.search) { -        searchBase = searchBaseSpec.searchBase; -      } else { -        searchBase = location.search || ''; -      } - -      var search = searchBase; -      if (queryString) { -        search += (search ? '&' : '?') + queryString; -      } - -      return _extends({}, location, (_extends2 = { -        search: search -      }, _extends2[SEARCH_BASE_KEY] = { search: search, searchBase: searchBase }, _extends2)); -    } - -    // Override all read methods with query-aware versions. -    function listenBefore(hook) { -      return history.listenBefore(function (location, callback) { -        _runTransitionHook2['default'](hook, addQuery(location), callback); -      }); -    } - -    function listen(listener) { -      return history.listen(function (location) { -        listener(addQuery(location)); -      }); -    } - -    // Override all write methods with query-aware versions. -    function push(location) { -      history.push(appendQuery(location, location.query)); -    } - -    function replace(location) { -      history.replace(appendQuery(location, location.query)); -    } - -    function createPath(location, query) { -      process.env.NODE_ENV !== 'production' ? _warning2['default'](!query, 'the query argument to createPath is deprecated; use a location descriptor instead') : undefined; - -      return history.createPath(appendQuery(location, query || location.query)); -    } - -    function createHref(location, query) { -      process.env.NODE_ENV !== 'production' ? _warning2['default'](!query, 'the query argument to createHref is deprecated; use a location descriptor instead') : undefined; - -      return history.createHref(appendQuery(location, query || location.query)); -    } - -    function createLocation(location) { -      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { -        args[_key - 1] = arguments[_key]; -      } - -      var fullLocation = history.createLocation.apply(history, [appendQuery(location, location.query)].concat(args)); -      if (location.query) { -        fullLocation.query = location.query; -      } -      return addQuery(fullLocation); -    } - -    // deprecated -    function pushState(state, path, query) { -      if (typeof path === 'string') path = _PathUtils.parsePath(path); - -      push(_extends({ state: state }, path, { query: query })); -    } - -    // deprecated -    function replaceState(state, path, query) { -      if (typeof path === 'string') path = _PathUtils.parsePath(path); - -      replace(_extends({ state: state }, path, { query: query })); -    } - -    return _extends({}, history, { -      listenBefore: listenBefore, -      listen: listen, -      push: push, -      replace: replace, -      createPath: createPath, -      createHref: createHref, -      createLocation: createLocation, - -      pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'), -      replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead') -    }); -  }; -} - -exports['default'] = useQueries; -module.exports = exports['default']; -}).call(this,require('_process')) - -},{"./PathUtils":42,"./deprecate":49,"./runTransitionHook":50,"_process":1,"query-string":56,"warning":59}],53:[function(require,module,exports){ -var pSlice = Array.prototype.slice; -var objectKeys = require('./lib/keys.js'); -var isArguments = require('./lib/is_arguments.js'); - -var deepEqual = module.exports = function (actual, expected, opts) { -  if (!opts) opts = {}; -  // 7.1. All identical values are equivalent, as determined by ===. -  if (actual === expected) { -    return true; - -  } else if (actual instanceof Date && expected instanceof Date) { -    return actual.getTime() === expected.getTime(); - -  // 7.3. Other pairs that do not both pass typeof value == 'object', -  // equivalence is determined by ==. -  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') { -    return opts.strict ? actual === expected : actual == expected; - -  // 7.4. For all other Object pairs, including Array objects, equivalence is -  // determined by having the same number of owned properties (as verified -  // with Object.prototype.hasOwnProperty.call), the same set of keys -  // (although not necessarily the same order), equivalent values for every -  // corresponding key, and an identical 'prototype' property. Note: this -  // accounts for both named and indexed properties on Arrays. -  } else { -    return objEquiv(actual, expected, opts); -  } -} - -function isUndefinedOrNull(value) { -  return value === null || value === undefined; -} - -function isBuffer (x) { -  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false; -  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') { -    return false; -  } -  if (x.length > 0 && typeof x[0] !== 'number') return false; -  return true; -} - -function objEquiv(a, b, opts) { -  var i, key; -  if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) -    return false; -  // an identical 'prototype' property. -  if (a.prototype !== b.prototype) return false; -  //~~~I've managed to break Object.keys through screwy arguments passing. -  //   Converting to array solves the problem. -  if (isArguments(a)) { -    if (!isArguments(b)) { -      return false; -    } -    a = pSlice.call(a); -    b = pSlice.call(b); -    return deepEqual(a, b, opts); -  } -  if (isBuffer(a)) { -    if (!isBuffer(b)) { -      return false; -    } -    if (a.length !== b.length) return false; -    for (i = 0; i < a.length; i++) { -      if (a[i] !== b[i]) return false; -    } -    return true; -  } -  try { -    var ka = objectKeys(a), -        kb = objectKeys(b); -  } catch (e) {//happens when one is a string literal and the other isn't -    return false; -  } -  // having the same number of owned properties (keys incorporates -  // hasOwnProperty) -  if (ka.length != kb.length) -    return false; -  //the same set of keys (although not necessarily the same order), -  ka.sort(); -  kb.sort(); -  //~~~cheap key test -  for (i = ka.length - 1; i >= 0; i--) { -    if (ka[i] != kb[i]) -      return false; -  } -  //equivalent values for every corresponding key, and -  //~~~possibly expensive deep test -  for (i = ka.length - 1; i >= 0; i--) { -    key = ka[i]; -    if (!deepEqual(a[key], b[key], opts)) return false; -  } -  return typeof a === typeof b; -} - -},{"./lib/is_arguments.js":54,"./lib/keys.js":55}],54:[function(require,module,exports){ -var supportsArgumentsClass = (function(){ -  return Object.prototype.toString.call(arguments) -})() == '[object Arguments]'; - -exports = module.exports = supportsArgumentsClass ? supported : unsupported; - -exports.supported = supported; -function supported(object) { -  return Object.prototype.toString.call(object) == '[object Arguments]'; -}; - -exports.unsupported = unsupported; -function unsupported(object){ -  return object && -    typeof object == 'object' && -    typeof object.length == 'number' && -    Object.prototype.hasOwnProperty.call(object, 'callee') && -    !Object.prototype.propertyIsEnumerable.call(object, 'callee') || -    false; -}; - -},{}],55:[function(require,module,exports){ -exports = module.exports = typeof Object.keys === 'function' -  ? Object.keys : shim; - -exports.shim = shim; -function shim (obj) { -  var keys = []; -  for (var key in obj) keys.push(key); -  return keys; -} - -},{}],56:[function(require,module,exports){ -'use strict'; -var strictUriEncode = require('strict-uri-encode'); - -exports.extract = function (str) { -	return str.split('?')[1] || ''; -}; - -exports.parse = function (str) { -	if (typeof str !== 'string') { -		return {}; -	} - -	str = str.trim().replace(/^(\?|#|&)/, ''); - -	if (!str) { -		return {}; -	} - -	return str.split('&').reduce(function (ret, param) { -		var parts = param.replace(/\+/g, ' ').split('='); -		// Firefox (pre 40) decodes `%3D` to `=` -		// https://github.com/sindresorhus/query-string/pull/37 -		var key = parts.shift(); -		var val = parts.length > 0 ? parts.join('=') : undefined; - -		key = decodeURIComponent(key); - -		// missing `=` should be `null`: -		// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters -		val = val === undefined ? null : decodeURIComponent(val); - -		if (!ret.hasOwnProperty(key)) { -			ret[key] = val; -		} else if (Array.isArray(ret[key])) { -			ret[key].push(val); -		} else { -			ret[key] = [ret[key], val]; -		} - -		return ret; -	}, {}); -}; - -exports.stringify = function (obj) { -	return obj ? Object.keys(obj).sort().map(function (key) { -		var val = obj[key]; - -		if (val === undefined) { -			return ''; -		} - -		if (val === null) { -			return key; -		} - -		if (Array.isArray(val)) { -			return val.slice().sort().map(function (val2) { -				return strictUriEncode(key) + '=' + strictUriEncode(val2); -			}).join('&'); -		} - -		return strictUriEncode(key) + '=' + strictUriEncode(val); -	}).filter(function (x) { -		return x.length > 0; -	}).join('&') : ''; -}; - -},{"strict-uri-encode":57}],57:[function(require,module,exports){ -'use strict'; -module.exports = function (str) { -	return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { -		return '%' + c.charCodeAt(0).toString(16).toUpperCase(); -	}); -}; - -},{}],58:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -'use strict'; - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -var invariant = function(condition, format, a, b, c, d, e, f) { -  if (process.env.NODE_ENV !== 'production') { -    if (format === undefined) { -      throw new Error('invariant requires an error message argument'); -    } -  } - -  if (!condition) { -    var error; -    if (format === undefined) { -      error = new Error( -        'Minified exception occurred; use the non-minified dev environment ' + -        'for the full error message and additional helpful warnings.' -      ); -    } else { -      var args = [a, b, c, d, e, f]; -      var argIndex = 0; -      error = new Error( -        format.replace(/%s/g, function() { return args[argIndex++]; }) -      ); -      error.name = 'Invariant Violation'; -    } - -    error.framesToPop = 1; // we don't care about invariant's own frame -    throw error; -  } -}; - -module.exports = invariant; - -}).call(this,require('_process')) - -},{"_process":1}],59:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -'use strict'; - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = function() {}; - -if (process.env.NODE_ENV !== 'production') { -  warning = function(condition, format, args) { -    var len = arguments.length; -    args = new Array(len > 2 ? len - 2 : 0); -    for (var key = 2; key < len; key++) { -      args[key - 2] = arguments[key]; -    } -    if (format === undefined) { -      throw new Error( -        '`warning(condition, format, ...args)` requires a warning ' + -        'message argument' -      ); -    } - -    if (format.length < 10 || (/^[s\W]*$/).test(format)) { -      throw new Error( -        'The warning format should be able to uniquely identify this ' + -        'warning. Please, use a more descriptive format than: ' + format -      ); -    } - -    if (!condition) { -      var argIndex = 0; -      var message = 'Warning: ' + -        format.replace(/%s/g, function() { -          return args[argIndex++]; -        }); -      if (typeof console !== 'undefined') { -        console.error(message); -      } -      try { -        // This error was thrown as a convenience so that you can use this stack -        // to find the callsite that caused this warning to fire. -        throw new Error(message); -      } catch(x) {} -    } -  }; -} - -module.exports = warning; - -}).call(this,require('_process')) - -},{"_process":1}],60:[function(require,module,exports){ +},{"./createTransitionManager":47,"./routerWarning":55,"_process":23,"history/lib/useQueries":21}],58:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -5144,7 +5071,7 @@ var AutoFocusUtils = {  };  module.exports = AutoFocusUtils; -},{"./ReactMount":130,"./findDOMNode":181,"fbjs/lib/focusNode":214}],61:[function(require,module,exports){ +},{"./ReactMount":128,"./findDOMNode":179,"fbjs/lib/focusNode":212}],59:[function(require,module,exports){  /**   * Copyright 2013-2015 Facebook, Inc.   * All rights reserved. @@ -5550,7 +5477,7 @@ var BeforeInputEventPlugin = {  };  module.exports = BeforeInputEventPlugin; -},{"./EventConstants":73,"./EventPropagators":77,"./FallbackCompositionState":78,"./SyntheticCompositionEvent":162,"./SyntheticInputEvent":166,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/keyOf":225}],62:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPropagators":75,"./FallbackCompositionState":76,"./SyntheticCompositionEvent":160,"./SyntheticInputEvent":164,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/keyOf":223}],60:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -5690,7 +5617,7 @@ var CSSProperty = {  };  module.exports = CSSProperty; -},{}],63:[function(require,module,exports){ +},{}],61:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -5869,7 +5796,7 @@ ReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', {  module.exports = CSSPropertyOperations;  }).call(this,require('_process')) -},{"./CSSProperty":62,"./ReactPerf":136,"./dangerousStyleValue":178,"_process":1,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/camelizeStyleName":208,"fbjs/lib/hyphenateStyleName":219,"fbjs/lib/memoizeStringOnly":227,"fbjs/lib/warning":232}],64:[function(require,module,exports){ +},{"./CSSProperty":60,"./ReactPerf":134,"./dangerousStyleValue":176,"_process":23,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/camelizeStyleName":206,"fbjs/lib/hyphenateStyleName":217,"fbjs/lib/memoizeStringOnly":225,"fbjs/lib/warning":230}],62:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -5966,7 +5893,7 @@ PooledClass.addPoolingTo(CallbackQueue);  module.exports = CallbackQueue;  }).call(this,require('_process')) -},{"./Object.assign":82,"./PooledClass":83,"_process":1,"fbjs/lib/invariant":220}],65:[function(require,module,exports){ +},{"./Object.assign":80,"./PooledClass":81,"_process":23,"fbjs/lib/invariant":218}],63:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -6288,7 +6215,7 @@ var ChangeEventPlugin = {  };  module.exports = ChangeEventPlugin; -},{"./EventConstants":73,"./EventPluginHub":74,"./EventPropagators":77,"./ReactUpdates":154,"./SyntheticEvent":164,"./getEventTarget":187,"./isEventSupported":192,"./isTextInputElement":193,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/keyOf":225}],66:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPluginHub":72,"./EventPropagators":75,"./ReactUpdates":152,"./SyntheticEvent":162,"./getEventTarget":185,"./isEventSupported":190,"./isTextInputElement":191,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/keyOf":223}],64:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -6312,7 +6239,7 @@ var ClientReactRootIndex = {  };  module.exports = ClientReactRootIndex; -},{}],67:[function(require,module,exports){ +},{}],65:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -6445,7 +6372,7 @@ ReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', {  module.exports = DOMChildrenOperations;  }).call(this,require('_process')) -},{"./Danger":70,"./ReactMultiChildUpdateTypes":132,"./ReactPerf":136,"./setInnerHTML":197,"./setTextContent":198,"_process":1,"fbjs/lib/invariant":220}],68:[function(require,module,exports){ +},{"./Danger":68,"./ReactMultiChildUpdateTypes":130,"./ReactPerf":134,"./setInnerHTML":195,"./setTextContent":196,"_process":23,"fbjs/lib/invariant":218}],66:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -6683,7 +6610,7 @@ var DOMProperty = {  module.exports = DOMProperty;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],69:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],67:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -6912,7 +6839,7 @@ ReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', {  module.exports = DOMPropertyOperations;  }).call(this,require('_process')) -},{"./DOMProperty":68,"./ReactPerf":136,"./quoteAttributeValueForBrowser":195,"_process":1,"fbjs/lib/warning":232}],70:[function(require,module,exports){ +},{"./DOMProperty":66,"./ReactPerf":134,"./quoteAttributeValueForBrowser":193,"_process":23,"fbjs/lib/warning":230}],68:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -7061,7 +6988,7 @@ var Danger = {  module.exports = Danger;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/createNodesFromMarkup":211,"fbjs/lib/emptyFunction":212,"fbjs/lib/getMarkupWrap":216,"fbjs/lib/invariant":220}],71:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/createNodesFromMarkup":209,"fbjs/lib/emptyFunction":210,"fbjs/lib/getMarkupWrap":214,"fbjs/lib/invariant":218}],69:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -7089,7 +7016,7 @@ var keyOf = require('fbjs/lib/keyOf');  var DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];  module.exports = DefaultEventPluginOrder; -},{"fbjs/lib/keyOf":225}],72:[function(require,module,exports){ +},{"fbjs/lib/keyOf":223}],70:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -7214,7 +7141,7 @@ var EnterLeaveEventPlugin = {  };  module.exports = EnterLeaveEventPlugin; -},{"./EventConstants":73,"./EventPropagators":77,"./ReactMount":130,"./SyntheticMouseEvent":168,"fbjs/lib/keyOf":225}],73:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPropagators":75,"./ReactMount":128,"./SyntheticMouseEvent":166,"fbjs/lib/keyOf":223}],71:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -7307,7 +7234,7 @@ var EventConstants = {  };  module.exports = EventConstants; -},{"fbjs/lib/keyMirror":224}],74:[function(require,module,exports){ +},{"fbjs/lib/keyMirror":222}],72:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -7590,7 +7517,7 @@ var EventPluginHub = {  module.exports = EventPluginHub;  }).call(this,require('_process')) -},{"./EventPluginRegistry":75,"./EventPluginUtils":76,"./ReactErrorUtils":119,"./accumulateInto":174,"./forEachAccumulated":183,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],75:[function(require,module,exports){ +},{"./EventPluginRegistry":73,"./EventPluginUtils":74,"./ReactErrorUtils":117,"./accumulateInto":172,"./forEachAccumulated":181,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],73:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -7814,7 +7741,7 @@ var EventPluginRegistry = {  module.exports = EventPluginRegistry;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],76:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],74:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -8020,7 +7947,7 @@ var EventPluginUtils = {  module.exports = EventPluginUtils;  }).call(this,require('_process')) -},{"./EventConstants":73,"./ReactErrorUtils":119,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],77:[function(require,module,exports){ +},{"./EventConstants":71,"./ReactErrorUtils":117,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],75:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -8159,7 +8086,7 @@ var EventPropagators = {  module.exports = EventPropagators;  }).call(this,require('_process')) -},{"./EventConstants":73,"./EventPluginHub":74,"./accumulateInto":174,"./forEachAccumulated":183,"_process":1,"fbjs/lib/warning":232}],78:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPluginHub":72,"./accumulateInto":172,"./forEachAccumulated":181,"_process":23,"fbjs/lib/warning":230}],76:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -8255,7 +8182,7 @@ assign(FallbackCompositionState.prototype, {  PooledClass.addPoolingTo(FallbackCompositionState);  module.exports = FallbackCompositionState; -},{"./Object.assign":82,"./PooledClass":83,"./getTextContentAccessor":190}],79:[function(require,module,exports){ +},{"./Object.assign":80,"./PooledClass":81,"./getTextContentAccessor":188}],77:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -8486,7 +8413,7 @@ var HTMLDOMPropertyConfig = {  };  module.exports = HTMLDOMPropertyConfig; -},{"./DOMProperty":68,"fbjs/lib/ExecutionEnvironment":206}],80:[function(require,module,exports){ +},{"./DOMProperty":66,"fbjs/lib/ExecutionEnvironment":204}],78:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -8523,7 +8450,7 @@ var LinkedStateMixin = {  };  module.exports = LinkedStateMixin; -},{"./ReactLink":128,"./ReactStateSetters":148}],81:[function(require,module,exports){ +},{"./ReactLink":126,"./ReactStateSetters":146}],79:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -8661,7 +8588,7 @@ var LinkedValueUtils = {  module.exports = LinkedValueUtils;  }).call(this,require('_process')) -},{"./ReactPropTypeLocations":139,"./ReactPropTypes":140,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],82:[function(require,module,exports){ +},{"./ReactPropTypeLocations":137,"./ReactPropTypes":138,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],80:[function(require,module,exports){  /**   * Copyright 2014-2015, Facebook, Inc.   * All rights reserved. @@ -8709,7 +8636,7 @@ function assign(target, sources) {  }  module.exports = assign; -},{}],83:[function(require,module,exports){ +},{}],81:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -8832,7 +8759,7 @@ var PooledClass = {  module.exports = PooledClass;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],84:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],82:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -8873,7 +8800,7 @@ React.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;  React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer;  module.exports = React; -},{"./Object.assign":82,"./ReactDOM":98,"./ReactDOMServer":108,"./ReactIsomorphic":127,"./deprecated":179}],85:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactDOM":96,"./ReactDOMServer":106,"./ReactIsomorphic":125,"./deprecated":177}],83:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -8913,7 +8840,7 @@ var ReactBrowserComponentMixin = {  module.exports = ReactBrowserComponentMixin;  }).call(this,require('_process')) -},{"./ReactInstanceMap":126,"./findDOMNode":181,"_process":1,"fbjs/lib/warning":232}],86:[function(require,module,exports){ +},{"./ReactInstanceMap":124,"./findDOMNode":179,"_process":23,"fbjs/lib/warning":230}],84:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -9238,7 +9165,7 @@ ReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', {  });  module.exports = ReactBrowserEventEmitter; -},{"./EventConstants":73,"./EventPluginHub":74,"./EventPluginRegistry":75,"./Object.assign":82,"./ReactEventEmitterMixin":120,"./ReactPerf":136,"./ViewportMetrics":173,"./isEventSupported":192}],87:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPluginHub":72,"./EventPluginRegistry":73,"./Object.assign":80,"./ReactEventEmitterMixin":118,"./ReactPerf":134,"./ViewportMetrics":171,"./isEventSupported":190}],85:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -9322,7 +9249,7 @@ var ReactCSSTransitionGroup = React.createClass({  });  module.exports = ReactCSSTransitionGroup; -},{"./Object.assign":82,"./React":84,"./ReactCSSTransitionGroupChild":88,"./ReactTransitionGroup":152}],88:[function(require,module,exports){ +},{"./Object.assign":80,"./React":82,"./ReactCSSTransitionGroupChild":86,"./ReactTransitionGroup":150}],86:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -9488,7 +9415,7 @@ var ReactCSSTransitionGroupChild = React.createClass({  });  module.exports = ReactCSSTransitionGroupChild; -},{"./React":84,"./ReactDOM":98,"./ReactTransitionEvents":151,"./onlyChild":194,"fbjs/lib/CSSCore":204}],89:[function(require,module,exports){ +},{"./React":82,"./ReactDOM":96,"./ReactTransitionEvents":149,"./onlyChild":192,"fbjs/lib/CSSCore":202}],87:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -9614,7 +9541,7 @@ var ReactChildReconciler = {  module.exports = ReactChildReconciler;  }).call(this,require('_process')) -},{"./ReactReconciler":142,"./instantiateReactComponent":191,"./shouldUpdateReactComponent":200,"./traverseAllChildren":201,"_process":1,"fbjs/lib/warning":232}],90:[function(require,module,exports){ +},{"./ReactReconciler":140,"./instantiateReactComponent":189,"./shouldUpdateReactComponent":198,"./traverseAllChildren":199,"_process":23,"fbjs/lib/warning":230}],88:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -9797,7 +9724,7 @@ var ReactChildren = {  };  module.exports = ReactChildren; -},{"./PooledClass":83,"./ReactElement":115,"./traverseAllChildren":201,"fbjs/lib/emptyFunction":212}],91:[function(require,module,exports){ +},{"./PooledClass":81,"./ReactElement":113,"./traverseAllChildren":199,"fbjs/lib/emptyFunction":210}],89:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -10572,7 +10499,7 @@ var ReactClass = {  module.exports = ReactClass;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactComponent":92,"./ReactElement":115,"./ReactNoopUpdateQueue":134,"./ReactPropTypeLocationNames":138,"./ReactPropTypeLocations":139,"_process":1,"fbjs/lib/emptyObject":213,"fbjs/lib/invariant":220,"fbjs/lib/keyMirror":224,"fbjs/lib/keyOf":225,"fbjs/lib/warning":232}],92:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactComponent":90,"./ReactElement":113,"./ReactNoopUpdateQueue":132,"./ReactPropTypeLocationNames":136,"./ReactPropTypeLocations":137,"_process":23,"fbjs/lib/emptyObject":211,"fbjs/lib/invariant":218,"fbjs/lib/keyMirror":222,"fbjs/lib/keyOf":223,"fbjs/lib/warning":230}],90:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -10698,7 +10625,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = ReactComponent;  }).call(this,require('_process')) -},{"./ReactNoopUpdateQueue":134,"./canDefineProperty":176,"_process":1,"fbjs/lib/emptyObject":213,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],93:[function(require,module,exports){ +},{"./ReactNoopUpdateQueue":132,"./canDefineProperty":174,"_process":23,"fbjs/lib/emptyObject":211,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],91:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -10740,7 +10667,7 @@ var ReactComponentBrowserEnvironment = {  };  module.exports = ReactComponentBrowserEnvironment; -},{"./ReactDOMIDOperations":103,"./ReactMount":130}],94:[function(require,module,exports){ +},{"./ReactDOMIDOperations":101,"./ReactMount":128}],92:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -10795,7 +10722,7 @@ var ReactComponentEnvironment = {  module.exports = ReactComponentEnvironment;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],95:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],93:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -10842,7 +10769,7 @@ var ReactComponentWithPureRenderMixin = {  };  module.exports = ReactComponentWithPureRenderMixin; -},{"./shallowCompare":199}],96:[function(require,module,exports){ +},{"./shallowCompare":197}],94:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -11540,7 +11467,7 @@ var ReactCompositeComponent = {  module.exports = ReactCompositeComponent;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactComponentEnvironment":94,"./ReactCurrentOwner":97,"./ReactElement":115,"./ReactInstanceMap":126,"./ReactPerf":136,"./ReactPropTypeLocationNames":138,"./ReactPropTypeLocations":139,"./ReactReconciler":142,"./ReactUpdateQueue":153,"./shouldUpdateReactComponent":200,"_process":1,"fbjs/lib/emptyObject":213,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],97:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactComponentEnvironment":92,"./ReactCurrentOwner":95,"./ReactElement":113,"./ReactInstanceMap":124,"./ReactPerf":134,"./ReactPropTypeLocationNames":136,"./ReactPropTypeLocations":137,"./ReactReconciler":140,"./ReactUpdateQueue":151,"./shouldUpdateReactComponent":198,"_process":23,"fbjs/lib/emptyObject":211,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],95:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -11571,7 +11498,7 @@ var ReactCurrentOwner = {  };  module.exports = ReactCurrentOwner; -},{}],98:[function(require,module,exports){ +},{}],96:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -11667,7 +11594,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = React;  }).call(this,require('_process')) -},{"./ReactCurrentOwner":97,"./ReactDOMTextComponent":109,"./ReactDefaultInjection":112,"./ReactInstanceHandles":125,"./ReactMount":130,"./ReactPerf":136,"./ReactReconciler":142,"./ReactUpdates":154,"./ReactVersion":155,"./findDOMNode":181,"./renderSubtreeIntoContainer":196,"_process":1,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/warning":232}],99:[function(require,module,exports){ +},{"./ReactCurrentOwner":95,"./ReactDOMTextComponent":107,"./ReactDefaultInjection":110,"./ReactInstanceHandles":123,"./ReactMount":128,"./ReactPerf":134,"./ReactReconciler":140,"./ReactUpdates":152,"./ReactVersion":153,"./findDOMNode":179,"./renderSubtreeIntoContainer":194,"_process":23,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/warning":230}],97:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -11718,7 +11645,7 @@ var ReactDOMButton = {  };  module.exports = ReactDOMButton; -},{}],100:[function(require,module,exports){ +},{}],98:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -12684,7 +12611,7 @@ assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mix  module.exports = ReactDOMComponent;  }).call(this,require('_process')) -},{"./AutoFocusUtils":60,"./CSSPropertyOperations":63,"./DOMProperty":68,"./DOMPropertyOperations":69,"./EventConstants":73,"./Object.assign":82,"./ReactBrowserEventEmitter":86,"./ReactComponentBrowserEnvironment":93,"./ReactDOMButton":99,"./ReactDOMInput":104,"./ReactDOMOption":105,"./ReactDOMSelect":106,"./ReactDOMTextarea":110,"./ReactMount":130,"./ReactMultiChild":131,"./ReactPerf":136,"./ReactUpdateQueue":153,"./canDefineProperty":176,"./escapeTextContentForBrowser":180,"./isEventSupported":192,"./setInnerHTML":197,"./setTextContent":198,"./validateDOMNesting":203,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/keyOf":225,"fbjs/lib/shallowEqual":230,"fbjs/lib/warning":232}],101:[function(require,module,exports){ +},{"./AutoFocusUtils":58,"./CSSPropertyOperations":61,"./DOMProperty":66,"./DOMPropertyOperations":67,"./EventConstants":71,"./Object.assign":80,"./ReactBrowserEventEmitter":84,"./ReactComponentBrowserEnvironment":91,"./ReactDOMButton":97,"./ReactDOMInput":102,"./ReactDOMOption":103,"./ReactDOMSelect":104,"./ReactDOMTextarea":108,"./ReactMount":128,"./ReactMultiChild":129,"./ReactPerf":134,"./ReactUpdateQueue":151,"./canDefineProperty":174,"./escapeTextContentForBrowser":178,"./isEventSupported":190,"./setInnerHTML":195,"./setTextContent":196,"./validateDOMNesting":201,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/keyOf":223,"fbjs/lib/shallowEqual":228,"fbjs/lib/warning":230}],99:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -12865,7 +12792,7 @@ var ReactDOMFactories = mapObject({  module.exports = ReactDOMFactories;  }).call(this,require('_process')) -},{"./ReactElement":115,"./ReactElementValidator":116,"_process":1,"fbjs/lib/mapObject":226}],102:[function(require,module,exports){ +},{"./ReactElement":113,"./ReactElementValidator":114,"_process":23,"fbjs/lib/mapObject":224}],100:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -12884,7 +12811,7 @@ var ReactDOMFeatureFlags = {  };  module.exports = ReactDOMFeatureFlags; -},{}],103:[function(require,module,exports){ +},{}],101:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -12982,7 +12909,7 @@ ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {  module.exports = ReactDOMIDOperations;  }).call(this,require('_process')) -},{"./DOMChildrenOperations":67,"./DOMPropertyOperations":69,"./ReactMount":130,"./ReactPerf":136,"_process":1,"fbjs/lib/invariant":220}],104:[function(require,module,exports){ +},{"./DOMChildrenOperations":65,"./DOMPropertyOperations":67,"./ReactMount":128,"./ReactPerf":134,"_process":23,"fbjs/lib/invariant":218}],102:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -13139,7 +13066,7 @@ function _handleChange(event) {  module.exports = ReactDOMInput;  }).call(this,require('_process')) -},{"./LinkedValueUtils":81,"./Object.assign":82,"./ReactDOMIDOperations":103,"./ReactMount":130,"./ReactUpdates":154,"_process":1,"fbjs/lib/invariant":220}],105:[function(require,module,exports){ +},{"./LinkedValueUtils":79,"./Object.assign":80,"./ReactDOMIDOperations":101,"./ReactMount":128,"./ReactUpdates":152,"_process":23,"fbjs/lib/invariant":218}],103:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -13232,7 +13159,7 @@ var ReactDOMOption = {  module.exports = ReactDOMOption;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactChildren":90,"./ReactDOMSelect":106,"_process":1,"fbjs/lib/warning":232}],106:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactChildren":88,"./ReactDOMSelect":104,"_process":23,"fbjs/lib/warning":230}],104:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -13424,7 +13351,7 @@ function _handleChange(event) {  module.exports = ReactDOMSelect;  }).call(this,require('_process')) -},{"./LinkedValueUtils":81,"./Object.assign":82,"./ReactMount":130,"./ReactUpdates":154,"_process":1,"fbjs/lib/warning":232}],107:[function(require,module,exports){ +},{"./LinkedValueUtils":79,"./Object.assign":80,"./ReactMount":128,"./ReactUpdates":152,"_process":23,"fbjs/lib/warning":230}],105:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -13637,7 +13564,7 @@ var ReactDOMSelection = {  };  module.exports = ReactDOMSelection; -},{"./getNodeForCharacterOffset":189,"./getTextContentAccessor":190,"fbjs/lib/ExecutionEnvironment":206}],108:[function(require,module,exports){ +},{"./getNodeForCharacterOffset":187,"./getTextContentAccessor":188,"fbjs/lib/ExecutionEnvironment":204}],106:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -13664,7 +13591,7 @@ var ReactDOMServer = {  };  module.exports = ReactDOMServer; -},{"./ReactDefaultInjection":112,"./ReactServerRendering":146,"./ReactVersion":155}],109:[function(require,module,exports){ +},{"./ReactDefaultInjection":110,"./ReactServerRendering":144,"./ReactVersion":153}],107:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -13795,7 +13722,7 @@ assign(ReactDOMTextComponent.prototype, {  module.exports = ReactDOMTextComponent;  }).call(this,require('_process')) -},{"./DOMChildrenOperations":67,"./DOMPropertyOperations":69,"./Object.assign":82,"./ReactComponentBrowserEnvironment":93,"./ReactMount":130,"./escapeTextContentForBrowser":180,"./setTextContent":198,"./validateDOMNesting":203,"_process":1}],110:[function(require,module,exports){ +},{"./DOMChildrenOperations":65,"./DOMPropertyOperations":67,"./Object.assign":80,"./ReactComponentBrowserEnvironment":91,"./ReactMount":128,"./escapeTextContentForBrowser":178,"./setTextContent":196,"./validateDOMNesting":201,"_process":23}],108:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -13912,7 +13839,7 @@ function _handleChange(event) {  module.exports = ReactDOMTextarea;  }).call(this,require('_process')) -},{"./LinkedValueUtils":81,"./Object.assign":82,"./ReactDOMIDOperations":103,"./ReactUpdates":154,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],111:[function(require,module,exports){ +},{"./LinkedValueUtils":79,"./Object.assign":80,"./ReactDOMIDOperations":101,"./ReactUpdates":152,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],109:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -13980,7 +13907,7 @@ var ReactDefaultBatchingStrategy = {  };  module.exports = ReactDefaultBatchingStrategy; -},{"./Object.assign":82,"./ReactUpdates":154,"./Transaction":172,"fbjs/lib/emptyFunction":212}],112:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactUpdates":152,"./Transaction":170,"fbjs/lib/emptyFunction":210}],110:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -14081,7 +14008,7 @@ module.exports = {  };  }).call(this,require('_process')) -},{"./BeforeInputEventPlugin":61,"./ChangeEventPlugin":65,"./ClientReactRootIndex":66,"./DefaultEventPluginOrder":71,"./EnterLeaveEventPlugin":72,"./HTMLDOMPropertyConfig":79,"./ReactBrowserComponentMixin":85,"./ReactComponentBrowserEnvironment":93,"./ReactDOMComponent":100,"./ReactDOMTextComponent":109,"./ReactDefaultBatchingStrategy":111,"./ReactDefaultPerf":113,"./ReactEventListener":121,"./ReactInjection":123,"./ReactInstanceHandles":125,"./ReactMount":130,"./ReactReconcileTransaction":141,"./SVGDOMPropertyConfig":157,"./SelectEventPlugin":158,"./ServerReactRootIndex":159,"./SimpleEventPlugin":160,"_process":1,"fbjs/lib/ExecutionEnvironment":206}],113:[function(require,module,exports){ +},{"./BeforeInputEventPlugin":59,"./ChangeEventPlugin":63,"./ClientReactRootIndex":64,"./DefaultEventPluginOrder":69,"./EnterLeaveEventPlugin":70,"./HTMLDOMPropertyConfig":77,"./ReactBrowserComponentMixin":83,"./ReactComponentBrowserEnvironment":91,"./ReactDOMComponent":98,"./ReactDOMTextComponent":107,"./ReactDefaultBatchingStrategy":109,"./ReactDefaultPerf":111,"./ReactEventListener":119,"./ReactInjection":121,"./ReactInstanceHandles":123,"./ReactMount":128,"./ReactReconcileTransaction":139,"./SVGDOMPropertyConfig":155,"./SelectEventPlugin":156,"./ServerReactRootIndex":157,"./SimpleEventPlugin":158,"_process":23,"fbjs/lib/ExecutionEnvironment":204}],111:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -14319,7 +14246,7 @@ var ReactDefaultPerf = {  };  module.exports = ReactDefaultPerf; -},{"./DOMProperty":68,"./ReactDefaultPerfAnalysis":114,"./ReactMount":130,"./ReactPerf":136,"fbjs/lib/performanceNow":229}],114:[function(require,module,exports){ +},{"./DOMProperty":66,"./ReactDefaultPerfAnalysis":112,"./ReactMount":128,"./ReactPerf":134,"fbjs/lib/performanceNow":227}],112:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -14521,7 +14448,7 @@ var ReactDefaultPerfAnalysis = {  };  module.exports = ReactDefaultPerfAnalysis; -},{"./Object.assign":82}],115:[function(require,module,exports){ +},{"./Object.assign":80}],113:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -14772,7 +14699,7 @@ ReactElement.isValidElement = function (object) {  module.exports = ReactElement;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactCurrentOwner":97,"./canDefineProperty":176,"_process":1}],116:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactCurrentOwner":95,"./canDefineProperty":174,"_process":23}],114:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -15057,7 +14984,7 @@ var ReactElementValidator = {  module.exports = ReactElementValidator;  }).call(this,require('_process')) -},{"./ReactCurrentOwner":97,"./ReactElement":115,"./ReactPropTypeLocationNames":138,"./ReactPropTypeLocations":139,"./canDefineProperty":176,"./getIteratorFn":188,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],117:[function(require,module,exports){ +},{"./ReactCurrentOwner":95,"./ReactElement":113,"./ReactPropTypeLocationNames":136,"./ReactPropTypeLocations":137,"./canDefineProperty":174,"./getIteratorFn":186,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],115:[function(require,module,exports){  /**   * Copyright 2014-2015, Facebook, Inc.   * All rights reserved. @@ -15109,7 +15036,7 @@ assign(ReactEmptyComponent.prototype, {  ReactEmptyComponent.injection = ReactEmptyComponentInjection;  module.exports = ReactEmptyComponent; -},{"./Object.assign":82,"./ReactElement":115,"./ReactEmptyComponentRegistry":118,"./ReactReconciler":142}],118:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactElement":113,"./ReactEmptyComponentRegistry":116,"./ReactReconciler":140}],116:[function(require,module,exports){  /**   * Copyright 2014-2015, Facebook, Inc.   * All rights reserved. @@ -15158,7 +15085,7 @@ var ReactEmptyComponentRegistry = {  };  module.exports = ReactEmptyComponentRegistry; -},{}],119:[function(require,module,exports){ +},{}],117:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -15239,7 +15166,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = ReactErrorUtils;  }).call(this,require('_process')) -},{"_process":1}],120:[function(require,module,exports){ +},{"_process":23}],118:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -15278,7 +15205,7 @@ var ReactEventEmitterMixin = {  };  module.exports = ReactEventEmitterMixin; -},{"./EventPluginHub":74}],121:[function(require,module,exports){ +},{"./EventPluginHub":72}],119:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -15490,7 +15417,7 @@ var ReactEventListener = {  };  module.exports = ReactEventListener; -},{"./Object.assign":82,"./PooledClass":83,"./ReactInstanceHandles":125,"./ReactMount":130,"./ReactUpdates":154,"./getEventTarget":187,"fbjs/lib/EventListener":205,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/getUnboundedScrollPosition":217}],122:[function(require,module,exports){ +},{"./Object.assign":80,"./PooledClass":81,"./ReactInstanceHandles":123,"./ReactMount":128,"./ReactUpdates":152,"./getEventTarget":185,"fbjs/lib/EventListener":203,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/getUnboundedScrollPosition":215}],120:[function(require,module,exports){  (function (process){  /**   * Copyright 2015, Facebook, Inc. @@ -15558,7 +15485,7 @@ var ReactFragment = {  module.exports = ReactFragment;  }).call(this,require('_process')) -},{"./ReactChildren":90,"./ReactElement":115,"_process":1,"fbjs/lib/emptyFunction":212,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],123:[function(require,module,exports){ +},{"./ReactChildren":88,"./ReactElement":113,"_process":23,"fbjs/lib/emptyFunction":210,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],121:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -15597,7 +15524,7 @@ var ReactInjection = {  };  module.exports = ReactInjection; -},{"./DOMProperty":68,"./EventPluginHub":74,"./ReactBrowserEventEmitter":86,"./ReactClass":91,"./ReactComponentEnvironment":94,"./ReactEmptyComponent":117,"./ReactNativeComponent":133,"./ReactPerf":136,"./ReactRootIndex":144,"./ReactUpdates":154}],124:[function(require,module,exports){ +},{"./DOMProperty":66,"./EventPluginHub":72,"./ReactBrowserEventEmitter":84,"./ReactClass":89,"./ReactComponentEnvironment":92,"./ReactEmptyComponent":115,"./ReactNativeComponent":131,"./ReactPerf":134,"./ReactRootIndex":142,"./ReactUpdates":152}],122:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -15722,7 +15649,7 @@ var ReactInputSelection = {  };  module.exports = ReactInputSelection; -},{"./ReactDOMSelection":107,"fbjs/lib/containsNode":209,"fbjs/lib/focusNode":214,"fbjs/lib/getActiveElement":215}],125:[function(require,module,exports){ +},{"./ReactDOMSelection":105,"fbjs/lib/containsNode":207,"fbjs/lib/focusNode":212,"fbjs/lib/getActiveElement":213}],123:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -16028,7 +15955,7 @@ var ReactInstanceHandles = {  module.exports = ReactInstanceHandles;  }).call(this,require('_process')) -},{"./ReactRootIndex":144,"_process":1,"fbjs/lib/invariant":220}],126:[function(require,module,exports){ +},{"./ReactRootIndex":142,"_process":23,"fbjs/lib/invariant":218}],124:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -16076,7 +16003,7 @@ var ReactInstanceMap = {  };  module.exports = ReactInstanceMap; -},{}],127:[function(require,module,exports){ +},{}],125:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -16154,7 +16081,7 @@ var React = {  module.exports = React;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactChildren":90,"./ReactClass":91,"./ReactComponent":92,"./ReactDOMFactories":101,"./ReactElement":115,"./ReactElementValidator":116,"./ReactPropTypes":140,"./ReactVersion":155,"./onlyChild":194,"_process":1}],128:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactChildren":88,"./ReactClass":89,"./ReactComponent":90,"./ReactDOMFactories":99,"./ReactElement":113,"./ReactElementValidator":114,"./ReactPropTypes":138,"./ReactVersion":153,"./onlyChild":192,"_process":23}],126:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -16224,7 +16151,7 @@ ReactLink.PropTypes = {  };  module.exports = ReactLink; -},{"./React":84}],129:[function(require,module,exports){ +},{"./React":82}],127:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -16270,7 +16197,7 @@ var ReactMarkupChecksum = {  };  module.exports = ReactMarkupChecksum; -},{"./adler32":175}],130:[function(require,module,exports){ +},{"./adler32":173}],128:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -17124,7 +17051,7 @@ ReactPerf.measureMethods(ReactMount, 'ReactMount', {  module.exports = ReactMount;  }).call(this,require('_process')) -},{"./DOMProperty":68,"./Object.assign":82,"./ReactBrowserEventEmitter":86,"./ReactCurrentOwner":97,"./ReactDOMFeatureFlags":102,"./ReactElement":115,"./ReactEmptyComponentRegistry":118,"./ReactInstanceHandles":125,"./ReactInstanceMap":126,"./ReactMarkupChecksum":129,"./ReactPerf":136,"./ReactReconciler":142,"./ReactUpdateQueue":153,"./ReactUpdates":154,"./instantiateReactComponent":191,"./setInnerHTML":197,"./shouldUpdateReactComponent":200,"./validateDOMNesting":203,"_process":1,"fbjs/lib/containsNode":209,"fbjs/lib/emptyObject":213,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],131:[function(require,module,exports){ +},{"./DOMProperty":66,"./Object.assign":80,"./ReactBrowserEventEmitter":84,"./ReactCurrentOwner":95,"./ReactDOMFeatureFlags":100,"./ReactElement":113,"./ReactEmptyComponentRegistry":116,"./ReactInstanceHandles":123,"./ReactInstanceMap":124,"./ReactMarkupChecksum":127,"./ReactPerf":134,"./ReactReconciler":140,"./ReactUpdateQueue":151,"./ReactUpdates":152,"./instantiateReactComponent":189,"./setInnerHTML":195,"./shouldUpdateReactComponent":198,"./validateDOMNesting":201,"_process":23,"fbjs/lib/containsNode":207,"fbjs/lib/emptyObject":211,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],129:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -17624,7 +17551,7 @@ var ReactMultiChild = {  module.exports = ReactMultiChild;  }).call(this,require('_process')) -},{"./ReactChildReconciler":89,"./ReactComponentEnvironment":94,"./ReactCurrentOwner":97,"./ReactMultiChildUpdateTypes":132,"./ReactReconciler":142,"./flattenChildren":182,"_process":1}],132:[function(require,module,exports){ +},{"./ReactChildReconciler":87,"./ReactComponentEnvironment":92,"./ReactCurrentOwner":95,"./ReactMultiChildUpdateTypes":130,"./ReactReconciler":140,"./flattenChildren":180,"_process":23}],130:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -17657,7 +17584,7 @@ var ReactMultiChildUpdateTypes = keyMirror({  });  module.exports = ReactMultiChildUpdateTypes; -},{"fbjs/lib/keyMirror":224}],133:[function(require,module,exports){ +},{"fbjs/lib/keyMirror":222}],131:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -17755,7 +17682,7 @@ var ReactNativeComponent = {  module.exports = ReactNativeComponent;  }).call(this,require('_process')) -},{"./Object.assign":82,"_process":1,"fbjs/lib/invariant":220}],134:[function(require,module,exports){ +},{"./Object.assign":80,"_process":23,"fbjs/lib/invariant":218}],132:[function(require,module,exports){  (function (process){  /**   * Copyright 2015, Facebook, Inc. @@ -17877,7 +17804,7 @@ var ReactNoopUpdateQueue = {  module.exports = ReactNoopUpdateQueue;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/warning":232}],135:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/warning":230}],133:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -17972,7 +17899,7 @@ var ReactOwner = {  module.exports = ReactOwner;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],136:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],134:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -18072,7 +17999,7 @@ function _noMeasure(objName, fnName, func) {  module.exports = ReactPerf;  }).call(this,require('_process')) -},{"_process":1}],137:[function(require,module,exports){ +},{"_process":23}],135:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18181,7 +18108,7 @@ var ReactPropTransferer = {  };  module.exports = ReactPropTransferer; -},{"./Object.assign":82,"fbjs/lib/emptyFunction":212,"fbjs/lib/joinClasses":223}],138:[function(require,module,exports){ +},{"./Object.assign":80,"fbjs/lib/emptyFunction":210,"fbjs/lib/joinClasses":221}],136:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -18209,7 +18136,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = ReactPropTypeLocationNames;  }).call(this,require('_process')) -},{"_process":1}],139:[function(require,module,exports){ +},{"_process":23}],137:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18232,7 +18159,7 @@ var ReactPropTypeLocations = keyMirror({  });  module.exports = ReactPropTypeLocations; -},{"fbjs/lib/keyMirror":224}],140:[function(require,module,exports){ +},{"fbjs/lib/keyMirror":222}],138:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18589,7 +18516,7 @@ function getClassName(propValue) {  }  module.exports = ReactPropTypes; -},{"./ReactElement":115,"./ReactPropTypeLocationNames":138,"./getIteratorFn":188,"fbjs/lib/emptyFunction":212}],141:[function(require,module,exports){ +},{"./ReactElement":113,"./ReactPropTypeLocationNames":136,"./getIteratorFn":186,"fbjs/lib/emptyFunction":210}],139:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18741,7 +18668,7 @@ assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);  PooledClass.addPoolingTo(ReactReconcileTransaction);  module.exports = ReactReconcileTransaction; -},{"./CallbackQueue":64,"./Object.assign":82,"./PooledClass":83,"./ReactBrowserEventEmitter":86,"./ReactDOMFeatureFlags":102,"./ReactInputSelection":124,"./Transaction":172}],142:[function(require,module,exports){ +},{"./CallbackQueue":62,"./Object.assign":80,"./PooledClass":81,"./ReactBrowserEventEmitter":84,"./ReactDOMFeatureFlags":100,"./ReactInputSelection":122,"./Transaction":170}],140:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18849,7 +18776,7 @@ var ReactReconciler = {  };  module.exports = ReactReconciler; -},{"./ReactRef":143}],143:[function(require,module,exports){ +},{"./ReactRef":141}],141:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18928,7 +18855,7 @@ ReactRef.detachRefs = function (instance, element) {  };  module.exports = ReactRef; -},{"./ReactOwner":135}],144:[function(require,module,exports){ +},{"./ReactOwner":133}],142:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -18958,7 +18885,7 @@ var ReactRootIndex = {  };  module.exports = ReactRootIndex; -},{}],145:[function(require,module,exports){ +},{}],143:[function(require,module,exports){  /**   * Copyright 2014-2015, Facebook, Inc.   * All rights reserved. @@ -18982,7 +18909,7 @@ var ReactServerBatchingStrategy = {  };  module.exports = ReactServerBatchingStrategy; -},{}],146:[function(require,module,exports){ +},{}],144:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -19069,7 +18996,7 @@ module.exports = {  };  }).call(this,require('_process')) -},{"./ReactDefaultBatchingStrategy":111,"./ReactElement":115,"./ReactInstanceHandles":125,"./ReactMarkupChecksum":129,"./ReactServerBatchingStrategy":145,"./ReactServerRenderingTransaction":147,"./ReactUpdates":154,"./instantiateReactComponent":191,"_process":1,"fbjs/lib/emptyObject":213,"fbjs/lib/invariant":220}],147:[function(require,module,exports){ +},{"./ReactDefaultBatchingStrategy":109,"./ReactElement":113,"./ReactInstanceHandles":123,"./ReactMarkupChecksum":127,"./ReactServerBatchingStrategy":143,"./ReactServerRenderingTransaction":145,"./ReactUpdates":152,"./instantiateReactComponent":189,"_process":23,"fbjs/lib/emptyObject":211,"fbjs/lib/invariant":218}],145:[function(require,module,exports){  /**   * Copyright 2014-2015, Facebook, Inc.   * All rights reserved. @@ -19157,7 +19084,7 @@ assign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);  PooledClass.addPoolingTo(ReactServerRenderingTransaction);  module.exports = ReactServerRenderingTransaction; -},{"./CallbackQueue":64,"./Object.assign":82,"./PooledClass":83,"./Transaction":172,"fbjs/lib/emptyFunction":212}],148:[function(require,module,exports){ +},{"./CallbackQueue":62,"./Object.assign":80,"./PooledClass":81,"./Transaction":170,"fbjs/lib/emptyFunction":210}],146:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -19262,7 +19189,7 @@ ReactStateSetters.Mixin = {  };  module.exports = ReactStateSetters; -},{}],149:[function(require,module,exports){ +},{}],147:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -19743,7 +19670,7 @@ Object.keys(topLevelTypes).forEach(function (eventType) {  module.exports = ReactTestUtils;  }).call(this,require('_process')) -},{"./EventConstants":73,"./EventPluginHub":74,"./EventPropagators":77,"./Object.assign":82,"./React":84,"./ReactBrowserEventEmitter":86,"./ReactCompositeComponent":96,"./ReactDOM":98,"./ReactElement":115,"./ReactInstanceHandles":125,"./ReactInstanceMap":126,"./ReactMount":130,"./ReactUpdates":154,"./SyntheticEvent":164,"./findDOMNode":181,"_process":1,"fbjs/lib/emptyObject":213,"fbjs/lib/invariant":220}],150:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPluginHub":72,"./EventPropagators":75,"./Object.assign":80,"./React":82,"./ReactBrowserEventEmitter":84,"./ReactCompositeComponent":94,"./ReactDOM":96,"./ReactElement":113,"./ReactInstanceHandles":123,"./ReactInstanceMap":124,"./ReactMount":128,"./ReactUpdates":152,"./SyntheticEvent":162,"./findDOMNode":179,"_process":23,"fbjs/lib/emptyObject":211,"fbjs/lib/invariant":218}],148:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -19842,7 +19769,7 @@ var ReactTransitionChildMapping = {  };  module.exports = ReactTransitionChildMapping; -},{"./flattenChildren":182}],151:[function(require,module,exports){ +},{"./flattenChildren":180}],149:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -19952,7 +19879,7 @@ var ReactTransitionEvents = {  };  module.exports = ReactTransitionEvents; -},{"fbjs/lib/ExecutionEnvironment":206}],152:[function(require,module,exports){ +},{"fbjs/lib/ExecutionEnvironment":204}],150:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -20158,7 +20085,7 @@ var ReactTransitionGroup = React.createClass({  });  module.exports = ReactTransitionGroup; -},{"./Object.assign":82,"./React":84,"./ReactTransitionChildMapping":150,"fbjs/lib/emptyFunction":212}],153:[function(require,module,exports){ +},{"./Object.assign":80,"./React":82,"./ReactTransitionChildMapping":148,"fbjs/lib/emptyFunction":210}],151:[function(require,module,exports){  (function (process){  /**   * Copyright 2015, Facebook, Inc. @@ -20419,7 +20346,7 @@ var ReactUpdateQueue = {  module.exports = ReactUpdateQueue;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactCurrentOwner":97,"./ReactElement":115,"./ReactInstanceMap":126,"./ReactUpdates":154,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],154:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactCurrentOwner":95,"./ReactElement":113,"./ReactInstanceMap":124,"./ReactUpdates":152,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],152:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -20646,7 +20573,7 @@ var ReactUpdates = {  module.exports = ReactUpdates;  }).call(this,require('_process')) -},{"./CallbackQueue":64,"./Object.assign":82,"./PooledClass":83,"./ReactPerf":136,"./ReactReconciler":142,"./Transaction":172,"_process":1,"fbjs/lib/invariant":220}],155:[function(require,module,exports){ +},{"./CallbackQueue":62,"./Object.assign":80,"./PooledClass":81,"./ReactPerf":134,"./ReactReconciler":140,"./Transaction":170,"_process":23,"fbjs/lib/invariant":218}],153:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -20661,7 +20588,7 @@ module.exports = ReactUpdates;  'use strict';  module.exports = '0.14.7'; -},{}],156:[function(require,module,exports){ +},{}],154:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -20725,7 +20652,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = React;  }).call(this,require('_process')) -},{"./LinkedStateMixin":80,"./React":84,"./ReactCSSTransitionGroup":87,"./ReactComponentWithPureRenderMixin":95,"./ReactDefaultPerf":113,"./ReactFragment":122,"./ReactTestUtils":149,"./ReactTransitionGroup":152,"./ReactUpdates":154,"./cloneWithProps":177,"./shallowCompare":199,"./update":202,"_process":1,"fbjs/lib/warning":232}],157:[function(require,module,exports){ +},{"./LinkedStateMixin":78,"./React":82,"./ReactCSSTransitionGroup":85,"./ReactComponentWithPureRenderMixin":93,"./ReactDefaultPerf":111,"./ReactFragment":120,"./ReactTestUtils":147,"./ReactTransitionGroup":150,"./ReactUpdates":152,"./cloneWithProps":175,"./shallowCompare":197,"./update":200,"_process":23,"fbjs/lib/warning":230}],155:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -20853,7 +20780,7 @@ var SVGDOMPropertyConfig = {  };  module.exports = SVGDOMPropertyConfig; -},{"./DOMProperty":68}],158:[function(require,module,exports){ +},{"./DOMProperty":66}],156:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -21055,7 +20982,7 @@ var SelectEventPlugin = {  };  module.exports = SelectEventPlugin; -},{"./EventConstants":73,"./EventPropagators":77,"./ReactInputSelection":124,"./SyntheticEvent":164,"./isTextInputElement":193,"fbjs/lib/ExecutionEnvironment":206,"fbjs/lib/getActiveElement":215,"fbjs/lib/keyOf":225,"fbjs/lib/shallowEqual":230}],159:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPropagators":75,"./ReactInputSelection":122,"./SyntheticEvent":162,"./isTextInputElement":191,"fbjs/lib/ExecutionEnvironment":204,"fbjs/lib/getActiveElement":213,"fbjs/lib/keyOf":223,"fbjs/lib/shallowEqual":228}],157:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -21085,7 +21012,7 @@ var ServerReactRootIndex = {  };  module.exports = ServerReactRootIndex; -},{}],160:[function(require,module,exports){ +},{}],158:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -21676,7 +21603,7 @@ var SimpleEventPlugin = {  module.exports = SimpleEventPlugin;  }).call(this,require('_process')) -},{"./EventConstants":73,"./EventPropagators":77,"./ReactMount":130,"./SyntheticClipboardEvent":161,"./SyntheticDragEvent":163,"./SyntheticEvent":164,"./SyntheticFocusEvent":165,"./SyntheticKeyboardEvent":167,"./SyntheticMouseEvent":168,"./SyntheticTouchEvent":169,"./SyntheticUIEvent":170,"./SyntheticWheelEvent":171,"./getEventCharCode":184,"_process":1,"fbjs/lib/EventListener":205,"fbjs/lib/emptyFunction":212,"fbjs/lib/invariant":220,"fbjs/lib/keyOf":225}],161:[function(require,module,exports){ +},{"./EventConstants":71,"./EventPropagators":75,"./ReactMount":128,"./SyntheticClipboardEvent":159,"./SyntheticDragEvent":161,"./SyntheticEvent":162,"./SyntheticFocusEvent":163,"./SyntheticKeyboardEvent":165,"./SyntheticMouseEvent":166,"./SyntheticTouchEvent":167,"./SyntheticUIEvent":168,"./SyntheticWheelEvent":169,"./getEventCharCode":182,"_process":23,"fbjs/lib/EventListener":203,"fbjs/lib/emptyFunction":210,"fbjs/lib/invariant":218,"fbjs/lib/keyOf":223}],159:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -21716,7 +21643,7 @@ function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, na  SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);  module.exports = SyntheticClipboardEvent; -},{"./SyntheticEvent":164}],162:[function(require,module,exports){ +},{"./SyntheticEvent":162}],160:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -21754,7 +21681,7 @@ function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent,  SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);  module.exports = SyntheticCompositionEvent; -},{"./SyntheticEvent":164}],163:[function(require,module,exports){ +},{"./SyntheticEvent":162}],161:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -21792,7 +21719,7 @@ function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeE  SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);  module.exports = SyntheticDragEvent; -},{"./SyntheticMouseEvent":168}],164:[function(require,module,exports){ +},{"./SyntheticMouseEvent":166}],162:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -21976,7 +21903,7 @@ PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);  module.exports = SyntheticEvent;  }).call(this,require('_process')) -},{"./Object.assign":82,"./PooledClass":83,"_process":1,"fbjs/lib/emptyFunction":212,"fbjs/lib/warning":232}],165:[function(require,module,exports){ +},{"./Object.assign":80,"./PooledClass":81,"_process":23,"fbjs/lib/emptyFunction":210,"fbjs/lib/warning":230}],163:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22014,7 +21941,7 @@ function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, native  SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);  module.exports = SyntheticFocusEvent; -},{"./SyntheticUIEvent":170}],166:[function(require,module,exports){ +},{"./SyntheticUIEvent":168}],164:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22053,7 +21980,7 @@ function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, native  SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);  module.exports = SyntheticInputEvent; -},{"./SyntheticEvent":164}],167:[function(require,module,exports){ +},{"./SyntheticEvent":162}],165:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22139,7 +22066,7 @@ function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nat  SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);  module.exports = SyntheticKeyboardEvent; -},{"./SyntheticUIEvent":170,"./getEventCharCode":184,"./getEventKey":185,"./getEventModifierState":186}],168:[function(require,module,exports){ +},{"./SyntheticUIEvent":168,"./getEventCharCode":182,"./getEventKey":183,"./getEventModifierState":184}],166:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22213,7 +22140,7 @@ function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, native  SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);  module.exports = SyntheticMouseEvent; -},{"./SyntheticUIEvent":170,"./ViewportMetrics":173,"./getEventModifierState":186}],169:[function(require,module,exports){ +},{"./SyntheticUIEvent":168,"./ViewportMetrics":171,"./getEventModifierState":184}],167:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22260,7 +22187,7 @@ function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, native  SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);  module.exports = SyntheticTouchEvent; -},{"./SyntheticUIEvent":170,"./getEventModifierState":186}],170:[function(require,module,exports){ +},{"./SyntheticUIEvent":168,"./getEventModifierState":184}],168:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22321,7 +22248,7 @@ function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEve  SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);  module.exports = SyntheticUIEvent; -},{"./SyntheticEvent":164,"./getEventTarget":187}],171:[function(require,module,exports){ +},{"./SyntheticEvent":162,"./getEventTarget":185}],169:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22377,7 +22304,7 @@ function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, native  SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);  module.exports = SyntheticWheelEvent; -},{"./SyntheticMouseEvent":168}],172:[function(require,module,exports){ +},{"./SyntheticMouseEvent":166}],170:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -22612,7 +22539,7 @@ var Transaction = {  module.exports = Transaction;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],173:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],171:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22640,7 +22567,7 @@ var ViewportMetrics = {  };  module.exports = ViewportMetrics; -},{}],174:[function(require,module,exports){ +},{}],172:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -22703,7 +22630,7 @@ function accumulateInto(current, next) {  module.exports = accumulateInto;  }).call(this,require('_process')) -},{"_process":1,"fbjs/lib/invariant":220}],175:[function(require,module,exports){ +},{"_process":23,"fbjs/lib/invariant":218}],173:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22746,7 +22673,7 @@ function adler32(data) {  }  module.exports = adler32; -},{}],176:[function(require,module,exports){ +},{}],174:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -22774,7 +22701,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = canDefineProperty;  }).call(this,require('_process')) -},{"_process":1}],177:[function(require,module,exports){ +},{"_process":23}],175:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -22832,7 +22759,7 @@ function cloneWithProps(child, props) {  module.exports = cloneWithProps;  }).call(this,require('_process')) -},{"./ReactElement":115,"./ReactPropTransferer":137,"_process":1,"fbjs/lib/keyOf":225,"fbjs/lib/warning":232}],178:[function(require,module,exports){ +},{"./ReactElement":113,"./ReactPropTransferer":135,"_process":23,"fbjs/lib/keyOf":223,"fbjs/lib/warning":230}],176:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22888,7 +22815,7 @@ function dangerousStyleValue(name, value) {  }  module.exports = dangerousStyleValue; -},{"./CSSProperty":62}],179:[function(require,module,exports){ +},{"./CSSProperty":60}],177:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -22940,7 +22867,7 @@ function deprecated(fnName, newModule, newPackage, ctx, fn) {  module.exports = deprecated;  }).call(this,require('_process')) -},{"./Object.assign":82,"_process":1,"fbjs/lib/warning":232}],180:[function(require,module,exports){ +},{"./Object.assign":80,"_process":23,"fbjs/lib/warning":230}],178:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -22979,7 +22906,7 @@ function escapeTextContentForBrowser(text) {  }  module.exports = escapeTextContentForBrowser; -},{}],181:[function(require,module,exports){ +},{}],179:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -23032,7 +22959,7 @@ function findDOMNode(componentOrElement) {  module.exports = findDOMNode;  }).call(this,require('_process')) -},{"./ReactCurrentOwner":97,"./ReactInstanceMap":126,"./ReactMount":130,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],182:[function(require,module,exports){ +},{"./ReactCurrentOwner":95,"./ReactInstanceMap":124,"./ReactMount":128,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],180:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -23084,7 +23011,7 @@ function flattenChildren(children) {  module.exports = flattenChildren;  }).call(this,require('_process')) -},{"./traverseAllChildren":201,"_process":1,"fbjs/lib/warning":232}],183:[function(require,module,exports){ +},{"./traverseAllChildren":199,"_process":23,"fbjs/lib/warning":230}],181:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23114,7 +23041,7 @@ var forEachAccumulated = function (arr, cb, scope) {  };  module.exports = forEachAccumulated; -},{}],184:[function(require,module,exports){ +},{}],182:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23165,7 +23092,7 @@ function getEventCharCode(nativeEvent) {  }  module.exports = getEventCharCode; -},{}],185:[function(require,module,exports){ +},{}],183:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23269,7 +23196,7 @@ function getEventKey(nativeEvent) {  }  module.exports = getEventKey; -},{"./getEventCharCode":184}],186:[function(require,module,exports){ +},{"./getEventCharCode":182}],184:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23314,7 +23241,7 @@ function getEventModifierState(nativeEvent) {  }  module.exports = getEventModifierState; -},{}],187:[function(require,module,exports){ +},{}],185:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23344,7 +23271,7 @@ function getEventTarget(nativeEvent) {  }  module.exports = getEventTarget; -},{}],188:[function(require,module,exports){ +},{}],186:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23385,7 +23312,7 @@ function getIteratorFn(maybeIterable) {  }  module.exports = getIteratorFn; -},{}],189:[function(require,module,exports){ +},{}],187:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23459,7 +23386,7 @@ function getNodeForCharacterOffset(root, offset) {  }  module.exports = getNodeForCharacterOffset; -},{}],190:[function(require,module,exports){ +},{}],188:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23493,7 +23420,7 @@ function getTextContentAccessor() {  }  module.exports = getTextContentAccessor; -},{"fbjs/lib/ExecutionEnvironment":206}],191:[function(require,module,exports){ +},{"fbjs/lib/ExecutionEnvironment":204}],189:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -23609,7 +23536,7 @@ function instantiateReactComponent(node) {  module.exports = instantiateReactComponent;  }).call(this,require('_process')) -},{"./Object.assign":82,"./ReactCompositeComponent":96,"./ReactEmptyComponent":117,"./ReactNativeComponent":133,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],192:[function(require,module,exports){ +},{"./Object.assign":80,"./ReactCompositeComponent":94,"./ReactEmptyComponent":115,"./ReactNativeComponent":131,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],190:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23670,7 +23597,7 @@ function isEventSupported(eventNameSuffix, capture) {  }  module.exports = isEventSupported; -},{"fbjs/lib/ExecutionEnvironment":206}],193:[function(require,module,exports){ +},{"fbjs/lib/ExecutionEnvironment":204}],191:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23711,7 +23638,7 @@ function isTextInputElement(elem) {  }  module.exports = isTextInputElement; -},{}],194:[function(require,module,exports){ +},{}],192:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -23748,7 +23675,7 @@ function onlyChild(children) {  module.exports = onlyChild;  }).call(this,require('_process')) -},{"./ReactElement":115,"_process":1,"fbjs/lib/invariant":220}],195:[function(require,module,exports){ +},{"./ReactElement":113,"_process":23,"fbjs/lib/invariant":218}],193:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23775,7 +23702,7 @@ function quoteAttributeValueForBrowser(value) {  }  module.exports = quoteAttributeValueForBrowser; -},{"./escapeTextContentForBrowser":180}],196:[function(require,module,exports){ +},{"./escapeTextContentForBrowser":178}],194:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23792,7 +23719,7 @@ module.exports = quoteAttributeValueForBrowser;  var ReactMount = require('./ReactMount');  module.exports = ReactMount.renderSubtreeIntoContainer; -},{"./ReactMount":130}],197:[function(require,module,exports){ +},{"./ReactMount":128}],195:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23883,7 +23810,7 @@ if (ExecutionEnvironment.canUseDOM) {  }  module.exports = setInnerHTML; -},{"fbjs/lib/ExecutionEnvironment":206}],198:[function(require,module,exports){ +},{"fbjs/lib/ExecutionEnvironment":204}],196:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23924,7 +23851,7 @@ if (ExecutionEnvironment.canUseDOM) {  }  module.exports = setTextContent; -},{"./escapeTextContentForBrowser":180,"./setInnerHTML":197,"fbjs/lib/ExecutionEnvironment":206}],199:[function(require,module,exports){ +},{"./escapeTextContentForBrowser":178,"./setInnerHTML":195,"fbjs/lib/ExecutionEnvironment":204}],197:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23949,7 +23876,7 @@ function shallowCompare(instance, nextProps, nextState) {  }  module.exports = shallowCompare; -},{"fbjs/lib/shallowEqual":230}],200:[function(require,module,exports){ +},{"fbjs/lib/shallowEqual":228}],198:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -23993,7 +23920,7 @@ function shouldUpdateReactComponent(prevElement, nextElement) {  }  module.exports = shouldUpdateReactComponent; -},{}],201:[function(require,module,exports){ +},{}],199:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -24186,7 +24113,7 @@ function traverseAllChildren(children, callback, traverseContext) {  module.exports = traverseAllChildren;  }).call(this,require('_process')) -},{"./ReactCurrentOwner":97,"./ReactElement":115,"./ReactInstanceHandles":125,"./getIteratorFn":188,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/warning":232}],202:[function(require,module,exports){ +},{"./ReactCurrentOwner":95,"./ReactElement":113,"./ReactInstanceHandles":123,"./getIteratorFn":186,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/warning":230}],200:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -24297,7 +24224,7 @@ function update(value, spec) {  module.exports = update;  }).call(this,require('_process')) -},{"./Object.assign":82,"_process":1,"fbjs/lib/invariant":220,"fbjs/lib/keyOf":225}],203:[function(require,module,exports){ +},{"./Object.assign":80,"_process":23,"fbjs/lib/invariant":218,"fbjs/lib/keyOf":223}],201:[function(require,module,exports){  (function (process){  /**   * Copyright 2015, Facebook, Inc. @@ -24664,7 +24591,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = validateDOMNesting;  }).call(this,require('_process')) -},{"./Object.assign":82,"_process":1,"fbjs/lib/emptyFunction":212,"fbjs/lib/warning":232}],204:[function(require,module,exports){ +},{"./Object.assign":80,"_process":23,"fbjs/lib/emptyFunction":210,"fbjs/lib/warning":230}],202:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -24765,7 +24692,7 @@ var CSSCore = {  module.exports = CSSCore;  }).call(this,require('_process')) -},{"./invariant":220,"_process":1}],205:[function(require,module,exports){ +},{"./invariant":218,"_process":23}],203:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -24853,7 +24780,7 @@ var EventListener = {  module.exports = EventListener;  }).call(this,require('_process')) -},{"./emptyFunction":212,"_process":1}],206:[function(require,module,exports){ +},{"./emptyFunction":210,"_process":23}],204:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -24890,7 +24817,7 @@ var ExecutionEnvironment = {  };  module.exports = ExecutionEnvironment; -},{}],207:[function(require,module,exports){ +},{}],205:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -24923,7 +24850,7 @@ function camelize(string) {  }  module.exports = camelize; -},{}],208:[function(require,module,exports){ +},{}],206:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -24964,7 +24891,7 @@ function camelizeStyleName(string) {  }  module.exports = camelizeStyleName; -},{"./camelize":207}],209:[function(require,module,exports){ +},{"./camelize":205}],207:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25020,7 +24947,7 @@ function containsNode(_x, _x2) {  }  module.exports = containsNode; -},{"./isTextNode":222}],210:[function(require,module,exports){ +},{"./isTextNode":220}],208:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25106,7 +25033,7 @@ function createArrayFromMixed(obj) {  }  module.exports = createArrayFromMixed; -},{"./toArray":231}],211:[function(require,module,exports){ +},{"./toArray":229}],209:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -25194,7 +25121,7 @@ function createNodesFromMarkup(markup, handleScript) {  module.exports = createNodesFromMarkup;  }).call(this,require('_process')) -},{"./ExecutionEnvironment":206,"./createArrayFromMixed":210,"./getMarkupWrap":216,"./invariant":220,"_process":1}],212:[function(require,module,exports){ +},{"./ExecutionEnvironment":204,"./createArrayFromMixed":208,"./getMarkupWrap":214,"./invariant":218,"_process":23}],210:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25233,7 +25160,7 @@ emptyFunction.thatReturnsArgument = function (arg) {  };  module.exports = emptyFunction; -},{}],213:[function(require,module,exports){ +},{}],211:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -25257,7 +25184,7 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = emptyObject;  }).call(this,require('_process')) -},{"_process":1}],214:[function(require,module,exports){ +},{"_process":23}],212:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25284,7 +25211,7 @@ function focusNode(node) {  }  module.exports = focusNode; -},{}],215:[function(require,module,exports){ +},{}],213:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25320,7 +25247,7 @@ function getActiveElement() /*?DOMElement*/{  }  module.exports = getActiveElement; -},{}],216:[function(require,module,exports){ +},{}],214:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -25419,7 +25346,7 @@ function getMarkupWrap(nodeName) {  module.exports = getMarkupWrap;  }).call(this,require('_process')) -},{"./ExecutionEnvironment":206,"./invariant":220,"_process":1}],217:[function(require,module,exports){ +},{"./ExecutionEnvironment":204,"./invariant":218,"_process":23}],215:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25458,7 +25385,7 @@ function getUnboundedScrollPosition(scrollable) {  }  module.exports = getUnboundedScrollPosition; -},{}],218:[function(require,module,exports){ +},{}],216:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25492,7 +25419,7 @@ function hyphenate(string) {  }  module.exports = hyphenate; -},{}],219:[function(require,module,exports){ +},{}],217:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25532,7 +25459,7 @@ function hyphenateStyleName(string) {  }  module.exports = hyphenateStyleName; -},{"./hyphenate":218}],220:[function(require,module,exports){ +},{"./hyphenate":216}],218:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -25586,7 +25513,7 @@ function invariant(condition, format, a, b, c, d, e, f) {  module.exports = invariant;  }).call(this,require('_process')) -},{"_process":1}],221:[function(require,module,exports){ +},{"_process":23}],219:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25610,7 +25537,7 @@ function isNode(object) {  }  module.exports = isNode; -},{}],222:[function(require,module,exports){ +},{}],220:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25636,7 +25563,7 @@ function isTextNode(object) {  }  module.exports = isTextNode; -},{"./isNode":221}],223:[function(require,module,exports){ +},{"./isNode":219}],221:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25676,7 +25603,7 @@ function joinClasses(className /*, ... */) {  }  module.exports = joinClasses; -},{}],224:[function(require,module,exports){ +},{}],222:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -25728,7 +25655,7 @@ var keyMirror = function (obj) {  module.exports = keyMirror;  }).call(this,require('_process')) -},{"./invariant":220,"_process":1}],225:[function(require,module,exports){ +},{"./invariant":218,"_process":23}],223:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25764,7 +25691,7 @@ var keyOf = function (oneKeyObj) {  };  module.exports = keyOf; -},{}],226:[function(require,module,exports){ +},{}],224:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25816,7 +25743,7 @@ function mapObject(object, callback, context) {  }  module.exports = mapObject; -},{}],227:[function(require,module,exports){ +},{}],225:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25848,7 +25775,7 @@ function memoizeStringOnly(callback) {  }  module.exports = memoizeStringOnly; -},{}],228:[function(require,module,exports){ +},{}],226:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25872,7 +25799,7 @@ if (ExecutionEnvironment.canUseDOM) {  }  module.exports = performance || {}; -},{"./ExecutionEnvironment":206}],229:[function(require,module,exports){ +},{"./ExecutionEnvironment":204}],227:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25907,7 +25834,7 @@ if (performance.now) {  }  module.exports = performanceNow; -},{"./performance":228}],230:[function(require,module,exports){ +},{"./performance":226}],228:[function(require,module,exports){  /**   * Copyright 2013-2015, Facebook, Inc.   * All rights reserved. @@ -25958,7 +25885,7 @@ function shallowEqual(objA, objB) {  }  module.exports = shallowEqual; -},{}],231:[function(require,module,exports){ +},{}],229:[function(require,module,exports){  (function (process){  /**   * Copyright 2013-2015, Facebook, Inc. @@ -26019,7 +25946,7 @@ function toArray(obj) {  module.exports = toArray;  }).call(this,require('_process')) -},{"./invariant":220,"_process":1}],232:[function(require,module,exports){ +},{"./invariant":218,"_process":23}],230:[function(require,module,exports){  (function (process){  /**   * Copyright 2014-2015, Facebook, Inc. @@ -26080,7 +26007,80 @@ if (process.env.NODE_ENV !== 'production') {  module.exports = warning;  }).call(this,require('_process')) -},{"./emptyFunction":212,"_process":1}],"flux":[function(require,module,exports){ +},{"./emptyFunction":210,"_process":23}],231:[function(require,module,exports){ +'use strict'; +module.exports = function (str) { +	return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { +		return '%' + c.charCodeAt(0).toString(16).toUpperCase(); +	}); +}; + +},{}],232:[function(require,module,exports){ +(function (process){ +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +'use strict'; + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = function() {}; + +if (process.env.NODE_ENV !== 'production') { +  warning = function(condition, format, args) { +    var len = arguments.length; +    args = new Array(len > 2 ? len - 2 : 0); +    for (var key = 2; key < len; key++) { +      args[key - 2] = arguments[key]; +    } +    if (format === undefined) { +      throw new Error( +        '`warning(condition, format, ...args)` requires a warning ' + +        'message argument' +      ); +    } + +    if (format.length < 10 || (/^[s\W]*$/).test(format)) { +      throw new Error( +        'The warning format should be able to uniquely identify this ' + +        'warning. Please, use a more descriptive format than: ' + format +      ); +    } + +    if (!condition) { +      var argIndex = 0; +      var message = 'Warning: ' + +        format.replace(/%s/g, function() { +          return args[argIndex++]; +        }); +      if (typeof console !== 'undefined') { +        console.error(message); +      } +      try { +        // This error was thrown as a convenience so that you can use this stack +        // to find the callsite that caused this warning to fire. +        throw new Error(message); +      } catch(x) {} +    } +  }; +} + +module.exports = warning; + +}).call(this,require('_process')) + +},{"_process":23}],"flux":[function(require,module,exports){  /**   * Copyright (c) 2014-2015, Facebook, Inc.   * All rights reserved. @@ -26092,7 +26092,7 @@ module.exports = warning;  module.exports.Dispatcher = require('./lib/Dispatcher'); -},{"./lib/Dispatcher":2}],"jquery":[function(require,module,exports){ +},{"./lib/Dispatcher":5}],"jquery":[function(require,module,exports){  /*!   * jQuery JavaScript Library v2.2.1   * http://jquery.com/ @@ -50868,7 +50868,7 @@ return jQuery;  module.exports = require('react/lib/ReactDOM'); -},{"react/lib/ReactDOM":98}],"react-router":[function(require,module,exports){ +},{"react/lib/ReactDOM":96}],"react-router":[function(require,module,exports){  /* components */  'use strict'; @@ -51005,7 +51005,7 @@ var _createMemoryHistory2 = require('./createMemoryHistory');  var _createMemoryHistory3 = _interopRequireDefault(_createMemoryHistory2);  exports.createMemoryHistory = _createMemoryHistory3['default']; -},{"./History":5,"./IndexLink":6,"./IndexRedirect":7,"./IndexRoute":8,"./Lifecycle":9,"./Link":10,"./PatternUtils":11,"./PropTypes":12,"./Redirect":13,"./Route":14,"./RouteContext":15,"./RouteUtils":16,"./Router":17,"./RouterContext":18,"./RoutingContext":20,"./browserHistory":22,"./createMemoryHistory":24,"./hashHistory":30,"./match":32,"./useRouterHistory":35,"./useRoutes":36}],"react/addons":[function(require,module,exports){ +},{"./History":26,"./IndexLink":27,"./IndexRedirect":28,"./IndexRoute":29,"./Lifecycle":30,"./Link":31,"./PatternUtils":32,"./PropTypes":33,"./Redirect":34,"./Route":35,"./RouteContext":36,"./RouteUtils":37,"./Router":38,"./RouterContext":39,"./RoutingContext":41,"./browserHistory":43,"./createMemoryHistory":45,"./hashHistory":51,"./match":53,"./useRouterHistory":56,"./useRoutes":57}],"react/addons":[function(require,module,exports){  'use strict';  var warning = require('fbjs/lib/warning'); @@ -51020,12 +51020,12 @@ warning(  module.exports = require('./lib/ReactWithAddons'); -},{"./lib/ReactWithAddons":156,"fbjs/lib/warning":232}],"react":[function(require,module,exports){ +},{"./lib/ReactWithAddons":154,"fbjs/lib/warning":230}],"react":[function(require,module,exports){  'use strict';  module.exports = require('./lib/React'); -},{"./lib/React":84}]},{},[]) +},{"./lib/React":82}]},{},[])  //# sourceMappingURL=vendor.js.map diff --git a/web/src/js/components/flowtable.js b/web/src/js/components/flowtable.js index 1d99c318..988d1895 100644 --- a/web/src/js/components/flowtable.js +++ b/web/src/js/components/flowtable.js @@ -143,7 +143,7 @@ var FlowTable = React.createClass({      },      scrollIntoView: function (flow) {          this.scrollRowIntoView( -            this.context.view.index(flow), +            this.context.view.indexOf(flow),              ReactDOM.findDOMNode(this.refs.body).offsetTop          );      }, diff --git a/web/src/js/store/view.js b/web/src/js/store/view.js index 3ec337a1..d8aeba60 100644 --- a/web/src/js/store/view.js +++ b/web/src/js/store/view.js @@ -59,12 +59,12 @@ _.extend(StoreView.prototype, EventEmitter.prototype, {          });          this.emit("recalculate");      }, -    index: function (elem) { -        return _.sortedIndexBy(this.list, elem, this.sortfun); +    indexOf: function (elem) { +        return this.list.indexOf(elem, _.sortedIndexBy(this.list, elem, this.sortfun));      },      add: function (elem) {          if (this.filt(elem)) { -            var idx = this.index(elem); +            var idx = _.sortedIndexBy(this.list, elem, this.sortfun);              if (idx === this.list.length) { //happens often, .push is way faster.                  this.list.push(elem);              } else { | 
