1628 lines
3.2 MiB
1628 lines
3.2 MiB
/******/ (function(modules) { // webpackBootstrap
|
||
/******/ // The module cache
|
||
/******/ var installedModules = {};
|
||
|
||
/******/ // The require function
|
||
/******/ function __webpack_require__(moduleId) {
|
||
|
||
/******/ // Check if module is in cache
|
||
/******/ if(installedModules[moduleId])
|
||
/******/ return installedModules[moduleId].exports;
|
||
|
||
/******/ // Create a new module (and put it into the cache)
|
||
/******/ var module = installedModules[moduleId] = {
|
||
/******/ exports: {},
|
||
/******/ id: moduleId,
|
||
/******/ loaded: false
|
||
/******/ };
|
||
|
||
/******/ // Execute the module function
|
||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||
|
||
/******/ // Flag the module as loaded
|
||
/******/ module.loaded = true;
|
||
|
||
/******/ // Return the exports of the module
|
||
/******/ return module.exports;
|
||
/******/ }
|
||
|
||
|
||
/******/ // expose the modules object (__webpack_modules__)
|
||
/******/ __webpack_require__.m = modules;
|
||
|
||
/******/ // expose the module cache
|
||
/******/ __webpack_require__.c = installedModules;
|
||
|
||
/******/ // __webpack_public_path__
|
||
/******/ __webpack_require__.p = "";
|
||
|
||
/******/ // Load entry module and return exports
|
||
/******/ return __webpack_require__(0);
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ([
|
||
/* 0 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(158);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _redux = __webpack_require__(159);\n\nvar Redux = _interopRequireWildcard(_redux);\n\nvar _reactRedux = __webpack_require__(180);\n\nvar _localStore = __webpack_require__(189);\n\nvar localStore = _interopRequireWildcard(_localStore);\n\nvar _reducers = __webpack_require__(190);\n\nvar reducers = _interopRequireWildcard(_reducers);\n\nvar _Main = __webpack_require__(191);\n\nvar _Main2 = _interopRequireDefault(_Main);\n\nvar _Compare = __webpack_require__(246);\n\nvar _Compare2 = _interopRequireDefault(_Compare);\n\nvar _reactRouter = __webpack_require__(197);\n\nvar _createBrowserHistory = __webpack_require__(249);\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//create the redux store\n//initial state is retrieved from localStore\nvar store = Redux.createStore(Redux.combineReducers(reducers), localStore.get(\"dubdiff\"), window.devToolsExtension ? window.devToolsExtension() : undefined);\n\n//save the state whenever the state changes\nfunction saveState() {\n var state = store.getState();\n //pass the elements of state that should be persisted to the local store as an array of element name strings\n localStore.set(state, [\"input\"], \"dubdiff\");\n}\nstore.subscribe(saveState);\n\nfunction render() {\n _reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: store },\n _react2.default.createElement(\n _reactRouter.Router,\n { history: (0, _createBrowserHistory2.default)() },\n _react2.default.createElement(_reactRouter.Route, { path: '/', component: _Main2.default }),\n _react2.default.createElement(_reactRouter.Route, { path: '/**', component: _Compare2.default })\n )\n ), document.getElementById('root'));\n}\n\nrender();//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NsaWVudC5qcz9kMTBlIl0sIm5hbWVzIjpbIlJlZHV4IiwibG9jYWxTdG9yZSIsInJlZHVjZXJzIiwic3RvcmUiLCJjcmVhdGVTdG9yZSIsImNvbWJpbmVSZWR1Y2VycyIsImdldCIsIndpbmRvdyIsImRldlRvb2xzRXh0ZW5zaW9uIiwidW5kZWZpbmVkIiwic2F2ZVN0YXRlIiwic3RhdGUiLCJnZXRTdGF0ZSIsInNldCIsInN1YnNjcmliZSIsInJlbmRlciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOztJQUFZQSxLOztBQUVaOztBQUNBOztJQUFZQyxVOztBQUVaOztJQUFZQyxROztBQUVaOzs7O0FBQ0E7Ozs7QUFFQTs7QUFDQTs7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0EsSUFBTUMsUUFBUUgsTUFBTUksV0FBTixDQUNaSixNQUFNSyxlQUFOLENBQXNCSCxRQUF0QixDQURZLEVBRVpELFdBQVdLLEdBQVgsQ0FBZSxTQUFmLENBRlksRUFHWkMsT0FBT0MsaUJBQVAsR0FBMkJELE9BQU9DLGlCQUFQLEVBQTNCLEdBQXdEQyxTQUg1QyxDQUFkOztBQU1BO0FBQ0EsU0FBU0MsU0FBVCxHQUFxQjtBQUNuQixNQUFJQyxRQUFRUixNQUFNUyxRQUFOLEVBQVo7QUFDQTtBQUNBWCxhQUFXWSxHQUFYLENBQWVGLEtBQWYsRUFBc0IsQ0FBQyxPQUFELENBQXRCLEVBQWlDLFNBQWpDO0FBQ0Q7QUFDRFIsTUFBTVcsU0FBTixDQUFnQkosU0FBaEI7O0FBR0EsU0FBU0ssTUFBVCxHQUFrQjtBQUNkLHFCQUFTQSxNQUFULENBQ0E7QUFBQTtBQUFBLE1BQVUsT0FBT1osS0FBakI7QUFDSTtBQUFBO0FBQUEsUUFBUSxTQUFTLHFDQUFqQjtBQUNJLDBEQUFPLE1BQUssR0FBWixFQUFnQix5QkFBaEIsR0FESjtBQUVJLDBEQUFPLE1BQUssS0FBWixFQUFrQiw0QkFBbEI7QUFGSjtBQURKLEdBREEsRUFPQWEsU0FBU0MsY0FBVCxDQUF3QixNQUF4QixDQVBBO0FBUUg7O0FBRURGIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuXG5pbXBvcnQgKiBhcyBSZWR1eCBmcm9tICdyZWR1eCdcblxuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAncmVhY3QtcmVkdXgnXG5pbXBvcnQgKiBhcyBsb2NhbFN0b3JlIGZyb20gJy4vbG9jYWxTdG9yZSdcblxuaW1wb3J0ICogYXMgcmVkdWNlcnMgZnJvbSAnLi9yZWR1Y2VycydcblxuaW1wb3J0IE1haW4gZnJvbSAnLi9jb21wb25lbnRzL01haW4nXG5pbXBvcnQgQ29tcGFyZSBmcm9tICcuL2NvbXBvbmVudHMvQ29tcGFyZSdcblxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAncmVhY3Qtcm91dGVyJ1xuaW1wb3J0ICBjcmVhdGVCcm93c2VySGlzdG9yeSAgZnJvbSAnaGlzdG9yeS9saWIvY3JlYXRlQnJvd3Nlckhpc3RvcnknXG5pbXBvcnQgIHtSb3V0ZSwgSW5kZXhSb3V0ZSwgUmVkaXJlY3QgfSBmcm9tICdyZWFjdC1yb3V0ZXInXG5cblxuLy9jcmVhdGUgdGhlIHJlZHV4IHN0b3JlXG4vL2luaXRpYWwgc3RhdGUgaXMgcmV0cmlldmVkIGZyb20gbG9jYWxTdG9yZVxuY29uc3Qgc3RvcmUgPSBSZWR1eC5jcmVhdGVTdG9yZShcbiAgUmVkdXguY29tYmluZVJlZHVjZXJzKHJlZHVjZXJzKSwgXG4gIGxvY2FsU3RvcmUuZ2V0KFwiZHViZGlmZlwiKSxcbiAgd2luZG93LmRldlRvb2xzRXh0ZW5zaW9uID8gd2luZG93LmRldlRvb2xzRXh0ZW5zaW9uKCkgOiB1bmRlZmluZWRcbilcblxuLy9zYXZlIHRoZSBzdGF0ZSB3aGVuZXZlciB0aGUgc3RhdGUgY2hhbmdlc1xuZnVuY3Rpb24gc2F2ZVN0YXRlKCkge1xuICBsZXQgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpXG4gIC8vcGFzcyB0aGUgZWxlbWVudHMgb2Ygc3RhdGUgdGhhdCBzaG91bGQgYmUgcGVyc2lzdGVkIHRvIHRoZSBsb2NhbCBzdG9yZSBhcyBhbiBhcnJheSBvZiBlbGVtZW50IG5hbWUgc3RyaW5nc1xuICBsb2NhbFN0b3JlLnNldChzdGF0ZSwgW1wiaW5wdXRcIl0sIFwiZHViZGlmZlwiKSBcbn1cbnN0b3JlLnN1YnNjcmliZShzYXZlU3RhdGUpXG5cblxuZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICA8UHJvdmlkZXIgc3RvcmU9e3N0b3JlfT5cbiAgICAgICAgPFJvdXRlciBoaXN0b3J5PXtjcmVhdGVCcm93c2VySGlzdG9yeSgpfT5cbiAgICAgICAgICAgIDxSb3V0ZSBwYXRoPVwiL1wiIGNvbXBvbmVudD17TWFpbn0gIC8+XG4gICAgICAgICAgICA8Um91dGUgcGF0aD1cIi8qKlwiIGNvbXBvbmVudD17Q29tcGFyZX0vPlxuICAgICAgICA8L1JvdXRlcj5cbiAgICA8L1Byb3ZpZGVyPlxuICAsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JykpXG59XG5cbnJlbmRlcigpXG4gIFxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9zcmMvY2xpZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 1 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nmodule.exports = __webpack_require__(2);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9yZWFjdC5qcz9lMDcxIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQixtQkFBQUMsQ0FBUSxDQUFSLENBQWpCIiwiZmlsZSI6IjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvUmVhY3QnKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L3JlYWN0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 2 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule React\n */\n\n'use strict';\n\nvar ReactDOM = __webpack_require__(3);\nvar ReactDOMServer = __webpack_require__(148);\nvar ReactIsomorphic = __webpack_require__(152);\n\nvar assign = __webpack_require__(39);\nvar deprecated = __webpack_require__(157);\n\n// `version` will be added here by ReactIsomorphic.\nvar React = {};\n\nassign(React, ReactIsomorphic);\n\nassign(React, {\n // ReactDOM\n findDOMNode: deprecated('findDOMNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.findDOMNode),\n render: deprecated('render', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.render),\n unmountComponentAtNode: deprecated('unmountComponentAtNode', 'ReactDOM', 'react-dom', ReactDOM, ReactDOM.unmountComponentAtNode),\n\n // ReactDOMServer\n renderToString: deprecated('renderToString', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToString),\n renderToStaticMarkup: deprecated('renderToStaticMarkup', 'ReactDOMServer', 'react-dom/server', ReactDOMServer, ReactDOMServer.renderToStaticMarkup)\n});\n\nReact.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOM;\nReact.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactDOMServer;\n\nmodule.exports = React;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3QuanM/YjE5ZiJdLCJuYW1lcyI6WyJSZWFjdERPTSIsInJlcXVpcmUiLCJSZWFjdERPTVNlcnZlciIsIlJlYWN0SXNvbW9ycGhpYyIsImFzc2lnbiIsImRlcHJlY2F0ZWQiLCJSZWFjdCIsImZpbmRET01Ob2RlIiwicmVuZGVyIiwidW5tb3VudENvbXBvbmVudEF0Tm9kZSIsInJlbmRlclRvU3RyaW5nIiwicmVuZGVyVG9TdGF0aWNNYXJrdXAiLCJfX1NFQ1JFVF9ET01fRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsIl9fU0VDUkVUX0RPTV9TRVJWRVJfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLFdBQVcsbUJBQUFDLENBQVEsQ0FBUixDQUFmO0FBQ0EsSUFBSUMsaUJBQWlCLG1CQUFBRCxDQUFRLEdBQVIsQ0FBckI7QUFDQSxJQUFJRSxrQkFBa0IsbUJBQUFGLENBQVEsR0FBUixDQUF0Qjs7QUFFQSxJQUFJRyxTQUFTLG1CQUFBSCxDQUFRLEVBQVIsQ0FBYjtBQUNBLElBQUlJLGFBQWEsbUJBQUFKLENBQVEsR0FBUixDQUFqQjs7QUFFQTtBQUNBLElBQUlLLFFBQVEsRUFBWjs7QUFFQUYsT0FBT0UsS0FBUCxFQUFjSCxlQUFkOztBQUVBQyxPQUFPRSxLQUFQLEVBQWM7QUFDWjtBQUNBQyxlQUFhRixXQUFXLGFBQVgsRUFBMEIsVUFBMUIsRUFBc0MsV0FBdEMsRUFBbURMLFFBQW5ELEVBQTZEQSxTQUFTTyxXQUF0RSxDQUZEO0FBR1pDLFVBQVFILFdBQVcsUUFBWCxFQUFxQixVQUFyQixFQUFpQyxXQUFqQyxFQUE4Q0wsUUFBOUMsRUFBd0RBLFNBQVNRLE1BQWpFLENBSEk7QUFJWkMsMEJBQXdCSixXQUFXLHdCQUFYLEVBQXFDLFVBQXJDLEVBQWlELFdBQWpELEVBQThETCxRQUE5RCxFQUF3RUEsU0FBU1Msc0JBQWpGLENBSlo7O0FBTVo7QUFDQUMsa0JBQWdCTCxXQUFXLGdCQUFYLEVBQTZCLGdCQUE3QixFQUErQyxrQkFBL0MsRUFBbUVILGNBQW5FLEVBQW1GQSxlQUFlUSxjQUFsRyxDQVBKO0FBUVpDLHdCQUFzQk4sV0FBVyxzQkFBWCxFQUFtQyxnQkFBbkMsRUFBcUQsa0JBQXJELEVBQXlFSCxjQUF6RSxFQUF5RkEsZUFBZVMsb0JBQXhHO0FBUlYsQ0FBZDs7QUFXQUwsTUFBTU0sNENBQU4sR0FBcURaLFFBQXJEO0FBQ0FNLE1BQU1PLG1EQUFOLEdBQTREWCxjQUE1RDs7QUFFQVksT0FBT0MsT0FBUCxHQUFpQlQsS0FBakIiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0RE9NID0gcmVxdWlyZSgnLi9SZWFjdERPTScpO1xudmFyIFJlYWN0RE9NU2VydmVyID0gcmVxdWlyZSgnLi9SZWFjdERPTVNlcnZlcicpO1xudmFyIFJlYWN0SXNvbW9ycGhpYyA9IHJlcXVpcmUoJy4vUmVhY3RJc29tb3JwaGljJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBkZXByZWNhdGVkID0gcmVxdWlyZSgnLi9kZXByZWNhdGVkJyk7XG5cbi8vIGB2ZXJzaW9uYCB3aWxsIGJlIGFkZGVkIGhlcmUgYnkgUmVhY3RJc29tb3JwaGljLlxudmFyIFJlYWN0ID0ge307XG5cbmFzc2lnbihSZWFjdCwgUmVhY3RJc29tb3JwaGljKTtcblxuYXNzaWduKFJlYWN0LCB7XG4gIC8vIFJlYWN0RE9NXG4gIGZpbmRET01Ob2RlOiBkZXByZWNhdGVkKCdmaW5kRE9NTm9kZScsICdSZWFjdERPTScsICdyZWFjdC1kb20nLCBSZWFjdERPTSwgUmVhY3RET00uZmluZERPTU5vZGUpLFxuICByZW5kZXI6IGRlcHJlY2F0ZWQoJ3JlbmRlcicsICdSZWFjdERPTScsICdyZWFjdC1kb20nLCBSZWFjdERPTSwgUmVhY3RET00ucmVuZGVyKSxcbiAgdW5tb3VudENvbXBvbmVudEF0Tm9kZTogZGVwcmVjYXRlZCgndW5tb3VudENvbXBvbmVudEF0Tm9kZScsICdSZWFjdERPTScsICdyZWFjdC1kb20nLCBSZWFjdERPTSwgUmVhY3RET00udW5tb3VudENvbXBvbmVudEF0Tm9kZSksXG5cbiAgLy8gUmVhY3RET01TZXJ2ZXJcbiAgcmVuZGVyVG9TdHJpbmc6IGRlcHJlY2F0ZWQoJ3JlbmRlclRvU3RyaW5nJywgJ1JlYWN0RE9NU2VydmVyJywgJ3JlYWN0LWRvbS9zZXJ2ZXInLCBSZWFjdERPTVNlcnZlciwgUmVhY3RET01TZXJ2ZXIucmVuZGVyVG9TdHJpbmcpLFxuICByZW5kZXJUb1N0YXRpY01hcmt1cDogZGVwcmVjYXRlZCgncmVuZGVyVG9TdGF0aWNNYXJrdXAnLCAnUmVhY3RET01TZXJ2ZXInLCAncmVhY3QtZG9tL3NlcnZlcicsIFJlYWN0RE9NU2VydmVyLCBSZWFjdERPTVNlcnZlci5yZW5kZXJUb1N0YXRpY01hcmt1cClcbn0pO1xuXG5SZWFjdC5fX1NFQ1JFVF9ET01fRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRCA9IFJlYWN0RE9NO1xuUmVhY3QuX19TRUNSRVRfRE9NX1NFUlZFUl9ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RET01TZXJ2ZXI7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3Q7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 3 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOM\n */\n\n/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/\n\n'use strict';\n\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactDOMTextComponent = __webpack_require__(6);\nvar ReactDefaultInjection = __webpack_require__(71);\nvar ReactInstanceHandles = __webpack_require__(45);\nvar ReactMount = __webpack_require__(28);\nvar ReactPerf = __webpack_require__(18);\nvar ReactReconciler = __webpack_require__(50);\nvar ReactUpdates = __webpack_require__(54);\nvar ReactVersion = __webpack_require__(146);\n\nvar findDOMNode = __webpack_require__(91);\nvar renderSubtreeIntoContainer = __webpack_require__(147);\nvar warning = __webpack_require__(25);\n\nReactDefaultInjection.inject();\n\nvar render = ReactPerf.measure('React', 'render', ReactMount.render);\n\nvar React = {\n findDOMNode: findDOMNode,\n render: render,\n unmountComponentAtNode: ReactMount.unmountComponentAtNode,\n version: ReactVersion,\n\n /* eslint-disable camelcase */\n unstable_batchedUpdates: ReactUpdates.batchedUpdates,\n unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer\n};\n\n// Inject the runtime into a devtools global hook regardless of browser.\n// Allows for debugging when the hook is injected on the page.\n/* eslint-enable camelcase */\nif (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({\n CurrentOwner: ReactCurrentOwner,\n InstanceHandles: ReactInstanceHandles,\n Mount: ReactMount,\n Reconciler: ReactReconciler,\n TextComponent: ReactDOMTextComponent\n });\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var ExecutionEnvironment = __webpack_require__(9);\n if (ExecutionEnvironment.canUseDOM && window.top === window.self) {\n\n // First check if devtools is not installed\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n console.debug('Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools');\n }\n }\n\n // If we're in IE8, check to see if we are in compatibility mode and provide\n // information on preventing compatibility mode\n var ieCompatibilityMode = document.documentMode && document.documentMode < 8;\n\n process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />') : undefined;\n\n var expectedFeatures = [\n // shims\n Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim,\n\n // shams\n Object.create, Object.freeze];\n\n for (var i = 0; i < expectedFeatures.length; i++) {\n if (!expectedFeatures[i]) {\n console.error('One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills');\n break;\n }\n }\n }\n}\n\nmodule.exports = React;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET00uanM/MzQ2ZSJdLCJuYW1lcyI6WyJSZWFjdEN1cnJlbnRPd25lciIsInJlcXVpcmUiLCJSZWFjdERPTVRleHRDb21wb25lbnQiLCJSZWFjdERlZmF1bHRJbmplY3Rpb24iLCJSZWFjdEluc3RhbmNlSGFuZGxlcyIsIlJlYWN0TW91bnQiLCJSZWFjdFBlcmYiLCJSZWFjdFJlY29uY2lsZXIiLCJSZWFjdFVwZGF0ZXMiLCJSZWFjdFZlcnNpb24iLCJmaW5kRE9NTm9kZSIsInJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyIiwid2FybmluZyIsImluamVjdCIsInJlbmRlciIsIm1lYXN1cmUiLCJSZWFjdCIsInVubW91bnRDb21wb25lbnRBdE5vZGUiLCJ2ZXJzaW9uIiwidW5zdGFibGVfYmF0Y2hlZFVwZGF0ZXMiLCJiYXRjaGVkVXBkYXRlcyIsInVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyIiwiX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwiQ3VycmVudE93bmVyIiwiSW5zdGFuY2VIYW5kbGVzIiwiTW91bnQiLCJSZWNvbmNpbGVyIiwiVGV4dENvbXBvbmVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkV4ZWN1dGlvbkVudmlyb25tZW50IiwiY2FuVXNlRE9NIiwid2luZG93IiwidG9wIiwic2VsZiIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImluZGV4T2YiLCJjb25zb2xlIiwiZGVidWciLCJpZUNvbXBhdGliaWxpdHlNb2RlIiwiZG9jdW1lbnQiLCJkb2N1bWVudE1vZGUiLCJ1bmRlZmluZWQiLCJleHBlY3RlZEZlYXR1cmVzIiwiQXJyYXkiLCJpc0FycmF5IiwicHJvdG90eXBlIiwiZXZlcnkiLCJmb3JFYWNoIiwibWFwIiwiRGF0ZSIsIm5vdyIsIkZ1bmN0aW9uIiwiYmluZCIsIk9iamVjdCIsImtleXMiLCJTdHJpbmciLCJzcGxpdCIsInRyaW0iLCJjcmVhdGUiLCJmcmVlemUiLCJpIiwibGVuZ3RoIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQTs7QUFFQSxJQUFJQSxvQkFBb0IsbUJBQUFDLENBQVEsQ0FBUixDQUF4QjtBQUNBLElBQUlDLHdCQUF3QixtQkFBQUQsQ0FBUSxDQUFSLENBQTVCO0FBQ0EsSUFBSUUsd0JBQXdCLG1CQUFBRixDQUFRLEVBQVIsQ0FBNUI7QUFDQSxJQUFJRyx1QkFBdUIsbUJBQUFILENBQVEsRUFBUixDQUEzQjtBQUNBLElBQUlJLGFBQWEsbUJBQUFKLENBQVEsRUFBUixDQUFqQjtBQUNBLElBQUlLLFlBQVksbUJBQUFMLENBQVEsRUFBUixDQUFoQjtBQUNBLElBQUlNLGtCQUFrQixtQkFBQU4sQ0FBUSxFQUFSLENBQXRCO0FBQ0EsSUFBSU8sZUFBZSxtQkFBQVAsQ0FBUSxFQUFSLENBQW5CO0FBQ0EsSUFBSVEsZUFBZSxtQkFBQVIsQ0FBUSxHQUFSLENBQW5COztBQUVBLElBQUlTLGNBQWMsbUJBQUFULENBQVEsRUFBUixDQUFsQjtBQUNBLElBQUlVLDZCQUE2QixtQkFBQVYsQ0FBUSxHQUFSLENBQWpDO0FBQ0EsSUFBSVcsVUFBVSxtQkFBQVgsQ0FBUSxFQUFSLENBQWQ7O0FBRUFFLHNCQUFzQlUsTUFBdEI7O0FBRUEsSUFBSUMsU0FBU1IsVUFBVVMsT0FBVixDQUFrQixPQUFsQixFQUEyQixRQUEzQixFQUFxQ1YsV0FBV1MsTUFBaEQsQ0FBYjs7QUFFQSxJQUFJRSxRQUFRO0FBQ1ZOLGVBQWFBLFdBREg7QUFFVkksVUFBUUEsTUFGRTtBQUdWRywwQkFBd0JaLFdBQVdZLHNCQUh6QjtBQUlWQyxXQUFTVCxZQUpDOztBQU1WO0FBQ0FVLDJCQUF5QlgsYUFBYVksY0FQNUI7QUFRVkMsdUNBQXFDVjtBQVIzQixDQUFaOztBQVdBO0FBQ0E7QUFDQTtBQUNBLElBQUksT0FBT1csOEJBQVAsS0FBMEMsV0FBMUMsSUFBeUQsT0FBT0EsK0JBQStCVCxNQUF0QyxLQUFpRCxVQUE5RyxFQUEwSDtBQUN4SFMsaUNBQStCVCxNQUEvQixDQUFzQztBQUNwQ1Usa0JBQWN2QixpQkFEc0I7QUFFcEN3QixxQkFBaUJwQixvQkFGbUI7QUFHcENxQixXQUFPcEIsVUFINkI7QUFJcENxQixnQkFBWW5CLGVBSndCO0FBS3BDb0IsbUJBQWV6QjtBQUxxQixHQUF0QztBQU9EOztBQUVELElBQUkwQixRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsTUFBSUMsdUJBQXVCLG1CQUFBOUIsQ0FBUSxDQUFSLENBQTNCO0FBQ0EsTUFBSThCLHFCQUFxQkMsU0FBckIsSUFBa0NDLE9BQU9DLEdBQVAsS0FBZUQsT0FBT0UsSUFBNUQsRUFBa0U7O0FBRWhFO0FBQ0EsUUFBSSxPQUFPYiw4QkFBUCxLQUEwQyxXQUE5QyxFQUEyRDtBQUN6RDtBQUNBLFVBQUljLFVBQVVDLFNBQVYsQ0FBb0JDLE9BQXBCLENBQTRCLFFBQTVCLElBQXdDLENBQUMsQ0FBekMsSUFBOENGLFVBQVVDLFNBQVYsQ0FBb0JDLE9BQXBCLENBQTRCLE1BQTVCLE1BQXdDLENBQUMsQ0FBdkYsSUFBNEZGLFVBQVVDLFNBQVYsQ0FBb0JDLE9BQXBCLENBQTRCLFNBQTVCLElBQXlDLENBQUMsQ0FBMUksRUFBNkk7QUFDM0lDLGdCQUFRQyxLQUFSLENBQWMsc0VBQXNFLDhCQUFwRjtBQUNEO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBLFFBQUlDLHNCQUFzQkMsU0FBU0MsWUFBVCxJQUF5QkQsU0FBU0MsWUFBVCxHQUF3QixDQUEzRTs7QUFFQWYsWUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDbEIsUUFBUSxDQUFDNkIsbUJBQVQsRUFBOEIsd0VBQXdFLDZEQUF4RSxHQUF3SSx5REFBdEssQ0FBeEMsR0FBMlFHLFNBQTNROztBQUVBLFFBQUlDLG1CQUFtQjtBQUN2QjtBQUNBQyxVQUFNQyxPQUZpQixFQUVSRCxNQUFNRSxTQUFOLENBQWdCQyxLQUZSLEVBRWVILE1BQU1FLFNBQU4sQ0FBZ0JFLE9BRi9CLEVBRXdDSixNQUFNRSxTQUFOLENBQWdCVixPQUZ4RCxFQUVpRVEsTUFBTUUsU0FBTixDQUFnQkcsR0FGakYsRUFFc0ZDLEtBQUtDLEdBRjNGLEVBRWdHQyxTQUFTTixTQUFULENBQW1CTyxJQUZuSCxFQUV5SEMsT0FBT0MsSUFGaEksRUFFc0lDLE9BQU9WLFNBQVAsQ0FBaUJXLEtBRnZKLEVBRThKRCxPQUFPVixTQUFQLENBQWlCWSxJQUYvSzs7QUFJdkI7QUFDQUosV0FBT0ssTUFMZ0IsRUFLUkwsT0FBT00sTUFMQyxDQUF2Qjs7QUFPQSxTQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSWxCLGlCQUFpQm1CLE1BQXJDLEVBQTZDRCxHQUE3QyxFQUFrRDtBQUNoRCxVQUFJLENBQUNsQixpQkFBaUJrQixDQUFqQixDQUFMLEVBQTBCO0FBQ3hCeEIsZ0JBQVEwQixLQUFSLENBQWMscUVBQXFFLHVDQUFuRjtBQUNBO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUJuRCxLQUFqQixDIiwiZmlsZSI6IjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RET01cbiAqL1xuXG4vKiBnbG9iYWxzIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgnLi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0RE9NVGV4dENvbXBvbmVudCA9IHJlcXVpcmUoJy4vUmVhY3RET01UZXh0Q29tcG9uZW50Jyk7XG52YXIgUmVhY3REZWZhdWx0SW5qZWN0aW9uID0gcmVxdWlyZSgnLi9SZWFjdERlZmF1bHRJbmplY3Rpb24nKTtcbnZhciBSZWFjdEluc3RhbmNlSGFuZGxlcyA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZUhhbmRsZXMnKTtcbnZhciBSZWFjdE1vdW50ID0gcmVxdWlyZSgnLi9SZWFjdE1vdW50Jyk7XG52YXIgUmVhY3RQZXJmID0gcmVxdWlyZSgnLi9SZWFjdFBlcmYnKTtcbnZhciBSZWFjdFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0UmVjb25jaWxlcicpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG52YXIgUmVhY3RWZXJzaW9uID0gcmVxdWlyZSgnLi9SZWFjdFZlcnNpb24nKTtcblxudmFyIGZpbmRET01Ob2RlID0gcmVxdWlyZSgnLi9maW5kRE9NTm9kZScpO1xudmFyIHJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyID0gcmVxdWlyZSgnLi9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcicpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cblJlYWN0RGVmYXVsdEluamVjdGlvbi5pbmplY3QoKTtcblxudmFyIHJlbmRlciA9IFJlYWN0UGVyZi5tZWFzdXJlKCdSZWFjdCcsICdyZW5kZXInLCBSZWFjdE1vdW50LnJlbmRlcik7XG5cbnZhciBSZWFjdCA9IHtcbiAgZmluZERPTU5vZGU6IGZpbmRET01Ob2RlLFxuICByZW5kZXI6IHJlbmRlcixcbiAgdW5tb3VudENvbXBvbmVudEF0Tm9kZTogUmVhY3RNb3VudC51bm1vdW50Q29tcG9uZW50QXROb2RlLFxuICB2ZXJzaW9uOiBSZWFjdFZlcnNpb24sXG5cbiAgLyogZXNsaW50LWRpc2FibGUgY2FtZWxjYXNlICovXG4gIHVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzOiBSZWFjdFVwZGF0ZXMuYmF0Y2hlZFVwZGF0ZXMsXG4gIHVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyOiByZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lclxufTtcblxuLy8gSW5qZWN0IHRoZSBydW50aW1lIGludG8gYSBkZXZ0b29scyBnbG9iYWwgaG9vayByZWdhcmRsZXNzIG9mIGJyb3dzZXIuXG4vLyBBbGxvd3MgZm9yIGRlYnVnZ2luZyB3aGVuIHRoZSBob29rIGlzIGluamVjdGVkIG9uIHRoZSBwYWdlLlxuLyogZXNsaW50LWVuYWJsZSBjYW1lbGNhc2UgKi9cbmlmICh0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmluamVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uaW5qZWN0KHtcbiAgICBDdXJyZW50T3duZXI6IFJlYWN0Q3VycmVudE93bmVyLFxuICAgIEluc3RhbmNlSGFuZGxlczogUmVhY3RJbnN0YW5jZUhhbmRsZXMsXG4gICAgTW91bnQ6IFJlYWN0TW91bnQsXG4gICAgUmVjb25jaWxlcjogUmVhY3RSZWNvbmNpbGVyLFxuICAgIFRleHRDb21wb25lbnQ6IFJlYWN0RE9NVGV4dENvbXBvbmVudFxuICB9KTtcbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbiAgaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSAmJiB3aW5kb3cudG9wID09PSB3aW5kb3cuc2VsZikge1xuXG4gICAgLy8gRmlyc3QgY2hlY2sgaWYgZGV2dG9vbHMgaXMgbm90IGluc3RhbGxlZFxuICAgIGlmICh0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gSWYgd2UncmUgaW4gQ2hyb21lIG9yIEZpcmVmb3gsIHByb3ZpZGUgYSBkb3dubG9hZCBsaW5rIGlmIG5vdCBpbnN0YWxsZWQuXG4gICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpID09PSAtMSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0ZpcmVmb3gnKSA+IC0xKSB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoJ0Rvd25sb2FkIHRoZSBSZWFjdCBEZXZUb29scyBmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArICdodHRwczovL2ZiLm1lL3JlYWN0LWRldnRvb2xzJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgd2UncmUgaW4gSUU4LCBjaGVjayB0byBzZWUgaWYgd2UgYXJlIGluIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgcHJvdmlkZVxuICAgIC8vIGluZm9ybWF0aW9uIG9uIHByZXZlbnRpbmcgY29tcGF0aWJpbGl0eSBtb2RlXG4gICAgdmFyIGllQ29tcGF0aWJpbGl0eU1vZGUgPSBkb2N1bWVudC5kb2N1bWVudE1vZGUgJiYgZG9jdW1lbnQuZG9jdW1lbnRNb2RlIDwgODtcblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFpZUNvbXBhdGliaWxpdHlNb2RlLCAnSW50ZXJuZXQgRXhwbG9yZXIgaXMgcnVubmluZyBpbiBjb21wYXRpYmlsaXR5IG1vZGU7IHBsZWFzZSBhZGQgdGhlICcgKyAnZm9sbG93aW5nIHRhZyB0byB5b3VyIEhUTUwgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nOiAnICsgJzxtZXRhIGh0dHAtZXF1aXY9XCJYLVVBLUNvbXBhdGlibGVcIiBjb250ZW50PVwiSUU9ZWRnZVwiIC8+JykgOiB1bmRlZmluZWQ7XG5cbiAgICB2YXIgZXhwZWN0ZWRGZWF0dXJlcyA9IFtcbiAgICAvLyBzaGltc1xuICAgIEFycmF5LmlzQXJyYXksIEFycmF5LnByb3RvdHlwZS5ldmVyeSwgQXJyYXkucHJvdG90eXBlLmZvckVhY2gsIEFycmF5LnByb3RvdHlwZS5pbmRleE9mLCBBcnJheS5wcm90b3R5cGUubWFwLCBEYXRlLm5vdywgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsIE9iamVjdC5rZXlzLCBTdHJpbmcucHJvdG90eXBlLnNwbGl0LCBTdHJpbmcucHJvdG90eXBlLnRyaW0sXG5cbiAgICAvLyBzaGFtc1xuICAgIE9iamVjdC5jcmVhdGUsIE9iamVjdC5mcmVlemVdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZEZlYXR1cmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIWV4cGVjdGVkRmVhdHVyZXNbaV0pIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignT25lIG9yIG1vcmUgRVM1IHNoaW0vc2hhbXMgZXhwZWN0ZWQgYnkgUmVhY3QgYXJlIG5vdCBhdmFpbGFibGU6ICcgKyAnaHR0cHM6Ly9mYi5tZS9yZWFjdC13YXJuaW5nLXBvbHlmaWxscycpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET00uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 4 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9wcm9jZXNzL2Jyb3dzZXIuanM/ZTlmNyJdLCJuYW1lcyI6WyJwcm9jZXNzIiwibW9kdWxlIiwiZXhwb3J0cyIsImNhY2hlZFNldFRpbWVvdXQiLCJjYWNoZWRDbGVhclRpbWVvdXQiLCJkZWZhdWx0U2V0VGltb3V0IiwiRXJyb3IiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsImUiLCJjbGVhclRpbWVvdXQiLCJydW5UaW1lb3V0IiwiZnVuIiwiY2FsbCIsInJ1bkNsZWFyVGltZW91dCIsIm1hcmtlciIsInF1ZXVlIiwiZHJhaW5pbmciLCJjdXJyZW50UXVldWUiLCJxdWV1ZUluZGV4IiwiY2xlYW5VcE5leHRUaWNrIiwibGVuZ3RoIiwiY29uY2F0IiwiZHJhaW5RdWV1ZSIsInRpbWVvdXQiLCJsZW4iLCJydW4iLCJuZXh0VGljayIsImFyZ3MiLCJBcnJheSIsImFyZ3VtZW50cyIsImkiLCJwdXNoIiwiSXRlbSIsImFycmF5IiwicHJvdG90eXBlIiwiYXBwbHkiLCJ0aXRsZSIsImJyb3dzZXIiLCJlbnYiLCJhcmd2IiwidmVyc2lvbiIsInZlcnNpb25zIiwibm9vcCIsIm9uIiwiYWRkTGlzdGVuZXIiLCJvbmNlIiwib2ZmIiwicmVtb3ZlTGlzdGVuZXIiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJlbWl0IiwiYmluZGluZyIsIm5hbWUiLCJjd2QiLCJjaGRpciIsImRpciIsInVtYXNrIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0EsSUFBSUEsVUFBVUMsT0FBT0MsT0FBUCxHQUFpQixFQUEvQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJQyxnQkFBSjtBQUNBLElBQUlDLGtCQUFKOztBQUVBLFNBQVNDLGdCQUFULEdBQTRCO0FBQ3hCLFVBQU0sSUFBSUMsS0FBSixDQUFVLGlDQUFWLENBQU47QUFDSDtBQUNELFNBQVND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bnRlbnQiOlsiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3Byb2Nlc3MvYnJvd3Nlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 5 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCurrentOwner\n */\n\n'use strict';\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\n\nvar ReactCurrentOwner = {\n\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n\n};\n\nmodule.exports = ReactCurrentOwner;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDdXJyZW50T3duZXIuanM/MDBmYiJdLCJuYW1lcyI6WyJSZWFjdEN1cnJlbnRPd25lciIsImN1cnJlbnQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQTs7Ozs7OztBQU1BLElBQUlBLG9CQUFvQjs7QUFFdEI7Ozs7QUFJQUMsV0FBUzs7QUFOYSxDQUF4Qjs7QUFVQUMsT0FBT0MsT0FBUCxHQUFpQkgsaUJBQWpCIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RDdXJyZW50T3duZXJcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogS2VlcHMgdHJhY2sgb2YgdGhlIGN1cnJlbnQgb3duZXIuXG4gKlxuICogVGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIGNvbXBvbmVudCB3aG8gc2hvdWxkIG93biBhbnkgY29tcG9uZW50cyB0aGF0IGFyZVxuICogY3VycmVudGx5IGJlaW5nIGNvbnN0cnVjdGVkLlxuICovXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSB7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RDdXJyZW50T3duZXI7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0Q3VycmVudE93bmVyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 6 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = __webpack_require__(7);\nvar DOMPropertyOperations = __webpack_require__(22);\nvar ReactComponentBrowserEnvironment = __webpack_require__(26);\nvar ReactMount = __webpack_require__(28);\n\nvar assign = __webpack_require__(39);\nvar escapeTextContentForBrowser = __webpack_require__(21);\nvar setTextContent = __webpack_require__(20);\nvar validateDOMNesting = __webpack_require__(70);\n\n/**\n * Text nodes violate a couple assumptions that React makes about components:\n *\n * - When mounting text into the DOM, adjacent text nodes are merged.\n * - Text nodes cannot be assigned a React root ID.\n *\n * This component is used to wrap strings in elements so that they can undergo\n * the same reconciliation that is applied to elements.\n *\n * TODO: Investigate representing React components in the DOM with text nodes.\n *\n * @class ReactDOMTextComponent\n * @extends ReactComponent\n * @internal\n */\nvar ReactDOMTextComponent = function ReactDOMTextComponent(props) {\n // This constructor and its argument is currently used by mocks.\n};\n\nassign(ReactDOMTextComponent.prototype, {\n\n /**\n * @param {ReactText} text\n * @internal\n */\n construct: function construct(text) {\n // TODO: This is really a ReactText (ReactNode), not a ReactElement\n this._currentElement = text;\n this._stringText = '' + text;\n\n // Properties\n this._rootNodeID = null;\n this._mountIndex = 0;\n },\n\n /**\n * Creates the markup for this text node. This node is not intended to have\n * any features besides containing text content.\n *\n * @param {string} rootID DOM ID of the root node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {string} Markup for this text node.\n * @internal\n */\n mountComponent: function mountComponent(rootID, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n if (context[validateDOMNesting.ancestorInfoContextKey]) {\n validateDOMNesting('span', null, context[validateDOMNesting.ancestorInfoContextKey]);\n }\n }\n\n this._rootNodeID = rootID;\n if (transaction.useCreateElement) {\n var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n var el = ownerDocument.createElement('span');\n DOMPropertyOperations.setAttributeForID(el, rootID);\n // Populate node cache\n ReactMount.getID(el);\n setTextContent(el, this._stringText);\n return el;\n } else {\n var escapedText = escapeTextContentForBrowser(this._stringText);\n\n if (transaction.renderToStaticMarkup) {\n // Normally we'd wrap this in a `span` for the reasons stated above, but\n // since this is a situation where React won't take over (static pages),\n // we can simply return the text as it is.\n return escapedText;\n }\n\n return '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' + escapedText + '</span>';\n }\n },\n\n /**\n * Updates this component by updating the text content.\n *\n * @param {ReactText} nextText The next text content\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n receiveComponent: function receiveComponent(nextText, transaction) {\n if (nextText !== this._currentElement) {\n this._currentElement = nextText;\n var nextStringText = '' + nextText;\n if (nextStringText !== this._stringText) {\n // TODO: Save this as pending props and use performUpdateIfNecessary\n // and/or updateComponent to do the actual update for consistency with\n // other component types?\n this._stringText = nextStringText;\n var node = ReactMount.getNode(this._rootNodeID);\n DOMChildrenOperations.updateTextContent(node, nextStringText);\n }\n }\n },\n\n unmountComponent: function unmountComponent() {\n ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n }\n\n});\n\nmodule.exports = ReactDOMTextComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01UZXh0Q29tcG9uZW50LmpzPzYwNmEiXSwibmFtZXMiOlsiRE9NQ2hpbGRyZW5PcGVyYXRpb25zIiwicmVxdWlyZSIsIkRPTVByb3BlcnR5T3BlcmF0aW9ucyIsIlJlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50IiwiUmVhY3RNb3VudCIsImFzc2lnbiIsImVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlciIsInNldFRleHRDb250ZW50IiwidmFsaWRhdGVET01OZXN0aW5nIiwiUmVhY3RET01UZXh0Q29tcG9uZW50IiwicHJvcHMiLCJwcm90b3R5cGUiLCJjb25zdHJ1Y3QiLCJ0ZXh0IiwiX2N1cnJlbnRFbGVtZW50IiwiX3N0cmluZ1RleHQiLCJfcm9vdE5vZGVJRCIsIl9tb3VudEluZGV4IiwibW91bnRDb21wb25lbnQiLCJyb290SUQiLCJ0cmFuc2FjdGlvbiIsImNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJhbmNlc3RvckluZm9Db250ZXh0S2V5IiwidXNlQ3JlYXRlRWxlbWVudCIsIm93bmVyRG9jdW1lbnQiLCJvd25lckRvY3VtZW50Q29udGV4dEtleSIsImVsIiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZUZvcklEIiwiZ2V0SUQiLCJlc2NhcGVkVGV4dCIsInJlbmRlclRvU3RhdGljTWFya3VwIiwiY3JlYXRlTWFya3VwRm9ySUQiLCJyZWNlaXZlQ29tcG9uZW50IiwibmV4dFRleHQiLCJuZXh0U3RyaW5nVGV4dCIsIm5vZGUiLCJnZXROb2RlIiwidXBkYXRlVGV4dENvbnRlbnQiLCJ1bm1vdW50Q29tcG9uZW50IiwidW5tb3VudElERnJvbUVudmlyb25tZW50IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVB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akMsQ0FBMEQsS0FBSzNCLFdBQS9EO0FBQ0Q7O0FBL0VxQyxDQUF4Qzs7QUFtRkE0QixPQUFPQyxPQUFQLEdBQWlCcEMscUJBQWpCLEMiLCJmaWxlIjoiNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdERPTVRleHRDb21wb25lbnRcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBET01Qcm9wZXJ0eU9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5T3BlcmF0aW9ucycpO1xudmFyIFJlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9SZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudCcpO1xudmFyIFJlYWN0TW91bnQgPSByZXF1aXJlKCcuL1JlYWN0TW91bnQnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlciA9IHJlcXVpcmUoJy4vZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyJyk7XG52YXIgc2V0VGV4dENvbnRlbnQgPSByZXF1aXJlKCcuL3NldFRleHRDb250ZW50Jyk7XG52YXIgdmFsaWRhdGVET01OZXN0aW5nID0gcmVxdWlyZSgnLi92YWxpZGF0ZURPTU5lc3RpbmcnKTtcblxuLyoqXG4gKiBUZXh0IG5vZGVzIHZpb2xhdGUgYSBjb3VwbGUgYXNzdW1wdGlvbnMgdGhhdCBSZWFjdCBtYWtlcyBhYm91dCBjb21wb25lbnRzOlxuICpcbiAqICAtIFdoZW4gbW91bnRpbmcgdGV4dCBpbnRvIHRoZSBET00sIGFkamFjZW50IHRleHQgbm9kZXMgYXJlIG1lcmdlZC5cbiAqICAtIFRleHQgbm9kZXMgY2Fubm90IGJlIGFzc2lnbmVkIGEgUmVhY3Qgcm9vdCBJRC5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyB1c2VkIHRvIHdyYXAgc3RyaW5ncyBpbiBlbGVtZW50cyBzbyB0aGF0IHRoZXkgY2FuIHVuZGVyZ29cbiAqIHRoZSBzYW1lIHJlY29uY2lsaWF0aW9uIHRoYXQgaXMgYXBwbGllZCB0byBlbGVtZW50cy5cbiAqXG4gKiBUT0RPOiBJbnZlc3RpZ2F0ZSByZXByZXNlbnRpbmcgUmVhY3QgY29tcG9uZW50cyBpbiB0aGUgRE9NIHdpdGggdGV4dCBub2Rlcy5cbiAqXG4gKiBAY2xhc3MgUmVhY3RET01UZXh0Q29tcG9uZW50XG4gKiBAZXh0ZW5kcyBSZWFjdENvbXBvbmVudFxuICogQGludGVybmFsXG4gKi9cbnZhciBSZWFjdERPTVRleHRDb21wb25lbnQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgLy8gVGhpcyBjb25zdHJ1Y3RvciBhbmQgaXRzIGFyZ3VtZW50IGlzIGN1cnJlbnRseSB1c2VkIGJ5IG1vY2tzLlxufTtcblxuYXNzaWduKFJlYWN0RE9NVGV4dENvbXBvbmVudC5wcm90b3R5cGUsIHtcblxuICAvKipcbiAgICogQHBhcmFtIHtSZWFjdFRleHR9IHRleHRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uICh0ZXh0KSB7XG4gICAgLy8gVE9ETzogVGhpcyBpcyByZWFsbHkgYSBSZWFjdFRleHQgKFJlYWN0Tm9kZSksIG5vdCBhIFJlYWN0RWxlbWVudFxuICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gdGV4dDtcbiAgICB0aGlzLl9zdHJpbmdUZXh0ID0gJycgKyB0ZXh0O1xuXG4gICAgLy8gUHJvcGVydGllc1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSBudWxsO1xuICAgIHRoaXMuX21vdW50SW5kZXggPSAwO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBtYXJrdXAgZm9yIHRoaXMgdGV4dCBub2RlLiBUaGlzIG5vZGUgaXMgbm90IGludGVuZGVkIHRvIGhhdmVcbiAgICogYW55IGZlYXR1cmVzIGJlc2lkZXMgY29udGFpbmluZyB0ZXh0IGNvbnRlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByb290SUQgRE9NIElEIG9mIHRoZSByb290IG5vZGUuXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbnxSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IE1hcmt1cCBmb3IgdGhpcyB0ZXh0IG5vZGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uIChyb290SUQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChjb250ZXh0W3ZhbGlkYXRlRE9NTmVzdGluZy5hbmNlc3RvckluZm9Db250ZXh0S2V5XSkge1xuICAgICAgICB2YWxpZGF0ZURPTU5lc3RpbmcoJ3NwYW4nLCBudWxsLCBjb250ZXh0W3ZhbGlkYXRlRE9NTmVzdGluZy5hbmNlc3RvckluZm9Db250ZXh0S2V5XSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fcm9vdE5vZGVJRCA9IHJvb3RJRDtcbiAgICBpZiAodHJhbnNhY3Rpb24udXNlQ3JlYXRlRWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBjb250ZXh0W1JlYWN0TW91bnQub3duZXJEb2N1bWVudENvbnRleHRLZXldO1xuICAgICAgdmFyIGVsID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuc2V0QXR0cmlidXRlRm9ySUQoZWwsIHJvb3RJRCk7XG4gICAgICAvLyBQb3B1bGF0ZSBub2RlIGNhY2hlXG4gICAgICBSZWFjdE1vdW50LmdldElEKGVsKTtcbiAgICAgIHNldFRleHRDb250ZW50KGVsLCB0aGlzLl9zdHJpbmdUZXh0KTtcbiAgICAgIHJldHVybiBlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGVzY2FwZWRUZXh0ID0gZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyKHRoaXMuX3N0cmluZ1RleHQpO1xuXG4gICAgICBpZiAodHJhbnNhY3Rpb24ucmVuZGVyVG9TdGF0aWNNYXJrdXApIHtcbiAgICAgICAgLy8gTm9ybWFsbHkgd2UnZCB3cmFwIHRoaXMgaW4gYSBgc3BhbmAgZm9yIHRoZSByZWFzb25zIHN0YXRlZCBhYm92ZSwgYnV0XG4gICAgICAgIC8vIHNpbmNlIHRoaXMgaXMgYSBzaXR1YXRpb24gd2hlcmUgUmVhY3Qgd29uJ3QgdGFrZSBvdmVyIChzdGF0aWMgcGFnZXMpLFxuICAgICAgICAvLyB3ZSBjYW4gc2ltcGx5IHJldHVybiB0aGUgdGV4dCBhcyBpdCBpcy5cbiAgICAgICAgcmV0dXJuIGVzY2FwZWRUZXh0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJzxzcGFuICcgKyBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuY3JlYXRlTWFya3VwRm9ySUQocm9vdElEKSArICc+JyArIGVzY2FwZWRUZXh0ICsgJzwvc3Bhbj4nO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGlzIGNvbXBvbmVudCBieSB1cGRhdGluZyB0aGUgdGV4dCBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0VGV4dH0gbmV4dFRleHQgVGhlIG5leHQgdGV4dCBjb250ZW50XG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAobmV4dFRleHQsIHRyYW5zYWN0aW9uKSB7XG4gICAgaWYgKG5leHRUZXh0ICE9PSB0aGlzLl9jdXJyZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBuZXh0VGV4dDtcbiAgICAgIHZhciBuZXh0U3RyaW5nVGV4dCA9ICcnICsgbmV4dFRleHQ7XG4gICAgICBpZiAobmV4dFN0cmluZ1RleHQgIT09IHRoaXMuX3N0cmluZ1RleHQpIHtcbiAgICAgICAgLy8gVE9ETzogU2F2ZSB0aGlzIGFzIHBlbmRpbmcgcHJvcHMgYW5kIHVzZSBwZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnlcbiAgICAgICAgLy8gYW5kL29yIHVwZGF0ZUNvbXBvbmVudCB0byBkbyB0aGUgYWN0dWFsIHVwZGF0ZSBmb3IgY29uc2lzdGVuY3kgd2l0aFxuICAgICAgICAvLyBvdGhlciBjb21wb25lbnQgdHlwZXM/XG4gICAgICAgIHRoaXMuX3N0cmluZ1RleHQgPSBuZXh0U3RyaW5nVGV4dDtcbiAgICAgICAgdmFyIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUodGhpcy5fcm9vdE5vZGVJRCk7XG4gICAgICAgIERPTUNoaWxkcmVuT3BlcmF0aW9ucy51cGRhdGVUZXh0Q29udGVudChub2RlLCBuZXh0U3RyaW5nVGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHVubW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBSZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudC51bm1vdW50SURGcm9tRW52aXJvbm1lbnQodGhpcy5fcm9vdE5vZGVJRCk7XG4gIH1cblxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01UZXh0Q29tcG9uZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdERPTVRleHRDb21wb25lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 7 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMChildrenOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar Danger = __webpack_require__(8);\nvar ReactMultiChildUpdateTypes = __webpack_require__(16);\nvar ReactPerf = __webpack_require__(18);\n\nvar setInnerHTML = __webpack_require__(19);\nvar setTextContent = __webpack_require__(20);\nvar invariant = __webpack_require__(13);\n\n/**\n * Inserts `childNode` as a child of `parentNode` at the `index`.\n *\n * @param {DOMElement} parentNode Parent node in which to insert.\n * @param {DOMElement} childNode Child node to insert.\n * @param {number} index Index at which to insert the child.\n * @internal\n */\nfunction insertChildAt(parentNode, childNode, index) {\n // By exploiting arrays returning `undefined` for an undefined index, we can\n // rely exclusively on `insertBefore(node, null)` instead of also using\n // `appendChild(node)`. However, using `undefined` is not allowed by all\n // browsers so we must replace it with `null`.\n\n // fix render order error in safari\n // IE8 will throw error when index out of list size.\n var beforeChild = index >= parentNode.childNodes.length ? null : parentNode.childNodes.item(index);\n\n parentNode.insertBefore(childNode, beforeChild);\n}\n\n/**\n * Operations for updating with DOM children.\n */\nvar DOMChildrenOperations = {\n\n dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,\n\n updateTextContent: setTextContent,\n\n /**\n * Updates a component's children by processing a series of updates. The\n * update configurations are each expected to have a `parentNode` property.\n *\n * @param {array<object>} updates List of update configurations.\n * @param {array<string>} markupList List of markup strings.\n * @internal\n */\n processUpdates: function processUpdates(updates, markupList) {\n var update;\n // Mapping from parent IDs to initial child orderings.\n var initialChildren = null;\n // List of children that will be moved or removed.\n var updatedChildren = null;\n\n for (var i = 0; i < updates.length; i++) {\n update = updates[i];\n if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {\n var updatedIndex = update.fromIndex;\n var updatedChild = update.parentNode.childNodes[updatedIndex];\n var parentID = update.parentID;\n\n !updatedChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a <tbody> when using tables, ' + 'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' + 'in an <svg> parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID) : invariant(false) : undefined;\n\n initialChildren = initialChildren || {};\n initialChildren[parentID] = initialChildren[parentID] || [];\n initialChildren[parentID][updatedIndex] = updatedChild;\n\n updatedChildren = updatedChildren || [];\n updatedChildren.push(updatedChild);\n }\n }\n\n var renderedMarkup;\n // markupList is either a list of markup or just a list of elements\n if (markupList.length && typeof markupList[0] === 'string') {\n renderedMarkup = Danger.dangerouslyRenderMarkup(markupList);\n } else {\n renderedMarkup = markupList;\n }\n\n // Remove updated children first so that `toIndex` is consistent.\n if (updatedChildren) {\n for (var j = 0; j < updatedChildren.length; j++) {\n updatedChildren[j].parentNode.removeChild(updatedChildren[j]);\n }\n }\n\n for (var k = 0; k < updates.length; k++) {\n update = updates[k];\n switch (update.type) {\n case ReactMultiChildUpdateTypes.INSERT_MARKUP:\n insertChildAt(update.parentNode, renderedMarkup[update.markupIndex], update.toIndex);\n break;\n case ReactMultiChildUpdateTypes.MOVE_EXISTING:\n insertChildAt(update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex);\n break;\n case ReactMultiChildUpdateTypes.SET_MARKUP:\n setInnerHTML(update.parentNode, update.content);\n break;\n case ReactMultiChildUpdateTypes.TEXT_CONTENT:\n setTextContent(update.parentNode, update.content);\n break;\n case ReactMultiChildUpdateTypes.REMOVE_NODE:\n // Already removed by the for-loop above.\n break;\n }\n }\n }\n\n};\n\nReactPerf.measureMethods(DOMChildrenOperations, 'DOMChildrenOperations', {\n updateTextContent: 'updateTextContent'\n});\n\nmodule.exports = DOMChildrenOperations;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRE9NQ2hpbGRyZW5PcGVyYXRpb25zLmpzPzUyY2QiXSwibmFtZXMiOlsiRGFuZ2VyIiwicmVxdWlyZSIsIlJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzIiwiUmVhY3RQZXJmIiwic2V0SW5uZXJIVE1MIiwic2V0VGV4dENvbnRlbnQiLCJpbnZhcmlhbnQiLCJpbnNlcnRDaGlsZEF0IiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZSIsImluZGV4IiwiYmVmb3JlQ2hpbGQiLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiaXRlbSIsImluc2VydEJlZm9yZSIsIkRPTUNoaWxkcmVuT3BlcmF0aW9ucyIsImRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwIiwidXBkYXRlVGV4dENvbnRlbnQiLCJwcm9jZXNzVXBkYXRlcyIsInVwZGF0ZXMiLCJtYXJrdXBMaXN0IiwidXBkYXRlIiwiaW5pdGlhbENoaWxkcmVuIiwidXBkYXRlZENoaWxkcmVuIiwiaSIsInR5cGUiLCJNT1ZFX0VYSVNUSU5HIiwiUkVNT1ZFX05PREUiLCJ1cGRhdGVkSW5kZXgiLCJmcm9tSW5kZXgiLCJ1cGRhdGVkQ2hpbGQiLCJwYXJlbnRJRCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsInB1c2giLCJyZW5kZXJlZE1hcmt1cCIsImRhbmdlcm91c2x5UmVuZGVyTWFya3VwIiwiaiIsInJlbW92ZUNoaWxkIiwiayIsIklOU0VSVF9NQVJLVVAiLCJtYXJrdXBJbmRleCIsInRvSW5kZXgiLCJTRVRfTUFSS1VQIiwiY29udGVudCIsIlRFWFRfQ09OVEVOVCIsIm1lYXN1cmVNZXRob2RzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLFNBQVMsbUJBQUFDLENBQVEsQ0FBUixD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SUFBSSxDQUFiLEVBQWdCQSxJQUFJdEIsUUFBUVAsTUFBNUIsRUFBb0M2QixHQUFwQyxFQUF5QztBQUN2Q3BCLGVBQVNGLFFBQVFzQixDQUFSLENBQVQ7QUFDQSxjQUFRcEIsT0FBT0ksSUFBZjtBQUNFLGFBQUt4QiwyQkFBMkJ5QyxhQUFoQztBQUNFcEMsd0JBQWNlLE9BQU9kLFVBQXJCLEVBQWlDOEIsZUFBZWhCLE9BQU9zQixXQUF0QixDQUFqQyxFQUFxRXRCLE9BQU91QixPQUE1RTtBQUNBO0FBQ0YsYUFBSzNDLDJCQUEyQnlCLGFBQWhDO0FBQ0VwQix3QkFBY2UsT0FBT2QsVUFBckIsRUFBaUNlLGdCQUFnQkQsT0FBT1UsUUFBdkIsRUFBaUNWLE9BQU9RLFNBQXhDLENBQWpDLEVBQXFGUixPQUFPdUIsT0FBNUY7QUFDQTtBQUNGLGFBQUszQywyQkFBMkI0QyxVQUFoQztBQUNFMUMsdUJBQWFrQixPQUFPZCxVQUFwQixFQUFnQ2MsT0FBT3lCLE9BQXZDO0FBQ0E7QUFDRixhQUFLN0MsMkJBQTJCOEMsWUFBaEM7QUFDRTNDLHlCQUFlaUIsT0FBT2QsVUFBdEIsRUFBa0NjLE9BQU95QixPQUF6QztBQUNBO0FBQ0YsYUFBSzdDLDJCQUEyQjBCLFdBQWhDO0FBQ0U7QUFDQTtBQWZKO0FBaUJEO0FBQ0Y7O0FBMUV5QixDQUE1Qjs7QUE4RUF6QixVQUFVOEMsY0FBVixDQUF5QmpDLHFCQUF6QixFQUFnRCx1QkFBaEQsRUFBeUU7QUFDdkVFLHFCQUFtQjtBQURvRCxDQUF6RTs7QUFJQWdDLE9BQU9DLE9BQVAsR0FBaUJuQyxxQkFBakIsQyIsImZpbGUiOiI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIERPTUNoaWxkcmVuT3BlcmF0aW9uc1xuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBEYW5nZXIgPSByZXF1aXJlKCcuL0RhbmdlcicpO1xudmFyIFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzID0gcmVxdWlyZSgnLi9SZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcycpO1xudmFyIFJlYWN0UGVyZiA9IHJlcXVpcmUoJy4vUmVhY3RQZXJmJyk7XG5cbnZhciBzZXRJbm5lckhUTUwgPSByZXF1aXJlKCcuL3NldElubmVySFRNTCcpO1xudmFyIHNldFRleHRDb250ZW50ID0gcmVxdWlyZSgnLi9zZXRUZXh0Q29udGVudCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIEluc2VydHMgYGNoaWxkTm9kZWAgYXMgYSBjaGlsZCBvZiBgcGFyZW50Tm9kZWAgYXQgdGhlIGBpbmRleGAuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBwYXJlbnROb2RlIFBhcmVudCBub2RlIGluIHdoaWNoIHRvIGluc2VydC5cbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY2hpbGROb2RlIENoaWxkIG5vZGUgdG8gaW5zZXJ0LlxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IEluZGV4IGF0IHdoaWNoIHRvIGluc2VydCB0aGUgY2hpbGQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gaW5zZXJ0Q2hpbGRBdChwYXJlbnROb2RlLCBjaGlsZE5vZGUsIGluZGV4KSB7XG4gIC8vIEJ5IGV4cGxvaXRpbmcgYXJyYXlzIHJldHVybmluZyBgdW5kZWZpbmVkYCBmb3IgYW4gdW5kZWZpbmVkIGluZGV4LCB3ZSBjYW5cbiAgLy8gcmVseSBleGNsdXNpdmVseSBvbiBgaW5zZXJ0QmVmb3JlKG5vZGUsIG51bGwpYCBpbnN0ZWFkIG9mIGFsc28gdXNpbmdcbiAgLy8gYGFwcGVuZENoaWxkKG5vZGUpYC4gSG93ZXZlciwgdXNpbmcgYHVuZGVmaW5lZGAgaXMgbm90IGFsbG93ZWQgYnkgYWxsXG4gIC8vIGJyb3dzZXJzIHNvIHdlIG11c3QgcmVwbGFjZSBpdCB3aXRoIGBudWxsYC5cblxuICAvLyBmaXggcmVuZGVyIG9yZGVyIGVycm9yIGluIHNhZmFyaVxuICAvLyBJRTggd2lsbCB0aHJvdyBlcnJvciB3aGVuIGluZGV4IG91dCBvZiBsaXN0IHNpemUuXG4gIHZhciBiZWZvcmVDaGlsZCA9IGluZGV4ID49IHBhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPyBudWxsIDogcGFyZW50Tm9kZS5jaGlsZE5vZGVzLml0ZW0oaW5kZXgpO1xuXG4gIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkTm9kZSwgYmVmb3JlQ2hpbGQpO1xufVxuXG4vKipcbiAqIE9wZXJhdGlvbnMgZm9yIHVwZGF0aW5nIHdpdGggRE9NIGNoaWxkcmVuLlxuICovXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0ge1xuXG4gIGRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwOiBEYW5nZXIuZGFuZ2Vyb3VzbHlSZXBsYWNlTm9kZVdpdGhNYXJrdXAsXG5cbiAgdXBkYXRlVGV4dENvbnRlbnQ6IHNldFRleHRDb250ZW50LFxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGEgY29tcG9uZW50J3MgY2hpbGRyZW4gYnkgcHJvY2Vzc2luZyBhIHNlcmllcyBvZiB1cGRhdGVzLiBUaGVcbiAgICogdXBkYXRlIGNvbmZpZ3VyYXRpb25zIGFyZSBlYWNoIGV4cGVjdGVkIHRvIGhhdmUgYSBgcGFyZW50Tm9kZWAgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gdXBkYXRlcyBMaXN0IG9mIHVwZGF0ZSBjb25maWd1cmF0aW9ucy5cbiAgICogQHBhcmFtIHthcnJheTxzdHJpbmc+fSBtYXJrdXBMaXN0IExpc3Qgb2YgbWFya3VwIHN0cmluZ3MuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvY2Vzc1VwZGF0ZXM6IGZ1bmN0aW9uICh1cGRhdGVzLCBtYXJrdXBMaXN0KSB7XG4gICAgdmFyIHVwZGF0ZTtcbiAgICAvLyBNYXBwaW5nIGZyb20gcGFyZW50IElEcyB0byBpbml0aWFsIGNoaWxkIG9yZGVyaW5ncy5cbiAgICB2YXIgaW5pdGlhbENoaWxkcmVuID0gbnVsbDtcbiAgICAvLyBMaXN0IG9mIGNoaWxkcmVuIHRoYXQgd2lsbCBiZSBtb3ZlZCBvciByZW1vdmVkLlxuICAgIHZhciB1cGRhdGVkQ2hpbGRyZW4gPSBudWxsO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1cGRhdGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB1cGRhdGUgPSB1cGRhdGVzW2ldO1xuICAgICAgaWYgKHVwZGF0ZS50eXBlID09PSBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcy5NT1ZFX0VYSVNUSU5HIHx8IHVwZGF0ZS50eXBlID09PSBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcy5SRU1PVkVfTk9ERSkge1xuICAgICAgICB2YXIgdXBkYXRlZEluZGV4ID0gdXBkYXRlLmZyb21JbmRleDtcbiAgICAgICAgdmFyIHVwZGF0ZWRDaGlsZCA9IHVwZGF0ZS5wYXJlbnROb2RlLmNoaWxkTm9kZXNbdXBkYXRlZEluZGV4XTtcbiAgICAgICAgdmFyIHBhcmVudElEID0gdXBkYXRlLnBhcmVudElEO1xuXG4gICAgICAgICF1cGRhdGVkQ2hpbGQgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAncHJvY2Vzc1VwZGF0ZXMoKTogVW5hYmxlIHRvIGZpbmQgY2hpbGQgJXMgb2YgZWxlbWVudC4gVGhpcyAnICsgJ3Byb2JhYmx5IG1lYW5zIHRoZSBET00gd2FzIHVuZXhwZWN0ZWRseSBtdXRhdGVkIChlLmcuLCBieSB0aGUgJyArICdicm93c2VyKSwgdXN1YWxseSBkdWUgdG8gZm9yZ2V0dGluZyBhIDx0Ym9keT4gd2hlbiB1c2luZyB0YWJsZXMsICcgKyAnbmVzdGluZyB0YWdzIGxpa2UgPGZvcm0+LCA8cD4sIG9yIDxhPiwgb3IgdXNpbmcgbm9uLVNWRyBlbGVtZW50cyAnICsgJ2luIGFuIDxzdmc+IHBhcmVudC4gVHJ5IGluc3BlY3RpbmcgdGhlIGNoaWxkIG5vZGVzIG9mIHRoZSBlbGVtZW50ICcgKyAnd2l0aCBSZWFjdCBJRCBgJXNgLicsIHVwZGF0ZWRJbmRleCwgcGFyZW50SUQpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICBpbml0aWFsQ2hpbGRyZW4gPSBpbml0aWFsQ2hpbGRyZW4gfHwge307XG4gICAgICAgIGluaXRpYWxDaGlsZHJlbltwYXJlbnRJRF0gPSBpbml0aWFsQ2hpbGRyZW5bcGFyZW50SURdIHx8IFtdO1xuICAgICAgICBpbml0aWFsQ2hpbGRyZW5bcGFyZW50SURdW3VwZGF0ZWRJbmRleF0gPSB1cGRhdGVkQ2hpbGQ7XG5cbiAgICAgICAgdXBkYXRlZENoaWxkcmVuID0gdXBkYXRlZENoaWxkcmVuIHx8IFtdO1xuICAgICAgICB1cGRhdGVkQ2hpbGRyZW4ucHVzaCh1cGRhdGVkQ2hpbGQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZW5kZXJlZE1hcmt1cDtcbiAgICAvLyBtYXJrdXBMaXN0IGlzIGVpdGhlciBhIGxpc3Qgb2YgbWFya3VwIG9yIGp1c3QgYSBsaXN0IG9mIGVsZW1lbnRzXG4gICAgaWYgKG1hcmt1cExpc3QubGVuZ3RoICYmIHR5cGVvZiBtYXJrdXBMaXN0WzBdID09PSAnc3RyaW5nJykge1xuICAgICAgcmVuZGVyZWRNYXJrdXAgPSBEYW5nZXIuZGFuZ2Vyb3VzbHlSZW5kZXJNYXJrdXAobWFya3VwTGlzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVkTWFya3VwID0gbWFya3VwTGlzdDtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdXBkYXRlZCBjaGlsZHJlbiBmaXJzdCBzbyB0aGF0IGB0b0luZGV4YCBpcyBjb25zaXN0ZW50LlxuICAgIGlmICh1cGRhdGVkQ2hpbGRyZW4pIHtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdXBkYXRlZENoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHVwZGF0ZWRDaGlsZHJlbltqXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHVwZGF0ZWRDaGlsZHJlbltqXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgayA9IDA7IGsgPCB1cGRhdGVzLmxlbmd0aDsgaysrKSB7XG4gICAgICB1cGRhdGUgPSB1cGRhdGVzW2tdO1xuICAgICAgc3dpdGNoICh1cGRhdGUudHlwZSkge1xuICAgICAgICBjYXNlIFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzLklOU0VSVF9NQVJLVVA6XG4gICAgICAgICAgaW5zZXJ0Q2hpbGRBdCh1cGRhdGUucGFyZW50Tm9kZSwgcmVuZGVyZWRNYXJrdXBbdXBkYXRlLm1hcmt1cEluZGV4XSwgdXBkYXRlLnRvSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzLk1PVkVfRVhJU1RJTkc6XG4gICAgICAgICAgaW5zZXJ0Q2hpbGRBdCh1cGRhdGUucGFyZW50Tm9kZSwgaW5pdGlhbENoaWxkcmVuW3VwZGF0ZS5wYXJlbnRJRF1bdXBkYXRlLmZyb21JbmRleF0sIHVwZGF0ZS50b0luZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcy5TRVRfTUFSS1VQOlxuICAgICAgICAgIHNldElubmVySFRNTCh1cGRhdGUucGFyZW50Tm9kZSwgdXBkYXRlLmNvbnRlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzLlRFWFRfQ09OVEVOVDpcbiAgICAgICAgICBzZXRUZXh0Q29udGVudCh1cGRhdGUucGFyZW50Tm9kZSwgdXBkYXRlLmNvbnRlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzLlJFTU9WRV9OT0RFOlxuICAgICAgICAgIC8vIEFscmVhZHkgcmVtb3ZlZCBieSB0aGUgZm9yLWxvb3AgYWJvdmUuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn07XG5cblJlYWN0UGVyZi5tZWFzdXJlTWV0aG9kcyhET01DaGlsZHJlbk9wZXJhdGlvbnMsICdET01DaGlsZHJlbk9wZXJhdGlvbnMnLCB7XG4gIHVwZGF0ZVRleHRDb250ZW50OiAndXBkYXRlVGV4dENvbnRlbnQnXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBET01DaGlsZHJlbk9wZXJhdGlvbnM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0RPTUNoaWxkcmVuT3BlcmF0aW9ucy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 8 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Danger\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar createNodesFromMarkup = __webpack_require__(10);\nvar emptyFunction = __webpack_require__(15);\nvar getMarkupWrap = __webpack_require__(14);\nvar invariant = __webpack_require__(13);\n\nvar OPEN_TAG_NAME_EXP = /^(<[^ \\/>]+)/;\nvar RESULT_INDEX_ATTR = 'data-danger-index';\n\n/**\n * Extracts the `nodeName` from a string of markup.\n *\n * NOTE: Extracting the `nodeName` does not require a regular expression match\n * because we make assumptions about React-generated markup (i.e. there are no\n * spaces surrounding the opening tag and there is at least one attribute).\n *\n * @param {string} markup String of markup.\n * @return {string} Node name of the supplied markup.\n * @see http://jsperf.com/extract-nodename\n */\nfunction getNodeName(markup) {\n return markup.substring(1, markup.indexOf(' '));\n}\n\nvar Danger = {\n\n /**\n * Renders markup into an array of nodes. The markup is expected to render\n * into a list of root nodes. Also, the length of `resultList` and\n * `markupList` should be the same.\n *\n * @param {array<string>} markupList List of markup strings to render.\n * @return {array<DOMElement>} List of rendered nodes.\n * @internal\n */\n dangerouslyRenderMarkup: function dangerouslyRenderMarkup(markupList) {\n !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString for server rendering.') : invariant(false) : undefined;\n var nodeName;\n var markupByNodeName = {};\n // Group markup by `nodeName` if a wrap is necessary, else by '*'.\n for (var i = 0; i < markupList.length; i++) {\n !markupList[i] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyRenderMarkup(...): Missing markup.') : invariant(false) : undefined;\n nodeName = getNodeName(markupList[i]);\n nodeName = getMarkupWrap(nodeName) ? nodeName : '*';\n markupByNodeName[nodeName] = markupByNodeName[nodeName] || [];\n markupByNodeName[nodeName][i] = markupList[i];\n }\n var resultList = [];\n var resultListAssignmentCount = 0;\n for (nodeName in markupByNodeName) {\n if (!markupByNodeName.hasOwnProperty(nodeName)) {\n continue;\n }\n var markupListByNodeName = markupByNodeName[nodeName];\n\n // This for-in loop skips the holes of the sparse array. The order of\n // iteration should follow the order of assignment, which happens to match\n // numerical index order, but we don't rely on that.\n var resultIndex;\n for (resultIndex in markupListByNodeName) {\n if (markupListByNodeName.hasOwnProperty(resultIndex)) {\n var markup = markupListByNodeName[resultIndex];\n\n // Push the requested markup with an additional RESULT_INDEX_ATTR\n // attribute. If the markup does not start with a < character, it\n // will be discarded below (with an appropriate console.error).\n markupListByNodeName[resultIndex] = markup.replace(OPEN_TAG_NAME_EXP,\n // This index will be parsed back out below.\n '$1 ' + RESULT_INDEX_ATTR + '=\"' + resultIndex + '\" ');\n }\n }\n\n // Render each group of markup with similar wrapping `nodeName`.\n var renderNodes = createNodesFromMarkup(markupListByNodeName.join(''), emptyFunction // Do nothing special with <script> tags.\n );\n\n for (var j = 0; j < renderNodes.length; ++j) {\n var renderNode = renderNodes[j];\n if (renderNode.hasAttribute && renderNode.hasAttribute(RESULT_INDEX_ATTR)) {\n\n resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR);\n renderNode.removeAttribute(RESULT_INDEX_ATTR);\n\n !!resultList.hasOwnProperty(resultIndex) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Assigning to an already-occupied result index.') : invariant(false) : undefined;\n\n resultList[resultIndex] = renderNode;\n\n // This should match resultList.length and markupList.length when\n // we're done.\n resultListAssignmentCount += 1;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Danger: Discarding unexpected node:', renderNode);\n }\n }\n }\n\n // Although resultList was populated out of order, it should now be a dense\n // array.\n !(resultListAssignmentCount === resultList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Did not assign to every index of resultList.') : invariant(false) : undefined;\n\n !(resultList.length === markupList.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Danger: Expected markup to render %s nodes, but rendered %s.', markupList.length, resultList.length) : invariant(false) : undefined;\n\n return resultList;\n },\n\n /**\n * Replaces a node with a string of markup at its current position within its\n * parent. The markup must render into a single root node.\n *\n * @param {DOMElement} oldChild Child node to replace.\n * @param {string} markup Markup to render in place of the child node.\n * @internal\n */\n dangerouslyReplaceNodeWithMarkup: function dangerouslyReplaceNodeWithMarkup(oldChild, markup) {\n !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' + 'worker thread. Make sure `window` and `document` are available ' + 'globally before requiring React when unit testing or use ' + 'ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(false) : undefined;\n !(oldChild.tagName.toLowerCase() !== 'html') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' + '<html> node. This is because browser quirks make this unreliable ' + 'and/or slow. If you want to render to the root you must use ' + 'server rendering. See ReactDOMServer.renderToString().') : invariant(false) : undefined;\n\n var newChild;\n if (typeof markup === 'string') {\n newChild = createNodesFromMarkup(markup, emptyFunction)[0];\n } else {\n newChild = markup;\n }\n oldChild.parentNode.replaceChild(newChild, oldChild);\n }\n\n};\n\nmodule.exports = Danger;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRGFuZ2VyLmpzP2Y5OGMiXSwibmFtZXMiOlsiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCJyZXF1aXJlIiwiY3JlYXRlTm9kZXNGcm9tTWFya3VwIiwiZW1wdHlGdW5jdGlvbiIsImdldE1hcmt1cFdyYXAiLCJpbnZhcmlhbnQiLCJPUEVOX1RBR19OQU1FX0VYUCIsIlJFU1VMVF9JTkRFWF9BVFRSIiwiZ2V0Tm9kZU5hbWUiLCJtYXJrdXAiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwiRGFuZ2VyIiwiZGFuZ2Vyb3VzbHlSZW5kZXJNYXJrdXAiLCJtYXJrdXBMaXN0IiwiY2FuVXNlRE9NIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwibm9kZU5hbWUiLCJtYXJrdXBCeU5vZGVOYW1lIiwiaSIsImxlbmd0aCIsInJlc3VsdExpc3QiLCJyZXN1bHRMaXN0QXNzaWdubWVudENvdW50IiwiaGFzT3duUHJvcGVydHkiLCJtYXJrdXBMaXN0QnlOb2RlTmFtZSIsInJlc3VsdEluZGV4IiwicmVwbGFjZSIsInJlbmRlck5vZGVzIiwiam9pbiIsImoiLCJyZW5kZXJOb2RlIiwiaGFzQXR0cmlidXRlIiwiZ2V0QXR0cmlidXRlIiwicmVtb3ZlQXR0cmlidXRlIiwiY29uc29sZSIsImVycm9yIiwiZGFuZ2Vyb3VzbHlSZXBsYWNlTm9kZVdpdGhNYXJrdXAiLCJvbGRDaGlsZCIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsIm5ld0NoaWxkIiwicGFyZW50Tm9kZSIsInJlcGxhY2VDaGlsZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSx1QkFBdUIsbUJBQUFDLENBQVEsQ0FBUixDQUEzQjs7QUFFQSxJQUFJQyx3QkFBd0IsbUJBQUFELENBQVEsRUFBUixD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QUF3Q2IsVUFBVSxLQUFWLEVBQWlCLHNFQUFzRSxpRUFBdEUsR0FBMEksMkRBQTFJLEdBQXdNLHVEQUF6TixDQUF4QyxHQUE0VEEsVUFBVSxLQUFWLENBQTlWLEdBQWlYYyxTQUFqWDtBQUNBLEtBQUNWLE1BQUQsR0FBVU8sUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDYixVQUFVLEtBQVYsRUFBaUIsd0RBQWpCLENBQXhDLEdBQXFIQSxVQUFVLEtBQVYsQ0FBL0gsR0FBa0pjLFNBQWxKO0FBQ0EsTUFBRXFCLFNBQVNDLE9BQVQsQ0FBaUJDLFdBQWpCLE9BQW1DLE1BQXJDLElBQStDMUIsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDYixVQUFVLEtBQVYsRUFBaUIseUVBQXlFLG1FQUF6RSxHQUErSSw4REFBL0ksR0FBZ04sd0RBQWpPLENBQXhDLEdBQXFVQSxVQUFVLEtBQVYsQ0FBcFgsR0FBdVljLFNBQXZZOztBQUVBLFFBQUl3QixRQUFKO0FBQ0EsUUFBSSxPQUFPbEMsTUFBUCxLQUFrQixRQUF0QixFQUFnQztBQUM5QmtDLGlCQUFXekMsc0JBQXNCTyxNQUF0QixFQUE4Qk4sYUFBOUIsRUFBNkMsQ0FBN0MsQ0FBWDtBQUNELEtBRkQsTUFFTztBQUNMd0MsaUJBQVdsQyxNQUFYO0FBQ0Q7QUFDRCtCLGFBQVNJLFVBQVQsQ0FBb0JDLFlBQXBCLENBQWlDRixRQUFqQyxFQUEyQ0gsUUFBM0M7QUFDRDs7QUFyR1UsQ0FBYjs7QUF5R0FNLE9BQU9DLE9BQVAsR0FBaUJuQyxNQUFqQixDIiwiZmlsZSI6IjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgRGFuZ2VyXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcblxudmFyIGNyZWF0ZU5vZGVzRnJvbU1hcmt1cCA9IHJlcXVpcmUoJ2ZianMvbGliL2NyZWF0ZU5vZGVzRnJvbU1hcmt1cCcpO1xudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgZ2V0TWFya3VwV3JhcCA9IHJlcXVpcmUoJ2ZianMvbGliL2dldE1hcmt1cFdyYXAnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxudmFyIE9QRU5fVEFHX05BTUVfRVhQID0gL14oPFteIFxcLz5dKykvO1xudmFyIFJFU1VMVF9JTkRFWF9BVFRSID0gJ2RhdGEtZGFuZ2VyLWluZGV4JztcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYG5vZGVOYW1lYCBmcm9tIGEgc3RyaW5nIG9mIG1hcmt1cC5cbiAqXG4gKiBOT1RFOiBFeHRyYWN0aW5nIHRoZSBgbm9kZU5hbWVgIGRvZXMgbm90IHJlcXVpcmUgYSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hcbiAqIGJlY2F1c2Ugd2UgbWFrZSBhc3N1bXB0aW9ucyBhYm91dCBSZWFjdC1nZW5lcmF0ZWQgbWFya3VwIChpLmUuIHRoZXJlIGFyZSBub1xuICogc3BhY2VzIHN1cnJvdW5kaW5nIHRoZSBvcGVuaW5nIHRhZyBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGF0dHJpYnV0ZSkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1hcmt1cCBTdHJpbmcgb2YgbWFya3VwLlxuICogQHJldHVybiB7c3RyaW5nfSBOb2RlIG5hbWUgb2YgdGhlIHN1cHBsaWVkIG1hcmt1cC5cbiAqIEBzZWUgaHR0cDovL2pzcGVyZi5jb20vZXh0cmFjdC1ub2RlbmFtZVxuICovXG5mdW5jdGlvbiBnZXROb2RlTmFtZShtYXJrdXApIHtcbiAgcmV0dXJuIG1hcmt1cC5zdWJzdHJpbmcoMSwgbWFya3VwLmluZGV4T2YoJyAnKSk7XG59XG5cbnZhciBEYW5nZXIgPSB7XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgbWFya3VwIGludG8gYW4gYXJyYXkgb2Ygbm9kZXMuIFRoZSBtYXJrdXAgaXMgZXhwZWN0ZWQgdG8gcmVuZGVyXG4gICAqIGludG8gYSBsaXN0IG9mIHJvb3Qgbm9kZXMuIEFsc28sIHRoZSBsZW5ndGggb2YgYHJlc3VsdExpc3RgIGFuZFxuICAgKiBgbWFya3VwTGlzdGAgc2hvdWxkIGJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2FycmF5PHN0cmluZz59IG1hcmt1cExpc3QgTGlzdCBvZiBtYXJrdXAgc3RyaW5ncyB0byByZW5kZXIuXG4gICAqIEByZXR1cm4ge2FycmF5PERPTUVsZW1lbnQ+fSBMaXN0IG9mIHJlbmRlcmVkIG5vZGVzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGRhbmdlcm91c2x5UmVuZGVyTWFya3VwOiBmdW5jdGlvbiAobWFya3VwTGlzdCkge1xuICAgICFFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnZGFuZ2Vyb3VzbHlSZW5kZXJNYXJrdXAoLi4uKTogQ2Fubm90IHJlbmRlciBtYXJrdXAgaW4gYSB3b3JrZXIgJyArICd0aHJlYWQuIE1ha2Ugc3VyZSBgd2luZG93YCBhbmQgYGRvY3VtZW50YCBhcmUgYXZhaWxhYmxlIGdsb2JhbGx5ICcgKyAnYmVmb3JlIHJlcXVpcmluZyBSZWFjdCB3aGVuIHVuaXQgdGVzdGluZyBvciB1c2UgJyArICdSZWFjdERPTVNlcnZlci5yZW5kZXJUb1N0cmluZyBmb3Igc2VydmVyIHJlbmRlcmluZy4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgdmFyIG5vZGVOYW1lO1xuICAgIHZhciBtYXJrdXBCeU5vZGVOYW1lID0ge307XG4gICAgLy8gR3JvdXAgbWFya3VwIGJ5IGBub2RlTmFtZWAgaWYgYSB3cmFwIGlzIG5lY2Vzc2FyeSwgZWxzZSBieSAnKicuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXJrdXBMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAhbWFya3VwTGlzdFtpXSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdkYW5nZXJvdXNseVJlbmRlck1hcmt1cCguLi4pOiBNaXNzaW5nIG1hcmt1cC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICBub2RlTmFtZSA9IGdldE5vZGVOYW1lKG1hcmt1cExpc3RbaV0pO1xuICAgICAgbm9kZU5hbWUgPSBnZXRNYXJrdXBXcmFwKG5vZGVOYW1lKSA/IG5vZGVOYW1lIDogJyonO1xuICAgICAgbWFya3VwQnlOb2RlTmFtZVtub2RlTmFtZV0gPSBtYXJrdXBCeU5vZGVOYW1lW25vZGVOYW1lXSB8fCBbXTtcbiAgICAgIG1hcmt1cEJ5Tm9kZU5hbWVbbm9kZU5hbWVdW2ldID0gbWFya3VwTGlzdFtpXTtcbiAgICB9XG4gICAgdmFyIHJlc3VsdExpc3QgPSBbXTtcbiAgICB2YXIgcmVzdWx0TGlzdEFzc2lnbm1lbnRDb3VudCA9IDA7XG4gICAgZm9yIChub2RlTmFtZSBpbiBtYXJrdXBCeU5vZGVOYW1lKSB7XG4gICAgICBpZiAoIW1hcmt1cEJ5Tm9kZU5hbWUuaGFzT3duUHJvcGVydHkobm9kZU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIG1hcmt1cExpc3RCeU5vZGVOYW1lID0gbWFya3VwQnlOb2RlTmFtZVtub2RlTmFtZV07XG5cbiAgICAgIC8vIFRoaXMgZm9yLWluIGxvb3Agc2tpcHMgdGhlIGhvbGVzIG9mIHRoZSBzcGFyc2UgYXJyYXkuIFRoZSBvcmRlciBvZlxuICAgICAgLy8gaXRlcmF0aW9uIHNob3VsZCBmb2xsb3cgdGhlIG9yZGVyIG9mIGFzc2lnbm1lbnQsIHdoaWNoIGhhcHBlbnMgdG8gbWF0Y2hcbiAgICAgIC8vIG51bWVyaWNhbCBpbmRleCBvcmRlciwgYnV0IHdlIGRvbid0IHJlbHkgb24gdGhhdC5cbiAgICAgIHZhciByZXN1bHRJbmRleDtcbiAgICAgIGZvciAocmVzdWx0SW5kZXggaW4gbWFya3VwTGlzdEJ5Tm9kZU5hbWUpIHtcbiAgICAgICAgaWYgKG1hcmt1cExpc3RCeU5vZGVOYW1lLmhhc093blByb3BlcnR5KHJlc3VsdEluZGV4KSkge1xuICAgICAgICAgIHZhciBtYXJrdXAgPSBtYXJrdXBMaXN0QnlOb2RlTmFtZVtyZXN1bHRJbmRleF07XG5cbiAgICAgICAgICAvLyBQdXNoIHRoZSByZXF1ZXN0ZWQgbWFya3VwIHdpdGggYW4gYWRkaXRpb25hbCBSRVNVTFRfSU5ERVhfQVRUUlxuICAgICAgICAgIC8vIGF0dHJpYnV0ZS4gIElmIHRoZSBtYXJrdXAgZG9lcyBub3Qgc3RhcnQgd2l0aCBhIDwgY2hhcmFjdGVyLCBpdFxuICAgICAgICAgIC8vIHdpbGwgYmUgZGlzY2FyZGVkIGJlbG93ICh3aXRoIGFuIGFwcHJvcHJpYXRlIGNvbnNvbGUuZXJyb3IpLlxuICAgICAgICAgIG1hcmt1cExpc3RCeU5vZGVOYW1lW3Jlc3VsdEluZGV4XSA9IG1hcmt1cC5yZXBsYWNlKE9QRU5fVEFHX05BTUVfRVhQLFxuICAgICAgICAgIC8vIFRoaXMgaW5kZXggd2lsbCBiZSBwYXJzZWQgYmFjayBvdXQgYmVsb3cuXG4gICAgICAgICAgJyQxICcgKyBSRVNVTFRfSU5ERVhfQVRUUiArICc9XCInICsgcmVzdWx0SW5kZXggKyAnXCIgJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVuZGVyIGVhY2ggZ3JvdXAgb2YgbWFya3VwIHdpdGggc2ltaWxhciB3cmFwcGluZyBgbm9kZU5hbWVgLlxuICAgICAgdmFyIHJlbmRlck5vZGVzID0gY3JlYXRlTm9kZXNGcm9tTWFya3VwKG1hcmt1cExpc3RCeU5vZGVOYW1lLmpvaW4oJycpLCBlbXB0eUZ1bmN0aW9uIC8vIERvIG5vdGhpbmcgc3BlY2lhbCB3aXRoIDxzY3JpcHQ+IHRhZ3MuXG4gICAgICApO1xuXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJlbmRlck5vZGVzLmxlbmd0aDsgKytqKSB7XG4gICAgICAgIHZhciByZW5kZXJOb2RlID0gcmVuZGVyTm9kZXNbal07XG4gICAgICAgIGlmIChyZW5kZXJOb2RlLmhhc0F0dHJpYnV0ZSAmJiByZW5kZXJOb2RlLmhhc0F0dHJpYnV0ZShSRVNVTFRfSU5ERVhfQVRUUikpIHtcblxuICAgICAgICAgIHJlc3VsdEluZGV4ID0gK3JlbmRlck5vZGUuZ2V0QXR0cmlidXRlKFJFU1VMVF9JTkRFWF9BVFRSKTtcbiAgICAgICAgICByZW5kZXJOb2RlLnJlbW92ZUF0dHJpYnV0ZShSRVNVTFRfSU5ERVhfQVRUUik7XG5cbiAgICAgICAgICAhIXJlc3VsdExpc3QuaGFzT3duUHJvcGVydHkocmVzdWx0SW5kZXgpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0RhbmdlcjogQXNzaWduaW5nIHRvIGFuIGFscmVhZHktb2NjdXBpZWQgcmVzdWx0IGluZGV4LicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIHJlc3VsdExpc3RbcmVzdWx0SW5kZXhdID0gcmVuZGVyTm9kZTtcblxuICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG1hdGNoIHJlc3VsdExpc3QubGVuZ3RoIGFuZCBtYXJrdXBMaXN0Lmxlbmd0aCB3aGVuXG4gICAgICAgICAgLy8gd2UncmUgZG9uZS5cbiAgICAgICAgICByZXN1bHRMaXN0QXNzaWdubWVudENvdW50ICs9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhbmdlcjogRGlzY2FyZGluZyB1bmV4cGVjdGVkIG5vZGU6JywgcmVuZGVyTm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbHRob3VnaCByZXN1bHRMaXN0IHdhcyBwb3B1bGF0ZWQgb3V0IG9mIG9yZGVyLCBpdCBzaG91bGQgbm93IGJlIGEgZGVuc2VcbiAgICAvLyBhcnJheS5cbiAgICAhKHJlc3VsdExpc3RBc3NpZ25tZW50Q291bnQgPT09IHJlc3VsdExpc3QubGVuZ3RoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdEYW5nZXI6IERpZCBub3QgYXNzaWduIHRvIGV2ZXJ5IGluZGV4IG9mIHJlc3VsdExpc3QuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgIShyZXN1bHRMaXN0Lmxlbmd0aCA9PT0gbWFya3VwTGlzdC5sZW5ndGgpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0RhbmdlcjogRXhwZWN0ZWQgbWFya3VwIHRvIHJlbmRlciAlcyBub2RlcywgYnV0IHJlbmRlcmVkICVzLicsIG1hcmt1cExpc3QubGVuZ3RoLCByZXN1bHRMaXN0Lmxlbmd0aCkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHJlc3VsdExpc3Q7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGEgbm9kZSB3aXRoIGEgc3RyaW5nIG9mIG1hcmt1cCBhdCBpdHMgY3VycmVudCBwb3NpdGlvbiB3aXRoaW4gaXRzXG4gICAqIHBhcmVudC4gVGhlIG1hcmt1cCBtdXN0IHJlbmRlciBpbnRvIGEgc2luZ2xlIHJvb3Qgbm9kZS5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBvbGRDaGlsZCBDaGlsZCBub2RlIHRvIHJlcGxhY2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtYXJrdXAgTWFya3VwIHRvIHJlbmRlciBpbiBwbGFjZSBvZiB0aGUgY2hpbGQgbm9kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cDogZnVuY3Rpb24gKG9sZENoaWxkLCBtYXJrdXApIHtcbiAgICAhRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2Rhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwKC4uLik6IENhbm5vdCByZW5kZXIgbWFya3VwIGluIGEgJyArICd3b3JrZXIgdGhyZWFkLiBNYWtlIHN1cmUgYHdpbmRvd2AgYW5kIGBkb2N1bWVudGAgYXJlIGF2YWlsYWJsZSAnICsgJ2dsb2JhbGx5IGJlZm9yZSByZXF1aXJpbmcgUmVhY3Qgd2hlbiB1bml0IHRlc3Rpbmcgb3IgdXNlICcgKyAnUmVhY3RET01TZXJ2ZXIucmVuZGVyVG9TdHJpbmcoKSBmb3Igc2VydmVyIHJlbmRlcmluZy4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgIW1hcmt1cCA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCguLi4pOiBNaXNzaW5nIG1hcmt1cC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgIShvbGRDaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdodG1sJykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnZGFuZ2Vyb3VzbHlSZXBsYWNlTm9kZVdpdGhNYXJrdXAoLi4uKTogQ2Fubm90IHJlcGxhY2UgbWFya3VwIG9mIHRoZSAnICsgJzxodG1sPiBub2RlLiBUaGlzIGlzIGJlY2F1c2UgYnJvd3NlciBxdWlya3MgbWFrZSB0aGlzIHVucmVsaWFibGUgJyArICdhbmQvb3Igc2xvdy4gSWYgeW91IHdhbnQgdG8gcmVuZGVyIHRvIHRoZSByb290IHlvdSBtdXN0IHVzZSAnICsgJ3NlcnZlciByZW5kZXJpbmcuIFNlZSBSZWFjdERPTVNlcnZlci5yZW5kZXJUb1N0cmluZygpLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIHZhciBuZXdDaGlsZDtcbiAgICBpZiAodHlwZW9mIG1hcmt1cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG5ld0NoaWxkID0gY3JlYXRlTm9kZXNGcm9tTWFya3VwKG1hcmt1cCwgZW1wdHlGdW5jdGlvbilbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NoaWxkID0gbWFya3VwO1xuICAgIH1cbiAgICBvbGRDaGlsZC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdDaGlsZCwgb2xkQ2hpbGQpO1xuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRGFuZ2VyO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9EYW5nZXIuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 9 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9FeGVjdXRpb25FbnZpcm9ubWVudC5qcz83Y2E2Il0sIm5hbWVzIjpbImNhblVzZURPTSIsIndpbmRvdyIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIkV4ZWN1dGlvbkVudmlyb25tZW50IiwiY2FuVXNlV29ya2VycyIsIldvcmtlciIsImNhblVzZUV2ZW50TGlzdGVuZXJzIiwiYWRkRXZlbnRMaXN0ZW5lciIsImF0dGFjaEV2ZW50IiwiY2FuVXNlVmlld3BvcnQiLCJzY3JlZW4iLCJpc0luV29ya2VyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsWUFBWSxDQUFDLEVBQUUsT0FBT0MsTUFBUCxLQUFrQixXQUFsQixJQUFpQ0EsT0FBT0MsUUFBeEMsSUFBb0RELE9BQU9DLFFBQVAsQ0FBZ0JDLGFBQXRFLENBQWpCOztBQUVBOzs7Ozs7QUFNQSxJQUFJQyx1QkFBdUI7O0FBRXpCSixhQUFXQSxTQUZjOztBQUl6QkssaUJBQWUsT0FBT0MsTUFBUCxLQUFrQixXQUpSOztBQU16QkMsd0JBQXNCUCxhQUFhLENBQUMsRUFBRUMsT0FBT08sZ0JBQVAsSUFBMkJQLE9BQU9RLFdBQXBDLENBTlg7O0FBUXpCQyxrQkFBZ0JWLGFBQWEsQ0FBQyxDQUFDQyxPQUFPVSxNQVJiOztBQVV6QkMsY0FBWSxDQUFDWixTQVZZLENBVUY7O0FBVkUsQ0FBM0I7O0FBY0FhLE9BQU9DLE9BQVAsR0FBaUJWLG9CQUFqQiIsImZpbGUiOiI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIEV4ZWN1dGlvbkVudmlyb25tZW50XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2FuVXNlRE9NID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxuLyoqXG4gKiBTaW1wbGUsIGxpZ2h0d2VpZ2h0IG1vZHVsZSBhc3Npc3Rpbmcgd2l0aCB0aGUgZGV0ZWN0aW9uIGFuZCBjb250ZXh0IG9mXG4gKiBXb3JrZXIuIEhlbHBzIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcyBhbmQgYWxsb3dzIGNvZGUgdG8gcmVhc29uIGFib3V0XG4gKiB3aGV0aGVyIG9yIG5vdCB0aGV5IGFyZSBpbiBhIFdvcmtlciwgZXZlbiBpZiB0aGV5IG5ldmVyIGluY2x1ZGUgdGhlIG1haW5cbiAqIGBSZWFjdFdvcmtlcmAgZGVwZW5kZW5jeS5cbiAqL1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0ge1xuXG4gIGNhblVzZURPTTogY2FuVXNlRE9NLFxuXG4gIGNhblVzZVdvcmtlcnM6IHR5cGVvZiBXb3JrZXIgIT09ICd1bmRlZmluZWQnLFxuXG4gIGNhblVzZUV2ZW50TGlzdGVuZXJzOiBjYW5Vc2VET00gJiYgISEod2luZG93LmFkZEV2ZW50TGlzdGVuZXIgfHwgd2luZG93LmF0dGFjaEV2ZW50KSxcblxuICBjYW5Vc2VWaWV3cG9ydDogY2FuVXNlRE9NICYmICEhd2luZG93LnNjcmVlbixcblxuICBpc0luV29ya2VyOiAhY2FuVXNlRE9NIC8vIEZvciBub3csIHRoaXMgaXMgdHJ1ZSAtIG1pZ2h0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLlxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEV4ZWN1dGlvbkVudmlyb25tZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 10 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createNodesFromMarkup\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar createArrayFromMixed = __webpack_require__(11);\nvar getMarkupWrap = __webpack_require__(14);\nvar invariant = __webpack_require__(13);\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * <script> element that is rendered. If no `handleScript` function is supplied,\n * an exception is thrown if any <script> elements are rendered.\n *\n * @param {string} markup A string of valid HTML markup.\n * @param {?function} handleScript Invoked once for each rendered <script>.\n * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.\n */\nfunction createNodesFromMarkup(markup, handleScript) {\n var node = dummyNode;\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : undefined;\n var nodeName = getNodeName(markup);\n\n var wrap = nodeName && getMarkupWrap(nodeName);\n if (wrap) {\n node.innerHTML = wrap[1] + markup + wrap[2];\n\n var wrapDepth = wrap[0];\n while (wrapDepth--) {\n node = node.lastChild;\n }\n } else {\n node.innerHTML = markup;\n }\n\n var scripts = node.getElementsByTagName('script');\n if (scripts.length) {\n !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : undefined;\n createArrayFromMixed(scripts).forEach(handleScript);\n }\n\n var nodes = createArrayFromMixed(node.childNodes);\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n return nodes;\n}\n\nmodule.exports = createNodesFromMarkup;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9jcmVhdGVOb2Rlc0Zyb21NYXJrdXAuanM/MmYzMiJdLCJuYW1lcyI6WyJFeGVjdXRpb25FbnZpcm9ubWVudCIsInJlcXVpcmUiLCJjcmVhdGVBcnJheUZyb21NaXhlZCIsImdldE1hcmt1cFdyYXAiLCJpbnZhcmlhbnQiLCJkdW1teU5vZGUiLCJjYW5Vc2VET00iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJub2RlTmFtZVBhdHRlcm4iLCJnZXROb2RlTmFtZSIsIm1hcmt1cCIsIm5vZGVOYW1lTWF0Y2giLCJtYXRjaCIsInRvTG93ZXJDYXNlIiwiY3JlYXRlTm9kZXNGcm9tTWFya3VwIiwiaGFuZGxlU2NyaXB0Iiwibm9kZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsIm5vZGVOYW1lIiwid3JhcCIsImlubmVySFRNTCIsIndyYXBEZXB0aCIsImxhc3RDaGlsZCIsInNjcmlwdHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImxlbmd0aCIsImZvckVhY2giLCJub2RlcyIsImNoaWxkTm9kZXMiLCJyZW1vdmVDaGlsZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7QUFFQSxJQUFJQSx1QkFBdUIsbUJBQUFDLENBQVEsQ0FBUixDQUEzQjs7QUFFQSxJQUFJQyx1QkFBdUIsbUJBQUFELENBQVEsRUFBUixDQUEzQjtBQUNBLElBQUlFLGdCQUFnQixtQkFBQUYsQ0FBUSxFQUFSLENBQXBCO0FBQ0EsSUFBSUcsWUFBWSxtQkFBQUgsQ0FBUSxFQUFSLENBQWhCOztBQUVBOzs7QUFHQSxJQUFJSSxZQUFZTCxxQkFBcUJNLFNBQXJCLEdBQWlDQyxTQUFTQyxhQUFULENBQXVCLEtBQXZCLENBQWpDLEdBQWlFLElBQWpGOztBQUVBOzs7QUFHQSxJQUFJQyxrQkFBa0IsWUFBdEI7O0FBRUE7Ozs7OztBQU1BLFNBQVNDLFdBQVQsQ0FBcUJDLE1BQXJCLEVBQTZCO0FBQzNCLE1BQUlDLGdCQUFnQkQsT0FBT0UsS0FBUCxDQUFhSixlQUFiLENBQXBCO0FBQ0EsU0FBT0csaUJBQWlCQSxjQUFjLENBQWQsRUFBaUJFLFdBQWpCLEVBQXhCO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQSxTQUFTQyxxQkFBVCxDQUErQkosTUFBL0IsRUFBdUNLLFlBQXZDLEVBQXFEO0FBQ25ELE1BQUlDLE9BQU9aLFNBQVg7QUFDQSxHQUFDLENBQUMsQ0FBQ0EsU0FBSCxHQUFlYSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NoQixVQUFVLEtBQVYsRUFBaUIsNkNBQWpCLENBQXhDLEdBQTBHQSxVQUFVLEtBQVYsQ0FBekgsR0FBNElpQixTQUE1STtBQUNBLE1BQUlDLFdBQVdaLFlBQVlDLE1BQVosQ0FBZjs7QUFFQSxNQUFJWSxPQUFPRCxZQUFZbkIsY0FBY21CLFFBQWQsQ0FBdkI7QUFDQSxNQUFJQyxJQUFKLEVBQVU7QUFDUk4sU0FBS08sU0FBTCxHQUFpQkQsS0FBSyxDQUFMLElBQVVaLE1BQVYsR0FBbUJZLEtBQUssQ0FBTCxDQUFwQzs7QUFFQSxRQUFJRSxZQUFZRixLQUFLLENBQUwsQ0FBaEI7QUFDQSxXQUFPRSxXQUFQLEVBQW9CO0FBQ2xCUixhQUFPQSxLQUFLUyxTQUFaO0FBQ0Q7QUFDRixHQVBELE1BT087QUFDTFQsU0FBS08sU0FBTCxHQUFpQmIsTUFBakI7QUFDRDs7QUFFRCxNQUFJZ0IsVUFBVVYsS0FBS1csb0JBQUwsQ0FBMEIsUUFBMUIsQ0FBZDtBQUNBLE1BQUlELFFBQVFFLE1BQVosRUFBb0I7QUFDbEIsS0FBQ2IsWUFBRCxHQUFnQkUsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDaEIsVUFBVSxLQUFWLEVBQWlCLG1FQUFqQixDQUF4QyxHQUFnSUEsVUFBVSxLQUFWLENBQWhKLEdBQW1LaUIsU0FBbks7QUFDQW5CLHlCQUFxQnlCLE9BQXJCLEVBQThCRyxPQUE5QixDQUFzQ2QsWUFBdEM7QUFDRDs7QUFFRCxNQUFJZSxRQUFRN0IscUJBQXFCZSxLQUFLZSxVQUExQixDQUFaO0FBQ0EsU0FBT2YsS0FBS1MsU0FBWixFQUF1QjtBQUNyQlQsU0FBS2dCLFdBQUwsQ0FBaUJoQixLQUFLUyxTQUF0QjtBQUNEO0FBQ0QsU0FBT0ssS0FBUDtBQUNEOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCcEIscUJBQWpCLEMiLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgY3JlYXRlTm9kZXNGcm9tTWFya3VwXG4gKiBAdHlwZWNoZWNrc1xuICovXG5cbi8qZXNsaW50LWRpc2FibGUgZmItd3d3L3Vuc2FmZS1odG1sKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG5cbnZhciBjcmVhdGVBcnJheUZyb21NaXhlZCA9IHJlcXVpcmUoJy4vY3JlYXRlQXJyYXlGcm9tTWl4ZWQnKTtcbnZhciBnZXRNYXJrdXBXcmFwID0gcmVxdWlyZSgnLi9nZXRNYXJrdXBXcmFwJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnLi9pbnZhcmlhbnQnKTtcblxuLyoqXG4gKiBEdW1teSBjb250YWluZXIgdXNlZCB0byByZW5kZXIgYWxsIG1hcmt1cC5cbiAqL1xudmFyIGR1bW15Tm9kZSA9IEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIDogbnVsbDtcblxuLyoqXG4gKiBQYXR0ZXJuIHVzZWQgYnkgYGdldE5vZGVOYW1lYC5cbiAqL1xudmFyIG5vZGVOYW1lUGF0dGVybiA9IC9eXFxzKjwoXFx3KykvO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBgbm9kZU5hbWVgIG9mIHRoZSBmaXJzdCBlbGVtZW50IGluIGEgc3RyaW5nIG9mIG1hcmt1cC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIFN0cmluZyBvZiBtYXJrdXAuXG4gKiBAcmV0dXJuIHs/c3RyaW5nfSBOb2RlIG5hbWUgb2YgdGhlIHN1cHBsaWVkIG1hcmt1cC5cbiAqL1xuZnVuY3Rpb24gZ2V0Tm9kZU5hbWUobWFya3VwKSB7XG4gIHZhciBub2RlTmFtZU1hdGNoID0gbWFya3VwLm1hdGNoKG5vZGVOYW1lUGF0dGVybik7XG4gIHJldHVybiBub2RlTmFtZU1hdGNoICYmIG5vZGVOYW1lTWF0Y2hbMV0udG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIG5vZGVzIHJlbmRlcmVkIGZyb20gdGhlIHN1cHBsaWVkIG1hcmt1cC4gVGhlXG4gKiBvcHRpb25hbGx5IHN1cHBsaWVkIGBoYW5kbGVTY3JpcHRgIGZ1bmN0aW9uIHdpbGwgYmUgaW52b2tlZCBvbmNlIGZvciBlYWNoXG4gKiA8c2NyaXB0PiBlbGVtZW50IHRoYXQgaXMgcmVuZGVyZWQuIElmIG5vIGBoYW5kbGVTY3JpcHRgIGZ1bmN0aW9uIGlzIHN1cHBsaWVkLFxuICogYW4gZXhjZXB0aW9uIGlzIHRocm93biBpZiBhbnkgPHNjcmlwdD4gZWxlbWVudHMgYXJlIHJlbmRlcmVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXJrdXAgQSBzdHJpbmcgb2YgdmFsaWQgSFRNTCBtYXJrdXAuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gaGFuZGxlU2NyaXB0IEludm9rZWQgb25jZSBmb3IgZWFjaCByZW5kZXJlZCA8c2NyaXB0Pi5cbiAqIEByZXR1cm4ge2FycmF5PERPTUVsZW1lbnR8RE9NVGV4dE5vZGU+fSBBbiBhcnJheSBvZiByZW5kZXJlZCBub2Rlcy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTm9kZXNGcm9tTWFya3VwKG1hcmt1cCwgaGFuZGxlU2NyaXB0KSB7XG4gIHZhciBub2RlID0gZHVtbXlOb2RlO1xuICAhISFkdW1teU5vZGUgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnY3JlYXRlTm9kZXNGcm9tTWFya3VwIGR1bW15IG5vdCBpbml0aWFsaXplZCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgdmFyIG5vZGVOYW1lID0gZ2V0Tm9kZU5hbWUobWFya3VwKTtcblxuICB2YXIgd3JhcCA9IG5vZGVOYW1lICYmIGdldE1hcmt1cFdyYXAobm9kZU5hbWUpO1xuICBpZiAod3JhcCkge1xuICAgIG5vZGUuaW5uZXJIVE1MID0gd3JhcFsxXSArIG1hcmt1cCArIHdyYXBbMl07XG5cbiAgICB2YXIgd3JhcERlcHRoID0gd3JhcFswXTtcbiAgICB3aGlsZSAod3JhcERlcHRoLS0pIHtcbiAgICAgIG5vZGUgPSBub2RlLmxhc3RDaGlsZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbm9kZS5pbm5lckhUTUwgPSBtYXJrdXA7XG4gIH1cblxuICB2YXIgc2NyaXB0cyA9IG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpO1xuICBpZiAoc2NyaXB0cy5sZW5ndGgpIHtcbiAgICAhaGFuZGxlU2NyaXB0ID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2NyZWF0ZU5vZGVzRnJvbU1hcmt1cCguLi4pOiBVbmV4cGVjdGVkIDxzY3JpcHQ+IGVsZW1lbnQgcmVuZGVyZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgIGNyZWF0ZUFycmF5RnJvbU1peGVkKHNjcmlwdHMpLmZvckVhY2goaGFuZGxlU2NyaXB0KTtcbiAgfVxuXG4gIHZhciBub2RlcyA9IGNyZWF0ZUFycmF5RnJvbU1peGVkKG5vZGUuY2hpbGROb2Rlcyk7XG4gIHdoaWxlIChub2RlLmxhc3RDaGlsZCkge1xuICAgIG5vZGUucmVtb3ZlQ2hpbGQobm9kZS5sYXN0Q2hpbGQpO1xuICB9XG4gIHJldHVybiBub2Rlcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVOb2Rlc0Zyb21NYXJrdXA7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvY3JlYXRlTm9kZXNGcm9tTWFya3VwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 11 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule createArrayFromMixed\n * @typechecks\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar toArray = __webpack_require__(12);\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9jcmVhdGVBcnJheUZyb21NaXhlZC5qcz81MmE3Il0sIm5hbWVzIjpbInRvQXJyYXkiLCJyZXF1aXJlIiwiaGFzQXJyYXlOYXR1cmUiLCJvYmoiLCJub2RlVHlwZSIsIkFycmF5IiwiaXNBcnJheSIsImNyZWF0ZUFycmF5RnJvbU1peGVkIiwic2xpY2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7Ozs7QUFFQSxJQUFJQSxVQUFVLG1CQUFBQyxDQUFRLEVBQVIsQ0FBZDs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7O0FBZUEsU0FBU0MsY0FBVCxDQUF3QkMsR0FBeEIsRUFBNkI7QUFDM0I7QUFDRTtBQUNBLEtBQUMsQ0FBQ0EsR0FBRjtBQUNBO0FBQ0EsWUFBT0EsR0FBUCx5Q0FBT0EsR0FBUCxNQUFjLFFBQWQsSUFBMEIsT0FBT0EsR0FBUCxJQUFjLFVBRnhDO0FBR0E7QUFDQSxnQkFBWUEsR0FKWjtBQUtBO0FBQ0EsTUFBRSxpQkFBaUJBLEdBQW5CLENBTkE7QUFPQTtBQUNBO0FBQ0EsV0FBT0EsSUFBSUMsUUFBWCxJQUF1QixRQVR2QjtBQVVBO0FBQ0FDLFVBQU1DLE9BQU4sQ0FBY0gsR0FBZDtBQUNBO0FBQ0EsZ0JBQVlBLEdBRlo7QUFHQTtBQUNBLGNBQVVBLEdBZlY7QUFGRjtBQW1CRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJBLFNBQVNJLG9CQUFULENBQThCSixHQUE5QixFQUFtQztBQUNqQyxNQUFJLENBQUNELGVBQWVDLEdBQWYsQ0FBTCxFQUEwQjtBQUN4QixXQUFPLENBQUNBLEdBQUQsQ0FBUDtBQUNELEdBRkQsTUFFTyxJQUFJRSxNQUFNQyxPQUFOLENBQWNILEdBQWQsQ0FBSixFQUF3QjtBQUM3QixXQUFPQSxJQUFJSyxLQUFKLEVBQVA7QUFDRCxHQUZNLE1BRUE7QUFDTCxXQUFPUixRQUFRRyxHQUFSLENBQVA7QUFDRDtBQUNGOztBQUVETSxPQUFPQyxPQUFQLEdBQWlCSCxvQkFBakIiLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgY3JlYXRlQXJyYXlGcm9tTWl4ZWRcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgdG9BcnJheSA9IHJlcXVpcmUoJy4vdG9BcnJheScpO1xuXG4vKipcbiAqIFBlcmZvcm0gYSBoZXVyaXN0aWMgdGVzdCB0byBkZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIFwiYXJyYXktbGlrZVwiLlxuICpcbiAqICAgQSBtb25rIGFza2VkIEpvc2h1LCBhIFplbiBtYXN0ZXIsIFwiSGFzIGEgZG9nIEJ1ZGRoYSBuYXR1cmU/XCJcbiAqICAgSm9zaHUgcmVwbGllZDogXCJNdS5cIlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyBpZiBpdHMgYXJndW1lbnQgaGFzIFwiYXJyYXkgbmF0dXJlXCI6IGl0IHJldHVybnNcbiAqIHRydWUgaWYgdGhlIGFyZ3VtZW50IGlzIGFuIGFjdHVhbCBhcnJheSwgYW4gYGFyZ3VtZW50cycgb2JqZWN0LCBvciBhblxuICogSFRNTENvbGxlY3Rpb24gKGUuZy4gbm9kZS5jaGlsZE5vZGVzIG9yIG5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoKSkuXG4gKlxuICogSXQgd2lsbCByZXR1cm4gZmFsc2UgZm9yIG90aGVyIGFycmF5LWxpa2Ugb2JqZWN0cyBsaWtlIEZpbGVsaXN0LlxuICpcbiAqIEBwYXJhbSB7Kn0gb2JqXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBoYXNBcnJheU5hdHVyZShvYmopIHtcbiAgcmV0dXJuKFxuICAgIC8vIG5vdCBudWxsL2ZhbHNlXG4gICAgISFvYmogJiYgKFxuICAgIC8vIGFycmF5cyBhcmUgb2JqZWN0cywgTm9kZUxpc3RzIGFyZSBmdW5jdGlvbnMgaW4gU2FmYXJpXG4gICAgdHlwZW9mIG9iaiA9PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqID09ICdmdW5jdGlvbicpICYmXG4gICAgLy8gcXVhY2tzIGxpa2UgYW4gYXJyYXlcbiAgICAnbGVuZ3RoJyBpbiBvYmogJiZcbiAgICAvLyBub3Qgd2luZG93XG4gICAgISgnc2V0SW50ZXJ2YWwnIGluIG9iaikgJiZcbiAgICAvLyBubyBET00gbm9kZSBzaG91bGQgYmUgY29uc2lkZXJlZCBhbiBhcnJheS1saWtlXG4gICAgLy8gYSAnc2VsZWN0JyBlbGVtZW50IGhhcyAnbGVuZ3RoJyBhbmQgJ2l0ZW0nIHByb3BlcnRpZXMgb24gSUU4XG4gICAgdHlwZW9mIG9iai5ub2RlVHlwZSAhPSAnbnVtYmVyJyAmJiAoXG4gICAgLy8gYSByZWFsIGFycmF5XG4gICAgQXJyYXkuaXNBcnJheShvYmopIHx8XG4gICAgLy8gYXJndW1lbnRzXG4gICAgJ2NhbGxlZScgaW4gb2JqIHx8XG4gICAgLy8gSFRNTENvbGxlY3Rpb24vTm9kZUxpc3RcbiAgICAnaXRlbScgaW4gb2JqKVxuICApO1xufVxuXG4vKipcbiAqIEVuc3VyZSB0aGF0IHRoZSBhcmd1bWVudCBpcyBhbiBhcnJheSBieSB3cmFwcGluZyBpdCBpbiBhbiBhcnJheSBpZiBpdCBpcyBub3QuXG4gKiBDcmVhdGVzIGEgY29weSBvZiB0aGUgYXJndW1lbnQgaWYgaXQgaXMgYWxyZWFkeSBhbiBhcnJheS5cbiAqXG4gKiBUaGlzIGlzIG1vc3RseSB1c2VmdWwgaWRpb21hdGljYWxseTpcbiAqXG4gKiAgIHZhciBjcmVhdGVBcnJheUZyb21NaXhlZCA9IHJlcXVpcmUoJ2NyZWF0ZUFycmF5RnJvbU1peGVkJyk7XG4gKlxuICogICBmdW5jdGlvbiB0YWtlc09uZU9yTW9yZVRoaW5ncyh0aGluZ3MpIHtcbiAqICAgICB0aGluZ3MgPSBjcmVhdGVBcnJheUZyb21NaXhlZCh0aGluZ3MpO1xuICogICAgIC4uLlxuICogICB9XG4gKlxuICogVGhpcyBhbGxvd3MgeW91IHRvIHRyZWF0IGB0aGluZ3MnIGFzIGFuIGFycmF5LCBidXQgYWNjZXB0IHNjYWxhcnMgaW4gdGhlIEFQSS5cbiAqXG4gKiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGFuIGFycmF5LWxpa2Ugb2JqZWN0LCBsaWtlIGBhcmd1bWVudHNgLCBpbnRvIGFuIGFycmF5XG4gKiB1c2UgdG9BcnJheSBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSB7Kn0gb2JqXG4gKiBAcmV0dXJuIHthcnJheX1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXJyYXlGcm9tTWl4ZWQob2JqKSB7XG4gIGlmICghaGFzQXJyYXlOYXR1cmUob2JqKSkge1xuICAgIHJldHVybiBbb2JqXTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm4gb2JqLnNsaWNlKCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRvQXJyYXkob2JqKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUFycmF5RnJvbU1peGVkO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2NyZWF0ZUFycmF5RnJvbU1peGVkLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 12 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule toArray\n * @typechecks\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browse builtin objects can report typeof 'function' (e.g. NodeList in\n // old versions of Safari).\n !(!Array.isArray(obj) && ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : undefined;\n\n !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : undefined;\n\n !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : undefined;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\nmodule.exports = toArray;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi90b0FycmF5LmpzP2JiMjMiXSwibmFtZXMiOlsiaW52YXJpYW50IiwicmVxdWlyZSIsInRvQXJyYXkiLCJvYmoiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJoYXNPd25Qcm9wZXJ0eSIsInByb3RvdHlwZSIsInNsaWNlIiwiY2FsbCIsImUiLCJyZXQiLCJpaSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7OztBQUVBLElBQUlBLFlBQVksbUJBQUFDLENBQVEsRUFBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7O0FBU0EsU0FBU0MsT0FBVCxDQUFpQkMsR0FBakIsRUFBc0I7QUFDcEIsTUFBSUMsU0FBU0QsSUFBSUMsTUFBakI7O0FBRUE7QUFDQTtBQUNBLElBQUUsQ0FBQ0MsTUFBTUMsT0FBTixDQUFjSCxHQUFkLENBQUQsS0FBd0IsUUFBT0EsR0FBUCx5Q0FBT0EsR0FBUCxPQUFlLFFBQWYsSUFBMkIsT0FBT0EsR0FBUCxLQUFlLFVBQWxFLENBQUYsSUFBbUZJLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1QsVUFBVSxLQUFWLEVBQWlCLHFDQUFqQixDQUF4QyxHQUFrR0EsVUFBVSxLQUFWLENBQXJMLEdBQXdNVSxTQUF4TTs7QUFFQSxJQUFFLE9BQU9OLE1BQVAsS0FBa0IsUUFBcEIsSUFBZ0NHLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1QsVUFBVSxLQUFWLEVBQWlCLHlDQUFqQixDQUF4QyxHQUFzR0EsVUFBVSxLQUFWLENBQXRJLEdBQXlKVSxTQUF6Sjs7QUFFQSxJQUFFTixXQUFXLENBQVgsSUFBZ0JBLFNBQVMsQ0FBVCxJQUFjRCxHQUFoQyxJQUF1Q0ksUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDVCxVQUFVLEtBQVYsRUFBaUIsOENBQWpCLENBQXhDLEdBQTJHQSxVQUFVLEtBQVYsQ0FBbEosR0FBcUtVLFNBQXJLOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQUlQLElBQUlRLGNBQVIsRUFBd0I7QUFDdEIsUUFBSTtBQUNGLGFBQU9OLE1BQU1PLFNBQU4sQ0FBZ0JDLEtBQWhCLENBQXNCQyxJQUF0QixDQUEyQlgsR0FBM0IsQ0FBUDtBQUNELEtBRkQsQ0FFRSxPQUFPWSxDQUFQLEVBQVU7QUFDVjtBQUNEO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBLE1BQUlDLE1BQU1YLE1BQU1ELE1BQU4sQ0FBVjtBQUNBLE9BQUssSUFBSWEsS0FBSyxDQUFkLEVBQWlCQSxLQUFLYixNQUF0QixFQUE4QmEsSUFBOUIsRUFBb0M7QUFDbENELFFBQUlDLEVBQUosSUFBVWQsSUFBSWMsRUFBSixDQUFWO0FBQ0Q7QUFDRCxTQUFPRCxHQUFQO0FBQ0Q7O0FBRURFLE9BQU9DLE9BQVAsR0FBaUJqQixPQUFqQixDIiwiZmlsZSI6IjEyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIHRvQXJyYXlcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnLi9pbnZhcmlhbnQnKTtcblxuLyoqXG4gKiBDb252ZXJ0IGFycmF5LWxpa2Ugb2JqZWN0cyB0byBhcnJheXMuXG4gKlxuICogVGhpcyBBUEkgYXNzdW1lcyB0aGUgY2FsbGVyIGtub3dzIHRoZSBjb250ZW50cyBvZiB0aGUgZGF0YSB0eXBlLiBGb3IgbGVzc1xuICogd2VsbCBkZWZpbmVkIGlucHV0cyB1c2UgY3JlYXRlQXJyYXlGcm9tTWl4ZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R8ZnVuY3Rpb258ZmlsZWxpc3R9IG9ialxuICogQHJldHVybiB7YXJyYXl9XG4gKi9cbmZ1bmN0aW9uIHRvQXJyYXkob2JqKSB7XG4gIHZhciBsZW5ndGggPSBvYmoubGVuZ3RoO1xuXG4gIC8vIFNvbWUgYnJvd3NlIGJ1aWx0aW4gb2JqZWN0cyBjYW4gcmVwb3J0IHR5cGVvZiAnZnVuY3Rpb24nIChlLmcuIE5vZGVMaXN0IGluXG4gIC8vIG9sZCB2ZXJzaW9ucyBvZiBTYWZhcmkpLlxuICAhKCFBcnJheS5pc0FycmF5KG9iaikgJiYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd0b0FycmF5OiBBcnJheS1saWtlIG9iamVjdCBleHBlY3RlZCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAhKHR5cGVvZiBsZW5ndGggPT09ICdudW1iZXInKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd0b0FycmF5OiBPYmplY3QgbmVlZHMgYSBsZW5ndGggcHJvcGVydHknKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgIShsZW5ndGggPT09IDAgfHwgbGVuZ3RoIC0gMSBpbiBvYmopID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3RvQXJyYXk6IE9iamVjdCBzaG91bGQgaGF2ZSBrZXlzIGZvciBpbmRpY2VzJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gIC8vIE9sZCBJRSBkb2Vzbid0IGdpdmUgY29sbGVjdGlvbnMgYWNjZXNzIHRvIGhhc093blByb3BlcnR5LiBBc3N1bWUgaW5wdXRzXG4gIC8vIHdpdGhvdXQgbWV0aG9kIHdpbGwgdGhyb3cgZHVyaW5nIHRoZSBzbGljZSBjYWxsIGFuZCBza2lwIHN0cmFpZ2h0IHRvIHRoZVxuICAvLyBmYWxsYmFjay5cbiAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwob2JqKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJRSA8IDkgZG9lcyBub3Qgc3VwcG9ydCBBcnJheSNzbGljZSBvbiBjb2xsZWN0aW9ucyBvYmplY3RzXG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbCBiYWNrIHRvIGNvcHlpbmcga2V5IGJ5IGtleS4gVGhpcyBhc3N1bWVzIGFsbCBrZXlzIGhhdmUgYSB2YWx1ZSxcbiAgLy8gc28gd2lsbCBub3QgcHJlc2VydmUgc3BhcnNlbHkgcG9wdWxhdGVkIGlucHV0cy5cbiAgdmFyIHJldCA9IEFycmF5KGxlbmd0aCk7XG4gIGZvciAodmFyIGlpID0gMDsgaWkgPCBsZW5ndGg7IGlpKyspIHtcbiAgICByZXRbaWldID0gb2JqW2lpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvQXJyYXk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvdG9BcnJheS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 13 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9pbnZhcmlhbnQuanM/M2JkZCJdLCJuYW1lcyI6WyJpbnZhcmlhbnQiLCJjb25kaXRpb24iLCJmb3JtYXQiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJFcnJvciIsImVycm9yIiwiYXJncyIsImFyZ0luZGV4IiwicmVwbGFjZSIsIm5hbWUiLCJmcmFtZXNUb1BvcCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBOzs7Ozs7Ozs7OztBQVdBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLEVBQThCQyxNQUE5QixFQUFzQ0MsQ0FBdEMsRUFBeUNDLENBQXpDLEVBQTRDQyxDQUE1QyxFQUErQ0MsQ0FBL0MsRUFBa0RDLENBQWxELEVBQXFEQyxDQUFyRCxFQUF3RDtBQUN0RCxNQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsUUFBSVQsV0FBV1UsU0FBZixFQUEwQjtBQUN4QixZQUFNLElBQUlDLEtBQUosQ0FBVSw4Q0FBVixDQUFOO0FBQ0Q7QUFDRjs7QUFFRCxNQUFJLENBQUNaLFNBQUwsRUFBZ0I7QUFDZCxRQUFJYSxLQUFKO0FBQ0EsUUFBSVosV0FBV1UsU0FBZixFQUEwQjtBQUN4QkUsY0FBUSxJQUFJRCxLQUFKLENBQVUsdUVBQXVFLDZEQUFqRixDQUFSO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSUUsT0FBTyxDQUFDWixDQUFELEVBQUlDLENBQUosRUFBT0MsQ0FBUCxFQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0JDLENBQWhCLENBQVg7QUFDQSxVQUFJUSxXQUFXLENBQWY7QUFDQUYsY0FBUSxJQUFJRCxLQUFKLENBQVVYLE9BQU9lLE9BQVAsQ0FBZSxLQUFmLEVBQXNCLFlBQVk7QUFDbEQsZUFBT0YsS0FBS0MsVUFBTCxDQUFQO0FBQ0QsT0FGaUIsQ0FBVixDQUFSO0FBR0FGLFlBQU1JLElBQU4sR0FBYSxxQkFBYjtBQUNEOztBQUVESixVQUFNSyxXQUFOLEdBQW9CLENBQXBCLENBYmMsQ0FhUztBQUN2QixVQUFNTCxLQUFOO0FBQ0Q7QUFDRjs7QUFFRE0sT0FBT0MsT0FBUCxHQUFpQnJCLFNBQWpCLEMiLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgaW52YXJpYW50XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFVzZSBpbnZhcmlhbnQoKSB0byBhc3NlcnQgc3RhdGUgd2hpY2ggeW91ciBwcm9ncmFtIGFzc3VtZXMgdG8gYmUgdHJ1ZS5cbiAqXG4gKiBQcm92aWRlIHNwcmludGYtc3R5bGUgZm9ybWF0IChvbmx5ICVzIGlzIHN1cHBvcnRlZCkgYW5kIGFyZ3VtZW50c1xuICogdG8gcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGJyb2tlIGFuZCB3aGF0IHlvdSB3ZXJlXG4gKiBleHBlY3RpbmcuXG4gKlxuICogVGhlIGludmFyaWFudCBtZXNzYWdlIHdpbGwgYmUgc3RyaXBwZWQgaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBpbnZhcmlhbnRcbiAqIHdpbGwgcmVtYWluIHRvIGVuc3VyZSBsb2dpYyBkb2VzIG5vdCBkaWZmZXIgaW4gcHJvZHVjdGlvbi5cbiAqL1xuXG5mdW5jdGlvbiBpbnZhcmlhbnQoY29uZGl0aW9uLCBmb3JtYXQsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IHJlcXVpcmVzIGFuIGVycm9yIG1lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWNvbmRpdGlvbikge1xuICAgIHZhciBlcnJvcjtcbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKCdNaW5pZmllZCBleGNlcHRpb24gb2NjdXJyZWQ7IHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCAnICsgJ2ZvciB0aGUgZnVsbCBlcnJvciBtZXNzYWdlIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBhcmdzID0gW2EsIGIsIGMsIGQsIGUsIGZdO1xuICAgICAgdmFyIGFyZ0luZGV4ID0gMDtcbiAgICAgIGVycm9yID0gbmV3IEVycm9yKGZvcm1hdC5yZXBsYWNlKC8lcy9nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBhcmdzW2FyZ0luZGV4KytdO1xuICAgICAgfSkpO1xuICAgICAgZXJyb3IubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB9XG5cbiAgICBlcnJvci5mcmFtZXNUb1BvcCA9IDE7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgaW52YXJpYW50J3Mgb3duIGZyYW1lXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbnZhcmlhbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvaW52YXJpYW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 14 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getMarkupWrap\n */\n\n/*eslint-disable fb-www/unsafe-html */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Dummy container used to detect which wraps are necessary.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Some browsers cannot use `innerHTML` to render certain elements standalone,\n * so we wrap them, render the wrapped nodes, then extract the desired node.\n *\n * In IE8, certain elements cannot render alone, so wrap all elements ('*').\n */\n\nvar shouldWrap = {};\n\nvar selectWrap = [1, '<select multiple=\"true\">', '</select>'];\nvar tableWrap = [1, '<table>', '</table>'];\nvar trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];\n\nvar svgWrap = [1, '<svg xmlns=\"http://www.w3.org/2000/svg\">', '</svg>'];\n\nvar markupWrap = {\n '*': [1, '?<div>', '</div>'],\n\n 'area': [1, '<map>', '</map>'],\n 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],\n 'legend': [1, '<fieldset>', '</fieldset>'],\n 'param': [1, '<object>', '</object>'],\n 'tr': [2, '<table><tbody>', '</tbody></table>'],\n\n 'optgroup': selectWrap,\n 'option': selectWrap,\n\n 'caption': tableWrap,\n 'colgroup': tableWrap,\n 'tbody': tableWrap,\n 'tfoot': tableWrap,\n 'thead': tableWrap,\n\n 'td': trWrap,\n 'th': trWrap\n};\n\n// Initialize the SVG elements since we know they'll always need to be wrapped\n// consistently. If they are created inside a <div> they will be initialized in\n// the wrong namespace (and will not display).\nvar svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];\nsvgElements.forEach(function (nodeName) {\n markupWrap[nodeName] = svgWrap;\n shouldWrap[nodeName] = true;\n});\n\n/**\n * Gets the markup wrap configuration for the supplied `nodeName`.\n *\n * NOTE: This lazily detects which wraps are necessary for the current browser.\n *\n * @param {string} nodeName Lowercase `nodeName`.\n * @return {?array} Markup wrap configuration, if applicable.\n */\nfunction getMarkupWrap(nodeName) {\n !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : undefined;\n if (!markupWrap.hasOwnProperty(nodeName)) {\n nodeName = '*';\n }\n if (!shouldWrap.hasOwnProperty(nodeName)) {\n if (nodeName === '*') {\n dummyNode.innerHTML = '<link />';\n } else {\n dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';\n }\n shouldWrap[nodeName] = !dummyNode.firstChild;\n }\n return shouldWrap[nodeName] ? markupWrap[nodeName] : null;\n}\n\nmodule.exports = getMarkupWrap;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9nZXRNYXJrdXBXcmFwLmpzP2EwYjYiXSwibmFtZXMiOlsiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCJyZXF1aXJlIiwiaW52YXJpYW50IiwiZHVtbXlOb2RlIiwiY2FuVXNlRE9NIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2hvdWxkV3JhcCIsInNlbGVjdFdyYXAiLCJ0YWJsZVdyYXAiLCJ0cldyYXAiLCJzdmdXcmFwIiwibWFya3VwV3JhcCIsInN2Z0VsZW1lbnRzIiwiZm9yRWFjaCIsIm5vZGVOYW1lIiwiZ2V0TWFya3VwV3JhcCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImhhc093blByb3BlcnR5IiwiaW5uZXJIVE1MIiwiZmlyc3RDaGlsZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBOztBQUVBLElBQUlBLHVCQUF1QixtQkFBQUMsQ0FBUSxDQUFSLENBQTNCOztBQUVBLElBQUlDLFlBQVksbUJBQUFELENBQVEsRUFBUixDQUFoQjs7QUFFQTs7O0FBR0EsSUFBSUUsWUFBWUgscUJBQXFCSSxTQUFyQixHQUFpQ0MsU0FBU0MsYUFBVCxDQUF1QixLQUF2QixDQUFqQyxHQUFpRSxJQUFqRjs7QUFFQTs7Ozs7OztBQU9BLElBQUlDLGFBQWEsRUFBakI7O0FBRUEsSUFBSUMsYUFBYSxDQUFDLENBQUQsRUFBSSwwQkFBSixFQUFnQyxXQUFoQyxDQUFqQjtBQUNBLElBQUlDLFlBQVksQ0FBQyxDQUFELEVBQUksU0FBSixFQUFlLFVBQWYsQ0FBaEI7QUFDQSxJQUFJQyxTQUFTLENBQUMsQ0FBRCxFQUFJLG9CQUFKLEVBQTBCLHVCQUExQixDQUFiOztBQUVBLElBQUlDLFVBQVUsQ0FBQyxDQUFELEVBQUksMENBQUosRUFBZ0QsUUFBaEQsQ0FBZDs7QUFFQSxJQUFJQyxhQUFhO0FBQ2YsT0FBSyxDQUFDLENBQUQsRUFBSSxRQUFKLEVBQWMsUUFBZCxDQURVOztBQUdmLFVBQVEsQ0FBQyxDQUFELEVBQUksT0FBSixFQUFhLFFBQWIsQ0FITztBQUlmLFNBQU8sQ0FBQyxDQUFELEVBQUksa0NBQUosRUFBd0MscUJBQXhDLENBSlE7QUFLZixZQUFVLENBQUMsQ0FBRCxFQUFJLFlBQUosRUFBa0IsYUFBbEIsQ0FMSztBQU1mLFdBQVMsQ0FBQyxDQUFELEVBQUksVUFBSixFQUFnQixXQUFoQixDQU5NO0FBT2YsUUFBTSxDQUFDLENBQUQsRUFBSSxnQkFBSixFQUFzQixrQkFBdEIsQ0FQUzs7QUFTZixjQUFZSixVQVRHO0FBVWYsWUFBVUEsVUFWSzs7QUFZZixhQUFXQyxTQVpJO0FBYWYsY0FBWUEsU0FiRztBQWNmLFdBQVNBLFNBZE07QUFlZixXQUFTQSxTQWZNO0FBZ0JmLFdBQVNBLFNBaEJNOztBQWtCZixRQUFNQyxNQWxCUztBQW1CZixRQUFNQTtBQW5CUyxDQUFqQjs7QUFzQkE7QUFDQTtBQUNBO0FBQ0EsSUFBSUcsY0FBYyxDQUFDLFFBQUQsRUFBVyxVQUFYLEVBQXVCLE1BQXZCLEVBQStCLFNBQS9CLEVBQTBDLEdBQTFDLEVBQStDLE9BQS9DLEVBQXdELE1BQXhELEVBQWdFLGdCQUFoRSxFQUFrRixNQUFsRixFQUEwRixNQUExRixFQUFrRyxTQUFsRyxFQUE2RyxTQUE3RyxFQUF3SCxVQUF4SCxFQUFvSSxnQkFBcEksRUFBc0osTUFBdEosRUFBOEosTUFBOUosRUFBc0ssTUFBdEssRUFBOEssT0FBOUssQ0FBbEI7QUFDQUEsWUFBWUMsT0FBWixDQUFvQixVQUFVQyxRQUFWLEVBQW9CO0FBQ3RDSCxhQUFXRyxRQUFYLElBQXVCSixPQUF2QjtBQUNBSixhQUFXUSxRQUFYLElBQXVCLElBQXZCO0FBQ0QsQ0FIRDs7QUFLQTs7Ozs7Ozs7QUFRQSxTQUFTQyxhQUFULENBQXVCRCxRQUF2QixFQUFpQztBQUMvQixHQUFDLENBQUMsQ0FBQ1osU0FBSCxHQUFlYyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NqQixVQUFVLEtBQVYsRUFBaUIsc0NBQWpCLENBQXhDLEdBQW1HQSxVQUFVLEtBQVYsQ0FBbEgsR0FBcUlrQixTQUFySTtBQUNBLE1BQUksQ0FBQ1IsV0FBV1MsY0FBWCxDQUEwQk4sUUFBMUIsQ0FBTCxFQUEwQztBQUN4Q0EsZUFBVyxHQUFYO0FBQ0Q7QUFDRCxNQUFJLENBQUNSLFdBQVdjLGNBQVgsQ0FBMEJOLFFBQTFCLENBQUwsRUFBMEM7QUFDeEMsUUFBSUEsYUFBYSxHQUFqQixFQUFzQjtBQUNwQlosZ0JBQVVtQixTQUFWLEdBQXNCLFVBQXRCO0FBQ0QsS0FGRCxNQUVPO0FBQ0xuQixnQkFBVW1CLFNBQVYsR0FBc0IsTUFBTVAsUUFBTixHQUFpQixLQUFqQixHQUF5QkEsUUFBekIsR0FBb0MsR0FBMUQ7QUFDRDtBQUNEUixlQUFXUSxRQUFYLElBQXVCLENBQUNaLFVBQVVvQixVQUFsQztBQUNEO0FBQ0QsU0FBT2hCLFdBQVdRLFFBQVgsSUFBdUJILFdBQVdHLFFBQVgsQ0FBdkIsR0FBOEMsSUFBckQ7QUFDRDs7QUFFRFMsT0FBT0MsT0FBUCxHQUFpQlQsYUFBakIsQyIsImZpbGUiOiIxNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBnZXRNYXJrdXBXcmFwXG4gKi9cblxuLyplc2xpbnQtZGlzYWJsZSBmYi13d3cvdW5zYWZlLWh0bWwgKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCcuL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIER1bW15IGNvbnRhaW5lciB1c2VkIHRvIGRldGVjdCB3aGljaCB3cmFwcyBhcmUgbmVjZXNzYXJ5LlxuICovXG52YXIgZHVtbXlOb2RlID0gRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykgOiBudWxsO1xuXG4vKipcbiAqIFNvbWUgYnJvd3NlcnMgY2Fubm90IHVzZSBgaW5uZXJIVE1MYCB0byByZW5kZXIgY2VydGFpbiBlbGVtZW50cyBzdGFuZGFsb25lLFxuICogc28gd2Ugd3JhcCB0aGVtLCByZW5kZXIgdGhlIHdyYXBwZWQgbm9kZXMsIHRoZW4gZXh0cmFjdCB0aGUgZGVzaXJlZCBub2RlLlxuICpcbiAqIEluIElFOCwgY2VydGFpbiBlbGVtZW50cyBjYW5ub3QgcmVuZGVyIGFsb25lLCBzbyB3cmFwIGFsbCBlbGVtZW50cyAoJyonKS5cbiAqL1xuXG52YXIgc2hvdWxkV3JhcCA9IHt9O1xuXG52YXIgc2VsZWN0V3JhcCA9IFsxLCAnPHNlbGVjdCBtdWx0aXBsZT1cInRydWVcIj4nLCAnPC9zZWxlY3Q+J107XG52YXIgdGFibGVXcmFwID0gWzEsICc8dGFibGU+JywgJzwvdGFibGU+J107XG52YXIgdHJXcmFwID0gWzMsICc8dGFibGU+PHRib2R5Pjx0cj4nLCAnPC90cj48L3Rib2R5PjwvdGFibGU+J107XG5cbnZhciBzdmdXcmFwID0gWzEsICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj4nLCAnPC9zdmc+J107XG5cbnZhciBtYXJrdXBXcmFwID0ge1xuICAnKic6IFsxLCAnPzxkaXY+JywgJzwvZGl2PiddLFxuXG4gICdhcmVhJzogWzEsICc8bWFwPicsICc8L21hcD4nXSxcbiAgJ2NvbCc6IFsyLCAnPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4nLCAnPC9jb2xncm91cD48L3RhYmxlPiddLFxuICAnbGVnZW5kJzogWzEsICc8ZmllbGRzZXQ+JywgJzwvZmllbGRzZXQ+J10sXG4gICdwYXJhbSc6IFsxLCAnPG9iamVjdD4nLCAnPC9vYmplY3Q+J10sXG4gICd0cic6IFsyLCAnPHRhYmxlPjx0Ym9keT4nLCAnPC90Ym9keT48L3RhYmxlPiddLFxuXG4gICdvcHRncm91cCc6IHNlbGVjdFdyYXAsXG4gICdvcHRpb24nOiBzZWxlY3RXcmFwLFxuXG4gICdjYXB0aW9uJzogdGFibGVXcmFwLFxuICAnY29sZ3JvdXAnOiB0YWJsZVdyYXAsXG4gICd0Ym9keSc6IHRhYmxlV3JhcCxcbiAgJ3Rmb290JzogdGFibGVXcmFwLFxuICAndGhlYWQnOiB0YWJsZVdyYXAsXG5cbiAgJ3RkJzogdHJXcmFwLFxuICAndGgnOiB0cldyYXBcbn07XG5cbi8vIEluaXRpYWxpemUgdGhlIFNWRyBlbGVtZW50cyBzaW5jZSB3ZSBrbm93IHRoZXknbGwgYWx3YXlzIG5lZWQgdG8gYmUgd3JhcHBlZFxuLy8gY29uc2lzdGVudGx5LiBJZiB0aGV5IGFyZSBjcmVhdGVkIGluc2lkZSBhIDxkaXY+IHRoZXkgd2lsbCBiZSBpbml0aWFsaXplZCBpblxuLy8gdGhlIHdyb25nIG5hbWVzcGFjZSAoYW5kIHdpbGwgbm90IGRpc3BsYXkpLlxudmFyIHN2Z0VsZW1lbnRzID0gWydjaXJjbGUnLCAnY2xpcFBhdGgnLCAnZGVmcycsICdlbGxpcHNlJywgJ2cnLCAnaW1hZ2UnLCAnbGluZScsICdsaW5lYXJHcmFkaWVudCcsICdtYXNrJywgJ3BhdGgnLCAncGF0dGVybicsICdwb2x5Z29uJywgJ3BvbHlsaW5lJywgJ3JhZGlhbEdyYWRpZW50JywgJ3JlY3QnLCAnc3RvcCcsICd0ZXh0JywgJ3RzcGFuJ107XG5zdmdFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlTmFtZSkge1xuICBtYXJrdXBXcmFwW25vZGVOYW1lXSA9IHN2Z1dyYXA7XG4gIHNob3VsZFdyYXBbbm9kZU5hbWVdID0gdHJ1ZTtcbn0pO1xuXG4vKipcbiAqIEdldHMgdGhlIG1hcmt1cCB3cmFwIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzdXBwbGllZCBgbm9kZU5hbWVgLlxuICpcbiAqIE5PVEU6IFRoaXMgbGF6aWx5IGRldGVjdHMgd2hpY2ggd3JhcHMgYXJlIG5lY2Vzc2FyeSBmb3IgdGhlIGN1cnJlbnQgYnJvd3Nlci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbm9kZU5hbWUgTG93ZXJjYXNlIGBub2RlTmFtZWAuXG4gKiBAcmV0dXJuIHs/YXJyYXl9IE1hcmt1cCB3cmFwIGNvbmZpZ3VyYXRpb24sIGlmIGFwcGxpY2FibGUuXG4gKi9cbmZ1bmN0aW9uIGdldE1hcmt1cFdyYXAobm9kZU5hbWUpIHtcbiAgISEhZHVtbXlOb2RlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ01hcmt1cCB3cmFwcGluZyBub2RlIG5vdCBpbml0aWFsaXplZCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgaWYgKCFtYXJrdXBXcmFwLmhhc093blByb3BlcnR5KG5vZGVOYW1lKSkge1xuICAgIG5vZGVOYW1lID0gJyonO1xuICB9XG4gIGlmICghc2hvdWxkV3JhcC5oYXNPd25Qcm9wZXJ0eShub2RlTmFtZSkpIHtcbiAgICBpZiAobm9kZU5hbWUgPT09ICcqJykge1xuICAgICAgZHVtbXlOb2RlLmlubmVySFRNTCA9ICc8bGluayAvPic7XG4gICAgfSBlbHNlIHtcbiAgICAgIGR1bW15Tm9kZS5pbm5lckhUTUwgPSAnPCcgKyBub2RlTmFtZSArICc+PC8nICsgbm9kZU5hbWUgKyAnPic7XG4gICAgfVxuICAgIHNob3VsZFdyYXBbbm9kZU5hbWVdID0gIWR1bW15Tm9kZS5maXJzdENoaWxkO1xuICB9XG4gIHJldHVybiBzaG91bGRXcmFwW25vZGVOYW1lXSA/IG1hcmt1cFdyYXBbbm9kZU5hbWVdIDogbnVsbDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRNYXJrdXBXcmFwO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2dldE1hcmt1cFdyYXAuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 15 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyFunction\n */\n\n\"use strict\";\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9lbXB0eUZ1bmN0aW9uLmpzPzFjNzEiXSwibmFtZXMiOlsibWFrZUVtcHR5RnVuY3Rpb24iLCJhcmciLCJlbXB0eUZ1bmN0aW9uIiwidGhhdFJldHVybnMiLCJ0aGF0UmV0dXJuc0ZhbHNlIiwidGhhdFJldHVybnNUcnVlIiwidGhhdFJldHVybnNOdWxsIiwidGhhdFJldHVybnNUaGlzIiwidGhhdFJldHVybnNBcmd1bWVudCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLFNBQVNBLGlCQUFULENBQTJCQyxHQUEzQixFQUFnQztBQUM5QixTQUFPLFlBQVk7QUFDakIsV0FBT0EsR0FBUDtBQUNELEdBRkQ7QUFHRDs7QUFFRDs7Ozs7QUFLQSxTQUFTQyxhQUFULEdBQXlCLENBQUU7O0FBRTNCQSxjQUFjQyxXQUFkLEdBQTRCSCxpQkFBNUI7QUFDQUUsY0FBY0UsZ0JBQWQsR0FBaUNKLGtCQUFrQixLQUFsQixDQUFqQztBQUNBRSxjQUFjRyxlQUFkLEdBQWdDTCxrQkFBa0IsSUFBbEIsQ0FBaEM7QUFDQUUsY0FBY0ksZUFBZCxHQUFnQ04sa0JBQWtCLElBQWxCLENBQWhDO0FBQ0FFLGNBQWNLLGVBQWQsR0FBZ0MsWUFBWTtBQUMxQyxTQUFPLElBQVA7QUFDRCxDQUZEO0FBR0FMLGNBQWNNLG1CQUFkLEdBQW9DLFVBQVVQLEdBQVYsRUFBZTtBQUNqRCxTQUFPQSxHQUFQO0FBQ0QsQ0FGRDs7QUFJQVEsT0FBT0MsT0FBUCxHQUFpQlIsYUFBakIiLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgZW1wdHlGdW5jdGlvblxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBtYWtlRW1wdHlGdW5jdGlvbihhcmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gYXJnO1xuICB9O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gYWNjZXB0cyBhbmQgZGlzY2FyZHMgaW5wdXRzOyBpdCBoYXMgbm8gc2lkZSBlZmZlY3RzLiBUaGlzIGlzXG4gKiBwcmltYXJpbHkgdXNlZnVsIGlkaW9tYXRpY2FsbHkgZm9yIG92ZXJyaWRhYmxlIGZ1bmN0aW9uIGVuZHBvaW50cyB3aGljaFxuICogYWx3YXlzIG5lZWQgdG8gYmUgY2FsbGFibGUsIHNpbmNlIEpTIGxhY2tzIGEgbnVsbC1jYWxsIGlkaW9tIGFsYSBDb2NvYS5cbiAqL1xuZnVuY3Rpb24gZW1wdHlGdW5jdGlvbigpIHt9XG5cbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnMgPSBtYWtlRW1wdHlGdW5jdGlvbjtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNGYWxzZSA9IG1ha2VFbXB0eUZ1bmN0aW9uKGZhbHNlKTtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNUcnVlID0gbWFrZUVtcHR5RnVuY3Rpb24odHJ1ZSk7XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zTnVsbCA9IG1ha2VFbXB0eUZ1bmN0aW9uKG51bGwpO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc1RoaXMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzO1xufTtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNBcmd1bWVudCA9IGZ1bmN0aW9uIChhcmcpIHtcbiAgcmV0dXJuIGFyZztcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZW1wdHlGdW5jdGlvbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9lbXB0eUZ1bmN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 16 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChildUpdateTypes\n */\n\n'use strict';\n\nvar keyMirror = __webpack_require__(17);\n\n/**\n * When a component's children are updated, a series of update configuration\n * objects are created in order to batch and serialize the required changes.\n *\n * Enumerates all the possible types of update configurations.\n *\n * @internal\n */\nvar ReactMultiChildUpdateTypes = keyMirror({\n INSERT_MARKUP: null,\n MOVE_EXISTING: null,\n REMOVE_NODE: null,\n SET_MARKUP: null,\n TEXT_CONTENT: null\n});\n\nmodule.exports = ReactMultiChildUpdateTypes;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RNdWx0aUNoaWxkVXBkYXRlVHlwZXMuanM/OGMyYyJdLCJuYW1lcyI6WyJrZXlNaXJyb3IiLCJyZXF1aXJlIiwiUmVhY3RNdWx0aUNoaWxkVXBkYXRlVHlwZXMiLCJJTlNFUlRfTUFSS1VQIiwiTU9WRV9FWElTVElORyIsIlJFTU9WRV9OT0RFIiwiU0VUX01BUktVUCIsIlRFWFRfQ09OVEVOVCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLFlBQVksbUJBQUFDLENBQVEsRUFBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7QUFRQSxJQUFJQyw2QkFBNkJGLFVBQVU7QUFDekNHLGlCQUFlLElBRDBCO0FBRXpDQyxpQkFBZSxJQUYwQjtBQUd6Q0MsZUFBYSxJQUg0QjtBQUl6Q0MsY0FBWSxJQUo2QjtBQUt6Q0MsZ0JBQWM7QUFMMkIsQ0FBVixDQUFqQzs7QUFRQUMsT0FBT0MsT0FBUCxHQUFpQlAsMEJBQWpCIiwiZmlsZSI6IjE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIga2V5TWlycm9yID0gcmVxdWlyZSgnZmJqcy9saWIva2V5TWlycm9yJyk7XG5cbi8qKlxuICogV2hlbiBhIGNvbXBvbmVudCdzIGNoaWxkcmVuIGFyZSB1cGRhdGVkLCBhIHNlcmllcyBvZiB1cGRhdGUgY29uZmlndXJhdGlvblxuICogb2JqZWN0cyBhcmUgY3JlYXRlZCBpbiBvcmRlciB0byBiYXRjaCBhbmQgc2VyaWFsaXplIHRoZSByZXF1aXJlZCBjaGFuZ2VzLlxuICpcbiAqIEVudW1lcmF0ZXMgYWxsIHRoZSBwb3NzaWJsZSB0eXBlcyBvZiB1cGRhdGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGludGVybmFsXG4gKi9cbnZhciBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcyA9IGtleU1pcnJvcih7XG4gIElOU0VSVF9NQVJLVVA6IG51bGwsXG4gIE1PVkVfRVhJU1RJTkc6IG51bGwsXG4gIFJFTU9WRV9OT0RFOiBudWxsLFxuICBTRVRfTUFSS1VQOiBudWxsLFxuICBURVhUX0NPTlRFTlQ6IG51bGxcbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 17 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyMirror\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Constructs an enumeration with keys equal to their value.\n *\n * For example:\n *\n * var COLORS = keyMirror({blue: null, red: null});\n * var myColor = COLORS.blue;\n * var isColorValid = !!COLORS[myColor];\n *\n * The last line could not be performed if the values of the generated enum were\n * not equal to their keys.\n *\n * Input: {key1: val1, key2: val2}\n * Output: {key1: key1, key2: key2}\n *\n * @param {object} obj\n * @return {object}\n */\nvar keyMirror = function keyMirror(obj) {\n var ret = {};\n var key;\n !(obj instanceof Object && !Array.isArray(obj)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'keyMirror(...): Argument must be an object.') : invariant(false) : undefined;\n for (key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n ret[key] = key;\n }\n return ret;\n};\n\nmodule.exports = keyMirror;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9rZXlNaXJyb3IuanM/NjRlZiJdLCJuYW1lcyI6WyJpbnZhcmlhbnQiLCJyZXF1aXJlIiwia2V5TWlycm9yIiwib2JqIiwicmV0Iiwia2V5IiwiT2JqZWN0IiwiQXJyYXkiLCJpc0FycmF5IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwiaGFzT3duUHJvcGVydHkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsWUFBWSxtQkFBQUMsQ0FBUSxFQUFSLENBQWhCOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsSUFBSUMsWUFBWSxTQUFaQSxTQUFZLENBQVVDLEdBQVYsRUFBZTtBQUM3QixNQUFJQyxNQUFNLEVBQVY7QUFDQSxNQUFJQyxHQUFKO0FBQ0EsSUFBRUYsZUFBZUcsTUFBZixJQUF5QixDQUFDQyxNQUFNQyxPQUFOLENBQWNMLEdBQWQsQ0FBNUIsSUFBa0RNLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1gsVUFBVSxLQUFWLEVBQWlCLDZDQUFqQixDQUF4QyxHQUEwR0EsVUFBVSxLQUFWLENBQTVKLEdBQStLWSxTQUEvSztBQUNBLE9BQUtQLEdBQUwsSUFBWUYsR0FBWixFQUFpQjtBQUNmLFFBQUksQ0FBQ0EsSUFBSVUsY0FBSixDQUFtQlIsR0FBbkIsQ0FBTCxFQUE4QjtBQUM1QjtBQUNEO0FBQ0RELFFBQUlDLEdBQUosSUFBV0EsR0FBWDtBQUNEO0FBQ0QsU0FBT0QsR0FBUDtBQUNELENBWEQ7O0FBYUFVLE9BQU9DLE9BQVAsR0FBaUJiLFNBQWpCLEMiLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUga2V5TWlycm9yXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJy4vaW52YXJpYW50Jyk7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhbiBlbnVtZXJhdGlvbiB3aXRoIGtleXMgZXF1YWwgdG8gdGhlaXIgdmFsdWUuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogICB2YXIgQ09MT1JTID0ga2V5TWlycm9yKHtibHVlOiBudWxsLCByZWQ6IG51bGx9KTtcbiAqICAgdmFyIG15Q29sb3IgPSBDT0xPUlMuYmx1ZTtcbiAqICAgdmFyIGlzQ29sb3JWYWxpZCA9ICEhQ09MT1JTW215Q29sb3JdO1xuICpcbiAqIFRoZSBsYXN0IGxpbmUgY291bGQgbm90IGJlIHBlcmZvcm1lZCBpZiB0aGUgdmFsdWVzIG9mIHRoZSBnZW5lcmF0ZWQgZW51bSB3ZXJlXG4gKiBub3QgZXF1YWwgdG8gdGhlaXIga2V5cy5cbiAqXG4gKiAgIElucHV0OiAge2tleTE6IHZhbDEsIGtleTI6IHZhbDJ9XG4gKiAgIE91dHB1dDoge2tleTE6IGtleTEsIGtleTI6IGtleTJ9XG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9ialxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG52YXIga2V5TWlycm9yID0gZnVuY3Rpb24gKG9iaikge1xuICB2YXIgcmV0ID0ge307XG4gIHZhciBrZXk7XG4gICEob2JqIGluc3RhbmNlb2YgT2JqZWN0ICYmICFBcnJheS5pc0FycmF5KG9iaikpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2tleU1pcnJvciguLi4pOiBBcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIGZvciAoa2V5IGluIG9iaikge1xuICAgIGlmICghb2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICByZXRba2V5XSA9IGtleTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBrZXlNaXJyb3I7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIva2V5TWlycm9yLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 18 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPerf\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * ReactPerf is a general AOP system designed to measure performance. This\n * module only has the hooks: see ReactDefaultPerf for the analysis tool.\n */\n\nvar ReactPerf = {\n /**\n * Boolean to enable/disable measurement. Set to false by default to prevent\n * accidental logging and perf loss.\n */\n enableMeasure: false,\n\n /**\n * Holds onto the measure function in use. By default, don't measure\n * anything, but we'll override this if we inject a measure function.\n */\n storedMeasure: _noMeasure,\n\n /**\n * @param {object} object\n * @param {string} objectName\n * @param {object<string>} methodNames\n */\n measureMethods: function measureMethods(object, objectName, methodNames) {\n if (process.env.NODE_ENV !== 'production') {\n for (var key in methodNames) {\n if (!methodNames.hasOwnProperty(key)) {\n continue;\n }\n object[key] = ReactPerf.measure(objectName, methodNames[key], object[key]);\n }\n }\n },\n\n /**\n * Use this to wrap methods you want to measure. Zero overhead in production.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\n measure: function measure(objName, fnName, func) {\n if (process.env.NODE_ENV !== 'production') {\n var measuredFunc = null;\n var wrapper = function wrapper() {\n if (ReactPerf.enableMeasure) {\n if (!measuredFunc) {\n measuredFunc = ReactPerf.storedMeasure(objName, fnName, func);\n }\n return measuredFunc.apply(this, arguments);\n }\n return func.apply(this, arguments);\n };\n wrapper.displayName = objName + '_' + fnName;\n return wrapper;\n }\n return func;\n },\n\n injection: {\n /**\n * @param {function} measure\n */\n injectMeasure: function injectMeasure(measure) {\n ReactPerf.storedMeasure = measure;\n }\n }\n};\n\n/**\n * Simply passes through the measured function, without measuring it.\n *\n * @param {string} objName\n * @param {string} fnName\n * @param {function} func\n * @return {function}\n */\nfunction _noMeasure(objName, fnName, func) {\n return func;\n}\n\nmodule.exports = ReactPerf;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RQZXJmLmpzPzdhYWUiXSwibmFtZXMiOlsiUmVhY3RQZXJmIiwiZW5hYmxlTWVhc3VyZSIsInN0b3JlZE1lYXN1cmUiLCJfbm9NZWFzdXJlIiwibWVhc3VyZU1ldGhvZHMiLCJvYmplY3QiLCJvYmplY3ROYW1lIiwibWV0aG9kTmFtZXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIm1lYXN1cmUiLCJvYmpOYW1lIiwiZm5OYW1lIiwiZnVuYyIsIm1lYXN1cmVkRnVuYyIsIndyYXBwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsImRpc3BsYXlOYW1lIiwiaW5qZWN0aW9uIiwiaW5qZWN0TWVhc3VyZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7Ozs7QUFJQSxJQUFJQSxZQUFZO0FBQ2Q7Ozs7QUFJQUMsaUJBQWUsS0FMRDs7QUFPZDs7OztBQUlBQyxpQkFBZUMsVUFYRDs7QUFhZDs7Ozs7QUFLQUMsa0JBQWdCLHdCQUFVQyxNQUFWLEVBQWtCQyxVQUFsQixFQUE4QkMsV0FBOUIsRUFBMkM7QUFDekQsUUFBSUMsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDLFdBQUssSUFBSUMsR0FBVCxJQUFnQkosV0FBaEIsRUFBNkI7QUFDM0IsWUFBSSxDQUFDQSxZQUFZSyxjQUFaLENBQTJCRCxHQUEzQixDQUFMLEVBQXNDO0FBQ3BDO0FBQ0Q7QUFDRE4sZUFBT00sR0FBUCxJQUFjWCxVQUFVYSxPQUFWLENBQWtCUCxVQUFsQixFQUE4QkMsWUFBWUksR0FBWixDQUE5QixFQUFnRE4sT0FBT00sR0FBUCxDQUFoRCxDQUFkO0FBQ0Q7QUFDRjtBQUNGLEdBM0JhOztBQTZCZDs7Ozs7Ozs7QUFRQUUsV0FBUyxpQkFBVUMsT0FBVixFQUFtQkMsTUFBbkIsRUFBMkJDLElBQTNCLEVBQWlDO0FBQ3hDLFFBQUlSLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxVQUFJTyxlQUFlLElBQW5CO0FBQ0EsVUFBSUMsVUFBVSxTQUFWQSxPQUFVLEdBQVk7QUFDeEIsWUFBSWxCLFVBQVVDLGFBQWQsRUFBNkI7QUFDM0IsY0FBSSxDQUFDZ0IsWUFBTCxFQUFtQjtBQUNqQkEsMkJBQWVqQixVQUFVRSxhQUFWLENBQXdCWSxPQUF4QixFQUFpQ0MsTUFBakMsRUFBeUNDLElBQXpDLENBQWY7QUFDRDtBQUNELGlCQUFPQyxhQUFhRSxLQUFiLENBQW1CLElBQW5CLEVBQXlCQyxTQUF6QixDQUFQO0FBQ0Q7QUFDRCxlQUFPSixLQUFLRyxLQUFMLENBQVcsSUFBWCxFQUFpQkMsU0FBakIsQ0FBUDtBQUNELE9BUkQ7QUFTQUYsY0FBUUcsV0FBUixHQUFzQlAsVUFBVSxHQUFWLEdBQWdCQyxNQUF0QztBQUNBLGFBQU9HLE9BQVA7QUFDRDtBQUNELFdBQU9GLElBQVA7QUFDRCxHQXJEYTs7QUF1RGRNLGFBQVc7QUFDVDs7O0FBR0FDLG1CQUFlLHVCQUFVVixPQUFWLEVBQW1CO0FBQ2hDYixnQkFBVUUsYUFBVixHQUEwQlcsT0FBMUI7QUFDRDtBQU5RO0FBdkRHLENBQWhCOztBQWlFQTs7Ozs7Ozs7QUFRQSxTQUFTVixVQUFULENBQW9CVyxPQUFwQixFQUE2QkMsTUFBN0IsRUFBcUNDLElBQXJDLEVBQTJDO0FBQ3pDLFNBQU9BLElBQVA7QUFDRDs7QUFFRFEsT0FBT0MsT0FBUCxHQUFpQnpCLFNBQWpCLEMiLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RQZXJmXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBSZWFjdFBlcmYgaXMgYSBnZW5lcmFsIEFPUCBzeXN0ZW0gZGVzaWduZWQgdG8gbWVhc3VyZSBwZXJmb3JtYW5jZS4gVGhpc1xuICogbW9kdWxlIG9ubHkgaGFzIHRoZSBob29rczogc2VlIFJlYWN0RGVmYXVsdFBlcmYgZm9yIHRoZSBhbmFseXNpcyB0b29sLlxuICovXG52YXIgUmVhY3RQZXJmID0ge1xuICAvKipcbiAgICogQm9vbGVhbiB0byBlbmFibGUvZGlzYWJsZSBtZWFzdXJlbWVudC4gU2V0IHRvIGZhbHNlIGJ5IGRlZmF1bHQgdG8gcHJldmVudFxuICAgKiBhY2NpZGVudGFsIGxvZ2dpbmcgYW5kIHBlcmYgbG9zcy5cbiAgICovXG4gIGVuYWJsZU1lYXN1cmU6IGZhbHNlLFxuXG4gIC8qKlxuICAgKiBIb2xkcyBvbnRvIHRoZSBtZWFzdXJlIGZ1bmN0aW9uIGluIHVzZS4gQnkgZGVmYXVsdCwgZG9uJ3QgbWVhc3VyZVxuICAgKiBhbnl0aGluZywgYnV0IHdlJ2xsIG92ZXJyaWRlIHRoaXMgaWYgd2UgaW5qZWN0IGEgbWVhc3VyZSBmdW5jdGlvbi5cbiAgICovXG4gIHN0b3JlZE1lYXN1cmU6IF9ub01lYXN1cmUsXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3RcbiAgICogQHBhcmFtIHtzdHJpbmd9IG9iamVjdE5hbWVcbiAgICogQHBhcmFtIHtvYmplY3Q8c3RyaW5nPn0gbWV0aG9kTmFtZXNcbiAgICovXG4gIG1lYXN1cmVNZXRob2RzOiBmdW5jdGlvbiAob2JqZWN0LCBvYmplY3ROYW1lLCBtZXRob2ROYW1lcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBmb3IgKHZhciBrZXkgaW4gbWV0aG9kTmFtZXMpIHtcbiAgICAgICAgaWYgKCFtZXRob2ROYW1lcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0W2tleV0gPSBSZWFjdFBlcmYubWVhc3VyZShvYmplY3ROYW1lLCBtZXRob2ROYW1lc1trZXldLCBvYmplY3Rba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBVc2UgdGhpcyB0byB3cmFwIG1ldGhvZHMgeW91IHdhbnQgdG8gbWVhc3VyZS4gWmVybyBvdmVyaGVhZCBpbiBwcm9kdWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm5OYW1lXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmNcbiAgICogQHJldHVybiB7ZnVuY3Rpb259XG4gICAqL1xuICBtZWFzdXJlOiBmdW5jdGlvbiAob2JqTmFtZSwgZm5OYW1lLCBmdW5jKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBtZWFzdXJlZEZ1bmMgPSBudWxsO1xuICAgICAgdmFyIHdyYXBwZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmIChSZWFjdFBlcmYuZW5hYmxlTWVhc3VyZSkge1xuICAgICAgICAgIGlmICghbWVhc3VyZWRGdW5jKSB7XG4gICAgICAgICAgICBtZWFzdXJlZEZ1bmMgPSBSZWFjdFBlcmYuc3RvcmVkTWVhc3VyZShvYmpOYW1lLCBmbk5hbWUsIGZ1bmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbWVhc3VyZWRGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgICB3cmFwcGVyLmRpc3BsYXlOYW1lID0gb2JqTmFtZSArICdfJyArIGZuTmFtZTtcbiAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYztcbiAgfSxcblxuICBpbmplY3Rpb246IHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBtZWFzdXJlXG4gICAgICovXG4gICAgaW5qZWN0TWVhc3VyZTogZnVuY3Rpb24gKG1lYXN1cmUpIHtcbiAgICAgIFJlYWN0UGVyZi5zdG9yZWRNZWFzdXJlID0gbWVhc3VyZTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogU2ltcGx5IHBhc3NlcyB0aHJvdWdoIHRoZSBtZWFzdXJlZCBmdW5jdGlvbiwgd2l0aG91dCBtZWFzdXJpbmcgaXQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG9iak5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBmbk5hbWVcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZ1bmNcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBfbm9NZWFzdXJlKG9iak5hbWUsIGZuTmFtZSwgZnVuYykge1xuICByZXR1cm4gZnVuYztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdFBlcmY7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0UGVyZi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 19 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setInnerHTML\n */\n\n/* globals MSApp */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar WHITESPACE_TEST = /^[ \\r\\n\\t\\f]/;\nvar NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \\r\\n\\t\\f\\/>]/;\n\n/**\n * Set the innerHTML property of a node, ensuring that whitespace is preserved\n * even in IE8.\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = function setInnerHTML(node, html) {\n node.innerHTML = html;\n};\n\n// Win8 apps: Allow all html to be inserted\nif (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n setInnerHTML = function setInnerHTML(node, html) {\n MSApp.execUnsafeLocalFunction(function () {\n node.innerHTML = html;\n });\n };\n}\n\nif (ExecutionEnvironment.canUseDOM) {\n // IE8: When updating a just created node with innerHTML only leading\n // whitespace is removed. When updating an existing node with innerHTML\n // whitespace in root TextNodes is also collapsed.\n // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html\n\n // Feature detection; only IE8 is known to behave improperly like this.\n var testElement = document.createElement('div');\n testElement.innerHTML = ' ';\n if (testElement.innerHTML === '') {\n setInnerHTML = function setInnerHTML(node, html) {\n // Magic theory: IE8 supposedly differentiates between added and updated\n // nodes when processing innerHTML, innerHTML on updated nodes suffers\n // from worse whitespace behavior. Re-adding a node like this triggers\n // the initial and more favorable whitespace behavior.\n // TODO: What to do on a detached node?\n if (node.parentNode) {\n node.parentNode.replaceChild(node, node);\n }\n\n // We also implement a workaround for non-visible tags disappearing into\n // thin air on IE8, this only happens if there is no visible text\n // in-front of the non-visible tags. Piggyback on the whitespace fix\n // and simply check if any non-visible tags appear in the source.\n if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {\n // Recover leading whitespace by temporarily prepending any character.\n // \\uFEFF has the potential advantage of being zero-width/invisible.\n // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode\n // in hopes that this is preserved even if \"\\uFEFF\" is transformed to\n // the actual Unicode character (by Babel, for example).\n // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216\n node.innerHTML = String.fromCharCode(0xFEFF) + html;\n\n // deleteData leaves an empty `TextNode` which offsets the index of all\n // children. Definitely want to avoid this.\n var textNode = node.firstChild;\n if (textNode.data.length === 1) {\n node.removeChild(textNode);\n } else {\n textNode.deleteData(0, 1);\n }\n } else {\n node.innerHTML = html;\n }\n };\n }\n}\n\nmodule.exports = setInnerHTML;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvc2V0SW5uZXJIVE1MLmpzPzdjZDMiXSwibmFtZXMiOlsiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCJyZXF1aXJlIiwiV0hJVEVTUEFDRV9URVNUIiwiTk9OVklTSUJMRV9URVNUIiwic2V0SW5uZXJIVE1MIiwibm9kZSIsImh0bWwiLCJpbm5lckhUTUwiLCJNU0FwcCIsImV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uIiwiY2FuVXNlRE9NIiwidGVzdEVsZW1lbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJwYXJlbnROb2RlIiwicmVwbGFjZUNoaWxkIiwidGVzdCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsInRleHROb2RlIiwiZmlyc3RDaGlsZCIsImRhdGEiLCJsZW5ndGgiLCJyZW1vdmVDaGlsZCIsImRlbGV0ZURhdGEiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQTs7QUFFQSxJQUFJQSx1QkFBdUIsbUJBQUFDLENBQVEsQ0FBUixDQUEzQjs7QUFFQSxJQUFJQyxrQkFBa0IsY0FBdEI7QUFDQSxJQUFJQyxrQkFBa0Isc0RBQXRCOztBQUVBOzs7Ozs7OztBQVFBLElBQUlDLGVBQWUsc0JBQVVDLElBQVYsRUFBZ0JDLElBQWhCLEVBQXNCO0FBQ3ZDRCxPQUFLRSxTQUFMLEdBQWlCRCxJQUFqQjtBQUNELENBRkQ7O0FBSUE7QUFDQSxJQUFJLE9BQU9FLEtBQVAsS0FBaUIsV0FBakIsSUFBZ0NBLE1BQU1DLHVCQUExQyxFQUFtRTtBQUNqRUwsaUJBQWUsc0JBQVVDLElBQVYsRUFBZ0JDLElBQWhCLEVBQXNCO0FBQ25DRSxVQUFNQyx1QkFBTixDQUE4QixZQUFZO0FBQ3hDSixXQUFLRSxTQUFMLEdBQWlCRCxJQUFqQjtBQUNELEtBRkQ7QUFHRCxHQUpEO0FBS0Q7O0FBRUQsSUFBSU4scUJBQXFCVSxTQUF6QixFQUFvQztBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQUlDLGNBQWNDLFNBQVNDLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBbEI7QUFDQUYsY0FBWUosU0FBWixHQUF3QixHQUF4QjtBQUNBLE1BQUlJLFlBQVlKLFNBQVosS0FBMEIsRUFBOUIsRUFBa0M7QUFDaENILG1CQUFlLHNCQUFVQyxJQUFWLEVBQWdCQyxJQUFoQixFQUFzQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBSUQsS0FBS1MsVUFBVCxFQUFxQjtBQUNuQlQsYUFBS1MsVUFBTCxDQUFnQkMsWUFBaEIsQ0FBNkJWLElBQTdCLEVBQW1DQSxJQUFuQztBQUNEOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBSUgsZ0JBQWdCYyxJQUFoQixDQUFxQlYsSUFBckIsS0FBOEJBLEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJILGdCQUFnQmEsSUFBaEIsQ0FBcUJWLElBQXJCLENBQXJELEVBQWlGO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBRCxhQUFLRSxTQUFMLEdBQWlCVSxPQUFPQyxZQUFQLENBQW9CLE1BQXBCLElBQThCWixJQUEvQzs7QUFFQTtBQUNBO0FBQ0EsWUFBSWEsV0FBV2QsS0FBS2UsVUFBcEI7QUFDQSxZQUFJRCxTQUFTRSxJQUFULENBQWNDLE1BQWQsS0FBeUIsQ0FBN0IsRUFBZ0M7QUFDOUJqQixlQUFLa0IsV0FBTCxDQUFpQkosUUFBakI7QUFDRCxTQUZELE1BRU87QUFDTEEsbUJBQVNLLFVBQVQsQ0FBb0IsQ0FBcEIsRUFBdUIsQ0FBdkI7QUFDRDtBQUNGLE9BakJELE1BaUJPO0FBQ0xuQixhQUFLRSxTQUFMLEdBQWlCRCxJQUFqQjtBQUNEO0FBQ0YsS0FsQ0Q7QUFtQ0Q7QUFDRjs7QUFFRG1CLE9BQU9DLE9BQVAsR0FBaUJ0QixZQUFqQiIsImZpbGUiOiIxOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBzZXRJbm5lckhUTUxcbiAqL1xuXG4vKiBnbG9iYWxzIE1TQXBwICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcblxudmFyIFdISVRFU1BBQ0VfVEVTVCA9IC9eWyBcXHJcXG5cXHRcXGZdLztcbnZhciBOT05WSVNJQkxFX1RFU1QgPSAvPCghLS18bGlua3xub3NjcmlwdHxtZXRhfHNjcmlwdHxzdHlsZSlbIFxcclxcblxcdFxcZlxcLz5dLztcblxuLyoqXG4gKiBTZXQgdGhlIGlubmVySFRNTCBwcm9wZXJ0eSBvZiBhIG5vZGUsIGVuc3VyaW5nIHRoYXQgd2hpdGVzcGFjZSBpcyBwcmVzZXJ2ZWRcbiAqIGV2ZW4gaW4gSUU4LlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICogQHBhcmFtIHtzdHJpbmd9IGh0bWxcbiAqIEBpbnRlcm5hbFxuICovXG52YXIgc2V0SW5uZXJIVE1MID0gZnVuY3Rpb24gKG5vZGUsIGh0bWwpIHtcbiAgbm9kZS5pbm5lckhUTUwgPSBodG1sO1xufTtcblxuLy8gV2luOCBhcHBzOiBBbGxvdyBhbGwgaHRtbCB0byBiZSBpbnNlcnRlZFxuaWYgKHR5cGVvZiBNU0FwcCAhPT0gJ3VuZGVmaW5lZCcgJiYgTVNBcHAuZXhlY1Vuc2FmZUxvY2FsRnVuY3Rpb24pIHtcbiAgc2V0SW5uZXJIVE1MID0gZnVuY3Rpb24gKG5vZGUsIGh0bWwpIHtcbiAgICBNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbiAoKSB7XG4gICAgICBub2RlLmlubmVySFRNTCA9IGh0bWw7XG4gICAgfSk7XG4gIH07XG59XG5cbmlmIChFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00pIHtcbiAgLy8gSUU4OiBXaGVuIHVwZGF0aW5nIGEganVzdCBjcmVhdGVkIG5vZGUgd2l0aCBpbm5lckhUTUwgb25seSBsZWFkaW5nXG4gIC8vIHdoaXRlc3BhY2UgaXMgcmVtb3ZlZC4gV2hlbiB1cGRhdGluZyBhbiBleGlzdGluZyBub2RlIHdpdGggaW5uZXJIVE1MXG4gIC8vIHdoaXRlc3BhY2UgaW4gcm9vdCBUZXh0Tm9kZXMgaXMgYWxzbyBjb2xsYXBzZWQuXG4gIC8vIEBzZWUgcXVpcmtzbW9kZS5vcmcvYnVncmVwb3J0cy9hcmNoaXZlcy8yMDA0LzExL2lubmVyaHRtbF9hbmRfdC5odG1sXG5cbiAgLy8gRmVhdHVyZSBkZXRlY3Rpb247IG9ubHkgSUU4IGlzIGtub3duIHRvIGJlaGF2ZSBpbXByb3Blcmx5IGxpa2UgdGhpcy5cbiAgdmFyIHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIHRlc3RFbGVtZW50LmlubmVySFRNTCA9ICcgJztcbiAgaWYgKHRlc3RFbGVtZW50LmlubmVySFRNTCA9PT0gJycpIHtcbiAgICBzZXRJbm5lckhUTUwgPSBmdW5jdGlvbiAobm9kZSwgaHRtbCkge1xuICAgICAgLy8gTWFnaWMgdGhlb3J5OiBJRTggc3VwcG9zZWRseSBkaWZmZXJlbnRpYXRlcyBiZXR3ZWVuIGFkZGVkIGFuZCB1cGRhdGVkXG4gICAgICAvLyBub2RlcyB3aGVuIHByb2Nlc3NpbmcgaW5uZXJIVE1MLCBpbm5lckhUTUwgb24gdXBkYXRlZCBub2RlcyBzdWZmZXJzXG4gICAgICAvLyBmcm9tIHdvcnNlIHdoaXRlc3BhY2UgYmVoYXZpb3IuIFJlLWFkZGluZyBhIG5vZGUgbGlrZSB0aGlzIHRyaWdnZXJzXG4gICAgICAvLyB0aGUgaW5pdGlhbCBhbmQgbW9yZSBmYXZvcmFibGUgd2hpdGVzcGFjZSBiZWhhdmlvci5cbiAgICAgIC8vIFRPRE86IFdoYXQgdG8gZG8gb24gYSBkZXRhY2hlZCBub2RlP1xuICAgICAgaWYgKG5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICBub2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG5vZGUsIG5vZGUpO1xuICAgICAgfVxuXG4gICAgICAvLyBXZSBhbHNvIGltcGxlbWVudCBhIHdvcmthcm91bmQgZm9yIG5vbi12aXNpYmxlIHRhZ3MgZGlzYXBwZWFyaW5nIGludG9cbiAgICAgIC8vIHRoaW4gYWlyIG9uIElFOCwgdGhpcyBvbmx5IGhhcHBlbnMgaWYgdGhlcmUgaXMgbm8gdmlzaWJsZSB0ZXh0XG4gICAgICAvLyBpbi1mcm9udCBvZiB0aGUgbm9uLXZpc2libGUgdGFncy4gUGlnZ3liYWNrIG9uIHRoZSB3aGl0ZXNwYWNlIGZpeFxuICAgICAgLy8gYW5kIHNpbXBseSBjaGVjayBpZiBhbnkgbm9uLXZpc2libGUgdGFncyBhcHBlYXIgaW4gdGhlIHNvdXJjZS5cbiAgICAgIGlmIChXSElURVNQQUNFX1RFU1QudGVzdChodG1sKSB8fCBodG1sWzBdID09PSAnPCcgJiYgTk9OVklTSUJMRV9URVNULnRlc3QoaHRtbCkpIHtcbiAgICAgICAgLy8gUmVjb3ZlciBsZWFkaW5nIHdoaXRlc3BhY2UgYnkgdGVtcG9yYXJpbHkgcHJlcGVuZGluZyBhbnkgY2hhcmFjdGVyLlxuICAgICAgICAvLyBcXHVGRUZGIGhhcyB0aGUgcG90ZW50aWFsIGFkdmFudGFnZSBvZiBiZWluZyB6ZXJvLXdpZHRoL2ludmlzaWJsZS5cbiAgICAgICAgLy8gVWdsaWZ5SlMgZHJvcHMgVStGRUZGIGNoYXJzIHdoZW4gcGFyc2luZywgc28gdXNlIFN0cmluZy5mcm9tQ2hhckNvZGVcbiAgICAgICAgLy8gaW4gaG9wZXMgdGhhdCB0aGlzIGlzIHByZXNlcnZlZCBldmVuIGlmIFwiXFx1RkVGRlwiIGlzIHRyYW5zZm9ybWVkIHRvXG4gICAgICAgIC8vIHRoZSBhY3R1YWwgVW5pY29kZSBjaGFyYWN0ZXIgKGJ5IEJhYmVsLCBmb3IgZXhhbXBsZSkuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taXNob28vVWdsaWZ5SlMyL2Jsb2IvdjIuNC4yMC9saWIvcGFyc2UuanMjTDIxNlxuICAgICAgICBub2RlLmlubmVySFRNTCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRUZGKSArIGh0bWw7XG5cbiAgICAgICAgLy8gZGVsZXRlRGF0YSBsZWF2ZXMgYW4gZW1wdHkgYFRleHROb2RlYCB3aGljaCBvZmZzZXRzIHRoZSBpbmRleCBvZiBhbGxcbiAgICAgICAgLy8gY2hpbGRyZW4uIERlZmluaXRlbHkgd2FudCB0byBhdm9pZCB0aGlzLlxuICAgICAgICB2YXIgdGV4dE5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7XG4gICAgICAgIGlmICh0ZXh0Tm9kZS5kYXRhLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIG5vZGUucmVtb3ZlQ2hpbGQodGV4dE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRleHROb2RlLmRlbGV0ZURhdGEoMCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gaHRtbDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2V0SW5uZXJIVE1MO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9zZXRJbm5lckhUTUwuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 20 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule setTextContent\n */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\nvar escapeTextContentForBrowser = __webpack_require__(21);\nvar setInnerHTML = __webpack_require__(19);\n\n/**\n * Set the textContent property of a node, ensuring that whitespace is preserved\n * even in IE8. innerText is a poor substitute for textContent and, among many\n * issues, inserts <br> instead of the literal newline chars. innerHTML behaves\n * as it should.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function setTextContent(node, text) {\n node.textContent = text;\n};\n\nif (ExecutionEnvironment.canUseDOM) {\n if (!('textContent' in document.documentElement)) {\n setTextContent = function setTextContent(node, text) {\n setInnerHTML(node, escapeTextContentForBrowser(text));\n };\n }\n}\n\nmodule.exports = setTextContent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvc2V0VGV4dENvbnRlbnQuanM/ZTc0MiJdLCJuYW1lcyI6WyJFeGVjdXRpb25FbnZpcm9ubWVudCIsInJlcXVpcmUiLCJlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIiLCJzZXRJbm5lckhUTUwiLCJzZXRUZXh0Q29udGVudCIsIm5vZGUiLCJ0ZXh0IiwidGV4dENvbnRlbnQiLCJjYW5Vc2VET00iLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLHVCQUF1QixtQkFBQUMsQ0FBUSxDQUFSLENBQTNCO0FBQ0EsSUFBSUMsOEJBQThCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBbEM7QUFDQSxJQUFJRSxlQUFlLG1CQUFBRixDQUFRLEVBQVIsQ0FBbkI7O0FBRUE7Ozs7Ozs7Ozs7QUFVQSxJQUFJRyxpQkFBaUIsd0JBQVVDLElBQVYsRUFBZ0JDLElBQWhCLEVBQXNCO0FBQ3pDRCxPQUFLRSxXQUFMLEdBQW1CRCxJQUFuQjtBQUNELENBRkQ7O0FBSUEsSUFBSU4scUJBQXFCUSxTQUF6QixFQUFvQztBQUNsQyxNQUFJLEVBQUUsaUJBQWlCQyxTQUFTQyxlQUE1QixDQUFKLEVBQWtEO0FBQ2hETixxQkFBaUIsd0JBQVVDLElBQVYsRUFBZ0JDLElBQWhCLEVBQXNCO0FBQ3JDSCxtQkFBYUUsSUFBYixFQUFtQkgsNEJBQTRCSSxJQUE1QixDQUFuQjtBQUNELEtBRkQ7QUFHRDtBQUNGOztBQUVESyxPQUFPQyxPQUFQLEdBQWlCUixjQUFqQiIsImZpbGUiOiIyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBzZXRUZXh0Q29udGVudFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIgPSByZXF1aXJlKCcuL2VzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlcicpO1xudmFyIHNldElubmVySFRNTCA9IHJlcXVpcmUoJy4vc2V0SW5uZXJIVE1MJyk7XG5cbi8qKlxuICogU2V0IHRoZSB0ZXh0Q29udGVudCBwcm9wZXJ0eSBvZiBhIG5vZGUsIGVuc3VyaW5nIHRoYXQgd2hpdGVzcGFjZSBpcyBwcmVzZXJ2ZWRcbiAqIGV2ZW4gaW4gSUU4LiBpbm5lclRleHQgaXMgYSBwb29yIHN1YnN0aXR1dGUgZm9yIHRleHRDb250ZW50IGFuZCwgYW1vbmcgbWFueVxuICogaXNzdWVzLCBpbnNlcnRzIDxicj4gaW5zdGVhZCBvZiB0aGUgbGl0ZXJhbCBuZXdsaW5lIGNoYXJzLiBpbm5lckhUTUwgYmVoYXZlc1xuICogYXMgaXQgc2hvdWxkLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICogQHBhcmFtIHtzdHJpbmd9IHRleHRcbiAqIEBpbnRlcm5hbFxuICovXG52YXIgc2V0VGV4dENvbnRlbnQgPSBmdW5jdGlvbiAobm9kZSwgdGV4dCkge1xuICBub2RlLnRleHRDb250ZW50ID0gdGV4dDtcbn07XG5cbmlmIChFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00pIHtcbiAgaWYgKCEoJ3RleHRDb250ZW50JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpKSB7XG4gICAgc2V0VGV4dENvbnRlbnQgPSBmdW5jdGlvbiAobm9kZSwgdGV4dCkge1xuICAgICAgc2V0SW5uZXJIVE1MKG5vZGUsIGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3Nlcih0ZXh0KSk7XG4gICAgfTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldFRleHRDb250ZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9zZXRUZXh0Q29udGVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 21 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule escapeTextContentForBrowser\n */\n\n'use strict';\n\nvar ESCAPE_LOOKUP = {\n '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n '\\'': '''\n};\n\nvar ESCAPE_REGEX = /[&><\"']/g;\n\nfunction escaper(match) {\n return ESCAPE_LOOKUP[match];\n}\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextContentForBrowser(text) {\n return ('' + text).replace(ESCAPE_REGEX, escaper);\n}\n\nmodule.exports = escapeTextContentForBrowser;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyLmpzP2FiNDYiXSwibmFtZXMiOlsiRVNDQVBFX0xPT0tVUCIsIkVTQ0FQRV9SRUdFWCIsImVzY2FwZXIiLCJtYXRjaCIsImVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlciIsInRleHQiLCJyZXBsYWNlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsZ0JBQWdCO0FBQ2xCLE9BQUssT0FEYTtBQUVsQixPQUFLLE1BRmE7QUFHbEIsT0FBSyxNQUhhO0FBSWxCLE9BQUssUUFKYTtBQUtsQixRQUFNO0FBTFksQ0FBcEI7O0FBUUEsSUFBSUMsZUFBZSxVQUFuQjs7QUFFQSxTQUFTQyxPQUFULENBQWlCQyxLQUFqQixFQUF3QjtBQUN0QixTQUFPSCxjQUFjRyxLQUFkLENBQVA7QUFDRDs7QUFFRDs7Ozs7O0FBTUEsU0FBU0MsMkJBQVQsQ0FBcUNDLElBQXJDLEVBQTJDO0FBQ3pDLFNBQU8sQ0FBQyxLQUFLQSxJQUFOLEVBQVlDLE9BQVosQ0FBb0JMLFlBQXBCLEVBQWtDQyxPQUFsQyxDQUFQO0FBQ0Q7O0FBRURLLE9BQU9DLE9BQVAsR0FBaUJKLDJCQUFqQiIsImZpbGUiOiIyMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXJcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBFU0NBUEVfTE9PS1VQID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc+JzogJyZndDsnLFxuICAnPCc6ICcmbHQ7JyxcbiAgJ1wiJzogJyZxdW90OycsXG4gICdcXCcnOiAnJiN4Mjc7J1xufTtcblxudmFyIEVTQ0FQRV9SRUdFWCA9IC9bJj48XCInXS9nO1xuXG5mdW5jdGlvbiBlc2NhcGVyKG1hdGNoKSB7XG4gIHJldHVybiBFU0NBUEVfTE9PS1VQW21hdGNoXTtcbn1cblxuLyoqXG4gKiBFc2NhcGVzIHRleHQgdG8gcHJldmVudCBzY3JpcHRpbmcgYXR0YWNrcy5cbiAqXG4gKiBAcGFyYW0geyp9IHRleHQgVGV4dCB2YWx1ZSB0byBlc2NhcGUuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEFuIGVzY2FwZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIodGV4dCkge1xuICByZXR1cm4gKCcnICsgdGV4dCkucmVwbGFjZShFU0NBUEVfUkVHRVgsIGVzY2FwZXIpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 22 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMProperty = __webpack_require__(23);\nvar ReactPerf = __webpack_require__(18);\n\nvar quoteAttributeValueForBrowser = __webpack_require__(24);\nvar warning = __webpack_require__(25);\n\n// Simplified subset\nvar VALID_ATTRIBUTE_NAME_REGEX = /^[a-zA-Z_][\\w\\.\\-]*$/;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {\n return true;\n }\n if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined;\n return false;\n}\n\nfunction shouldIgnoreValue(propertyInfo, value) {\n return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var reactProps = {\n children: true,\n dangerouslySetInnerHTML: true,\n key: true,\n ref: true\n };\n var warnedProperties = {};\n\n var warnUnknownProperty = function warnUnknownProperty(name) {\n if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {\n return;\n }\n\n warnedProperties[name] = true;\n var lowerCasedName = name.toLowerCase();\n\n // data-* attributes should be lowercase; suggest the lowercase version\n var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;\n\n // For now, only warn when we have a suggested correction. This prevents\n // logging too much when using transferPropsTo.\n process.env.NODE_ENV !== 'production' ? warning(standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName) : undefined;\n };\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\nvar DOMPropertyOperations = {\n\n /**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n createMarkupForID: function createMarkupForID(id) {\n return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);\n },\n\n setAttributeForID: function setAttributeForID(node, id) {\n node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);\n },\n\n /**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\n createMarkupForProperty: function createMarkupForProperty(name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n if (shouldIgnoreValue(propertyInfo, value)) {\n return '';\n }\n var attributeName = propertyInfo.attributeName;\n if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n return attributeName + '=\"\"';\n }\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n } else if (DOMProperty.isCustomAttribute(name)) {\n if (value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n } else if (process.env.NODE_ENV !== 'production') {\n warnUnknownProperty(name);\n }\n return null;\n },\n\n /**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\n createMarkupForCustomAttribute: function createMarkupForCustomAttribute(name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n },\n\n /**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n setValueForProperty: function setValueForProperty(node, name, value) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, value);\n } else if (shouldIgnoreValue(propertyInfo, value)) {\n this.deleteValueForProperty(node, name);\n } else if (propertyInfo.mustUseAttribute) {\n var attributeName = propertyInfo.attributeName;\n var namespace = propertyInfo.attributeNamespace;\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n if (namespace) {\n node.setAttributeNS(namespace, attributeName, '' + value);\n } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {\n node.setAttribute(attributeName, '');\n } else {\n node.setAttribute(attributeName, '' + value);\n }\n } else {\n var propName = propertyInfo.propertyName;\n // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the\n // property type before comparing; only `value` does and is string.\n if (!propertyInfo.hasSideEffects || '' + node[propName] !== '' + value) {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propName] = value;\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n DOMPropertyOperations.setValueForAttribute(node, name, value);\n } else if (process.env.NODE_ENV !== 'production') {\n warnUnknownProperty(name);\n }\n },\n\n setValueForAttribute: function setValueForAttribute(node, name, value) {\n if (!isAttributeNameSafe(name)) {\n return;\n }\n if (value == null) {\n node.removeAttribute(name);\n } else {\n node.setAttribute(name, '' + value);\n }\n },\n\n /**\n * Deletes the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n */\n deleteValueForProperty: function deleteValueForProperty(node, name) {\n var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;\n if (propertyInfo) {\n var mutationMethod = propertyInfo.mutationMethod;\n if (mutationMethod) {\n mutationMethod(node, undefined);\n } else if (propertyInfo.mustUseAttribute) {\n node.removeAttribute(propertyInfo.attributeName);\n } else {\n var propName = propertyInfo.propertyName;\n var defaultValue = DOMProperty.getDefaultValueForProperty(node.nodeName, propName);\n if (!propertyInfo.hasSideEffects || '' + node[propName] !== defaultValue) {\n node[propName] = defaultValue;\n }\n }\n } else if (DOMProperty.isCustomAttribute(name)) {\n node.removeAttribute(name);\n } else if (process.env.NODE_ENV !== 'production') {\n warnUnknownProperty(name);\n }\n }\n\n};\n\nReactPerf.measureMethods(DOMPropertyOperations, 'DOMPropertyOperations', {\n setValueForProperty: 'setValueForProperty',\n setValueForAttribute: 'setValueForAttribute',\n deleteValueForProperty: 'deleteValueForProperty'\n});\n\nmodule.exports = DOMPropertyOperations;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRE9NUHJvcGVydHlPcGVyYXRpb25zLmpzPzNkYjUiXSwibmFtZXMiOlsiRE9NUHJvcGVydHkiLCJyZXF1aXJlIiwiUmVhY3RQZXJmIiwicXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIiLCJ3YXJuaW5nIiwiVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVgiLCJpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlIiwidmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlIiwiaXNBdHRyaWJ1dGVOYW1lU2FmZSIsImF0dHJpYnV0ZU5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsInRlc3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJzaG91bGRJZ25vcmVWYWx1ZSIsInByb3BlcnR5SW5mbyIsInZhbHVlIiwiaGFzQm9vbGVhblZhbHVlIiwiaGFzTnVtZXJpY1ZhbHVlIiwiaXNOYU4iLCJoYXNQb3NpdGl2ZU51bWVyaWNWYWx1ZSIsImhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWUiLCJyZWFjdFByb3BzIiwiY2hpbGRyZW4iLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImtleSIsInJlZiIsIndhcm5lZFByb3BlcnRpZXMiLCJ3YXJuVW5rbm93blByb3BlcnR5IiwibmFtZSIsImxvd2VyQ2FzZWROYW1lIiwidG9Mb3dlckNhc2UiLCJzdGFuZGFyZE5hbWUiLCJpc0N1c3RvbUF0dHJpYnV0ZSIsImdldFBvc3NpYmxlU3RhbmRhcmROYW1lIiwiRE9NUHJvcGVydHlPcGVyYXRpb25zIiwiY3JlYXRlTWFya3VwRm9ySUQiLCJpZCIsIklEX0FUVFJJQlVURV9OQU1FIiwic2V0QXR0cmlidXRlRm9ySUQiLCJub2RlIiwic2V0QXR0cmlidXRlIiwiY3JlYXRlTWFya3VwRm9yUHJvcGVydHkiLCJwcm9wZXJ0aWVzIiwiY3JlYXRlTWFya3VwRm9yQ3VzdG9tQXR0cmlidXRlIiwic2V0VmFsdWVGb3JQcm9wZXJ0eSIsIm11dGF0aW9uTWV0aG9kIiwiZGVsZXRlVmFsdWVGb3JQcm9wZXJ0eSIsIm11c3RVc2VBdHRyaWJ1dGUiLCJuYW1lc3BhY2UiLCJhdHRyaWJ1dGVOYW1lc3BhY2UiLCJzZXRBdHRyaWJ1dGVOUyIsInByb3BOYW1lIiwicHJvcGVydHlOYW1lIiwiaGFzU2lkZUVmZmVjdHMiLCJzZXRWYWx1ZUZvckF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsImRlZmF1bHRWYWx1ZSIsImdldERlZmF1bHRWYWx1ZUZvclByb3BlcnR5Iiwibm9kZU5hbWUiLCJtZWFzdXJlTWV0aG9kcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxjQUFjLG1CQUFBQyxDQUFRLEVBQVIsQ0FBbEI7QUFDQSxJQUFJQyxZQUFZLG1CQUFBRCxDQUFRLEVBQVIsQ0FBaEI7O0FBRUEsSUFBSUUsZ0NBQWdDLG1CQUFBRixDQUFRLEVBQVIsQ0FBcEM7QUFDQSxJQUFJRyxVQUFVLG1CQUFBSCxDQUFRLEVBQVIsQ0FBZDs7QUFFQTtBQUNBLElBQUlJLDZCQUE2QixzQkFBakM7QUFDQSxJQUFJQyw0QkFBNEIsRUFBaEM7QUFDQSxJQUFJQyw4QkFBOEIsRUFBbEM7O0FBRUEsU0FBU0MsbUJBQVQsQ0FBNkJDLGFBQTdCLEVBQTRDO0FBQzFDLE1BQUlGLDRCQUE0QkcsY0FBNUIsQ0FBMkNELGFBQTNDLENBQUosRUFBK0Q7QUFDN0QsV0FBTyxJQUFQO0FBQ0Q7QUFDRCxNQUFJSCwwQkFBMEJJLGNBQTFCLENBQXlDRCxhQUF6QyxDQUFKLEVBQTZEO0FBQzNELFdBQU8sS0FBUDtBQUNEO0FBQ0QsTUFBSUosMkJBQTJCTSxJQUEzQixDQUFnQ0YsYUFBaEMsQ0FBSixFQUFvRDtBQUNsREYsZ0NBQTRCRSxhQUE1QixJQUE2QyxJQUE3QztBQUNBLFdBQU8sSUFBUDtBQUNEO0FBQ0RILDRCQUEw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QkMsSUFBcEI7QUFDRDtBQUNGOztBQTVJeUIsQ0FBNUI7O0FBZ0pBN0IsVUFBVTRELGNBQVYsQ0FBeUJ6QixxQkFBekIsRUFBZ0QsdUJBQWhELEVBQXlFO0FBQ3ZFVSx1QkFBcUIscUJBRGtEO0FBRXZFVSx3QkFBc0Isc0JBRmlEO0FBR3ZFUiwwQkFBd0I7QUFIK0MsQ0FBekU7O0FBTUFjLE9BQU9DLE9BQVAsR0FBaUIzQixxQkFBakIsQyIsImZpbGUiOiIyMi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBET01Qcm9wZXJ0eU9wZXJhdGlvbnNcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NUHJvcGVydHkgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5Jyk7XG52YXIgUmVhY3RQZXJmID0gcmVxdWlyZSgnLi9SZWFjdFBlcmYnKTtcblxudmFyIHF1b3RlQXR0cmlidXRlVmFsdWVGb3JCcm93c2VyID0gcmVxdWlyZSgnLi9xdW90ZUF0dHJpYnV0ZVZhbHVlRm9yQnJvd3NlcicpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbi8vIFNpbXBsaWZpZWQgc3Vic2V0XG52YXIgVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVggPSAvXlthLXpBLVpfXVtcXHdcXC5cXC1dKiQvO1xudmFyIGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGUgPSB7fTtcbnZhciB2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGUgPSB7fTtcblxuZnVuY3Rpb24gaXNBdHRyaWJ1dGVOYW1lU2FmZShhdHRyaWJ1dGVOYW1lKSB7XG4gIGlmICh2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGUuaGFzT3duUHJvcGVydHkoYXR0cmlidXRlTmFtZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZS5oYXNPd25Qcm9wZXJ0eShhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVgudGVzdChhdHRyaWJ1dGVOYW1lKSkge1xuICAgIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9IHRydWU7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9IHRydWU7XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnSW52YWxpZCBhdHRyaWJ1dGUgbmFtZTogYCVzYCcsIGF0dHJpYnV0ZU5hbWUpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNob3VsZElnbm9yZVZhbHVlKHByb3BlcnR5SW5mbywgdmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgcHJvcGVydHlJbmZvLmhhc0Jvb2xlYW5WYWx1ZSAmJiAhdmFsdWUgfHwgcHJvcGVydHlJbmZvLmhhc051bWVyaWNWYWx1ZSAmJiBpc05hTih2YWx1ZSkgfHwgcHJvcGVydHlJbmZvLmhhc1Bvc2l0aXZlTnVtZXJpY1ZhbHVlICYmIHZhbHVlIDwgMSB8fCBwcm9wZXJ0eUluZm8uaGFzT3ZlcmxvYWRlZEJvb2xlYW5WYWx1ZSAmJiB2YWx1ZSA9PT0gZmFsc2U7XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciByZWFjdFByb3BzID0ge1xuICAgIGNoaWxkcmVuOiB0cnVlLFxuICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB0cnVlLFxuICAgIGtleTogdHJ1ZSxcbiAgICByZWY6IHRydWVcbiAgfTtcbiAgdmFyIHdhcm5lZFByb3BlcnRpZXMgPSB7fTtcblxuICB2YXIgd2FyblVua25vd25Qcm9wZXJ0eSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKHJlYWN0UHJvcHMuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgcmVhY3RQcm9wc1tuYW1lXSB8fCB3YXJuZWRQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KG5hbWUpICYmIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAvLyBkYXRhLSogYXR0cmlidXRlcyBzaG91bGQgYmUgbG93ZXJjYXNlOyBzdWdnZXN0IHRoZSBsb3dlcmNhc2UgdmVyc2lvblxuICAgIHZhciBzdGFuZGFyZE5hbWUgPSBET01Qcm9wZXJ0eS5pc0N1c3RvbUF0dHJpYnV0ZShsb3dlckNhc2VkTmFtZSkgPyBsb3dlckNhc2VkTmFtZSA6IERPTVByb3BlcnR5LmdldFBvc3NpYmxlU3RhbmRhcmROYW1lLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSA/IERPTVByb3BlcnR5LmdldFBvc3NpYmxlU3RhbmRhcmROYW1lW2xvd2VyQ2FzZWROYW1lXSA6IG51bGw7XG5cbiAgICAvLyBGb3Igbm93LCBvbmx5IHdhcm4gd2hlbiB3ZSBoYXZlIGEgc3VnZ2VzdGVkIGNvcnJlY3Rpb24uIFRoaXMgcHJldmVudHNcbiAgICAvLyBsb2dnaW5nIHRvbyBtdWNoIHdoZW4gdXNpbmcgdHJhbnNmZXJQcm9wc1RvLlxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHN0YW5kYXJkTmFtZSA9PSBudWxsLCAnVW5rbm93biBET00gcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCBzdGFuZGFyZE5hbWUpIDogdW5kZWZpbmVkO1xuICB9O1xufVxuXG4vKipcbiAqIE9wZXJhdGlvbnMgZm9yIGRlYWxpbmcgd2l0aCBET00gcHJvcGVydGllcy5cbiAqL1xudmFyIERPTVByb3BlcnR5T3BlcmF0aW9ucyA9IHtcblxuICAvKipcbiAgICogQ3JlYXRlcyBtYXJrdXAgZm9yIHRoZSBJRCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIFVuZXNjYXBlZCBJRC5cbiAgICogQHJldHVybiB7c3RyaW5nfSBNYXJrdXAgc3RyaW5nLlxuICAgKi9cbiAgY3JlYXRlTWFya3VwRm9ySUQ6IGZ1bmN0aW9uIChpZCkge1xuICAgIHJldHVybiBET01Qcm9wZXJ0eS5JRF9BVFRSSUJVVEVfTkFNRSArICc9JyArIHF1b3RlQXR0cmlidXRlVmFsdWVGb3JCcm93c2VyKGlkKTtcbiAgfSxcblxuICBzZXRBdHRyaWJ1dGVGb3JJRDogZnVuY3Rpb24gKG5vZGUsIGlkKSB7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoRE9NUHJvcGVydHkuSURfQVRUUklCVVRFX05BTUUsIGlkKTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlcyBtYXJrdXAgZm9yIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAgICogQHJldHVybiB7P3N0cmluZ30gTWFya3VwIHN0cmluZywgb3IgbnVsbCBpZiB0aGUgcHJvcGVydHkgd2FzIGludmFsaWQuXG4gICAqL1xuICBjcmVhdGVNYXJrdXBGb3JQcm9wZXJ0eTogZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgdmFyIHByb3BlcnR5SW5mbyA9IERPTVByb3BlcnR5LnByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBET01Qcm9wZXJ0eS5wcm9wZXJ0aWVzW25hbWVdIDogbnVsbDtcbiAgICBpZiAocHJvcGVydHlJbmZvKSB7XG4gICAgICBpZiAoc2hvdWxkSWdub3JlVmFsdWUocHJvcGVydHlJbmZvLCB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZTtcbiAgICAgIGlmIChwcm9wZXJ0eUluZm8uaGFzQm9vbGVhblZhbHVlIHx8IHByb3BlcnR5SW5mby5oYXNPdmVybG9hZGVkQm9vbGVhblZhbHVlICYmIHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVOYW1lICsgJz1cIlwiJztcbiAgICAgIH1cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVOYW1lICsgJz0nICsgcXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoRE9NUHJvcGVydHkuaXNDdXN0b21BdHRyaWJ1dGUobmFtZSkpIHtcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIHJldHVybiBuYW1lICsgJz0nICsgcXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgd2FyblVua25vd25Qcm9wZXJ0eShuYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbWFya3VwIGZvciBhIGN1c3RvbSBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICogQHBhcmFtIHsqfSB2YWx1ZVxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IE1hcmt1cCBzdHJpbmcsIG9yIGVtcHR5IHN0cmluZyBpZiB0aGUgcHJvcGVydHkgd2FzIGludmFsaWQuXG4gICAqL1xuICBjcmVhdGVNYXJrdXBGb3JDdXN0b21BdHRyaWJ1dGU6IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICghaXNBdHRyaWJ1dGVOYW1lU2FmZShuYW1lKSB8fCB2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBuYW1lICsgJz0nICsgcXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIodmFsdWUpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBmb3IgYSBwcm9wZXJ0eSBvbiBhIG5vZGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0geyp9IHZhbHVlXG4gICAqL1xuICBzZXRWYWx1ZUZvclByb3BlcnR5OiBmdW5jdGlvbiAobm9kZSwgbmFtZSwgdmFsdWUpIHtcbiAgICB2YXIgcHJvcGVydHlJbmZvID0gRE9NUHJvcGVydHkucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IERPTVByb3BlcnR5LnByb3BlcnRpZXNbbmFtZV0gOiBudWxsO1xuICAgIGlmIChwcm9wZXJ0eUluZm8pIHtcbiAgICAgIHZhciBtdXRhdGlvbk1ldGhvZCA9IHByb3BlcnR5SW5mby5tdXRhdGlvbk1ldGhvZDtcbiAgICAgIGlmIChtdXRhdGlvbk1ldGhvZCkge1xuICAgICAgICBtdXRhdGlvbk1ldGhvZChub2RlLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHNob3VsZElnbm9yZVZhbHVlKHByb3BlcnR5SW5mbywgdmFsdWUpKSB7XG4gICAgICAgIHRoaXMuZGVsZXRlVmFsdWVGb3JQcm9wZXJ0eShub2RlLCBuYW1lKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlJbmZvLm11c3RVc2VBdHRyaWJ1dGUpIHtcbiAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZTtcbiAgICAgICAgdmFyIG5hbWVzcGFjZSA9IHByb3BlcnR5SW5mby5hdHRyaWJ1dGVOYW1lc3BhY2U7XG4gICAgICAgIC8vIGBzZXRBdHRyaWJ1dGVgIHdpdGggb2JqZWN0cyBiZWNvbWVzIG9ubHkgYFtvYmplY3RdYCBpbiBJRTgvOSxcbiAgICAgICAgLy8gKCcnICsgdmFsdWUpIG1ha2VzIGl0IG91dHB1dCB0aGUgY29ycmVjdCB0b1N0cmluZygpLXZhbHVlLlxuICAgICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIGF0dHJpYnV0ZU5hbWUsICcnICsgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5SW5mby5oYXNCb29sZWFuVmFsdWUgfHwgcHJvcGVydHlJbmZvLmhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWUgJiYgdmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgJycgKyB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBwcm9wTmFtZSA9IHByb3BlcnR5SW5mby5wcm9wZXJ0eU5hbWU7XG4gICAgICAgIC8vIE11c3QgZXhwbGljaXRseSBjYXN0IHZhbHVlcyBmb3IgSEFTX1NJREVfRUZGRUNUUy1wcm9wZXJ0aWVzIHRvIHRoZVxuICAgICAgICAvLyBwcm9wZXJ0eSB0eXBlIGJlZm9yZSBjb21wYXJpbmc7IG9ubHkgYHZhbHVlYCBkb2VzIGFuZCBpcyBzdHJpbmcuXG4gICAgICAgIGlmICghcHJvcGVydHlJbmZvLmhhc1NpZGVFZmZlY3RzIHx8ICcnICsgbm9kZVtwcm9wTmFtZV0gIT09ICcnICsgdmFsdWUpIHtcbiAgICAgICAgICAvLyBDb250cmFyeSB0byBgc2V0QXR0cmlidXRlYCwgb2JqZWN0IHByb3BlcnRpZXMgYXJlIHByb3Blcmx5XG4gICAgICAgICAgLy8gYHRvU3RyaW5nYGVkIGJ5IElFOC85LlxuICAgICAgICAgIG5vZGVbcHJvcE5hbWVdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKERPTVByb3BlcnR5LmlzQ3VzdG9tQXR0cmlidXRlKG5hbWUpKSB7XG4gICAgICBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuc2V0VmFsdWVGb3JBdHRyaWJ1dGUobm9kZSwgbmFtZSwgdmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgd2FyblVua25vd25Qcm9wZXJ0eShuYW1lKTtcbiAgICB9XG4gIH0sXG5cbiAgc2V0VmFsdWVGb3JBdHRyaWJ1dGU6IGZ1bmN0aW9uIChub2RlLCBuYW1lLCB2YWx1ZSkge1xuICAgIGlmICghaXNBdHRyaWJ1dGVOYW1lU2FmZShuYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsICcnICsgdmFsdWUpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgdmFsdWUgZm9yIGEgcHJvcGVydHkgb24gYSBub2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICovXG4gIGRlbGV0ZVZhbHVlRm9yUHJvcGVydHk6IGZ1bmN0aW9uIChub2RlLCBuYW1lKSB7XG4gICAgdmFyIHByb3BlcnR5SW5mbyA9IERPTVByb3BlcnR5LnByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBET01Qcm9wZXJ0eS5wcm9wZXJ0aWVzW25hbWVdIDogbnVsbDtcbiAgICBpZiAocHJvcGVydHlJbmZvKSB7XG4gICAgICB2YXIgbXV0YXRpb25NZXRob2QgPSBwcm9wZXJ0eUluZm8ubXV0YXRpb25NZXRob2Q7XG4gICAgICBpZiAobXV0YXRpb25NZXRob2QpIHtcbiAgICAgICAgbXV0YXRpb25NZXRob2Qobm9kZSwgdW5kZWZpbmVkKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlJbmZvLm11c3RVc2VBdHRyaWJ1dGUpIHtcbiAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUocHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHByb3BOYW1lID0gcHJvcGVydHlJbmZvLnByb3BlcnR5TmFtZTtcbiAgICAgICAgdmFyIGRlZmF1bHRWYWx1ZSA9IERPTVByb3BlcnR5LmdldERlZmF1bHRWYWx1ZUZvclByb3BlcnR5KG5vZGUubm9kZU5hbWUsIHByb3BOYW1lKTtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eUluZm8uaGFzU2lkZUVmZmVjdHMgfHwgJycgKyBub2RlW3Byb3BOYW1lXSAhPT0gZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgbm9kZVtwcm9wTmFtZV0gPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKERPTVByb3BlcnR5LmlzQ3VzdG9tQXR0cmlidXRlKG5hbWUpKSB7XG4gICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHdhcm5Vbmtub3duUHJvcGVydHkobmFtZSk7XG4gICAgfVxuICB9XG5cbn07XG5cblJlYWN0UGVyZi5tZWFzdXJlTWV0aG9kcyhET01Qcm9wZXJ0eU9wZXJhdGlvbnMsICdET01Qcm9wZXJ0eU9wZXJhdGlvbnMnLCB7XG4gIHNldFZhbHVlRm9yUHJvcGVydHk6ICdzZXRWYWx1ZUZvclByb3BlcnR5JyxcbiAgc2V0VmFsdWVGb3JBdHRyaWJ1dGU6ICdzZXRWYWx1ZUZvckF0dHJpYnV0ZScsXG4gIGRlbGV0ZVZhbHVlRm9yUHJvcGVydHk6ICdkZWxldGVWYWx1ZUZvclByb3BlcnR5J1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gRE9NUHJvcGVydHlPcGVyYXRpb25zO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9ET01Qcm9wZXJ0eU9wZXJhdGlvbnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 23 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DOMProperty\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\nfunction checkMask(value, bitmask) {\n return (value & bitmask) === bitmask;\n}\n\nvar DOMPropertyInjection = {\n /**\n * Mapping from normalized, camelcased property names to a configuration that\n * specifies how the associated DOM property should be accessed or rendered.\n */\n MUST_USE_ATTRIBUTE: 0x1,\n MUST_USE_PROPERTY: 0x2,\n HAS_SIDE_EFFECTS: 0x4,\n HAS_BOOLEAN_VALUE: 0x8,\n HAS_NUMERIC_VALUE: 0x10,\n HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10,\n HAS_OVERLOADED_BOOLEAN_VALUE: 0x40,\n\n /**\n * Inject some specialized knowledge about the DOM. This takes a config object\n * with the following properties:\n *\n * isCustomAttribute: function that given an attribute name will return true\n * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*\n * attributes where it's impossible to enumerate all of the possible\n * attribute names,\n *\n * Properties: object mapping DOM property name to one of the\n * DOMPropertyInjection constants or null. If your attribute isn't in here,\n * it won't get written to the DOM.\n *\n * DOMAttributeNames: object mapping React attribute name to the DOM\n * attribute name. Attribute names not specified use the **lowercase**\n * normalized name.\n *\n * DOMAttributeNamespaces: object mapping React attribute name to the DOM\n * attribute namespace URL. (Attribute names not specified use no namespace.)\n *\n * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.\n * Property names not specified use the normalized name.\n *\n * DOMMutationMethods: Properties that require special mutation methods. If\n * `value` is undefined, the mutation method should unset the property.\n *\n * @param {object} domPropertyConfig the config as described above.\n */\n injectDOMPropertyConfig: function injectDOMPropertyConfig(domPropertyConfig) {\n var Injection = DOMPropertyInjection;\n var Properties = domPropertyConfig.Properties || {};\n var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};\n var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};\n var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};\n var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};\n\n if (domPropertyConfig.isCustomAttribute) {\n DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);\n }\n\n for (var propName in Properties) {\n !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\\'re trying to inject DOM property ' + '\\'%s\\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName) : invariant(false) : undefined;\n\n var lowerCased = propName.toLowerCase();\n var propConfig = Properties[propName];\n\n var propertyInfo = {\n attributeName: lowerCased,\n attributeNamespace: null,\n propertyName: propName,\n mutationMethod: null,\n\n mustUseAttribute: checkMask(propConfig, Injection.MUST_USE_ATTRIBUTE),\n mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),\n hasSideEffects: checkMask(propConfig, Injection.HAS_SIDE_EFFECTS),\n hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),\n hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),\n hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),\n hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)\n };\n\n !(!propertyInfo.mustUseAttribute || !propertyInfo.mustUseProperty) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Cannot require using both attribute and property: %s', propName) : invariant(false) : undefined;\n !(propertyInfo.mustUseProperty || !propertyInfo.hasSideEffects) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Properties that have side effects must use property: %s', propName) : invariant(false) : undefined;\n !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName) : invariant(false) : undefined;\n\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[lowerCased] = propName;\n }\n\n if (DOMAttributeNames.hasOwnProperty(propName)) {\n var attributeName = DOMAttributeNames[propName];\n propertyInfo.attributeName = attributeName;\n if (process.env.NODE_ENV !== 'production') {\n DOMProperty.getPossibleStandardName[attributeName] = propName;\n }\n }\n\n if (DOMAttributeNamespaces.hasOwnProperty(propName)) {\n propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];\n }\n\n if (DOMPropertyNames.hasOwnProperty(propName)) {\n propertyInfo.propertyName = DOMPropertyNames[propName];\n }\n\n if (DOMMutationMethods.hasOwnProperty(propName)) {\n propertyInfo.mutationMethod = DOMMutationMethods[propName];\n }\n\n DOMProperty.properties[propName] = propertyInfo;\n }\n }\n};\nvar defaultValueCache = {};\n\n/**\n * DOMProperty exports lookup objects that can be used like functions:\n *\n * > DOMProperty.isValid['id']\n * true\n * > DOMProperty.isValid['foobar']\n * undefined\n *\n * Although this may be confusing, it performs better in general.\n *\n * @see http://jsperf.com/key-exists\n * @see http://jsperf.com/key-missing\n */\nvar DOMProperty = {\n\n ID_ATTRIBUTE_NAME: 'data-reactid',\n\n /**\n * Map from property \"standard name\" to an object with info about how to set\n * the property in the DOM. Each object contains:\n *\n * attributeName:\n * Used when rendering markup or with `*Attribute()`.\n * attributeNamespace\n * propertyName:\n * Used on DOM node instances. (This includes properties that mutate due to\n * external factors.)\n * mutationMethod:\n * If non-null, used instead of the property or `setAttribute()` after\n * initial render.\n * mustUseAttribute:\n * Whether the property must be accessed and mutated using `*Attribute()`.\n * (This includes anything that fails `<propName> in <element>`.)\n * mustUseProperty:\n * Whether the property must be accessed and mutated as an object property.\n * hasSideEffects:\n * Whether or not setting a value causes side effects such as triggering\n * resources to be loaded or text selection changes. If true, we read from\n * the DOM before updating to ensure that the value is only set if it has\n * changed.\n * hasBooleanValue:\n * Whether the property should be removed when set to a falsey value.\n * hasNumericValue:\n * Whether the property must be numeric or parse as a numeric and should be\n * removed when set to a falsey value.\n * hasPositiveNumericValue:\n * Whether the property must be positive numeric or parse as a positive\n * numeric and should be removed when set to a falsey value.\n * hasOverloadedBooleanValue:\n * Whether the property can be used as a flag as well as with a value.\n * Removed when strictly equal to false; present without a value when\n * strictly equal to true; present with a value otherwise.\n */\n properties: {},\n\n /**\n * Mapping from lowercase property names to the properly cased version, used\n * to warn in the case of missing properties. Available only in __DEV__.\n * @type {Object}\n */\n getPossibleStandardName: process.env.NODE_ENV !== 'production' ? {} : null,\n\n /**\n * All of the isCustomAttribute() functions that have been injected.\n */\n _isCustomAttributeFunctions: [],\n\n /**\n * Checks whether a property name is a custom attribute.\n * @method\n */\n isCustomAttribute: function isCustomAttribute(attributeName) {\n for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {\n var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];\n if (isCustomAttributeFn(attributeName)) {\n return true;\n }\n }\n return false;\n },\n\n /**\n * Returns the default property value for a DOM property (i.e., not an\n * attribute). Most default values are '' or false, but not all. Worse yet,\n * some (in particular, `type`) vary depending on the type of element.\n *\n * TODO: Is it better to grab all the possible properties when creating an\n * element to avoid having to create the same element twice?\n */\n getDefaultValueForProperty: function getDefaultValueForProperty(nodeName, prop) {\n var nodeDefaults = defaultValueCache[nodeName];\n var testElement;\n if (!nodeDefaults) {\n defaultValueCache[nodeName] = nodeDefaults = {};\n }\n if (!(prop in nodeDefaults)) {\n testElement = document.createElement(nodeName);\n nodeDefaults[prop] = testElement[prop];\n }\n return nodeDefaults[prop];\n },\n\n injection: DOMPropertyInjection\n};\n\nmodule.exports = DOMProperty;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRE9NUHJvcGVydHkuanM/ZDg4YiJdLCJuYW1lcyI6WyJpbnZhcmlhbnQiLCJyZXF1aXJlIiwiY2hlY2tNYXNrIiwidmFsdWUiLCJiaXRtYXNrIiwiRE9NUHJvcGVydHlJbmplY3Rpb24iLCJNVVNUX1VTRV9BVFRSSUJVVEUiLCJNVVNUX1VTRV9QUk9QRVJUWSIsIkhBU19TSURFX0VGRkVDVFMiLCJIQVNfQk9PTEVBTl9WQUxVRSIsIkhBU19OVU1FUklDX1ZBTFVFIiwiSEFTX1BPU0lUSVZFX05VTUVSSUNfVkFMVUUiLCJIQVNfT1ZFUkxPQURFRF9CT09MRUFOX1ZBTFVFIiwiaW5qZWN0RE9NUHJvcGVydHlDb25maWciLCJkb21Qcm9wZXJ0eUNvbmZpZyIsIkluamVjdGlvbiIsIlByb3BlcnRpZXMiLCJET01BdHRyaWJ1dGVOYW1lc3BhY2VzIiwiRE9NQXR0cmlidXRlTmFtZXMiLCJET01Qcm9wZXJ0eU5hbWVzIiwiRE9NTXV0YXRpb25NZXRob2RzIiwiaXNDdXN0b21BdHRyaWJ1dGUiLCJET01Qcm9wZXJ0eSIsIl9pc0N1c3RvbUF0dHJpYnV0ZUZ1bmN0aW9ucyIsInB1c2giLCJwcm9wTmFtZSIsInByb3BlcnRpZXMiLCJoYXNPd25Qcm9wZXJ0eSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImxvd2VyQ2FzZWQiLCJ0b0xvd2VyQ2FzZSIsInByb3BDb25maWciLCJwcm9wZXJ0eUluZm8iLCJhdHRyaWJ1dGVOYW1lIiwiYXR0cmlidXRlTmFtZXNwYWNlIiwicHJvcGVydHlOYW1lIiwibXV0YXRpb25NZXRob2QiLCJtdXN0VXNlQXR0cmlidXRlIiwibXVzdFVzZVByb3BlcnR5IiwiaGFzU2lkZUVmZmVjdHMiLCJoYXNCb29sZWFuVmFsdWUiLCJoYXNOdW1lcmljVmFsdWUiLCJoYXNQb3NpdGl2ZU51bWVyaWNWYWx1ZSIsImhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWUiLCJnZXRQb3NzaWJsZVN0YW5kYXJkTmFtZSIsImRlZmF1bHRWYWx1ZUNhY2hlIiwiSURfQVRUUklCVVRFX05BTUUiLCJpIiwibGVuZ3RoIiwiaXNDdXN0b21BdHRyaWJ1dGVGbiIsImdldERlZmF1bHRWYWx1ZUZvclByb3BlcnR5Iiwibm9kZU5hbWUiLCJwcm9wIiwibm9kZURlZmF1bHRzIiwidGVzdEVsZW1lbnQiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJpbmplY3Rpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsWUFBWSxtQkFBQUMsQ0FBUSxFQUFSLENBQWhCOztBQUVBLFNBQVNDLFNBQVQsQ0FBbUJDLEtBQW5CLEVBQTBCQyxPQUExQixFQUFtQztBQUNqQyxTQUFPLENBQUNELFFBQVFDLE9BQVQsTUFBc0JBLE9BQTdCO0FBQ0Q7O0FBRUQsSUFBSUMsdUJBQXVCO0FBQ3pCOzs7O0FBSUFDLHNCQUFvQixHQUxLO0FBTXpCQyxxQkFBbUIsR0FOTTtBQU96QkMsb0JBQWtCLEdBUE87QUFRekJDLHFCQUFtQixHQVJNO0FBU3pCQyxxQkFBbUIsSUFUTTtBQVV6QkMsOEJBQTRCLE9BQU8sSUFWVjtBQVd6QkMsZ0NBQThCLElBWEw7O0FBYXpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBQywyQkFBeUIsaUNBQVVDLGlCQUFWLEVBQTZCO0FBQ3BELFFBQUlDLFlBQVlWLG9CQUFoQjtBQUNBLFFBQUlXLGFBQWFGLGtCQUFrQkUsVUFBbEIsSUFBZ0MsRUFBakQ7QUFDQSxRQUFJQyx5QkFBeUJILGtCQUFrQkcsc0JBQWxCLElBQTRDLEVBQXpFO0FBQ0EsUUFBSUMsb0JBQW9CSixrQkFBa0JJLGlCQUFsQixJQUF1QyxFQUEvRDtBQUNBLFFBQUlDLG1CQUFtQkwsa0JBQWtCSyxnQkFBbEIsSUFBc0MsRUFBN0Q7QUFDQSxRQUFJQyxxQkFBcUJOLGtC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TyxJQUFQO0FBQ0Q7QUFDRjtBQUNELFdBQU8sS0FBUDtBQUNELEdBbEVlOztBQW9FaEI7Ozs7Ozs7O0FBUUFpQiw4QkFBNEIsb0NBQVVDLFFBQVYsRUFBb0JDLElBQXBCLEVBQTBCO0FBQ3BELFFBQUlDLGVBQWVSLGtCQUFrQk0sUUFBbEIsQ0FBbkI7QUFDQSxRQUFJRyxXQUFKO0FBQ0EsUUFBSSxDQUFDRCxZQUFMLEVBQW1CO0FBQ2pCUix3QkFBa0JNLFFBQWxCLElBQThCRSxlQUFlLEVBQTdDO0FBQ0Q7QUFDRCxRQUFJLEVBQUVELFFBQVFDLFlBQVYsQ0FBSixFQUE2QjtBQUMzQkMsb0JBQWNDLFNBQVNDLGFBQVQsQ0FBdUJMLFFBQXZCLENBQWQ7QUFDQUUsbUJBQWFELElBQWIsSUFBcUJFLFlBQVlGLElBQVosQ0FBckI7QUFDRDtBQUNELFdBQU9DLGFBQWFELElBQWIsQ0FBUDtBQUNELEdBdkZlOztBQXlGaEJLLGFBQVd2RDtBQXpGSyxDQUFsQjs7QUE0RkF3RCxPQUFPQyxPQUFQLEdBQWlCeEMsV0FBakIsQyIsImZpbGUiOiIyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBET01Qcm9wZXJ0eVxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxuZnVuY3Rpb24gY2hlY2tNYXNrKHZhbHVlLCBiaXRtYXNrKSB7XG4gIHJldHVybiAodmFsdWUgJiBiaXRtYXNrKSA9PT0gYml0bWFzaztcbn1cblxudmFyIERPTVByb3BlcnR5SW5qZWN0aW9uID0ge1xuICAvKipcbiAgICogTWFwcGluZyBmcm9tIG5vcm1hbGl6ZWQsIGNhbWVsY2FzZWQgcHJvcGVydHkgbmFtZXMgdG8gYSBjb25maWd1cmF0aW9uIHRoYXRcbiAgICogc3BlY2lmaWVzIGhvdyB0aGUgYXNzb2NpYXRlZCBET00gcHJvcGVydHkgc2hvdWxkIGJlIGFjY2Vzc2VkIG9yIHJlbmRlcmVkLlxuICAgKi9cbiAgTVVTVF9VU0VfQVRUUklCVVRFOiAweDEsXG4gIE1VU1RfVVNFX1BST1BFUlRZOiAweDIsXG4gIEhBU19TSURFX0VGRkVDVFM6IDB4NCxcbiAgSEFTX0JPT0xFQU5fVkFMVUU6IDB4OCxcbiAgSEFTX05VTUVSSUNfVkFMVUU6IDB4MTAsXG4gIEhBU19QT1NJVElWRV9OVU1FUklDX1ZBTFVFOiAweDIwIHwgMHgxMCxcbiAgSEFTX09WRVJMT0FERURfQk9PTEVBTl9WQUxVRTogMHg0MCxcblxuICAvKipcbiAgICogSW5qZWN0IHNvbWUgc3BlY2lhbGl6ZWQga25vd2xlZGdlIGFib3V0IHRoZSBET00uIFRoaXMgdGFrZXMgYSBjb25maWcgb2JqZWN0XG4gICAqIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICAgKlxuICAgKiBpc0N1c3RvbUF0dHJpYnV0ZTogZnVuY3Rpb24gdGhhdCBnaXZlbiBhbiBhdHRyaWJ1dGUgbmFtZSB3aWxsIHJldHVybiB0cnVlXG4gICAqIGlmIGl0IGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBET00gdmVyYmF0aW0uIFVzZWZ1bCBmb3IgZGF0YS0qIG9yIGFyaWEtKlxuICAgKiBhdHRyaWJ1dGVzIHdoZXJlIGl0J3MgaW1wb3NzaWJsZSB0byBlbnVtZXJhdGUgYWxsIG9mIHRoZSBwb3NzaWJsZVxuICAgKiBhdHRyaWJ1dGUgbmFtZXMsXG4gICAqXG4gICAqIFByb3BlcnRpZXM6IG9iamVjdCBtYXBwaW5nIERPTSBwcm9wZXJ0eSBuYW1lIHRvIG9uZSBvZiB0aGVcbiAgICogRE9NUHJvcGVydHlJbmplY3Rpb24gY29uc3RhbnRzIG9yIG51bGwuIElmIHlvdXIgYXR0cmlidXRlIGlzbid0IGluIGhlcmUsXG4gICAqIGl0IHdvbid0IGdldCB3cml0dGVuIHRvIHRoZSBET00uXG4gICAqXG4gICAqIERPTUF0dHJpYnV0ZU5hbWVzOiBvYmplY3QgbWFwcGluZyBSZWFjdCBhdHRyaWJ1dGUgbmFtZSB0byB0aGUgRE9NXG4gICAqIGF0dHJpYnV0ZSBuYW1lLiBBdHRyaWJ1dGUgbmFtZXMgbm90IHNwZWNpZmllZCB1c2UgdGhlICoqbG93ZXJjYXNlKipcbiAgICogbm9ybWFsaXplZCBuYW1lLlxuICAgKlxuICAgKiBET01BdHRyaWJ1dGVOYW1lc3BhY2VzOiBvYmplY3QgbWFwcGluZyBSZWFjdCBhdHRyaWJ1dGUgbmFtZSB0byB0aGUgRE9NXG4gICAqIGF0dHJpYnV0ZSBuYW1lc3BhY2UgVVJMLiAoQXR0cmlidXRlIG5hbWVzIG5vdCBzcGVjaWZpZWQgdXNlIG5vIG5hbWVzcGFjZS4pXG4gICAqXG4gICAqIERPTVByb3BlcnR5TmFtZXM6IHNpbWlsYXIgdG8gRE9NQXR0cmlidXRlTmFtZXMgYnV0IGZvciBET00gcHJvcGVydGllcy5cbiAgICogUHJvcGVydHkgbmFtZXMgbm90IHNwZWNpZmllZCB1c2UgdGhlIG5vcm1hbGl6ZWQgbmFtZS5cbiAgICpcbiAgICogRE9NTXV0YXRpb25NZXRob2RzOiBQcm9wZXJ0aWVzIHRoYXQgcmVxdWlyZSBzcGVjaWFsIG11dGF0aW9uIG1ldGhvZHMuIElmXG4gICAqIGB2YWx1ZWAgaXMgdW5kZWZpbmVkLCB0aGUgbXV0YXRpb24gbWV0aG9kIHNob3VsZCB1bnNldCB0aGUgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBkb21Qcm9wZXJ0eUNvbmZpZyB0aGUgY29uZmlnIGFzIGRlc2NyaWJlZCBhYm92ZS5cbiAgICovXG4gIGluamVjdERPTVByb3BlcnR5Q29uZmlnOiBmdW5jdGlvbiAoZG9tUHJvcGVydHlDb25maWcpIHtcbiAgICB2YXIgSW5qZWN0aW9uID0gRE9NUHJvcGVydHlJbmplY3Rpb247XG4gICAgdmFyIFByb3BlcnRpZXMgPSBkb21Qcm9wZXJ0eUNvbmZpZy5Qcm9wZXJ0aWVzIHx8IHt9O1xuICAgIHZhciBET01BdHRyaWJ1dGVOYW1lc3BhY2VzID0gZG9tUHJvcGVydHlDb25maWcuRE9NQXR0cmlidXRlTmFtZXNwYWNlcyB8fCB7fTtcbiAgICB2YXIgRE9NQXR0cmlidXRlTmFtZXMgPSBkb21Qcm9wZXJ0eUNvbmZpZy5ET01BdHRyaWJ1dGVOYW1lcyB8fCB7fTtcbiAgICB2YXIgRE9NUHJvcGVydHlOYW1lcyA9IGRvbVByb3BlcnR5Q29uZmlnLkRPTVByb3BlcnR5TmFtZXMgfHwge307XG4gICAgdmFyIERPTU11dGF0aW9uTWV0aG9kcyA9IGRvbVByb3BlcnR5Q29uZmlnLkRPTU11dGF0aW9uTWV0aG9kcyB8fCB7fTtcblxuICAgIGlmIChkb21Qcm9wZXJ0eUNvbmZpZy5pc0N1c3RvbUF0dHJpYnV0ZSkge1xuICAgICAgRE9NUHJvcGVydHkuX2lzQ3VzdG9tQXR0cmlidXRlRnVuY3Rpb25zLnB1c2goZG9tUHJvcGVydHlDb25maWcuaXNDdXN0b21BdHRyaWJ1dGUpO1xuICAgIH1cblxuICAgIGZvciAodmFyIHByb3BOYW1lIGluIFByb3BlcnRpZXMpIHtcbiAgICAgICEhRE9NUHJvcGVydHkucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnaW5qZWN0RE9NUHJvcGVydHlDb25maWcoLi4uKTogWW91XFwncmUgdHJ5aW5nIHRvIGluamVjdCBET00gcHJvcGVydHkgJyArICdcXCclc1xcJyB3aGljaCBoYXMgYWxyZWFkeSBiZWVuIGluamVjdGVkLiBZb3UgbWF5IGJlIGFjY2lkZW50YWxseSAnICsgJ2luamVjdGluZyB0aGUgc2FtZSBET00gcHJvcGVydHkgY29uZmlnIHR3aWNlLCBvciB5b3UgbWF5IGJlICcgKyAnaW5qZWN0aW5nIHR3byBjb25maWdzIHRoYXQgaGF2ZSBjb25mbGljdGluZyBwcm9wZXJ0eSBuYW1lcy4nLCBwcm9wTmFtZSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgICB2YXIgbG93ZXJDYXNlZCA9IHByb3BOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgcHJvcENvbmZpZyA9IFByb3BlcnRpZXNbcHJvcE5hbWVdO1xuXG4gICAgICB2YXIgcHJvcGVydHlJbmZvID0ge1xuICAgICAgICBhdHRyaWJ1dGVOYW1lOiBsb3dlckNhc2VkLFxuICAgICAgICBhdHRyaWJ1dGVOYW1lc3BhY2U6IG51bGwsXG4gICAgICAgIHByb3BlcnR5TmFtZTogcHJvcE5hbWUsXG4gICAgICAgIG11dGF0aW9uTWV0aG9kOiBudWxsLFxuXG4gICAgICAgIG11c3RVc2VBdHRyaWJ1dGU6IGNoZWNrTWFzayhwcm9wQ29uZmlnLCBJbmplY3Rpb24uTVVTVF9VU0VfQVRUUklCVVRFKSxcbiAgICAgICAgbXVzdFVzZVByb3BlcnR5OiBjaGVja01hc2socHJvcENvbmZpZywgSW5qZWN0aW9uLk1VU1RfVVNFX1BST1BFUlRZKSxcbiAgICAgICAgaGFzU2lkZUVmZmVjdHM6IGNoZWNrTWFzayhwcm9wQ29uZmlnLCBJbmplY3Rpb24uSEFTX1NJREVfRUZGRUNUUyksXG4gICAgICAgIGhhc0Jvb2xlYW5WYWx1ZTogY2hlY2tNYXNrKHByb3BDb25maWcsIEluamVjdGlvbi5IQVNfQk9PTEVBTl9WQUxVRSksXG4gICAgICAgIGhhc051bWVyaWNWYWx1ZTogY2hlY2tNYXNrKHByb3BDb25maWcsIEluamVjdGlvbi5IQVNfTlVNRVJJQ19WQUxVRSksXG4gICAgICAgIGhhc1Bvc2l0aXZlTnVtZXJpY1ZhbHVlOiBjaGVja01hc2socHJvcENvbmZpZywgSW5qZWN0aW9uLkhBU19QT1NJVElWRV9OVU1FUklDX1ZBTFVFKSxcbiAgICAgICAgaGFzT3ZlcmxvYWRlZEJvb2xlYW5WYWx1ZTogY2hlY2tNYXNrKHByb3BDb25maWcsIEluamVjdGlvbi5IQVNfT1ZFUkxPQURFRF9CT09MRUFOX1ZBTFVFKVxuICAgICAgfTtcblxuICAgICAgISghcHJvcGVydHlJbmZvLm11c3RVc2VBdHRyaWJ1dGUgfHwgIXByb3BlcnR5SW5mby5tdXN0VXNlUHJvcGVydHkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0RPTVByb3BlcnR5OiBDYW5ub3QgcmVxdWlyZSB1c2luZyBib3RoIGF0dHJpYnV0ZSBhbmQgcHJvcGVydHk6ICVzJywgcHJvcE5hbWUpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICAgICEocHJvcGVydHlJbmZvLm11c3RVc2VQcm9wZXJ0eSB8fCAhcHJvcGVydHlJbmZvLmhhc1NpZGVFZmZlY3RzKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdET01Qcm9wZXJ0eTogUHJvcGVydGllcyB0aGF0IGhhdmUgc2lkZSBlZmZlY3RzIG11c3QgdXNlIHByb3BlcnR5OiAlcycsIHByb3BOYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICAhKHByb3BlcnR5SW5mby5oYXNCb29sZWFuVmFsdWUgKyBwcm9wZXJ0eUluZm8uaGFzTnVtZXJpY1ZhbHVlICsgcHJvcGVydHlJbmZvLmhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWUgPD0gMSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRE9NUHJvcGVydHk6IFZhbHVlIGNhbiBiZSBvbmUgb2YgYm9vbGVhbiwgb3ZlcmxvYWRlZCBib29sZWFuLCBvciAnICsgJ251bWVyaWMgdmFsdWUsIGJ1dCBub3QgYSBjb21iaW5hdGlvbjogJXMnLCBwcm9wTmFtZSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBET01Qcm9wZXJ0eS5nZXRQb3NzaWJsZVN0YW5kYXJkTmFtZVtsb3dlckNhc2VkXSA9IHByb3BOYW1lO1xuICAgICAgfVxuXG4gICAgICBpZiAoRE9NQXR0cmlidXRlTmFtZXMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gRE9NQXR0cmlidXRlTmFtZXNbcHJvcE5hbWVdO1xuICAgICAgICBwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZSA9IGF0dHJpYnV0ZU5hbWU7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgRE9NUHJvcGVydHkuZ2V0UG9zc2libGVTdGFuZGFyZE5hbWVbYXR0cmlidXRlTmFtZV0gPSBwcm9wTmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoRE9NQXR0cmlidXRlTmFtZXNwYWNlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWVzcGFjZSA9IERPTUF0dHJpYnV0ZU5hbWVzcGFjZXNbcHJvcE5hbWVdO1xuICAgICAgfVxuXG4gICAgICBpZiAoRE9NUHJvcGVydHlOYW1lcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgcHJvcGVydHlJbmZvLnByb3BlcnR5TmFtZSA9IERPTVByb3BlcnR5TmFtZXNbcHJvcE5hbWVdO1xuICAgICAgfVxuXG4gICAgICBpZiAoRE9NTXV0YXRpb25NZXRob2RzLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wZXJ0eUluZm8ubXV0YXRpb25NZXRob2QgPSBET01NdXRhdGlvbk1ldGhvZHNbcHJvcE5hbWVdO1xuICAgICAgfVxuXG4gICAgICBET01Qcm9wZXJ0eS5wcm9wZXJ0aWVzW3Byb3BOYW1lXSA9IHByb3BlcnR5SW5mbztcbiAgICB9XG4gIH1cbn07XG52YXIgZGVmYXVsdFZhbHVlQ2FjaGUgPSB7fTtcblxuLyoqXG4gKiBET01Qcm9wZXJ0eSBleHBvcnRzIGxvb2t1cCBvYmplY3RzIHRoYXQgY2FuIGJlIHVzZWQgbGlrZSBmdW5jdGlvbnM6XG4gKlxuICogICA+IERPTVByb3BlcnR5LmlzVmFsaWRbJ2lkJ11cbiAqICAgdHJ1ZVxuICogICA+IERPTVByb3BlcnR5LmlzVmFsaWRbJ2Zvb2JhciddXG4gKiAgIHVuZGVmaW5lZFxuICpcbiAqIEFsdGhvdWdoIHRoaXMgbWF5IGJlIGNvbmZ1c2luZywgaXQgcGVyZm9ybXMgYmV0dGVyIGluIGdlbmVyYWwuXG4gKlxuICogQHNlZSBodHRwOi8vanNwZXJmLmNvbS9rZXktZXhpc3RzXG4gKiBAc2VlIGh0dHA6Ly9qc3BlcmYuY29tL2tleS1taXNzaW5nXG4gKi9cbnZhciBET01Qcm9wZXJ0eSA9IHtcblxuICBJRF9BVFRSSUJVVEVfTkFNRTogJ2RhdGEtcmVhY3RpZCcsXG5cbiAgLyoqXG4gICAqIE1hcCBmcm9tIHByb3BlcnR5IFwic3RhbmRhcmQgbmFtZVwiIHRvIGFuIG9iamVjdCB3aXRoIGluZm8gYWJvdXQgaG93IHRvIHNldFxuICAgKiB0aGUgcHJvcGVydHkgaW4gdGhlIERPTS4gRWFjaCBvYmplY3QgY29udGFpbnM6XG4gICAqXG4gICAqIGF0dHJpYnV0ZU5hbWU6XG4gICAqICAgVXNlZCB3aGVuIHJlbmRlcmluZyBtYXJrdXAgb3Igd2l0aCBgKkF0dHJpYnV0ZSgpYC5cbiAgICogYXR0cmlidXRlTmFtZXNwYWNlXG4gICAqIHByb3BlcnR5TmFtZTpcbiAgICogICBVc2VkIG9uIERPTSBub2RlIGluc3RhbmNlcy4gKFRoaXMgaW5jbHVkZXMgcHJvcGVydGllcyB0aGF0IG11dGF0ZSBkdWUgdG9cbiAgICogICBleHRlcm5hbCBmYWN0b3JzLilcbiAgICogbXV0YXRpb25NZXRob2Q6XG4gICAqICAgSWYgbm9uLW51bGwsIHVzZWQgaW5zdGVhZCBvZiB0aGUgcHJvcGVydHkgb3IgYHNldEF0dHJpYnV0ZSgpYCBhZnRlclxuICAgKiAgIGluaXRpYWwgcmVuZGVyLlxuICAgKiBtdXN0VXNlQXR0cmlidXRlOlxuICAgKiAgIFdoZXRoZXIgdGhlIHByb3BlcnR5IG11c3QgYmUgYWNjZXNzZWQgYW5kIG11dGF0ZWQgdXNpbmcgYCpBdHRyaWJ1dGUoKWAuXG4gICAqICAgKFRoaXMgaW5jbHVkZXMgYW55dGhpbmcgdGhhdCBmYWlscyBgPHByb3BOYW1lPiBpbiA8ZWxlbWVudD5gLilcbiAgICogbXVzdFVzZVByb3BlcnR5OlxuICAgKiAgIFdoZXRoZXIgdGhlIHByb3BlcnR5IG11c3QgYmUgYWNjZXNzZWQgYW5kIG11dGF0ZWQgYXMgYW4gb2JqZWN0IHByb3BlcnR5LlxuICAgKiBoYXNTaWRlRWZmZWN0czpcbiAgICogICBXaGV0aGVyIG9yIG5vdCBzZXR0aW5nIGEgdmFsdWUgY2F1c2VzIHNpZGUgZWZmZWN0cyBzdWNoIGFzIHRyaWdnZXJpbmdcbiAgICogICByZXNvdXJjZXMgdG8gYmUgbG9hZGVkIG9yIHRleHQgc2VsZWN0aW9uIGNoYW5nZXMuIElmIHRydWUsIHdlIHJlYWQgZnJvbVxuICAgKiAgIHRoZSBET00gYmVmb3JlIHVwZGF0aW5nIHRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZSBpcyBvbmx5IHNldCBpZiBpdCBoYXNcbiAgICogICBjaGFuZ2VkLlxuICAgKiBoYXNCb29sZWFuVmFsdWU6XG4gICAqICAgV2hldGhlciB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBzZXQgdG8gYSBmYWxzZXkgdmFsdWUuXG4gICAqIGhhc051bWVyaWNWYWx1ZTpcbiAgICogICBXaGV0aGVyIHRoZSBwcm9wZXJ0eSBtdXN0IGJlIG51bWVyaWMgb3IgcGFyc2UgYXMgYSBudW1lcmljIGFuZCBzaG91bGQgYmVcbiAgICogICByZW1vdmVkIHdoZW4gc2V0IHRvIGEgZmFsc2V5IHZhbHVlLlxuICAgKiBoYXNQb3NpdGl2ZU51bWVyaWNWYWx1ZTpcbiAgICogICBXaGV0aGVyIHRoZSBwcm9wZXJ0eSBtdXN0IGJlIHBvc2l0aXZlIG51bWVyaWMgb3IgcGFyc2UgYXMgYSBwb3NpdGl2ZVxuICAgKiAgIG51bWVyaWMgYW5kIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gc2V0IHRvIGEgZmFsc2V5IHZhbHVlLlxuICAgKiBoYXNPdmVybG9hZGVkQm9vbGVhblZhbHVlOlxuICAgKiAgIFdoZXRoZXIgdGhlIHByb3BlcnR5IGNhbiBiZSB1c2VkIGFzIGEgZmxhZyBhcyB3ZWxsIGFzIHdpdGggYSB2YWx1ZS5cbiAgICogICBSZW1vdmVkIHdoZW4gc3RyaWN0bHkgZXF1YWwgdG8gZmFsc2U7IHByZXNlbnQgd2l0aG91dCBhIHZhbHVlIHdoZW5cbiAgICogICBzdHJpY3RseSBlcXVhbCB0byB0cnVlOyBwcmVzZW50IHdpdGggYSB2YWx1ZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm9wZXJ0aWVzOiB7fSxcblxuICAvKipcbiAgICogTWFwcGluZyBmcm9tIGxvd2VyY2FzZSBwcm9wZXJ0eSBuYW1lcyB0byB0aGUgcHJvcGVybHkgY2FzZWQgdmVyc2lvbiwgdXNlZFxuICAgKiB0byB3YXJuIGluIHRoZSBjYXNlIG9mIG1pc3NpbmcgcHJvcGVydGllcy4gQXZhaWxhYmxlIG9ubHkgaW4gX19ERVZfXy5cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGdldFBvc3NpYmxlU3RhbmRhcmROYW1lOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8ge30gOiBudWxsLFxuXG4gIC8qKlxuICAgKiBBbGwgb2YgdGhlIGlzQ3VzdG9tQXR0cmlidXRlKCkgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGluamVjdGVkLlxuICAgKi9cbiAgX2lzQ3VzdG9tQXR0cmlidXRlRnVuY3Rpb25zOiBbXSxcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBwcm9wZXJ0eSBuYW1lIGlzIGEgY3VzdG9tIGF0dHJpYnV0ZS5cbiAgICogQG1ldGhvZFxuICAgKi9cbiAgaXNDdXN0b21BdHRyaWJ1dGU6IGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBET01Qcm9wZXJ0eS5faXNDdXN0b21BdHRyaWJ1dGVGdW5jdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpc0N1c3RvbUF0dHJpYnV0ZUZuID0gRE9NUHJvcGVydHkuX2lzQ3VzdG9tQXR0cmlidXRlRnVuY3Rpb25zW2ldO1xuICAgICAgaWYgKGlzQ3VzdG9tQXR0cmlidXRlRm4oYXR0cmlidXRlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZGVmYXVsdCBwcm9wZXJ0eSB2YWx1ZSBmb3IgYSBET00gcHJvcGVydHkgKGkuZS4sIG5vdCBhblxuICAgKiBhdHRyaWJ1dGUpLiBNb3N0IGRlZmF1bHQgdmFsdWVzIGFyZSAnJyBvciBmYWxzZSwgYnV0IG5vdCBhbGwuIFdvcnNlIHlldCxcbiAgICogc29tZSAoaW4gcGFydGljdWxhciwgYHR5cGVgKSB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBlbGVtZW50LlxuICAgKlxuICAgKiBUT0RPOiBJcyBpdCBiZXR0ZXIgdG8gZ3JhYiBhbGwgdGhlIHBvc3NpYmxlIHByb3BlcnRpZXMgd2hlbiBjcmVhdGluZyBhblxuICAgKiBlbGVtZW50IHRvIGF2b2lkIGhhdmluZyB0byBjcmVhdGUgdGhlIHNhbWUgZWxlbWVudCB0d2ljZT9cbiAgICovXG4gIGdldERlZmF1bHRWYWx1ZUZvclByb3BlcnR5OiBmdW5jdGlvbiAobm9kZU5hbWUsIHByb3ApIHtcbiAgICB2YXIgbm9kZURlZmF1bHRzID0gZGVmYXVsdFZhbHVlQ2FjaGVbbm9kZU5hbWVdO1xuICAgIHZhciB0ZXN0RWxlbWVudDtcbiAgICBpZiAoIW5vZGVEZWZhdWx0cykge1xuICAgICAgZGVmYXVsdFZhbHVlQ2FjaGVbbm9kZU5hbWVdID0gbm9kZURlZmF1bHRzID0ge307XG4gICAgfVxuICAgIGlmICghKHByb3AgaW4gbm9kZURlZmF1bHRzKSkge1xuICAgICAgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5vZGVOYW1lKTtcbiAgICAgIG5vZGVEZWZhdWx0c1twcm9wXSA9IHRlc3RFbGVtZW50W3Byb3BdO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZURlZmF1bHRzW3Byb3BdO1xuICB9LFxuXG4gIGluamVjdGlvbjogRE9NUHJvcGVydHlJbmplY3Rpb25cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRE9NUHJvcGVydHk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0RPTVByb3BlcnR5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 24 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule quoteAttributeValueForBrowser\n */\n\n'use strict';\n\nvar escapeTextContentForBrowser = __webpack_require__(21);\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextContentForBrowser(value) + '\"';\n}\n\nmodule.exports = quoteAttributeValueForBrowser;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvcXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIuanM/OWFiZSJdLCJuYW1lcyI6WyJlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIiLCJyZXF1aXJlIiwicXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIiLCJ2YWx1ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLDhCQUE4QixtQkFBQUMsQ0FBUSxFQUFSLENBQWxDOztBQUVBOzs7Ozs7QUFNQSxTQUFTQyw2QkFBVCxDQUF1Q0MsS0FBdkMsRUFBOEM7QUFDNUMsU0FBTyxNQUFNSCw0QkFBNEJHLEtBQTVCLENBQU4sR0FBMkMsR0FBbEQ7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQkgsNkJBQWpCIiwiZmlsZSI6IjI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIHF1b3RlQXR0cmlidXRlVmFsdWVGb3JCcm93c2VyXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyID0gcmVxdWlyZSgnLi9lc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXInKTtcblxuLyoqXG4gKiBFc2NhcGVzIGF0dHJpYnV0ZSB2YWx1ZSB0byBwcmV2ZW50IHNjcmlwdGluZyBhdHRhY2tzLlxuICpcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVmFsdWUgdG8gZXNjYXBlLlxuICogQHJldHVybiB7c3RyaW5nfSBBbiBlc2NhcGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gcXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIodmFsdWUpIHtcbiAgcmV0dXJuICdcIicgKyBlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIodmFsdWUpICsgJ1wiJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBxdW90ZUF0dHJpYnV0ZVZhbHVlRm9yQnJvd3NlcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvcXVvdGVBdHRyaWJ1dGVWYWx1ZUZvckJyb3dzZXIuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 25 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule warning\n */\n\n'use strict';\n\nvar emptyFunction = __webpack_require__(15);\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(condition, format) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\n\nmodule.exports = warning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi93YXJuaW5nLmpzP2UxOWQiXSwibmFtZXMiOlsiZW1wdHlGdW5jdGlvbiIsInJlcXVpcmUiLCJ3YXJuaW5nIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uZGl0aW9uIiwiZm9ybWF0IiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJ1bmRlZmluZWQiLCJFcnJvciIsImluZGV4T2YiLCJhcmdJbmRleCIsIm1lc3NhZ2UiLCJyZXBsYWNlIiwiY29uc29sZSIsImVycm9yIiwieCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLGdCQUFnQixtQkFBQUMsQ0FBUSxFQUFSLENBQXBCOztBQUVBOzs7Ozs7O0FBT0EsSUFBSUMsVUFBVUYsYUFBZDs7QUFFQSxJQUFJRyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNILFlBQVUsaUJBQVVJLFNBQVYsRUFBcUJDLE1BQXJCLEVBQTZCO0FBQ3JDLFNBQUssSUFBSUMsT0FBT0MsVUFBVUMsTUFBckIsRUFBNkJDLE9BQU9DLE1BQU1KLE9BQU8sQ0FBUCxHQUFXQSxPQUFPLENBQWxCLEdBQXNCLENBQTVCLENBQXBDLEVBQW9FSyxPQUFPLENBQWhGLEVBQW1GQSxPQUFPTCxJQUExRixFQUFnR0ssTUFBaEcsRUFBd0c7QUFDdEdGLFdBQUtFLE9BQU8sQ0FBWixJQUFpQkosVUFBVUksSUFBVixDQUFqQjtBQUNEOztBQUVELFFBQUlOLFdBQVdPLFNBQWYsRUFBMEI7QUFDeEIsWUFBTSxJQUFJQyxLQUFKLENBQVUsOERBQThELGtCQUF4RSxDQUFOO0FBQ0Q7O0FBRUQsUUFBSVIsT0FBT1MsT0FBUCxDQUFlLDZCQUFmLE1BQWtELENBQXRELEVBQXlEO0FBQ3ZELGFBRHVELENBQy9DO0FBQ1Q7O0FBRUQsUUFBSSxDQUFDVixTQUFMLEVBQWdCO0FBQ2QsVUFBSVcsV0FBVyxDQUFmO0FBQ0EsVUFBSUMsVUFBVSxjQUFjWCxPQUFPWSxPQUFQLENBQWUsS0FBZixFQUFzQixZQUFZO0FBQzVELGVBQU9SLEtBQUtNLFVBQUwsQ0FBUDtBQUNELE9BRjJCLENBQTVCO0FBR0EsVUFBSSxPQUFPRyxPQUFQLEtBQW1CLFdBQXZCLEVBQW9DO0FBQ2xDQSxnQkFBUUMsS0FBUixDQUFjSCxPQUFkO0FBQ0Q7QUFDRCxVQUFJO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsY0FBTSxJQUFJSCxLQUFKLENBQVVHLE9BQVYsQ0FBTjtBQUNELE9BTEQsQ0FLRSxPQUFPSSxDQUFQLEVBQVUsQ0FBRTtBQUNmO0FBQ0YsR0E1QkQ7QUE2QkQ7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUJ0QixPQUFqQixDIiwiZmlsZSI6IjI1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIHdhcm5pbmdcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9lbXB0eUZ1bmN0aW9uJyk7XG5cbi8qKlxuICogU2ltaWxhciB0byBpbnZhcmlhbnQgYnV0IG9ubHkgbG9ncyBhIHdhcm5pbmcgaWYgdGhlIGNvbmRpdGlvbiBpcyBub3QgbWV0LlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBsb2cgaXNzdWVzIGluIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpbiBjcml0aWNhbFxuICogcGF0aHMuIFJlbW92aW5nIHRoZSBsb2dnaW5nIGNvZGUgZm9yIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdpbGwga2VlcCB0aGVcbiAqIHNhbWUgbG9naWMgYW5kIGZvbGxvdyB0aGUgc2FtZSBjb2RlIHBhdGhzLlxuICovXG5cbnZhciB3YXJuaW5nID0gZW1wdHlGdW5jdGlvbjtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgd2FybmluZyA9IGZ1bmN0aW9uIChjb25kaXRpb24sIGZvcm1hdCkge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiA+IDIgPyBfbGVuIC0gMiA6IDApLCBfa2V5ID0gMjsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMl0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2B3YXJuaW5nKGNvbmRpdGlvbiwgZm9ybWF0LCAuLi5hcmdzKWAgcmVxdWlyZXMgYSB3YXJuaW5nICcgKyAnbWVzc2FnZSBhcmd1bWVudCcpO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQuaW5kZXhPZignRmFpbGVkIENvbXBvc2l0ZSBwcm9wVHlwZTogJykgPT09IDApIHtcbiAgICAgIHJldHVybjsgLy8gSWdub3JlIENvbXBvc2l0ZUNvbXBvbmVudCBwcm9wdHlwZSBjaGVjay5cbiAgICB9XG5cbiAgICBpZiAoIWNvbmRpdGlvbikge1xuICAgICAgdmFyIGFyZ0luZGV4ID0gMDtcbiAgICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gLS0tIFdlbGNvbWUgdG8gZGVidWdnaW5nIFJlYWN0IC0tLVxuICAgICAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgc3RhY2tcbiAgICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgfVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHdhcm5pbmc7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvd2FybmluZy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 26 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentBrowserEnvironment\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = __webpack_require__(27);\nvar ReactMount = __webpack_require__(28);\n\n/**\n * Abstracts away all functionality of the reconciler that requires knowledge of\n * the browser context. TODO: These callers should be refactored to avoid the\n * need for this injection.\n */\nvar ReactComponentBrowserEnvironment = {\n\n processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,\n\n replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID,\n\n /**\n * If a particular environment requires that some resources be cleaned up,\n * specify this in the injected Mixin. In the DOM, we would likely want to\n * purge any cached node ID lookups.\n *\n * @private\n */\n unmountIDFromEnvironment: function unmountIDFromEnvironment(rootNodeID) {\n ReactMount.purgeID(rootNodeID);\n }\n\n};\n\nmodule.exports = ReactComponentBrowserEnvironment;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQuanM/YWRhNyJdLCJuYW1lcyI6WyJSZWFjdERPTUlET3BlcmF0aW9ucyIsInJlcXVpcmUiLCJSZWFjdE1vdW50IiwiUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQiLCJwcm9jZXNzQ2hpbGRyZW5VcGRhdGVzIiwiZGFuZ2Vyb3VzbHlQcm9jZXNzQ2hpbGRyZW5VcGRhdGVzIiwicmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRCIsImRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRCIsInVubW91bnRJREZyb21FbnZpcm9ubWVudCIsInJvb3ROb2RlSUQiLCJwdXJnZUlEIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsdUJBQXVCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBM0I7QUFDQSxJQUFJQyxhQUFhLG1CQUFBRCxDQUFRLEVBQVIsQ0FBakI7O0FBRUE7Ozs7O0FBS0EsSUFBSUUsbUNBQW1DOztBQUVyQ0MsMEJBQXdCSixxQkFBcUJLLGlDQUZSOztBQUlyQ0MsNkJBQTJCTixxQkFBcUJPLG9DQUpYOztBQU1yQzs7Ozs7OztBQU9BQyw0QkFBMEIsa0NBQVVDLFVBQVYsRUFBc0I7QUFDOUNQLGVBQVdRLE9BQVgsQ0FBbUJELFVBQW5CO0FBQ0Q7O0FBZm9DLENBQXZDOztBQW1CQUUsT0FBT0MsT0FBUCxHQUFpQlQsZ0NBQWpCIiwiZmlsZSI6IjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RET01JRE9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL1JlYWN0RE9NSURPcGVyYXRpb25zJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xuXG4vKipcbiAqIEFic3RyYWN0cyBhd2F5IGFsbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSByZWNvbmNpbGVyIHRoYXQgcmVxdWlyZXMga25vd2xlZGdlIG9mXG4gKiB0aGUgYnJvd3NlciBjb250ZXh0LiBUT0RPOiBUaGVzZSBjYWxsZXJzIHNob3VsZCBiZSByZWZhY3RvcmVkIHRvIGF2b2lkIHRoZVxuICogbmVlZCBmb3IgdGhpcyBpbmplY3Rpb24uXG4gKi9cbnZhciBSZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudCA9IHtcblxuICBwcm9jZXNzQ2hpbGRyZW5VcGRhdGVzOiBSZWFjdERPTUlET3BlcmF0aW9ucy5kYW5nZXJvdXNseVByb2Nlc3NDaGlsZHJlblVwZGF0ZXMsXG5cbiAgcmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRDogUmVhY3RET01JRE9wZXJhdGlvbnMuZGFuZ2Vyb3VzbHlSZXBsYWNlTm9kZVdpdGhNYXJrdXBCeUlELFxuXG4gIC8qKlxuICAgKiBJZiBhIHBhcnRpY3VsYXIgZW52aXJvbm1lbnQgcmVxdWlyZXMgdGhhdCBzb21lIHJlc291cmNlcyBiZSBjbGVhbmVkIHVwLFxuICAgKiBzcGVjaWZ5IHRoaXMgaW4gdGhlIGluamVjdGVkIE1peGluLiBJbiB0aGUgRE9NLCB3ZSB3b3VsZCBsaWtlbHkgd2FudCB0b1xuICAgKiBwdXJnZSBhbnkgY2FjaGVkIG5vZGUgSUQgbG9va3Vwcy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHVubW91bnRJREZyb21FbnZpcm9ubWVudDogZnVuY3Rpb24gKHJvb3ROb2RlSUQpIHtcbiAgICBSZWFjdE1vdW50LnB1cmdlSUQocm9vdE5vZGVJRCk7XG4gIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 27 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMIDOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar DOMChildrenOperations = __webpack_require__(7);\nvar DOMPropertyOperations = __webpack_require__(22);\nvar ReactMount = __webpack_require__(28);\nvar ReactPerf = __webpack_require__(18);\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Errors for properties that should not be updated with `updatePropertyByID()`.\n *\n * @type {object}\n * @private\n */\nvar INVALID_PROPERTY_ERRORS = {\n dangerouslySetInnerHTML: '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.',\n style: '`style` must be set using `updateStylesByID()`.'\n};\n\n/**\n * Operations used to process updates to DOM nodes.\n */\nvar ReactDOMIDOperations = {\n\n /**\n * Updates a DOM node with new property values. This should only be used to\n * update DOM properties in `DOMProperty`.\n *\n * @param {string} id ID of the node to update.\n * @param {string} name A valid property name, see `DOMProperty`.\n * @param {*} value New value of the property.\n * @internal\n */\n updatePropertyByID: function updatePropertyByID(id, name, value) {\n var node = ReactMount.getNode(id);\n !!INVALID_PROPERTY_ERRORS.hasOwnProperty(name) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updatePropertyByID(...): %s', INVALID_PROPERTY_ERRORS[name]) : invariant(false) : undefined;\n\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertantly setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (value != null) {\n DOMPropertyOperations.setValueForProperty(node, name, value);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, name);\n }\n },\n\n /**\n * Replaces a DOM node that exists in the document with markup.\n *\n * @param {string} id ID of child to be replaced.\n * @param {string} markup Dangerous markup to inject in place of child.\n * @internal\n * @see {Danger.dangerouslyReplaceNodeWithMarkup}\n */\n dangerouslyReplaceNodeWithMarkupByID: function dangerouslyReplaceNodeWithMarkupByID(id, markup) {\n var node = ReactMount.getNode(id);\n DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup);\n },\n\n /**\n * Updates a component's children by processing a series of updates.\n *\n * @param {array<object>} updates List of update configurations.\n * @param {array<string>} markup List of markup strings.\n * @internal\n */\n dangerouslyProcessChildrenUpdates: function dangerouslyProcessChildrenUpdates(updates, markup) {\n for (var i = 0; i < updates.length; i++) {\n updates[i].parentNode = ReactMount.getNode(updates[i].parentID);\n }\n DOMChildrenOperations.processUpdates(updates, markup);\n }\n};\n\nReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {\n dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID',\n dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates'\n});\n\nmodule.exports = ReactDOMIDOperations;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01JRE9wZXJhdGlvbnMuanM/YTM5MyJdLCJuYW1lcyI6WyJET01DaGlsZHJlbk9wZXJhdGlvbnMiLCJyZXF1aXJlIiwiRE9NUHJvcGVydHlPcGVyYXRpb25zIiwiUmVhY3RNb3VudCIsIlJlYWN0UGVyZiIsImludmFyaWFudCIsIklOVkFMSURfUFJPUEVSVFlfRVJST1JTIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJzdHlsZSIsIlJlYWN0RE9NSURPcGVyYXRpb25zIiwidXBkYXRlUHJvcGVydHlCeUlEIiwiaWQiLCJuYW1lIiwidmFsdWUiLCJub2RlIiwiZ2V0Tm9kZSIsImhhc093blByb3BlcnR5IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwic2V0VmFsdWVGb3JQcm9wZXJ0eSIsImRlbGV0ZVZhbHVlRm9yUHJvcGVydHkiLCJkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cEJ5SUQiLCJtYXJrdXAiLCJkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCIsImRhbmdlcm91c2x5UHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyIsInVwZGF0ZXMiLCJpIiwibGVuZ3RoIiwicGFyZW50Tm9kZSIsInBhcmVudElEIiwicHJvY2Vzc1VwZGF0ZXMiLCJtZWFzdXJlTWV0aG9kcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSx3QkFBd0IsbUJBQUFDLENBQVEsQ0FBUixDQUE1QjtBQUNBLElBQUlDLHdCQUF3QixtQkFBQUQsQ0FBUSxFQUFSLENBQTVCO0FBQ0EsSUFBSUUsYUFBYSxtQkFBQUYsQ0FBUSxFQUFSLENBQWpCO0FBQ0EsSUFBSUcsWUFBWSxtQkFBQUgsQ0FBUSxFQUFSLENBQWhCOztBQUVBLElBQUlJLFlBQVksbUJBQUFKLENBQVEsRUFBUixDQUFoQjs7QUFFQTs7Ozs7O0FBTUEsSUFBSUssMEJBQTBCO0FBQzVCQywyQkFBeUIsc0VBREc7QUFFNUJDLFNBQU87QUFGcUIsQ0FBOUI7O0FBS0E7OztBQUdBLElBQUlDLHVCQUF1Qjs7QUFFekI7Ozs7Ozs7OztBQVNBQyxzQkFBb0IsNEJBQVVDLEVBQVYsRUFBY0MsSUFBZCxFQUFvQkMsS0FBcEIsRUFBMkI7QUFDN0MsUUFBSUMsT0FBT1gsV0FBV1ksT0FBWCxDQUFtQkosRUFBbkIsQ0FBWDtBQUNBLEtBQUMsQ0FBQ0wsd0JBQXdCVSxjQUF4QixDQUF1Q0osSUFBdkMsQ0FBRixHQUFpREssUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDZCxVQUFVLEtBQVYsRUFBaUIsNkJBQWpCLEVBQWdEQyx3QkFBd0JNLElBQXhCLENBQWhELENBQXhDLEdBQXlIUCxVQUFVLEtBQVYsQ0FBMUssR0FBNkxlLFNBQTdMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQUlQLFNBQVMsSUFBYixFQUFtQjtBQUNqQlgsNEJBQXNCbUIsbUJBQXRCLENBQTBDUCxJQUExQyxFQUFnREYsSUFBaEQsRUFBc0RDLEtBQXREO0FBQ0QsS0FGRCxNQUVPO0FBQ0xYLDRCQUFzQm9CLHNCQUF0QixDQUE2Q1IsSUFBN0MsRUFBbURGLElBQW5EO0FBQ0Q7QUFDRixHQXZCd0I7O0FBeUJ6Qjs7Ozs7Ozs7QUFRQVcsd0NBQXNDLDhDQUFVWixFQUFWLEVBQWNhLE1BQWQsRUFBc0I7QUFDMUQsUUFBSVYsT0FBT1gsV0FBV1ksT0FBWCxDQUFtQkosRUFBbkIsQ0FBWDtBQUNBWCwwQkFBc0J5QixnQ0FBdEIsQ0FBdURYLElBQXZELEVBQTZEVSxNQUE3RDtBQUNELEdBcEN3Qjs7QUFzQ3pCOzs7Ozs7O0FBT0FFLHFDQUFtQywyQ0FBVUMsT0FBVixFQUFtQkgsTUFBbkIsRUFBMkI7QUFDNUQsU0FBSyxJQUFJSSxJQUFJLENBQWIsRUFBZ0JBLElBQUlELFFBQVFFLE1BQTVCLEVBQW9DRCxHQUFwQyxFQUF5QztBQUN2Q0QsY0FBUUMsQ0FBUixFQUFXRSxVQUFYLEdBQXdCM0IsV0FBV1ksT0FBWCxDQUFtQlksUUFBUUMsQ0FBUixFQUFXRyxRQUE5QixDQUF4QjtBQUNEO0FBQ0QvQiwwQkFBc0JnQyxjQUF0QixDQUFxQ0wsT0FBckMsRUFBOENILE1BQTlDO0FBQ0Q7QUFsRHdCLENBQTNCOztBQXFEQXBCLFVBQVU2QixjQUFWLENBQXlCeEIsb0JBQXpCLEVBQStDLHNCQUEvQyxFQUF1RTtBQUNyRWMsd0NBQXNDLHNDQUQrQjtBQUVyRUcscUNBQW1DO0FBRmtDLENBQXZFOztBQUtBUSxPQUFPQyxPQUFQLEdBQWlCMUIsb0JBQWpCLEMiLCJmaWxlIjoiMjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RET01JRE9wZXJhdGlvbnNcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRE9NQ2hpbGRyZW5PcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01DaGlsZHJlbk9wZXJhdGlvbnMnKTtcbnZhciBET01Qcm9wZXJ0eU9wZXJhdGlvbnMgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5T3BlcmF0aW9ucycpO1xudmFyIFJlYWN0TW91bnQgPSByZXF1aXJlKCcuL1JlYWN0TW91bnQnKTtcbnZhciBSZWFjdFBlcmYgPSByZXF1aXJlKCcuL1JlYWN0UGVyZicpO1xuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbi8qKlxuICogRXJyb3JzIGZvciBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIG5vdCBiZSB1cGRhdGVkIHdpdGggYHVwZGF0ZVByb3BlcnR5QnlJRCgpYC5cbiAqXG4gKiBAdHlwZSB7b2JqZWN0fVxuICogQHByaXZhdGVcbiAqL1xudmFyIElOVkFMSURfUFJPUEVSVFlfRVJST1JTID0ge1xuICBkYW5nZXJvdXNseVNldElubmVySFRNTDogJ2BkYW5nZXJvdXNseVNldElubmVySFRNTGAgbXVzdCBiZSBzZXQgdXNpbmcgYHVwZGF0ZUlubmVySFRNTEJ5SUQoKWAuJyxcbiAgc3R5bGU6ICdgc3R5bGVgIG11c3QgYmUgc2V0IHVzaW5nIGB1cGRhdGVTdHlsZXNCeUlEKClgLidcbn07XG5cbi8qKlxuICogT3BlcmF0aW9ucyB1c2VkIHRvIHByb2Nlc3MgdXBkYXRlcyB0byBET00gbm9kZXMuXG4gKi9cbnZhciBSZWFjdERPTUlET3BlcmF0aW9ucyA9IHtcblxuICAvKipcbiAgICogVXBkYXRlcyBhIERPTSBub2RlIHdpdGggbmV3IHByb3BlcnR5IHZhbHVlcy4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHRvXG4gICAqIHVwZGF0ZSBET00gcHJvcGVydGllcyBpbiBgRE9NUHJvcGVydHlgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgSUQgb2YgdGhlIG5vZGUgdG8gdXBkYXRlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBBIHZhbGlkIHByb3BlcnR5IG5hbWUsIHNlZSBgRE9NUHJvcGVydHlgLlxuICAgKiBAcGFyYW0geyp9IHZhbHVlIE5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdXBkYXRlUHJvcGVydHlCeUlEOiBmdW5jdGlvbiAoaWQsIG5hbWUsIHZhbHVlKSB7XG4gICAgdmFyIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUoaWQpO1xuICAgICEhSU5WQUxJRF9QUk9QRVJUWV9FUlJPUlMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAndXBkYXRlUHJvcGVydHlCeUlEKC4uLik6ICVzJywgSU5WQUxJRF9QUk9QRVJUWV9FUlJPUlNbbmFtZV0pIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIElmIHdlJ3JlIHVwZGF0aW5nIHRvIG51bGwgb3IgdW5kZWZpbmVkLCB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBwcm9wZXJ0eVxuICAgIC8vIGZyb20gdGhlIERPTSBub2RlIGluc3RlYWQgb2YgaW5hZHZlcnRhbnRseSBzZXR0aW5nIHRvIGEgc3RyaW5nLiBUaGlzXG4gICAgLy8gYnJpbmdzIHVzIGluIGxpbmUgd2l0aCB0aGUgc2FtZSBiZWhhdmlvciB3ZSBoYXZlIG9uIGluaXRpYWwgcmVuZGVyLlxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuc2V0VmFsdWVGb3JQcm9wZXJ0eShub2RlLCBuYW1lLCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvclByb3BlcnR5KG5vZGUsIG5hbWUpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUmVwbGFjZXMgYSBET00gbm9kZSB0aGF0IGV4aXN0cyBpbiB0aGUgZG9jdW1lbnQgd2l0aCBtYXJrdXAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBJRCBvZiBjaGlsZCB0byBiZSByZXBsYWNlZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1hcmt1cCBEYW5nZXJvdXMgbWFya3VwIHRvIGluamVjdCBpbiBwbGFjZSBvZiBjaGlsZC5cbiAgICogQGludGVybmFsXG4gICAqIEBzZWUge0Rhbmdlci5kYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cH1cbiAgICovXG4gIGRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRDogZnVuY3Rpb24gKGlkLCBtYXJrdXApIHtcbiAgICB2YXIgbm9kZSA9IFJlYWN0TW91bnQuZ2V0Tm9kZShpZCk7XG4gICAgRE9NQ2hpbGRyZW5PcGVyYXRpb25zLmRhbmdlcm91c2x5UmVwbGFjZU5vZGVXaXRoTWFya3VwKG5vZGUsIG1hcmt1cCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYSBjb21wb25lbnQncyBjaGlsZHJlbiBieSBwcm9jZXNzaW5nIGEgc2VyaWVzIG9mIHVwZGF0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7YXJyYXk8b2JqZWN0Pn0gdXBkYXRlcyBMaXN0IG9mIHVwZGF0ZSBjb25maWd1cmF0aW9ucy5cbiAgICogQHBhcmFtIHthcnJheTxzdHJpbmc+fSBtYXJrdXAgTGlzdCBvZiBtYXJrdXAgc3RyaW5ncy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBkYW5nZXJvdXNseVByb2Nlc3NDaGlsZHJlblVwZGF0ZXM6IGZ1bmN0aW9uICh1cGRhdGVzLCBtYXJrdXApIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVwZGF0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHVwZGF0ZXNbaV0ucGFyZW50Tm9kZSA9IFJlYWN0TW91bnQuZ2V0Tm9kZSh1cGRhdGVzW2ldLnBhcmVudElEKTtcbiAgICB9XG4gICAgRE9NQ2hpbGRyZW5PcGVyYXRpb25zLnByb2Nlc3NVcGRhdGVzKHVwZGF0ZXMsIG1hcmt1cCk7XG4gIH1cbn07XG5cblJlYWN0UGVyZi5tZWFzdXJlTWV0aG9kcyhSZWFjdERPTUlET3BlcmF0aW9ucywgJ1JlYWN0RE9NSURPcGVyYXRpb25zJywge1xuICBkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cEJ5SUQ6ICdkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cEJ5SUQnLFxuICBkYW5nZXJvdXNseVByb2Nlc3NDaGlsZHJlblVwZGF0ZXM6ICdkYW5nZXJvdXNseVByb2Nlc3NDaGlsZHJlblVwZGF0ZXMnXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTUlET3BlcmF0aW9ucztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01JRE9wZXJhdGlvbnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 28 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMount\n */\n\n'use strict';\n\nvar DOMProperty = __webpack_require__(23);\nvar ReactBrowserEventEmitter = __webpack_require__(29);\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactDOMFeatureFlags = __webpack_require__(41);\nvar ReactElement = __webpack_require__(42);\nvar ReactEmptyComponentRegistry = __webpack_require__(44);\nvar ReactInstanceHandles = __webpack_require__(45);\nvar ReactInstanceMap = __webpack_require__(47);\nvar ReactMarkupChecksum = __webpack_require__(48);\nvar ReactPerf = __webpack_require__(18);\nvar ReactReconciler = __webpack_require__(50);\nvar ReactUpdateQueue = __webpack_require__(53);\nvar ReactUpdates = __webpack_require__(54);\n\nvar assign = __webpack_require__(39);\nvar emptyObject = __webpack_require__(58);\nvar containsNode = __webpack_require__(59);\nvar instantiateReactComponent = __webpack_require__(62);\nvar invariant = __webpack_require__(13);\nvar setInnerHTML = __webpack_require__(19);\nvar shouldUpdateReactComponent = __webpack_require__(67);\nvar validateDOMNesting = __webpack_require__(70);\nvar warning = __webpack_require__(25);\n\nvar ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;\nvar nodeCache = {};\n\nvar ELEMENT_NODE_TYPE = 1;\nvar DOC_NODE_TYPE = 9;\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\nvar ownerDocumentContextKey = '__ReactMount_ownerDocument$' + Math.random().toString(36).slice(2);\n\n/** Mapping from reactRootID to React component instance. */\nvar instancesByReactRootID = {};\n\n/** Mapping from reactRootID to `container` nodes. */\nvar containersByReactRootID = {};\n\nif (process.env.NODE_ENV !== 'production') {\n /** __DEV__-only mapping from reactRootID to root elements. */\n var rootElementsByReactRootID = {};\n}\n\n// Used to store breadth-first search state in findComponentRoot.\nvar findComponentRootReusableArray = [];\n\n/**\n * Finds the index of the first character\n * that's not common between the two given strings.\n *\n * @return {number} the index of the character where the strings diverge\n */\nfunction firstDifferenceIndex(string1, string2) {\n var minLen = Math.min(string1.length, string2.length);\n for (var i = 0; i < minLen; i++) {\n if (string1.charAt(i) !== string2.charAt(i)) {\n return i;\n }\n }\n return string1.length === string2.length ? -1 : minLen;\n}\n\n/**\n * @param {DOMElement|DOMDocument} container DOM element that may contain\n * a React component\n * @return {?*} DOM element that may have the reactRoot ID, or null.\n */\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOC_NODE_TYPE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\n/**\n * @param {DOMElement} container DOM element that may contain a React component.\n * @return {?string} A \"reactRoot\" ID, if a React component is rendered.\n */\nfunction getReactRootID(container) {\n var rootElement = getReactRootElementInContainer(container);\n return rootElement && ReactMount.getID(rootElement);\n}\n\n/**\n * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form\n * element can return its control whose name or ID equals ATTR_NAME. All\n * DOM nodes support `getAttributeNode` but this can also get called on\n * other objects so just return '' if we're given something other than a\n * DOM node (such as window).\n *\n * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node.\n * @return {string} ID of the supplied `domNode`.\n */\nfunction getID(node) {\n var id = internalGetID(node);\n if (id) {\n if (nodeCache.hasOwnProperty(id)) {\n var cached = nodeCache[id];\n if (cached !== node) {\n !!isValid(cached, id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Two valid but unequal nodes with the same `%s`: %s', ATTR_NAME, id) : invariant(false) : undefined;\n\n nodeCache[id] = node;\n }\n } else {\n nodeCache[id] = node;\n }\n }\n\n return id;\n}\n\nfunction internalGetID(node) {\n // If node is something like a window, document, or text node, none of\n // which support attributes or a .getAttribute method, gracefully return\n // the empty string, as if the attribute were missing.\n return node && node.getAttribute && node.getAttribute(ATTR_NAME) || '';\n}\n\n/**\n * Sets the React-specific ID of the given node.\n *\n * @param {DOMElement} node The DOM node whose ID will be set.\n * @param {string} id The value of the ID attribute.\n */\nfunction setID(node, id) {\n var oldID = internalGetID(node);\n if (oldID !== id) {\n delete nodeCache[oldID];\n }\n node.setAttribute(ATTR_NAME, id);\n nodeCache[id] = node;\n}\n\n/**\n * Finds the node with the supplied React-generated DOM ID.\n *\n * @param {string} id A React-generated DOM ID.\n * @return {DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNode(id) {\n if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n nodeCache[id] = ReactMount.findReactNodeByID(id);\n }\n return nodeCache[id];\n}\n\n/**\n * Finds the node with the supplied public React instance.\n *\n * @param {*} instance A public React instance.\n * @return {?DOMElement} DOM node with the suppled `id`.\n * @internal\n */\nfunction getNodeFromInstance(instance) {\n var id = ReactInstanceMap.get(instance)._rootNodeID;\n if (ReactEmptyComponentRegistry.isNullComponentID(id)) {\n return null;\n }\n if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {\n nodeCache[id] = ReactMount.findReactNodeByID(id);\n }\n return nodeCache[id];\n}\n\n/**\n * A node is \"valid\" if it is contained by a currently mounted container.\n *\n * This means that the node does not have to be contained by a document in\n * order to be considered valid.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @param {string} id The expected ID of the node.\n * @return {boolean} Whether the node is contained by a mounted container.\n */\nfunction isValid(node, id) {\n if (node) {\n !(internalGetID(node) === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactMount: Unexpected modification of `%s`', ATTR_NAME) : invariant(false) : undefined;\n\n var container = ReactMount.findReactContainerForID(id);\n if (container && containsNode(container, node)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Causes the cache to forget about one React-specific ID.\n *\n * @param {string} id The ID to forget.\n */\nfunction purgeID(id) {\n delete nodeCache[id];\n}\n\nvar deepestNodeSoFar = null;\nfunction findDeepestCachedAncestorImpl(ancestorID) {\n var ancestor = nodeCache[ancestorID];\n if (ancestor && isValid(ancestor, ancestorID)) {\n deepestNodeSoFar = ancestor;\n } else {\n // This node isn't populated in the cache, so presumably none of its\n // descendants are. Break out of the loop.\n return false;\n }\n}\n\n/**\n * Return the deepest cached node whose ID is a prefix of `targetID`.\n */\nfunction findDeepestCachedAncestor(targetID) {\n deepestNodeSoFar = null;\n ReactInstanceHandles.traverseAncestors(targetID, findDeepestCachedAncestorImpl);\n\n var foundNode = deepestNodeSoFar;\n deepestNodeSoFar = null;\n return foundNode;\n}\n\n/**\n * Mounts this component and inserts it into the DOM.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {ReactReconcileTransaction} transaction\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction mountComponentIntoNode(componentInstance, rootID, container, transaction, shouldReuseMarkup, context) {\n if (ReactDOMFeatureFlags.useCreateElement) {\n context = assign({}, context);\n if (container.nodeType === DOC_NODE_TYPE) {\n context[ownerDocumentContextKey] = container;\n } else {\n context[ownerDocumentContextKey] = container.ownerDocument;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (context === emptyObject) {\n context = {};\n }\n var tag = container.nodeName.toLowerCase();\n context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(null, tag, null);\n }\n var markup = ReactReconciler.mountComponent(componentInstance, rootID, transaction, context);\n componentInstance._renderedComponent._topLevelWrapper = componentInstance;\n ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup, transaction);\n}\n\n/**\n * Batched mount.\n *\n * @param {ReactComponent} componentInstance The instance to mount.\n * @param {string} rootID DOM ID of the root node.\n * @param {DOMElement} container DOM element to mount into.\n * @param {boolean} shouldReuseMarkup If true, do not insert markup\n */\nfunction batchedMountComponentIntoNode(componentInstance, rootID, container, shouldReuseMarkup, context) {\n var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(\n /* forceHTML */shouldReuseMarkup);\n transaction.perform(mountComponentIntoNode, null, componentInstance, rootID, container, transaction, shouldReuseMarkup, context);\n ReactUpdates.ReactReconcileTransaction.release(transaction);\n}\n\n/**\n * Unmounts a component and removes it from the DOM.\n *\n * @param {ReactComponent} instance React component instance.\n * @param {DOMElement} container DOM element to unmount from.\n * @final\n * @internal\n * @see {ReactMount.unmountComponentAtNode}\n */\nfunction unmountComponentFromNode(instance, container) {\n ReactReconciler.unmountComponent(instance);\n\n if (container.nodeType === DOC_NODE_TYPE) {\n container = container.documentElement;\n }\n\n // http://jsperf.com/emptying-a-node\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n}\n\n/**\n * True if the supplied DOM node has a direct React-rendered child that is\n * not a React root element. Useful for warning in `render`,\n * `unmountComponentAtNode`, etc.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM element contains a direct child that was\n * rendered by React but is not a root element.\n * @internal\n */\nfunction hasNonRootReactChild(node) {\n var reactRootID = getReactRootID(node);\n return reactRootID ? reactRootID !== ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID) : false;\n}\n\n/**\n * Returns the first (deepest) ancestor of a node which is rendered by this copy\n * of React.\n */\nfunction findFirstReactDOMImpl(node) {\n // This node might be from another React instance, so we make sure not to\n // examine the node cache here\n for (; node && node.parentNode !== node; node = node.parentNode) {\n if (node.nodeType !== 1) {\n // Not a DOMElement, therefore not a React component\n continue;\n }\n var nodeID = internalGetID(node);\n if (!nodeID) {\n continue;\n }\n var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n\n // If containersByReactRootID contains the container we find by crawling up\n // the tree, we know that this instance of React rendered the node.\n // nb. isValid's strategy (with containsNode) does not work because render\n // trees may be nested and we don't want a false positive in that case.\n var current = node;\n var lastID;\n do {\n lastID = internalGetID(current);\n current = current.parentNode;\n if (current == null) {\n // The passed-in node has been detached from the container it was\n // originally rendered into.\n return null;\n }\n } while (lastID !== reactRootID);\n\n if (current === containersByReactRootID[reactRootID]) {\n return node;\n }\n }\n return null;\n}\n\n/**\n * Temporary (?) hack so that we can store all top-level pending updates on\n * composites instead of having to worry about different types of components\n * here.\n */\nvar TopLevelWrapper = function TopLevelWrapper() {};\nTopLevelWrapper.prototype.isReactComponent = {};\nif (process.env.NODE_ENV !== 'production') {\n TopLevelWrapper.displayName = 'TopLevelWrapper';\n}\nTopLevelWrapper.prototype.render = function () {\n // this.props is actually a ReactElement\n return this.props;\n};\n\n/**\n * Mounting is the process of initializing a React component by creating its\n * representative DOM elements and inserting them into a supplied `container`.\n * Any prior content inside `container` is destroyed in the process.\n *\n * ReactMount.render(\n * component,\n * document.getElementById('container')\n * );\n *\n * <div id=\"container\"> <-- Supplied `container`.\n * <div data-reactid=\".3\"> <-- Rendered reactRoot of React\n * // ... component.\n * </div>\n * </div>\n *\n * Inside of `container`, the first element rendered is the \"reactRoot\".\n */\nvar ReactMount = {\n\n TopLevelWrapper: TopLevelWrapper,\n\n /** Exposed for debugging purposes **/\n _instancesByReactRootID: instancesByReactRootID,\n\n /**\n * This is a hook provided to support rendering React components while\n * ensuring that the apparent scroll position of its `container` does not\n * change.\n *\n * @param {DOMElement} container The `container` being rendered into.\n * @param {function} renderCallback This must be called once to do the render.\n */\n scrollMonitor: function scrollMonitor(container, renderCallback) {\n renderCallback();\n },\n\n /**\n * Take a component that's already mounted into the DOM and replace its props\n * @param {ReactComponent} prevComponent component instance already in the DOM\n * @param {ReactElement} nextElement component instance to render\n * @param {DOMElement} container container to render into\n * @param {?function} callback function triggered on completion\n */\n _updateRootComponent: function _updateRootComponent(prevComponent, nextElement, container, callback) {\n ReactMount.scrollMonitor(container, function () {\n ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);\n }\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // Record the root element in case it later gets transplanted.\n rootElementsByReactRootID[getReactRootID(container)] = getReactRootElementInContainer(container);\n }\n\n return prevComponent;\n },\n\n /**\n * Register a component into the instance map and starts scroll value\n * monitoring\n * @param {ReactComponent} nextComponent component instance to render\n * @param {DOMElement} container container to render into\n * @return {string} reactRoot ID prefix\n */\n _registerComponent: function _registerComponent(nextComponent, container) {\n !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n ReactBrowserEventEmitter.ensureScrollValueMonitoring();\n\n var reactRootID = ReactMount.registerContainer(container);\n instancesByReactRootID[reactRootID] = nextComponent;\n return reactRootID;\n },\n\n /**\n * Render a new component into the DOM.\n * @param {ReactElement} nextElement element to render\n * @param {DOMElement} container container to render into\n * @param {boolean} shouldReuseMarkup if we should skip the markup insertion\n * @return {ReactComponent} nextComponent\n */\n _renderNewRootComponent: function _renderNewRootComponent(nextElement, container, shouldReuseMarkup, context) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case.\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n var componentInstance = instantiateReactComponent(nextElement, null);\n var reactRootID = ReactMount._registerComponent(componentInstance, container);\n\n // The initial render is synchronous but any updates that happen during\n // rendering, in componentWillMount or componentDidMount, will be batched\n // according to the current batching strategy.\n\n ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, reactRootID, container, shouldReuseMarkup, context);\n\n if (process.env.NODE_ENV !== 'production') {\n // Record the root element in case it later gets transplanted.\n rootElementsByReactRootID[reactRootID] = getReactRootElementInContainer(container);\n }\n\n return componentInstance;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactComponent} parentComponent The conceptual parent of this render tree.\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n renderSubtreeIntoContainer: function renderSubtreeIntoContainer(parentComponent, nextElement, container, callback) {\n !(parentComponent != null && parentComponent._reactInternalInstance != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : invariant(false) : undefined;\n return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);\n },\n\n _renderSubtreeIntoContainer: function _renderSubtreeIntoContainer(parentComponent, nextElement, container, callback) {\n !ReactElement.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? ' Instead of passing an element string, make sure to instantiate ' + 'it by passing it to React.createElement.' : typeof nextElement === 'function' ? ' Instead of passing a component class, make sure to instantiate ' + 'it by passing it to React.createElement.' :\n // Check if it quacks like an element\n nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : invariant(false) : undefined;\n\n process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : undefined;\n\n var nextWrappedElement = new ReactElement(TopLevelWrapper, null, null, null, null, null, nextElement);\n\n var prevComponent = instancesByReactRootID[getReactRootID(container)];\n\n if (prevComponent) {\n var prevWrappedElement = prevComponent._currentElement;\n var prevElement = prevWrappedElement.props;\n if (shouldUpdateReactComponent(prevElement, nextElement)) {\n var publicInst = prevComponent._renderedComponent.getPublicInstance();\n var updatedCallback = callback && function () {\n callback.call(publicInst);\n };\n ReactMount._updateRootComponent(prevComponent, nextWrappedElement, container, updatedCallback);\n return publicInst;\n } else {\n ReactMount.unmountComponentAtNode(container);\n }\n }\n\n var reactRootElement = getReactRootElementInContainer(container);\n var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : undefined;\n\n if (!containerHasReactMarkup || reactRootElement.nextSibling) {\n var rootElementSibling = reactRootElement;\n while (rootElementSibling) {\n if (internalGetID(rootElementSibling)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : undefined;\n break;\n }\n rootElementSibling = rootElementSibling.nextSibling;\n }\n }\n }\n\n var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;\n var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, parentComponent != null ? parentComponent._reactInternalInstance._processChildContext(parentComponent._reactInternalInstance._context) : emptyObject)._renderedComponent.getPublicInstance();\n if (callback) {\n callback.call(component);\n }\n return component;\n },\n\n /**\n * Renders a React component into the DOM in the supplied `container`.\n *\n * If the React component was previously rendered into `container`, this will\n * perform an update on it and only mutate the DOM as necessary to reflect the\n * latest React component.\n *\n * @param {ReactElement} nextElement Component element to render.\n * @param {DOMElement} container DOM element to render into.\n * @param {?function} callback function triggered on completion\n * @return {ReactComponent} Component instance rendered in `container`.\n */\n render: function render(nextElement, container, callback) {\n return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);\n },\n\n /**\n * Registers a container node into which React components will be rendered.\n * This also creates the \"reactRoot\" ID that will be assigned to the element\n * rendered within.\n *\n * @param {DOMElement} container DOM element to register as a container.\n * @return {string} The \"reactRoot\" ID of elements rendered within.\n */\n registerContainer: function registerContainer(container) {\n var reactRootID = getReactRootID(container);\n if (reactRootID) {\n // If one exists, make sure it is a valid \"reactRoot\" ID.\n reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID);\n }\n if (!reactRootID) {\n // No valid \"reactRoot\" ID found, create one.\n reactRootID = ReactInstanceHandles.createReactRootID();\n }\n containersByReactRootID[reactRootID] = container;\n return reactRootID;\n },\n\n /**\n * Unmounts and destroys the React component rendered in the `container`.\n *\n * @param {DOMElement} container DOM element containing a React component.\n * @return {boolean} True if a component was found in and unmounted from\n * `container`\n */\n unmountComponentAtNode: function unmountComponentAtNode(container) {\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (Strictly speaking, unmounting won't cause a\n // render but we still don't expect to be in a render call here.)\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : undefined;\n\n !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : invariant(false) : undefined;\n\n var reactRootID = getReactRootID(container);\n var component = instancesByReactRootID[reactRootID];\n if (!component) {\n // Check if the node being unmounted was rendered by React, but isn't a\n // root node.\n var containerHasNonRootReactChild = hasNonRootReactChild(container);\n\n // Check if the container itself is a React root node.\n var containerID = internalGetID(container);\n var isContainerReactRoot = containerID && containerID === ReactInstanceHandles.getReactRootIDFromNodeID(containerID);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'unmountComponentAtNode(): The node you\\'re attempting to unmount ' + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : undefined;\n }\n\n return false;\n }\n ReactUpdates.batchedUpdates(unmountComponentFromNode, component, container);\n delete instancesByReactRootID[reactRootID];\n delete containersByReactRootID[reactRootID];\n if (process.env.NODE_ENV !== 'production') {\n delete rootElementsByReactRootID[reactRootID];\n }\n return true;\n },\n\n /**\n * Finds the container DOM element that contains React component to which the\n * supplied DOM `id` belongs.\n *\n * @param {string} id The ID of an element rendered by a React component.\n * @return {?DOMElement} DOM element that contains the `id`.\n */\n findReactContainerForID: function findReactContainerForID(id) {\n var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id);\n var container = containersByReactRootID[reactRootID];\n\n if (process.env.NODE_ENV !== 'production') {\n var rootElement = rootElementsByReactRootID[reactRootID];\n if (rootElement && rootElement.parentNode !== container) {\n process.env.NODE_ENV !== 'production' ? warning(\n // Call internalGetID here because getID calls isValid which calls\n // findReactContainerForID (this function).\n internalGetID(rootElement) === reactRootID, 'ReactMount: Root element ID differed from reactRootID.') : undefined;\n var containerChild = container.firstChild;\n if (containerChild && reactRootID === internalGetID(containerChild)) {\n // If the container has a new child with the same ID as the old\n // root element, then rootElementsByReactRootID[reactRootID] is\n // just stale and needs to be updated. The case that deserves a\n // warning is when the container is empty.\n rootElementsByReactRootID[reactRootID] = containerChild;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactMount: Root element has been removed from its original ' + 'container. New container: %s', rootElement.parentNode) : undefined;\n }\n }\n }\n\n return container;\n },\n\n /**\n * Finds an element rendered by React with the supplied ID.\n *\n * @param {string} id ID of a DOM node in the React component.\n * @return {DOMElement} Root DOM node of the React component.\n */\n findReactNodeByID: function findReactNodeByID(id) {\n var reactRoot = ReactMount.findReactContainerForID(id);\n return ReactMount.findComponentRoot(reactRoot, id);\n },\n\n /**\n * Traverses up the ancestors of the supplied node to find a node that is a\n * DOM representation of a React component rendered by this copy of React.\n *\n * @param {*} node\n * @return {?DOMEventTarget}\n * @internal\n */\n getFirstReactDOM: function getFirstReactDOM(node) {\n return findFirstReactDOMImpl(node);\n },\n\n /**\n * Finds a node with the supplied `targetID` inside of the supplied\n * `ancestorNode`. Exploits the ID naming scheme to perform the search\n * quickly.\n *\n * @param {DOMEventTarget} ancestorNode Search from this root.\n * @pararm {string} targetID ID of the DOM representation of the component.\n * @return {DOMEventTarget} DOM node with the supplied `targetID`.\n * @internal\n */\n findComponentRoot: function findComponentRoot(ancestorNode, targetID) {\n var firstChildren = findComponentRootReusableArray;\n var childIndex = 0;\n\n var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode;\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw on the next line; give an early warning\n process.env.NODE_ENV !== 'production' ? warning(deepestAncestor != null, 'React can\\'t find the root component node for data-reactid value ' + '`%s`. If you\\'re seeing this message, it probably means that ' + 'you\\'ve loaded two copies of React on the page. At this time, only ' + 'a single copy of React can be loaded at a time.', targetID) : undefined;\n }\n\n firstChildren[0] = deepestAncestor.firstChild;\n firstChildren.length = 1;\n\n while (childIndex < firstChildren.length) {\n var child = firstChildren[childIndex++];\n var targetChild;\n\n while (child) {\n var childID = ReactMount.getID(child);\n if (childID) {\n // Even if we find the node we're looking for, we finish looping\n // through its siblings to ensure they're cached so that we don't have\n // to revisit this node again. Otherwise, we make n^2 calls to getID\n // when visiting the many children of a single node in order.\n\n if (targetID === childID) {\n targetChild = child;\n } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) {\n // If we find a child whose ID is an ancestor of the given ID,\n // then we can be sure that we only want to search the subtree\n // rooted at this child, so we can throw out the rest of the\n // search state.\n firstChildren.length = childIndex = 0;\n firstChildren.push(child.firstChild);\n }\n } else {\n // If this child had no ID, then there's a chance that it was\n // injected automatically by the browser, as when a `<table>`\n // element sprouts an extra `<tbody>` child as a side effect of\n // `.innerHTML` parsing. Optimistically continue down this\n // branch, but not before examining the other siblings.\n firstChildren.push(child.firstChild);\n }\n\n child = child.nextSibling;\n }\n\n if (targetChild) {\n // Emptying firstChildren/findComponentRootReusableArray is\n // not necessary for correctness, but it helps the GC reclaim\n // any nodes that were left at the end of the search.\n firstChildren.length = 0;\n\n return targetChild;\n }\n }\n\n firstChildren.length = 0;\n\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findComponentRoot(..., %s): Unable to find element. This probably ' + 'means the DOM was unexpectedly mutated (e.g., by the browser), ' + 'usually due to forgetting a <tbody> when using tables, nesting tags ' + 'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' + 'parent. ' + 'Try inspecting the child nodes of the element with React ID `%s`.', targetID, ReactMount.getID(ancestorNode)) : invariant(false) : undefined;\n },\n\n _mountImageIntoNode: function _mountImageIntoNode(markup, container, shouldReuseMarkup, transaction) {\n !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : invariant(false) : undefined;\n\n if (shouldReuseMarkup) {\n var rootElement = getReactRootElementInContainer(container);\n if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {\n return;\n } else {\n var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n\n var rootMarkup = rootElement.outerHTML;\n rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);\n\n var normalizedMarkup = markup;\n if (process.env.NODE_ENV !== 'production') {\n // because rootMarkup is retrieved from the DOM, various normalizations\n // will have occurred which will not be present in `markup`. Here,\n // insert markup into a <div> or <iframe> depending on the container\n // type to perform the same normalizations before comparing.\n var normalizer;\n if (container.nodeType === ELEMENT_NODE_TYPE) {\n normalizer = document.createElement('div');\n normalizer.innerHTML = markup;\n normalizedMarkup = normalizer.innerHTML;\n } else {\n normalizer = document.createElement('iframe');\n document.body.appendChild(normalizer);\n normalizer.contentDocument.write(markup);\n normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;\n document.body.removeChild(normalizer);\n }\n }\n\n var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);\n var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document using ' + 'server rendering but the checksum was invalid. This usually ' + 'means you rendered a different component type or props on ' + 'the client from the one on the server, or your render() ' + 'methods are impure. React cannot handle this case due to ' + 'cross-browser quirks by rendering at the document root. You ' + 'should look for environment dependent code in your components ' + 'and ensure the props are the same client and server side:\\n%s', difference) : invariant(false) : undefined;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\\n%s', difference) : undefined;\n }\n }\n }\n\n !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\\'re trying to render a component to the document but ' + 'you didn\\'t use server rendering. We can\\'t do this ' + 'without using server rendering due to cross-browser quirks. ' + 'See ReactDOMServer.renderToString() for server rendering.') : invariant(false) : undefined;\n\n if (transaction.useCreateElement) {\n while (container.lastChild) {\n container.removeChild(container.lastChild);\n }\n container.appendChild(markup);\n } else {\n setInnerHTML(container, markup);\n }\n },\n\n ownerDocumentContextKey: ownerDocumentContextKey,\n\n /**\n * React ID utilities.\n */\n\n getReactRootID: getReactRootID,\n\n getID: getID,\n\n setID: setID,\n\n getNode: getNode,\n\n getNodeFromInstance: getNodeFromInstance,\n\n isValid: isValid,\n\n purgeID: purgeID\n};\n\nReactPerf.measureMethods(ReactMount, 'ReactMount', {\n _renderNewRootComponent: '_renderNewRootComponent',\n _mountImageIntoNode: '_mountImageIntoNode'\n});\n\nmodule.exports = ReactMount;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RNb3VudC5qcz84NjBiIl0sIm5hbWVzIjpbIkRPTVByb3BlcnR5IiwicmVxdWlyZSIsIlJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciIsIlJlYWN0Q3VycmVudE93bmVyIiwiUmVhY3RET01GZWF0dXJlRmxhZ3MiLCJSZWFjdEVsZW1lbnQiLCJSZWFjdEVtcHR5Q29tcG9uZW50UmVnaXN0cnkiLCJSZWFjdEluc3RhbmNlSGFuZGxlcyIsIlJlYWN0SW5zdGFuY2VNYXAiLCJSZWFjdE1hcmt1cENoZWNrc3VtIiwiUmVhY3RQZXJmIiwiUmVhY3RSZWNvbmNpbGVyIiwiUmVhY3RVcGRhdGVRdWV1ZSIsIlJlYWN0VXBkYXRlcyIsImFzc2lnbiIsImVtcHR5T2JqZWN0IiwiY29udGFpbnNOb2RlIiwiaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCIsImludmFyaWFudCIsInNldElubmVySFRNTCIsInNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50IiwidmFsaWRhdGVET01OZXN0aW5nIiwid2FybmluZyIsIkFUVFJfTkFNRSIsIklEX0FUVFJJQlVURV9OQU1FIiwibm9kZUNhY2hlIiwiRUxFTUVOVF9OT0RFX1RZUEUiLCJET0NfTk9ERV9UWVBFIiwiRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFIiwib3duZXJEb2N1bWVudENvbnRleHRLZXkiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJzbGljZSIsImluc3RhbmNlc0J5UmVhY3RSb290SUQiLCJjb250YWluZXJzQnlSZWFjdFJvb3RJRCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInJvb3RFbGVtZW50c0J5UmVhY3RSb290SUQiLCJmaW5kQ29tcG9uZW50Um9vdFJldXNhYmxlQXJyYXkiLCJmaXJzdERpZmZlcmVuY2VJbmRleCIsInN0cmluZzEiLCJzdHJpbmcyIiwibWluTGVuIiwibWluIiwibGVuZ3RoIiwiaSIsImNoYXJBdCIsImdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lciIsImNvbnRhaW5lciIsIm5vZGVUeXBlIiwiZG9jdW1lbnRFbGVtZW50IiwiZmlyc3RDaGlsZCIsImdldFJlYWN0Um9vdElEIiwicm9vdEVsZW1lbnQiLCJSZWFjdE1vdW50IiwiZ2V0SUQiLCJub2RlIiwiaWQiLCJpbnRlcm5hbEdldElEIiwiaGFzT3duUHJvcGVydHkiLCJjYWNoZWQiLCJpc1ZhbGlkIiwidW5kZWZpbmVkIiwiZ2V0QXR0cmlidXRlIiwic2V0SUQiLCJvbGRJRCIsInNldEF0dHJpYnV0ZSIsImdldE5vZGUiLCJmaW5kUmVhY3ROb2RlQnlJRCIsImdldE5vZGVGcm9tSW5zdGFuY2UiLCJpbnN0YW5jZSIsImdldCIsIl9yb290Tm9kZUlEIiwiaXNOdWxsQ29tcG9uZW50SUQiLCJmaW5kUmVhY3RDb250YWluZXJGb3JJRCIsInB1cmdlSUQiLCJkZWVwZXN0Tm9kZVNvRmFyIiwiZmluZERlZXBlc3RDYWNoZWRBbmNlc3RvckltcGwiLCJhbmNlc3RvcklEIiwiYW5jZXN0b3IiLCJmaW5kRGVlcGVzdENhY2hlZEFuY2VzdG9yIiwidGFyZ2V0SUQiLCJ0cmF2ZXJzZUFuY2VzdG9ycyIsImZvdW5kTm9kZSIsIm1vdW50Q29tcG9uZW50SW50b05vZGUiLCJjb21wb25lbnRJbnN0YW5jZSIsInJvb3RJRCIsInRyYW5zYWN0aW9uIiwic2hvdWxkUmV1c2VNYXJrdXAiLCJjb250ZXh0IiwidXNlQ3JlYXRlRWxlbWVudCIsIm93bmVyRG9jdW1lbnQiLCJ0YWciLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwiYW5jZXN0b3JJbmZvQ29udGV4dEtleSIsInVwZGF0ZWRBbmNlc3RvckluZm8iLCJtYXJrdXAiLCJtb3VudENvbXBvbmVudCIsIl9yZW5kZXJlZENvbXBvbmVudCIsIl90b3BMZXZlbFdyYXBwZXIiLCJfbW91bnRJbWFnZUludG9Ob2RlIiwiYmF0Y2hlZE1vdW50Q29tcG9uZW50SW50b05vZGUiLCJSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uIiwiZ2V0UG9vbGVkIiwicGVyZm9ybSIsInJlbGVhc2UiLCJ1bm1vdW50Q29tcG9uZW50RnJvbU5vZGUiLCJ1bm1vdW50Q29tcG9uZW50IiwibGFzdENoaWxkIiwicmVtb3ZlQ2hpbGQiLCJoYXNOb25Sb290UmVhY3RDaGlsZCIsInJlYWN0Um9vdElEIiwiZ2V0UmVhY3RSb290SURGcm9tTm9kZUlEIiwiZmluZEZpcnN0UmVhY3RET01JbXBsIiwicGFyZW50Tm9kZSIsIm5vZGVJRCIsImN1cnJlbnQiLCJsYXN0SUQiLCJUb3BMZXZlbFdyYXBwZXIiLCJwcm90b3R5cGUiLCJpc1JlYWN0Q29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJyZW5kZXIiLCJwcm9wcyIsIl9pbnN0YW5jZXNCeVJlYWN0Um9vdElEIiwic2Nyb2xsTW9uaXRvciIsInJlbmRlckNhbGxiYWNrIiwiX3VwZGF0ZVJvb3RDb21wb25lbnQiLCJwcmV2Q29tcG9uZW50IiwibmV4dEVsZW1lbnQiLCJjYWxsYmFjayIsImVucXVldWVFbGVtZW50SW50ZXJuYWwiLCJlbnF1ZXVlQ2FsbGJhY2tJbnRlcm5hbCIsIl9yZWdpc3RlckNvbXBvbmVudCIsIm5leHRDb21wb25lbnQiLCJlbnN1cmVTY3JvbGxWYWx1ZU1vbml0b3JpbmciLCJyZWdpc3RlckNvbnRhaW5lciIsIl9yZW5kZXJOZXdSb290Q29tcG9uZW50IiwiZ2V0TmFtZSIsImJhdGNoZWRVcGRhdGVzIiwicmVuZGVyU3VidHJlZUludG9Db250YWluZXIiLCJwYXJlbnRDb21wb25lbnQiLCJfcmVhY3RJbnRlcm5hbEluc3RhbmNlIiwiX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyIiwiaXNWYWxpZEVsZW1lbnQiLCJ0YWdOYW1lIiwidG9VcHBlckNhc2UiLCJuZXh0V3JhcHBlZEVsZW1lbnQiLCJwcmV2V3JhcHBlZEVsZW1lbnQiLCJfY3VycmVudEVsZW1lbnQiLCJwcmV2RWxlbWVudCIsInB1YmxpY0luc3QiLCJnZXRQdWJsaWNJbnN0YW5jZSIsInVwZGF0ZWRDYWxsYmFjayIsImNhbGwiLCJ1bm1vdW50Q29tcG9uZW50QXROb2RlIiwicmVhY3RSb290RWxlbWVudCIsImNvbnRhaW5lckhhc1JlYWN0TWFya3VwIiwiY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQiLCJuZXh0U2libGluZyIsInJvb3RFbGVtZW50U2libGluZyIsImNvbXBvbmVudCIsIl9wcm9jZXNzQ2hpbGRDb250ZXh0IiwiX2NvbnRleHQiLCJjcmVhdGVSZWFjdFJvb3RJRCIsImNvbnRhaW5lcklEIiwiaXNDb250YWluZXJSZWFjdFJvb3QiLCJjb250YWluZXJDaGlsZCIsInJlYWN0Um9vdCIsImZpbmRDb21wb25lbnRSb290IiwiZ2V0Rmlyc3RSZWFjdERPTSIsImFuY2VzdG9yTm9kZSIsImZpcnN0Q2hpbGRyZW4iLCJjaGlsZEluZGV4IiwiZGVlcGVzdEFuY2VzdG9yIiwiY2hpbGQiLCJ0YXJnZXRDaGlsZCIsImNoaWxkSUQiLCJpc0FuY2VzdG9ySURPZiIsInB1c2giLCJjYW5SZXVzZU1hcmt1cCIsImNoZWNrc3VtIiwiQ0hFQ0tTVU1fQVRUUl9OQU1FIiwicmVtb3ZlQXR0cmlidXRlIiwicm9vdE1hcmt1cCIsIm91dGVySFRNTCIsIm5vcm1hbGl6ZWRNYXJrdXAiLCJub3JtYWxpemVyIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY29udGVudERvY3VtZW50Iiwid3JpdGUiLCJkaWZmSW5kZXgiLCJkaWZmZXJlbmNlIiwic3Vic3RyaW5nIiwibWVhc3VyZU1ldGhvZHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxjQUFjLG1CQUFBQyxDQUFRLEVBQVIsQ0FBbEI7QUFDQSxJQUFJQywyQkFBMkIsbUJBQUFELENBQVEsRUFBUixDQUEvQjtBQUNBLElBQUlFLG9CQUFvQixtQkFBQUYsQ0FBUSxDQUFS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QTRnQnZJLFNBQTVnQjtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxNQUFFZCxVQUFVQyxRQUFWLEtBQXVCeEIsYUFBekIsSUFBMENTLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q3BCLFVBQVUsS0FBVixFQUFpQiw4REFBOEQsc0RBQTlELEdBQXVILDhEQUF2SCxHQUF3TCwyREFBek0sQ0FBeEMsR0FBZ1RBLFVBQVUsS0FBVixDQUExVixHQUE2VzhDLFNBQTdXOztBQUVBLFFBQUl5QixZQUFZRyxnQkFBaEIsRUFBa0M7QUFDaEMsYUFBTzFDLFVBQVU2RCxTQUFqQixFQUE0QjtBQUMxQjdELGtCQUFVOEQsV0FBVixDQUFzQjlELFVBQVU2RCxTQUFoQztBQUNEO0FBQ0Q3RCxnQkFBVWlKLFdBQVYsQ0FBc0JoRyxNQUF0QjtBQUNELEtBTEQsTUFLTztBQUNMaEYsbUJBQWErQixTQUFiLEVBQXdCaUQsTUFBeEI7QUFDRDtBQUNGLEdBemFjOztBQTJhZnRFLDJCQUF5QkEsdUJBM2FWOztBQTZhZjs7OztBQUlBeUIsa0JBQWdCQSxjQWpiRDs7QUFtYmZHLFNBQU9BLEtBbmJROztBQXFiZlMsU0FBT0EsS0FyYlE7O0FBdWJmRyxXQUFTQSxPQXZiTTs7QUF5YmZFLHVCQUFxQkEsbUJBemJOOztBQTJiZlIsV0FBU0EsT0EzYk07O0FBNmJmYyxXQUFTQTtBQTdiTSxDQUFqQjs7QUFnY0FuRSxVQUFVK0wsY0FBVixDQUF5QmpKLFVBQXpCLEVBQXFDLFlBQXJDLEVBQW1EO0FBQ2pEb0YsMkJBQXlCLHlCQUR3QjtBQUVqRHJDLHVCQUFxQjtBQUY0QixDQUFuRDs7QUFLQW1HLE9BQU9DLE9BQVAsR0FBaUJuSixVQUFqQixDIiwiZmlsZSI6IjI4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0TW91bnRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCcuL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlcicpO1xudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgnLi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0RE9NRmVhdHVyZUZsYWdzID0gcmVxdWlyZSgnLi9SZWFjdERPTUZlYXR1cmVGbGFncycpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG52YXIgUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5ID0gcmVxdWlyZSgnLi9SZWFjdEVtcHR5Q29tcG9uZW50UmVnaXN0cnknKTtcbnZhciBSZWFjdEluc3RhbmNlSGFuZGxlcyA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZUhhbmRsZXMnKTtcbnZhciBSZWFjdEluc3RhbmNlTWFwID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlTWFwJyk7XG52YXIgUmVhY3RNYXJrdXBDaGVja3N1bSA9IHJlcXVpcmUoJy4vUmVhY3RNYXJrdXBDaGVja3N1bScpO1xudmFyIFJlYWN0UGVyZiA9IHJlcXVpcmUoJy4vUmVhY3RQZXJmJyk7XG52YXIgUmVhY3RSZWNvbmNpbGVyID0gcmVxdWlyZSgnLi9SZWFjdFJlY29uY2lsZXInKTtcbnZhciBSZWFjdFVwZGF0ZVF1ZXVlID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZVF1ZXVlJyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGVtcHR5T2JqZWN0ID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlPYmplY3QnKTtcbnZhciBjb250YWluc05vZGUgPSByZXF1aXJlKCdmYmpzL2xpYi9jb250YWluc05vZGUnKTtcbnZhciBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9pbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50Jyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgc2V0SW5uZXJIVE1MID0gcmVxdWlyZSgnLi9zZXRJbm5lckhUTUwnKTtcbnZhciBzaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCA9IHJlcXVpcmUoJy4vc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQnKTtcbnZhciB2YWxpZGF0ZURPTU5lc3RpbmcgPSByZXF1aXJlKCcuL3ZhbGlkYXRlRE9NTmVzdGluZycpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBBVFRSX05BTUUgPSBET01Qcm9wZXJ0eS5JRF9BVFRSSUJVVEVfTkFNRTtcbnZhciBub2RlQ2FjaGUgPSB7fTtcblxudmFyIEVMRU1FTlRfTk9ERV9UWVBFID0gMTtcbnZhciBET0NfTk9ERV9UWVBFID0gOTtcbnZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFX1RZUEUgPSAxMTtcblxudmFyIG93bmVyRG9jdW1lbnRDb250ZXh0S2V5ID0gJ19fUmVhY3RNb3VudF9vd25lckRvY3VtZW50JCcgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtcblxuLyoqIE1hcHBpbmcgZnJvbSByZWFjdFJvb3RJRCB0byBSZWFjdCBjb21wb25lbnQgaW5zdGFuY2UuICovXG52YXIgaW5zdGFuY2VzQnlSZWFjdFJvb3RJRCA9IHt9O1xuXG4vKiogTWFwcGluZyBmcm9tIHJlYWN0Um9vdElEIHRvIGBjb250YWluZXJgIG5vZGVzLiAqL1xudmFyIGNvbnRhaW5lcnNCeVJlYWN0Um9vdElEID0ge307XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8qKiBfX0RFVl9fLW9ubHkgbWFwcGluZyBmcm9tIHJlYWN0Um9vdElEIHRvIHJvb3QgZWxlbWVudHMuICovXG4gIHZhciByb290RWxlbWVudHNCeVJlYWN0Um9vdElEID0ge307XG59XG5cbi8vIFVzZWQgdG8gc3RvcmUgYnJlYWR0aC1maXJzdCBzZWFyY2ggc3RhdGUgaW4gZmluZENvbXBvbmVudFJvb3QuXG52YXIgZmluZENvbXBvbmVudFJvb3RSZXVzYWJsZUFycmF5ID0gW107XG5cbi8qKlxuICogRmluZHMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXJcbiAqIHRoYXQncyBub3QgY29tbW9uIGJldHdlZW4gdGhlIHR3byBnaXZlbiBzdHJpbmdzLlxuICpcbiAqIEByZXR1cm4ge251bWJlcn0gdGhlIGluZGV4IG9mIHRoZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIHN0cmluZ3MgZGl2ZXJnZVxuICovXG5mdW5jdGlvbiBmaXJzdERpZmZlcmVuY2VJbmRleChzdHJpbmcxLCBzdHJpbmcyKSB7XG4gIHZhciBtaW5MZW4gPSBNYXRoLm1pbihzdHJpbmcxLmxlbmd0aCwgc3RyaW5nMi5sZW5ndGgpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG1pbkxlbjsgaSsrKSB7XG4gICAgaWYgKHN0cmluZzEuY2hhckF0KGkpICE9PSBzdHJpbmcyLmNoYXJBdChpKSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJpbmcxLmxlbmd0aCA9PT0gc3RyaW5nMi5sZW5ndGggPyAtMSA6IG1pbkxlbjtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NRG9jdW1lbnR9IGNvbnRhaW5lciBET00gZWxlbWVudCB0aGF0IG1heSBjb250YWluXG4gKiBhIFJlYWN0IGNvbXBvbmVudFxuICogQHJldHVybiB7Pyp9IERPTSBlbGVtZW50IHRoYXQgbWF5IGhhdmUgdGhlIHJlYWN0Um9vdCBJRCwgb3IgbnVsbC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcikge1xuICBpZiAoIWNvbnRhaW5lcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DX05PREVfVFlQRSkge1xuICAgIHJldHVybiBjb250YWluZXIuZG9jdW1lbnRFbGVtZW50O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIERPTSBlbGVtZW50IHRoYXQgbWF5IGNvbnRhaW4gYSBSZWFjdCBjb21wb25lbnQuXG4gKiBAcmV0dXJuIHs/c3RyaW5nfSBBIFwicmVhY3RSb290XCIgSUQsIGlmIGEgUmVhY3QgY29tcG9uZW50IGlzIHJlbmRlcmVkLlxuICovXG5mdW5jdGlvbiBnZXRSZWFjdFJvb3RJRChjb250YWluZXIpIHtcbiAgdmFyIHJvb3RFbGVtZW50ID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gIHJldHVybiByb290RWxlbWVudCAmJiBSZWFjdE1vdW50LmdldElEKHJvb3RFbGVtZW50KTtcbn1cblxuLyoqXG4gKiBBY2Nlc3Npbmcgbm9kZVtBVFRSX05BTUVdIG9yIGNhbGxpbmcgZ2V0QXR0cmlidXRlKEFUVFJfTkFNRSkgb24gYSBmb3JtXG4gKiBlbGVtZW50IGNhbiByZXR1cm4gaXRzIGNvbnRyb2wgd2hvc2UgbmFtZSBvciBJRCBlcXVhbHMgQVRUUl9OQU1FLiBBbGxcbiAqIERPTSBub2RlcyBzdXBwb3J0IGBnZXRBdHRyaWJ1dGVOb2RlYCBidXQgdGhpcyBjYW4gYWxzbyBnZXQgY2FsbGVkIG9uXG4gKiBvdGhlciBvYmplY3RzIHNvIGp1c3QgcmV0dXJuICcnIGlmIHdlJ3JlIGdpdmVuIHNvbWV0aGluZyBvdGhlciB0aGFuIGFcbiAqIERPTSBub2RlIChzdWNoIGFzIHdpbmRvdykuXG4gKlxuICogQHBhcmFtIHs/RE9NRWxlbWVudHxET01XaW5kb3d8RE9NRG9jdW1lbnR8RE9NVGV4dE5vZGV9IG5vZGUgRE9NIG5vZGUuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IElEIG9mIHRoZSBzdXBwbGllZCBgZG9tTm9kZWAuXG4gKi9cbmZ1bmN0aW9uIGdldElEKG5vZGUpIHtcbiAgdmFyIGlkID0gaW50ZXJuYWxHZXRJRChub2RlKTtcbiAgaWYgKGlkKSB7XG4gICAgaWYgKG5vZGVDYWNoZS5oYXNPd25Qcm9wZXJ0eShpZCkpIHtcbiAgICAgIHZhciBjYWNoZWQgPSBub2RlQ2FjaGVbaWRdO1xuICAgICAgaWYgKGNhY2hlZCAhPT0gbm9kZSkge1xuICAgICAgICAhIWlzVmFsaWQoY2FjaGVkLCBpZCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RNb3VudDogVHdvIHZhbGlkIGJ1dCB1bmVxdWFsIG5vZGVzIHdpdGggdGhlIHNhbWUgYCVzYDogJXMnLCBBVFRSX05BTUUsIGlkKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgbm9kZUNhY2hlW2lkXSA9IG5vZGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVDYWNoZVtpZF0gPSBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpZDtcbn1cblxuZnVuY3Rpb24gaW50ZXJuYWxHZXRJRChub2RlKSB7XG4gIC8vIElmIG5vZGUgaXMgc29tZXRoaW5nIGxpa2UgYSB3aW5kb3csIGRvY3VtZW50LCBvciB0ZXh0IG5vZGUsIG5vbmUgb2ZcbiAgLy8gd2hpY2ggc3VwcG9ydCBhdHRyaWJ1dGVzIG9yIGEgLmdldEF0dHJpYnV0ZSBtZXRob2QsIGdyYWNlZnVsbHkgcmV0dXJuXG4gIC8vIHRoZSBlbXB0eSBzdHJpbmcsIGFzIGlmIHRoZSBhdHRyaWJ1dGUgd2VyZSBtaXNzaW5nLlxuICByZXR1cm4gbm9kZSAmJiBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZShBVFRSX05BTUUpIHx8ICcnO1xufVxuXG4vKipcbiAqIFNldHMgdGhlIFJlYWN0LXNwZWNpZmljIElEIG9mIHRoZSBnaXZlbiBub2RlLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZSBUaGUgRE9NIG5vZGUgd2hvc2UgSUQgd2lsbCBiZSBzZXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gaWQgVGhlIHZhbHVlIG9mIHRoZSBJRCBhdHRyaWJ1dGUuXG4gKi9cbmZ1bmN0aW9uIHNldElEKG5vZGUsIGlkKSB7XG4gIHZhciBvbGRJRCA9IGludGVybmFsR2V0SUQobm9kZSk7XG4gIGlmIChvbGRJRCAhPT0gaWQpIHtcbiAgICBkZWxldGUgbm9kZUNhY2hlW29sZElEXTtcbiAgfVxuICBub2RlLnNldEF0dHJpYnV0ZShBVFRSX05BTUUsIGlkKTtcbiAgbm9kZUNhY2hlW2lkXSA9IG5vZGU7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIG5vZGUgd2l0aCB0aGUgc3VwcGxpZWQgUmVhY3QtZ2VuZXJhdGVkIERPTSBJRC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaWQgQSBSZWFjdC1nZW5lcmF0ZWQgRE9NIElELlxuICogQHJldHVybiB7RE9NRWxlbWVudH0gRE9NIG5vZGUgd2l0aCB0aGUgc3VwcGxlZCBgaWRgLlxuICogQGludGVybmFsXG4gKi9cbmZ1bmN0aW9uIGdldE5vZGUoaWQpIHtcbiAgaWYgKCFub2RlQ2FjaGUuaGFzT3duUHJvcGVydHkoaWQpIHx8ICFpc1ZhbGlkKG5vZGVDYWNoZVtpZF0sIGlkKSkge1xuICAgIG5vZGVDYWNoZVtpZF0gPSBSZWFjdE1vdW50LmZpbmRSZWFjdE5vZGVCeUlEKGlkKTtcbiAgfVxuICByZXR1cm4gbm9kZUNhY2hlW2lkXTtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgbm9kZSB3aXRoIHRoZSBzdXBwbGllZCBwdWJsaWMgUmVhY3QgaW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHsqfSBpbnN0YW5jZSBBIHB1YmxpYyBSZWFjdCBpbnN0YW5jZS5cbiAqIEByZXR1cm4gez9ET01FbGVtZW50fSBET00gbm9kZSB3aXRoIHRoZSBzdXBwbGVkIGBpZGAuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0YW5jZSkge1xuICB2YXIgaWQgPSBSZWFjdEluc3RhbmNlTWFwLmdldChpbnN0YW5jZSkuX3Jvb3ROb2RlSUQ7XG4gIGlmIChSZWFjdEVtcHR5Q29tcG9uZW50UmVnaXN0cnkuaXNOdWxsQ29tcG9uZW50SUQoaWQpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKCFub2RlQ2FjaGUuaGFzT3duUHJvcGVydHkoaWQpIHx8ICFpc1ZhbGlkKG5vZGVDYWNoZVtpZF0sIGlkKSkge1xuICAgIG5vZGVDYWNoZVtpZF0gPSBSZWFjdE1vdW50LmZpbmRSZWFjdE5vZGVCeUlEKGlkKTtcbiAgfVxuICByZXR1cm4gbm9kZUNhY2hlW2lkXTtcbn1cblxuLyoqXG4gKiBBIG5vZGUgaXMgXCJ2YWxpZFwiIGlmIGl0IGlzIGNvbnRhaW5lZCBieSBhIGN1cnJlbnRseSBtb3VudGVkIGNvbnRhaW5lci5cbiAqXG4gKiBUaGlzIG1lYW5zIHRoYXQgdGhlIG5vZGUgZG9lcyBub3QgaGF2ZSB0byBiZSBjb250YWluZWQgYnkgYSBkb2N1bWVudCBpblxuICogb3JkZXIgdG8gYmUgY29uc2lkZXJlZCB2YWxpZC5cbiAqXG4gKiBAcGFyYW0gez9ET01FbGVtZW50fSBub2RlIFRoZSBjYW5kaWRhdGUgRE9NIG5vZGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gaWQgVGhlIGV4cGVjdGVkIElEIG9mIHRoZSBub2RlLlxuICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciB0aGUgbm9kZSBpcyBjb250YWluZWQgYnkgYSBtb3VudGVkIGNvbnRhaW5lci5cbiAqL1xuZnVuY3Rpb24gaXNWYWxpZChub2RlLCBpZCkge1xuICBpZiAobm9kZSkge1xuICAgICEoaW50ZXJuYWxHZXRJRChub2RlKSA9PT0gaWQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0TW91bnQ6IFVuZXhwZWN0ZWQgbW9kaWZpY2F0aW9uIG9mIGAlc2AnLCBBVFRSX05BTUUpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIHZhciBjb250YWluZXIgPSBSZWFjdE1vdW50LmZpbmRSZWFjdENvbnRhaW5lckZvcklEKGlkKTtcbiAgICBpZiAoY29udGFpbmVyICYmIGNvbnRhaW5zTm9kZShjb250YWluZXIsIG5vZGUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2F1c2VzIHRoZSBjYWNoZSB0byBmb3JnZXQgYWJvdXQgb25lIFJlYWN0LXNwZWNpZmljIElELlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBUaGUgSUQgdG8gZm9yZ2V0LlxuICovXG5mdW5jdGlvbiBwdXJnZUlEKGlkKSB7XG4gIGRlbGV0ZSBub2RlQ2FjaGVbaWRdO1xufVxuXG52YXIgZGVlcGVzdE5vZGVTb0ZhciA9IG51bGw7XG5mdW5jdGlvbiBmaW5kRGVlcGVzdENhY2hlZEFuY2VzdG9ySW1wbChhbmNlc3RvcklEKSB7XG4gIHZhciBhbmNlc3RvciA9IG5vZGVDYWNoZVthbmNlc3RvcklEXTtcbiAgaWYgKGFuY2VzdG9yICYmIGlzVmFsaWQoYW5jZXN0b3IsIGFuY2VzdG9ySUQpKSB7XG4gICAgZGVlcGVzdE5vZGVTb0ZhciA9IGFuY2VzdG9yO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgbm9kZSBpc24ndCBwb3B1bGF0ZWQgaW4gdGhlIGNhY2hlLCBzbyBwcmVzdW1hYmx5IG5vbmUgb2YgaXRzXG4gICAgLy8gZGVzY2VuZGFudHMgYXJlLiBCcmVhayBvdXQgb2YgdGhlIGxvb3AuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBkZWVwZXN0IGNhY2hlZCBub2RlIHdob3NlIElEIGlzIGEgcHJlZml4IG9mIGB0YXJnZXRJRGAuXG4gKi9cbmZ1bmN0aW9uIGZpbmREZWVwZXN0Q2FjaGVkQW5jZXN0b3IodGFyZ2V0SUQpIHtcbiAgZGVlcGVzdE5vZGVTb0ZhciA9IG51bGw7XG4gIFJlYWN0SW5zdGFuY2VIYW5kbGVzLnRyYXZlcnNlQW5jZXN0b3JzKHRhcmdldElELCBmaW5kRGVlcGVzdENhY2hlZEFuY2VzdG9ySW1wbCk7XG5cbiAgdmFyIGZvdW5kTm9kZSA9IGRlZXBlc3ROb2RlU29GYXI7XG4gIGRlZXBlc3ROb2RlU29GYXIgPSBudWxsO1xuICByZXR1cm4gZm91bmROb2RlO1xufVxuXG4vKipcbiAqIE1vdW50cyB0aGlzIGNvbXBvbmVudCBhbmQgaW5zZXJ0cyBpdCBpbnRvIHRoZSBET00uXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIG1vdW50LlxuICogQHBhcmFtIHtzdHJpbmd9IHJvb3RJRCBET00gSUQgb2YgdGhlIHJvb3Qgbm9kZS5cbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIERPTSBlbGVtZW50IHRvIG1vdW50IGludG8uXG4gKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNob3VsZFJldXNlTWFya3VwIElmIHRydWUsIGRvIG5vdCBpbnNlcnQgbWFya3VwXG4gKi9cbmZ1bmN0aW9uIG1vdW50Q29tcG9uZW50SW50b05vZGUoY29tcG9uZW50SW5zdGFuY2UsIHJvb3RJRCwgY29udGFpbmVyLCB0cmFuc2FjdGlvbiwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpIHtcbiAgaWYgKFJlYWN0RE9NRmVhdHVyZUZsYWdzLnVzZUNyZWF0ZUVsZW1lbnQpIHtcbiAgICBjb250ZXh0ID0gYXNzaWduKHt9LCBjb250ZXh0KTtcbiAgICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NfTk9ERV9UWVBFKSB7XG4gICAgICBjb250ZXh0W293bmVyRG9jdW1lbnRDb250ZXh0S2V5XSA9IGNvbnRhaW5lcjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dFtvd25lckRvY3VtZW50Q29udGV4dEtleV0gPSBjb250YWluZXIub3duZXJEb2N1bWVudDtcbiAgICB9XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoY29udGV4dCA9PT0gZW1wdHlPYmplY3QpIHtcbiAgICAgIGNvbnRleHQgPSB7fTtcbiAgICB9XG4gICAgdmFyIHRhZyA9IGNvbnRhaW5lci5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnRleHRbdmFsaWRhdGVET01OZXN0aW5nLmFuY2VzdG9ySW5mb0NvbnRleHRLZXldID0gdmFsaWRhdGVET01OZXN0aW5nLnVwZGF0ZWRBbmNlc3RvckluZm8obnVsbCwgdGFnLCBudWxsKTtcbiAgfVxuICB2YXIgbWFya3VwID0gUmVhY3RSZWNvbmNpbGVyLm1vdW50Q29tcG9uZW50KGNvbXBvbmVudEluc3RhbmNlLCByb290SUQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgY29tcG9uZW50SW5zdGFuY2UuX3JlbmRlcmVkQ29tcG9uZW50Ll90b3BMZXZlbFdyYXBwZXIgPSBjb21wb25lbnRJbnN0YW5jZTtcbiAgUmVhY3RNb3VudC5fbW91bnRJbWFnZUludG9Ob2RlKG1hcmt1cCwgY29udGFpbmVyLCBzaG91bGRSZXVzZU1hcmt1cCwgdHJhbnNhY3Rpb24pO1xufVxuXG4vKipcbiAqIEJhdGNoZWQgbW91bnQuXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50SW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIG1vdW50LlxuICogQHBhcmFtIHtzdHJpbmd9IHJvb3RJRCBET00gSUQgb2YgdGhlIHJvb3Qgbm9kZS5cbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIERPTSBlbGVtZW50IHRvIG1vdW50IGludG8uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNob3VsZFJldXNlTWFya3VwIElmIHRydWUsIGRvIG5vdCBpbnNlcnQgbWFya3VwXG4gKi9cbmZ1bmN0aW9uIGJhdGNoZWRNb3VudENvbXBvbmVudEludG9Ob2RlKGNvbXBvbmVudEluc3RhbmNlLCByb290SUQsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpIHtcbiAgdmFyIHRyYW5zYWN0aW9uID0gUmVhY3RVcGRhdGVzLlJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24uZ2V0UG9vbGVkKFxuICAvKiBmb3JjZUhUTUwgKi9zaG91bGRSZXVzZU1hcmt1cCk7XG4gIHRyYW5zYWN0aW9uLnBlcmZvcm0obW91bnRDb21wb25lbnRJbnRvTm9kZSwgbnVsbCwgY29tcG9uZW50SW5zdGFuY2UsIHJvb3RJRCwgY29udGFpbmVyLCB0cmFuc2FjdGlvbiwgc2hvdWxkUmV1c2VNYXJrdXAsIGNvbnRleHQpO1xuICBSZWFjdFVwZGF0ZXMuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5yZWxlYXNlKHRyYW5zYWN0aW9uKTtcbn1cblxuLyoqXG4gKiBVbm1vdW50cyBhIGNvbXBvbmVudCBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBET00uXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gaW5zdGFuY2UgUmVhY3QgY29tcG9uZW50IGluc3RhbmNlLlxuICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gdW5tb3VudCBmcm9tLlxuICogQGZpbmFsXG4gKiBAaW50ZXJuYWxcbiAqIEBzZWUge1JlYWN0TW91bnQudW5tb3VudENvbXBvbmVudEF0Tm9kZX1cbiAqL1xuZnVuY3Rpb24gdW5tb3VudENvbXBvbmVudEZyb21Ob2RlKGluc3RhbmNlLCBjb250YWluZXIpIHtcbiAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQoaW5zdGFuY2UpO1xuXG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUpIHtcbiAgICBjb250YWluZXIgPSBjb250YWluZXIuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgLy8gaHR0cDovL2pzcGVyZi5jb20vZW1wdHlpbmctYS1ub2RlXG4gIHdoaWxlIChjb250YWluZXIubGFzdENoaWxkKSB7XG4gICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKGNvbnRhaW5lci5sYXN0Q2hpbGQpO1xuICB9XG59XG5cbi8qKlxuICogVHJ1ZSBpZiB0aGUgc3VwcGxpZWQgRE9NIG5vZGUgaGFzIGEgZGlyZWN0IFJlYWN0LXJlbmRlcmVkIGNoaWxkIHRoYXQgaXNcbiAqIG5vdCBhIFJlYWN0IHJvb3QgZWxlbWVudC4gVXNlZnVsIGZvciB3YXJuaW5nIGluIGByZW5kZXJgLFxuICogYHVubW91bnRDb21wb25lbnRBdE5vZGVgLCBldGMuXG4gKlxuICogQHBhcmFtIHs/RE9NRWxlbWVudH0gbm9kZSBUaGUgY2FuZGlkYXRlIERPTSBub2RlLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgRE9NIGVsZW1lbnQgY29udGFpbnMgYSBkaXJlY3QgY2hpbGQgdGhhdCB3YXNcbiAqIHJlbmRlcmVkIGJ5IFJlYWN0IGJ1dCBpcyBub3QgYSByb290IGVsZW1lbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gaGFzTm9uUm9vdFJlYWN0Q2hpbGQobm9kZSkge1xuICB2YXIgcmVhY3RSb290SUQgPSBnZXRSZWFjdFJvb3RJRChub2RlKTtcbiAgcmV0dXJuIHJlYWN0Um9vdElEID8gcmVhY3RSb290SUQgIT09IFJlYWN0SW5zdGFuY2VIYW5kbGVzLmdldFJlYWN0Um9vdElERnJvbU5vZGVJRChyZWFjdFJvb3RJRCkgOiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmaXJzdCAoZGVlcGVzdCkgYW5jZXN0b3Igb2YgYSBub2RlIHdoaWNoIGlzIHJlbmRlcmVkIGJ5IHRoaXMgY29weVxuICogb2YgUmVhY3QuXG4gKi9cbmZ1bmN0aW9uIGZpbmRGaXJzdFJlYWN0RE9NSW1wbChub2RlKSB7XG4gIC8vIFRoaXMgbm9kZSBtaWdodCBiZSBmcm9tIGFub3RoZXIgUmVhY3QgaW5zdGFuY2UsIHNvIHdlIG1ha2Ugc3VyZSBub3QgdG9cbiAgLy8gZXhhbWluZSB0aGUgbm9kZSBjYWNoZSBoZXJlXG4gIGZvciAoOyBub2RlICYmIG5vZGUucGFyZW50Tm9kZSAhPT0gbm9kZTsgbm9kZSA9IG5vZGUucGFyZW50Tm9kZSkge1xuICAgIGlmIChub2RlLm5vZGVUeXBlICE9PSAxKSB7XG4gICAgICAvLyBOb3QgYSBET01FbGVtZW50LCB0aGVyZWZvcmUgbm90IGEgUmVhY3QgY29tcG9uZW50XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdmFyIG5vZGVJRCA9IGludGVybmFsR2V0SUQobm9kZSk7XG4gICAgaWYgKCFub2RlSUQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YXIgcmVhY3RSb290SUQgPSBSZWFjdEluc3RhbmNlSGFuZGxlcy5nZXRSZWFjdFJvb3RJREZyb21Ob2RlSUQobm9kZUlEKTtcblxuICAgIC8vIElmIGNvbnRhaW5lcnNCeVJlYWN0Um9vdElEIGNvbnRhaW5zIHRoZSBjb250YWluZXIgd2UgZmluZCBieSBjcmF3bGluZyB1cFxuICAgIC8vIHRoZSB0cmVlLCB3ZSBrbm93IHRoYXQgdGhpcyBpbnN0YW5jZSBvZiBSZWFjdCByZW5kZXJlZCB0aGUgbm9kZS5cbiAgICAvLyBuYi4gaXNWYWxpZCdzIHN0cmF0ZWd5ICh3aXRoIGNvbnRhaW5zTm9kZSkgZG9lcyBub3Qgd29yayBiZWNhdXNlIHJlbmRlclxuICAgIC8vIHRyZWVzIG1heSBiZSBuZXN0ZWQgYW5kIHdlIGRvbid0IHdhbnQgYSBmYWxzZSBwb3NpdGl2ZSBpbiB0aGF0IGNhc2UuXG4gICAgdmFyIGN1cnJlbnQgPSBub2RlO1xuICAgIHZhciBsYXN0SUQ7XG4gICAgZG8ge1xuICAgICAgbGFzdElEID0gaW50ZXJuYWxHZXRJRChjdXJyZW50KTtcbiAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGU7XG4gICAgICBpZiAoY3VycmVudCA9PSBudWxsKSB7XG4gICAgICAgIC8vIFRoZSBwYXNzZWQtaW4gbm9kZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSBjb250YWluZXIgaXQgd2FzXG4gICAgICAgIC8vIG9yaWdpbmFsbHkgcmVuZGVyZWQgaW50by5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSB3aGlsZSAobGFzdElEICE9PSByZWFjdFJvb3RJRCk7XG5cbiAgICBpZiAoY3VycmVudCA9PT0gY29udGFpbmVyc0J5UmVhY3RSb290SURbcmVhY3RSb290SURdKSB7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGVtcG9yYXJ5ICg/KSBoYWNrIHNvIHRoYXQgd2UgY2FuIHN0b3JlIGFsbCB0b3AtbGV2ZWwgcGVuZGluZyB1cGRhdGVzIG9uXG4gKiBjb21wb3NpdGVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHdvcnJ5IGFib3V0IGRpZmZlcmVudCB0eXBlcyBvZiBjb21wb25lbnRzXG4gKiBoZXJlLlxuICovXG52YXIgVG9wTGV2ZWxXcmFwcGVyID0gZnVuY3Rpb24gKCkge307XG5Ub3BMZXZlbFdyYXBwZXIucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIFRvcExldmVsV3JhcHBlci5kaXNwbGF5TmFtZSA9ICdUb3BMZXZlbFdyYXBwZXInO1xufVxuVG9wTGV2ZWxXcmFwcGVyLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIHRoaXMucHJvcHMgaXMgYWN0dWFsbHkgYSBSZWFjdEVsZW1lbnRcbiAgcmV0dXJuIHRoaXMucHJvcHM7XG59O1xuXG4vKipcbiAqIE1vdW50aW5nIGlzIHRoZSBwcm9jZXNzIG9mIGluaXRpYWxpemluZyBhIFJlYWN0IGNvbXBvbmVudCBieSBjcmVhdGluZyBpdHNcbiAqIHJlcHJlc2VudGF0aXZlIERPTSBlbGVtZW50cyBhbmQgaW5zZXJ0aW5nIHRoZW0gaW50byBhIHN1cHBsaWVkIGBjb250YWluZXJgLlxuICogQW55IHByaW9yIGNvbnRlbnQgaW5zaWRlIGBjb250YWluZXJgIGlzIGRlc3Ryb3llZCBpbiB0aGUgcHJvY2Vzcy5cbiAqXG4gKiAgIFJlYWN0TW91bnQucmVuZGVyKFxuICogICAgIGNvbXBvbmVudCxcbiAqICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJylcbiAqICAgKTtcbiAqXG4gKiAgIDxkaXYgaWQ9XCJjb250YWluZXJcIj4gICAgICAgICAgICAgICAgICAgPC0tIFN1cHBsaWVkIGBjb250YWluZXJgLlxuICogICAgIDxkaXYgZGF0YS1yZWFjdGlkPVwiLjNcIj4gICAgICAgICAgICAgIDwtLSBSZW5kZXJlZCByZWFjdFJvb3Qgb2YgUmVhY3RcbiAqICAgICAgIC8vIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5cbiAqICAgICA8L2Rpdj5cbiAqICAgPC9kaXY+XG4gKlxuICogSW5zaWRlIG9mIGBjb250YWluZXJgLCB0aGUgZmlyc3QgZWxlbWVudCByZW5kZXJlZCBpcyB0aGUgXCJyZWFjdFJvb3RcIi5cbiAqL1xudmFyIFJlYWN0TW91bnQgPSB7XG5cbiAgVG9wTGV2ZWxXcmFwcGVyOiBUb3BMZXZlbFdyYXBwZXIsXG5cbiAgLyoqIEV4cG9zZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyAqKi9cbiAgX2luc3RhbmNlc0J5UmVhY3RSb290SUQ6IGluc3RhbmNlc0J5UmVhY3RSb290SUQsXG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgYSBob29rIHByb3ZpZGVkIHRvIHN1cHBvcnQgcmVuZGVyaW5nIFJlYWN0IGNvbXBvbmVudHMgd2hpbGVcbiAgICogZW5zdXJpbmcgdGhhdCB0aGUgYXBwYXJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIGl0cyBgY29udGFpbmVyYCBkb2VzIG5vdFxuICAgKiBjaGFuZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIFRoZSBgY29udGFpbmVyYCBiZWluZyByZW5kZXJlZCBpbnRvLlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSByZW5kZXJDYWxsYmFjayBUaGlzIG11c3QgYmUgY2FsbGVkIG9uY2UgdG8gZG8gdGhlIHJlbmRlci5cbiAgICovXG4gIHNjcm9sbE1vbml0b3I6IGZ1bmN0aW9uIChjb250YWluZXIsIHJlbmRlckNhbGxiYWNrKSB7XG4gICAgcmVuZGVyQ2FsbGJhY2soKTtcbiAgfSxcblxuICAvKipcbiAgICogVGFrZSBhIGNvbXBvbmVudCB0aGF0J3MgYWxyZWFkeSBtb3VudGVkIGludG8gdGhlIERPTSBhbmQgcmVwbGFjZSBpdHMgcHJvcHNcbiAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gcHJldkNvbXBvbmVudCBjb21wb25lbnQgaW5zdGFuY2UgYWxyZWFkeSBpbiB0aGUgRE9NXG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0RWxlbWVudCBjb21wb25lbnQgaW5zdGFuY2UgdG8gcmVuZGVyXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIGNvbnRhaW5lciB0byByZW5kZXIgaW50b1xuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgZnVuY3Rpb24gdHJpZ2dlcmVkIG9uIGNvbXBsZXRpb25cbiAgICovXG4gIF91cGRhdGVSb290Q29tcG9uZW50OiBmdW5jdGlvbiAocHJldkNvbXBvbmVudCwgbmV4dEVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAgICBSZWFjdE1vdW50LnNjcm9sbE1vbml0b3IoY29udGFpbmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVFbGVtZW50SW50ZXJuYWwocHJldkNvbXBvbmVudCwgbmV4dEVsZW1lbnQpO1xuICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZUNhbGxiYWNrSW50ZXJuYWwocHJldkNvbXBvbmVudCwgY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIFJlY29yZCB0aGUgcm9vdCBlbGVtZW50IGluIGNhc2UgaXQgbGF0ZXIgZ2V0cyB0cmFuc3BsYW50ZWQuXG4gICAgICByb290RWxlbWVudHNCeVJlYWN0Um9vdElEW2dldFJlYWN0Um9vdElEKGNvbnRhaW5lcildID0gZ2V0UmVhY3RSb290RWxlbWVudEluQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXZDb21wb25lbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY29tcG9uZW50IGludG8gdGhlIGluc3RhbmNlIG1hcCBhbmQgc3RhcnRzIHNjcm9sbCB2YWx1ZVxuICAgKiBtb25pdG9yaW5nXG4gICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IG5leHRDb21wb25lbnQgY29tcG9uZW50IGluc3RhbmNlIHRvIHJlbmRlclxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGNvbnRhaW5lciBjb250YWluZXIgdG8gcmVuZGVyIGludG9cbiAgICogQHJldHVybiB7c3RyaW5nfSByZWFjdFJvb3QgSUQgcHJlZml4XG4gICAqL1xuICBfcmVnaXN0ZXJDb21wb25lbnQ6IGZ1bmN0aW9uIChuZXh0Q29tcG9uZW50LCBjb250YWluZXIpIHtcbiAgICAhKGNvbnRhaW5lciAmJiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREVfVFlQRSB8fCBjb250YWluZXIubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUgfHwgY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFX1RZUEUpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdfcmVnaXN0ZXJDb21wb25lbnQoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuZW5zdXJlU2Nyb2xsVmFsdWVNb25pdG9yaW5nKCk7XG5cbiAgICB2YXIgcmVhY3RSb290SUQgPSBSZWFjdE1vdW50LnJlZ2lzdGVyQ29udGFpbmVyKGNvbnRhaW5lcik7XG4gICAgaW5zdGFuY2VzQnlSZWFjdFJvb3RJRFtyZWFjdFJvb3RJRF0gPSBuZXh0Q29tcG9uZW50O1xuICAgIHJldHVybiByZWFjdFJvb3RJRDtcbiAgfSxcblxuICAvKipcbiAgICogUmVuZGVyIGEgbmV3IGNvbXBvbmVudCBpbnRvIHRoZSBET00uXG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0RWxlbWVudCBlbGVtZW50IHRvIHJlbmRlclxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGNvbnRhaW5lciBjb250YWluZXIgdG8gcmVuZGVyIGludG9cbiAgICogQHBhcmFtIHtib29sZWFufSBzaG91bGRSZXVzZU1hcmt1cCBpZiB3ZSBzaG91bGQgc2tpcCB0aGUgbWFya3VwIGluc2VydGlvblxuICAgKiBAcmV0dXJuIHtSZWFjdENvbXBvbmVudH0gbmV4dENvbXBvbmVudFxuICAgKi9cbiAgX3JlbmRlck5ld1Jvb3RDb21wb25lbnQ6IGZ1bmN0aW9uIChuZXh0RWxlbWVudCwgY29udGFpbmVyLCBzaG91bGRSZXVzZU1hcmt1cCwgY29udGV4dCkge1xuICAgIC8vIFZhcmlvdXMgcGFydHMgb2Ygb3VyIGNvZGUgKHN1Y2ggYXMgUmVhY3RDb21wb3NpdGVDb21wb25lbnQnc1xuICAgIC8vIF9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQpIGFzc3VtZSB0aGF0IGNhbGxzIHRvIHJlbmRlciBhcmVuJ3QgbmVzdGVkO1xuICAgIC8vIHZlcmlmeSB0aGF0IHRoYXQncyB0aGUgY2FzZS5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID09IG51bGwsICdfcmVuZGVyTmV3Um9vdENvbXBvbmVudCgpOiBSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uICcgKyAnb2YgcHJvcHMgYW5kIHN0YXRlOyB0cmlnZ2VyaW5nIG5lc3RlZCBjb21wb25lbnQgdXBkYXRlcyBmcm9tICcgKyAncmVuZGVyIGlzIG5vdCBhbGxvd2VkLiBJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gJyArICdjb21wb25lbnREaWRVcGRhdGUuIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG5cbiAgICB2YXIgY29tcG9uZW50SW5zdGFuY2UgPSBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50KG5leHRFbGVtZW50LCBudWxsKTtcbiAgICB2YXIgcmVhY3RSb290SUQgPSBSZWFjdE1vdW50Ll9yZWdpc3RlckNvbXBvbmVudChjb21wb25lbnRJbnN0YW5jZSwgY29udGFpbmVyKTtcblxuICAgIC8vIFRoZSBpbml0aWFsIHJlbmRlciBpcyBzeW5jaHJvbm91cyBidXQgYW55IHVwZGF0ZXMgdGhhdCBoYXBwZW4gZHVyaW5nXG4gICAgLy8gcmVuZGVyaW5nLCBpbiBjb21wb25lbnRXaWxsTW91bnQgb3IgY29tcG9uZW50RGlkTW91bnQsIHdpbGwgYmUgYmF0Y2hlZFxuICAgIC8vIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBiYXRjaGluZyBzdHJhdGVneS5cblxuICAgIFJlYWN0VXBkYXRlcy5iYXRjaGVkVXBkYXRlcyhiYXRjaGVkTW91bnRDb21wb25lbnRJbnRvTm9kZSwgY29tcG9uZW50SW5zdGFuY2UsIHJlYWN0Um9vdElELCBjb250YWluZXIsIHNob3VsZFJldXNlTWFya3VwLCBjb250ZXh0KTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBSZWNvcmQgdGhlIHJvb3QgZWxlbWVudCBpbiBjYXNlIGl0IGxhdGVyIGdldHMgdHJhbnNwbGFudGVkLlxuICAgICAgcm9vdEVsZW1lbnRzQnlSZWFjdFJvb3RJRFtyZWFjdFJvb3RJRF0gPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50SW5zdGFuY2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBSZWFjdCBjb21wb25lbnQgaW50byB0aGUgRE9NIGluIHRoZSBzdXBwbGllZCBgY29udGFpbmVyYC5cbiAgICpcbiAgICogSWYgdGhlIFJlYWN0IGNvbXBvbmVudCB3YXMgcHJldmlvdXNseSByZW5kZXJlZCBpbnRvIGBjb250YWluZXJgLCB0aGlzIHdpbGxcbiAgICogcGVyZm9ybSBhbiB1cGRhdGUgb24gaXQgYW5kIG9ubHkgbXV0YXRlIHRoZSBET00gYXMgbmVjZXNzYXJ5IHRvIHJlZmxlY3QgdGhlXG4gICAqIGxhdGVzdCBSZWFjdCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDb21wb25lbnR9IHBhcmVudENvbXBvbmVudCBUaGUgY29uY2VwdHVhbCBwYXJlbnQgb2YgdGhpcyByZW5kZXIgdHJlZS5cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRFbGVtZW50IENvbXBvbmVudCBlbGVtZW50IHRvIHJlbmRlci5cbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgdG8gcmVuZGVyIGludG8uXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbiB0cmlnZ2VyZWQgb24gY29tcGxldGlvblxuICAgKiBAcmV0dXJuIHtSZWFjdENvbXBvbmVudH0gQ29tcG9uZW50IGluc3RhbmNlIHJlbmRlcmVkIGluIGBjb250YWluZXJgLlxuICAgKi9cbiAgcmVuZGVyU3VidHJlZUludG9Db250YWluZXI6IGZ1bmN0aW9uIChwYXJlbnRDb21wb25lbnQsIG5leHRFbGVtZW50LCBjb250YWluZXIsIGNhbGxiYWNrKSB7XG4gICAgIShwYXJlbnRDb21wb25lbnQgIT0gbnVsbCAmJiBwYXJlbnRDb21wb25lbnQuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSAhPSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdwYXJlbnRDb21wb25lbnQgbXVzdCBiZSBhIHZhbGlkIFJlYWN0IENvbXBvbmVudCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gUmVhY3RNb3VudC5fcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBuZXh0RWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjayk7XG4gIH0sXG5cbiAgX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyOiBmdW5jdGlvbiAocGFyZW50Q29tcG9uZW50LCBuZXh0RWxlbWVudCwgY29udGFpbmVyLCBjYWxsYmFjaykge1xuICAgICFSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQobmV4dEVsZW1lbnQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0RE9NLnJlbmRlcigpOiBJbnZhbGlkIGNvbXBvbmVudCBlbGVtZW50LiVzJywgdHlwZW9mIG5leHRFbGVtZW50ID09PSAnc3RyaW5nJyA/ICcgSW5zdGVhZCBvZiBwYXNzaW5nIGFuIGVsZW1lbnQgc3RyaW5nLCBtYWtlIHN1cmUgdG8gaW5zdGFudGlhdGUgJyArICdpdCBieSBwYXNzaW5nIGl0IHRvIFJlYWN0LmNyZWF0ZUVsZW1lbnQuJyA6IHR5cGVvZiBuZXh0RWxlbWVudCA9PT0gJ2Z1bmN0aW9uJyA/ICcgSW5zdGVhZCBvZiBwYXNzaW5nIGEgY29tcG9uZW50IGNsYXNzLCBtYWtlIHN1cmUgdG8gaW5zdGFudGlhdGUgJyArICdpdCBieSBwYXNzaW5nIGl0IHRvIFJlYWN0LmNyZWF0ZUVsZW1lbnQuJyA6XG4gICAgLy8gQ2hlY2sgaWYgaXQgcXVhY2tzIGxpa2UgYW4gZWxlbWVudFxuICAgIG5leHRFbGVtZW50ICE9IG51bGwgJiYgbmV4dEVsZW1lbnQucHJvcHMgIT09IHVuZGVmaW5lZCA/ICcgVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IHVuaW50ZW50aW9uYWxseSBsb2FkaW5nIHR3byBpbmRlcGVuZGVudCAnICsgJ2NvcGllcyBvZiBSZWFjdC4nIDogJycpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFjb250YWluZXIgfHwgIWNvbnRhaW5lci50YWdOYW1lIHx8IGNvbnRhaW5lci50YWdOYW1lLnRvVXBwZXJDYXNlKCkgIT09ICdCT0RZJywgJ3JlbmRlcigpOiBSZW5kZXJpbmcgY29tcG9uZW50cyBkaXJlY3RseSBpbnRvIGRvY3VtZW50LmJvZHkgaXMgJyArICdkaXNjb3VyYWdlZCwgc2luY2UgaXRzIGNoaWxkcmVuIGFyZSBvZnRlbiBtYW5pcHVsYXRlZCBieSB0aGlyZC1wYXJ0eSAnICsgJ3NjcmlwdHMgYW5kIGJyb3dzZXIgZXh0ZW5zaW9ucy4gVGhpcyBtYXkgbGVhZCB0byBzdWJ0bGUgJyArICdyZWNvbmNpbGlhdGlvbiBpc3N1ZXMuIFRyeSByZW5kZXJpbmcgaW50byBhIGNvbnRhaW5lciBlbGVtZW50IGNyZWF0ZWQgJyArICdmb3IgeW91ciBhcHAuJykgOiB1bmRlZmluZWQ7XG5cbiAgICB2YXIgbmV4dFdyYXBwZWRFbGVtZW50ID0gbmV3IFJlYWN0RWxlbWVudChUb3BMZXZlbFdyYXBwZXIsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGwsIG5leHRFbGVtZW50KTtcblxuICAgIHZhciBwcmV2Q29tcG9uZW50ID0gaW5zdGFuY2VzQnlSZWFjdFJvb3RJRFtnZXRSZWFjdFJvb3RJRChjb250YWluZXIpXTtcblxuICAgIGlmIChwcmV2Q29tcG9uZW50KSB7XG4gICAgICB2YXIgcHJldldyYXBwZWRFbGVtZW50ID0gcHJldkNvbXBvbmVudC5fY3VycmVudEVsZW1lbnQ7XG4gICAgICB2YXIgcHJldkVsZW1lbnQgPSBwcmV2V3JhcHBlZEVsZW1lbnQucHJvcHM7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQocHJldkVsZW1lbnQsIG5leHRFbGVtZW50KSkge1xuICAgICAgICB2YXIgcHVibGljSW5zdCA9IHByZXZDb21wb25lbnQuX3JlbmRlcmVkQ29tcG9uZW50LmdldFB1YmxpY0luc3RhbmNlKCk7XG4gICAgICAgIHZhciB1cGRhdGVkQ2FsbGJhY2sgPSBjYWxsYmFjayAmJiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2suY2FsbChwdWJsaWNJbnN0KTtcbiAgICAgICAgfTtcbiAgICAgICAgUmVhY3RNb3VudC5fdXBkYXRlUm9vdENvbXBvbmVudChwcmV2Q29tcG9uZW50LCBuZXh0V3JhcHBlZEVsZW1lbnQsIGNvbnRhaW5lciwgdXBkYXRlZENhbGxiYWNrKTtcbiAgICAgICAgcmV0dXJuIHB1YmxpY0luc3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBSZWFjdE1vdW50LnVubW91bnRDb21wb25lbnRBdE5vZGUoY29udGFpbmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcmVhY3RSb290RWxlbWVudCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgIHZhciBjb250YWluZXJIYXNSZWFjdE1hcmt1cCA9IHJlYWN0Um9vdEVsZW1lbnQgJiYgISFpbnRlcm5hbEdldElEKHJlYWN0Um9vdEVsZW1lbnQpO1xuICAgIHZhciBjb250YWluZXJIYXNOb25Sb290UmVhY3RDaGlsZCA9IGhhc05vblJvb3RSZWFjdENoaWxkKGNvbnRhaW5lcik7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWNvbnRhaW5lckhhc05vblJvb3RSZWFjdENoaWxkLCAncmVuZGVyKC4uLik6IFJlcGxhY2luZyBSZWFjdC1yZW5kZXJlZCBjaGlsZHJlbiB3aXRoIGEgbmV3IHJvb3QgJyArICdjb21wb25lbnQuIElmIHlvdSBpbnRlbmRlZCB0byB1cGRhdGUgdGhlIGNoaWxkcmVuIG9mIHRoaXMgbm9kZSwgJyArICd5b3Ugc2hvdWxkIGluc3RlYWQgaGF2ZSB0aGUgZXhpc3RpbmcgY2hpbGRyZW4gdXBkYXRlIHRoZWlyIHN0YXRlICcgKyAnYW5kIHJlbmRlciB0aGUgbmV3IGNvbXBvbmVudHMgaW5zdGVhZCBvZiBjYWxsaW5nIFJlYWN0RE9NLnJlbmRlci4nKSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCFjb250YWluZXJIYXNSZWFjdE1hcmt1cCB8fCByZWFjdFJvb3RFbGVtZW50Lm5leHRTaWJsaW5nKSB7XG4gICAgICAgIHZhciByb290RWxlbWVudFNpYmxpbmcgPSByZWFjdFJvb3RFbGVtZW50O1xuICAgICAgICB3aGlsZSAocm9vdEVsZW1lbnRTaWJsaW5nKSB7XG4gICAgICAgICAgaWYgKGludGVybmFsR2V0SUQocm9vdEVsZW1lbnRTaWJsaW5nKSkge1xuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdyZW5kZXIoKTogVGFyZ2V0IG5vZGUgaGFzIG1hcmt1cCByZW5kZXJlZCBieSBSZWFjdCwgYnV0IHRoZXJlICcgKyAnYXJlIHVucmVsYXRlZCBub2RlcyBhcyB3ZWxsLiBUaGlzIGlzIG1vc3QgY29tbW9ubHkgY2F1c2VkIGJ5ICcgKyAnd2hpdGUtc3BhY2UgaW5zZXJ0ZWQgYXJvdW5kIHNlcnZlci1yZW5kZXJlZCBtYXJrdXAuJykgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgcm9vdEVsZW1lbnRTaWJsaW5nID0gcm9vdEVsZW1lbnRTaWJsaW5nLm5leHRTaWJsaW5nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNob3VsZFJldXNlTWFya3VwID0gY29udGFpbmVySGFzUmVhY3RNYXJrdXAgJiYgIXByZXZDb21wb25lbnQgJiYgIWNvbnRhaW5lckhhc05vblJvb3RSZWFjdENoaWxkO1xuICAgIHZhciBjb21wb25lbnQgPSBSZWFjdE1vdW50Ll9yZW5kZXJOZXdSb290Q29tcG9uZW50KG5leHRXcmFwcGVkRWxlbWVudCwgY29udGFpbmVyLCBzaG91bGRSZXVzZU1hcmt1cCwgcGFyZW50Q29tcG9uZW50ICE9IG51bGwgPyBwYXJlbnRDb21wb25lbnQuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZS5fcHJvY2Vzc0NoaWxkQ29udGV4dChwYXJlbnRDb21wb25lbnQuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZS5fY29udGV4dCkgOiBlbXB0eU9iamVjdCkuX3JlbmRlcmVkQ29tcG9uZW50LmdldFB1YmxpY0luc3RhbmNlKCk7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBjYWxsYmFjay5jYWxsKGNvbXBvbmVudCk7XG4gICAgfVxuICAgIHJldHVybiBjb21wb25lbnQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBSZWFjdCBjb21wb25lbnQgaW50byB0aGUgRE9NIGluIHRoZSBzdXBwbGllZCBgY29udGFpbmVyYC5cbiAgICpcbiAgICogSWYgdGhlIFJlYWN0IGNvbXBvbmVudCB3YXMgcHJldmlvdXNseSByZW5kZXJlZCBpbnRvIGBjb250YWluZXJgLCB0aGlzIHdpbGxcbiAgICogcGVyZm9ybSBhbiB1cGRhdGUgb24gaXQgYW5kIG9ubHkgbXV0YXRlIHRoZSBET00gYXMgbmVjZXNzYXJ5IHRvIHJlZmxlY3QgdGhlXG4gICAqIGxhdGVzdCBSZWFjdCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0RWxlbWVudCBDb21wb25lbnQgZWxlbWVudCB0byByZW5kZXIuXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIERPTSBlbGVtZW50IHRvIHJlbmRlciBpbnRvLlxuICAgKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgZnVuY3Rpb24gdHJpZ2dlcmVkIG9uIGNvbXBsZXRpb25cbiAgICogQHJldHVybiB7UmVhY3RDb21wb25lbnR9IENvbXBvbmVudCBpbnN0YW5jZSByZW5kZXJlZCBpbiBgY29udGFpbmVyYC5cbiAgICovXG4gIHJlbmRlcjogZnVuY3Rpb24gKG5leHRFbGVtZW50LCBjb250YWluZXIsIGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIFJlYWN0TW91bnQuX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKG51bGwsIG5leHRFbGVtZW50LCBjb250YWluZXIsIGNhbGxiYWNrKTtcbiAgfSxcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY29udGFpbmVyIG5vZGUgaW50byB3aGljaCBSZWFjdCBjb21wb25lbnRzIHdpbGwgYmUgcmVuZGVyZWQuXG4gICAqIFRoaXMgYWxzbyBjcmVhdGVzIHRoZSBcInJlYWN0Um9vdFwiIElEIHRoYXQgd2lsbCBiZSBhc3NpZ25lZCB0byB0aGUgZWxlbWVudFxuICAgKiByZW5kZXJlZCB3aXRoaW4uXG4gICAqXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gY29udGFpbmVyIERPTSBlbGVtZW50IHRvIHJlZ2lzdGVyIGFzIGEgY29udGFpbmVyLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBcInJlYWN0Um9vdFwiIElEIG9mIGVsZW1lbnRzIHJlbmRlcmVkIHdpdGhpbi5cbiAgICovXG4gIHJlZ2lzdGVyQ29udGFpbmVyOiBmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gICAgdmFyIHJlYWN0Um9vdElEID0gZ2V0UmVhY3RSb290SUQoY29udGFpbmVyKTtcbiAgICBpZiAocmVhY3RSb290SUQpIHtcbiAgICAgIC8vIElmIG9uZSBleGlzdHMsIG1ha2Ugc3VyZSBpdCBpcyBhIHZhbGlkIFwicmVhY3RSb290XCIgSUQuXG4gICAgICByZWFjdFJvb3RJRCA9IFJlYWN0SW5zdGFuY2VIYW5kbGVzLmdldFJlYWN0Um9vdElERnJvbU5vZGVJRChyZWFjdFJvb3RJRCk7XG4gICAgfVxuICAgIGlmICghcmVhY3RSb290SUQpIHtcbiAgICAgIC8vIE5vIHZhbGlkIFwicmVhY3RSb290XCIgSUQgZm91bmQsIGNyZWF0ZSBvbmUuXG4gICAgICByZWFjdFJvb3RJRCA9IFJlYWN0SW5zdGFuY2VIYW5kbGVzLmNyZWF0ZVJlYWN0Um9vdElEKCk7XG4gICAgfVxuICAgIGNvbnRhaW5lcnNCeVJlYWN0Um9vdElEW3JlYWN0Um9vdElEXSA9IGNvbnRhaW5lcjtcbiAgICByZXR1cm4gcmVhY3RSb290SUQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVubW91bnRzIGFuZCBkZXN0cm95cyB0aGUgUmVhY3QgY29tcG9uZW50IHJlbmRlcmVkIGluIHRoZSBgY29udGFpbmVyYC5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBjb250YWluZXIgRE9NIGVsZW1lbnQgY29udGFpbmluZyBhIFJlYWN0IGNvbXBvbmVudC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBhIGNvbXBvbmVudCB3YXMgZm91bmQgaW4gYW5kIHVubW91bnRlZCBmcm9tXG4gICAqICAgICAgICAgICAgICAgICAgIGBjb250YWluZXJgXG4gICAqL1xuICB1bm1vdW50Q29tcG9uZW50QXROb2RlOiBmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gICAgLy8gVmFyaW91cyBwYXJ0cyBvZiBvdXIgY29kZSAoc3VjaCBhcyBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCdzXG4gICAgLy8gX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCkgYXNzdW1lIHRoYXQgY2FsbHMgdG8gcmVuZGVyIGFyZW4ndCBuZXN0ZWQ7XG4gICAgLy8gdmVyaWZ5IHRoYXQgdGhhdCdzIHRoZSBjYXNlLiAoU3RyaWN0bHkgc3BlYWtpbmcsIHVubW91bnRpbmcgd29uJ3QgY2F1c2UgYVxuICAgIC8vIHJlbmRlciBidXQgd2Ugc3RpbGwgZG9uJ3QgZXhwZWN0IHRvIGJlIGluIGEgcmVuZGVyIGNhbGwgaGVyZS4pXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAndW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uICcgKyAnb2YgcHJvcHMgYW5kIHN0YXRlOyB0cmlnZ2VyaW5nIG5lc3RlZCBjb21wb25lbnQgdXBkYXRlcyBmcm9tIHJlbmRlciAnICsgJ2lzIG5vdCBhbGxvd2VkLiBJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gJyArICdjb21wb25lbnREaWRVcGRhdGUuIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLicsIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG5cbiAgICAhKGNvbnRhaW5lciAmJiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREVfVFlQRSB8fCBjb250YWluZXIubm9kZVR5cGUgPT09IERPQ19OT0RFX1RZUEUgfHwgY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFX1RZUEUpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd1bm1vdW50Q29tcG9uZW50QXROb2RlKC4uLik6IFRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgdmFyIHJlYWN0Um9vdElEID0gZ2V0UmVhY3RSb290SUQoY29udGFpbmVyKTtcbiAgICB2YXIgY29tcG9uZW50ID0gaW5zdGFuY2VzQnlSZWFjdFJvb3RJRFtyZWFjdFJvb3RJRF07XG4gICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBub2RlIGJlaW5nIHVubW91bnRlZCB3YXMgcmVuZGVyZWQgYnkgUmVhY3QsIGJ1dCBpc24ndCBhXG4gICAgICAvLyByb290IG5vZGUuXG4gICAgICB2YXIgY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSBoYXNOb25Sb290UmVhY3RDaGlsZChjb250YWluZXIpO1xuXG4gICAgICAvLyBDaGVjayBpZiB0aGUgY29udGFpbmVyIGl0c2VsZiBpcyBhIFJlYWN0IHJvb3Qgbm9kZS5cbiAgICAgIHZhciBjb250YWluZXJJRCA9IGludGVybmFsR2V0SUQoY29udGFpbmVyKTtcbiAgICAgIHZhciBpc0NvbnRhaW5lclJlYWN0Um9vdCA9IGNvbnRhaW5lcklEICYmIGNvbnRhaW5lcklEID09PSBSZWFjdEluc3RhbmNlSGFuZGxlcy5nZXRSZWFjdFJvb3RJREZyb21Ob2RlSUQoY29udGFpbmVySUQpO1xuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghY29udGFpbmVySGFzTm9uUm9vdFJlYWN0Q2hpbGQsICd1bm1vdW50Q29tcG9uZW50QXROb2RlKCk6IFRoZSBub2RlIHlvdVxcJ3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCAnICsgJ3dhcyByZW5kZXJlZCBieSBSZWFjdCBhbmQgaXMgbm90IGEgdG9wLWxldmVsIGNvbnRhaW5lci4gJXMnLCBpc0NvbnRhaW5lclJlYWN0Um9vdCA/ICdZb3UgbWF5IGhhdmUgYWNjaWRlbnRhbGx5IHBhc3NlZCBpbiBhIFJlYWN0IHJvb3Qgbm9kZSBpbnN0ZWFkICcgKyAnb2YgaXRzIGNvbnRhaW5lci4nIDogJ0luc3RlYWQsIGhhdmUgdGhlIHBhcmVudCBjb21wb25lbnQgdXBkYXRlIGl0cyBzdGF0ZSBhbmQgJyArICdyZXJlbmRlciBpbiBvcmRlciB0byByZW1vdmUgdGhpcyBjb21wb25lbnQuJykgOiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgUmVhY3RVcGRhdGVzLmJhdGNoZWRVcGRhdGVzKHVubW91bnRDb21wb25lbnRGcm9tTm9kZSwgY29tcG9uZW50LCBjb250YWluZXIpO1xuICAgIGRlbGV0ZSBpbnN0YW5jZXNCeVJlYWN0Um9vdElEW3JlYWN0Um9vdElEXTtcbiAgICBkZWxldGUgY29udGFpbmVyc0J5UmVhY3RSb290SURbcmVhY3RSb290SURdO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBkZWxldGUgcm9vdEVsZW1lbnRzQnlSZWFjdFJvb3RJRFtyZWFjdFJvb3RJRF07XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgY29udGFpbmVyIERPTSBlbGVtZW50IHRoYXQgY29udGFpbnMgUmVhY3QgY29tcG9uZW50IHRvIHdoaWNoIHRoZVxuICAgKiBzdXBwbGllZCBET00gYGlkYCBiZWxvbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgVGhlIElEIG9mIGFuIGVsZW1lbnQgcmVuZGVyZWQgYnkgYSBSZWFjdCBjb21wb25lbnQuXG4gICAqIEByZXR1cm4gez9ET01FbGVtZW50fSBET00gZWxlbWVudCB0aGF0IGNvbnRhaW5zIHRoZSBgaWRgLlxuICAgKi9cbiAgZmluZFJlYWN0Q29udGFpbmVyRm9ySUQ6IGZ1bmN0aW9uIChpZCkge1xuICAgIHZhciByZWFjdFJvb3RJRCA9IFJlYWN0SW5zdGFuY2VIYW5kbGVzLmdldFJlYWN0Um9vdElERnJvbU5vZGVJRChpZCk7XG4gICAgdmFyIGNvbnRhaW5lciA9IGNvbnRhaW5lcnNCeVJlYWN0Um9vdElEW3JlYWN0Um9vdElEXTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgcm9vdEVsZW1lbnQgPSByb290RWxlbWVudHNCeVJlYWN0Um9vdElEW3JlYWN0Um9vdElEXTtcbiAgICAgIGlmIChyb290RWxlbWVudCAmJiByb290RWxlbWVudC5wYXJlbnROb2RlICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoXG4gICAgICAgIC8vIENhbGwgaW50ZXJuYWxHZXRJRCBoZXJlIGJlY2F1c2UgZ2V0SUQgY2FsbHMgaXNWYWxpZCB3aGljaCBjYWxsc1xuICAgICAgICAvLyBmaW5kUmVhY3RDb250YWluZXJGb3JJRCAodGhpcyBmdW5jdGlvbikuXG4gICAgICAgIGludGVybmFsR2V0SUQocm9vdEVsZW1lbnQpID09PSByZWFjdFJvb3RJRCwgJ1JlYWN0TW91bnQ6IFJvb3QgZWxlbWVudCBJRCBkaWZmZXJlZCBmcm9tIHJlYWN0Um9vdElELicpIDogdW5kZWZpbmVkO1xuICAgICAgICB2YXIgY29udGFpbmVyQ2hpbGQgPSBjb250YWluZXIuZmlyc3RDaGlsZDtcbiAgICAgICAgaWYgKGNvbnRhaW5lckNoaWxkICYmIHJlYWN0Um9vdElEID09PSBpbnRlcm5hbEdldElEKGNvbnRhaW5lckNoaWxkKSkge1xuICAgICAgICAgIC8vIElmIHRoZSBjb250YWluZXIgaGFzIGEgbmV3IGNoaWxkIHdpdGggdGhlIHNhbWUgSUQgYXMgdGhlIG9sZFxuICAgICAgICAgIC8vIHJvb3QgZWxlbWVudCwgdGhlbiByb290RWxlbWVudHNCeVJlYWN0Um9vdElEW3JlYWN0Um9vdElEXSBpc1xuICAgICAgICAgIC8vIGp1c3Qgc3RhbGUgYW5kIG5lZWRzIHRvIGJlIHVwZGF0ZWQuIFRoZSBjYXNlIHRoYXQgZGVzZXJ2ZXMgYVxuICAgICAgICAgIC8vIHdhcm5pbmcgaXMgd2hlbiB0aGUgY29udGFpbmVyIGlzIGVtcHR5LlxuICAgICAgICAgIHJvb3RFbGVtZW50c0J5UmVhY3RSb290SURbcmVhY3RSb290SURdID0gY29udGFpbmVyQ2hpbGQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdSZWFjdE1vdW50OiBSb290IGVsZW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIGl0cyBvcmlnaW5hbCAnICsgJ2NvbnRhaW5lci4gTmV3IGNvbnRhaW5lcjogJXMnLCByb290RWxlbWVudC5wYXJlbnROb2RlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb250YWluZXI7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbmRzIGFuIGVsZW1lbnQgcmVuZGVyZWQgYnkgUmVhY3Qgd2l0aCB0aGUgc3VwcGxpZWQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBJRCBvZiBhIERPTSBub2RlIGluIHRoZSBSZWFjdCBjb21wb25lbnQuXG4gICAqIEByZXR1cm4ge0RPTUVsZW1lbnR9IFJvb3QgRE9NIG5vZGUgb2YgdGhlIFJlYWN0IGNvbXBvbmVudC5cbiAgICovXG4gIGZpbmRSZWFjdE5vZGVCeUlEOiBmdW5jdGlvbiAoaWQpIHtcbiAgICB2YXIgcmVhY3RSb290ID0gUmVhY3RNb3VudC5maW5kUmVhY3RDb250YWluZXJGb3JJRChpZCk7XG4gICAgcmV0dXJuIFJlYWN0TW91bnQuZmluZENvbXBvbmVudFJvb3QocmVhY3RSb290LCBpZCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlcyB1cCB0aGUgYW5jZXN0b3JzIG9mIHRoZSBzdXBwbGllZCBub2RlIHRvIGZpbmQgYSBub2RlIHRoYXQgaXMgYVxuICAgKiBET00gcmVwcmVzZW50YXRpb24gb2YgYSBSZWFjdCBjb21wb25lbnQgcmVuZGVyZWQgYnkgdGhpcyBjb3B5IG9mIFJlYWN0LlxuICAgKlxuICAgKiBAcGFyYW0geyp9IG5vZGVcbiAgICogQHJldHVybiB7P0RPTUV2ZW50VGFyZ2V0fVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldEZpcnN0UmVhY3RET006IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIGZpbmRGaXJzdFJlYWN0RE9NSW1wbChub2RlKTtcbiAgfSxcblxuICAvKipcbiAgICogRmluZHMgYSBub2RlIHdpdGggdGhlIHN1cHBsaWVkIGB0YXJnZXRJRGAgaW5zaWRlIG9mIHRoZSBzdXBwbGllZFxuICAgKiBgYW5jZXN0b3JOb2RlYC4gIEV4cGxvaXRzIHRoZSBJRCBuYW1pbmcgc2NoZW1lIHRvIHBlcmZvcm0gdGhlIHNlYXJjaFxuICAgKiBxdWlja2x5LlxuICAgKlxuICAgKiBAcGFyYW0ge0RPTUV2ZW50VGFyZ2V0fSBhbmNlc3Rvck5vZGUgU2VhcmNoIGZyb20gdGhpcyByb290LlxuICAgKiBAcGFyYXJtIHtzdHJpbmd9IHRhcmdldElEIElEIG9mIHRoZSBET00gcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICogQHJldHVybiB7RE9NRXZlbnRUYXJnZXR9IERPTSBub2RlIHdpdGggdGhlIHN1cHBsaWVkIGB0YXJnZXRJRGAuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluZENvbXBvbmVudFJvb3Q6IGZ1bmN0aW9uIChhbmNlc3Rvck5vZGUsIHRhcmdldElEKSB7XG4gICAgdmFyIGZpcnN0Q2hpbGRyZW4gPSBmaW5kQ29tcG9uZW50Um9vdFJldXNhYmxlQXJyYXk7XG4gICAgdmFyIGNoaWxkSW5kZXggPSAwO1xuXG4gICAgdmFyIGRlZXBlc3RBbmNlc3RvciA9IGZpbmREZWVwZXN0Q2FjaGVkQW5jZXN0b3IodGFyZ2V0SUQpIHx8IGFuY2VzdG9yTm9kZTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgb24gdGhlIG5leHQgbGluZTsgZ2l2ZSBhbiBlYXJseSB3YXJuaW5nXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhkZWVwZXN0QW5jZXN0b3IgIT0gbnVsbCwgJ1JlYWN0IGNhblxcJ3QgZmluZCB0aGUgcm9vdCBjb21wb25lbnQgbm9kZSBmb3IgZGF0YS1yZWFjdGlkIHZhbHVlICcgKyAnYCVzYC4gSWYgeW91XFwncmUgc2VlaW5nIHRoaXMgbWVzc2FnZSwgaXQgcHJvYmFibHkgbWVhbnMgdGhhdCAnICsgJ3lvdVxcJ3ZlIGxvYWRlZCB0d28gY29waWVzIG9mIFJlYWN0IG9uIHRoZSBwYWdlLiBBdCB0aGlzIHRpbWUsIG9ubHkgJyArICdhIHNpbmdsZSBjb3B5IG9mIFJlYWN0IGNhbiBiZSBsb2FkZWQgYXQgYSB0aW1lLicsIHRhcmdldElEKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBmaXJzdENoaWxkcmVuWzBdID0gZGVlcGVzdEFuY2VzdG9yLmZpcnN0Q2hpbGQ7XG4gICAgZmlyc3RDaGlsZHJlbi5sZW5ndGggPSAxO1xuXG4gICAgd2hpbGUgKGNoaWxkSW5kZXggPCBmaXJzdENoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgdmFyIGNoaWxkID0gZmlyc3RDaGlsZHJlbltjaGlsZEluZGV4KytdO1xuICAgICAgdmFyIHRhcmdldENoaWxkO1xuXG4gICAgICB3aGlsZSAoY2hpbGQpIHtcbiAgICAgICAgdmFyIGNoaWxkSUQgPSBSZWFjdE1vdW50LmdldElEKGNoaWxkKTtcbiAgICAgICAgaWYgKGNoaWxkSUQpIHtcbiAgICAgICAgICAvLyBFdmVuIGlmIHdlIGZpbmQgdGhlIG5vZGUgd2UncmUgbG9va2luZyBmb3IsIHdlIGZpbmlzaCBsb29waW5nXG4gICAgICAgICAgLy8gdGhyb3VnaCBpdHMgc2libGluZ3MgdG8gZW5zdXJlIHRoZXkncmUgY2FjaGVkIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZVxuICAgICAgICAgIC8vIHRvIHJldmlzaXQgdGhpcyBub2RlIGFnYWluLiBPdGhlcndpc2UsIHdlIG1ha2Ugbl4yIGNhbGxzIHRvIGdldElEXG4gICAgICAgICAgLy8gd2hlbiB2aXNpdGluZyB0aGUgbWFueSBjaGlsZHJlbiBvZiBhIHNpbmdsZSBub2RlIGluIG9yZGVyLlxuXG4gICAgICAgICAgaWYgKHRhcmdldElEID09PSBjaGlsZElEKSB7XG4gICAgICAgICAgICB0YXJnZXRDaGlsZCA9IGNoaWxkO1xuICAgICAgICAgIH0gZWxzZSBpZiAoUmVhY3RJbnN0YW5jZUhhbmRsZXMuaXNBbmNlc3RvcklET2YoY2hpbGRJRCwgdGFyZ2V0SUQpKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBmaW5kIGEgY2hpbGQgd2hvc2UgSUQgaXMgYW4gYW5jZXN0b3Igb2YgdGhlIGdpdmVuIElELFxuICAgICAgICAgICAgLy8gdGhlbiB3ZSBjYW4gYmUgc3VyZSB0aGF0IHdlIG9ubHkgd2FudCB0byBzZWFyY2ggdGhlIHN1YnRyZWVcbiAgICAgICAgICAgIC8vIHJvb3RlZCBhdCB0aGlzIGNoaWxkLCBzbyB3ZSBjYW4gdGhyb3cgb3V0IHRoZSByZXN0IG9mIHRoZVxuICAgICAgICAgICAgLy8gc2VhcmNoIHN0YXRlLlxuICAgICAgICAgICAgZmlyc3RDaGlsZHJlbi5sZW5ndGggPSBjaGlsZEluZGV4ID0gMDtcbiAgICAgICAgICAgIGZpcnN0Q2hpbGRyZW4ucHVzaChjaGlsZC5maXJzdENoaWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBjaGlsZCBoYWQgbm8gSUQsIHRoZW4gdGhlcmUncyBhIGNoYW5jZSB0aGF0IGl0IHdhc1xuICAgICAgICAgIC8vIGluamVjdGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIGJyb3dzZXIsIGFzIHdoZW4gYSBgPHRhYmxlPmBcbiAgICAgICAgICAvLyBlbGVtZW50IHNwcm91dHMgYW4gZXh0cmEgYDx0Ym9keT5gIGNoaWxkIGFzIGEgc2lkZSBlZmZlY3Qgb2ZcbiAgICAgICAgICAvLyBgLmlubmVySFRNTGAgcGFyc2luZy4gT3B0aW1pc3RpY2FsbHkgY29udGludWUgZG93biB0aGlzXG4gICAgICAgICAgLy8gYnJhbmNoLCBidXQgbm90IGJlZm9yZSBleGFtaW5pbmcgdGhlIG90aGVyIHNpYmxpbmdzLlxuICAgICAgICAgIGZpcnN0Q2hpbGRyZW4ucHVzaChjaGlsZC5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIGlmICh0YXJnZXRDaGlsZCkge1xuICAgICAgICAvLyBFbXB0eWluZyBmaXJzdENoaWxkcmVuL2ZpbmRDb21wb25lbnRSb290UmV1c2FibGVBcnJheSBpc1xuICAgICAgICAvLyBub3QgbmVjZXNzYXJ5IGZvciBjb3JyZWN0bmVzcywgYnV0IGl0IGhlbHBzIHRoZSBHQyByZWNsYWltXG4gICAgICAgIC8vIGFueSBub2RlcyB0aGF0IHdlcmUgbGVmdCBhdCB0aGUgZW5kIG9mIHRoZSBzZWFyY2guXG4gICAgICAgIGZpcnN0Q2hpbGRyZW4ubGVuZ3RoID0gMDtcblxuICAgICAgICByZXR1cm4gdGFyZ2V0Q2hpbGQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmlyc3RDaGlsZHJlbi5sZW5ndGggPSAwO1xuXG4gICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2ZpbmRDb21wb25lbnRSb290KC4uLiwgJXMpOiBVbmFibGUgdG8gZmluZCBlbGVtZW50LiBUaGlzIHByb2JhYmx5ICcgKyAnbWVhbnMgdGhlIERPTSB3YXMgdW5leHBlY3RlZGx5IG11dGF0ZWQgKGUuZy4sIGJ5IHRoZSBicm93c2VyKSwgJyArICd1c3VhbGx5IGR1ZSB0byBmb3JnZXR0aW5nIGEgPHRib2R5PiB3aGVuIHVzaW5nIHRhYmxlcywgbmVzdGluZyB0YWdzICcgKyAnbGlrZSA8Zm9ybT4sIDxwPiwgb3IgPGE+LCBvciB1c2luZyBub24tU1ZHIGVsZW1lbnRzIGluIGFuIDxzdmc+ICcgKyAncGFyZW50LiAnICsgJ1RyeSBpbnNwZWN0aW5nIHRoZSBjaGlsZCBub2RlcyBvZiB0aGUgZWxlbWVudCB3aXRoIFJlYWN0IElEIGAlc2AuJywgdGFyZ2V0SUQsIFJlYWN0TW91bnQuZ2V0SUQoYW5jZXN0b3JOb2RlKSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICB9LFxuXG4gIF9tb3VudEltYWdlSW50b05vZGU6IGZ1bmN0aW9uIChtYXJrdXAsIGNvbnRhaW5lciwgc2hvdWxkUmV1c2VNYXJrdXAsIHRyYW5zYWN0aW9uKSB7XG4gICAgIShjb250YWluZXIgJiYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFX1RZUEUgfHwgY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NfTk9ERV9UWVBFIHx8IGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFKSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnbW91bnRDb21wb25lbnRJbnRvTm9kZSguLi4pOiBUYXJnZXQgY29udGFpbmVyIGlzIG5vdCB2YWxpZC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoc2hvdWxkUmV1c2VNYXJrdXApIHtcbiAgICAgIHZhciByb290RWxlbWVudCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgICAgaWYgKFJlYWN0TWFya3VwQ2hlY2tzdW0uY2FuUmV1c2VNYXJrdXAobWFya3VwLCByb290RWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGNoZWNrc3VtID0gcm9vdEVsZW1lbnQuZ2V0QXR0cmlidXRlKFJlYWN0TWFya3VwQ2hlY2tzdW0uQ0hFQ0tTVU1fQVRUUl9OQU1FKTtcbiAgICAgICAgcm9vdEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFJlYWN0TWFya3VwQ2hlY2tzdW0uQ0hFQ0tTVU1fQVRUUl9OQU1FKTtcblxuICAgICAgICB2YXIgcm9vdE1hcmt1cCA9IHJvb3RFbGVtZW50Lm91dGVySFRNTDtcbiAgICAgICAgcm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKFJlYWN0TWFya3VwQ2hlY2tzdW0uQ0hFQ0tTVU1fQVRUUl9OQU1FLCBjaGVja3N1bSk7XG5cbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRNYXJrdXAgPSBtYXJrdXA7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgLy8gYmVjYXVzZSByb290TWFya3VwIGlzIHJldHJpZXZlZCBmcm9tIHRoZSBET00sIHZhcmlvdXMgbm9ybWFsaXphdGlvbnNcbiAgICAgICAgICAvLyB3aWxsIGhhdmUgb2NjdXJyZWQgd2hpY2ggd2lsbCBub3QgYmUgcHJlc2VudCBpbiBgbWFya3VwYC4gSGVyZSxcbiAgICAgICAgICAvLyBpbnNlcnQgbWFya3VwIGludG8gYSA8ZGl2PiBvciA8aWZyYW1lPiBkZXBlbmRpbmcgb24gdGhlIGNvbnRhaW5lclxuICAgICAgICAgIC8vIHR5cGUgdG8gcGVyZm9ybSB0aGUgc2FtZSBub3JtYWxpemF0aW9ucyBiZWZvcmUgY29tcGFyaW5nLlxuICAgICAgICAgIHZhciBub3JtYWxpemVyO1xuICAgICAgICAgIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERV9UWVBFKSB7XG4gICAgICAgICAgICBub3JtYWxpemVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBub3JtYWxpemVyLmlubmVySFRNTCA9IG1hcmt1cDtcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRNYXJrdXAgPSBub3JtYWxpemVyLmlubmVySFRNTDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9ybWFsaXplciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub3JtYWxpemVyKTtcbiAgICAgICAgICAgIG5vcm1hbGl6ZXIuY29udGVudERvY3VtZW50LndyaXRlKG1hcmt1cCk7XG4gICAgICAgICAgICBub3JtYWxpemVkTWFya3VwID0gbm9ybWFsaXplci5jb250ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91dGVySFRNTDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobm9ybWFsaXplcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRpZmZJbmRleCA9IGZpcnN0RGlmZmVyZW5jZUluZGV4KG5vcm1hbGl6ZWRNYXJrdXAsIHJvb3RNYXJrdXApO1xuICAgICAgICB2YXIgZGlmZmVyZW5jZSA9ICcgKGNsaWVudCkgJyArIG5vcm1hbGl6ZWRNYXJrdXAuc3Vic3RyaW5nKGRpZmZJbmRleCAtIDIwLCBkaWZmSW5kZXggKyAyMCkgKyAnXFxuIChzZXJ2ZXIpICcgKyByb290TWFya3VwLnN1YnN0cmluZyhkaWZmSW5kZXggLSAyMCwgZGlmZkluZGV4ICsgMjApO1xuXG4gICAgICAgICEoY29udGFpbmVyLm5vZGVUeXBlICE9PSBET0NfTk9ERV9UWVBFKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdZb3VcXCdyZSB0cnlpbmcgdG8gcmVuZGVyIGEgY29tcG9uZW50IHRvIHRoZSBkb2N1bWVudCB1c2luZyAnICsgJ3NlcnZlciByZW5kZXJpbmcgYnV0IHRoZSBjaGVja3N1bSB3YXMgaW52YWxpZC4gVGhpcyB1c3VhbGx5ICcgKyAnbWVhbnMgeW91IHJlbmRlcmVkIGEgZGlmZmVyZW50IGNvbXBvbmVudCB0eXBlIG9yIHByb3BzIG9uICcgKyAndGhlIGNsaWVudCBmcm9tIHRoZSBvbmUgb24gdGhlIHNlcnZlciwgb3IgeW91ciByZW5kZXIoKSAnICsgJ21ldGhvZHMgYXJlIGltcHVyZS4gUmVhY3QgY2Fubm90IGhhbmRsZSB0aGlzIGNhc2UgZHVlIHRvICcgKyAnY3Jvc3MtYnJvd3NlciBxdWlya3MgYnkgcmVuZGVyaW5nIGF0IHRoZSBkb2N1bWVudCByb290LiBZb3UgJyArICdzaG91bGQgbG9vayBmb3IgZW52aXJvbm1lbnQgZGVwZW5kZW50IGNvZGUgaW4geW91ciBjb21wb25lbnRzICcgKyAnYW5kIGVuc3VyZSB0aGUgcHJvcHMgYXJlIHRoZSBzYW1lIGNsaWVudCBhbmQgc2VydmVyIHNpZGU6XFxuJXMnLCBkaWZmZXJlbmNlKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1JlYWN0IGF0dGVtcHRlZCB0byByZXVzZSBtYXJrdXAgaW4gYSBjb250YWluZXIgYnV0IHRoZSAnICsgJ2NoZWNrc3VtIHdhcyBpbnZhbGlkLiBUaGlzIGdlbmVyYWxseSBtZWFucyB0aGF0IHlvdSBhcmUgJyArICd1c2luZyBzZXJ2ZXIgcmVuZGVyaW5nIGFuZCB0aGUgbWFya3VwIGdlbmVyYXRlZCBvbiB0aGUgJyArICdzZXJ2ZXIgd2FzIG5vdCB3aGF0IHRoZSBjbGllbnQgd2FzIGV4cGVjdGluZy4gUmVhY3QgaW5qZWN0ZWQgJyArICduZXcgbWFya3VwIHRvIGNvbXBlbnNhdGUgd2hpY2ggd29ya3MgYnV0IHlvdSBoYXZlIGxvc3QgbWFueSAnICsgJ29mIHRoZSBiZW5lZml0cyBvZiBzZXJ2ZXIgcmVuZGVyaW5nLiBJbnN0ZWFkLCBmaWd1cmUgb3V0ICcgKyAnd2h5IHRoZSBtYXJrdXAgYmVpbmcgZ2VuZXJhdGVkIGlzIGRpZmZlcmVudCBvbiB0aGUgY2xpZW50ICcgKyAnb3Igc2VydmVyOlxcbiVzJywgZGlmZmVyZW5jZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAhKGNvbnRhaW5lci5ub2RlVHlwZSAhPT0gRE9DX05PREVfVFlQRSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnWW91XFwncmUgdHJ5aW5nIHRvIHJlbmRlciBhIGNvbXBvbmVudCB0byB0aGUgZG9jdW1lbnQgYnV0ICcgKyAneW91IGRpZG5cXCd0IHVzZSBzZXJ2ZXIgcmVuZGVyaW5nLiBXZSBjYW5cXCd0IGRvIHRoaXMgJyArICd3aXRob3V0IHVzaW5nIHNlcnZlciByZW5kZXJpbmcgZHVlIHRvIGNyb3NzLWJyb3dzZXIgcXVpcmtzLiAnICsgJ1NlZSBSZWFjdERPTVNlcnZlci5yZW5kZXJUb1N0cmluZygpIGZvciBzZXJ2ZXIgcmVuZGVyaW5nLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIGlmICh0cmFuc2FjdGlvbi51c2VDcmVhdGVFbGVtZW50KSB7XG4gICAgICB3aGlsZSAoY29udGFpbmVyLmxhc3RDaGlsZCkge1xuICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoY29udGFpbmVyLmxhc3RDaGlsZCk7XG4gICAgICB9XG4gICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobWFya3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SW5uZXJIVE1MKGNvbnRhaW5lciwgbWFya3VwKTtcbiAgICB9XG4gIH0sXG5cbiAgb3duZXJEb2N1bWVudENvbnRleHRLZXk6IG93bmVyRG9jdW1lbnRDb250ZXh0S2V5LFxuXG4gIC8qKlxuICAgKiBSZWFjdCBJRCB1dGlsaXRpZXMuXG4gICAqL1xuXG4gIGdldFJlYWN0Um9vdElEOiBnZXRSZWFjdFJvb3RJRCxcblxuICBnZXRJRDogZ2V0SUQsXG5cbiAgc2V0SUQ6IHNldElELFxuXG4gIGdldE5vZGU6IGdldE5vZGUsXG5cbiAgZ2V0Tm9kZUZyb21JbnN0YW5jZTogZ2V0Tm9kZUZyb21JbnN0YW5jZSxcblxuICBpc1ZhbGlkOiBpc1ZhbGlkLFxuXG4gIHB1cmdlSUQ6IHB1cmdlSURcbn07XG5cblJlYWN0UGVyZi5tZWFzdXJlTWV0aG9kcyhSZWFjdE1vdW50LCAnUmVhY3RNb3VudCcsIHtcbiAgX3JlbmRlck5ld1Jvb3RDb21wb25lbnQ6ICdfcmVuZGVyTmV3Um9vdENvbXBvbmVudCcsXG4gIF9tb3VudEltYWdlSW50b05vZGU6ICdfbW91bnRJbWFnZUludG9Ob2RlJ1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RNb3VudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RNb3VudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 29 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserEventEmitter\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar EventPluginHub = __webpack_require__(31);\nvar EventPluginRegistry = __webpack_require__(32);\nvar ReactEventEmitterMixin = __webpack_require__(37);\nvar ReactPerf = __webpack_require__(18);\nvar ViewportMetrics = __webpack_require__(38);\n\nvar assign = __webpack_require__(39);\nvar isEventSupported = __webpack_require__(40);\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n * - Top-level delegation is used to trap most native browser events. This\n * may only occur in the main thread and is the responsibility of\n * ReactEventListener, which is injected and can therefore support pluggable\n * event sources. This is the only work that occurs in the main thread.\n *\n * - We normalize and de-duplicate events to account for browser quirks. This\n * may be done in the worker thread.\n *\n * - Forward these native events (with the associated top-level type used to\n * trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n * to extract any synthetic events.\n *\n * - The `EventPluginHub` will then process each event by annotating them with\n * \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n * - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+ .\n * | DOM | .\n * +------------+ .\n * | .\n * v .\n * +------------+ .\n * | ReactEvent | .\n * | Listener | .\n * +------------+ . +-----------+\n * | . +--------+|SimpleEvent|\n * | . | |Plugin |\n * +-----|------+ . v +-----------+\n * | | | . +--------------+ +------------+\n * | +-----------.--->|EventPluginHub| | Event |\n * | | . | | +-----------+ | Propagators|\n * | ReactEvent | . | | |TapEvent | |------------|\n * | Emitter | . | |<---+|Plugin | |other plugin|\n * | | . | | +-----------+ | utilities |\n * | +-----------.--->| | +------------+\n * | | | . +--------------+\n * +-----|------+ . ^ +-----------+\n * | . | |Enter/Leave|\n * + . +-------+|Plugin |\n * +-------------+ . +-----------+\n * | application | .\n * |-------------| .\n * | | .\n * | | .\n * +-------------+ .\n * .\n * React Core . General Purpose Event Plugin System\n */\n\nvar alreadyListeningTo = {};\nvar isMonitoringScrollValue = false;\nvar reactTopListenersCounter = 0;\n\n// For events like 'submit' which don't consistently bubble (which we trap at a\n// lower node than `document`), binding at `document` would cause duplicate\n// events so we don't include them here\nvar topEventMapping = {\n topAbort: 'abort',\n topBlur: 'blur',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topChange: 'change',\n topClick: 'click',\n topCompositionEnd: 'compositionend',\n topCompositionStart: 'compositionstart',\n topCompositionUpdate: 'compositionupdate',\n topContextMenu: 'contextmenu',\n topCopy: 'copy',\n topCut: 'cut',\n topDoubleClick: 'dblclick',\n topDrag: 'drag',\n topDragEnd: 'dragend',\n topDragEnter: 'dragenter',\n topDragExit: 'dragexit',\n topDragLeave: 'dragleave',\n topDragOver: 'dragover',\n topDragStart: 'dragstart',\n topDrop: 'drop',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topFocus: 'focus',\n topInput: 'input',\n topKeyDown: 'keydown',\n topKeyPress: 'keypress',\n topKeyUp: 'keyup',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topMouseDown: 'mousedown',\n topMouseMove: 'mousemove',\n topMouseOut: 'mouseout',\n topMouseOver: 'mouseover',\n topMouseUp: 'mouseup',\n topPaste: 'paste',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topScroll: 'scroll',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topSelectionChange: 'selectionchange',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTextInput: 'textInput',\n topTimeUpdate: 'timeupdate',\n topTouchCancel: 'touchcancel',\n topTouchEnd: 'touchend',\n topTouchMove: 'touchmove',\n topTouchStart: 'touchstart',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting',\n topWheel: 'wheel'\n};\n\n/**\n * To ensure no conflicts with other potential React instances on the page\n */\nvar topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);\n\nfunction getListeningForDocument(mountAt) {\n // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`\n // directly.\n if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {\n mountAt[topListenersIDKey] = reactTopListenersCounter++;\n alreadyListeningTo[mountAt[topListenersIDKey]] = {};\n }\n return alreadyListeningTo[mountAt[topListenersIDKey]];\n}\n\n/**\n * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For\n * example:\n *\n * ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction);\n *\n * This would allocate a \"registration\" of `('onClick', myFunction)` on 'myID'.\n *\n * @internal\n */\nvar ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {\n\n /**\n * Injectable event backend\n */\n ReactEventListener: null,\n\n injection: {\n /**\n * @param {object} ReactEventListener\n */\n injectReactEventListener: function injectReactEventListener(ReactEventListener) {\n ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);\n ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;\n }\n },\n\n /**\n * Sets whether or not any created callbacks should be enabled.\n *\n * @param {boolean} enabled True if callbacks should be enabled.\n */\n setEnabled: function setEnabled(enabled) {\n if (ReactBrowserEventEmitter.ReactEventListener) {\n ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);\n }\n },\n\n /**\n * @return {boolean} True if callbacks are enabled.\n */\n isEnabled: function isEnabled() {\n return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());\n },\n\n /**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} contentDocumentHandle Document which owns the container\n */\n listenTo: function listenTo(registrationName, contentDocumentHandle) {\n var mountAt = contentDocumentHandle;\n var isListening = getListeningForDocument(mountAt);\n var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];\n\n var topLevelTypes = EventConstants.topLevelTypes;\n for (var i = 0; i < dependencies.length; i++) {\n var dependency = dependencies[i];\n if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {\n if (dependency === topLevelTypes.topWheel) {\n if (isEventSupported('wheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'wheel', mountAt);\n } else if (isEventSupported('mousewheel')) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'mousewheel', mountAt);\n } else {\n // Firefox needs to capture a different mouse scroll event.\n // @see http://www.quirksmode.org/dom/events/tests/scroll.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topWheel, 'DOMMouseScroll', mountAt);\n }\n } else if (dependency === topLevelTypes.topScroll) {\n\n if (isEventSupported('scroll', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topScroll, 'scroll', mountAt);\n } else {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topScroll, 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);\n }\n } else if (dependency === topLevelTypes.topFocus || dependency === topLevelTypes.topBlur) {\n\n if (isEventSupported('focus', true)) {\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topFocus, 'focus', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelTypes.topBlur, 'blur', mountAt);\n } else if (isEventSupported('focusin')) {\n // IE has `focusin` and `focusout` events which bubble.\n // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topFocus, 'focusin', mountAt);\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelTypes.topBlur, 'focusout', mountAt);\n }\n\n // to make sure blur and focus event listeners are only attached once\n isListening[topLevelTypes.topBlur] = true;\n isListening[topLevelTypes.topFocus] = true;\n } else if (topEventMapping.hasOwnProperty(dependency)) {\n ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);\n }\n\n isListening[dependency] = true;\n }\n }\n },\n\n trapBubbledEvent: function trapBubbledEvent(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);\n },\n\n trapCapturedEvent: function trapCapturedEvent(topLevelType, handlerBaseName, handle) {\n return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);\n },\n\n /**\n * Listens to window scroll and resize events. We cache scroll values so that\n * application code can access them without triggering reflows.\n *\n * NOTE: Scroll events do not bubble.\n *\n * @see http://www.quirksmode.org/dom/events/scroll.html\n */\n ensureScrollValueMonitoring: function ensureScrollValueMonitoring() {\n if (!isMonitoringScrollValue) {\n var refresh = ViewportMetrics.refreshScrollValues;\n ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);\n isMonitoringScrollValue = true;\n }\n },\n\n eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs,\n\n registrationNameModules: EventPluginHub.registrationNameModules,\n\n putListener: EventPluginHub.putListener,\n\n getListener: EventPluginHub.getListener,\n\n deleteListener: EventPluginHub.deleteListener,\n\n deleteAllListeners: EventPluginHub.deleteAllListeners\n\n});\n\nReactPerf.measureMethods(ReactBrowserEventEmitter, 'ReactBrowserEventEmitter', {\n putListener: 'putListener',\n deleteListener: 'deleteListener'\n});\n\nmodule.exports = ReactBrowserEventEmitter;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLmpzPzExN2EiXSwibmFtZXMiOlsiRXZlbnRDb25zdGFudHMiLCJyZXF1aXJlIiwiRXZlbnRQbHVnaW5IdWIiLCJFdmVudFBsdWdpblJlZ2lzdHJ5IiwiUmVhY3RFdmVudEVtaXR0ZXJNaXhpbiIsIlJlYWN0UGVyZiIsIlZpZXdwb3J0TWV0cmljcyIsImFzc2lnbiIsImlzRXZlbnRTdXBwb3J0ZWQiLCJhbHJlYWR5TGlzdGVuaW5nVG8iLCJpc01vbml0b3JpbmdTY3JvbGxWYWx1ZSIsInJlYWN0VG9wTGlzdGVuZXJzQ291bnRlciIsInRvcEV2ZW50TWFwcGluZyIsInRvcEFib3J0IiwidG9wQmx1ciIsInRvcENhblBsYXkiLCJ0b3BDYW5QbGF5VGhyb3VnaCIsInRvcENoYW5nZSIsInRvcENsaWNrIiwidG9wQ29tcG9zaXRpb25FbmQiLCJ0b3BDb21wb3NpdGlvblN0YXJ0IiwidG9wQ29tcG9zaXRpb25VcGRhdGUiLCJ0b3BDb250ZXh0TWVudSIsInRvcENvcHkiLCJ0b3BDdXQiLCJ0b3BEb3VibGVDbGljayIsInRvcERyYWciLCJ0b3BEcmFnRW5kIiwidG9wRHJhZ0VudGVyIiwidG9wRHJhZ0V4aXQiLCJ0b3BEcmFnTGVhdmUiLCJ0b3BEcmFnT3ZlciIsInRvcERyYWdTdGFydCIsInRvcERyb3AiLCJ0b3BEdXJhdGlvbkNoYW5nZSIsInRvcEVtcHRpZWQiLCJ0b3BFbmNyeXB0ZWQiLCJ0b3BFbmRlZCIsInRvcEVycm9yIiwidG9wRm9jdXMiLCJ0b3BJbnB1dCIsInRvcEtleURvd24iLCJ0b3BLZXlQcmVzcyIsInRvcEtleVVwIiwidG9wTG9hZGVkRGF0YSIsInRvcExvYWRlZE1ldGFkYXRhIiwidG9wTG9hZFN0YXJ0IiwidG9wTW91c2VEb3duIiwidG9wTW91c2VNb3ZlIiwidG9wTW91c2VPdXQiLCJ0b3BNb3VzZU92ZXIiLCJ0b3BNb3VzZVVwIiwidG9wUGFzdGUiLCJ0b3BQYXVzZSIsInRvcFBsYXkiLCJ0b3BQbGF5aW5nIiwidG9wUHJvZ3Jlc3MiLCJ0b3BSYXRlQ2hhbmdlIiwidG9wU2Nyb2xsIiwidG9wU2Vla2VkIiwidG9wU2Vla2luZyIsInRvcFNlbGVjdGlvbkNoYW5nZSIsInRvcFN0YWxsZWQiLCJ0b3BTdXNwZW5kIiwidG9wVGV4dElucHV0IiwidG9wVGltZVVwZGF0ZSIsInRvcFRvdWNoQ2FuY2VsIiwidG9wVG91Y2hFbmQiLCJ0b3BUb3VjaE1vdmUiLCJ0b3BUb3VjaFN0YXJ0IiwidG9wVm9sdW1lQ2hhbmdlIiwidG9wV2FpdGluZyIsInRvcFdoZWVsIiwidG9wTGlzdGVuZXJzSURLZXkiLCJTdHJpbmciLCJNYXRoIiwicmFuZG9tIiwic2xpY2UiLCJnZXRMaXN0ZW5pbmdGb3JEb2N1bWVudCIsIm1vdW50QXQiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIiLCJSZWFjdEV2ZW50TGlzdGVuZXIiLCJpbmplY3Rpb24iLCJpbmplY3RSZWFjdEV2ZW50TGlzdGVuZXIiLCJzZXRIYW5kbGVUb3BMZXZlbCIsImhhbmRsZVRvcExldmVsIiwic2V0RW5hYmxlZCIsImVuYWJsZWQiLCJpc0VuYWJsZWQiLCJsaXN0ZW5UbyIsInJlZ2lzdHJhdGlvbk5hbWUiLCJjb250ZW50RG9jdW1lbnRIYW5kbGUiLCJpc0xpc3RlbmluZyIsImRlcGVuZGVuY2llcyIsInJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMiLCJ0b3BMZXZlbFR5cGVzIiwiaSIsImxlbmd0aCIsImRlcGVuZGVuY3kiLCJ0cmFwQnViYmxlZEV2ZW50IiwidHJhcENhcHR1cmVkRXZlbnQiLCJXSU5ET1dfSEFORExFIiwidG9wTGV2ZWxUeXBlIiwiaGFuZGxlckJhc2VOYW1lIiwiaGFuZGxlIiwiZW5zdXJlU2Nyb2xsVmFsdWVNb25pdG9yaW5nIiwicmVmcmVzaCIsInJlZnJlc2hTY3JvbGxWYWx1ZXMiLCJtb25pdG9yU2Nyb2xsVmFsdWUiLCJldmVudE5hbWVEaXNwYXRjaENvbmZpZ3MiLCJyZWdpc3RyYXRpb25OYW1lTW9kdWxlcyIsInB1dExpc3RlbmVyIiwiZ2V0TGlzdGVuZXIiLCJkZWxldGVMaXN0ZW5lciIsImRlbGV0ZUFsbExpc3RlbmVycyIsIm1lYXN1cmVNZXRob2RzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGlCQUFpQixtQkFBQUMsQ0FBUSxFQUFSLENBQXJCO0FBQ0EsSUFBSUMsaUJBQWlCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBckI7QUFDQSxJQUFJRSxzQkFBc0IsbUJBQUFGLENBQVEsRUFBUixDQUExQjtBQUNBLElBQUlHLHlCQUF5QixtQkFBQUgsQ0FBUSxFQUFSLENBQTdCO0FBQ0EsSUFBSUksWUFBWSxtQkFBQUosQ0FBUSxFQUFSLENBQWhCO0FBQ0EsSUFBSUssa0JBQWtCLG1CQUFBTCxDQUFRLEVBQVIsQ0FBdEI7O0FBRUEsSUFBSU0sU0FBUyxtQkFBQU4sQ0FBUSxFQUFSLENBQWI7QUFDQSxJQUFJTyxtQkFBbUIsbUJBQUFQLENBQVEsRUFBUixDQUF2Qjs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVEQSxJQUFJUSxxQkFBcUIsRUFBekI7QUFDQSxJQUFJQywwQkFBMEIsS0FBOUI7QUFDQSxJQUFJQywyQkFBMkIsQ0FBL0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSUMsa0JBQWtCO0FBQ3BCQyxZQUFVLE9BRFU7QUFFcEJDLFdBQVMsTUFGVztBQUdwQkMsY0FBWSxTQUhRO0FBSXBCQyxxQkFBbUIsZ0JBSkM7QUFLcEJDLGFBQVcsUUFMUztBQU1wQkMsWUFBVSxPQU5VO0FBT3BCQyxxQkFBbUIsZ0JBUEM7QUFRcEJDLHVCQUFxQixrQkFSRDtBQVNwQkMsd0JBQXNCLG1C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VUFBVWtILGNBQVYsQ0FBeUJuQyx3QkFBekIsRUFBbUQsMEJBQW5ELEVBQStFO0FBQzdFK0IsZUFBYSxhQURnRTtBQUU3RUUsa0JBQWdCO0FBRjZELENBQS9FOztBQUtBRyxPQUFPQyxPQUFQLEdBQWlCckMsd0JBQWpCIiwiZmlsZSI6IjI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlclxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBFdmVudENvbnN0YW50cyA9IHJlcXVpcmUoJy4vRXZlbnRDb25zdGFudHMnKTtcbnZhciBFdmVudFBsdWdpbkh1YiA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5IdWInKTtcbnZhciBFdmVudFBsdWdpblJlZ2lzdHJ5ID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpblJlZ2lzdHJ5Jyk7XG52YXIgUmVhY3RFdmVudEVtaXR0ZXJNaXhpbiA9IHJlcXVpcmUoJy4vUmVhY3RFdmVudEVtaXR0ZXJNaXhpbicpO1xudmFyIFJlYWN0UGVyZiA9IHJlcXVpcmUoJy4vUmVhY3RQZXJmJyk7XG52YXIgVmlld3BvcnRNZXRyaWNzID0gcmVxdWlyZSgnLi9WaWV3cG9ydE1ldHJpY3MnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcblxuLyoqXG4gKiBTdW1tYXJ5IG9mIGBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXJgIGV2ZW50IGhhbmRsaW5nOlxuICpcbiAqICAtIFRvcC1sZXZlbCBkZWxlZ2F0aW9uIGlzIHVzZWQgdG8gdHJhcCBtb3N0IG5hdGl2ZSBicm93c2VyIGV2ZW50cy4gVGhpc1xuICogICAgbWF5IG9ubHkgb2NjdXIgaW4gdGhlIG1haW4gdGhyZWFkIGFuZCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2ZcbiAqICAgIFJlYWN0RXZlbnRMaXN0ZW5lciwgd2hpY2ggaXMgaW5qZWN0ZWQgYW5kIGNhbiB0aGVyZWZvcmUgc3VwcG9ydCBwbHVnZ2FibGVcbiAqICAgIGV2ZW50IHNvdXJjZXMuIFRoaXMgaXMgdGhlIG9ubHkgd29yayB0aGF0IG9jY3VycyBpbiB0aGUgbWFpbiB0aHJlYWQuXG4gKlxuICogIC0gV2Ugbm9ybWFsaXplIGFuZCBkZS1kdXBsaWNhdGUgZXZlbnRzIHRvIGFjY291bnQgZm9yIGJyb3dzZXIgcXVpcmtzLiBUaGlzXG4gKiAgICBtYXkgYmUgZG9uZSBpbiB0aGUgd29ya2VyIHRocmVhZC5cbiAqXG4gKiAgLSBGb3J3YXJkIHRoZXNlIG5hdGl2ZSBldmVudHMgKHdpdGggdGhlIGFzc29jaWF0ZWQgdG9wLWxldmVsIHR5cGUgdXNlZCB0b1xuICogICAgdHJhcCBpdCkgdG8gYEV2ZW50UGx1Z2luSHViYCwgd2hpY2ggaW4gdHVybiB3aWxsIGFzayBwbHVnaW5zIGlmIHRoZXkgd2FudFxuICogICAgdG8gZXh0cmFjdCBhbnkgc3ludGhldGljIGV2ZW50cy5cbiAqXG4gKiAgLSBUaGUgYEV2ZW50UGx1Z2luSHViYCB3aWxsIHRoZW4gcHJvY2VzcyBlYWNoIGV2ZW50IGJ5IGFubm90YXRpbmcgdGhlbSB3aXRoXG4gKiAgICBcImRpc3BhdGNoZXNcIiwgYSBzZXF1ZW5jZSBvZiBsaXN0ZW5lcnMgYW5kIElEcyB0aGF0IGNhcmUgYWJvdXQgdGhhdCBldmVudC5cbiAqXG4gKiAgLSBUaGUgYEV2ZW50UGx1Z2luSHViYCB0aGVuIGRpc3BhdGNoZXMgdGhlIGV2ZW50cy5cbiAqXG4gKiBPdmVydmlldyBvZiBSZWFjdCBhbmQgdGhlIGV2ZW50IHN5c3RlbTpcbiAqXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiB8ICAgIERPTSAgICAgfCAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiAgICAgICB8ICAgICAgICAgICAuXG4gKiAgICAgICB2ICAgICAgICAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuXG4gKiB8IFJlYWN0RXZlbnQgfCAgICAuXG4gKiB8ICBMaXN0ZW5lciAgfCAgICAuXG4gKiArLS0tLS0tLS0tLS0tKyAgICAuICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLStcbiAqICAgICAgIHwgICAgICAgICAgIC4gICAgICAgICAgICAgICArLS0tLS0tLS0rfFNpbXBsZUV2ZW50fFxuICogICAgICAgfCAgICAgICAgICAgLiAgICAgICAgICAgICAgIHwgICAgICAgICB8UGx1Z2luICAgICB8XG4gKiArLS0tLS18LS0tLS0tKyAgICAuICAgICAgICAgICAgICAgdiAgICAgICAgICstLS0tLS0tLS0tLStcbiAqIHwgICAgIHwgICAgICB8ICAgIC4gICAgKy0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLStcbiAqIHwgICAgICstLS0tLS0tLS0tLS4tLS0+fEV2ZW50UGx1Z2luSHVifCAgICAgICAgICAgICAgICAgICAgfCAgICBFdmVudCAgIHxcbiAqIHwgICAgICAgICAgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0tKyAgfCBQcm9wYWdhdG9yc3xcbiAqIHwgUmVhY3RFdmVudCB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgfFRhcEV2ZW50ICAgfCAgfC0tLS0tLS0tLS0tLXxcbiAqIHwgIEVtaXR0ZXIgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfDwtLS0rfFBsdWdpbiAgICAgfCAgfG90aGVyIHBsdWdpbnxcbiAqIHwgICAgICAgICAgICB8ICAgIC4gICAgfCAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0tKyAgfCAgdXRpbGl0aWVzIHxcbiAqIHwgICAgICstLS0tLS0tLS0tLS4tLS0+fCAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLStcbiAqIHwgICAgIHwgICAgICB8ICAgIC4gICAgKy0tLS0tLS0tLS0tLS0tK1xuICogKy0tLS0tfC0tLS0tLSsgICAgLiAgICAgICAgICAgICAgICBeICAgICAgICArLS0tLS0tLS0tLS0rXG4gKiAgICAgICB8ICAgICAgICAgICAuICAgICAgICAgICAgICAgIHwgICAgICAgIHxFbnRlci9MZWF2ZXxcbiAqICAgICAgICsgICAgICAgICAgIC4gICAgICAgICAgICAgICAgKy0tLS0tLS0rfFBsdWdpbiAgICAgfFxuICogKy0tLS0tLS0tLS0tLS0rICAgLiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rXG4gKiB8IGFwcGxpY2F0aW9uIHwgICAuXG4gKiB8LS0tLS0tLS0tLS0tLXwgICAuXG4gKiB8ICAgICAgICAgICAgIHwgICAuXG4gKiB8ICAgICAgICAgICAgIHwgICAuXG4gKiArLS0tLS0tLS0tLS0tLSsgICAuXG4gKiAgICAgICAgICAgICAgICAgICAuXG4gKiAgICBSZWFjdCBDb3JlICAgICAuICBHZW5lcmFsIFB1cnBvc2UgRXZlbnQgUGx1Z2luIFN5c3RlbVxuICovXG5cbnZhciBhbHJlYWR5TGlzdGVuaW5nVG8gPSB7fTtcbnZhciBpc01vbml0b3JpbmdTY3JvbGxWYWx1ZSA9IGZhbHNlO1xudmFyIHJlYWN0VG9wTGlzdGVuZXJzQ291bnRlciA9IDA7XG5cbi8vIEZvciBldmVudHMgbGlrZSAnc3VibWl0JyB3aGljaCBkb24ndCBjb25zaXN0ZW50bHkgYnViYmxlICh3aGljaCB3ZSB0cmFwIGF0IGFcbi8vIGxvd2VyIG5vZGUgdGhhbiBgZG9jdW1lbnRgKSwgYmluZGluZyBhdCBgZG9jdW1lbnRgIHdvdWxkIGNhdXNlIGR1cGxpY2F0ZVxuLy8gZXZlbnRzIHNvIHdlIGRvbid0IGluY2x1ZGUgdGhlbSBoZXJlXG52YXIgdG9wRXZlbnRNYXBwaW5nID0ge1xuICB0b3BBYm9ydDogJ2Fib3J0JyxcbiAgdG9wQmx1cjogJ2JsdXInLFxuICB0b3BDYW5QbGF5OiAnY2FucGxheScsXG4gIHRvcENhblBsYXlUaHJvdWdoOiAnY2FucGxheXRocm91Z2gnLFxuICB0b3BDaGFuZ2U6ICdjaGFuZ2UnLFxuICB0b3BDbGljazogJ2NsaWNrJyxcbiAgdG9wQ29tcG9zaXRpb25FbmQ6ICdjb21wb3NpdGlvbmVuZCcsXG4gIHRvcENvbXBvc2l0aW9uU3RhcnQ6ICdjb21wb3NpdGlvbnN0YXJ0JyxcbiAgdG9wQ29tcG9zaXRpb25VcGRhdGU6ICdjb21wb3NpdGlvbnVwZGF0ZScsXG4gIHRvcENvbnRleHRNZW51OiAnY29udGV4dG1lbnUnLFxuICB0b3BDb3B5OiAnY29weScsXG4gIHRvcEN1dDogJ2N1dCcsXG4gIHRvcERvdWJsZUNsaWNrOiAnZGJsY2xpY2snLFxuICB0b3BEcmFnOiAnZHJhZycsXG4gIHRvcERyYWdFbmQ6ICdkcmFnZW5kJyxcbiAgdG9wRHJhZ0VudGVyOiAnZHJhZ2VudGVyJyxcbiAgdG9wRHJhZ0V4aXQ6ICdkcmFnZXhpdCcsXG4gIHRvcERyYWdMZWF2ZTogJ2RyYWdsZWF2ZScsXG4gIHRvcERyYWdPdmVyOiAnZHJhZ292ZXInLFxuICB0b3BEcmFnU3RhcnQ6ICdkcmFnc3RhcnQnLFxuICB0b3BEcm9wOiAnZHJvcCcsXG4gIHRvcER1cmF0aW9uQ2hhbmdlOiAnZHVyYXRpb25jaGFuZ2UnLFxuICB0b3BFbXB0aWVkOiAnZW1wdGllZCcsXG4gIHRvcEVuY3J5cHRlZDogJ2VuY3J5cHRlZCcsXG4gIHRvcEVuZGVkOiAnZW5kZWQnLFxuICB0b3BFcnJvcjogJ2Vycm9yJyxcbiAgdG9wRm9jdXM6ICdmb2N1cycsXG4gIHRvcElucHV0OiAnaW5wdXQnLFxuICB0b3BLZXlEb3duOiAna2V5ZG93bicsXG4gIHRvcEtleVByZXNzOiAna2V5cHJlc3MnLFxuICB0b3BLZXlVcDogJ2tleXVwJyxcbiAgdG9wTG9hZGVkRGF0YTogJ2xvYWRlZGRhdGEnLFxuICB0b3BMb2FkZWRNZXRhZGF0YTogJ2xvYWRlZG1ldGFkYXRhJyxcbiAgdG9wTG9hZFN0YXJ0OiAnbG9hZHN0YXJ0JyxcbiAgdG9wTW91c2VEb3duOiAnbW91c2Vkb3duJyxcbiAgdG9wTW91c2VNb3ZlOiAnbW91c2Vtb3ZlJyxcbiAgdG9wTW91c2VPdXQ6ICdtb3VzZW91dCcsXG4gIHRvcE1vdXNlT3ZlcjogJ21vdXNlb3ZlcicsXG4gIHRvcE1vdXNlVXA6ICdtb3VzZXVwJyxcbiAgdG9wUGFzdGU6ICdwYXN0ZScsXG4gIHRvcFBhdXNlOiAncGF1c2UnLFxuICB0b3BQbGF5OiAncGxheScsXG4gIHRvcFBsYXlpbmc6ICdwbGF5aW5nJyxcbiAgdG9wUHJvZ3Jlc3M6ICdwcm9ncmVzcycsXG4gIHRvcFJhdGVDaGFuZ2U6ICdyYXRlY2hhbmdlJyxcbiAgdG9wU2Nyb2xsOiAnc2Nyb2xsJyxcbiAgdG9wU2Vla2VkOiAnc2Vla2VkJyxcbiAgdG9wU2Vla2luZzogJ3NlZWtpbmcnLFxuICB0b3BTZWxlY3Rpb25DaGFuZ2U6ICdzZWxlY3Rpb25jaGFuZ2UnLFxuICB0b3BTdGFsbGVkOiAnc3RhbGxlZCcsXG4gIHRvcFN1c3BlbmQ6ICdzdXNwZW5kJyxcbiAgdG9wVGV4dElucHV0OiAndGV4dElucHV0JyxcbiAgdG9wVGltZVVwZGF0ZTogJ3RpbWV1cGRhdGUnLFxuICB0b3BUb3VjaENhbmNlbDogJ3RvdWNoY2FuY2VsJyxcbiAgdG9wVG91Y2hFbmQ6ICd0b3VjaGVuZCcsXG4gIHRvcFRvdWNoTW92ZTogJ3RvdWNobW92ZScsXG4gIHRvcFRvdWNoU3RhcnQ6ICd0b3VjaHN0YXJ0JyxcbiAgdG9wVm9sdW1lQ2hhbmdlOiAndm9sdW1lY2hhbmdlJyxcbiAgdG9wV2FpdGluZzogJ3dhaXRpbmcnLFxuICB0b3BXaGVlbDogJ3doZWVsJ1xufTtcblxuLyoqXG4gKiBUbyBlbnN1cmUgbm8gY29uZmxpY3RzIHdpdGggb3RoZXIgcG90ZW50aWFsIFJlYWN0IGluc3RhbmNlcyBvbiB0aGUgcGFnZVxuICovXG52YXIgdG9wTGlzdGVuZXJzSURLZXkgPSAnX3JlYWN0TGlzdGVuZXJzSUQnICsgU3RyaW5nKE1hdGgucmFuZG9tKCkpLnNsaWNlKDIpO1xuXG5mdW5jdGlvbiBnZXRMaXN0ZW5pbmdGb3JEb2N1bWVudChtb3VudEF0KSB7XG4gIC8vIEluIElFOCwgYG1vdW50QXRgIGlzIGEgaG9zdCBvYmplY3QgYW5kIGRvZXNuJ3QgaGF2ZSBgaGFzT3duUHJvcGVydHlgXG4gIC8vIGRpcmVjdGx5LlxuICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb3VudEF0LCB0b3BMaXN0ZW5lcnNJREtleSkpIHtcbiAgICBtb3VudEF0W3RvcExpc3RlbmVyc0lES2V5XSA9IHJlYWN0VG9wTGlzdGVuZXJzQ291bnRlcisrO1xuICAgIGFscmVhZHlMaXN0ZW5pbmdUb1ttb3VudEF0W3RvcExpc3RlbmVyc0lES2V5XV0gPSB7fTtcbiAgfVxuICByZXR1cm4gYWxyZWFkeUxpc3RlbmluZ1RvW21vdW50QXRbdG9wTGlzdGVuZXJzSURLZXldXTtcbn1cblxuLyoqXG4gKiBgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyYCBpcyB1c2VkIHRvIGF0dGFjaCB0b3AtbGV2ZWwgZXZlbnQgbGlzdGVuZXJzLiBGb3JcbiAqIGV4YW1wbGU6XG4gKlxuICogICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIucHV0TGlzdGVuZXIoJ215SUQnLCAnb25DbGljaycsIG15RnVuY3Rpb24pO1xuICpcbiAqIFRoaXMgd291bGQgYWxsb2NhdGUgYSBcInJlZ2lzdHJhdGlvblwiIG9mIGAoJ29uQ2xpY2snLCBteUZ1bmN0aW9uKWAgb24gJ215SUQnLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG52YXIgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyID0gYXNzaWduKHt9LCBSZWFjdEV2ZW50RW1pdHRlck1peGluLCB7XG5cbiAgLyoqXG4gICAqIEluamVjdGFibGUgZXZlbnQgYmFja2VuZFxuICAgKi9cbiAgUmVhY3RFdmVudExpc3RlbmVyOiBudWxsLFxuXG4gIGluamVjdGlvbjoge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBSZWFjdEV2ZW50TGlzdGVuZXJcbiAgICAgKi9cbiAgICBpbmplY3RSZWFjdEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uIChSZWFjdEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIFJlYWN0RXZlbnRMaXN0ZW5lci5zZXRIYW5kbGVUb3BMZXZlbChSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaGFuZGxlVG9wTGV2ZWwpO1xuICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lciA9IFJlYWN0RXZlbnRMaXN0ZW5lcjtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciBvciBub3QgYW55IGNyZWF0ZWQgY2FsbGJhY2tzIHNob3VsZCBiZSBlbmFibGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZWQgVHJ1ZSBpZiBjYWxsYmFja3Mgc2hvdWxkIGJlIGVuYWJsZWQuXG4gICAqL1xuICBzZXRFbmFibGVkOiBmdW5jdGlvbiAoZW5hYmxlZCkge1xuICAgIGlmIChSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyKSB7XG4gICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnNldEVuYWJsZWQoZW5hYmxlZCk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGNhbGxiYWNrcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIGlzRW5hYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIShSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyICYmIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIuaXNFbmFibGVkKCkpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBXZSBsaXN0ZW4gZm9yIGJ1YmJsZWQgdG91Y2ggZXZlbnRzIG9uIHRoZSBkb2N1bWVudCBvYmplY3QuXG4gICAqXG4gICAqIEZpcmVmb3ggdjguMDEgKGFuZCBwb3NzaWJseSBvdGhlcnMpIGV4aGliaXRlZCBzdHJhbmdlIGJlaGF2aW9yIHdoZW5cbiAgICogbW91bnRpbmcgYG9ubW91c2Vtb3ZlYCBldmVudHMgYXQgc29tZSBub2RlIHRoYXQgd2FzIG5vdCB0aGUgZG9jdW1lbnRcbiAgICogZWxlbWVudC4gVGhlIHN5bXB0b21zIHdlcmUgdGhhdCBpZiB5b3VyIG1vdXNlIGlzIG5vdCBtb3Zpbmcgb3ZlciBzb21ldGhpbmdcbiAgICogY29udGFpbmVkIHdpdGhpbiB0aGF0IG1vdW50IHBvaW50IChmb3IgZXhhbXBsZSBvbiB0aGUgYmFja2dyb3VuZCkgdGhlXG4gICAqIHRvcC1sZXZlbCBsaXN0ZW5lcnMgZm9yIGBvbm1vdXNlbW92ZWAgd29uJ3QgYmUgY2FsbGVkLiBIb3dldmVyLCBpZiB5b3VcbiAgICogcmVnaXN0ZXIgdGhlIGBtb3VzZW1vdmVgIG9uIHRoZSBkb2N1bWVudCBvYmplY3QsIHRoZW4gaXQgd2lsbCBvZiBjb3Vyc2VcbiAgICogY2F0Y2ggYWxsIGBtb3VzZW1vdmVgcy4gVGhpcyBhbG9uZyB3aXRoIGlPUyBxdWlya3MsIGp1c3RpZmllcyByZXN0cmljdGluZ1xuICAgKiB0b3AtbGV2ZWwgbGlzdGVuZXJzIHRvIHRoZSBkb2N1bWVudCBvYmplY3Qgb25seSwgYXQgbGVhc3QgZm9yIHRoZXNlXG4gICAqIG1vdmVtZW50IHR5cGVzIG9mIGV2ZW50cyBhbmQgcG9zc2libHkgYWxsIGV2ZW50cy5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxMC8wOS9jbGlja19ldmVudF9kZWwuaHRtbFxuICAgKlxuICAgKiBBbHNvLCBga2V5dXBgL2BrZXlwcmVzc2AvYGtleWRvd25gIGRvIG5vdCBidWJibGUgdG8gdGhlIHdpbmRvdyBvbiBJRSwgYnV0XG4gICAqIHRoZXkgYnViYmxlIHRvIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZW50RG9jdW1lbnRIYW5kbGUgRG9jdW1lbnQgd2hpY2ggb3ducyB0aGUgY29udGFpbmVyXG4gICAqL1xuICBsaXN0ZW5UbzogZnVuY3Rpb24gKHJlZ2lzdHJhdGlvbk5hbWUsIGNvbnRlbnREb2N1bWVudEhhbmRsZSkge1xuICAgIHZhciBtb3VudEF0ID0gY29udGVudERvY3VtZW50SGFuZGxlO1xuICAgIHZhciBpc0xpc3RlbmluZyA9IGdldExpc3RlbmluZ0ZvckRvY3VtZW50KG1vdW50QXQpO1xuICAgIHZhciBkZXBlbmRlbmNpZXMgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXNbcmVnaXN0cmF0aW9uTmFtZV07XG5cbiAgICB2YXIgdG9wTGV2ZWxUeXBlcyA9IEV2ZW50Q29uc3RhbnRzLnRvcExldmVsVHlwZXM7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkZXBlbmRlbmN5ID0gZGVwZW5kZW5jaWVzW2ldO1xuICAgICAgaWYgKCEoaXNMaXN0ZW5pbmcuaGFzT3duUHJvcGVydHkoZGVwZW5kZW5jeSkgJiYgaXNMaXN0ZW5pbmdbZGVwZW5kZW5jeV0pKSB7XG4gICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSB0b3BMZXZlbFR5cGVzLnRvcFdoZWVsKSB7XG4gICAgICAgICAgaWYgKGlzRXZlbnRTdXBwb3J0ZWQoJ3doZWVsJykpIHtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCh0b3BMZXZlbFR5cGVzLnRvcFdoZWVsLCAnd2hlZWwnLCBtb3VudEF0KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRXZlbnRTdXBwb3J0ZWQoJ21vdXNld2hlZWwnKSkge1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KHRvcExldmVsVHlwZXMudG9wV2hlZWwsICdtb3VzZXdoZWVsJywgbW91bnRBdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZpcmVmb3ggbmVlZHMgdG8gY2FwdHVyZSBhIGRpZmZlcmVudCBtb3VzZSBzY3JvbGwgZXZlbnQuXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvZG9tL2V2ZW50cy90ZXN0cy9zY3JvbGwuaHRtbFxuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KHRvcExldmVsVHlwZXMudG9wV2hlZWwsICdET01Nb3VzZVNjcm9sbCcsIG1vdW50QXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkZXBlbmRlbmN5ID09PSB0b3BMZXZlbFR5cGVzLnRvcFNjcm9sbCkge1xuXG4gICAgICAgICAgaWYgKGlzRXZlbnRTdXBwb3J0ZWQoJ3Njcm9sbCcsIHRydWUpKSB7XG4gICAgICAgICAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBDYXB0dXJlZEV2ZW50KHRvcExldmVsVHlwZXMudG9wU2Nyb2xsLCAnc2Nyb2xsJywgbW91bnRBdCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCh0b3BMZXZlbFR5cGVzLnRvcFNjcm9sbCwgJ3Njcm9sbCcsIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIuV0lORE9XX0hBTkRMRSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGRlcGVuZGVuY3kgPT09IHRvcExldmVsVHlwZXMudG9wRm9jdXMgfHwgZGVwZW5kZW5jeSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BCbHVyKSB7XG5cbiAgICAgICAgICBpZiAoaXNFdmVudFN1cHBvcnRlZCgnZm9jdXMnLCB0cnVlKSkge1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQ2FwdHVyZWRFdmVudCh0b3BMZXZlbFR5cGVzLnRvcEZvY3VzLCAnZm9jdXMnLCBtb3VudEF0KTtcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQodG9wTGV2ZWxUeXBlcy50b3BCbHVyLCAnYmx1cicsIG1vdW50QXQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNFdmVudFN1cHBvcnRlZCgnZm9jdXNpbicpKSB7XG4gICAgICAgICAgICAvLyBJRSBoYXMgYGZvY3VzaW5gIGFuZCBgZm9jdXNvdXRgIGV2ZW50cyB3aGljaCBidWJibGUuXG4gICAgICAgICAgICAvLyBAc2VlIGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDA4LzA0L2RlbGVnYXRpbmdfdGhlLmh0bWxcbiAgICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCh0b3BMZXZlbFR5cGVzLnRvcEZvY3VzLCAnZm9jdXNpbicsIG1vdW50QXQpO1xuICAgICAgICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2ZW50KHRvcExldmVsVHlwZXMudG9wQmx1ciwgJ2ZvY3Vzb3V0JywgbW91bnRBdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdG8gbWFrZSBzdXJlIGJsdXIgYW5kIGZvY3VzIGV2ZW50IGxpc3RlbmVycyBhcmUgb25seSBhdHRhY2hlZCBvbmNlXG4gICAgICAgICAgaXNMaXN0ZW5pbmdbdG9wTGV2ZWxUeXBlcy50b3BCbHVyXSA9IHRydWU7XG4gICAgICAgICAgaXNMaXN0ZW5pbmdbdG9wTGV2ZWxUeXBlcy50b3BGb2N1c10gPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRvcEV2ZW50TWFwcGluZy5oYXNPd25Qcm9wZXJ0eShkZXBlbmRlbmN5KSkge1xuICAgICAgICAgIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudChkZXBlbmRlbmN5LCB0b3BFdmVudE1hcHBpbmdbZGVwZW5kZW5jeV0sIG1vdW50QXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaXNMaXN0ZW5pbmdbZGVwZW5kZW5jeV0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB0cmFwQnViYmxlZEV2ZW50OiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSkge1xuICAgIHJldHVybiBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSk7XG4gIH0sXG5cbiAgdHJhcENhcHR1cmVkRXZlbnQ6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIGhhbmRsZXJCYXNlTmFtZSwgaGFuZGxlKSB7XG4gICAgcmV0dXJuIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQodG9wTGV2ZWxUeXBlLCBoYW5kbGVyQmFzZU5hbWUsIGhhbmRsZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gd2luZG93IHNjcm9sbCBhbmQgcmVzaXplIGV2ZW50cy4gV2UgY2FjaGUgc2Nyb2xsIHZhbHVlcyBzbyB0aGF0XG4gICAqIGFwcGxpY2F0aW9uIGNvZGUgY2FuIGFjY2VzcyB0aGVtIHdpdGhvdXQgdHJpZ2dlcmluZyByZWZsb3dzLlxuICAgKlxuICAgKiBOT1RFOiBTY3JvbGwgZXZlbnRzIGRvIG5vdCBidWJibGUuXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9kb20vZXZlbnRzL3Njcm9sbC5odG1sXG4gICAqL1xuICBlbnN1cmVTY3JvbGxWYWx1ZU1vbml0b3Jpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWlzTW9uaXRvcmluZ1Njcm9sbFZhbHVlKSB7XG4gICAgICB2YXIgcmVmcmVzaCA9IFZpZXdwb3J0TWV0cmljcy5yZWZyZXNoU2Nyb2xsVmFsdWVzO1xuICAgICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLlJlYWN0RXZlbnRMaXN0ZW5lci5tb25pdG9yU2Nyb2xsVmFsdWUocmVmcmVzaCk7XG4gICAgICBpc01vbml0b3JpbmdTY3JvbGxWYWx1ZSA9IHRydWU7XG4gICAgfVxuICB9LFxuXG4gIGV2ZW50TmFtZURpc3BhdGNoQ29uZmlnczogRXZlbnRQbHVnaW5IdWIuZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzLFxuXG4gIHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzOiBFdmVudFBsdWdpbkh1Yi5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcyxcblxuICBwdXRMaXN0ZW5lcjogRXZlbnRQbHVnaW5IdWIucHV0TGlzdGVuZXIsXG5cbiAgZ2V0TGlzdGVuZXI6IEV2ZW50UGx1Z2luSHViLmdldExpc3RlbmVyLFxuXG4gIGRlbGV0ZUxpc3RlbmVyOiBFdmVudFBsdWdpbkh1Yi5kZWxldGVMaXN0ZW5lcixcblxuICBkZWxldGVBbGxMaXN0ZW5lcnM6IEV2ZW50UGx1Z2luSHViLmRlbGV0ZUFsbExpc3RlbmVyc1xuXG59KTtcblxuUmVhY3RQZXJmLm1lYXN1cmVNZXRob2RzKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciwgJ1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlcicsIHtcbiAgcHV0TGlzdGVuZXI6ICdwdXRMaXN0ZW5lcicsXG4gIGRlbGV0ZUxpc3RlbmVyOiAnZGVsZXRlTGlzdGVuZXInXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXI7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 30 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventConstants\n */\n\n'use strict';\n\nvar keyMirror = __webpack_require__(17);\n\nvar PropagationPhases = keyMirror({ bubbled: null, captured: null });\n\n/**\n * Types of raw signals from the browser caught at the top level.\n */\nvar topLevelTypes = keyMirror({\n topAbort: null,\n topBlur: null,\n topCanPlay: null,\n topCanPlayThrough: null,\n topChange: null,\n topClick: null,\n topCompositionEnd: null,\n topCompositionStart: null,\n topCompositionUpdate: null,\n topContextMenu: null,\n topCopy: null,\n topCut: null,\n topDoubleClick: null,\n topDrag: null,\n topDragEnd: null,\n topDragEnter: null,\n topDragExit: null,\n topDragLeave: null,\n topDragOver: null,\n topDragStart: null,\n topDrop: null,\n topDurationChange: null,\n topEmptied: null,\n topEncrypted: null,\n topEnded: null,\n topError: null,\n topFocus: null,\n topInput: null,\n topKeyDown: null,\n topKeyPress: null,\n topKeyUp: null,\n topLoad: null,\n topLoadedData: null,\n topLoadedMetadata: null,\n topLoadStart: null,\n topMouseDown: null,\n topMouseMove: null,\n topMouseOut: null,\n topMouseOver: null,\n topMouseUp: null,\n topPaste: null,\n topPause: null,\n topPlay: null,\n topPlaying: null,\n topProgress: null,\n topRateChange: null,\n topReset: null,\n topScroll: null,\n topSeeked: null,\n topSeeking: null,\n topSelectionChange: null,\n topStalled: null,\n topSubmit: null,\n topSuspend: null,\n topTextInput: null,\n topTimeUpdate: null,\n topTouchCancel: null,\n topTouchEnd: null,\n topTouchMove: null,\n topTouchStart: null,\n topVolumeChange: null,\n topWaiting: null,\n topWheel: null\n});\n\nvar EventConstants = {\n topLevelTypes: topLevelTypes,\n PropagationPhases: PropagationPhases\n};\n\nmodule.exports = EventConstants;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRXZlbnRDb25zdGFudHMuanM/ZGQ1ZCJdLCJuYW1lcyI6WyJrZXlNaXJyb3IiLCJyZXF1aXJlIiwiUHJvcGFnYXRpb25QaGFzZXMiLCJidWJibGVkIiwiY2FwdHVyZWQiLCJ0b3BMZXZlbFR5cGVzIiwidG9wQWJvcnQiLCJ0b3BCbHVyIiwidG9wQ2FuUGxheSIsInRvcENhblBsYXlUaHJvdWdoIiwidG9wQ2hhbmdlIiwidG9wQ2xpY2siLCJ0b3BDb21wb3NpdGlvbkVuZCIsInRvcENvbXBvc2l0aW9uU3RhcnQiLCJ0b3BDb21wb3NpdGlvblVwZGF0ZSIsInRvcENvbnRleHRNZW51IiwidG9wQ29weSIsInRvcEN1dCIsInRvcERvdWJsZUNsaWNrIiwidG9wRHJhZyIsInRvcERyYWdFbmQiLCJ0b3BEcmFnRW50ZXIiLCJ0b3BEcmFnRXhpdCIsInRvcERyYWdMZWF2ZSIsInRvcERyYWdPdmVyIiwidG9wRHJhZ1N0YXJ0IiwidG9wRHJvcCIsInRvcER1cmF0aW9uQ2hhbmdlIiwidG9wRW1wdGllZCIsInRvcEVuY3J5cHRlZCIsInRvcEVuZGVkIiwidG9wRXJyb3IiLCJ0b3BGb2N1cyIsInRvcElucHV0IiwidG9wS2V5RG93biIsInRvcEtleVByZXNzIiwidG9wS2V5VXAiLCJ0b3BMb2FkIiwidG9wTG9hZGVkRGF0YSIsInRvcExvYWRlZE1ldGFkYXRhIiwidG9wTG9hZFN0YXJ0IiwidG9wTW91c2VEb3duIiwidG9wTW91c2VNb3ZlIiwidG9wTW91c2VPdXQiLCJ0b3BNb3VzZU92ZXIiLCJ0b3BNb3VzZVVwIiwidG9wUGFzdGUiLCJ0b3BQYXVzZSIsInRvcFBsYXkiLCJ0b3BQbGF5aW5nIiwidG9wUHJvZ3Jlc3MiLCJ0b3BSYXRlQ2hhbmdlIiwidG9wUmVzZXQiLCJ0b3BTY3JvbGwiLCJ0b3BTZWVrZWQiLCJ0b3BTZWVraW5nIiwidG9wU2VsZWN0aW9uQ2hhbmdlIiwidG9wU3RhbGxlZCIsInRvcFN1Ym1pdCIsInRvcFN1c3BlbmQiLCJ0b3BUZXh0SW5wdXQiLCJ0b3BUaW1lVXBkYXRlIiwidG9wVG91Y2hDYW5jZWwiLCJ0b3BUb3VjaEVuZCIsInRvcFRvdWNoTW92ZSIsInRvcFRvdWNoU3RhcnQiLCJ0b3BWb2x1bWVDaGFuZ2UiLCJ0b3BXYWl0aW5nIiwidG9wV2hlZWwiLCJFdmVudENvbnN0YW50cyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLFlBQVksbUJBQUFDLENBQVEsRUFBUixDQUFoQjs7QUFFQSxJQUFJQyxvQkFBb0JGLFVBQVUsRUFBRUcsU0FBUyxJQUFYLEVBQWlCQyxVQUFVLElBQTNCLEVBQVYsQ0FBeEI7O0FBRUE7OztBQUdBLElBQUlDLGdCQUFnQkwsVUFBVTtBQUM1Qk0sWUFBVSxJQURrQjtBQUU1QkMsV0FBUyxJQUZtQjtBQUc1QkMsY0FBWSxJQUhnQjtBQUk1QkMscUJBQW1CLElBSlM7QUFLNUJDLGFBQVcsSUFMaUI7QUFNNUJDLFlBQVUsSUFOa0I7QUFPNUJDLHFCQUFtQixJQVBTO0FBUTVCQyx1QkFBcUIsSUFSTztBQVM1QkMsd0JBQXNCLElBVE07QUFVNUJDLGtCQUFnQixJQVZZO0FBVzVCQyxXQUFTLElBWG1CO0FBWTVCQyxVQUFRLElBWm9CO0FBYTVCQyxrQkFBZ0IsSUFiWTtBQWM1QkMsV0FBUyxJQWRtQjtBQWU1QkMsY0FBWSxJQWZnQjtBQWdCNUJDLGdCQUFjLElBaEJjO0FBaUI1QkMsZUFBYSxJQWpCZTtBQWtCNUJDLGdCQUFjLElBbEJjO0FBbUI1QkMsZUFBYSxJQW5CZTtBQW9CNUJDLGdCQUFjLElBcEJjO0FBcUI1QkMsV0FBUyxJQXJCbUI7QUFzQjVCQyxxQkFBbUIsSUF0QlM7QUF1QjVCQyxjQUFZLElBdkJnQjtBQXdCNUJDLGdCQUFjLElBeEJjO0FBeUI1QkMsWUFBVSxJQXpCa0I7QUEwQjVCQyxZQUFVLElBMUJrQjtBQTJCNUJDLFlBQVUsSUEzQmtCO0FBNEI1QkMsWUFBVSxJQTVCa0I7QUE2QjVCQyxjQUFZLElBN0JnQjtBQThCNUJDLGVBQWEsSUE5QmU7QUErQjVCQyxZQUFVLElBL0JrQjtBQWdDNUJDLFdBQVMsSUFoQ21CO0FBaUM1QkMsaUJBQWUsSUFqQ2E7QUFrQzVCQyxxQkFBbUIsSUFsQ1M7QUFtQzVCQyxnQkFBYyxJQW5DYztBQW9DNUJDLGdCQUFjLElBcENjO0FBcUM1QkMsZ0JBQWMsSUFyQ2M7QUFzQzVCQyxlQUFhLElBdENlO0FBdUM1QkMsZ0JBQWMsSUF2Q2M7QUF3QzVCQyxjQUFZLElBeENnQjtBQXlDNUJDLFlBQVUsSUF6Q2tCO0FBMEM1QkMsWUFBVSxJQTFDa0I7QUEyQzVCQyxXQUFTLElBM0NtQjtBQTRDNUJDLGNBQVksSUE1Q2dCO0FBNkM1QkMsZUFBYSxJQTdDZTtBQThDNUJDLGlCQUFlLElBOUNhO0FBK0M1QkMsWUFBVSxJQS9Da0I7QUFnRDVCQyxhQUFXLElBaERpQjtBQWlENUJDLGFBQVcsSUFqRGlCO0FBa0Q1QkMsY0FBWSxJQWxEZ0I7QUFtRDVCQyxzQkFBb0IsSUFuRFE7QUFvRDVCQyxjQUFZLElBcERnQjtBQXFENUJDLGFBQVcsSUFyRGlCO0FBc0Q1QkMsY0FBWSxJQXREZ0I7QUF1RDVCQyxnQkFBYyxJQXZEYztBQXdENUJDLGlCQUFlLElBeERhO0FBeUQ1QkMsa0JBQWdCLElBekRZO0FBMEQ1QkMsZUFBYSxJQTFEZTtBQTJENUJDLGdCQUFjLElBM0RjO0FBNEQ1QkMsaUJBQWUsSUE1RGE7QUE2RDVCQyxtQkFBaUIsSUE3RFc7QUE4RDVCQyxjQUFZLElBOURnQjtBQStENUJDLFlBQVU7QUEvRGtCLENBQVYsQ0FBcEI7O0FBa0VBLElBQUlDLGlCQUFpQjtBQUNuQmhFLGlCQUFlQSxhQURJO0FBRW5CSCxxQkFBbUJBO0FBRkEsQ0FBckI7O0FBS0FvRSxPQUFPQyxPQUFQLEdBQWlCRixjQUFqQiIsImZpbGUiOiIzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBFdmVudENvbnN0YW50c1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGtleU1pcnJvciA9IHJlcXVpcmUoJ2ZianMvbGliL2tleU1pcnJvcicpO1xuXG52YXIgUHJvcGFnYXRpb25QaGFzZXMgPSBrZXlNaXJyb3IoeyBidWJibGVkOiBudWxsLCBjYXB0dXJlZDogbnVsbCB9KTtcblxuLyoqXG4gKiBUeXBlcyBvZiByYXcgc2lnbmFscyBmcm9tIHRoZSBicm93c2VyIGNhdWdodCBhdCB0aGUgdG9wIGxldmVsLlxuICovXG52YXIgdG9wTGV2ZWxUeXBlcyA9IGtleU1pcnJvcih7XG4gIHRvcEFib3J0OiBudWxsLFxuICB0b3BCbHVyOiBudWxsLFxuICB0b3BDYW5QbGF5OiBudWxsLFxuICB0b3BDYW5QbGF5VGhyb3VnaDogbnVsbCxcbiAgdG9wQ2hhbmdlOiBudWxsLFxuICB0b3BDbGljazogbnVsbCxcbiAgdG9wQ29tcG9zaXRpb25FbmQ6IG51bGwsXG4gIHRvcENvbXBvc2l0aW9uU3RhcnQ6IG51bGwsXG4gIHRvcENvbXBvc2l0aW9uVXBkYXRlOiBudWxsLFxuICB0b3BDb250ZXh0TWVudTogbnVsbCxcbiAgdG9wQ29weTogbnVsbCxcbiAgdG9wQ3V0OiBudWxsLFxuICB0b3BEb3VibGVDbGljazogbnVsbCxcbiAgdG9wRHJhZzogbnVsbCxcbiAgdG9wRHJhZ0VuZDogbnVsbCxcbiAgdG9wRHJhZ0VudGVyOiBudWxsLFxuICB0b3BEcmFnRXhpdDogbnVsbCxcbiAgdG9wRHJhZ0xlYXZlOiBudWxsLFxuICB0b3BEcmFnT3ZlcjogbnVsbCxcbiAgdG9wRHJhZ1N0YXJ0OiBudWxsLFxuICB0b3BEcm9wOiBudWxsLFxuICB0b3BEdXJhdGlvbkNoYW5nZTogbnVsbCxcbiAgdG9wRW1wdGllZDogbnVsbCxcbiAgdG9wRW5jcnlwdGVkOiBudWxsLFxuICB0b3BFbmRlZDogbnVsbCxcbiAgdG9wRXJyb3I6IG51bGwsXG4gIHRvcEZvY3VzOiBudWxsLFxuICB0b3BJbnB1dDogbnVsbCxcbiAgdG9wS2V5RG93bjogbnVsbCxcbiAgdG9wS2V5UHJlc3M6IG51bGwsXG4gIHRvcEtleVVwOiBudWxsLFxuICB0b3BMb2FkOiBudWxsLFxuICB0b3BMb2FkZWREYXRhOiBudWxsLFxuICB0b3BMb2FkZWRNZXRhZGF0YTogbnVsbCxcbiAgdG9wTG9hZFN0YXJ0OiBudWxsLFxuICB0b3BNb3VzZURvd246IG51bGwsXG4gIHRvcE1vdXNlTW92ZTogbnVsbCxcbiAgdG9wTW91c2VPdXQ6IG51bGwsXG4gIHRvcE1vdXNlT3ZlcjogbnVsbCxcbiAgdG9wTW91c2VVcDogbnVsbCxcbiAgdG9wUGFzdGU6IG51bGwsXG4gIHRvcFBhdXNlOiBudWxsLFxuICB0b3BQbGF5OiBudWxsLFxuICB0b3BQbGF5aW5nOiBudWxsLFxuICB0b3BQcm9ncmVzczogbnVsbCxcbiAgdG9wUmF0ZUNoYW5nZTogbnVsbCxcbiAgdG9wUmVzZXQ6IG51bGwsXG4gIHRvcFNjcm9sbDogbnVsbCxcbiAgdG9wU2Vla2VkOiBudWxsLFxuICB0b3BTZWVraW5nOiBudWxsLFxuICB0b3BTZWxlY3Rpb25DaGFuZ2U6IG51bGwsXG4gIHRvcFN0YWxsZWQ6IG51bGwsXG4gIHRvcFN1Ym1pdDogbnVsbCxcbiAgdG9wU3VzcGVuZDogbnVsbCxcbiAgdG9wVGV4dElucHV0OiBudWxsLFxuICB0b3BUaW1lVXBkYXRlOiBudWxsLFxuICB0b3BUb3VjaENhbmNlbDogbnVsbCxcbiAgdG9wVG91Y2hFbmQ6IG51bGwsXG4gIHRvcFRvdWNoTW92ZTogbnVsbCxcbiAgdG9wVG91Y2hTdGFydDogbnVsbCxcbiAgdG9wVm9sdW1lQ2hhbmdlOiBudWxsLFxuICB0b3BXYWl0aW5nOiBudWxsLFxuICB0b3BXaGVlbDogbnVsbFxufSk7XG5cbnZhciBFdmVudENvbnN0YW50cyA9IHtcbiAgdG9wTGV2ZWxUeXBlczogdG9wTGV2ZWxUeXBlcyxcbiAgUHJvcGFnYXRpb25QaGFzZXM6IFByb3BhZ2F0aW9uUGhhc2VzXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50Q29uc3RhbnRzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9FdmVudENvbnN0YW50cy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 31 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginHub\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar EventPluginRegistry = __webpack_require__(32);\nvar EventPluginUtils = __webpack_require__(33);\nvar ReactErrorUtils = __webpack_require__(34);\n\nvar accumulateInto = __webpack_require__(35);\nvar forEachAccumulated = __webpack_require__(36);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\n/**\n * Internal store for event listeners\n */\nvar listenerBank = {};\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @private\n */\nvar executeDispatchesAndRelease = function executeDispatchesAndRelease(event, simulated) {\n if (event) {\n EventPluginUtils.executeDispatchesInOrder(event, simulated);\n\n if (!event.isPersistent()) {\n event.constructor.release(event);\n }\n }\n};\nvar executeDispatchesAndReleaseSimulated = function executeDispatchesAndReleaseSimulated(e) {\n return executeDispatchesAndRelease(e, true);\n};\nvar executeDispatchesAndReleaseTopLevel = function executeDispatchesAndReleaseTopLevel(e) {\n return executeDispatchesAndRelease(e, false);\n};\n\n/**\n * - `InstanceHandle`: [required] Module that performs logical traversals of DOM\n * hierarchy given ids of the logical DOM elements involved.\n */\nvar InstanceHandle = null;\n\nfunction validateInstanceHandle() {\n var valid = InstanceHandle && InstanceHandle.traverseTwoPhase && InstanceHandle.traverseEnterLeave;\n process.env.NODE_ENV !== 'production' ? warning(valid, 'InstanceHandle not injected before use!') : undefined;\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n * `extractEvents` {function(string, DOMEventTarget, string, object): *}\n * Required. When a top-level event is fired, this method is expected to\n * extract synthetic events that will in turn be queued and dispatched.\n *\n * `eventTypes` {object}\n * Optional, plugins that fire events must publish a mapping of registration\n * names that are used to register listeners. Values of this mapping must\n * be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n * `executeDispatch` {function(object, function, string)}\n * Optional, allows plugins to override how an event gets dispatched. By\n * default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\nvar EventPluginHub = {\n\n /**\n * Methods for injecting dependencies.\n */\n injection: {\n\n /**\n * @param {object} InjectedMount\n * @public\n */\n injectMount: EventPluginUtils.injection.injectMount,\n\n /**\n * @param {object} InjectedInstanceHandle\n * @public\n */\n injectInstanceHandle: function injectInstanceHandle(InjectedInstanceHandle) {\n InstanceHandle = InjectedInstanceHandle;\n if (process.env.NODE_ENV !== 'production') {\n validateInstanceHandle();\n }\n },\n\n getInstanceHandle: function getInstanceHandle() {\n if (process.env.NODE_ENV !== 'production') {\n validateInstanceHandle();\n }\n return InstanceHandle;\n },\n\n /**\n * @param {array} InjectedEventPluginOrder\n * @public\n */\n injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,\n\n /**\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n */\n injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName\n\n },\n\n eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs,\n\n registrationNameModules: EventPluginRegistry.registrationNameModules,\n\n /**\n * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent.\n *\n * @param {string} id ID of the DOM element.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {?function} listener The callback to store.\n */\n putListener: function putListener(id, registrationName, listener) {\n !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener === 'undefined' ? 'undefined' : _typeof(listener)) : invariant(false) : undefined;\n\n var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});\n bankForRegistrationName[id] = listener;\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.didPutListener) {\n PluginModule.didPutListener(id, registrationName, listener);\n }\n },\n\n /**\n * @param {string} id ID of the DOM element.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n getListener: function getListener(id, registrationName) {\n var bankForRegistrationName = listenerBank[registrationName];\n return bankForRegistrationName && bankForRegistrationName[id];\n },\n\n /**\n * Deletes a listener from the registration bank.\n *\n * @param {string} id ID of the DOM element.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n */\n deleteListener: function deleteListener(id, registrationName) {\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(id, registrationName);\n }\n\n var bankForRegistrationName = listenerBank[registrationName];\n // TODO: This should never be null -- when is it?\n if (bankForRegistrationName) {\n delete bankForRegistrationName[id];\n }\n },\n\n /**\n * Deletes all listeners for the DOM element with the supplied ID.\n *\n * @param {string} id ID of the DOM element.\n */\n deleteAllListeners: function deleteAllListeners(id) {\n for (var registrationName in listenerBank) {\n if (!listenerBank[registrationName][id]) {\n continue;\n }\n\n var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];\n if (PluginModule && PluginModule.willDeleteListener) {\n PluginModule.willDeleteListener(id, registrationName);\n }\n\n delete listenerBank[registrationName][id];\n }\n },\n\n /**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\n extractEvents: function extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n var events;\n var plugins = EventPluginRegistry.plugins;\n for (var i = 0; i < plugins.length; i++) {\n // Not every plugin in the ordering may be loaded at runtime.\n var possiblePlugin = plugins[i];\n if (possiblePlugin) {\n var extractedEvents = possiblePlugin.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n if (extractedEvents) {\n events = accumulateInto(events, extractedEvents);\n }\n }\n }\n return events;\n },\n\n /**\n * Enqueues a synthetic event that should be dispatched when\n * `processEventQueue` is invoked.\n *\n * @param {*} events An accumulation of synthetic events.\n * @internal\n */\n enqueueEvents: function enqueueEvents(events) {\n if (events) {\n eventQueue = accumulateInto(eventQueue, events);\n }\n },\n\n /**\n * Dispatches all synthetic events on the event queue.\n *\n * @internal\n */\n processEventQueue: function processEventQueue(simulated) {\n // Set `eventQueue` to null before processing it so that we can tell if more\n // events get enqueued while processing.\n var processingEventQueue = eventQueue;\n eventQueue = null;\n if (simulated) {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);\n } else {\n forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n }\n !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing ' + 'an event queue. Support for this has not yet been implemented.') : invariant(false) : undefined;\n // This would be a good time to rethrow if any of the event handlers threw.\n ReactErrorUtils.rethrowCaughtError();\n },\n\n /**\n * These are needed for tests only. Do not use!\n */\n __purge: function __purge() {\n listenerBank = {};\n },\n\n __getListenerBank: function __getListenerBank() {\n return listenerBank;\n }\n\n};\n\nmodule.exports = EventPluginHub;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRXZlbnRQbHVnaW5IdWIuanM/ZTdjYSJdLCJuYW1lcyI6WyJFdmVudFBsdWdpblJlZ2lzdHJ5IiwicmVxdWlyZSIsIkV2ZW50UGx1Z2luVXRpbHMiLCJSZWFjdEVycm9yVXRpbHMiLCJhY2N1bXVsYXRlSW50byIsImZvckVhY2hBY2N1bXVsYXRlZCIsImludmFyaWFudCIsIndhcm5pbmciLCJsaXN0ZW5lckJhbmsiLCJldmVudFF1ZXVlIiwiZXhlY3V0ZURpc3BhdGNoZXNBbmRSZWxlYXNlIiwiZXZlbnQiLCJzaW11bGF0ZWQiLCJleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXIiLCJpc1BlcnNpc3RlbnQiLCJjb25zdHJ1Y3RvciIsInJlbGVhc2UiLCJleGVjdXRlRGlzcGF0Y2hlc0FuZFJlbGVhc2VTaW11bGF0ZWQiLCJlIiwiZXhlY3V0ZURpc3BhdGNoZXNBbmRSZWxlYXNlVG9wTGV2ZWwiLCJJbnN0YW5jZUhhbmRsZSIsInZhbGlkYXRlSW5zdGFuY2VIYW5kbGUiLCJ2YWxpZCIsInRyYXZlcnNlVHdvUGhhc2UiLCJ0cmF2ZXJzZUVudGVyTGVhdmUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJFdmVudFBsdWdpbkh1YiIsImluamVjdGlvbiIsImluamVjdE1vdW50IiwiaW5qZWN0SW5zdGFuY2VIYW5kbGUiLCJJbmplY3RlZEluc3RhbmNlSGFuZGxlIiwiZ2V0SW5zdGFuY2VIYW5kbGUiLCJpbmplY3RFdmVudFBsdWdpbk9yZGVyIiwiaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lIiwiZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzIiwicmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMiLCJwdXRMaXN0ZW5lciIsImlkIiwicmVnaXN0cmF0aW9uTmFtZSIsImxpc3RlbmVyIiwiYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUiLCJQbHVnaW5Nb2R1bGUiLCJkaWRQdXRMaXN0ZW5lciIsImdldExpc3RlbmVyIiwiZGVsZXRlTGlzdGVuZXIiLCJ3aWxsRGVsZXRlTGlzdGVuZXIiLCJkZWxldGVBbGxMaXN0ZW5lcnMiLCJleHRyYWN0RXZlbnRzIiwidG9wTGV2ZWxUeXBlIiwidG9wTGV2ZWxUYXJnZXQiLCJ0b3BMZXZlbFRhcmdldElEIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsImV2ZW50cyIsInBsdWdpbnMiLCJpIiwibGVuZ3RoIiwicG9zc2libGVQbHVnaW4iLCJleHRyYWN0ZWRFdmVudHMiLCJlbnF1ZXVlRXZlbnRzIiwicHJvY2Vzc0V2ZW50UXVldWUiLCJwcm9jZXNzaW5nRXZlbnRRdWV1ZSIsInJldGhyb3dDYXVnaHRFcnJvciIsIl9fcHVyZ2UiLCJfX2dldExpc3RlbmVyQmFuayIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOzs7O0FBRUEsSUFBSUEsc0JBQXNCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBMUI7QUFDQSxJQUFJQyxtQkFBbUIsbUJBQUFELENBQVEsRUFBUixDQUF2QjtBQUNBLElBQUlFLGtCQUFrQixtQkFBQUYsQ0FBUSxFQUFSLENBQXRCOztBQUVBLElBQUlHLGlCQUFpQixtQkFBQUgsQ0FBUSxFQUFSLENBQXJCO0FBQ0EsSUFBSUkscUJBQXFCLG1CQUFBSixDQUFRLEVBQVIsQ0FBekI7QUFDQSxJQUFJSyxZQUFZLG1CQUFBTCxDQUFRLEVBQVIsQ0FBaEI7QUFDQSxJQUFJTSxVQUFVLG1CQUFBTixDQUFRLEVBQVIsQ0FBZDs7QUFFQTs7O0FBR0EsSUFBSU8sZUFBZSxFQUFuQjs7QUFFQTs7OztBQUlBLElBQUlDLGFBQWEsSUFBakI7O0FBRUE7Ozs7Ozs7QUFPQSxJQUFJQyw4QkFBOEIsU0FBOUJBLDJCQUE4QixDQUFVQyxLQUFWLEVBQWlCQyxTQUFqQixFQUE0QjtBQUM1RCxNQUFJRCxLQUFKLEVBQVc7QUFDVFQscUJBQWlCVyx3QkFB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ZmlsZSI6IjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIEV2ZW50UGx1Z2luSHViXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRQbHVnaW5SZWdpc3RyeSA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5SZWdpc3RyeScpO1xudmFyIEV2ZW50UGx1Z2luVXRpbHMgPSByZXF1aXJlKCcuL0V2ZW50UGx1Z2luVXRpbHMnKTtcbnZhciBSZWFjdEVycm9yVXRpbHMgPSByZXF1aXJlKCcuL1JlYWN0RXJyb3JVdGlscycpO1xuXG52YXIgYWNjdW11bGF0ZUludG8gPSByZXF1aXJlKCcuL2FjY3VtdWxhdGVJbnRvJyk7XG52YXIgZm9yRWFjaEFjY3VtdWxhdGVkID0gcmVxdWlyZSgnLi9mb3JFYWNoQWNjdW11bGF0ZWQnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG4vKipcbiAqIEludGVybmFsIHN0b3JlIGZvciBldmVudCBsaXN0ZW5lcnNcbiAqL1xudmFyIGxpc3RlbmVyQmFuayA9IHt9O1xuXG4vKipcbiAqIEludGVybmFsIHF1ZXVlIG9mIGV2ZW50cyB0aGF0IGhhdmUgYWNjdW11bGF0ZWQgdGhlaXIgZGlzcGF0Y2hlcyBhbmQgYXJlXG4gKiB3YWl0aW5nIHRvIGhhdmUgdGhlaXIgZGlzcGF0Y2hlcyBleGVjdXRlZC5cbiAqL1xudmFyIGV2ZW50UXVldWUgPSBudWxsO1xuXG4vKipcbiAqIERpc3BhdGNoZXMgYW4gZXZlbnQgYW5kIHJlbGVhc2VzIGl0IGJhY2sgaW50byB0aGUgcG9vbCwgdW5sZXNzIHBlcnNpc3RlbnQuXG4gKlxuICogQHBhcmFtIHs/b2JqZWN0fSBldmVudCBTeW50aGV0aWMgZXZlbnQgdG8gYmUgZGlzcGF0Y2hlZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc2ltdWxhdGVkIElmIHRoZSBldmVudCBpcyBzaW11bGF0ZWQgKGNoYW5nZXMgZXhuIGJlaGF2aW9yKVxuICogQHByaXZhdGVcbiAqL1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZSA9IGZ1bmN0aW9uIChldmVudCwgc2ltdWxhdGVkKSB7XG4gIGlmIChldmVudCkge1xuICAgIEV2ZW50UGx1Z2luVXRpbHMuZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyKGV2ZW50LCBzaW11bGF0ZWQpO1xuXG4gICAgaWYgKCFldmVudC5pc1BlcnNpc3RlbnQoKSkge1xuICAgICAgZXZlbnQuY29uc3RydWN0b3IucmVsZWFzZShldmVudCk7XG4gICAgfVxuICB9XG59O1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVNpbXVsYXRlZCA9IGZ1bmN0aW9uIChlKSB7XG4gIHJldHVybiBleGVjdXRlRGlzcGF0Y2hlc0FuZFJlbGVhc2UoZSwgdHJ1ZSk7XG59O1xudmFyIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVRvcExldmVsID0gZnVuY3Rpb24gKGUpIHtcbiAgcmV0dXJuIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZShlLCBmYWxzZSk7XG59O1xuXG4vKipcbiAqIC0gYEluc3RhbmNlSGFuZGxlYDogW3JlcXVpcmVkXSBNb2R1bGUgdGhhdCBwZXJmb3JtcyBsb2dpY2FsIHRyYXZlcnNhbHMgb2YgRE9NXG4gKiAgIGhpZXJhcmNoeSBnaXZlbiBpZHMgb2YgdGhlIGxvZ2ljYWwgRE9NIGVsZW1lbnRzIGludm9sdmVkLlxuICovXG52YXIgSW5zdGFuY2VIYW5kbGUgPSBudWxsO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUluc3RhbmNlSGFuZGxlKCkge1xuICB2YXIgdmFsaWQgPSBJbnN0YW5jZUhhbmRsZSAmJiBJbnN0YW5jZUhhbmRsZS50cmF2ZXJzZVR3b1BoYXNlICYmIEluc3RhbmNlSGFuZGxlLnRyYXZlcnNlRW50ZXJMZWF2ZTtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodmFsaWQsICdJbnN0YW5jZUhhbmRsZSBub3QgaW5qZWN0ZWQgYmVmb3JlIHVzZSEnKSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBUaGlzIGlzIGEgdW5pZmllZCBpbnRlcmZhY2UgZm9yIGV2ZW50IHBsdWdpbnMgdG8gYmUgaW5zdGFsbGVkIGFuZCBjb25maWd1cmVkLlxuICpcbiAqIEV2ZW50IHBsdWdpbnMgY2FuIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICBgZXh0cmFjdEV2ZW50c2Age2Z1bmN0aW9uKHN0cmluZywgRE9NRXZlbnRUYXJnZXQsIHN0cmluZywgb2JqZWN0KTogKn1cbiAqICAgICBSZXF1aXJlZC4gV2hlbiBhIHRvcC1sZXZlbCBldmVudCBpcyBmaXJlZCwgdGhpcyBtZXRob2QgaXMgZXhwZWN0ZWQgdG9cbiAqICAgICBleHRyYWN0IHN5bnRoZXRpYyBldmVudHMgdGhhdCB3aWxsIGluIHR1cm4gYmUgcXVldWVkIGFuZCBkaXNwYXRjaGVkLlxuICpcbiAqICAgYGV2ZW50VHlwZXNgIHtvYmplY3R9XG4gKiAgICAgT3B0aW9uYWwsIHBsdWdpbnMgdGhhdCBmaXJlIGV2ZW50cyBtdXN0IHB1Ymxpc2ggYSBtYXBwaW5nIG9mIHJlZ2lzdHJhdGlvblxuICogICAgIG5hbWVzIHRoYXQgYXJlIHVzZWQgdG8gcmVnaXN0ZXIgbGlzdGVuZXJzLiBWYWx1ZXMgb2YgdGhpcyBtYXBwaW5nIG11c3RcbiAqICAgICBiZSBvYmplY3RzIHRoYXQgY29udGFpbiBgcmVnaXN0cmF0aW9uTmFtZWAgb3IgYHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzYC5cbiAqXG4gKiAgIGBleGVjdXRlRGlzcGF0Y2hgIHtmdW5jdGlvbihvYmplY3QsIGZ1bmN0aW9uLCBzdHJpbmcpfVxuICogICAgIE9wdGlvbmFsLCBhbGxvd3MgcGx1Z2lucyB0byBvdmVycmlkZSBob3cgYW4gZXZlbnQgZ2V0cyBkaXNwYXRjaGVkLiBCeVxuICogICAgIGRlZmF1bHQsIHRoZSBsaXN0ZW5lciBpcyBzaW1wbHkgaW52b2tlZC5cbiAqXG4gKiBFYWNoIHBsdWdpbiB0aGF0IGlzIGluamVjdGVkIGludG8gYEV2ZW50c1BsdWdpbkh1YmAgaXMgaW1tZWRpYXRlbHkgb3BlcmFibGUuXG4gKlxuICogQHB1YmxpY1xuICovXG52YXIgRXZlbnRQbHVnaW5IdWIgPSB7XG5cbiAgLyoqXG4gICAqIE1ldGhvZHMgZm9yIGluamVjdGluZyBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBpbmplY3Rpb246IHtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBJbmplY3RlZE1vdW50XG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGluamVjdE1vdW50OiBFdmVudFBsdWdpblV0aWxzLmluamVjdGlvbi5pbmplY3RNb3VudCxcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBJbmplY3RlZEluc3RhbmNlSGFuZGxlXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGluamVjdEluc3RhbmNlSGFuZGxlOiBmdW5jdGlvbiAoSW5qZWN0ZWRJbnN0YW5jZUhhbmRsZSkge1xuICAgICAgSW5zdGFuY2VIYW5kbGUgPSBJbmplY3RlZEluc3RhbmNlSGFuZGxlO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdmFsaWRhdGVJbnN0YW5jZUhhbmRsZSgpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBnZXRJbnN0YW5jZUhhbmRsZTogZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdmFsaWRhdGVJbnN0YW5jZUhhbmRsZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEluc3RhbmNlSGFuZGxlO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge2FycmF5fSBJbmplY3RlZEV2ZW50UGx1Z2luT3JkZXJcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgaW5qZWN0RXZlbnRQbHVnaW5PcmRlcjogRXZlbnRQbHVnaW5SZWdpc3RyeS5pbmplY3RFdmVudFBsdWdpbk9yZGVyLFxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGluamVjdGVkTmFtZXNUb1BsdWdpbnMgTWFwIGZyb20gbmFtZXMgdG8gcGx1Z2luIG1vZHVsZXMuXG4gICAgICovXG4gICAgaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lOiBFdmVudFBsdWdpblJlZ2lzdHJ5LmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZVxuXG4gIH0sXG5cbiAgZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzOiBFdmVudFBsdWdpblJlZ2lzdHJ5LmV2ZW50TmFtZURpc3BhdGNoQ29uZmlncyxcblxuICByZWdpc3RyYXRpb25OYW1lTW9kdWxlczogRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcyxcblxuICAvKipcbiAgICogU3RvcmVzIGBsaXN0ZW5lcmAgYXQgYGxpc3RlbmVyQmFua1tyZWdpc3RyYXRpb25OYW1lXVtpZF1gLiBJcyBpZGVtcG90ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgSUQgb2YgdGhlIERPTSBlbGVtZW50LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBsaXN0ZW5lciBUaGUgY2FsbGJhY2sgdG8gc3RvcmUuXG4gICAqL1xuICBwdXRMaXN0ZW5lcjogZnVuY3Rpb24gKGlkLCByZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lcikge1xuICAgICEodHlwZW9mIGxpc3RlbmVyID09PSAnZnVuY3Rpb24nKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdFeHBlY3RlZCAlcyBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCB0eXBlICVzJywgcmVnaXN0cmF0aW9uTmFtZSwgdHlwZW9mIGxpc3RlbmVyKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICB2YXIgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUgPSBsaXN0ZW5lckJhbmtbcmVnaXN0cmF0aW9uTmFtZV0gfHwgKGxpc3RlbmVyQmFua1tyZWdpc3RyYXRpb25OYW1lXSA9IHt9KTtcbiAgICBiYW5rRm9yUmVnaXN0cmF0aW9uTmFtZVtpZF0gPSBsaXN0ZW5lcjtcblxuICAgIHZhciBQbHVnaW5Nb2R1bGUgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgIGlmIChQbHVnaW5Nb2R1bGUgJiYgUGx1Z2luTW9kdWxlLmRpZFB1dExpc3RlbmVyKSB7XG4gICAgICBQbHVnaW5Nb2R1bGUuZGlkUHV0TGlzdGVuZXIoaWQsIHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBJRCBvZiB0aGUgRE9NIGVsZW1lbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWdpc3RyYXRpb25OYW1lIE5hbWUgb2YgbGlzdGVuZXIgKGUuZy4gYG9uQ2xpY2tgKS5cbiAgICogQHJldHVybiB7P2Z1bmN0aW9ufSBUaGUgc3RvcmVkIGNhbGxiYWNrLlxuICAgKi9cbiAgZ2V0TGlzdGVuZXI6IGZ1bmN0aW9uIChpZCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICAgIHZhciBiYW5rRm9yUmVnaXN0cmF0aW9uTmFtZSA9IGxpc3RlbmVyQmFua1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICByZXR1cm4gYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWUgJiYgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWVbaWRdO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgbGlzdGVuZXIgZnJvbSB0aGUgcmVnaXN0cmF0aW9uIGJhbmsuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBJRCBvZiB0aGUgRE9NIGVsZW1lbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWdpc3RyYXRpb25OYW1lIE5hbWUgb2YgbGlzdGVuZXIgKGUuZy4gYG9uQ2xpY2tgKS5cbiAgICovXG4gIGRlbGV0ZUxpc3RlbmVyOiBmdW5jdGlvbiAoaWQsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICB2YXIgUGx1Z2luTW9kdWxlID0gRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlc1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICBpZiAoUGx1Z2luTW9kdWxlICYmIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIpIHtcbiAgICAgIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIoaWQsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuICAgIH1cblxuICAgIHZhciBiYW5rRm9yUmVnaXN0cmF0aW9uTmFtZSA9IGxpc3RlbmVyQmFua1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICAvLyBUT0RPOiBUaGlzIHNob3VsZCBuZXZlciBiZSBudWxsIC0tIHdoZW4gaXMgaXQ/XG4gICAgaWYgKGJhbmtGb3JSZWdpc3RyYXRpb25OYW1lKSB7XG4gICAgICBkZWxldGUgYmFua0ZvclJlZ2lzdHJhdGlvbk5hbWVbaWRdO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlcyBhbGwgbGlzdGVuZXJzIGZvciB0aGUgRE9NIGVsZW1lbnQgd2l0aCB0aGUgc3VwcGxpZWQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCBJRCBvZiB0aGUgRE9NIGVsZW1lbnQuXG4gICAqL1xuICBkZWxldGVBbGxMaXN0ZW5lcnM6IGZ1bmN0aW9uIChpZCkge1xuICAgIGZvciAodmFyIHJlZ2lzdHJhdGlvbk5hbWUgaW4gbGlzdGVuZXJCYW5rKSB7XG4gICAgICBpZiAoIWxpc3RlbmVyQmFua1tyZWdpc3RyYXRpb25OYW1lXVtpZF0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBQbHVnaW5Nb2R1bGUgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzW3JlZ2lzdHJhdGlvbk5hbWVdO1xuICAgICAgaWYgKFBsdWdpbk1vZHVsZSAmJiBQbHVnaW5Nb2R1bGUud2lsbERlbGV0ZUxpc3RlbmVyKSB7XG4gICAgICAgIFBsdWdpbk1vZHVsZS53aWxsRGVsZXRlTGlzdGVuZXIoaWQsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuICAgICAgfVxuXG4gICAgICBkZWxldGUgbGlzdGVuZXJCYW5rW3JlZ2lzdHJhdGlvbk5hbWVdW2lkXTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFsbG93cyByZWdpc3RlcmVkIHBsdWdpbnMgYW4gb3Bwb3J0dW5pdHkgdG8gZXh0cmFjdCBldmVudHMgZnJvbSB0b3AtbGV2ZWxcbiAgICogbmF0aXZlIGJyb3dzZXIgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gICAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRvcExldmVsVGFyZ2V0IFRoZSBsaXN0ZW5pbmcgY29tcG9uZW50IHJvb3Qgbm9kZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVGFyZ2V0SUQgSUQgb2YgYHRvcExldmVsVGFyZ2V0YC5cbiAgICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICAgKiBAcmV0dXJuIHsqfSBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgdmFyIGV2ZW50cztcbiAgICB2YXIgcGx1Z2lucyA9IEV2ZW50UGx1Z2luUmVnaXN0cnkucGx1Z2lucztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBsdWdpbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIE5vdCBldmVyeSBwbHVnaW4gaW4gdGhlIG9yZGVyaW5nIG1heSBiZSBsb2FkZWQgYXQgcnVudGltZS5cbiAgICAgIHZhciBwb3NzaWJsZVBsdWdpbiA9IHBsdWdpbnNbaV07XG4gICAgICBpZiAocG9zc2libGVQbHVnaW4pIHtcbiAgICAgICAgdmFyIGV4dHJhY3RlZEV2ZW50cyA9IHBvc3NpYmxlUGx1Z2luLmV4dHJhY3RFdmVudHModG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgICAgaWYgKGV4dHJhY3RlZEV2ZW50cykge1xuICAgICAgICAgIGV2ZW50cyA9IGFjY3VtdWxhdGVJbnRvKGV2ZW50cywgZXh0cmFjdGVkRXZlbnRzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFbnF1ZXVlcyBhIHN5bnRoZXRpYyBldmVudCB0aGF0IHNob3VsZCBiZSBkaXNwYXRjaGVkIHdoZW5cbiAgICogYHByb2Nlc3NFdmVudFF1ZXVlYCBpcyBpbnZva2VkLlxuICAgKlxuICAgKiBAcGFyYW0geyp9IGV2ZW50cyBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlRXZlbnRzOiBmdW5jdGlvbiAoZXZlbnRzKSB7XG4gICAgaWYgKGV2ZW50cykge1xuICAgICAgZXZlbnRRdWV1ZSA9IGFjY3VtdWxhdGVJbnRvKGV2ZW50UXVldWUsIGV2ZW50cyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFsbCBzeW50aGV0aWMgZXZlbnRzIG9uIHRoZSBldmVudCBxdWV1ZS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm9jZXNzRXZlbnRRdWV1ZTogZnVuY3Rpb24gKHNpbXVsYXRlZCkge1xuICAgIC8vIFNldCBgZXZlbnRRdWV1ZWAgdG8gbnVsbCBiZWZvcmUgcHJvY2Vzc2luZyBpdCBzbyB0aGF0IHdlIGNhbiB0ZWxsIGlmIG1vcmVcbiAgICAvLyBldmVudHMgZ2V0IGVucXVldWVkIHdoaWxlIHByb2Nlc3NpbmcuXG4gICAgdmFyIHByb2Nlc3NpbmdFdmVudFF1ZXVlID0gZXZlbnRRdWV1ZTtcbiAgICBldmVudFF1ZXVlID0gbnVsbDtcbiAgICBpZiAoc2ltdWxhdGVkKSB7XG4gICAgICBmb3JFYWNoQWNjdW11bGF0ZWQocHJvY2Vzc2luZ0V2ZW50UXVldWUsIGV4ZWN1dGVEaXNwYXRjaGVzQW5kUmVsZWFzZVNpbXVsYXRlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvckVhY2hBY2N1bXVsYXRlZChwcm9jZXNzaW5nRXZlbnRRdWV1ZSwgZXhlY3V0ZURpc3BhdGNoZXNBbmRSZWxlYXNlVG9wTGV2ZWwpO1xuICAgIH1cbiAgICAhIWV2ZW50UXVldWUgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAncHJvY2Vzc0V2ZW50UXVldWUoKTogQWRkaXRpb25hbCBldmVudHMgd2VyZSBlbnF1ZXVlZCB3aGlsZSBwcm9jZXNzaW5nICcgKyAnYW4gZXZlbnQgcXVldWUuIFN1cHBvcnQgZm9yIHRoaXMgaGFzIG5vdCB5ZXQgYmVlbiBpbXBsZW1lbnRlZC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgLy8gVGhpcyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byByZXRocm93IGlmIGFueSBvZiB0aGUgZXZlbnQgaGFuZGxlcnMgdGhyZXcuXG4gICAgUmVhY3RFcnJvclV0aWxzLnJldGhyb3dDYXVnaHRFcnJvcigpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUaGVzZSBhcmUgbmVlZGVkIGZvciB0ZXN0cyBvbmx5LiBEbyBub3QgdXNlIVxuICAgKi9cbiAgX19wdXJnZTogZnVuY3Rpb24gKCkge1xuICAgIGxpc3RlbmVyQmFuayA9IHt9O1xuICB9LFxuXG4gIF9fZ2V0TGlzdGVuZXJCYW5rOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGxpc3RlbmVyQmFuaztcbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50UGx1Z2luSHViO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9FdmVudFBsdWdpbkh1Yi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 32 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginRegistry\n * @typechecks static-only\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Injectable ordering of event plugins.\n */\nvar EventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n if (!EventPluginOrder) {\n // Wait until an `EventPluginOrder` is injected.\n return;\n }\n for (var pluginName in namesToPlugins) {\n var PluginModule = namesToPlugins[pluginName];\n var pluginIndex = EventPluginOrder.indexOf(pluginName);\n !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in ' + 'the plugin ordering, `%s`.', pluginName) : invariant(false) : undefined;\n if (EventPluginRegistry.plugins[pluginIndex]) {\n continue;\n }\n !PluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` ' + 'method, but `%s` does not.', pluginName) : invariant(false) : undefined;\n EventPluginRegistry.plugins[pluginIndex] = PluginModule;\n var publishedEvents = PluginModule.eventTypes;\n for (var eventName in publishedEvents) {\n !publishEventForPlugin(publishedEvents[eventName], PluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : invariant(false) : undefined;\n }\n }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, PluginModule, eventName) {\n !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'event name, `%s`.', eventName) : invariant(false) : undefined;\n EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n if (phasedRegistrationNames) {\n for (var phaseName in phasedRegistrationNames) {\n if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n var phasedRegistrationName = phasedRegistrationNames[phaseName];\n publishRegistrationName(phasedRegistrationName, PluginModule, eventName);\n }\n }\n return true;\n } else if (dispatchConfig.registrationName) {\n publishRegistrationName(dispatchConfig.registrationName, PluginModule, eventName);\n return true;\n }\n return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events and\n * can be used with `EventPluginHub.putListener` to register listeners.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, PluginModule, eventName) {\n !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName) : invariant(false) : undefined;\n EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;\n EventPluginRegistry.registrationNameDependencies[registrationName] = PluginModule.eventTypes[eventName].dependencies;\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\nvar EventPluginRegistry = {\n\n /**\n * Ordered list of injected plugins.\n */\n plugins: [],\n\n /**\n * Mapping from event name to dispatch config\n */\n eventNameDispatchConfigs: {},\n\n /**\n * Mapping from registration name to plugin module\n */\n registrationNameModules: {},\n\n /**\n * Mapping from registration name to event name\n */\n registrationNameDependencies: {},\n\n /**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n injectEventPluginOrder: function injectEventPluginOrder(InjectedEventPluginOrder) {\n !!EventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than ' + 'once. You are likely trying to load more than one copy of React.') : invariant(false) : undefined;\n // Clone the ordering so it cannot be dynamically mutated.\n EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);\n recomputePluginOrdering();\n },\n\n /**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n injectEventPluginsByName: function injectEventPluginsByName(injectedNamesToPlugins) {\n var isOrderingDirty = false;\n for (var pluginName in injectedNamesToPlugins) {\n if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n continue;\n }\n var PluginModule = injectedNamesToPlugins[pluginName];\n if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== PluginModule) {\n !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins ' + 'using the same name, `%s`.', pluginName) : invariant(false) : undefined;\n namesToPlugins[pluginName] = PluginModule;\n isOrderingDirty = true;\n }\n }\n if (isOrderingDirty) {\n recomputePluginOrdering();\n }\n },\n\n /**\n * Looks up the plugin for the supplied event.\n *\n * @param {object} event A synthetic event.\n * @return {?object} The plugin that created the supplied event.\n * @internal\n */\n getPluginModuleForEvent: function getPluginModuleForEvent(event) {\n var dispatchConfig = event.dispatchConfig;\n if (dispatchConfig.registrationName) {\n return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;\n }\n for (var phase in dispatchConfig.phasedRegistrationNames) {\n if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {\n continue;\n }\n var PluginModule = EventPluginRegistry.registrationNameModules[dispatchConfig.phasedRegistrationNames[phase]];\n if (PluginModule) {\n return PluginModule;\n }\n }\n return null;\n },\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _resetEventPlugins: function _resetEventPlugins() {\n EventPluginOrder = null;\n for (var pluginName in namesToPlugins) {\n if (namesToPlugins.hasOwnProperty(pluginName)) {\n delete namesToPlugins[pluginName];\n }\n }\n EventPluginRegistry.plugins.length = 0;\n\n var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;\n for (var eventName in eventNameDispatchConfigs) {\n if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n delete eventNameDispatchConfigs[eventName];\n }\n }\n\n var registrationNameModules = EventPluginRegistry.registrationNameModules;\n for (var registrationName in registrationNameModules) {\n if (registrationNameModules.hasOwnProperty(registrationName)) {\n delete registrationNameModules[registrationName];\n }\n }\n }\n\n};\n\nmodule.exports = EventPluginRegistry;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRXZlbnRQbHVnaW5SZWdpc3RyeS5qcz9lOWNkIl0sIm5hbWVzIjpbImludmFyaWFudCIsInJlcXVpcmUiLCJFdmVudFBsdWdpbk9yZGVyIiwibmFtZXNUb1BsdWdpbnMiLCJyZWNvbXB1dGVQbHVnaW5PcmRlcmluZyIsInBsdWdpbk5hbWUiLCJQbHVnaW5Nb2R1bGUiLCJwbHVnaW5JbmRleCIsImluZGV4T2YiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJFdmVudFBsdWdpblJlZ2lzdHJ5IiwicGx1Z2lucyIsImV4dHJhY3RFdmVudHMiLCJwdWJsaXNoZWRFdmVudHMiLCJldmVudFR5cGVzIiwiZXZlbnROYW1lIiwicHVibGlzaEV2ZW50Rm9yUGx1Z2luIiwiZGlzcGF0Y2hDb25maWciLCJldmVudE5hbWVEaXNwYXRjaENvbmZpZ3MiLCJoYXNPd25Qcm9wZXJ0eSIsInBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzIiwicGhhc2VOYW1lIiwicGhhc2VkUmVnaXN0cmF0aW9uTmFtZSIsInB1Ymxpc2hSZWdpc3RyYXRpb25OYW1lIiwicmVnaXN0cmF0aW9uTmFtZSIsInJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzIiwicmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcyIsImRlcGVuZGVuY2llcyIsImluamVjdEV2ZW50UGx1Z2luT3JkZXIiLCJJbmplY3RlZEV2ZW50UGx1Z2luT3JkZXIiLCJBcnJheSIsInByb3RvdHlwZSIsInNsaWNlIiwiY2FsbCIsImluamVjdEV2ZW50UGx1Z2luc0J5TmFtZSIsImluamVjdGVkTmFtZXNUb1BsdWdpbnMiLCJpc09yZGVyaW5nRGlydHkiLCJnZXRQbHVnaW5Nb2R1bGVGb3JFdmVudCIsImV2ZW50IiwicGhhc2UiLCJfcmVzZXRFdmVudFBsdWdpbnMiLCJsZW5ndGgiLCJtb2R1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QUNoQixlQUFPQSxZQUFQO0FBQ0Q7QUFDRjtBQUNELFdBQU8sSUFBUDtBQUNELEdBeEZ1Qjs7QUEwRnhCOzs7O0FBSUFxQyxzQkFBb0IsOEJBQVk7QUFDOUJ6Qyx1QkFBbUIsSUFBbkI7QUFDQSxTQUFLLElBQUlHLFVBQVQsSUFBdUJGLGNBQXZCLEVBQXVDO0FBQ3JDLFVBQUlBLGVBQWVtQixjQUFmLENBQThCakIsVUFBOUIsQ0FBSixFQUErQztBQUM3QyxlQUFPRixlQUFlRSxVQUFmLENBQVA7QUFDRDtBQUNGO0FBQ0RRLHdCQUFvQkMsT0FBcEIsQ0FBNEI4QixNQUE1QixHQUFxQyxDQUFyQzs7QUFFQSxRQUFJdkIsMkJBQTJCUixvQkFBb0JRLHdCQUFuRDtBQUNBLFNBQUssSUFBSUgsU0FBVCxJQUFzQkcsd0JBQXRCLEVBQWdEO0FBQzlDLFVBQUlBLHlCQUF5QkMsY0FBekIsQ0FBd0NKLFNBQXhDLENBQUosRUFBd0Q7QUFDdEQsZUFBT0cseUJBQXlCSCxTQUF6QixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJVSwwQkFBMEJmLG9CQUFvQmUsdUJBQWxEO0FBQ0EsU0FBSyxJQUFJRCxnQkFBVCxJQUE2QkMsdUJBQTdCLEVBQXNEO0FBQ3BELFVBQUlBLHdCQUF3Qk4sY0FBeEIsQ0FBdUNLLGdCQUF2QyxDQUFKLEVBQThEO0FBQzVELGVBQU9DLHdCQUF3QkQsZ0JBQXhCLENBQVA7QUFDRDtBQUNGO0FBQ0Y7O0FBcEh1QixDQUExQjs7QUF3SEFrQixPQUFPQyxPQUFQLEdBQWlCakMsbUJBQWpCLEMiLCJmaWxlIjoiMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgRXZlbnRQbHVnaW5SZWdpc3RyeVxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxuLyoqXG4gKiBJbmplY3RhYmxlIG9yZGVyaW5nIG9mIGV2ZW50IHBsdWdpbnMuXG4gKi9cbnZhciBFdmVudFBsdWdpbk9yZGVyID0gbnVsbDtcblxuLyoqXG4gKiBJbmplY3RhYmxlIG1hcHBpbmcgZnJvbSBuYW1lcyB0byBldmVudCBwbHVnaW4gbW9kdWxlcy5cbiAqL1xudmFyIG5hbWVzVG9QbHVnaW5zID0ge307XG5cbi8qKlxuICogUmVjb21wdXRlcyB0aGUgcGx1Z2luIGxpc3QgdXNpbmcgdGhlIGluamVjdGVkIHBsdWdpbnMgYW5kIHBsdWdpbiBvcmRlcmluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiByZWNvbXB1dGVQbHVnaW5PcmRlcmluZygpIHtcbiAgaWYgKCFFdmVudFBsdWdpbk9yZGVyKSB7XG4gICAgLy8gV2FpdCB1bnRpbCBhbiBgRXZlbnRQbHVnaW5PcmRlcmAgaXMgaW5qZWN0ZWQuXG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAodmFyIHBsdWdpbk5hbWUgaW4gbmFtZXNUb1BsdWdpbnMpIHtcbiAgICB2YXIgUGx1Z2luTW9kdWxlID0gbmFtZXNUb1BsdWdpbnNbcGx1Z2luTmFtZV07XG4gICAgdmFyIHBsdWdpbkluZGV4ID0gRXZlbnRQbHVnaW5PcmRlci5pbmRleE9mKHBsdWdpbk5hbWUpO1xuICAgICEocGx1Z2luSW5kZXggPiAtMSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRXZlbnRQbHVnaW5SZWdpc3RyeTogQ2Fubm90IGluamVjdCBldmVudCBwbHVnaW5zIHRoYXQgZG8gbm90IGV4aXN0IGluICcgKyAndGhlIHBsdWdpbiBvcmRlcmluZywgYCVzYC4nLCBwbHVnaW5OYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKEV2ZW50UGx1Z2luUmVnaXN0cnkucGx1Z2luc1twbHVnaW5JbmRleF0pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAhUGx1Z2luTW9kdWxlLmV4dHJhY3RFdmVudHMgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRXZlbnRQbHVnaW5SZWdpc3RyeTogRXZlbnQgcGx1Z2lucyBtdXN0IGltcGxlbWVudCBhbiBgZXh0cmFjdEV2ZW50c2AgJyArICdtZXRob2QsIGJ1dCBgJXNgIGRvZXMgbm90LicsIHBsdWdpbk5hbWUpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICBFdmVudFBsdWdpblJlZ2lzdHJ5LnBsdWdpbnNbcGx1Z2luSW5kZXhdID0gUGx1Z2luTW9kdWxlO1xuICAgIHZhciBwdWJsaXNoZWRFdmVudHMgPSBQbHVnaW5Nb2R1bGUuZXZlbnRUeXBlcztcbiAgICBmb3IgKHZhciBldmVudE5hbWUgaW4gcHVibGlzaGVkRXZlbnRzKSB7XG4gICAgICAhcHVibGlzaEV2ZW50Rm9yUGx1Z2luKHB1Ymxpc2hlZEV2ZW50c1tldmVudE5hbWVdLCBQbHVnaW5Nb2R1bGUsIGV2ZW50TmFtZSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRXZlbnRQbHVnaW5SZWdpc3RyeTogRmFpbGVkIHRvIHB1Ymxpc2ggZXZlbnQgYCVzYCBmb3IgcGx1Z2luIGAlc2AuJywgZXZlbnROYW1lLCBwbHVnaW5OYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUHVibGlzaGVzIGFuIGV2ZW50IHNvIHRoYXQgaXQgY2FuIGJlIGRpc3BhdGNoZWQgYnkgdGhlIHN1cHBsaWVkIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgRGlzcGF0Y2ggY29uZmlndXJhdGlvbiBmb3IgdGhlIGV2ZW50LlxuICogQHBhcmFtIHtvYmplY3R9IFBsdWdpbk1vZHVsZSBQbHVnaW4gcHVibGlzaGluZyB0aGUgZXZlbnQuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBldmVudCB3YXMgc3VjY2Vzc2Z1bGx5IHB1Ymxpc2hlZC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHB1Ymxpc2hFdmVudEZvclBsdWdpbihkaXNwYXRjaENvbmZpZywgUGx1Z2luTW9kdWxlLCBldmVudE5hbWUpIHtcbiAgISFFdmVudFBsdWdpblJlZ2lzdHJ5LmV2ZW50TmFtZURpc3BhdGNoQ29uZmlncy5oYXNPd25Qcm9wZXJ0eShldmVudE5hbWUpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0V2ZW50UGx1Z2luSHViOiBNb3JlIHRoYW4gb25lIHBsdWdpbiBhdHRlbXB0ZWQgdG8gcHVibGlzaCB0aGUgc2FtZSAnICsgJ2V2ZW50IG5hbWUsIGAlc2AuJywgZXZlbnROYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIEV2ZW50UGx1Z2luUmVnaXN0cnkuZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzW2V2ZW50TmFtZV0gPSBkaXNwYXRjaENvbmZpZztcblxuICB2YXIgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMgPSBkaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lcztcbiAgaWYgKHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKSB7XG4gICAgZm9yICh2YXIgcGhhc2VOYW1lIGluIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKSB7XG4gICAgICBpZiAocGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMuaGFzT3duUHJvcGVydHkocGhhc2VOYW1lKSkge1xuICAgICAgICB2YXIgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZSA9IHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzW3BoYXNlTmFtZV07XG4gICAgICAgIHB1Ymxpc2hSZWdpc3RyYXRpb25OYW1lKHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWUsIFBsdWdpbk1vZHVsZSwgZXZlbnROYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAoZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSkge1xuICAgIHB1Ymxpc2hSZWdpc3RyYXRpb25OYW1lKGRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUsIFBsdWdpbk1vZHVsZSwgZXZlbnROYW1lKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogUHVibGlzaGVzIGEgcmVnaXN0cmF0aW9uIG5hbWUgdGhhdCBpcyB1c2VkIHRvIGlkZW50aWZ5IGRpc3BhdGNoZWQgZXZlbnRzIGFuZFxuICogY2FuIGJlIHVzZWQgd2l0aCBgRXZlbnRQbHVnaW5IdWIucHV0TGlzdGVuZXJgIHRvIHJlZ2lzdGVyIGxpc3RlbmVycy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBSZWdpc3RyYXRpb24gbmFtZSB0byBhZGQuXG4gKiBAcGFyYW0ge29iamVjdH0gUGx1Z2luTW9kdWxlIFBsdWdpbiBwdWJsaXNoaW5nIHRoZSBldmVudC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHB1Ymxpc2hSZWdpc3RyYXRpb25OYW1lKHJlZ2lzdHJhdGlvbk5hbWUsIFBsdWdpbk1vZHVsZSwgZXZlbnROYW1lKSB7XG4gICEhRXZlbnRQbHVnaW5SZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlc1tyZWdpc3RyYXRpb25OYW1lXSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdFdmVudFBsdWdpbkh1YjogTW9yZSB0aGFuIG9uZSBwbHVnaW4gYXR0ZW1wdGVkIHRvIHB1Ymxpc2ggdGhlIHNhbWUgJyArICdyZWdpc3RyYXRpb24gbmFtZSwgYCVzYC4nLCByZWdpc3RyYXRpb25OYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZU1vZHVsZXNbcmVnaXN0cmF0aW9uTmFtZV0gPSBQbHVnaW5Nb2R1bGU7XG4gIEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSA9IFBsdWdpbk1vZHVsZS5ldmVudFR5cGVzW2V2ZW50TmFtZV0uZGVwZW5kZW5jaWVzO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBwbHVnaW5zIHNvIHRoYXQgdGhleSBjYW4gZXh0cmFjdCBhbmQgZGlzcGF0Y2ggZXZlbnRzLlxuICpcbiAqIEBzZWUge0V2ZW50UGx1Z2luSHVifVxuICovXG52YXIgRXZlbnRQbHVnaW5SZWdpc3RyeSA9IHtcblxuICAvKipcbiAgICogT3JkZXJlZCBsaXN0IG9mIGluamVjdGVkIHBsdWdpbnMuXG4gICAqL1xuICBwbHVnaW5zOiBbXSxcblxuICAvKipcbiAgICogTWFwcGluZyBmcm9tIGV2ZW50IG5hbWUgdG8gZGlzcGF0Y2ggY29uZmlnXG4gICAqL1xuICBldmVudE5hbWVEaXNwYXRjaENvbmZpZ3M6IHt9LFxuXG4gIC8qKlxuICAgKiBNYXBwaW5nIGZyb20gcmVnaXN0cmF0aW9uIG5hbWUgdG8gcGx1Z2luIG1vZHVsZVxuICAgKi9cbiAgcmVnaXN0cmF0aW9uTmFtZU1vZHVsZXM6IHt9LFxuXG4gIC8qKlxuICAgKiBNYXBwaW5nIGZyb20gcmVnaXN0cmF0aW9uIG5hbWUgdG8gZXZlbnQgbmFtZVxuICAgKi9cbiAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llczoge30sXG5cbiAgLyoqXG4gICAqIEluamVjdHMgYW4gb3JkZXJpbmcgb2YgcGx1Z2lucyAoYnkgcGx1Z2luIG5hbWUpLiBUaGlzIGFsbG93cyB0aGUgb3JkZXJpbmdcbiAgICogdG8gYmUgZGVjb3VwbGVkIGZyb20gaW5qZWN0aW9uIG9mIHRoZSBhY3R1YWwgcGx1Z2lucyBzbyB0aGF0IG9yZGVyaW5nIGlzXG4gICAqIGFsd2F5cyBkZXRlcm1pbmlzdGljIHJlZ2FyZGxlc3Mgb2YgcGFja2FnaW5nLCBvbi10aGUtZmx5IGluamVjdGlvbiwgZXRjLlxuICAgKlxuICAgKiBAcGFyYW0ge2FycmF5fSBJbmplY3RlZEV2ZW50UGx1Z2luT3JkZXJcbiAgICogQGludGVybmFsXG4gICAqIEBzZWUge0V2ZW50UGx1Z2luSHViLmluamVjdGlvbi5pbmplY3RFdmVudFBsdWdpbk9yZGVyfVxuICAgKi9cbiAgaW5qZWN0RXZlbnRQbHVnaW5PcmRlcjogZnVuY3Rpb24gKEluamVjdGVkRXZlbnRQbHVnaW5PcmRlcikge1xuICAgICEhRXZlbnRQbHVnaW5PcmRlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdFdmVudFBsdWdpblJlZ2lzdHJ5OiBDYW5ub3QgaW5qZWN0IGV2ZW50IHBsdWdpbiBvcmRlcmluZyBtb3JlIHRoYW4gJyArICdvbmNlLiBZb3UgYXJlIGxpa2VseSB0cnlpbmcgdG8gbG9hZCBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgIC8vIENsb25lIHRoZSBvcmRlcmluZyBzbyBpdCBjYW5ub3QgYmUgZHluYW1pY2FsbHkgbXV0YXRlZC5cbiAgICBFdmVudFBsdWdpbk9yZGVyID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoSW5qZWN0ZWRFdmVudFBsdWdpbk9yZGVyKTtcbiAgICByZWNvbXB1dGVQbHVnaW5PcmRlcmluZygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBJbmplY3RzIHBsdWdpbnMgdG8gYmUgdXNlZCBieSBgRXZlbnRQbHVnaW5IdWJgLiBUaGUgcGx1Z2luIG5hbWVzIG11c3QgYmVcbiAgICogaW4gdGhlIG9yZGVyaW5nIGluamVjdGVkIGJ5IGBpbmplY3RFdmVudFBsdWdpbk9yZGVyYC5cbiAgICpcbiAgICogUGx1Z2lucyBjYW4gYmUgaW5qZWN0ZWQgYXMgcGFydCBvZiBwYWdlIGluaXRpYWxpemF0aW9uIG9yIG9uLXRoZS1mbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpbmplY3RlZE5hbWVzVG9QbHVnaW5zIE1hcCBmcm9tIG5hbWVzIHRvIHBsdWdpbiBtb2R1bGVzLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHNlZSB7RXZlbnRQbHVnaW5IdWIuaW5qZWN0aW9uLmluamVjdEV2ZW50UGx1Z2luc0J5TmFtZX1cbiAgICovXG4gIGluamVjdEV2ZW50UGx1Z2luc0J5TmFtZTogZnVuY3Rpb24gKGluamVjdGVkTmFtZXNUb1BsdWdpbnMpIHtcbiAgICB2YXIgaXNPcmRlcmluZ0RpcnR5ID0gZmFsc2U7XG4gICAgZm9yICh2YXIgcGx1Z2luTmFtZSBpbiBpbmplY3RlZE5hbWVzVG9QbHVnaW5zKSB7XG4gICAgICBpZiAoIWluamVjdGVkTmFtZXNUb1BsdWdpbnMuaGFzT3duUHJvcGVydHkocGx1Z2luTmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgUGx1Z2luTW9kdWxlID0gaW5qZWN0ZWROYW1lc1RvUGx1Z2luc1twbHVnaW5OYW1lXTtcbiAgICAgIGlmICghbmFtZXNUb1BsdWdpbnMuaGFzT3duUHJvcGVydHkocGx1Z2luTmFtZSkgfHwgbmFtZXNUb1BsdWdpbnNbcGx1Z2luTmFtZV0gIT09IFBsdWdpbk1vZHVsZSkge1xuICAgICAgICAhIW5hbWVzVG9QbHVnaW5zW3BsdWdpbk5hbWVdID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0V2ZW50UGx1Z2luUmVnaXN0cnk6IENhbm5vdCBpbmplY3QgdHdvIGRpZmZlcmVudCBldmVudCBwbHVnaW5zICcgKyAndXNpbmcgdGhlIHNhbWUgbmFtZSwgYCVzYC4nLCBwbHVnaW5OYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIG5hbWVzVG9QbHVnaW5zW3BsdWdpbk5hbWVdID0gUGx1Z2luTW9kdWxlO1xuICAgICAgICBpc09yZGVyaW5nRGlydHkgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaXNPcmRlcmluZ0RpcnR5KSB7XG4gICAgICByZWNvbXB1dGVQbHVnaW5PcmRlcmluZygpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIHBsdWdpbiBmb3IgdGhlIHN1cHBsaWVkIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZXZlbnQgQSBzeW50aGV0aWMgZXZlbnQuXG4gICAqIEByZXR1cm4gez9vYmplY3R9IFRoZSBwbHVnaW4gdGhhdCBjcmVhdGVkIHRoZSBzdXBwbGllZCBldmVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXRQbHVnaW5Nb2R1bGVGb3JFdmVudDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdmFyIGRpc3BhdGNoQ29uZmlnID0gZXZlbnQuZGlzcGF0Y2hDb25maWc7XG4gICAgaWYgKGRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICAgIHJldHVybiBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzW2Rpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWVdIHx8IG51bGw7XG4gICAgfVxuICAgIGZvciAodmFyIHBoYXNlIGluIGRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKSB7XG4gICAgICBpZiAoIWRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzLmhhc093blByb3BlcnR5KHBoYXNlKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBQbHVnaW5Nb2R1bGUgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzW2Rpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzW3BoYXNlXV07XG4gICAgICBpZiAoUGx1Z2luTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBQbHVnaW5Nb2R1bGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFeHBvc2VkIGZvciB1bml0IHRlc3RpbmcuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcmVzZXRFdmVudFBsdWdpbnM6IGZ1bmN0aW9uICgpIHtcbiAgICBFdmVudFBsdWdpbk9yZGVyID0gbnVsbDtcbiAgICBmb3IgKHZhciBwbHVnaW5OYW1lIGluIG5hbWVzVG9QbHVnaW5zKSB7XG4gICAgICBpZiAobmFtZXNUb1BsdWdpbnMuaGFzT3duUHJvcGVydHkocGx1Z2luTmFtZSkpIHtcbiAgICAgICAgZGVsZXRlIG5hbWVzVG9QbHVnaW5zW3BsdWdpbk5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgICBFdmVudFBsdWdpblJlZ2lzdHJ5LnBsdWdpbnMubGVuZ3RoID0gMDtcblxuICAgIHZhciBldmVudE5hbWVEaXNwYXRjaENvbmZpZ3MgPSBFdmVudFBsdWdpblJlZ2lzdHJ5LmV2ZW50TmFtZURpc3BhdGNoQ29uZmlncztcbiAgICBmb3IgKHZhciBldmVudE5hbWUgaW4gZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzKSB7XG4gICAgICBpZiAoZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzLmhhc093blByb3BlcnR5KGV2ZW50TmFtZSkpIHtcbiAgICAgICAgZGVsZXRlIGV2ZW50TmFtZURpc3BhdGNoQ29uZmlnc1tldmVudE5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZWdpc3RyYXRpb25OYW1lTW9kdWxlcyA9IEV2ZW50UGx1Z2luUmVnaXN0cnkucmVnaXN0cmF0aW9uTmFtZU1vZHVsZXM7XG4gICAgZm9yICh2YXIgcmVnaXN0cmF0aW9uTmFtZSBpbiByZWdpc3RyYXRpb25OYW1lTW9kdWxlcykge1xuICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzLmhhc093blByb3BlcnR5KHJlZ2lzdHJhdGlvbk5hbWUpKSB7XG4gICAgICAgIGRlbGV0ZSByZWdpc3RyYXRpb25OYW1lTW9kdWxlc1tyZWdpc3RyYXRpb25OYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBFdmVudFBsdWdpblJlZ2lzdHJ5O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9FdmVudFBsdWdpblJlZ2lzdHJ5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 33 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPluginUtils\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar ReactErrorUtils = __webpack_require__(34);\n\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\n/**\n * Injected dependencies:\n */\n\n/**\n * - `Mount`: [required] Module that can convert between React dom IDs and\n * actual node references.\n */\nvar injection = {\n Mount: null,\n injectMount: function injectMount(InjectedMount) {\n injection.Mount = InjectedMount;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(InjectedMount && InjectedMount.getNode && InjectedMount.getID, 'EventPluginUtils.injection.injectMount(...): Injected Mount ' + 'module is missing getNode or getID.') : undefined;\n }\n }\n};\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nfunction isEndish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseUp || topLevelType === topLevelTypes.topTouchEnd || topLevelType === topLevelTypes.topTouchCancel;\n}\n\nfunction isMoveish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseMove || topLevelType === topLevelTypes.topTouchMove;\n}\nfunction isStartish(topLevelType) {\n return topLevelType === topLevelTypes.topMouseDown || topLevelType === topLevelTypes.topTouchStart;\n}\n\nvar validateEventDispatches;\nif (process.env.NODE_ENV !== 'production') {\n validateEventDispatches = function validateEventDispatches(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchIDs = event._dispatchIDs;\n\n var listenersIsArr = Array.isArray(dispatchListeners);\n var idsIsArr = Array.isArray(dispatchIDs);\n var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0;\n var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n process.env.NODE_ENV !== 'production' ? warning(idsIsArr === listenersIsArr && IDsLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined;\n };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {boolean} simulated If the event is simulated (changes exn behavior)\n * @param {function} listener Application-level callback\n * @param {string} domID DOM id to pass to the callback.\n */\nfunction executeDispatch(event, simulated, listener, domID) {\n var type = event.type || 'unknown-event';\n event.currentTarget = injection.Mount.getNode(domID);\n if (simulated) {\n ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event, domID);\n } else {\n ReactErrorUtils.invokeGuardedCallback(type, listener, event, domID);\n }\n event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event, simulated) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchIDs = event._dispatchIDs;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and IDs are two parallel arrays that are always in sync.\n executeDispatch(event, simulated, dispatchListeners[i], dispatchIDs[i]);\n }\n } else if (dispatchListeners) {\n executeDispatch(event, simulated, dispatchListeners, dispatchIDs);\n }\n event._dispatchListeners = null;\n event._dispatchIDs = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches, but stops\n * at the first dispatch execution returning true, and returns that id.\n *\n * @return {?string} id of the first dispatch execution who's listener returns\n * true, or null if no listener returned true.\n */\nfunction executeDispatchesInOrderStopAtTrueImpl(event) {\n var dispatchListeners = event._dispatchListeners;\n var dispatchIDs = event._dispatchIDs;\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n if (Array.isArray(dispatchListeners)) {\n for (var i = 0; i < dispatchListeners.length; i++) {\n if (event.isPropagationStopped()) {\n break;\n }\n // Listeners and IDs are two parallel arrays that are always in sync.\n if (dispatchListeners[i](event, dispatchIDs[i])) {\n return dispatchIDs[i];\n }\n }\n } else if (dispatchListeners) {\n if (dispatchListeners(event, dispatchIDs)) {\n return dispatchIDs;\n }\n }\n return null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\nfunction executeDispatchesInOrderStopAtTrue(event) {\n var ret = executeDispatchesInOrderStopAtTrueImpl(event);\n event._dispatchIDs = null;\n event._dispatchListeners = null;\n return ret;\n}\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\nfunction executeDirectDispatch(event) {\n if (process.env.NODE_ENV !== 'production') {\n validateEventDispatches(event);\n }\n var dispatchListener = event._dispatchListeners;\n var dispatchID = event._dispatchIDs;\n !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : invariant(false) : undefined;\n var res = dispatchListener ? dispatchListener(event, dispatchID) : null;\n event._dispatchListeners = null;\n event._dispatchIDs = null;\n return res;\n}\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\nfunction hasDispatches(event) {\n return !!event._dispatchListeners;\n}\n\n/**\n * General utilities that are useful in creating custom Event Plugins.\n */\nvar EventPluginUtils = {\n isEndish: isEndish,\n isMoveish: isMoveish,\n isStartish: isStartish,\n\n executeDirectDispatch: executeDirectDispatch,\n executeDispatchesInOrder: executeDispatchesInOrder,\n executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,\n hasDispatches: hasDispatches,\n\n getNode: function getNode(id) {\n return injection.Mount.getNode(id);\n },\n getID: function getID(node) {\n return injection.Mount.getID(node);\n },\n\n injection: injection\n};\n\nmodule.exports = EventPluginUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRXZlbnRQbHVnaW5VdGlscy5qcz8wMjk1Il0sIm5hbWVzIjpbIkV2ZW50Q29uc3RhbnRzIiwicmVxdWlyZSIsIlJlYWN0RXJyb3JVdGlscyIsImludmFyaWFudCIsIndhcm5pbmciLCJpbmplY3Rpb24iLCJNb3VudCIsImluamVjdE1vdW50IiwiSW5qZWN0ZWRNb3VudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImdldE5vZGUiLCJnZXRJRCIsInVuZGVmaW5lZCIsInRvcExldmVsVHlwZXMiLCJpc0VuZGlzaCIsInRvcExldmVsVHlwZSIsInRvcE1vdXNlVXAiLCJ0b3BUb3VjaEVuZCIsInRvcFRvdWNoQ2FuY2VsIiwiaXNNb3ZlaXNoIiwidG9wTW91c2VNb3ZlIiwidG9wVG91Y2hNb3ZlIiwiaXNTdGFydGlzaCIsInRvcE1vdXNlRG93biIsInRvcFRvdWNoU3RhcnQiLCJ2YWxpZGF0ZUV2ZW50RGlzcGF0Y2hlcyIsImV2ZW50IiwiZGlzcGF0Y2hMaXN0ZW5lcnMiLCJfZGlzcGF0Y2hMaXN0ZW5lcnMiLCJkaXNwYXRjaElEcyIsIl9kaXNwYXRjaElEcyIsImxpc3RlbmVyc0lzQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiaWRzSXNBcnIiLCJJRHNMZW4iLCJsZW5ndGgiLCJsaXN0ZW5lcnNMZW4iLCJleGVjdXRlRGlzcGF0Y2giLCJzaW11bGF0ZWQiLCJsaXN0ZW5lciIsImRvbUlEIiwidHlwZSIsImN1cnJlbnRUYXJnZXQiLCJpbnZva2VHdWFyZGVkQ2FsbGJhY2tXaXRoQ2F0Y2giLCJpbnZva2VHdWFyZGVkQ2FsbGJhY2siLCJleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXIiLCJpIiwiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCJleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlSW1wbCIsImV4ZWN1dGVEaXNwYXRjaGVzSW5PcmRlclN0b3BBdFRydWUiLCJyZXQiLCJleGVjdXRlRGlyZWN0RGlzcGF0Y2giLCJkaXNwYXRjaExpc3RlbmVyIiwiZGlzcGF0Y2hJRCIsInJlcyIsImhhc0Rpc3BhdGNoZXMiLCJFdmVudFBsdWdpblV0aWxzIiwiaWQiLCJub2RlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBckI7QUFDQSxJQUFJQyxrQkFBa0IsbUJBQUFELENBQVEsRUFBUixDQUF0Qjs7QUFFQSxJQUFJRSxZQUFZLG1CQUFBRixDQUFRLEVBQVIsQ0FBaEI7QUFDQSxJQUFJRyxVQUFVLG1CQUFBSCxDQUFRLEVBQVIsQ0FBZDs7QUFFQTs7OztBQUlBOzs7O0FBSUEsSUFBSUksWUFBWTtBQUNkQyxTQUFPLElBRE87QUFFZEMsZUFBYSxxQkFBVUMsYUFBVixFQUF5QjtBQUNwQ0gsY0FBVUMsS0FBVixHQUFrQkUsYUFBbEI7QUFDQSxRQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNGLGNBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1AsUUFBUUksaUJBQWlCQSxjQUFjSSxPQUEvQixJQUEwQ0osY0FBY0ssS0FBaEUsRUFBdUUsaUVBQWlFLHFDQUF4SSxDQUF4QyxHQUF5TkMsU0FBek47QUFDRDtBQUNGO0FBUGEsQ0FBaEI7O0FBVUEsSUFBSUMsZ0JBQWdCZixlQUFlZSxhQUFuQzs7QUFFQSxTQUFTQyxRQUFULENBQWtCQyxZQUFsQixFQUFnQztBQUM5QixTQUFPQSxpQkFBaUJGLGNBQWNHLFVBQS9CLElBQTZDRCxpQkFBaUJGLGNBQWNJLFdBQTVFLElBQTJGRixpQkFBaUJGLGNBQWNLLGNBQWpJO0FBQ0Q7O0FBRUQsU0FBU0MsU0FBVCxDQUFtQkosWUFBbkIsRUFBaUM7QUFDL0IsU0FBT0EsaUJBQWlCRixjQUFjTyxZQUEvQixJQUErQ0wsaUJB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QU4sQ0FBY29CLGdCQUFkLENBQUYsR0FBb0M5QyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NSLFVBQVUsS0FBVixFQUFpQiw4Q0FBakIsQ0FBeEMsR0FBMkdBLFVBQVUsS0FBVixDQUEvSSxHQUFrS1csU0FBbEs7QUFDQSxNQUFJMkMsTUFBTUYsbUJBQW1CQSxpQkFBaUIzQixLQUFqQixFQUF3QjRCLFVBQXhCLENBQW5CLEdBQXlELElBQW5FO0FBQ0E1QixRQUFNRSxrQkFBTixHQUEyQixJQUEzQjtBQUNBRixRQUFNSSxZQUFOLEdBQXFCLElBQXJCO0FBQ0EsU0FBT3lCLEdBQVA7QUFDRDs7QUFFRDs7OztBQUlBLFNBQVNDLGFBQVQsQ0FBdUI5QixLQUF2QixFQUE4QjtBQUM1QixTQUFPLENBQUMsQ0FBQ0EsTUFBTUUsa0JBQWY7QUFDRDs7QUFFRDs7O0FBR0EsSUFBSTZCLG1CQUFtQjtBQUNyQjNDLFlBQVVBLFFBRFc7QUFFckJLLGFBQVdBLFNBRlU7QUFHckJHLGNBQVlBLFVBSFM7O0FBS3JCOEIseUJBQXVCQSxxQkFMRjtBQU1yQk4sNEJBQTBCQSx3QkFOTDtBQU9yQkksc0NBQW9DQSxrQ0FQZjtBQVFyQk0saUJBQWVBLGFBUk07O0FBVXJCOUMsV0FBUyxpQkFBVWdELEVBQVYsRUFBYztBQUNyQixXQUFPdkQsVUFBVUMsS0FBVixDQUFnQk0sT0FBaEIsQ0FBd0JnRCxFQUF4QixDQUFQO0FBQ0QsR0Fab0I7QUFhckIvQyxTQUFPLGVBQVVnRCxJQUFWLEVBQWdCO0FBQ3JCLFdBQU94RCxVQUFVQyxLQUFWLENBQWdCTyxLQUFoQixDQUFzQmdELElBQXRCLENBQVA7QUFDRCxHQWZvQjs7QUFpQnJCeEQsYUFBV0E7QUFqQlUsQ0FBdkI7O0FBb0JBeUQsT0FBT0MsT0FBUCxHQUFpQkosZ0JBQWpCLEMiLCJmaWxlIjoiMzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgRXZlbnRQbHVnaW5VdGlsc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV2ZW50Q29uc3RhbnRzID0gcmVxdWlyZSgnLi9FdmVudENvbnN0YW50cycpO1xudmFyIFJlYWN0RXJyb3JVdGlscyA9IHJlcXVpcmUoJy4vUmVhY3RFcnJvclV0aWxzJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG4vKipcbiAqIEluamVjdGVkIGRlcGVuZGVuY2llczpcbiAqL1xuXG4vKipcbiAqIC0gYE1vdW50YDogW3JlcXVpcmVkXSBNb2R1bGUgdGhhdCBjYW4gY29udmVydCBiZXR3ZWVuIFJlYWN0IGRvbSBJRHMgYW5kXG4gKiAgIGFjdHVhbCBub2RlIHJlZmVyZW5jZXMuXG4gKi9cbnZhciBpbmplY3Rpb24gPSB7XG4gIE1vdW50OiBudWxsLFxuICBpbmplY3RNb3VudDogZnVuY3Rpb24gKEluamVjdGVkTW91bnQpIHtcbiAgICBpbmplY3Rpb24uTW91bnQgPSBJbmplY3RlZE1vdW50O1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhJbmplY3RlZE1vdW50ICYmIEluamVjdGVkTW91bnQuZ2V0Tm9kZSAmJiBJbmplY3RlZE1vdW50LmdldElELCAnRXZlbnRQbHVnaW5VdGlscy5pbmplY3Rpb24uaW5qZWN0TW91bnQoLi4uKTogSW5qZWN0ZWQgTW91bnQgJyArICdtb2R1bGUgaXMgbWlzc2luZyBnZXROb2RlIG9yIGdldElELicpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufTtcblxudmFyIHRvcExldmVsVHlwZXMgPSBFdmVudENvbnN0YW50cy50b3BMZXZlbFR5cGVzO1xuXG5mdW5jdGlvbiBpc0VuZGlzaCh0b3BMZXZlbFR5cGUpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BNb3VzZVVwIHx8IHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BUb3VjaEVuZCB8fCB0b3BMZXZlbFR5cGUgPT09IHRvcExldmVsVHlwZXMudG9wVG91Y2hDYW5jZWw7XG59XG5cbmZ1bmN0aW9uIGlzTW92ZWlzaCh0b3BMZXZlbFR5cGUpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BNb3VzZU1vdmUgfHwgdG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcFRvdWNoTW92ZTtcbn1cbmZ1bmN0aW9uIGlzU3RhcnRpc2godG9wTGV2ZWxUeXBlKSB7XG4gIHJldHVybiB0b3BMZXZlbFR5cGUgPT09IHRvcExldmVsVHlwZXMudG9wTW91c2VEb3duIHx8IHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BUb3VjaFN0YXJ0O1xufVxuXG52YXIgdmFsaWRhdGVFdmVudERpc3BhdGNoZXM7XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YWxpZGF0ZUV2ZW50RGlzcGF0Y2hlcyA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHZhciBkaXNwYXRjaExpc3RlbmVycyA9IGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycztcbiAgICB2YXIgZGlzcGF0Y2hJRHMgPSBldmVudC5fZGlzcGF0Y2hJRHM7XG5cbiAgICB2YXIgbGlzdGVuZXJzSXNBcnIgPSBBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXJzKTtcbiAgICB2YXIgaWRzSXNBcnIgPSBBcnJheS5pc0FycmF5KGRpc3BhdGNoSURzKTtcbiAgICB2YXIgSURzTGVuID0gaWRzSXNBcnIgPyBkaXNwYXRjaElEcy5sZW5ndGggOiBkaXNwYXRjaElEcyA/IDEgOiAwO1xuICAgIHZhciBsaXN0ZW5lcnNMZW4gPSBsaXN0ZW5lcnNJc0FyciA/IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aCA6IGRpc3BhdGNoTGlzdGVuZXJzID8gMSA6IDA7XG5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhpZHNJc0FyciA9PT0gbGlzdGVuZXJzSXNBcnIgJiYgSURzTGVuID09PSBsaXN0ZW5lcnNMZW4sICdFdmVudFBsdWdpblV0aWxzOiBJbnZhbGlkIGBldmVudGAuJykgOiB1bmRlZmluZWQ7XG4gIH07XG59XG5cbi8qKlxuICogRGlzcGF0Y2ggdGhlIGV2ZW50IHRvIHRoZSBsaXN0ZW5lci5cbiAqIEBwYXJhbSB7U3ludGhldGljRXZlbnR9IGV2ZW50IFN5bnRoZXRpY0V2ZW50IHRvIGhhbmRsZVxuICogQHBhcmFtIHtib29sZWFufSBzaW11bGF0ZWQgSWYgdGhlIGV2ZW50IGlzIHNpbXVsYXRlZCAoY2hhbmdlcyBleG4gYmVoYXZpb3IpXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBsaXN0ZW5lciBBcHBsaWNhdGlvbi1sZXZlbCBjYWxsYmFja1xuICogQHBhcmFtIHtzdHJpbmd9IGRvbUlEIERPTSBpZCB0byBwYXNzIHRvIHRoZSBjYWxsYmFjay5cbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoKGV2ZW50LCBzaW11bGF0ZWQsIGxpc3RlbmVyLCBkb21JRCkge1xuICB2YXIgdHlwZSA9IGV2ZW50LnR5cGUgfHwgJ3Vua25vd24tZXZlbnQnO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gaW5qZWN0aW9uLk1vdW50LmdldE5vZGUoZG9tSUQpO1xuICBpZiAoc2ltdWxhdGVkKSB7XG4gICAgUmVhY3RFcnJvclV0aWxzLmludm9rZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaCh0eXBlLCBsaXN0ZW5lciwgZXZlbnQsIGRvbUlEKTtcbiAgfSBlbHNlIHtcbiAgICBSZWFjdEVycm9yVXRpbHMuaW52b2tlR3VhcmRlZENhbGxiYWNrKHR5cGUsIGxpc3RlbmVyLCBldmVudCwgZG9tSUQpO1xuICB9XG4gIGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBudWxsO1xufVxuXG4vKipcbiAqIFN0YW5kYXJkL3NpbXBsZSBpdGVyYXRpb24gdGhyb3VnaCBhbiBldmVudCdzIGNvbGxlY3RlZCBkaXNwYXRjaGVzLlxuICovXG5mdW5jdGlvbiBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXIoZXZlbnQsIHNpbXVsYXRlZCkge1xuICB2YXIgZGlzcGF0Y2hMaXN0ZW5lcnMgPSBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnM7XG4gIHZhciBkaXNwYXRjaElEcyA9IGV2ZW50Ll9kaXNwYXRjaElEcztcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB2YWxpZGF0ZUV2ZW50RGlzcGF0Y2hlcyhldmVudCk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkoZGlzcGF0Y2hMaXN0ZW5lcnMpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXNwYXRjaExpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBMaXN0ZW5lcnMgYW5kIElEcyBhcmUgdHdvIHBhcmFsbGVsIGFycmF5cyB0aGF0IGFyZSBhbHdheXMgaW4gc3luYy5cbiAgICAgIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgc2ltdWxhdGVkLCBkaXNwYXRjaExpc3RlbmVyc1tpXSwgZGlzcGF0Y2hJRHNbaV0pO1xuICAgIH1cbiAgfSBlbHNlIGlmIChkaXNwYXRjaExpc3RlbmVycykge1xuICAgIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgc2ltdWxhdGVkLCBkaXNwYXRjaExpc3RlbmVycywgZGlzcGF0Y2hJRHMpO1xuICB9XG4gIGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycyA9IG51bGw7XG4gIGV2ZW50Ll9kaXNwYXRjaElEcyA9IG51bGw7XG59XG5cbi8qKlxuICogU3RhbmRhcmQvc2ltcGxlIGl0ZXJhdGlvbiB0aHJvdWdoIGFuIGV2ZW50J3MgY29sbGVjdGVkIGRpc3BhdGNoZXMsIGJ1dCBzdG9wc1xuICogYXQgdGhlIGZpcnN0IGRpc3BhdGNoIGV4ZWN1dGlvbiByZXR1cm5pbmcgdHJ1ZSwgYW5kIHJldHVybnMgdGhhdCBpZC5cbiAqXG4gKiBAcmV0dXJuIHs/c3RyaW5nfSBpZCBvZiB0aGUgZmlyc3QgZGlzcGF0Y2ggZXhlY3V0aW9uIHdobydzIGxpc3RlbmVyIHJldHVybnNcbiAqIHRydWUsIG9yIG51bGwgaWYgbm8gbGlzdGVuZXIgcmV0dXJuZWQgdHJ1ZS5cbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZUltcGwoZXZlbnQpIHtcbiAgdmFyIGRpc3BhdGNoTGlzdGVuZXJzID0gZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xuICB2YXIgZGlzcGF0Y2hJRHMgPSBldmVudC5fZGlzcGF0Y2hJRHM7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFsaWRhdGVFdmVudERpc3BhdGNoZXMoZXZlbnQpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXJzKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlzcGF0Y2hMaXN0ZW5lcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gTGlzdGVuZXJzIGFuZCBJRHMgYXJlIHR3byBwYXJhbGxlbCBhcnJheXMgdGhhdCBhcmUgYWx3YXlzIGluIHN5bmMuXG4gICAgICBpZiAoZGlzcGF0Y2hMaXN0ZW5lcnNbaV0oZXZlbnQsIGRpc3BhdGNoSURzW2ldKSkge1xuICAgICAgICByZXR1cm4gZGlzcGF0Y2hJRHNbaV07XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGRpc3BhdGNoTGlzdGVuZXJzKSB7XG4gICAgaWYgKGRpc3BhdGNoTGlzdGVuZXJzKGV2ZW50LCBkaXNwYXRjaElEcykpIHtcbiAgICAgIHJldHVybiBkaXNwYXRjaElEcztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQHNlZSBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlSW1wbFxuICovXG5mdW5jdGlvbiBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlKGV2ZW50KSB7XG4gIHZhciByZXQgPSBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlSW1wbChldmVudCk7XG4gIGV2ZW50Ll9kaXNwYXRjaElEcyA9IG51bGw7XG4gIGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycyA9IG51bGw7XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogRXhlY3V0aW9uIG9mIGEgXCJkaXJlY3RcIiBkaXNwYXRjaCAtIHRoZXJlIG11c3QgYmUgYXQgbW9zdCBvbmUgZGlzcGF0Y2hcbiAqIGFjY3VtdWxhdGVkIG9uIHRoZSBldmVudCBvciBpdCBpcyBjb25zaWRlcmVkIGFuIGVycm9yLiBJdCBkb2Vzbid0IHJlYWxseSBtYWtlXG4gKiBzZW5zZSBmb3IgYW4gZXZlbnQgd2l0aCBtdWx0aXBsZSBkaXNwYXRjaGVzIChidWJibGVkKSB0byBrZWVwIHRyYWNrIG9mIHRoZVxuICogcmV0dXJuIHZhbHVlcyBhdCBlYWNoIGRpc3BhdGNoIGV4ZWN1dGlvbiwgYnV0IGl0IGRvZXMgdGVuZCB0byBtYWtlIHNlbnNlIHdoZW5cbiAqIGRlYWxpbmcgd2l0aCBcImRpcmVjdFwiIGRpc3BhdGNoZXMuXG4gKlxuICogQHJldHVybiB7Kn0gVGhlIHJldHVybiB2YWx1ZSBvZiBleGVjdXRpbmcgdGhlIHNpbmdsZSBkaXNwYXRjaC5cbiAqL1xuZnVuY3Rpb24gZXhlY3V0ZURpcmVjdERpc3BhdGNoKGV2ZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFsaWRhdGVFdmVudERpc3BhdGNoZXMoZXZlbnQpO1xuICB9XG4gIHZhciBkaXNwYXRjaExpc3RlbmVyID0gZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xuICB2YXIgZGlzcGF0Y2hJRCA9IGV2ZW50Ll9kaXNwYXRjaElEcztcbiAgISFBcnJheS5pc0FycmF5KGRpc3BhdGNoTGlzdGVuZXIpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2V4ZWN1dGVEaXJlY3REaXNwYXRjaCguLi4pOiBJbnZhbGlkIGBldmVudGAuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICB2YXIgcmVzID0gZGlzcGF0Y2hMaXN0ZW5lciA/IGRpc3BhdGNoTGlzdGVuZXIoZXZlbnQsIGRpc3BhdGNoSUQpIDogbnVsbDtcbiAgZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzID0gbnVsbDtcbiAgZXZlbnQuX2Rpc3BhdGNoSURzID0gbnVsbDtcbiAgcmV0dXJuIHJlcztcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1N5bnRoZXRpY0V2ZW50fSBldmVudFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZmYgbnVtYmVyIG9mIGRpc3BhdGNoZXMgYWNjdW11bGF0ZWQgaXMgZ3JlYXRlciB0aGFuIDAuXG4gKi9cbmZ1bmN0aW9uIGhhc0Rpc3BhdGNoZXMoZXZlbnQpIHtcbiAgcmV0dXJuICEhZXZlbnQuX2Rpc3BhdGNoTGlzdGVuZXJzO1xufVxuXG4vKipcbiAqIEdlbmVyYWwgdXRpbGl0aWVzIHRoYXQgYXJlIHVzZWZ1bCBpbiBjcmVhdGluZyBjdXN0b20gRXZlbnQgUGx1Z2lucy5cbiAqL1xudmFyIEV2ZW50UGx1Z2luVXRpbHMgPSB7XG4gIGlzRW5kaXNoOiBpc0VuZGlzaCxcbiAgaXNNb3ZlaXNoOiBpc01vdmVpc2gsXG4gIGlzU3RhcnRpc2g6IGlzU3RhcnRpc2gsXG5cbiAgZXhlY3V0ZURpcmVjdERpc3BhdGNoOiBleGVjdXRlRGlyZWN0RGlzcGF0Y2gsXG4gIGV4ZWN1dGVEaXNwYXRjaGVzSW5PcmRlcjogZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyLFxuICBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlOiBleGVjdXRlRGlzcGF0Y2hlc0luT3JkZXJTdG9wQXRUcnVlLFxuICBoYXNEaXNwYXRjaGVzOiBoYXNEaXNwYXRjaGVzLFxuXG4gIGdldE5vZGU6IGZ1bmN0aW9uIChpZCkge1xuICAgIHJldHVybiBpbmplY3Rpb24uTW91bnQuZ2V0Tm9kZShpZCk7XG4gIH0sXG4gIGdldElEOiBmdW5jdGlvbiAobm9kZSkge1xuICAgIHJldHVybiBpbmplY3Rpb24uTW91bnQuZ2V0SUQobm9kZSk7XG4gIH0sXG5cbiAgaW5qZWN0aW9uOiBpbmplY3Rpb25cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRQbHVnaW5VdGlscztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRXZlbnRQbHVnaW5VdGlscy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 34 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactErrorUtils\n * @typechecks\n */\n\n'use strict';\n\nvar caughtError = null;\n\n/**\n * Call a function while guarding against errors that happens within it.\n *\n * @param {?String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} a First argument\n * @param {*} b Second argument\n */\nfunction invokeGuardedCallback(name, func, a, b) {\n try {\n return func(a, b);\n } catch (x) {\n if (caughtError === null) {\n caughtError = x;\n }\n return undefined;\n }\n}\n\nvar ReactErrorUtils = {\n invokeGuardedCallback: invokeGuardedCallback,\n\n /**\n * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event\n * handler are sure to be rethrown by rethrowCaughtError.\n */\n invokeGuardedCallbackWithCatch: invokeGuardedCallback,\n\n /**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n rethrowCaughtError: function rethrowCaughtError() {\n if (caughtError) {\n var error = caughtError;\n caughtError = null;\n throw error;\n }\n }\n};\n\nif (process.env.NODE_ENV !== 'production') {\n /**\n * To help development we can get better devtools integration by simulating a\n * real browser event.\n */\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n ReactErrorUtils.invokeGuardedCallback = function (name, func, a, b) {\n var boundFunc = func.bind(null, a, b);\n var evtType = 'react-' + name;\n fakeNode.addEventListener(evtType, boundFunc, false);\n var evt = document.createEvent('Event');\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n fakeNode.removeEventListener(evtType, boundFunc, false);\n };\n }\n}\n\nmodule.exports = ReactErrorUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFcnJvclV0aWxzLmpzPzVkNjYiXSwibmFtZXMiOlsiY2F1Z2h0RXJyb3IiLCJpbnZva2VHdWFyZGVkQ2FsbGJhY2siLCJuYW1lIiwiZnVuYyIsImEiLCJiIiwieCIsInVuZGVmaW5lZCIsIlJlYWN0RXJyb3JVdGlscyIsImludm9rZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaCIsInJldGhyb3dDYXVnaHRFcnJvciIsImVycm9yIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2luZG93IiwiZGlzcGF0Y2hFdmVudCIsImRvY3VtZW50IiwiY3JlYXRlRXZlbnQiLCJmYWtlTm9kZSIsImNyZWF0ZUVsZW1lbnQiLCJib3VuZEZ1bmMiLCJiaW5kIiwiZXZ0VHlwZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJldnQiLCJpbml0RXZlbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGNBQWMsSUFBbEI7O0FBRUE7Ozs7Ozs7O0FBUUEsU0FBU0MscUJBQVQsQ0FBK0JDLElBQS9CLEVBQXFDQyxJQUFyQyxFQUEyQ0MsQ0FBM0MsRUFBOENDLENBQTlDLEVBQWlEO0FBQy9DLE1BQUk7QUFDRixXQUFPRixLQUFLQyxDQUFMLEVBQVFDLENBQVIsQ0FBUDtBQUNELEdBRkQsQ0FFRSxPQUFPQyxDQUFQLEVBQVU7QUFDVixRQUFJTixnQkFBZ0IsSUFBcEIsRUFBMEI7QUFDeEJBLG9CQUFjTSxDQUFkO0FBQ0Q7QUFDRCxXQUFPQyxTQUFQO0FBQ0Q7QUFDRjs7QUFFRCxJQUFJQyxrQkFBa0I7QUFDcEJQLHlCQUF1QkEscUJBREg7O0FBR3BCOzs7O0FBSUFRLGtDQUFnQ1IscUJBUFo7O0FBU3BCOzs7O0FBSUFTLHNCQUFvQiw4QkFBWTtBQUM5QixRQUFJVixXQUFKLEVBQWlCO0FBQ2YsVUFBSVcsUUFBUVgsV0FBWjtBQUNBQSxvQkFBYyxJQUFkO0FBQ0EsWUFBTVcsS0FBTjtBQUNEO0FBQ0Y7QUFuQm1CLENBQXRCOztBQXNCQSxJQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekM7Ozs7QUFJQSxNQUFJLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsSUFBaUMsT0FBT0EsT0FBT0MsYUFBZCxLQUFnQyxVQUFqRSxJQUErRSxPQUFPQyxRQUFQLEtBQW9CLFdBQW5HLElBQWtILE9BQU9BLFNBQVNDLFdBQWhCLEtBQWdDLFVBQXRKLEVBQWtLO0FBQ2hLLFFBQUlDLFdBQVdGLFNBQVNHLGFBQVQsQ0FBdUIsT0FBdkIsQ0FBZjtBQUNBWixvQkFBZ0JQLHFCQUFoQixHQUF3QyxVQUFVQyxJQUFWLEVBQWdCQyxJQUFoQixFQUFzQkMsQ0FBdEIsRUFBeUJDLENBQXpCLEVBQTRCO0FBQ2xFLFVBQUlnQixZQUFZbEIsS0FBS21CLElBQUwsQ0FBVSxJQUFWLEVBQWdCbEIsQ0FBaEIsRUFBbUJDLENBQW5CLENBQWhCO0FBQ0EsVUFBSWtCLFVBQVUsV0FBV3JCLElBQXpCO0FBQ0FpQixlQUFTSyxnQkFBVCxDQUEwQkQsT0FBMUIsRUFBbUNGLFNBQW5DLEVBQThDLEtBQTlDO0FBQ0EsVUFBSUksTUFBTVIsU0FBU0MsV0FBVCxDQUFxQixPQUFyQixDQUFWO0FBQ0FPLFVBQUlDLFNBQUosQ0FBY0gsT0FBZCxFQUF1QixLQUF2QixFQUE4QixLQUE5QjtBQUNBSixlQUFTSCxhQUFULENBQXVCUyxHQUF2QjtBQUNBTixlQUFTUSxtQkFBVCxDQUE2QkosT0FBN0IsRUFBc0NGLFNBQXRDLEVBQWlELEtBQWpEO0FBQ0QsS0FSRDtBQVNEO0FBQ0Y7O0FBRURPLE9BQU9DLE9BQVAsR0FBaUJyQixlQUFqQixDIiwiZmlsZSI6IjM0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RXJyb3JVdGlsc1xuICogQHR5cGVjaGVja3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBjYXVnaHRFcnJvciA9IG51bGw7XG5cbi8qKlxuICogQ2FsbCBhIGZ1bmN0aW9uIHdoaWxlIGd1YXJkaW5nIGFnYWluc3QgZXJyb3JzIHRoYXQgaGFwcGVucyB3aXRoaW4gaXQuXG4gKlxuICogQHBhcmFtIHs/U3RyaW5nfSBuYW1lIG9mIHRoZSBndWFyZCB0byB1c2UgZm9yIGxvZ2dpbmcgb3IgZGVidWdnaW5nXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2VcbiAqIEBwYXJhbSB7Kn0gYSBGaXJzdCBhcmd1bWVudFxuICogQHBhcmFtIHsqfSBiIFNlY29uZCBhcmd1bWVudFxuICovXG5mdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobmFtZSwgZnVuYywgYSwgYikge1xuICB0cnkge1xuICAgIHJldHVybiBmdW5jKGEsIGIpO1xuICB9IGNhdGNoICh4KSB7XG4gICAgaWYgKGNhdWdodEVycm9yID09PSBudWxsKSB7XG4gICAgICBjYXVnaHRFcnJvciA9IHg7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxudmFyIFJlYWN0RXJyb3JVdGlscyA9IHtcbiAgaW52b2tlR3VhcmRlZENhbGxiYWNrOiBpbnZva2VHdWFyZGVkQ2FsbGJhY2ssXG5cbiAgLyoqXG4gICAqIEludm9rZWQgYnkgUmVhY3RUZXN0VXRpbHMuU2ltdWxhdGUgc28gdGhhdCBhbnkgZXJyb3JzIHRocm93biBieSB0aGUgZXZlbnRcbiAgICogaGFuZGxlciBhcmUgc3VyZSB0byBiZSByZXRocm93biBieSByZXRocm93Q2F1Z2h0RXJyb3IuXG4gICAqL1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2tXaXRoQ2F0Y2g6IGludm9rZUd1YXJkZWRDYWxsYmFjayxcblxuICAvKipcbiAgICogRHVyaW5nIGV4ZWN1dGlvbiBvZiBndWFyZGVkIGZ1bmN0aW9ucyB3ZSB3aWxsIGNhcHR1cmUgdGhlIGZpcnN0IGVycm9yIHdoaWNoXG4gICAqIHdlIHdpbGwgcmV0aHJvdyB0byBiZSBoYW5kbGVkIGJ5IHRoZSB0b3AgbGV2ZWwgZXJyb3IgaGFuZGxlci5cbiAgICovXG4gIHJldGhyb3dDYXVnaHRFcnJvcjogZnVuY3Rpb24gKCkge1xuICAgIGlmIChjYXVnaHRFcnJvcikge1xuICAgICAgdmFyIGVycm9yID0gY2F1Z2h0RXJyb3I7XG4gICAgICBjYXVnaHRFcnJvciA9IG51bGw7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn07XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8qKlxuICAgKiBUbyBoZWxwIGRldmVsb3BtZW50IHdlIGNhbiBnZXQgYmV0dGVyIGRldnRvb2xzIGludGVncmF0aW9uIGJ5IHNpbXVsYXRpbmcgYVxuICAgKiByZWFsIGJyb3dzZXIgZXZlbnQuXG4gICAqL1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kaXNwYXRjaEV2ZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUV2ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIGZha2VOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncmVhY3QnKTtcbiAgICBSZWFjdEVycm9yVXRpbHMuaW52b2tlR3VhcmRlZENhbGxiYWNrID0gZnVuY3Rpb24gKG5hbWUsIGZ1bmMsIGEsIGIpIHtcbiAgICAgIHZhciBib3VuZEZ1bmMgPSBmdW5jLmJpbmQobnVsbCwgYSwgYik7XG4gICAgICB2YXIgZXZ0VHlwZSA9ICdyZWFjdC0nICsgbmFtZTtcbiAgICAgIGZha2VOb2RlLmFkZEV2ZW50TGlzdGVuZXIoZXZ0VHlwZSwgYm91bmRGdW5jLCBmYWxzZSk7XG4gICAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG4gICAgICBldnQuaW5pdEV2ZW50KGV2dFR5cGUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICBmYWtlTm9kZS5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gICAgICBmYWtlTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2dFR5cGUsIGJvdW5kRnVuYywgZmFsc2UpO1xuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdEVycm9yVXRpbHM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RXJyb3JVdGlscy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 35 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule accumulateInto\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\n/**\n *\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : invariant(false) : undefined;\n if (current == null) {\n return next;\n }\n\n // Both are not empty. Warning: Never call x.concat(y) when you are not\n // certain that x is an Array (x could be a string with concat method).\n var currentIsArray = Array.isArray(current);\n var nextIsArray = Array.isArray(next);\n\n if (currentIsArray && nextIsArray) {\n current.push.apply(current, next);\n return current;\n }\n\n if (currentIsArray) {\n current.push(next);\n return current;\n }\n\n if (nextIsArray) {\n // A bit too dangerous to mutate `next`.\n return [current].concat(next);\n }\n\n return [current, next];\n}\n\nmodule.exports = accumulateInto;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvYWNjdW11bGF0ZUludG8uanM/NTIxOCJdLCJuYW1lcyI6WyJpbnZhcmlhbnQiLCJyZXF1aXJlIiwiYWNjdW11bGF0ZUludG8iLCJjdXJyZW50IiwibmV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImN1cnJlbnRJc0FycmF5IiwiQXJyYXkiLCJpc0FycmF5IiwibmV4dElzQXJyYXkiLCJwdXNoIiwiYXBwbHkiLCJjb25jYXQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxZQUFZLG1CQUFBQyxDQUFRLEVBQVIsQ0FBaEI7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBU0MsY0FBVCxDQUF3QkMsT0FBeEIsRUFBaUNDLElBQWpDLEVBQXVDO0FBQ3JDLElBQUVBLFFBQVEsSUFBVixJQUFrQkMsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDUCxVQUFVLEtBQVYsRUFBaUIsdUVBQWpCLENBQXhDLEdBQW9JQSxVQUFVLEtBQVYsQ0FBdEosR0FBeUtRLFNBQXpLO0FBQ0EsTUFBSUwsV0FBVyxJQUFmLEVBQXFCO0FBQ25CLFdBQU9DLElBQVA7QUFDRDs7QUFFRDtBQUNBO0FBQ0EsTUFBSUssaUJBQWlCQyxNQUFNQyxPQUFOLENBQWNSLE9BQWQsQ0FBckI7QUFDQSxNQUFJUyxjQUFjRixNQUFNQyxPQUFOLENBQWNQLElBQWQsQ0FBbEI7O0FBRUEsTUFBSUssa0JBQWtCRyxXQUF0QixFQUFtQztBQUNqQ1QsWUFBUVUsSUFBUixDQUFhQyxLQUFiLENBQW1CWCxPQUFuQixFQUE0QkMsSUFBNUI7QUFDQSxXQUFPRCxPQUFQO0FBQ0Q7O0FBRUQsTUFBSU0sY0FBSixFQUFvQjtBQUNsQk4sWUFBUVUsSUFBUixDQUFhVCxJQUFiO0FBQ0EsV0FBT0QsT0FBUDtBQUNEOztBQUVELE1BQUlTLFdBQUosRUFBaUI7QUFDZjtBQUNBLFdBQU8sQ0FBQ1QsT0FBRCxFQUFVWSxNQUFWLENBQWlCWCxJQUFqQixDQUFQO0FBQ0Q7O0FBRUQsU0FBTyxDQUFDRCxPQUFELEVBQVVDLElBQVYsQ0FBUDtBQUNEOztBQUVEWSxPQUFPQyxPQUFQLEdBQWlCZixjQUFqQixDIiwiZmlsZSI6IjM1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGFjY3VtdWxhdGVJbnRvXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbi8qKlxuICpcbiAqIEFjY3VtdWxhdGVzIGl0ZW1zIHRoYXQgbXVzdCBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQgaW50byB0aGUgZmlyc3Qgb25lLiBUaGlzXG4gKiBpcyB1c2VkIHRvIGNvbnNlcnZlIG1lbW9yeSBieSBhdm9pZGluZyBhcnJheSBhbGxvY2F0aW9ucywgYW5kIHRodXMgc2FjcmlmaWNlc1xuICogQVBJIGNsZWFubmVzcy4gU2luY2UgYGN1cnJlbnRgIGNhbiBiZSBudWxsIGJlZm9yZSBiZWluZyBwYXNzZWQgaW4gYW5kIG5vdFxuICogbnVsbCBhZnRlciB0aGlzIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdG8gYXNzaWduIGl0IGJhY2sgdG8gYGN1cnJlbnRgOlxuICpcbiAqIGBhID0gYWNjdW11bGF0ZUludG8oYSwgYik7YFxuICpcbiAqIFRoaXMgQVBJIHNob3VsZCBiZSBzcGFyaW5nbHkgdXNlZC4gVHJ5IGBhY2N1bXVsYXRlYCBmb3Igc29tZXRoaW5nIGNsZWFuZXIuXG4gKlxuICogQHJldHVybiB7KnxhcnJheTwqPn0gQW4gYWNjdW11bGF0aW9uIG9mIGl0ZW1zLlxuICovXG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVJbnRvKGN1cnJlbnQsIG5leHQpIHtcbiAgIShuZXh0ICE9IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2FjY3VtdWxhdGVJbnRvKC4uLik6IEFjY3VtdWxhdGVkIGl0ZW1zIG11c3Qgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBuZXh0O1xuICB9XG5cbiAgLy8gQm90aCBhcmUgbm90IGVtcHR5LiBXYXJuaW5nOiBOZXZlciBjYWxsIHguY29uY2F0KHkpIHdoZW4geW91IGFyZSBub3RcbiAgLy8gY2VydGFpbiB0aGF0IHggaXMgYW4gQXJyYXkgKHggY291bGQgYmUgYSBzdHJpbmcgd2l0aCBjb25jYXQgbWV0aG9kKS5cbiAgdmFyIGN1cnJlbnRJc0FycmF5ID0gQXJyYXkuaXNBcnJheShjdXJyZW50KTtcbiAgdmFyIG5leHRJc0FycmF5ID0gQXJyYXkuaXNBcnJheShuZXh0KTtcblxuICBpZiAoY3VycmVudElzQXJyYXkgJiYgbmV4dElzQXJyYXkpIHtcbiAgICBjdXJyZW50LnB1c2guYXBwbHkoY3VycmVudCwgbmV4dCk7XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cblxuICBpZiAoY3VycmVudElzQXJyYXkpIHtcbiAgICBjdXJyZW50LnB1c2gobmV4dCk7XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cblxuICBpZiAobmV4dElzQXJyYXkpIHtcbiAgICAvLyBBIGJpdCB0b28gZGFuZ2Vyb3VzIHRvIG11dGF0ZSBgbmV4dGAuXG4gICAgcmV0dXJuIFtjdXJyZW50XS5jb25jYXQobmV4dCk7XG4gIH1cblxuICByZXR1cm4gW2N1cnJlbnQsIG5leHRdO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFjY3VtdWxhdGVJbnRvO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9hY2N1bXVsYXRlSW50by5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 36 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule forEachAccumulated\n */\n\n'use strict';\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n */\n\nvar forEachAccumulated = function forEachAccumulated(arr, cb, scope) {\n if (Array.isArray(arr)) {\n arr.forEach(cb, scope);\n } else if (arr) {\n cb.call(scope, arr);\n }\n};\n\nmodule.exports = forEachAccumulated;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZm9yRWFjaEFjY3VtdWxhdGVkLmpzP2Q5NGQiXSwibmFtZXMiOlsiZm9yRWFjaEFjY3VtdWxhdGVkIiwiYXJyIiwiY2IiLCJzY29wZSIsIkFycmF5IiwiaXNBcnJheSIsImZvckVhY2giLCJjYWxsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUE7Ozs7Ozs7O0FBT0EsSUFBSUEscUJBQXFCLFNBQXJCQSxrQkFBcUIsQ0FBVUMsR0FBVixFQUFlQyxFQUFmLEVBQW1CQyxLQUFuQixFQUEwQjtBQUNqRCxNQUFJQyxNQUFNQyxPQUFOLENBQWNKLEdBQWQsQ0FBSixFQUF3QjtBQUN0QkEsUUFBSUssT0FBSixDQUFZSixFQUFaLEVBQWdCQyxLQUFoQjtBQUNELEdBRkQsTUFFTyxJQUFJRixHQUFKLEVBQVM7QUFDZEMsT0FBR0ssSUFBSCxDQUFRSixLQUFSLEVBQWVGLEdBQWY7QUFDRDtBQUNGLENBTkQ7O0FBUUFPLE9BQU9DLE9BQVAsR0FBaUJULGtCQUFqQiIsImZpbGUiOiIzNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBmb3JFYWNoQWNjdW11bGF0ZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQHBhcmFtIHthcnJheX0gYXJyIGFuIFwiYWNjdW11bGF0aW9uXCIgb2YgaXRlbXMgd2hpY2ggaXMgZWl0aGVyIGFuIEFycmF5IG9yXG4gKiBhIHNpbmdsZSBpdGVtLiBVc2VmdWwgd2hlbiBwYWlyZWQgd2l0aCB0aGUgYGFjY3VtdWxhdGVgIG1vZHVsZS4gVGhpcyBpcyBhXG4gKiBzaW1wbGUgdXRpbGl0eSB0aGF0IGFsbG93cyB1cyB0byByZWFzb24gYWJvdXQgYSBjb2xsZWN0aW9uIG9mIGl0ZW1zLCBidXRcbiAqIGhhbmRsaW5nIHRoZSBjYXNlIHdoZW4gdGhlcmUgaXMgZXhhY3RseSBvbmUgaXRlbSAoYW5kIHdlIGRvIG5vdCBuZWVkIHRvXG4gKiBhbGxvY2F0ZSBhbiBhcnJheSkuXG4gKi9cbnZhciBmb3JFYWNoQWNjdW11bGF0ZWQgPSBmdW5jdGlvbiAoYXJyLCBjYiwgc2NvcGUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkge1xuICAgIGFyci5mb3JFYWNoKGNiLCBzY29wZSk7XG4gIH0gZWxzZSBpZiAoYXJyKSB7XG4gICAgY2IuY2FsbChzY29wZSwgYXJyKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmb3JFYWNoQWNjdW11bGF0ZWQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL2ZvckVhY2hBY2N1bXVsYXRlZC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 37 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventEmitterMixin\n */\n\n'use strict';\n\nvar EventPluginHub = __webpack_require__(31);\n\nfunction runEventQueueInBatch(events) {\n EventPluginHub.enqueueEvents(events);\n EventPluginHub.processEventQueue(false);\n}\n\nvar ReactEventEmitterMixin = {\n\n /**\n * Streams a fired top-level event to `EventPluginHub` where plugins have the\n * opportunity to create `ReactEvent`s to be dispatched.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native environment event.\n */\n handleTopLevel: function handleTopLevel(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n var events = EventPluginHub.extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget);\n runEventQueueInBatch(events);\n }\n};\n\nmodule.exports = ReactEventEmitterMixin;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFdmVudEVtaXR0ZXJNaXhpbi5qcz9hNGFiIl0sIm5hbWVzIjpbIkV2ZW50UGx1Z2luSHViIiwicmVxdWlyZSIsInJ1bkV2ZW50UXVldWVJbkJhdGNoIiwiZXZlbnRzIiwiZW5xdWV1ZUV2ZW50cyIsInByb2Nlc3NFdmVudFF1ZXVlIiwiUmVhY3RFdmVudEVtaXR0ZXJNaXhpbiIsImhhbmRsZVRvcExldmVsIiwidG9wTGV2ZWxUeXBlIiwidG9wTGV2ZWxUYXJnZXQiLCJ0b3BMZXZlbFRhcmdldElEIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsImV4dHJhY3RFdmVudHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjs7QUFFQSxTQUFTQyxvQkFBVCxDQUE4QkMsTUFBOUIsRUFBc0M7QUFDcENILGlCQUFlSSxhQUFmLENBQTZCRCxNQUE3QjtBQUNBSCxpQkFBZUssaUJBQWYsQ0FBaUMsS0FBakM7QUFDRDs7QUFFRCxJQUFJQyx5QkFBeUI7O0FBRTNCOzs7Ozs7Ozs7QUFTQUMsa0JBQWdCLHdCQUFVQyxZQUFWLEVBQXdCQyxjQUF4QixFQUF3Q0MsZ0JBQXhDLEVBQTBEQyxXQUExRCxFQUF1RUMsaUJBQXZFLEVBQTBGO0FBQ3hHLFFBQUlULFNBQVNILGVBQWVhLGFBQWYsQ0FBNkJMLFlBQTdCLEVBQTJDQyxjQUEzQyxFQUEyREMsZ0JBQTNELEVBQTZFQyxXQUE3RSxFQUEwRkMsaUJBQTFGLENBQWI7QUFDQVYseUJBQXFCQyxNQUFyQjtBQUNEO0FBZDBCLENBQTdCOztBQWlCQVcsT0FBT0MsT0FBUCxHQUFpQlQsc0JBQWpCIiwiZmlsZSI6IjM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RXZlbnRFbWl0dGVyTWl4aW5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBFdmVudFBsdWdpbkh1YiA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5IdWInKTtcblxuZnVuY3Rpb24gcnVuRXZlbnRRdWV1ZUluQmF0Y2goZXZlbnRzKSB7XG4gIEV2ZW50UGx1Z2luSHViLmVucXVldWVFdmVudHMoZXZlbnRzKTtcbiAgRXZlbnRQbHVnaW5IdWIucHJvY2Vzc0V2ZW50UXVldWUoZmFsc2UpO1xufVxuXG52YXIgUmVhY3RFdmVudEVtaXR0ZXJNaXhpbiA9IHtcblxuICAvKipcbiAgICogU3RyZWFtcyBhIGZpcmVkIHRvcC1sZXZlbCBldmVudCB0byBgRXZlbnRQbHVnaW5IdWJgIHdoZXJlIHBsdWdpbnMgaGF2ZSB0aGVcbiAgICogb3Bwb3J0dW5pdHkgdG8gY3JlYXRlIGBSZWFjdEV2ZW50YHMgdG8gYmUgZGlzcGF0Y2hlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVHlwZSBSZWNvcmQgZnJvbSBgRXZlbnRDb25zdGFudHNgLlxuICAgKiBAcGFyYW0ge29iamVjdH0gdG9wTGV2ZWxUYXJnZXQgVGhlIGxpc3RlbmluZyBjb21wb25lbnQgcm9vdCBub2RlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUYXJnZXRJRCBJRCBvZiBgdG9wTGV2ZWxUYXJnZXRgLlxuICAgKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGVudmlyb25tZW50IGV2ZW50LlxuICAgKi9cbiAgaGFuZGxlVG9wTGV2ZWw6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElELCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICB2YXIgZXZlbnRzID0gRXZlbnRQbHVnaW5IdWIuZXh0cmFjdEV2ZW50cyh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElELCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIHJ1bkV2ZW50UXVldWVJbkJhdGNoKGV2ZW50cyk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RFdmVudEVtaXR0ZXJNaXhpbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFdmVudEVtaXR0ZXJNaXhpbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 38 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ViewportMetrics\n */\n\n'use strict';\n\nvar ViewportMetrics = {\n\n currentScrollLeft: 0,\n\n currentScrollTop: 0,\n\n refreshScrollValues: function refreshScrollValues(scrollPosition) {\n ViewportMetrics.currentScrollLeft = scrollPosition.x;\n ViewportMetrics.currentScrollTop = scrollPosition.y;\n }\n\n};\n\nmodule.exports = ViewportMetrics;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvVmlld3BvcnRNZXRyaWNzLmpzP2VjYzUiXSwibmFtZXMiOlsiVmlld3BvcnRNZXRyaWNzIiwiY3VycmVudFNjcm9sbExlZnQiLCJjdXJyZW50U2Nyb2xsVG9wIiwicmVmcmVzaFNjcm9sbFZhbHVlcyIsInNjcm9sbFBvc2l0aW9uIiwieCIsInkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxrQkFBa0I7O0FBRXBCQyxxQkFBbUIsQ0FGQzs7QUFJcEJDLG9CQUFrQixDQUpFOztBQU1wQkMsdUJBQXFCLDZCQUFVQyxjQUFWLEVBQTBCO0FBQzdDSixvQkFBZ0JDLGlCQUFoQixHQUFvQ0csZUFBZUMsQ0FBbkQ7QUFDQUwsb0JBQWdCRSxnQkFBaEIsR0FBbUNFLGVBQWVFLENBQWxEO0FBQ0Q7O0FBVG1CLENBQXRCOztBQWFBQyxPQUFPQyxPQUFQLEdBQWlCUixlQUFqQiIsImZpbGUiOiIzOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBWaWV3cG9ydE1ldHJpY3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBWaWV3cG9ydE1ldHJpY3MgPSB7XG5cbiAgY3VycmVudFNjcm9sbExlZnQ6IDAsXG5cbiAgY3VycmVudFNjcm9sbFRvcDogMCxcblxuICByZWZyZXNoU2Nyb2xsVmFsdWVzOiBmdW5jdGlvbiAoc2Nyb2xsUG9zaXRpb24pIHtcbiAgICBWaWV3cG9ydE1ldHJpY3MuY3VycmVudFNjcm9sbExlZnQgPSBzY3JvbGxQb3NpdGlvbi54O1xuICAgIFZpZXdwb3J0TWV0cmljcy5jdXJyZW50U2Nyb2xsVG9wID0gc2Nyb2xsUG9zaXRpb24ueTtcbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFZpZXdwb3J0TWV0cmljcztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvVmlld3BvcnRNZXRyaWNzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 39 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n if (target == null) {\n throw new TypeError('Object.assign target cannot be null or undefined');\n }\n\n var to = Object(target);\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n var nextSource = arguments[nextIndex];\n if (nextSource == null) {\n continue;\n }\n\n var from = Object(nextSource);\n\n // We don't currently support accessors nor proxies. Therefore this\n // copy cannot throw. If we ever supported this then we must handle\n // exceptions and side-effects. We don't support symbols so they won't\n // be transferred.\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n }\n\n return to;\n}\n\nmodule.exports = assign;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvT2JqZWN0LmFzc2lnbi5qcz9lYWQ0Il0sIm5hbWVzIjpbImFzc2lnbiIsInRhcmdldCIsInNvdXJjZXMiLCJUeXBlRXJyb3IiLCJ0byIsIk9iamVjdCIsImhhc093blByb3BlcnR5IiwicHJvdG90eXBlIiwibmV4dEluZGV4IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwibmV4dFNvdXJjZSIsImZyb20iLCJrZXkiLCJjYWxsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUE7O0FBRUEsU0FBU0EsTUFBVCxDQUFnQkMsTUFBaEIsRUFBd0JDLE9BQXhCLEVBQWlDO0FBQy9CLE1BQUlELFVBQVUsSUFBZCxFQUFvQjtBQUNsQixVQUFNLElBQUlFLFNBQUosQ0FBYyxrREFBZCxDQUFOO0FBQ0Q7O0FBRUQsTUFBSUMsS0FBS0MsT0FBT0osTUFBUCxDQUFUO0FBQ0EsTUFBSUssaUJBQWlCRCxPQUFPRSxTQUFQLENBQWlCRCxjQUF0Qzs7QUFFQSxPQUFLLElBQUlFLFlBQVksQ0FBckIsRUFBd0JBLFlBQVlDLFVBQVVDLE1BQTlDLEVBQXNERixXQUF0RCxFQUFtRTtBQUNqRSxRQUFJRyxhQUFhRixVQUFVRCxTQUFWLENBQWpCO0FBQ0EsUUFBSUcsY0FBYyxJQUFsQixFQUF3QjtBQUN0QjtBQUNEOztBQUVELFFBQUlDLE9BQU9QLE9BQU9NLFVBQVAsQ0FBWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFLLElBQUlFLEdBQVQsSUFBZ0JELElBQWhCLEVBQXNCO0FBQ3BCLFVBQUlOLGVBQWVRLElBQWYsQ0FBb0JGLElBQXBCLEVBQTBCQyxHQUExQixDQUFKLEVBQW9DO0FBQ2xDVCxXQUFHUyxHQUFILElBQVVELEtBQUtDLEdBQUwsQ0FBVjtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxTQUFPVCxFQUFQO0FBQ0Q7O0FBRURXLE9BQU9DLE9BQVAsR0FBaUJoQixNQUFqQiIsImZpbGUiOiIzOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBPYmplY3QuYXNzaWduXG4gKi9cblxuLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLW9iamVjdC5hc3NpZ25cblxuJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2VzKSB7XG4gIGlmICh0YXJnZXQgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gdGFyZ2V0IGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCcpO1xuICB9XG5cbiAgdmFyIHRvID0gT2JqZWN0KHRhcmdldCk7XG4gIHZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbiAgZm9yICh2YXIgbmV4dEluZGV4ID0gMTsgbmV4dEluZGV4IDwgYXJndW1lbnRzLmxlbmd0aDsgbmV4dEluZGV4KyspIHtcbiAgICB2YXIgbmV4dFNvdXJjZSA9IGFyZ3VtZW50c1tuZXh0SW5kZXhdO1xuICAgIGlmIChuZXh0U291cmNlID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBmcm9tID0gT2JqZWN0KG5leHRTb3VyY2UpO1xuXG4gICAgLy8gV2UgZG9uJ3QgY3VycmVudGx5IHN1cHBvcnQgYWNjZXNzb3JzIG5vciBwcm94aWVzLiBUaGVyZWZvcmUgdGhpc1xuICAgIC8vIGNvcHkgY2Fubm90IHRocm93LiBJZiB3ZSBldmVyIHN1cHBvcnRlZCB0aGlzIHRoZW4gd2UgbXVzdCBoYW5kbGVcbiAgICAvLyBleGNlcHRpb25zIGFuZCBzaWRlLWVmZmVjdHMuIFdlIGRvbid0IHN1cHBvcnQgc3ltYm9scyBzbyB0aGV5IHdvbid0XG4gICAgLy8gYmUgdHJhbnNmZXJyZWQuXG5cbiAgICBmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuICAgICAgICB0b1trZXldID0gZnJvbVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0bztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3NpZ247XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL09iamVjdC5hc3NpZ24uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 40 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvaXNFdmVudFN1cHBvcnRlZC5qcz80ODcxIl0sIm5hbWVzIjpbIkV4ZWN1dGlvbkVudmlyb25tZW50IiwicmVxdWlyZSIsInVzZUhhc0ZlYXR1cmUiLCJjYW5Vc2VET00iLCJkb2N1bWVudCIsImltcGxlbWVudGF0aW9uIiwiaGFzRmVhdHVyZSIsImlzRXZlbnRTdXBwb3J0ZWQiLCJldmVudE5hbWVTdWZmaXgiLCJjYXB0dXJlIiwiZXZlbnROYW1lIiwiaXNTdXBwb3J0ZWQiLCJlbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLHVCQUF1QixtQkFBQUMsQ0FBUSxDQUFSLENBQTNCOztBQUVBLElBQUlDLGFBQUo7QUFDQSxJQUFJRixxQkFBcUJHLFNBQXpCLEVBQW9DO0FBQ2xDRCxrQkFBZ0JFLFNBQVNDLGNBQVQsSUFBMkJELFNBQVNDLGNBQVQsQ0FBd0JDLFVBQW5EO0FBQ2hCO0FBQ0E7QUFDQUYsV0FBU0MsY0FBVCxDQUF3QkMsVUFBeEIsQ0FBbUMsRUFBbkMsRUFBdUMsRUFBdkMsTUFBK0MsSUFIL0M7QUFJRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTQyxnQkFBVCxDQUEwQkMsZUFBMUIsRUFBMkNDLE9BQTNDLEVBQW9EO0FBQ2xELE1BQUksQ0FBQ1QscUJBQXFCRyxTQUF0QixJQUFtQ00sV0FBVyxFQUFFLHNCQUFzQkwsUUFBeEIsQ0FBbEQsRUFBcUY7QUFDbkYsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQsTUFBSU0sWUFBWSxPQUFPRixlQUF2QjtBQUNBLE1BQUlHLGNBQWVELGFBQWFOLFFBQWhDOztBQUVBLE1BQUksQ0FBQ08sV0FBTCxFQUFrQjtBQUNoQixRQUFJQyxVQUFVUixTQUFTUyxhQUFULENBQXVCLEtBQXZCLENBQWQ7QUFDQUQsWUFBUUUsWUFBUixDQUFxQkosU0FBckIsRUFBZ0MsU0FBaEM7QUFDQUMsa0JBQWMsT0FBT0MsUUFBUUYsU0FBUixDQUFQLEtBQThCLFVBQTVDO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDQyxXQUFELElBQWdCVCxhQUFoQixJQUFpQ00sb0JBQW9CLE9BQXpELEVBQWtFO0FBQ2hFO0FBQ0FHLGtCQUFjUCxTQUFTQyxjQUFULENBQXdCQyxVQUF4QixDQUFtQyxjQUFuQyxFQUFtRCxLQUFuRCxDQUFkO0FBQ0Q7O0FBRUQsU0FBT0ssV0FBUDtBQUNEOztBQUVESSxPQUFPQyxPQUFQLEdBQWlCVCxnQkFBakIiLCJmaWxlIjoiNDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgaXNFdmVudFN1cHBvcnRlZFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcblxudmFyIHVzZUhhc0ZlYXR1cmU7XG5pZiAoRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NKSB7XG4gIHVzZUhhc0ZlYXR1cmUgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbiAmJiBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5oYXNGZWF0dXJlICYmXG4gIC8vIGFsd2F5cyByZXR1cm5zIHRydWUgaW4gbmV3ZXIgYnJvd3NlcnMgYXMgcGVyIHRoZSBzdGFuZGFyZC5cbiAgLy8gQHNlZSBodHRwOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbWltcGxlbWVudGF0aW9uLWhhc2ZlYXR1cmVcbiAgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgnJywgJycpICE9PSB0cnVlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBzdXBwb3J0ZWQgaW4gdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICpcbiAqIE5PVEU6IFRoaXMgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgZm9yIG5vbi1nZW5lcmljIGV2ZW50cyBzdWNoIGFzIGBjaGFuZ2VgLFxuICogYHJlc2V0YCwgYGxvYWRgLCBgZXJyb3JgLCBhbmQgYHNlbGVjdGAuXG4gKlxuICogQm9ycm93cyBmcm9tIE1vZGVybml6ci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lU3VmZml4IEV2ZW50IG5hbWUsIGUuZy4gXCJjbGlja1wiLlxuICogQHBhcmFtIHs/Ym9vbGVhbn0gY2FwdHVyZSBDaGVjayBpZiB0aGUgY2FwdHVyZSBwaGFzZSBpcyBzdXBwb3J0ZWQuXG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBldmVudCBpcyBzdXBwb3J0ZWQuXG4gKiBAaW50ZXJuYWxcbiAqIEBsaWNlbnNlIE1vZGVybml6ciAzLjAuMHByZSAoQ3VzdG9tIEJ1aWxkKSB8IE1JVFxuICovXG5mdW5jdGlvbiBpc0V2ZW50U3VwcG9ydGVkKGV2ZW50TmFtZVN1ZmZpeCwgY2FwdHVyZSkge1xuICBpZiAoIUV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSB8fCBjYXB0dXJlICYmICEoJ2FkZEV2ZW50TGlzdGVuZXInIGluIGRvY3VtZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBldmVudE5hbWUgPSAnb24nICsgZXZlbnROYW1lU3VmZml4O1xuICB2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGRvY3VtZW50KTtcblxuICBpZiAoIWlzU3VwcG9ydGVkKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShldmVudE5hbWUsICdyZXR1cm47Jyk7XG4gICAgaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxlbWVudFtldmVudE5hbWVdID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgaWYgKCFpc1N1cHBvcnRlZCAmJiB1c2VIYXNGZWF0dXJlICYmIGV2ZW50TmFtZVN1ZmZpeCA9PT0gJ3doZWVsJykge1xuICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIHRlc3Qgc3VwcG9ydCBmb3IgdGhlIGB3aGVlbGAgZXZlbnQgaW4gSUU5Ky5cbiAgICBpc1N1cHBvcnRlZCA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmhhc0ZlYXR1cmUoJ0V2ZW50cy53aGVlbCcsICczLjAnKTtcbiAgfVxuXG4gIHJldHVybiBpc1N1cHBvcnRlZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0V2ZW50U3VwcG9ydGVkO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9pc0V2ZW50U3VwcG9ydGVkLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 41 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFeatureFlags\n */\n\n'use strict';\n\nvar ReactDOMFeatureFlags = {\n useCreateElement: false\n};\n\nmodule.exports = ReactDOMFeatureFlags;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01GZWF0dXJlRmxhZ3MuanM/NTY2ZSJdLCJuYW1lcyI6WyJSZWFjdERPTUZlYXR1cmVGbGFncyIsInVzZUNyZWF0ZUVsZW1lbnQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSx1QkFBdUI7QUFDekJDLG9CQUFrQjtBQURPLENBQTNCOztBQUlBQyxPQUFPQyxPQUFQLEdBQWlCSCxvQkFBakIiLCJmaWxlIjoiNDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RET01GZWF0dXJlRmxhZ3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdERPTUZlYXR1cmVGbGFncyA9IHtcbiAgdXNlQ3JlYXRlRWxlbWVudDogZmFsc2Vcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01GZWF0dXJlRmxhZ3M7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RE9NRmVhdHVyZUZsYWdzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 42 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElement\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactCurrentOwner = __webpack_require__(5);\n\nvar assign = __webpack_require__(39);\nvar canDefineProperty = __webpack_require__(43);\n\n// The Symbol used to tag the ReactElement type. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;\n\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\n\n/**\n * Base constructor for all React elements. This is only used to make this\n * work with a dynamic instanceof check. Nothing should live on this prototype.\n *\n * @param {*} type\n * @param {*} key\n * @param {string|object} ref\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @param {*} owner\n * @param {*} props\n * @internal\n */\nvar ReactElement = function ReactElement(type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allow us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n if (process.env.NODE_ENV !== 'production') {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {};\n\n // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n if (canDefineProperty) {\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n });\n // self and source are DEV only properties.\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n });\n // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n } else {\n element._store.validated = false;\n element._self = self;\n element._source = source;\n }\n Object.freeze(element.props);\n Object.freeze(element);\n }\n\n return element;\n};\n\nReactElement.createElement = function (type, config, children) {\n var propName;\n\n // Reserved names are extracted\n var props = {};\n\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n ref = config.ref === undefined ? null : config.ref;\n key = config.key === undefined ? null : '' + config.key;\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source;\n // Remaining properties are added to a new props object\n for (propName in config) {\n if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n // Resolve default props\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n for (propName in defaultProps) {\n if (typeof props[propName] === 'undefined') {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n};\n\nReactElement.createFactory = function (type) {\n var factory = ReactElement.createElement.bind(null, type);\n // Expose the type on the factory and the prototype so that it can be\n // easily accessed on elements. E.g. `<Foo />.type === Foo`.\n // This should not be named `constructor` since this may not be the function\n // that created the element, and it may not even be a constructor.\n // Legacy hook TODO: Warn if this is accessed\n factory.type = type;\n return factory;\n};\n\nReactElement.cloneAndReplaceKey = function (oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n return newElement;\n};\n\nReactElement.cloneAndReplaceProps = function (oldElement, newProps) {\n var newElement = ReactElement(oldElement.type, oldElement.key, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, newProps);\n\n if (process.env.NODE_ENV !== 'production') {\n // If the key on the original is valid, then the clone is valid\n newElement._store.validated = oldElement._store.validated;\n }\n\n return newElement;\n};\n\nReactElement.cloneElement = function (element, config, children) {\n var propName;\n\n // Original props are copied\n var props = assign({}, element.props);\n\n // Reserved names are extracted\n var key = element.key;\n var ref = element.ref;\n // Self is preserved since the owner is preserved.\n var self = element._self;\n // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n var source = element._source;\n\n // Owner will be preserved, unless ref is overridden\n var owner = element._owner;\n\n if (config != null) {\n if (config.ref !== undefined) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n if (config.key !== undefined) {\n key = '' + config.key;\n }\n // Remaining properties override existing props\n for (propName in config) {\n if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n }\n\n // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n var childrenLength = arguments.length - 2;\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n};\n\n/**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid component.\n * @final\n */\nReactElement.isValidElement = function (object) {\n return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n};\n\nmodule.exports = ReactElement;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFbGVtZW50LmpzP2ZkYmIiXSwibmFtZXMiOlsiUmVhY3RDdXJyZW50T3duZXIiLCJyZXF1aXJlIiwiYXNzaWduIiwiY2FuRGVmaW5lUHJvcGVydHkiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJTeW1ib2wiLCJSRVNFUlZFRF9QUk9QUyIsImtleSIsInJlZiIsIl9fc2VsZiIsIl9fc291cmNlIiwiUmVhY3RFbGVtZW50IiwidHlwZSIsInNlbGYiLCJzb3VyY2UiLCJvd25lciIsInByb3BzIiwiZWxlbWVudCIsIiQkdHlwZW9mIiwiX293bmVyIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiX3N0b3JlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJ2YWx1ZSIsInZhbGlkYXRlZCIsIl9zZWxmIiwiX3NvdXJjZSIsImZyZWV6ZSIsImNyZWF0ZUVsZW1lbnQiLCJjb25maWciLCJjaGlsZHJlbiIsInByb3BOYW1lIiwidW5kZWZpbmVkIiwiaGFzT3duUHJvcGVydHkiLCJjaGlsZHJlbkxlbmd0aCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImNoaWxkQXJyYXkiLCJBcnJheSIsImkiLCJkZWZhdWx0UHJvcHMiLCJjdXJyZW50IiwiY3JlYXRlRmFjdG9yeSIsImZhY3RvcnkiLCJiaW5kIiwiY2xvbmVBbmRSZXBsYWNlS2V5Iiwib2xkRWxlbWVudCIsIm5ld0tleSIsIm5ld0VsZW1lbnQiLCJjbG9uZUFuZFJlcGxhY2VQcm9wcyIsIm5ld1Byb3BzIiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJvYmplY3QiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7OztBQUVBLElBQUlBLG9CQUFvQixt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UUFBSUcsYUFBYUMsTUFBTUosY0FBTixDQUFqQjtBQUNBLFNBQUssSUFBSUssSUFBSSxDQUFiLEVBQWdCQSxJQUFJTCxjQUFwQixFQUFvQ0ssR0FBcEMsRUFBeUM7QUFDdkNGLGlCQUFXRSxDQUFYLElBQWdCSixVQUFVSSxJQUFJLENBQWQsQ0FBaEI7QUFDRDtBQUNEN0IsVUFBTW9CLFFBQU4sR0FBaUJPLFVBQWpCO0FBQ0Q7O0FBRUQsU0FBT2hDLGFBQWFNLFFBQVFMLElBQXJCLEVBQTJCTCxHQUEzQixFQUFnQ0MsR0FBaEMsRUFBcUNLLElBQXJDLEVBQTJDQyxNQUEzQyxFQUFtREMsS0FBbkQsRUFBMERDLEtBQTFELENBQVA7QUFDRCxDQWxERDs7QUFvREE7Ozs7O0FBS0FMLGFBQWErQyxjQUFiLEdBQThCLFVBQVVDLE1BQVYsRUFBa0I7QUFDOUMsU0FBTyxRQUFPQSxNQUFQLHlDQUFPQSxNQUFQLE9BQWtCLFFBQWxCLElBQThCQSxXQUFXLElBQXpDLElBQWlEQSxPQUFPekMsUUFBUCxLQUFvQmQsa0JBQTVFO0FBQ0QsQ0FGRDs7QUFJQXdELE9BQU9DLE9BQVAsR0FBaUJsRCxZQUFqQixDIiwiZmlsZSI6IjQyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RWxlbWVudFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgnLi9SZWFjdEN1cnJlbnRPd25lcicpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgY2FuRGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL2NhbkRlZmluZVByb3BlcnR5Jyk7XG5cbi8vIFRoZSBTeW1ib2wgdXNlZCB0byB0YWcgdGhlIFJlYWN0RWxlbWVudCB0eXBlLiBJZiB0aGVyZSBpcyBubyBuYXRpdmUgU3ltYm9sXG4vLyBub3IgcG9seWZpbGwsIHRoZW4gYSBwbGFpbiBudW1iZXIgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2xbJ2ZvciddICYmIFN5bWJvbFsnZm9yJ10oJ3JlYWN0LmVsZW1lbnQnKSB8fCAweGVhYzc7XG5cbnZhciBSRVNFUlZFRF9QUk9QUyA9IHtcbiAga2V5OiB0cnVlLFxuICByZWY6IHRydWUsXG4gIF9fc2VsZjogdHJ1ZSxcbiAgX19zb3VyY2U6IHRydWVcbn07XG5cbi8qKlxuICogQmFzZSBjb25zdHJ1Y3RvciBmb3IgYWxsIFJlYWN0IGVsZW1lbnRzLiBUaGlzIGlzIG9ubHkgdXNlZCB0byBtYWtlIHRoaXNcbiAqIHdvcmsgd2l0aCBhIGR5bmFtaWMgaW5zdGFuY2VvZiBjaGVjay4gTm90aGluZyBzaG91bGQgbGl2ZSBvbiB0aGlzIHByb3RvdHlwZS5cbiAqXG4gKiBAcGFyYW0geyp9IHR5cGVcbiAqIEBwYXJhbSB7Kn0ga2V5XG4gKiBAcGFyYW0ge3N0cmluZ3xvYmplY3R9IHJlZlxuICogQHBhcmFtIHsqfSBzZWxmIEEgKnRlbXBvcmFyeSogaGVscGVyIHRvIGRldGVjdCBwbGFjZXMgd2hlcmUgYHRoaXNgIGlzXG4gKiBkaWZmZXJlbnQgZnJvbSB0aGUgYG93bmVyYCB3aGVuIFJlYWN0LmNyZWF0ZUVsZW1lbnQgaXMgY2FsbGVkLCBzbyB0aGF0IHdlXG4gKiBjYW4gd2Fybi4gV2Ugd2FudCB0byBnZXQgcmlkIG9mIG93bmVyIGFuZCByZXBsYWNlIHN0cmluZyBgcmVmYHMgd2l0aCBhcnJvd1xuICogZnVuY3Rpb25zLCBhbmQgYXMgbG9uZyBhcyBgdGhpc2AgYW5kIG93bmVyIGFyZSB0aGUgc2FtZSwgdGhlcmUgd2lsbCBiZSBub1xuICogY2hhbmdlIGluIGJlaGF2aW9yLlxuICogQHBhcmFtIHsqfSBzb3VyY2UgQW4gYW5ub3RhdGlvbiBvYmplY3QgKGFkZGVkIGJ5IGEgdHJhbnNwaWxlciBvciBvdGhlcndpc2UpXG4gKiBpbmRpY2F0aW5nIGZpbGVuYW1lLCBsaW5lIG51bWJlciwgYW5kL29yIG90aGVyIGluZm9ybWF0aW9uLlxuICogQHBhcmFtIHsqfSBvd25lclxuICogQHBhcmFtIHsqfSBwcm9wc1xuICogQGludGVybmFsXG4gKi9cbnZhciBSZWFjdEVsZW1lbnQgPSBmdW5jdGlvbiAodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKSB7XG4gIHZhciBlbGVtZW50ID0ge1xuICAgIC8vIFRoaXMgdGFnIGFsbG93IHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcblxuICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICB0eXBlOiB0eXBlLFxuICAgIGtleToga2V5LFxuICAgIHJlZjogcmVmLFxuICAgIHByb3BzOiBwcm9wcyxcblxuICAgIC8vIFJlY29yZCB0aGUgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGlzIGVsZW1lbnQuXG4gICAgX293bmVyOiBvd25lclxuICB9O1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhlIHZhbGlkYXRpb24gZmxhZyBpcyBjdXJyZW50bHkgbXV0YXRpdmUuIFdlIHB1dCBpdCBvblxuICAgIC8vIGFuIGV4dGVybmFsIGJhY2tpbmcgc3RvcmUgc28gdGhhdCB3ZSBjYW4gZnJlZXplIHRoZSB3aG9sZSBvYmplY3QuXG4gICAgLy8gVGhpcyBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIFdlYWtNYXAgb25jZSB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpblxuICAgIC8vIGNvbW1vbmx5IHVzZWQgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLlxuICAgIGVsZW1lbnQuX3N0b3JlID0ge307XG5cbiAgICAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG4gICAgaWYgKGNhbkRlZmluZVByb3BlcnR5KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIC8vIHNlbGYgYW5kIHNvdXJjZSBhcmUgREVWIG9ubHkgcHJvcGVydGllcy5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NlbGYnLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBzZWxmXG4gICAgICB9KTtcbiAgICAgIC8vIFR3byBlbGVtZW50cyBjcmVhdGVkIGluIHR3byBkaWZmZXJlbnQgcGxhY2VzIHNob3VsZCBiZSBjb25zaWRlcmVkXG4gICAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IHNvdXJjZVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IGZhbHNlO1xuICAgICAgZWxlbWVudC5fc2VsZiA9IHNlbGY7XG4gICAgICBlbGVtZW50Ll9zb3VyY2UgPSBzb3VyY2U7XG4gICAgfVxuICAgIE9iamVjdC5mcmVlemUoZWxlbWVudC5wcm9wcyk7XG4gICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50O1xufTtcblxuUmVhY3RFbGVtZW50LmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAodHlwZSwgY29uZmlnLCBjaGlsZHJlbikge1xuICB2YXIgcHJvcE5hbWU7XG5cbiAgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuICB2YXIgcHJvcHMgPSB7fTtcblxuICB2YXIga2V5ID0gbnVsbDtcbiAgdmFyIHJlZiA9IG51bGw7XG4gIHZhciBzZWxmID0gbnVsbDtcbiAgdmFyIHNvdXJjZSA9IG51bGw7XG5cbiAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgcmVmID0gY29uZmlnLnJlZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5yZWY7XG4gICAga2V5ID0gY29uZmlnLmtleSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6ICcnICsgY29uZmlnLmtleTtcbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlO1xuICAgIC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIGFyZSBhZGRlZCB0byBhIG5ldyBwcm9wcyBvYmplY3RcbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG4gIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRBcnJheTtcbiAgfVxuXG4gIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcbiAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgaWYgKHR5cGVvZiBwcm9wc1twcm9wTmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHByb3BzW3Byb3BOYW1lXSA9IGRlZmF1bHRQcm9wc1twcm9wTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59O1xuXG5SZWFjdEVsZW1lbnQuY3JlYXRlRmFjdG9yeSA9IGZ1bmN0aW9uICh0eXBlKSB7XG4gIHZhciBmYWN0b3J5ID0gUmVhY3RFbGVtZW50LmNyZWF0ZUVsZW1lbnQuYmluZChudWxsLCB0eXBlKTtcbiAgLy8gRXhwb3NlIHRoZSB0eXBlIG9uIHRoZSBmYWN0b3J5IGFuZCB0aGUgcHJvdG90eXBlIHNvIHRoYXQgaXQgY2FuIGJlXG4gIC8vIGVhc2lseSBhY2Nlc3NlZCBvbiBlbGVtZW50cy4gRS5nLiBgPEZvbyAvPi50eXBlID09PSBGb29gLlxuICAvLyBUaGlzIHNob3VsZCBub3QgYmUgbmFtZWQgYGNvbnN0cnVjdG9yYCBzaW5jZSB0aGlzIG1heSBub3QgYmUgdGhlIGZ1bmN0aW9uXG4gIC8vIHRoYXQgY3JlYXRlZCB0aGUgZWxlbWVudCwgYW5kIGl0IG1heSBub3QgZXZlbiBiZSBhIGNvbnN0cnVjdG9yLlxuICAvLyBMZWdhY3kgaG9vayBUT0RPOiBXYXJuIGlmIHRoaXMgaXMgYWNjZXNzZWRcbiAgZmFjdG9yeS50eXBlID0gdHlwZTtcbiAgcmV0dXJuIGZhY3Rvcnk7XG59O1xuXG5SZWFjdEVsZW1lbnQuY2xvbmVBbmRSZXBsYWNlS2V5ID0gZnVuY3Rpb24gKG9sZEVsZW1lbnQsIG5ld0tleSkge1xuICB2YXIgbmV3RWxlbWVudCA9IFJlYWN0RWxlbWVudChvbGRFbGVtZW50LnR5cGUsIG5ld0tleSwgb2xkRWxlbWVudC5yZWYsIG9sZEVsZW1lbnQuX3NlbGYsIG9sZEVsZW1lbnQuX3NvdXJjZSwgb2xkRWxlbWVudC5fb3duZXIsIG9sZEVsZW1lbnQucHJvcHMpO1xuXG4gIHJldHVybiBuZXdFbGVtZW50O1xufTtcblxuUmVhY3RFbGVtZW50LmNsb25lQW5kUmVwbGFjZVByb3BzID0gZnVuY3Rpb24gKG9sZEVsZW1lbnQsIG5ld1Byb3BzKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgb2xkRWxlbWVudC5rZXksIG9sZEVsZW1lbnQucmVmLCBvbGRFbGVtZW50Ll9zZWxmLCBvbGRFbGVtZW50Ll9zb3VyY2UsIG9sZEVsZW1lbnQuX293bmVyLCBuZXdQcm9wcyk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBJZiB0aGUga2V5IG9uIHRoZSBvcmlnaW5hbCBpcyB2YWxpZCwgdGhlbiB0aGUgY2xvbmUgaXMgdmFsaWRcbiAgICBuZXdFbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgPSBvbGRFbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQ7XG4gIH1cblxuICByZXR1cm4gbmV3RWxlbWVudDtcbn07XG5cblJlYWN0RWxlbWVudC5jbG9uZUVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlbWVudCwgY29uZmlnLCBjaGlsZHJlbikge1xuICB2YXIgcHJvcE5hbWU7XG5cbiAgLy8gT3JpZ2luYWwgcHJvcHMgYXJlIGNvcGllZFxuICB2YXIgcHJvcHMgPSBhc3NpZ24oe30sIGVsZW1lbnQucHJvcHMpO1xuXG4gIC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcbiAgdmFyIGtleSA9IGVsZW1lbnQua2V5O1xuICB2YXIgcmVmID0gZWxlbWVudC5yZWY7XG4gIC8vIFNlbGYgaXMgcHJlc2VydmVkIHNpbmNlIHRoZSBvd25lciBpcyBwcmVzZXJ2ZWQuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjtcbiAgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG4gIHZhciBzb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7XG5cbiAgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuICB2YXIgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcblxuICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICBpZiAoY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuICAgIGlmIChjb25maWcua2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG4gICAgLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgb3ZlcnJpZGUgZXhpc3RpbmcgcHJvcHNcbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGNvbmZpZy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG4gIHZhciBjaGlsZHJlbkxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuICAgIHByb3BzLmNoaWxkcmVuID0gY2hpbGRBcnJheTtcbiAgfVxuXG4gIHJldHVybiBSZWFjdEVsZW1lbnQoZWxlbWVudC50eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIHZhbGlkIGNvbXBvbmVudC5cbiAqIEBmaW5hbFxuICovXG5SZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RWxlbWVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFbGVtZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 43 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule canDefineProperty\n */\n\n'use strict';\n\nvar canDefineProperty = false;\nif (process.env.NODE_ENV !== 'production') {\n try {\n Object.defineProperty({}, 'x', { get: function get() {} });\n canDefineProperty = true;\n } catch (x) {\n // IE will fail on defineProperty\n }\n}\n\nmodule.exports = canDefineProperty;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvY2FuRGVmaW5lUHJvcGVydHkuanM/NGVjOSJdLCJuYW1lcyI6WyJjYW5EZWZpbmVQcm9wZXJ0eSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwieCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLG9CQUFvQixLQUF4QjtBQUNBLElBQUlDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxNQUFJO0FBQ0ZDLFdBQU9DLGNBQVAsQ0FBc0IsRUFBdEIsRUFBMEIsR0FBMUIsRUFBK0IsRUFBRUMsS0FBSyxlQUFZLENBQUUsQ0FBckIsRUFBL0I7QUFDQU4sd0JBQW9CLElBQXBCO0FBQ0QsR0FIRCxDQUdFLE9BQU9PLENBQVAsRUFBVTtBQUNWO0FBQ0Q7QUFDRjs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQlQsaUJBQWpCLEMiLCJmaWxlIjoiNDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgY2FuRGVmaW5lUHJvcGVydHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IGZhbHNlO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdHJ5IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICd4JywgeyBnZXQ6IGZ1bmN0aW9uICgpIHt9IH0pO1xuICAgIGNhbkRlZmluZVByb3BlcnR5ID0gdHJ1ZTtcbiAgfSBjYXRjaCAoeCkge1xuICAgIC8vIElFIHdpbGwgZmFpbCBvbiBkZWZpbmVQcm9wZXJ0eVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2FuRGVmaW5lUHJvcGVydHk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL2NhbkRlZmluZVByb3BlcnR5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 44 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponentRegistry\n */\n\n'use strict';\n\n// This registry keeps track of the React IDs of the components that rendered to\n// `null` (in reality a placeholder such as `noscript`)\n\nvar nullComponentIDsRegistry = {};\n\n/**\n * @param {string} id Component's `_rootNodeID`.\n * @return {boolean} True if the component is rendered to null.\n */\nfunction isNullComponentID(id) {\n return !!nullComponentIDsRegistry[id];\n}\n\n/**\n * Mark the component as having rendered to null.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction registerNullComponentID(id) {\n nullComponentIDsRegistry[id] = true;\n}\n\n/**\n * Unmark the component as having rendered to null: it renders to something now.\n * @param {string} id Component's `_rootNodeID`.\n */\nfunction deregisterNullComponentID(id) {\n delete nullComponentIDsRegistry[id];\n}\n\nvar ReactEmptyComponentRegistry = {\n isNullComponentID: isNullComponentID,\n registerNullComponentID: registerNullComponentID,\n deregisterNullComponentID: deregisterNullComponentID\n};\n\nmodule.exports = ReactEmptyComponentRegistry;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5LmpzP2IwNWIiXSwibmFtZXMiOlsibnVsbENvbXBvbmVudElEc1JlZ2lzdHJ5IiwiaXNOdWxsQ29tcG9uZW50SUQiLCJpZCIsInJlZ2lzdGVyTnVsbENvbXBvbmVudElEIiwiZGVyZWdpc3Rlck51bGxDb21wb25lbnRJRCIsIlJlYWN0RW1wdHlDb21wb25lbnRSZWdpc3RyeSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBO0FBQ0E7O0FBQ0EsSUFBSUEsMkJBQTJCLEVBQS9COztBQUVBOzs7O0FBSUEsU0FBU0MsaUJBQVQsQ0FBMkJDLEVBQTNCLEVBQStCO0FBQzdCLFNBQU8sQ0FBQyxDQUFDRix5QkFBeUJFLEVBQXpCLENBQVQ7QUFDRDs7QUFFRDs7OztBQUlBLFNBQVNDLHVCQUFULENBQWlDRCxFQUFqQyxFQUFxQztBQUNuQ0YsMkJBQXlCRSxFQUF6QixJQUErQixJQUEvQjtBQUNEOztBQUVEOzs7O0FBSUEsU0FBU0UseUJBQVQsQ0FBbUNGLEVBQW5DLEVBQXVDO0FBQ3JDLFNBQU9GLHlCQUF5QkUsRUFBekIsQ0FBUDtBQUNEOztBQUVELElBQUlHLDhCQUE4QjtBQUNoQ0oscUJBQW1CQSxpQkFEYTtBQUVoQ0UsMkJBQXlCQSx1QkFGTztBQUdoQ0MsNkJBQTJCQTtBQUhLLENBQWxDOztBQU1BRSxPQUFPQyxPQUFQLEdBQWlCRiwyQkFBakIiLCJmaWxlIjoiNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vLyBUaGlzIHJlZ2lzdHJ5IGtlZXBzIHRyYWNrIG9mIHRoZSBSZWFjdCBJRHMgb2YgdGhlIGNvbXBvbmVudHMgdGhhdCByZW5kZXJlZCB0b1xuLy8gYG51bGxgIChpbiByZWFsaXR5IGEgcGxhY2Vob2xkZXIgc3VjaCBhcyBgbm9zY3JpcHRgKVxudmFyIG51bGxDb21wb25lbnRJRHNSZWdpc3RyeSA9IHt9O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBDb21wb25lbnQncyBgX3Jvb3ROb2RlSURgLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkIHRvIG51bGwuXG4gKi9cbmZ1bmN0aW9uIGlzTnVsbENvbXBvbmVudElEKGlkKSB7XG4gIHJldHVybiAhIW51bGxDb21wb25lbnRJRHNSZWdpc3RyeVtpZF07XG59XG5cbi8qKlxuICogTWFyayB0aGUgY29tcG9uZW50IGFzIGhhdmluZyByZW5kZXJlZCB0byBudWxsLlxuICogQHBhcmFtIHtzdHJpbmd9IGlkIENvbXBvbmVudCdzIGBfcm9vdE5vZGVJRGAuXG4gKi9cbmZ1bmN0aW9uIHJlZ2lzdGVyTnVsbENvbXBvbmVudElEKGlkKSB7XG4gIG51bGxDb21wb25lbnRJRHNSZWdpc3RyeVtpZF0gPSB0cnVlO1xufVxuXG4vKipcbiAqIFVubWFyayB0aGUgY29tcG9uZW50IGFzIGhhdmluZyByZW5kZXJlZCB0byBudWxsOiBpdCByZW5kZXJzIHRvIHNvbWV0aGluZyBub3cuXG4gKiBAcGFyYW0ge3N0cmluZ30gaWQgQ29tcG9uZW50J3MgYF9yb290Tm9kZUlEYC5cbiAqL1xuZnVuY3Rpb24gZGVyZWdpc3Rlck51bGxDb21wb25lbnRJRChpZCkge1xuICBkZWxldGUgbnVsbENvbXBvbmVudElEc1JlZ2lzdHJ5W2lkXTtcbn1cblxudmFyIFJlYWN0RW1wdHlDb21wb25lbnRSZWdpc3RyeSA9IHtcbiAgaXNOdWxsQ29tcG9uZW50SUQ6IGlzTnVsbENvbXBvbmVudElELFxuICByZWdpc3Rlck51bGxDb21wb25lbnRJRDogcmVnaXN0ZXJOdWxsQ29tcG9uZW50SUQsXG4gIGRlcmVnaXN0ZXJOdWxsQ29tcG9uZW50SUQ6IGRlcmVnaXN0ZXJOdWxsQ29tcG9uZW50SURcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdEVtcHR5Q29tcG9uZW50UmVnaXN0cnkuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 45 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceHandles\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactRootIndex = __webpack_require__(46);\n\nvar invariant = __webpack_require__(13);\n\nvar SEPARATOR = '.';\nvar SEPARATOR_LENGTH = SEPARATOR.length;\n\n/**\n * Maximum depth of traversals before we consider the possibility of a bad ID.\n */\nvar MAX_TREE_DEPTH = 10000;\n\n/**\n * Creates a DOM ID prefix to use when mounting React components.\n *\n * @param {number} index A unique integer\n * @return {string} React root ID.\n * @internal\n */\nfunction getReactRootIDString(index) {\n return SEPARATOR + index.toString(36);\n}\n\n/**\n * Checks if a character in the supplied ID is a separator or the end.\n *\n * @param {string} id A React DOM ID.\n * @param {number} index Index of the character to check.\n * @return {boolean} True if the character is a separator or end of the ID.\n * @private\n */\nfunction isBoundary(id, index) {\n return id.charAt(index) === SEPARATOR || index === id.length;\n}\n\n/**\n * Checks if the supplied string is a valid React DOM ID.\n *\n * @param {string} id A React DOM ID, maybe.\n * @return {boolean} True if the string is a valid React DOM ID.\n * @private\n */\nfunction isValidID(id) {\n return id === '' || id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR;\n}\n\n/**\n * Checks if the first ID is an ancestor of or equal to the second ID.\n *\n * @param {string} ancestorID\n * @param {string} descendantID\n * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`.\n * @internal\n */\nfunction isAncestorIDOf(ancestorID, descendantID) {\n return descendantID.indexOf(ancestorID) === 0 && isBoundary(descendantID, ancestorID.length);\n}\n\n/**\n * Gets the parent ID of the supplied React DOM ID, `id`.\n *\n * @param {string} id ID of a component.\n * @return {string} ID of the parent, or an empty string.\n * @private\n */\nfunction getParentID(id) {\n return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : '';\n}\n\n/**\n * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the\n * supplied `destinationID`. If they are equal, the ID is returned.\n *\n * @param {string} ancestorID ID of an ancestor node of `destinationID`.\n * @param {string} destinationID ID of the destination node.\n * @return {string} Next ID on the path from `ancestorID` to `destinationID`.\n * @private\n */\nfunction getNextDescendantID(ancestorID, destinationID) {\n !(isValidID(ancestorID) && isValidID(destinationID)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(%s, %s): Received an invalid React DOM ID.', ancestorID, destinationID) : invariant(false) : undefined;\n !isAncestorIDOf(ancestorID, destinationID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNextDescendantID(...): React has made an invalid assumption about ' + 'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.', ancestorID, destinationID) : invariant(false) : undefined;\n if (ancestorID === destinationID) {\n return ancestorID;\n }\n // Skip over the ancestor and the immediate separator. Traverse until we hit\n // another separator or we reach the end of `destinationID`.\n var start = ancestorID.length + SEPARATOR_LENGTH;\n var i;\n for (i = start; i < destinationID.length; i++) {\n if (isBoundary(destinationID, i)) {\n break;\n }\n }\n return destinationID.substr(0, i);\n}\n\n/**\n * Gets the nearest common ancestor ID of two IDs.\n *\n * Using this ID scheme, the nearest common ancestor ID is the longest common\n * prefix of the two IDs that immediately preceded a \"marker\" in both strings.\n *\n * @param {string} oneID\n * @param {string} twoID\n * @return {string} Nearest common ancestor ID, or the empty string if none.\n * @private\n */\nfunction getFirstCommonAncestorID(oneID, twoID) {\n var minLength = Math.min(oneID.length, twoID.length);\n if (minLength === 0) {\n return '';\n }\n var lastCommonMarkerIndex = 0;\n // Use `<=` to traverse until the \"EOL\" of the shorter string.\n for (var i = 0; i <= minLength; i++) {\n if (isBoundary(oneID, i) && isBoundary(twoID, i)) {\n lastCommonMarkerIndex = i;\n } else if (oneID.charAt(i) !== twoID.charAt(i)) {\n break;\n }\n }\n var longestCommonID = oneID.substr(0, lastCommonMarkerIndex);\n !isValidID(longestCommonID) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s', oneID, twoID, longestCommonID) : invariant(false) : undefined;\n return longestCommonID;\n}\n\n/**\n * Traverses the parent path between two IDs (either up or down). The IDs must\n * not be the same, and there must exist a parent path between them. If the\n * callback returns `false`, traversal is stopped.\n *\n * @param {?string} start ID at which to start traversal.\n * @param {?string} stop ID at which to end traversal.\n * @param {function} cb Callback to invoke each ID with.\n * @param {*} arg Argument to invoke the callback with.\n * @param {?boolean} skipFirst Whether or not to skip the first node.\n * @param {?boolean} skipLast Whether or not to skip the last node.\n * @private\n */\nfunction traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) {\n start = start || '';\n stop = stop || '';\n !(start !== stop) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.', start) : invariant(false) : undefined;\n var traverseUp = isAncestorIDOf(stop, start);\n !(traverseUp || isAncestorIDOf(start, stop)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' + 'not have a parent path.', start, stop) : invariant(false) : undefined;\n // Traverse from `start` to `stop` one depth at a time.\n var depth = 0;\n var traverse = traverseUp ? getParentID : getNextDescendantID;\n for (var id = start;; /* until break */id = traverse(id, stop)) {\n var ret;\n if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) {\n ret = cb(id, traverseUp, arg);\n }\n if (ret === false || id === stop) {\n // Only break //after// visiting `stop`.\n break;\n }\n !(depth++ < MAX_TREE_DEPTH) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' + 'traversing the React DOM ID tree. This may be due to malformed IDs: %s', start, stop, id) : invariant(false) : undefined;\n }\n}\n\n/**\n * Manages the IDs assigned to DOM representations of React components. This\n * uses a specific scheme in order to traverse the DOM efficiently (e.g. in\n * order to simulate events).\n *\n * @internal\n */\nvar ReactInstanceHandles = {\n\n /**\n * Constructs a React root ID\n * @return {string} A React root ID.\n */\n createReactRootID: function createReactRootID() {\n return getReactRootIDString(ReactRootIndex.createReactRootIndex());\n },\n\n /**\n * Constructs a React ID by joining a root ID with a name.\n *\n * @param {string} rootID Root ID of a parent component.\n * @param {string} name A component's name (as flattened children).\n * @return {string} A React ID.\n * @internal\n */\n createReactID: function createReactID(rootID, name) {\n return rootID + name;\n },\n\n /**\n * Gets the DOM ID of the React component that is the root of the tree that\n * contains the React component with the supplied DOM ID.\n *\n * @param {string} id DOM ID of a React component.\n * @return {?string} DOM ID of the React component that is the root.\n * @internal\n */\n getReactRootIDFromNodeID: function getReactRootIDFromNodeID(id) {\n if (id && id.charAt(0) === SEPARATOR && id.length > 1) {\n var index = id.indexOf(SEPARATOR, 1);\n return index > -1 ? id.substr(0, index) : id;\n }\n return null;\n },\n\n /**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * NOTE: Does not invoke the callback on the nearest common ancestor because\n * nothing \"entered\" or \"left\" that element.\n *\n * @param {string} leaveID ID being left.\n * @param {string} enterID ID being entered.\n * @param {function} cb Callback to invoke on each entered/left ID.\n * @param {*} upArg Argument to invoke the callback with on left IDs.\n * @param {*} downArg Argument to invoke the callback with on entered IDs.\n * @internal\n */\n traverseEnterLeave: function traverseEnterLeave(leaveID, enterID, cb, upArg, downArg) {\n var ancestorID = getFirstCommonAncestorID(leaveID, enterID);\n if (ancestorID !== leaveID) {\n traverseParentPath(leaveID, ancestorID, cb, upArg, false, true);\n }\n if (ancestorID !== enterID) {\n traverseParentPath(ancestorID, enterID, cb, downArg, true, false);\n }\n },\n\n /**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n *\n * NOTE: This traversal happens on IDs without touching the DOM.\n *\n * @param {string} targetID ID of the target node.\n * @param {function} cb Callback to invoke.\n * @param {*} arg Argument to invoke the callback with.\n * @internal\n */\n traverseTwoPhase: function traverseTwoPhase(targetID, cb, arg) {\n if (targetID) {\n traverseParentPath('', targetID, cb, arg, true, false);\n traverseParentPath(targetID, '', cb, arg, false, true);\n }\n },\n\n /**\n * Same as `traverseTwoPhase` but skips the `targetID`.\n */\n traverseTwoPhaseSkipTarget: function traverseTwoPhaseSkipTarget(targetID, cb, arg) {\n if (targetID) {\n traverseParentPath('', targetID, cb, arg, true, true);\n traverseParentPath(targetID, '', cb, arg, true, true);\n }\n },\n\n /**\n * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For\n * example, passing `.0.$row-0.1` would result in `cb` getting called\n * with `.0`, `.0.$row-0`, and `.0.$row-0.1`.\n *\n * NOTE: This traversal happens on IDs without touching the DOM.\n *\n * @param {string} targetID ID of the target node.\n * @param {function} cb Callback to invoke.\n * @param {*} arg Argument to invoke the callback with.\n * @internal\n */\n traverseAncestors: function traverseAncestors(targetID, cb, arg) {\n traverseParentPath('', targetID, cb, arg, true, false);\n },\n\n getFirstCommonAncestorID: getFirstCommonAncestorID,\n\n /**\n * Exposed for unit testing.\n * @private\n */\n _getNextDescendantID: getNextDescendantID,\n\n isAncestorIDOf: isAncestorIDOf,\n\n SEPARATOR: SEPARATOR\n\n};\n\nmodule.exports = ReactInstanceHandles;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RJbnN0YW5jZUhhbmRsZXMuanM/MTZlMCJdLCJuYW1lcyI6WyJSZWFjdFJvb3RJbmRleCIsInJlcXVpcmUiLCJpbnZhcmlhbnQiLCJTRVBBUkFUT1IiLCJTRVBBUkFUT1JfTEVOR1RIIiwibGVuZ3RoIiwiTUFYX1RSRUVfREVQVEgiLCJnZXRSZWFjdFJvb3RJRFN0cmluZyIsImluZGV4IiwidG9TdHJpbmciLCJpc0JvdW5kYXJ5IiwiaWQiLCJjaGFyQXQiLCJpc1ZhbGlkSUQiLCJpc0FuY2VzdG9ySURPZiIsImFuY2VzdG9ySUQiLCJkZXNjZW5kYW50SUQiLCJpbmRleE9mIiwiZ2V0UGFyZW50SUQiLCJzdWJzdHIiLCJsYXN0SW5kZXhPZiIsImdldE5leHREZXNjZW5kYW50SUQiLCJkZXN0aW5hdGlvbklEIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwic3RhcnQiLCJpIiwiZ2V0Rmlyc3RDb21tb25BbmNlc3RvcklEIiwib25lSUQiLCJ0d29JRCIsIm1pbkxlbmd0aCIsIk1hdGgiLCJtaW4iLCJsYXN0Q29tbW9uTWFya2VySW5kZXgiLCJsb25nZXN0Q29tbW9uSUQiLCJ0cmF2ZXJzZVBhcmVudFBhdGgiLCJzdG9wIiwiY2IiLCJhcmciLCJza2lwRmlyc3QiLCJza2lwTGFzdCIsInRyYXZlcnNlVXAiLCJkZXB0aCIsInRyYXZlcnNlIiwicmV0IiwiUmVhY3RJbnN0YW5jZUhhbmRsZXMiLCJjcmVhdGVSZWFjdFJvb3RJRCIsImNyZWF0ZVJlYWN0Um9vdEluZGV4IiwiY3JlYXRlUmVhY3RJRCIsInJvb3RJRCIsIm5hbWUiLCJnZXRSZWFjdFJvb3RJREZyb21Ob2RlSUQiLCJ0cmF2ZXJzZUVudGVyTGVhdmUiLCJsZWF2ZUlEIiwiZW50ZXJJRCIsInVwQXJnIiwiZG93bkFyZyIsInRyYXZlcnNlVHdvUGhhc2UiLCJ0YXJnZXRJRCIsInRyYXZlcnNlVHdvUGhhc2VTa2lwVGFyZ2V0IiwidHJhdmVyc2VBbmNlc3RvcnMiLCJfZ2V0TmV4dERlc2NlbmRhbnRJRCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjs7QUFFQSxJQUFJQyxZQUFZLG1CQUFBRCxDQUFRLEVBQVIsQ0FBaEI7O0FBRUEsSUFBSUUsWUFBWSxHQUFoQjtBQUNBLElBQUlDLG1CQUFtQkQsVUFBVUUsTUFBakM7O0FBRUE7OztBQUdBLElBQUlDLGlCQUFpQixLQUFyQjs7QUFFQTs7Ozs7OztBQU9BLFNBQVNDLG9CQUFULENBQThCQyxLQUE5QixFQUFxQztBQUNuQyxTQUFPTCxZQUFZSyxNQUFNQyxRQUFOLENBQWUsRUFBZixDQUFuQjtBQUNEOztBQUVEOzs7Ozs7OztBQVFBLFNBQVNDLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCSCxLQUF4QixFQUErQjtBQUM3QixTQUFPRyxHQUFHQyxNQUFILENBQVVKLEtBQVYsTUFBcUJMLFNBQXJCLElBQWtDSyxVQUFVRyxHQUFHTixNQUF0RDtBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU1EsU0FBVCxDQUFtQkYsRUFBbkIsRUFBdUI7QUFDckIsU0FBT0EsT0FBTyxFQUFQLElBQWFBLEdBQUdDLE1BQUgsQ0FBVSxDQUFWLE1BQWlCVCxTQUFqQixJQUE4QlEsR0FBR0MsTUFBSCxDQUFVRCxHQUFHTixNQUFILEdBQVksQ0FBdEIsTUFBNkJGLFNBQS9FO0FBQ0Q7O0FBRUQ7Ozs7Ozs7O0FBUUEsU0FBU1csY0FBVCxDQUF3QkMsVUFBeEIsRUFBb0NDLFlBQXBDLEVBQWtEO0FBQ2hELFNBQU9BLGFBQWFDLE9BQWIsQ0FBcUJGLFVBQXJCLE1BQXFDLENBQXJDLElBQTBDTCxXQUFXTSxZQUFYLEVBQXlCRCxXQUFXVixNQUFwQyxDQUFqRDtBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU2Es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QjFDLG1CQS9HRzs7QUFpSHpCUCxrQkFBZ0JBLGNBakhTOztBQW1IekJYLGFBQVdBOztBQW5IYyxDQUEzQjs7QUF1SEE2RCxPQUFPQyxPQUFQLEdBQWlCbEIsb0JBQWpCLEMiLCJmaWxlIjoiNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RJbnN0YW5jZUhhbmRsZXNcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RSb290SW5kZXggPSByZXF1aXJlKCcuL1JlYWN0Um9vdEluZGV4Jyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxudmFyIFNFUEFSQVRPUiA9ICcuJztcbnZhciBTRVBBUkFUT1JfTEVOR1RIID0gU0VQQVJBVE9SLmxlbmd0aDtcblxuLyoqXG4gKiBNYXhpbXVtIGRlcHRoIG9mIHRyYXZlcnNhbHMgYmVmb3JlIHdlIGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSBvZiBhIGJhZCBJRC5cbiAqL1xudmFyIE1BWF9UUkVFX0RFUFRIID0gMTAwMDA7XG5cbi8qKlxuICogQ3JlYXRlcyBhIERPTSBJRCBwcmVmaXggdG8gdXNlIHdoZW4gbW91bnRpbmcgUmVhY3QgY29tcG9uZW50cy5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggQSB1bmlxdWUgaW50ZWdlclxuICogQHJldHVybiB7c3RyaW5nfSBSZWFjdCByb290IElELlxuICogQGludGVybmFsXG4gKi9cbmZ1bmN0aW9uIGdldFJlYWN0Um9vdElEU3RyaW5nKGluZGV4KSB7XG4gIHJldHVybiBTRVBBUkFUT1IgKyBpbmRleC50b1N0cmluZygzNik7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgY2hhcmFjdGVyIGluIHRoZSBzdXBwbGllZCBJRCBpcyBhIHNlcGFyYXRvciBvciB0aGUgZW5kLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBBIFJlYWN0IERPTSBJRC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCBvZiB0aGUgY2hhcmFjdGVyIHRvIGNoZWNrLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGlzIGEgc2VwYXJhdG9yIG9yIGVuZCBvZiB0aGUgSUQuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBpc0JvdW5kYXJ5KGlkLCBpbmRleCkge1xuICByZXR1cm4gaWQuY2hhckF0KGluZGV4KSA9PT0gU0VQQVJBVE9SIHx8IGluZGV4ID09PSBpZC5sZW5ndGg7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBzdXBwbGllZCBzdHJpbmcgaXMgYSB2YWxpZCBSZWFjdCBET00gSUQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGlkIEEgUmVhY3QgRE9NIElELCBtYXliZS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIHN0cmluZyBpcyBhIHZhbGlkIFJlYWN0IERPTSBJRC5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRJRChpZCkge1xuICByZXR1cm4gaWQgPT09ICcnIHx8IGlkLmNoYXJBdCgwKSA9PT0gU0VQQVJBVE9SICYmIGlkLmNoYXJBdChpZC5sZW5ndGggLSAxKSAhPT0gU0VQQVJBVE9SO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZmlyc3QgSUQgaXMgYW4gYW5jZXN0b3Igb2Ygb3IgZXF1YWwgdG8gdGhlIHNlY29uZCBJRC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYW5jZXN0b3JJRFxuICogQHBhcmFtIHtzdHJpbmd9IGRlc2NlbmRhbnRJRFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgYW5jZXN0b3JJRGAgaXMgYW4gYW5jZXN0b3Igb2YgYGRlc2NlbmRhbnRJRGAuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZnVuY3Rpb24gaXNBbmNlc3RvcklET2YoYW5jZXN0b3JJRCwgZGVzY2VuZGFudElEKSB7XG4gIHJldHVybiBkZXNjZW5kYW50SUQuaW5kZXhPZihhbmNlc3RvcklEKSA9PT0gMCAmJiBpc0JvdW5kYXJ5KGRlc2NlbmRhbnRJRCwgYW5jZXN0b3JJRC5sZW5ndGgpO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIHBhcmVudCBJRCBvZiB0aGUgc3VwcGxpZWQgUmVhY3QgRE9NIElELCBgaWRgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZCBJRCBvZiBhIGNvbXBvbmVudC5cbiAqIEByZXR1cm4ge3N0cmluZ30gSUQgb2YgdGhlIHBhcmVudCwgb3IgYW4gZW1wdHkgc3RyaW5nLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZ2V0UGFyZW50SUQoaWQpIHtcbiAgcmV0dXJuIGlkID8gaWQuc3Vic3RyKDAsIGlkLmxhc3RJbmRleE9mKFNFUEFSQVRPUikpIDogJyc7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbmV4dCBET00gSUQgb24gdGhlIHRyZWUgcGF0aCBmcm9tIHRoZSBzdXBwbGllZCBgYW5jZXN0b3JJRGAgdG8gdGhlXG4gKiBzdXBwbGllZCBgZGVzdGluYXRpb25JRGAuIElmIHRoZXkgYXJlIGVxdWFsLCB0aGUgSUQgaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFuY2VzdG9ySUQgSUQgb2YgYW4gYW5jZXN0b3Igbm9kZSBvZiBgZGVzdGluYXRpb25JRGAuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGVzdGluYXRpb25JRCBJRCBvZiB0aGUgZGVzdGluYXRpb24gbm9kZS5cbiAqIEByZXR1cm4ge3N0cmluZ30gTmV4dCBJRCBvbiB0aGUgcGF0aCBmcm9tIGBhbmNlc3RvcklEYCB0byBgZGVzdGluYXRpb25JRGAuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBnZXROZXh0RGVzY2VuZGFudElEKGFuY2VzdG9ySUQsIGRlc3RpbmF0aW9uSUQpIHtcbiAgIShpc1ZhbGlkSUQoYW5jZXN0b3JJRCkgJiYgaXNWYWxpZElEKGRlc3RpbmF0aW9uSUQpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdnZXROZXh0RGVzY2VuZGFudElEKCVzLCAlcyk6IFJlY2VpdmVkIGFuIGludmFsaWQgUmVhY3QgRE9NIElELicsIGFuY2VzdG9ySUQsIGRlc3RpbmF0aW9uSUQpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgIWlzQW5jZXN0b3JJRE9mKGFuY2VzdG9ySUQsIGRlc3RpbmF0aW9uSUQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2dldE5leHREZXNjZW5kYW50SUQoLi4uKTogUmVhY3QgaGFzIG1hZGUgYW4gaW52YWxpZCBhc3N1bXB0aW9uIGFib3V0ICcgKyAndGhlIERPTSBoaWVyYXJjaHkuIEV4cGVjdGVkIGAlc2AgdG8gYmUgYW4gYW5jZXN0b3Igb2YgYCVzYC4nLCBhbmNlc3RvcklELCBkZXN0aW5hdGlvbklEKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIGlmIChhbmNlc3RvcklEID09PSBkZXN0aW5hdGlvbklEKSB7XG4gICAgcmV0dXJuIGFuY2VzdG9ySUQ7XG4gIH1cbiAgLy8gU2tpcCBvdmVyIHRoZSBhbmNlc3RvciBhbmQgdGhlIGltbWVkaWF0ZSBzZXBhcmF0b3IuIFRyYXZlcnNlIHVudGlsIHdlIGhpdFxuICAvLyBhbm90aGVyIHNlcGFyYXRvciBvciB3ZSByZWFjaCB0aGUgZW5kIG9mIGBkZXN0aW5hdGlvbklEYC5cbiAgdmFyIHN0YXJ0ID0gYW5jZXN0b3JJRC5sZW5ndGggKyBTRVBBUkFUT1JfTEVOR1RIO1xuICB2YXIgaTtcbiAgZm9yIChpID0gc3RhcnQ7IGkgPCBkZXN0aW5hdGlvbklELmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGlzQm91bmRhcnkoZGVzdGluYXRpb25JRCwgaSkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGVzdGluYXRpb25JRC5zdWJzdHIoMCwgaSk7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbmVhcmVzdCBjb21tb24gYW5jZXN0b3IgSUQgb2YgdHdvIElEcy5cbiAqXG4gKiBVc2luZyB0aGlzIElEIHNjaGVtZSwgdGhlIG5lYXJlc3QgY29tbW9uIGFuY2VzdG9yIElEIGlzIHRoZSBsb25nZXN0IGNvbW1vblxuICogcHJlZml4IG9mIHRoZSB0d28gSURzIHRoYXQgaW1tZWRpYXRlbHkgcHJlY2VkZWQgYSBcIm1hcmtlclwiIGluIGJvdGggc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gb25lSURcbiAqIEBwYXJhbSB7c3RyaW5nfSB0d29JRFxuICogQHJldHVybiB7c3RyaW5nfSBOZWFyZXN0IGNvbW1vbiBhbmNlc3RvciBJRCwgb3IgdGhlIGVtcHR5IHN0cmluZyBpZiBub25lLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZ2V0Rmlyc3RDb21tb25BbmNlc3RvcklEKG9uZUlELCB0d29JRCkge1xuICB2YXIgbWluTGVuZ3RoID0gTWF0aC5taW4ob25lSUQubGVuZ3RoLCB0d29JRC5sZW5ndGgpO1xuICBpZiAobWluTGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHZhciBsYXN0Q29tbW9uTWFya2VySW5kZXggPSAwO1xuICAvLyBVc2UgYDw9YCB0byB0cmF2ZXJzZSB1bnRpbCB0aGUgXCJFT0xcIiBvZiB0aGUgc2hvcnRlciBzdHJpbmcuXG4gIGZvciAodmFyIGkgPSAwOyBpIDw9IG1pbkxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGlzQm91bmRhcnkob25lSUQsIGkpICYmIGlzQm91bmRhcnkodHdvSUQsIGkpKSB7XG4gICAgICBsYXN0Q29tbW9uTWFya2VySW5kZXggPSBpO1xuICAgIH0gZWxzZSBpZiAob25lSUQuY2hhckF0KGkpICE9PSB0d29JRC5jaGFyQXQoaSkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICB2YXIgbG9uZ2VzdENvbW1vbklEID0gb25lSUQuc3Vic3RyKDAsIGxhc3RDb21tb25NYXJrZXJJbmRleCk7XG4gICFpc1ZhbGlkSUQobG9uZ2VzdENvbW1vbklEKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdnZXRGaXJzdENvbW1vbkFuY2VzdG9ySUQoJXMsICVzKTogRXhwZWN0ZWQgYSB2YWxpZCBSZWFjdCBET00gSUQ6ICVzJywgb25lSUQsIHR3b0lELCBsb25nZXN0Q29tbW9uSUQpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGxvbmdlc3RDb21tb25JRDtcbn1cblxuLyoqXG4gKiBUcmF2ZXJzZXMgdGhlIHBhcmVudCBwYXRoIGJldHdlZW4gdHdvIElEcyAoZWl0aGVyIHVwIG9yIGRvd24pLiBUaGUgSURzIG11c3RcbiAqIG5vdCBiZSB0aGUgc2FtZSwgYW5kIHRoZXJlIG11c3QgZXhpc3QgYSBwYXJlbnQgcGF0aCBiZXR3ZWVuIHRoZW0uIElmIHRoZVxuICogY2FsbGJhY2sgcmV0dXJucyBgZmFsc2VgLCB0cmF2ZXJzYWwgaXMgc3RvcHBlZC5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IHN0YXJ0IElEIGF0IHdoaWNoIHRvIHN0YXJ0IHRyYXZlcnNhbC5cbiAqIEBwYXJhbSB7P3N0cmluZ30gc3RvcCBJRCBhdCB3aGljaCB0byBlbmQgdHJhdmVyc2FsLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY2IgQ2FsbGJhY2sgdG8gaW52b2tlIGVhY2ggSUQgd2l0aC5cbiAqIEBwYXJhbSB7Kn0gYXJnIEFyZ3VtZW50IHRvIGludm9rZSB0aGUgY2FsbGJhY2sgd2l0aC5cbiAqIEBwYXJhbSB7P2Jvb2xlYW59IHNraXBGaXJzdCBXaGV0aGVyIG9yIG5vdCB0byBza2lwIHRoZSBmaXJzdCBub2RlLlxuICogQHBhcmFtIHs/Ym9vbGVhbn0gc2tpcExhc3QgV2hldGhlciBvciBub3QgdG8gc2tpcCB0aGUgbGFzdCBub2RlLlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gdHJhdmVyc2VQYXJlbnRQYXRoKHN0YXJ0LCBzdG9wLCBjYiwgYXJnLCBza2lwRmlyc3QsIHNraXBMYXN0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgJyc7XG4gIHN0b3AgPSBzdG9wIHx8ICcnO1xuICAhKHN0YXJ0ICE9PSBzdG9wKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd0cmF2ZXJzZVBhcmVudFBhdGgoLi4uKTogQ2Fubm90IHRyYXZlcnNlIGZyb20gYW5kIHRvIHRoZSBzYW1lIElELCBgJXNgLicsIHN0YXJ0KSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIHZhciB0cmF2ZXJzZVVwID0gaXNBbmNlc3RvcklET2Yoc3RvcCwgc3RhcnQpO1xuICAhKHRyYXZlcnNlVXAgfHwgaXNBbmNlc3RvcklET2Yoc3RhcnQsIHN0b3ApKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICd0cmF2ZXJzZVBhcmVudFBhdGgoJXMsICVzLCAuLi4pOiBDYW5ub3QgdHJhdmVyc2UgZnJvbSB0d28gSURzIHRoYXQgZG8gJyArICdub3QgaGF2ZSBhIHBhcmVudCBwYXRoLicsIHN0YXJ0LCBzdG9wKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIC8vIFRyYXZlcnNlIGZyb20gYHN0YXJ0YCB0byBgc3RvcGAgb25lIGRlcHRoIGF0IGEgdGltZS5cbiAgdmFyIGRlcHRoID0gMDtcbiAgdmFyIHRyYXZlcnNlID0gdHJhdmVyc2VVcCA/IGdldFBhcmVudElEIDogZ2V0TmV4dERlc2NlbmRhbnRJRDtcbiAgZm9yICh2YXIgaWQgPSBzdGFydDs7IC8qIHVudGlsIGJyZWFrICovaWQgPSB0cmF2ZXJzZShpZCwgc3RvcCkpIHtcbiAgICB2YXIgcmV0O1xuICAgIGlmICgoIXNraXBGaXJzdCB8fCBpZCAhPT0gc3RhcnQpICYmICghc2tpcExhc3QgfHwgaWQgIT09IHN0b3ApKSB7XG4gICAgICByZXQgPSBjYihpZCwgdHJhdmVyc2VVcCwgYXJnKTtcbiAgICB9XG4gICAgaWYgKHJldCA9PT0gZmFsc2UgfHwgaWQgPT09IHN0b3ApIHtcbiAgICAgIC8vIE9ubHkgYnJlYWsgLy9hZnRlci8vIHZpc2l0aW5nIGBzdG9wYC5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICAhKGRlcHRoKysgPCBNQVhfVFJFRV9ERVBUSCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAndHJhdmVyc2VQYXJlbnRQYXRoKCVzLCAlcywgLi4uKTogRGV0ZWN0ZWQgYW4gaW5maW5pdGUgbG9vcCB3aGlsZSAnICsgJ3RyYXZlcnNpbmcgdGhlIFJlYWN0IERPTSBJRCB0cmVlLiBUaGlzIG1heSBiZSBkdWUgdG8gbWFsZm9ybWVkIElEczogJXMnLCBzdGFydCwgc3RvcCwgaWQpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIE1hbmFnZXMgdGhlIElEcyBhc3NpZ25lZCB0byBET00gcmVwcmVzZW50YXRpb25zIG9mIFJlYWN0IGNvbXBvbmVudHMuIFRoaXNcbiAqIHVzZXMgYSBzcGVjaWZpYyBzY2hlbWUgaW4gb3JkZXIgdG8gdHJhdmVyc2UgdGhlIERPTSBlZmZpY2llbnRseSAoZS5nLiBpblxuICogb3JkZXIgdG8gc2ltdWxhdGUgZXZlbnRzKS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xudmFyIFJlYWN0SW5zdGFuY2VIYW5kbGVzID0ge1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmVhY3Qgcm9vdCBJRFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IEEgUmVhY3Qgcm9vdCBJRC5cbiAgICovXG4gIGNyZWF0ZVJlYWN0Um9vdElEOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdldFJlYWN0Um9vdElEU3RyaW5nKFJlYWN0Um9vdEluZGV4LmNyZWF0ZVJlYWN0Um9vdEluZGV4KCkpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgUmVhY3QgSUQgYnkgam9pbmluZyBhIHJvb3QgSUQgd2l0aCBhIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByb290SUQgUm9vdCBJRCBvZiBhIHBhcmVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIEEgY29tcG9uZW50J3MgbmFtZSAoYXMgZmxhdHRlbmVkIGNoaWxkcmVuKS5cbiAgICogQHJldHVybiB7c3RyaW5nfSBBIFJlYWN0IElELlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGNyZWF0ZVJlYWN0SUQ6IGZ1bmN0aW9uIChyb290SUQsIG5hbWUpIHtcbiAgICByZXR1cm4gcm9vdElEICsgbmFtZTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0cyB0aGUgRE9NIElEIG9mIHRoZSBSZWFjdCBjb21wb25lbnQgdGhhdCBpcyB0aGUgcm9vdCBvZiB0aGUgdHJlZSB0aGF0XG4gICAqIGNvbnRhaW5zIHRoZSBSZWFjdCBjb21wb25lbnQgd2l0aCB0aGUgc3VwcGxpZWQgRE9NIElELlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgRE9NIElEIG9mIGEgUmVhY3QgY29tcG9uZW50LlxuICAgKiBAcmV0dXJuIHs/c3RyaW5nfSBET00gSUQgb2YgdGhlIFJlYWN0IGNvbXBvbmVudCB0aGF0IGlzIHRoZSByb290LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldFJlYWN0Um9vdElERnJvbU5vZGVJRDogZnVuY3Rpb24gKGlkKSB7XG4gICAgaWYgKGlkICYmIGlkLmNoYXJBdCgwKSA9PT0gU0VQQVJBVE9SICYmIGlkLmxlbmd0aCA+IDEpIHtcbiAgICAgIHZhciBpbmRleCA9IGlkLmluZGV4T2YoU0VQQVJBVE9SLCAxKTtcbiAgICAgIHJldHVybiBpbmRleCA+IC0xID8gaWQuc3Vic3RyKDAsIGluZGV4KSA6IGlkO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSxcblxuICAvKipcbiAgICogVHJhdmVyc2VzIHRoZSBJRCBoaWVyYXJjaHkgYW5kIGludm9rZXMgdGhlIHN1cHBsaWVkIGBjYmAgb24gYW55IElEcyB0aGF0XG4gICAqIHNob3VsZCB3b3VsZCByZWNlaXZlIGEgYG1vdXNlRW50ZXJgIG9yIGBtb3VzZUxlYXZlYCBldmVudC5cbiAgICpcbiAgICogTk9URTogRG9lcyBub3QgaW52b2tlIHRoZSBjYWxsYmFjayBvbiB0aGUgbmVhcmVzdCBjb21tb24gYW5jZXN0b3IgYmVjYXVzZVxuICAgKiBub3RoaW5nIFwiZW50ZXJlZFwiIG9yIFwibGVmdFwiIHRoYXQgZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxlYXZlSUQgSUQgYmVpbmcgbGVmdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGVudGVySUQgSUQgYmVpbmcgZW50ZXJlZC5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2IgQ2FsbGJhY2sgdG8gaW52b2tlIG9uIGVhY2ggZW50ZXJlZC9sZWZ0IElELlxuICAgKiBAcGFyYW0geyp9IHVwQXJnIEFyZ3VtZW50IHRvIGludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBvbiBsZWZ0IElEcy5cbiAgICogQHBhcmFtIHsqfSBkb3duQXJnIEFyZ3VtZW50IHRvIGludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBvbiBlbnRlcmVkIElEcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB0cmF2ZXJzZUVudGVyTGVhdmU6IGZ1bmN0aW9uIChsZWF2ZUlELCBlbnRlcklELCBjYiwgdXBBcmcsIGRvd25BcmcpIHtcbiAgICB2YXIgYW5jZXN0b3JJRCA9IGdldEZpcnN0Q29tbW9uQW5jZXN0b3JJRChsZWF2ZUlELCBlbnRlcklEKTtcbiAgICBpZiAoYW5jZXN0b3JJRCAhPT0gbGVhdmVJRCkge1xuICAgICAgdHJhdmVyc2VQYXJlbnRQYXRoKGxlYXZlSUQsIGFuY2VzdG9ySUQsIGNiLCB1cEFyZywgZmFsc2UsIHRydWUpO1xuICAgIH1cbiAgICBpZiAoYW5jZXN0b3JJRCAhPT0gZW50ZXJJRCkge1xuICAgICAgdHJhdmVyc2VQYXJlbnRQYXRoKGFuY2VzdG9ySUQsIGVudGVySUQsIGNiLCBkb3duQXJnLCB0cnVlLCBmYWxzZSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBTaW11bGF0ZXMgdGhlIHRyYXZlcnNhbCBvZiBhIHR3by1waGFzZSwgY2FwdHVyZS9idWJibGUgZXZlbnQgZGlzcGF0Y2guXG4gICAqXG4gICAqIE5PVEU6IFRoaXMgdHJhdmVyc2FsIGhhcHBlbnMgb24gSURzIHdpdGhvdXQgdG91Y2hpbmcgdGhlIERPTS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhcmdldElEIElEIG9mIHRoZSB0YXJnZXQgbm9kZS5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2IgQ2FsbGJhY2sgdG8gaW52b2tlLlxuICAgKiBAcGFyYW0geyp9IGFyZyBBcmd1bWVudCB0byBpbnZva2UgdGhlIGNhbGxiYWNrIHdpdGguXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdHJhdmVyc2VUd29QaGFzZTogZnVuY3Rpb24gKHRhcmdldElELCBjYiwgYXJnKSB7XG4gICAgaWYgKHRhcmdldElEKSB7XG4gICAgICB0cmF2ZXJzZVBhcmVudFBhdGgoJycsIHRhcmdldElELCBjYiwgYXJnLCB0cnVlLCBmYWxzZSk7XG4gICAgICB0cmF2ZXJzZVBhcmVudFBhdGgodGFyZ2V0SUQsICcnLCBjYiwgYXJnLCBmYWxzZSwgdHJ1ZSk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBTYW1lIGFzIGB0cmF2ZXJzZVR3b1BoYXNlYCBidXQgc2tpcHMgdGhlIGB0YXJnZXRJRGAuXG4gICAqL1xuICB0cmF2ZXJzZVR3b1BoYXNlU2tpcFRhcmdldDogZnVuY3Rpb24gKHRhcmdldElELCBjYiwgYXJnKSB7XG4gICAgaWYgKHRhcmdldElEKSB7XG4gICAgICB0cmF2ZXJzZVBhcmVudFBhdGgoJycsIHRhcmdldElELCBjYiwgYXJnLCB0cnVlLCB0cnVlKTtcbiAgICAgIHRyYXZlcnNlUGFyZW50UGF0aCh0YXJnZXRJRCwgJycsIGNiLCBhcmcsIHRydWUsIHRydWUpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogVHJhdmVyc2UgYSBub2RlIElELCBjYWxsaW5nIHRoZSBzdXBwbGllZCBgY2JgIGZvciBlYWNoIGFuY2VzdG9yIElELiBGb3JcbiAgICogZXhhbXBsZSwgcGFzc2luZyBgLjAuJHJvdy0wLjFgIHdvdWxkIHJlc3VsdCBpbiBgY2JgIGdldHRpbmcgY2FsbGVkXG4gICAqIHdpdGggYC4wYCwgYC4wLiRyb3ctMGAsIGFuZCBgLjAuJHJvdy0wLjFgLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIHRyYXZlcnNhbCBoYXBwZW5zIG9uIElEcyB3aXRob3V0IHRvdWNoaW5nIHRoZSBET00uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRJRCBJRCBvZiB0aGUgdGFyZ2V0IG5vZGUuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNiIENhbGxiYWNrIHRvIGludm9rZS5cbiAgICogQHBhcmFtIHsqfSBhcmcgQXJndW1lbnQgdG8gaW52b2tlIHRoZSBjYWxsYmFjayB3aXRoLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHRyYXZlcnNlQW5jZXN0b3JzOiBmdW5jdGlvbiAodGFyZ2V0SUQsIGNiLCBhcmcpIHtcbiAgICB0cmF2ZXJzZVBhcmVudFBhdGgoJycsIHRhcmdldElELCBjYiwgYXJnLCB0cnVlLCBmYWxzZSk7XG4gIH0sXG5cbiAgZ2V0Rmlyc3RDb21tb25BbmNlc3RvcklEOiBnZXRGaXJzdENvbW1vbkFuY2VzdG9ySUQsXG5cbiAgLyoqXG4gICAqIEV4cG9zZWQgZm9yIHVuaXQgdGVzdGluZy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9nZXROZXh0RGVzY2VuZGFudElEOiBnZXROZXh0RGVzY2VuZGFudElELFxuXG4gIGlzQW5jZXN0b3JJRE9mOiBpc0FuY2VzdG9ySURPZixcblxuICBTRVBBUkFUT1I6IFNFUEFSQVRPUlxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0SW5zdGFuY2VIYW5kbGVzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdEluc3RhbmNlSGFuZGxlcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 46 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar ReactRootIndexInjection = {\n /**\n * @param {function} _createReactRootIndex\n */\n injectCreateReactRootIndex: function injectCreateReactRootIndex(_createReactRootIndex) {\n ReactRootIndex.createReactRootIndex = _createReactRootIndex;\n }\n};\n\nvar ReactRootIndex = {\n createReactRootIndex: null,\n injection: ReactRootIndexInjection\n};\n\nmodule.exports = ReactRootIndex;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RSb290SW5kZXguanM/NWMzZSJdLCJuYW1lcyI6WyJSZWFjdFJvb3RJbmRleEluamVjdGlvbiIsImluamVjdENyZWF0ZVJlYWN0Um9vdEluZGV4IiwiX2NyZWF0ZVJlYWN0Um9vdEluZGV4IiwiUmVhY3RSb290SW5kZXgiLCJjcmVhdGVSZWFjdFJvb3RJbmRleCIsImluamVjdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSwwQkFBMEI7QUFDNUI7OztBQUdBQyw4QkFBNEIsb0NBQVVDLHFCQUFWLEVBQWlDO0FBQzNEQyxtQkFBZUMsb0JBQWYsR0FBc0NGLHFCQUF0QztBQUNEO0FBTjJCLENBQTlCOztBQVNBLElBQUlDLGlCQUFpQjtBQUNuQkMsd0JBQXNCLElBREg7QUFFbkJDLGFBQVdMO0FBRlEsQ0FBckI7O0FBS0FNLE9BQU9DLE9BQVAsR0FBaUJKLGNBQWpCIiwiZmlsZSI6IjQ2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Um9vdEluZGV4XG4gKiBAdHlwZWNoZWNrc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0Um9vdEluZGV4SW5qZWN0aW9uID0ge1xuICAvKipcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gX2NyZWF0ZVJlYWN0Um9vdEluZGV4XG4gICAqL1xuICBpbmplY3RDcmVhdGVSZWFjdFJvb3RJbmRleDogZnVuY3Rpb24gKF9jcmVhdGVSZWFjdFJvb3RJbmRleCkge1xuICAgIFJlYWN0Um9vdEluZGV4LmNyZWF0ZVJlYWN0Um9vdEluZGV4ID0gX2NyZWF0ZVJlYWN0Um9vdEluZGV4O1xuICB9XG59O1xuXG52YXIgUmVhY3RSb290SW5kZXggPSB7XG4gIGNyZWF0ZVJlYWN0Um9vdEluZGV4OiBudWxsLFxuICBpbmplY3Rpb246IFJlYWN0Um9vdEluZGV4SW5qZWN0aW9uXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Um9vdEluZGV4O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdFJvb3RJbmRleC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 47 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInstanceMap\n */\n\n'use strict';\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n */\n\n// TODO: Replace this with ES6: var ReactInstanceMap = new Map();\n\nvar ReactInstanceMap = {\n\n /**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n remove: function remove(key) {\n key._reactInternalInstance = undefined;\n },\n\n get: function get(key) {\n return key._reactInternalInstance;\n },\n\n has: function has(key) {\n return key._reactInternalInstance !== undefined;\n },\n\n set: function set(key, value) {\n key._reactInternalInstance = value;\n }\n\n};\n\nmodule.exports = ReactInstanceMap;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RJbnN0YW5jZU1hcC5qcz8yNjMxIl0sIm5hbWVzIjpbIlJlYWN0SW5zdGFuY2VNYXAiLCJyZW1vdmUiLCJrZXkiLCJfcmVhY3RJbnRlcm5hbEluc3RhbmNlIiwidW5kZWZpbmVkIiwiZ2V0IiwiaGFzIiwic2V0IiwidmFsdWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQTs7Ozs7OztBQU9BOztBQUNBLElBQUlBLG1CQUFtQjs7QUFFckI7Ozs7O0FBS0FDLFVBQVEsZ0JBQVVDLEdBQVYsRUFBZTtBQUNyQkEsUUFBSUMsc0JBQUosR0FBNkJDLFNBQTdCO0FBQ0QsR0FUb0I7O0FBV3JCQyxPQUFLLGFBQVVILEdBQVYsRUFBZTtBQUNsQixXQUFPQSxJQUFJQyxzQkFBWDtBQUNELEdBYm9COztBQWVyQkcsT0FBSyxhQUFVSixHQUFWLEVBQWU7QUFDbEIsV0FBT0EsSUFBSUMsc0JBQUosS0FBK0JDLFNBQXRDO0FBQ0QsR0FqQm9COztBQW1CckJHLE9BQUssYUFBVUwsR0FBVixFQUFlTSxLQUFmLEVBQXNCO0FBQ3pCTixRQUFJQyxzQkFBSixHQUE2QkssS0FBN0I7QUFDRDs7QUFyQm9CLENBQXZCOztBQXlCQUMsT0FBT0MsT0FBUCxHQUFpQlYsZ0JBQWpCIiwiZmlsZSI6IjQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0SW5zdGFuY2VNYXBcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogYFJlYWN0SW5zdGFuY2VNYXBgIG1haW50YWlucyBhIG1hcHBpbmcgZnJvbSBhIHB1YmxpYyBmYWNpbmcgc3RhdGVmdWxcbiAqIGluc3RhbmNlIChrZXkpIGFuZCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gKHZhbHVlKS4gVGhpcyBhbGxvd3MgcHVibGljXG4gKiBtZXRob2RzIHRvIGFjY2VwdCB0aGUgdXNlciBmYWNpbmcgaW5zdGFuY2UgYXMgYW4gYXJndW1lbnQgYW5kIG1hcCB0aGVtIGJhY2tcbiAqIHRvIGludGVybmFsIG1ldGhvZHMuXG4gKi9cblxuLy8gVE9ETzogUmVwbGFjZSB0aGlzIHdpdGggRVM2OiB2YXIgUmVhY3RJbnN0YW5jZU1hcCA9IG5ldyBNYXAoKTtcbnZhciBSZWFjdEluc3RhbmNlTWFwID0ge1xuXG4gIC8qKlxuICAgKiBUaGlzIEFQSSBzaG91bGQgYmUgY2FsbGVkIGBkZWxldGVgIGJ1dCB3ZSdkIGhhdmUgdG8gbWFrZSBzdXJlIHRvIGFsd2F5c1xuICAgKiB0cmFuc2Zvcm0gdGhlc2UgdG8gc3RyaW5ncyBmb3IgSUUgc3VwcG9ydC4gV2hlbiB0aGlzIHRyYW5zZm9ybSBpcyBmdWxseVxuICAgKiBzdXBwb3J0ZWQgd2UgY2FuIHJlbmFtZSBpdC5cbiAgICovXG4gIHJlbW92ZTogZnVuY3Rpb24gKGtleSkge1xuICAgIGtleS5fcmVhY3RJbnRlcm5hbEluc3RhbmNlID0gdW5kZWZpbmVkO1xuICB9LFxuXG4gIGdldDogZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBrZXkuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZTtcbiAgfSxcblxuICBoYXM6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4ga2V5Ll9yZWFjdEludGVybmFsSW5zdGFuY2UgIT09IHVuZGVmaW5lZDtcbiAgfSxcblxuICBzZXQ6IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAga2V5Ll9yZWFjdEludGVybmFsSW5zdGFuY2UgPSB2YWx1ZTtcbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0SW5zdGFuY2VNYXA7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0SW5zdGFuY2VNYXAuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 48 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMarkupChecksum\n */\n\n'use strict';\n\nvar adler32 = __webpack_require__(49);\n\nvar TAG_END = /\\/?>/;\n\nvar ReactMarkupChecksum = {\n CHECKSUM_ATTR_NAME: 'data-react-checksum',\n\n /**\n * @param {string} markup Markup string\n * @return {string} Markup string with checksum attribute attached\n */\n addChecksumToMarkup: function addChecksumToMarkup(markup) {\n var checksum = adler32(markup);\n\n // Add checksum (handle both parent tags and self-closing tags)\n return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '=\"' + checksum + '\"$&');\n },\n\n /**\n * @param {string} markup to use\n * @param {DOMElement} element root React element\n * @returns {boolean} whether or not the markup is the same\n */\n canReuseMarkup: function canReuseMarkup(markup, element) {\n var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);\n existingChecksum = existingChecksum && parseInt(existingChecksum, 10);\n var markupChecksum = adler32(markup);\n return markupChecksum === existingChecksum;\n }\n};\n\nmodule.exports = ReactMarkupChecksum;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RNYXJrdXBDaGVja3N1bS5qcz8yNGY5Il0sIm5hbWVzIjpbImFkbGVyMzIiLCJyZXF1aXJlIiwiVEFHX0VORCIsIlJlYWN0TWFya3VwQ2hlY2tzdW0iLCJDSEVDS1NVTV9BVFRSX05BTUUiLCJhZGRDaGVja3N1bVRvTWFya3VwIiwibWFya3VwIiwiY2hlY2tzdW0iLCJyZXBsYWNlIiwiY2FuUmV1c2VNYXJrdXAiLCJlbGVtZW50IiwiZXhpc3RpbmdDaGVja3N1bSIsImdldEF0dHJpYnV0ZSIsInBhcnNlSW50IiwibWFya3VwQ2hlY2tzdW0iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxVQUFVLG1CQUFBQyxDQUFRLEVBQVIsQ0FBZDs7QUFFQSxJQUFJQyxVQUFVLE1BQWQ7O0FBRUEsSUFBSUMsc0JBQXNCO0FBQ3hCQyxzQkFBb0IscUJBREk7O0FBR3hCOzs7O0FBSUFDLHVCQUFxQiw2QkFBVUMsTUFBVixFQUFrQjtBQUNyQyxRQUFJQyxXQUFXUCxRQUFRTSxNQUFSLENBQWY7O0FBRUE7QUFDQSxXQUFPQSxPQUFPRSxPQUFQLENBQWVOLE9BQWYsRUFBd0IsTUFBTUMsb0JBQW9CQyxrQkFBMUIsR0FBK0MsSUFBL0MsR0FBc0RHLFFBQXRELEdBQWlFLEtBQXpGLENBQVA7QUFDRCxHQVp1Qjs7QUFjeEI7Ozs7O0FBS0FFLGtCQUFnQix3QkFBVUgsTUFBVixFQUFrQkksT0FBbEIsRUFBMkI7QUFDekMsUUFBSUMsbUJBQW1CRCxRQUFRRSxZQUFSLENBQXFCVCxvQkFBb0JDLGtCQUF6QyxDQUF2QjtBQUNBTyx1QkFBbUJBLG9CQUFvQkUsU0FBU0YsZ0JBQVQsRUFBMkIsRUFBM0IsQ0FBdkM7QUFDQSxRQUFJRyxpQkFBaUJkLFFBQVFNLE1BQVIsQ0FBckI7QUFDQSxXQUFPUSxtQkFBbUJILGdCQUExQjtBQUNEO0FBeEJ1QixDQUExQjs7QUEyQkFJLE9BQU9DLE9BQVAsR0FBaUJiLG1CQUFqQiIsImZpbGUiOiI0OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdE1hcmt1cENoZWNrc3VtXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgYWRsZXIzMiA9IHJlcXVpcmUoJy4vYWRsZXIzMicpO1xuXG52YXIgVEFHX0VORCA9IC9cXC8/Pi87XG5cbnZhciBSZWFjdE1hcmt1cENoZWNrc3VtID0ge1xuICBDSEVDS1NVTV9BVFRSX05BTUU6ICdkYXRhLXJlYWN0LWNoZWNrc3VtJyxcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1hcmt1cCBNYXJrdXAgc3RyaW5nXG4gICAqIEByZXR1cm4ge3N0cmluZ30gTWFya3VwIHN0cmluZyB3aXRoIGNoZWNrc3VtIGF0dHJpYnV0ZSBhdHRhY2hlZFxuICAgKi9cbiAgYWRkQ2hlY2tzdW1Ub01hcmt1cDogZnVuY3Rpb24gKG1hcmt1cCkge1xuICAgIHZhciBjaGVja3N1bSA9IGFkbGVyMzIobWFya3VwKTtcblxuICAgIC8vIEFkZCBjaGVja3N1bSAoaGFuZGxlIGJvdGggcGFyZW50IHRhZ3MgYW5kIHNlbGYtY2xvc2luZyB0YWdzKVxuICAgIHJldHVybiBtYXJrdXAucmVwbGFjZShUQUdfRU5ELCAnICcgKyBSZWFjdE1hcmt1cENoZWNrc3VtLkNIRUNLU1VNX0FUVFJfTkFNRSArICc9XCInICsgY2hlY2tzdW0gKyAnXCIkJicpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIHRvIHVzZVxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR9IGVsZW1lbnQgcm9vdCBSZWFjdCBlbGVtZW50XG4gICAqIEByZXR1cm5zIHtib29sZWFufSB3aGV0aGVyIG9yIG5vdCB0aGUgbWFya3VwIGlzIHRoZSBzYW1lXG4gICAqL1xuICBjYW5SZXVzZU1hcmt1cDogZnVuY3Rpb24gKG1hcmt1cCwgZWxlbWVudCkge1xuICAgIHZhciBleGlzdGluZ0NoZWNrc3VtID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoUmVhY3RNYXJrdXBDaGVja3N1bS5DSEVDS1NVTV9BVFRSX05BTUUpO1xuICAgIGV4aXN0aW5nQ2hlY2tzdW0gPSBleGlzdGluZ0NoZWNrc3VtICYmIHBhcnNlSW50KGV4aXN0aW5nQ2hlY2tzdW0sIDEwKTtcbiAgICB2YXIgbWFya3VwQ2hlY2tzdW0gPSBhZGxlcjMyKG1hcmt1cCk7XG4gICAgcmV0dXJuIG1hcmt1cENoZWNrc3VtID09PSBleGlzdGluZ0NoZWNrc3VtO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0TWFya3VwQ2hlY2tzdW07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0TWFya3VwQ2hlY2tzdW0uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 49 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule adler32\n */\n\n'use strict';\n\nvar MOD = 65521;\n\n// adler32 is not cryptographically strong, and is only used to sanity check that\n// markup generated on the server matches the markup generated on the client.\n// This implementation (a modified version of the SheetJS version) has been optimized\n// for our use case, at the expense of conforming to the adler32 specification\n// for non-ascii inputs.\nfunction adler32(data) {\n var a = 1;\n var b = 0;\n var i = 0;\n var l = data.length;\n var m = l & ~0x3;\n while (i < m) {\n for (; i < Math.min(i + 4096, m); i += 4) {\n b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));\n }\n a %= MOD;\n b %= MOD;\n }\n for (; i < l; i++) {\n b += a += data.charCodeAt(i);\n }\n a %= MOD;\n b %= MOD;\n return a | b << 16;\n}\n\nmodule.exports = adler32;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvYWRsZXIzMi5qcz9lODBmIl0sIm5hbWVzIjpbIk1PRCIsImFkbGVyMzIiLCJkYXRhIiwiYSIsImIiLCJpIiwibCIsImxlbmd0aCIsIm0iLCJNYXRoIiwibWluIiwiY2hhckNvZGVBdCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLE1BQU0sS0FBVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsT0FBVCxDQUFpQkMsSUFBakIsRUFBdUI7QUFDckIsTUFBSUMsSUFBSSxDQUFSO0FBQ0EsTUFBSUMsSUFBSSxDQUFSO0FBQ0EsTUFBSUMsSUFBSSxDQUFSO0FBQ0EsTUFBSUMsSUFBSUosS0FBS0ssTUFBYjtBQUNBLE1BQUlDLElBQUlGLElBQUksQ0FBQyxHQUFiO0FBQ0EsU0FBT0QsSUFBSUcsQ0FBWCxFQUFjO0FBQ1osV0FBT0gsSUFBSUksS0FBS0MsR0FBTCxDQUFTTCxJQUFJLElBQWIsRUFBbUJHLENBQW5CLENBQVgsRUFBa0NILEtBQUssQ0FBdkMsRUFBMEM7QUFDeENELFdBQUssQ0FBQ0QsS0FBS0QsS0FBS1MsVUFBTCxDQUFnQk4sQ0FBaEIsQ0FBTixLQUE2QkYsS0FBS0QsS0FBS1MsVUFBTCxDQUFnQk4sSUFBSSxDQUFwQixDQUFsQyxLQUE2REYsS0FBS0QsS0FBS1MsVUFBTCxDQUFnQk4sSUFBSSxDQUFwQixDQUFsRSxLQUE2RkYsS0FBS0QsS0FBS1MsVUFBTCxDQUFnQk4sSUFBSSxDQUFwQixDQUFsRyxDQUFMO0FBQ0Q7QUFDREYsU0FBS0gsR0FBTDtBQUNBSSxTQUFLSixHQUFMO0FBQ0Q7QUFDRCxTQUFPSyxJQUFJQyxDQUFYLEVBQWNELEdBQWQsRUFBbUI7QUFDakJELFNBQUtELEtBQUtELEtBQUtTLFVBQUwsQ0FBZ0JOLENBQWhCLENBQVY7QUFDRDtBQUNERixPQUFLSCxHQUFMO0FBQ0FJLE9BQUtKLEdBQUw7QUFDQSxTQUFPRyxJQUFJQyxLQUFLLEVBQWhCO0FBQ0Q7O0FBRURRLE9BQU9DLE9BQVAsR0FBaUJaLE9BQWpCIiwiZmlsZSI6IjQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGFkbGVyMzJcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBNT0QgPSA2NTUyMTtcblxuLy8gYWRsZXIzMiBpcyBub3QgY3J5cHRvZ3JhcGhpY2FsbHkgc3Ryb25nLCBhbmQgaXMgb25seSB1c2VkIHRvIHNhbml0eSBjaGVjayB0aGF0XG4vLyBtYXJrdXAgZ2VuZXJhdGVkIG9uIHRoZSBzZXJ2ZXIgbWF0Y2hlcyB0aGUgbWFya3VwIGdlbmVyYXRlZCBvbiB0aGUgY2xpZW50LlxuLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiAoYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBTaGVldEpTIHZlcnNpb24pIGhhcyBiZWVuIG9wdGltaXplZFxuLy8gZm9yIG91ciB1c2UgY2FzZSwgYXQgdGhlIGV4cGVuc2Ugb2YgY29uZm9ybWluZyB0byB0aGUgYWRsZXIzMiBzcGVjaWZpY2F0aW9uXG4vLyBmb3Igbm9uLWFzY2lpIGlucHV0cy5cbmZ1bmN0aW9uIGFkbGVyMzIoZGF0YSkge1xuICB2YXIgYSA9IDE7XG4gIHZhciBiID0gMDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgbCA9IGRhdGEubGVuZ3RoO1xuICB2YXIgbSA9IGwgJiB+MHgzO1xuICB3aGlsZSAoaSA8IG0pIHtcbiAgICBmb3IgKDsgaSA8IE1hdGgubWluKGkgKyA0MDk2LCBtKTsgaSArPSA0KSB7XG4gICAgICBiICs9IChhICs9IGRhdGEuY2hhckNvZGVBdChpKSkgKyAoYSArPSBkYXRhLmNoYXJDb2RlQXQoaSArIDEpKSArIChhICs9IGRhdGEuY2hhckNvZGVBdChpICsgMikpICsgKGEgKz0gZGF0YS5jaGFyQ29kZUF0KGkgKyAzKSk7XG4gICAgfVxuICAgIGEgJT0gTU9EO1xuICAgIGIgJT0gTU9EO1xuICB9XG4gIGZvciAoOyBpIDwgbDsgaSsrKSB7XG4gICAgYiArPSBhICs9IGRhdGEuY2hhckNvZGVBdChpKTtcbiAgfVxuICBhICU9IE1PRDtcbiAgYiAlPSBNT0Q7XG4gIHJldHVybiBhIHwgYiA8PCAxNjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhZGxlcjMyO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9hZGxlcjMyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 50 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconciler\n */\n\n'use strict';\n\nvar ReactRef = __webpack_require__(51);\n\n/**\n * Helper to call ReactRef.attachRefs with this composite component, split out\n * to avoid allocations in the transaction mount-ready queue.\n */\nfunction attachRefs() {\n ReactRef.attachRefs(this, this._currentElement);\n}\n\nvar ReactReconciler = {\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {ReactComponent} internalInstance\n * @param {string} rootID DOM ID of the root node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function mountComponent(internalInstance, rootID, transaction, context) {\n var markup = internalInstance.mountComponent(rootID, transaction, context);\n if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n return markup;\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function unmountComponent(internalInstance) {\n ReactRef.detachRefs(internalInstance, internalInstance._currentElement);\n internalInstance.unmountComponent();\n },\n\n /**\n * Update a component using a new element.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @internal\n */\n receiveComponent: function receiveComponent(internalInstance, nextElement, transaction, context) {\n var prevElement = internalInstance._currentElement;\n\n if (nextElement === prevElement && context === internalInstance._context) {\n // Since elements are immutable after the owner is rendered,\n // we can do a cheap identity compare here to determine if this is a\n // superfluous reconcile. It's possible for state to be mutable but such\n // change should trigger an update of the owner which would recreate\n // the element. We explicitly check for the existence of an owner since\n // it's possible for an element created outside a composite to be\n // deeply mutated and reused.\n\n // TODO: Bailing out early is just a perf optimization right?\n // TODO: Removing the return statement should affect correctness?\n return;\n }\n\n var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);\n\n if (refsChanged) {\n ReactRef.detachRefs(internalInstance, prevElement);\n }\n\n internalInstance.receiveComponent(nextElement, transaction, context);\n\n if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {\n transaction.getReactMountReady().enqueue(attachRefs, internalInstance);\n }\n },\n\n /**\n * Flush any dirty changes in a component.\n *\n * @param {ReactComponent} internalInstance\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function performUpdateIfNecessary(internalInstance, transaction) {\n internalInstance.performUpdateIfNecessary(transaction);\n }\n\n};\n\nmodule.exports = ReactReconciler;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RSZWNvbmNpbGVyLmpzP2JkOGYiXSwibmFtZXMiOlsiUmVhY3RSZWYiLCJyZXF1aXJlIiwiYXR0YWNoUmVmcyIsIl9jdXJyZW50RWxlbWVudCIsIlJlYWN0UmVjb25jaWxlciIsIm1vdW50Q29tcG9uZW50IiwiaW50ZXJuYWxJbnN0YW5jZSIsInJvb3RJRCIsInRyYW5zYWN0aW9uIiwiY29udGV4dCIsIm1hcmt1cCIsInJlZiIsImdldFJlYWN0TW91bnRSZWFkeSIsImVucXVldWUiLCJ1bm1vdW50Q29tcG9uZW50IiwiZGV0YWNoUmVmcyIsInJlY2VpdmVDb21wb25lbnQiLCJuZXh0RWxlbWVudCIsInByZXZFbGVtZW50IiwiX2NvbnRleHQiLCJyZWZzQ2hhbmdlZCIsInNob3VsZFVwZGF0ZVJlZnMiLCJwZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxXQUFXLG1CQUFBQyxDQUFRLEVBQVIsQ0FBZjs7QUFFQTs7OztBQUlBLFNBQVNDLFVBQVQsR0FBc0I7QUFDcEJGLFdBQVNFLFVBQVQsQ0FBb0IsSUFBcEIsRUFBMEIsS0FBS0MsZUFBL0I7QUFDRDs7QUFFRCxJQUFJQyxrQkFBa0I7O0FBRXBCOzs7Ozs7Ozs7O0FBVUFDLGtCQUFnQix3QkFBVUMsZ0JBQVYsRUFBNEJDLE1BQTVCLEVBQW9DQyxXQUFwQyxFQUFpREMsT0FBakQsRUFBMEQ7QUFDeEUsUUFBSUMsU0FBU0osaUJBQWlCRCxjQUFqQixDQUFnQ0UsTUFBaEMsRUFBd0NDLFdBQXhDLEVBQXFEQyxPQUFyRCxDQUFiO0FBQ0EsUUFBSUgsaUJBQWlCSCxlQUFqQixJQUFvQ0csaUJBQWlCSCxlQUFqQixDQUFpQ1EsR0FBakMsSUFBd0MsSUFBaEYsRUFBc0Y7QUFDcEZILGtCQUFZSSxrQkFBWixHQUFpQ0MsT0FBakMsQ0FBeUNYLFVBQXpDLEVBQXFESSxnQkFBckQ7QUFDRDtBQUNELFdBQU9JLE1BQVA7QUFDRCxHQWxCbUI7O0FBb0JwQjs7Ozs7O0FBTUFJLG9CQUFrQiwwQkFBVVIsZ0JBQVYsRUFBNEI7QUFDNUNOLGFBQVNlLFVBQVQsQ0FBb0JULGdCQUFwQixFQUFzQ0EsaUJBQWlCSCxlQUF2RDtBQUNBRyxxQkFBaUJRLGdCQUFqQjtBQUNELEdBN0JtQjs7QUErQnBCOzs7Ozs7Ozs7QUFTQUUsb0JBQWtCLDBCQUFVVixnQkFBVixFQUE0QlcsV0FBNUIsRUFBeUNULFdBQXpDLEVBQXNEQyxPQUF0RCxFQUErRDtBQUMvRSxRQUFJUyxjQUFjWixpQkFBaUJILGVBQW5DOztBQUVBLFFBQUljLGdCQUFnQkMsV0FBaEIsSUFBK0JULFlBQVlILGlCQUFpQmEsUUFBaEUsRUFBMEU7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Q7O0FBRUQsUUFBSUMsY0FBY3BCLFNBQVNxQixnQkFBVCxDQUEwQkgsV0FBMUIsRUFBdUNELFdBQXZDLENBQWxCOztBQUVBLFFBQUlHLFdBQUosRUFBaUI7QUFDZnBCLGVBQVNlLFVBQVQsQ0FBb0JULGdCQUFwQixFQUFzQ1ksV0FBdEM7QUFDRDs7QUFFRFoscUJBQWlCVSxnQkFBakIsQ0FBa0NDLFdBQWxDLEVBQStDVCxXQUEvQyxFQUE0REMsT0FBNUQ7O0FBRUEsUUFBSVcsZUFBZWQsaUJBQWlCSCxlQUFoQyxJQUFtREcsaUJBQWlCSCxlQUFqQixDQUFpQ1EsR0FBakMsSUFBd0MsSUFBL0YsRUFBcUc7QUFDbkdILGtCQUFZSSxrQkFBWixHQUFpQ0MsT0FBakMsQ0FBeUNYLFVBQXpDLEVBQXFESSxnQkFBckQ7QUFDRDtBQUNGLEdBcEVtQjs7QUFzRXBCOzs7Ozs7O0FBT0FnQiw0QkFBMEIsa0NBQVVoQixnQkFBVixFQUE0QkUsV0FBNUIsRUFBeUM7QUFDakVGLHFCQUFpQmdCLHdCQUFqQixDQUEwQ2QsV0FBMUM7QUFDRDs7QUEvRW1CLENBQXRCOztBQW1GQWUsT0FBT0MsT0FBUCxHQUFpQnBCLGVBQWpCIiwiZmlsZSI6IjUwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0UmVjb25jaWxlclxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0UmVmID0gcmVxdWlyZSgnLi9SZWFjdFJlZicpO1xuXG4vKipcbiAqIEhlbHBlciB0byBjYWxsIFJlYWN0UmVmLmF0dGFjaFJlZnMgd2l0aCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQsIHNwbGl0IG91dFxuICogdG8gYXZvaWQgYWxsb2NhdGlvbnMgaW4gdGhlIHRyYW5zYWN0aW9uIG1vdW50LXJlYWR5IHF1ZXVlLlxuICovXG5mdW5jdGlvbiBhdHRhY2hSZWZzKCkge1xuICBSZWFjdFJlZi5hdHRhY2hSZWZzKHRoaXMsIHRoaXMuX2N1cnJlbnRFbGVtZW50KTtcbn1cblxudmFyIFJlYWN0UmVjb25jaWxlciA9IHtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGNvbXBvbmVudCwgcmVuZGVycyBtYXJrdXAsIGFuZCByZWdpc3RlcnMgZXZlbnQgbGlzdGVuZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBpbnRlcm5hbEluc3RhbmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByb290SUQgRE9NIElEIG9mIHRoZSByb290IG5vZGUuXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbnxSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHs/c3RyaW5nfSBSZW5kZXJlZCBtYXJrdXAgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgRE9NLlxuICAgKiBAZmluYWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBtb3VudENvbXBvbmVudDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIHJvb3RJRCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICB2YXIgbWFya3VwID0gaW50ZXJuYWxJbnN0YW5jZS5tb3VudENvbXBvbmVudChyb290SUQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQgJiYgaW50ZXJuYWxJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQucmVmICE9IG51bGwpIHtcbiAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoYXR0YWNoUmVmcywgaW50ZXJuYWxJbnN0YW5jZSk7XG4gICAgfVxuICAgIHJldHVybiBtYXJrdXA7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlbGVhc2VzIGFueSByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IGBtb3VudENvbXBvbmVudGAuXG4gICAqXG4gICAqIEBmaW5hbFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHVubW91bnRDb21wb25lbnQ6IGZ1bmN0aW9uIChpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgUmVhY3RSZWYuZGV0YWNoUmVmcyhpbnRlcm5hbEluc3RhbmNlLCBpbnRlcm5hbEluc3RhbmNlLl9jdXJyZW50RWxlbWVudCk7XG4gICAgaW50ZXJuYWxJbnN0YW5jZS51bm1vdW50Q29tcG9uZW50KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhIGNvbXBvbmVudCB1c2luZyBhIG5ldyBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBpbnRlcm5hbEluc3RhbmNlXG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0RWxlbWVudFxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVjZWl2ZUNvbXBvbmVudDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIG5leHRFbGVtZW50LCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBwcmV2RWxlbWVudCA9IGludGVybmFsSW5zdGFuY2UuX2N1cnJlbnRFbGVtZW50O1xuXG4gICAgaWYgKG5leHRFbGVtZW50ID09PSBwcmV2RWxlbWVudCAmJiBjb250ZXh0ID09PSBpbnRlcm5hbEluc3RhbmNlLl9jb250ZXh0KSB7XG4gICAgICAvLyBTaW5jZSBlbGVtZW50cyBhcmUgaW1tdXRhYmxlIGFmdGVyIHRoZSBvd25lciBpcyByZW5kZXJlZCxcbiAgICAgIC8vIHdlIGNhbiBkbyBhIGNoZWFwIGlkZW50aXR5IGNvbXBhcmUgaGVyZSB0byBkZXRlcm1pbmUgaWYgdGhpcyBpcyBhXG4gICAgICAvLyBzdXBlcmZsdW91cyByZWNvbmNpbGUuIEl0J3MgcG9zc2libGUgZm9yIHN0YXRlIHRvIGJlIG11dGFibGUgYnV0IHN1Y2hcbiAgICAgIC8vIGNoYW5nZSBzaG91bGQgdHJpZ2dlciBhbiB1cGRhdGUgb2YgdGhlIG93bmVyIHdoaWNoIHdvdWxkIHJlY3JlYXRlXG4gICAgICAvLyB0aGUgZWxlbWVudC4gV2UgZXhwbGljaXRseSBjaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhbiBvd25lciBzaW5jZVxuICAgICAgLy8gaXQncyBwb3NzaWJsZSBmb3IgYW4gZWxlbWVudCBjcmVhdGVkIG91dHNpZGUgYSBjb21wb3NpdGUgdG8gYmVcbiAgICAgIC8vIGRlZXBseSBtdXRhdGVkIGFuZCByZXVzZWQuXG5cbiAgICAgIC8vIFRPRE86IEJhaWxpbmcgb3V0IGVhcmx5IGlzIGp1c3QgYSBwZXJmIG9wdGltaXphdGlvbiByaWdodD9cbiAgICAgIC8vIFRPRE86IFJlbW92aW5nIHRoZSByZXR1cm4gc3RhdGVtZW50IHNob3VsZCBhZmZlY3QgY29ycmVjdG5lc3M/XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHJlZnNDaGFuZ2VkID0gUmVhY3RSZWYuc2hvdWxkVXBkYXRlUmVmcyhwcmV2RWxlbWVudCwgbmV4dEVsZW1lbnQpO1xuXG4gICAgaWYgKHJlZnNDaGFuZ2VkKSB7XG4gICAgICBSZWFjdFJlZi5kZXRhY2hSZWZzKGludGVybmFsSW5zdGFuY2UsIHByZXZFbGVtZW50KTtcbiAgICB9XG5cbiAgICBpbnRlcm5hbEluc3RhbmNlLnJlY2VpdmVDb21wb25lbnQobmV4dEVsZW1lbnQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcblxuICAgIGlmIChyZWZzQ2hhbmdlZCAmJiBpbnRlcm5hbEluc3RhbmNlLl9jdXJyZW50RWxlbWVudCAmJiBpbnRlcm5hbEluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5yZWYgIT0gbnVsbCkge1xuICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShhdHRhY2hSZWZzLCBpbnRlcm5hbEluc3RhbmNlKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZsdXNoIGFueSBkaXJ0eSBjaGFuZ2VzIGluIGEgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBpbnRlcm5hbEluc3RhbmNlXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwZXJmb3JtVXBkYXRlSWZOZWNlc3Nhcnk6IGZ1bmN0aW9uIChpbnRlcm5hbEluc3RhbmNlLCB0cmFuc2FjdGlvbikge1xuICAgIGludGVybmFsSW5zdGFuY2UucGVyZm9ybVVwZGF0ZUlmTmVjZXNzYXJ5KHRyYW5zYWN0aW9uKTtcbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UmVjb25jaWxlcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RSZWNvbmNpbGVyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 51 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactRef\n */\n\n'use strict';\n\nvar ReactOwner = __webpack_require__(52);\n\nvar ReactRef = {};\n\nfunction attachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(component.getPublicInstance());\n } else {\n // Legacy ref\n ReactOwner.addComponentAsRefTo(component, ref, owner);\n }\n}\n\nfunction detachRef(ref, component, owner) {\n if (typeof ref === 'function') {\n ref(null);\n } else {\n // Legacy ref\n ReactOwner.removeComponentAsRefFrom(component, ref, owner);\n }\n}\n\nReactRef.attachRefs = function (instance, element) {\n if (element === null || element === false) {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n attachRef(ref, instance, element._owner);\n }\n};\n\nReactRef.shouldUpdateRefs = function (prevElement, nextElement) {\n // If either the owner or a `ref` has changed, make sure the newest owner\n // has stored a reference to `this`, and the previous owner (if different)\n // has forgotten the reference to `this`. We use the element instead\n // of the public this.props because the post processing cannot determine\n // a ref. The ref conceptually lives on the element.\n\n // TODO: Should this even be possible? The owner cannot change because\n // it's forbidden by shouldUpdateReactComponent. The ref can change\n // if you swap the keys of but not the refs. Reconsider where this check\n // is made. It probably belongs where the key checking and\n // instantiateReactComponent is done.\n\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n\n return (\n // This has a few false positives w/r/t empty components.\n prevEmpty || nextEmpty || nextElement._owner !== prevElement._owner || nextElement.ref !== prevElement.ref\n );\n};\n\nReactRef.detachRefs = function (instance, element) {\n if (element === null || element === false) {\n return;\n }\n var ref = element.ref;\n if (ref != null) {\n detachRef(ref, instance, element._owner);\n }\n};\n\nmodule.exports = ReactRef;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RSZWYuanM/NGZlYyJdLCJuYW1lcyI6WyJSZWFjdE93bmVyIiwicmVxdWlyZSIsIlJlYWN0UmVmIiwiYXR0YWNoUmVmIiwicmVmIiwiY29tcG9uZW50Iiwib3duZXIiLCJnZXRQdWJsaWNJbnN0YW5jZSIsImFkZENvbXBvbmVudEFzUmVmVG8iLCJkZXRhY2hSZWYiLCJyZW1vdmVDb21wb25lbnRBc1JlZkZyb20iLCJhdHRhY2hSZWZzIiwiaW5zdGFuY2UiLCJlbGVtZW50IiwiX293bmVyIiwic2hvdWxkVXBkYXRlUmVmcyIsInByZXZFbGVtZW50IiwibmV4dEVsZW1lbnQiLCJwcmV2RW1wdHkiLCJuZXh0RW1wdHkiLCJkZXRhY2hSZWZzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsYUFBYSxtQkFBQUMsQ0FBUSxFQUFSLENBQWpCOztBQUVBLElBQUlDLFdBQVcsRUFBZjs7QUFFQSxTQUFTQyxTQUFULENBQW1CQyxHQUFuQixFQUF3QkMsU0FBeEIsRUFBbUNDLEtBQW5DLEVBQTBDO0FBQ3hDLE1BQUksT0FBT0YsR0FBUCxLQUFlLFVBQW5CLEVBQStCO0FBQzdCQSxRQUFJQyxVQUFVRSxpQkFBVixFQUFKO0FBQ0QsR0FGRCxNQUVPO0FBQ0w7QUFDQVAsZUFBV1EsbUJBQVgsQ0FBK0JILFNBQS9CLEVBQTBDRCxHQUExQyxFQUErQ0UsS0FBL0M7QUFDRDtBQUNGOztBQUVELFNBQVNHLFNBQVQsQ0FBbUJMLEdBQW5CLEVBQXdCQyxTQUF4QixFQUFtQ0MsS0FBbkMsRUFBMEM7QUFDeEMsTUFBSSxPQUFPRixHQUFQLEtBQWUsVUFBbkIsRUFBK0I7QUFDN0JBLFFBQUksSUFBSjtBQUNELEdBRkQsTUFFTztBQUNMO0FBQ0FKLGVBQVdVLHdCQUFYLENBQW9DTCxTQUFwQyxFQUErQ0QsR0FBL0MsRUFBb0RFLEtBQXBEO0FBQ0Q7QUFDRjs7QUFFREosU0FBU1MsVUFBVCxHQUFzQixVQUFVQyxRQUFWLEVBQW9CQyxPQUFwQixFQUE2QjtBQUNqRCxNQUFJQSxZQUFZLElBQVosSUFBb0JBLFlBQVksS0FBcEMsRUFBMkM7QUFDekM7QUFDRDtBQUNELE1BQUlULE1BQU1TLFFBQVFULEdBQWxCO0FBQ0EsTUFBSUEsT0FBTyxJQUFYLEVBQWlCO0FBQ2ZELGNBQVVDLEdBQVYsRUFBZVEsUUFBZixFQUF5QkMsUUFBUUMsTUFBakM7QUFDRDtBQUNGLENBUkQ7O0FBVUFaLFNBQVNhLGdCQUFULEdBQTRCLFVBQVVDLFdBQVYsRUFBdUJDLFdBQXZCLEVBQW9DO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFJQyxZQUFZRixnQkFBZ0IsSUFBaEIsSUFBd0JBLGdCQUFnQixLQUF4RDtBQUNBLE1BQUlHLFlBQVlGLGdCQUFnQixJQUFoQixJQUF3QkEsZ0JBQWdCLEtBQXhEOztBQUVBO0FBQ0U7QUFDQUMsaUJBQWFDLFNBQWIsSUFBMEJGLFlBQVlILE1BQVosS0FBdUJFLFlBQVlGLE1BQTdELElBQXVFRyxZQUFZYixHQUFaLEtBQW9CWSxZQUFZWjtBQUZ6RztBQUlELENBcEJEOztBQXNCQUYsU0FBU2tCLFVBQVQsR0FBc0IsVUFBVVIsUUFBVixFQUFvQkMsT0FBcEIsRUFBNkI7QUFDakQsTUFBSUEsWUFBWSxJQUFaLElBQW9CQSxZQUFZLEtBQXBDLEVBQTJDO0FBQ3pDO0FBQ0Q7QUFDRCxNQUFJVCxNQUFNUyxRQUFRVCxHQUFsQjtBQUNBLE1BQUlBLE9BQU8sSUFBWCxFQUFpQjtBQUNmSyxjQUFVTCxHQUFWLEVBQWVRLFFBQWYsRUFBeUJDLFFBQVFDLE1BQWpDO0FBQ0Q7QUFDRixDQVJEOztBQVVBTyxPQUFPQyxPQUFQLEdBQWlCcEIsUUFBakIiLCJmaWxlIjoiNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RSZWZcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdE93bmVyID0gcmVxdWlyZSgnLi9SZWFjdE93bmVyJyk7XG5cbnZhciBSZWFjdFJlZiA9IHt9O1xuXG5mdW5jdGlvbiBhdHRhY2hSZWYocmVmLCBjb21wb25lbnQsIG93bmVyKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmVmKGNvbXBvbmVudC5nZXRQdWJsaWNJbnN0YW5jZSgpKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBMZWdhY3kgcmVmXG4gICAgUmVhY3RPd25lci5hZGRDb21wb25lbnRBc1JlZlRvKGNvbXBvbmVudCwgcmVmLCBvd25lcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGV0YWNoUmVmKHJlZiwgY29tcG9uZW50LCBvd25lcikge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlZihudWxsKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBMZWdhY3kgcmVmXG4gICAgUmVhY3RPd25lci5yZW1vdmVDb21wb25lbnRBc1JlZkZyb20oY29tcG9uZW50LCByZWYsIG93bmVyKTtcbiAgfVxufVxuXG5SZWFjdFJlZi5hdHRhY2hSZWZzID0gZnVuY3Rpb24gKGluc3RhbmNlLCBlbGVtZW50KSB7XG4gIGlmIChlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciByZWYgPSBlbGVtZW50LnJlZjtcbiAgaWYgKHJlZiAhPSBudWxsKSB7XG4gICAgYXR0YWNoUmVmKHJlZiwgaW5zdGFuY2UsIGVsZW1lbnQuX293bmVyKTtcbiAgfVxufTtcblxuUmVhY3RSZWYuc2hvdWxkVXBkYXRlUmVmcyA9IGZ1bmN0aW9uIChwcmV2RWxlbWVudCwgbmV4dEVsZW1lbnQpIHtcbiAgLy8gSWYgZWl0aGVyIHRoZSBvd25lciBvciBhIGByZWZgIGhhcyBjaGFuZ2VkLCBtYWtlIHN1cmUgdGhlIG5ld2VzdCBvd25lclxuICAvLyBoYXMgc3RvcmVkIGEgcmVmZXJlbmNlIHRvIGB0aGlzYCwgYW5kIHRoZSBwcmV2aW91cyBvd25lciAoaWYgZGlmZmVyZW50KVxuICAvLyBoYXMgZm9yZ290dGVuIHRoZSByZWZlcmVuY2UgdG8gYHRoaXNgLiBXZSB1c2UgdGhlIGVsZW1lbnQgaW5zdGVhZFxuICAvLyBvZiB0aGUgcHVibGljIHRoaXMucHJvcHMgYmVjYXVzZSB0aGUgcG9zdCBwcm9jZXNzaW5nIGNhbm5vdCBkZXRlcm1pbmVcbiAgLy8gYSByZWYuIFRoZSByZWYgY29uY2VwdHVhbGx5IGxpdmVzIG9uIHRoZSBlbGVtZW50LlxuXG4gIC8vIFRPRE86IFNob3VsZCB0aGlzIGV2ZW4gYmUgcG9zc2libGU/IFRoZSBvd25lciBjYW5ub3QgY2hhbmdlIGJlY2F1c2VcbiAgLy8gaXQncyBmb3JiaWRkZW4gYnkgc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQuIFRoZSByZWYgY2FuIGNoYW5nZVxuICAvLyBpZiB5b3Ugc3dhcCB0aGUga2V5cyBvZiBidXQgbm90IHRoZSByZWZzLiBSZWNvbnNpZGVyIHdoZXJlIHRoaXMgY2hlY2tcbiAgLy8gaXMgbWFkZS4gSXQgcHJvYmFibHkgYmVsb25ncyB3aGVyZSB0aGUga2V5IGNoZWNraW5nIGFuZFxuICAvLyBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50IGlzIGRvbmUuXG5cbiAgdmFyIHByZXZFbXB0eSA9IHByZXZFbGVtZW50ID09PSBudWxsIHx8IHByZXZFbGVtZW50ID09PSBmYWxzZTtcbiAgdmFyIG5leHRFbXB0eSA9IG5leHRFbGVtZW50ID09PSBudWxsIHx8IG5leHRFbGVtZW50ID09PSBmYWxzZTtcblxuICByZXR1cm4oXG4gICAgLy8gVGhpcyBoYXMgYSBmZXcgZmFsc2UgcG9zaXRpdmVzIHcvci90IGVtcHR5IGNvbXBvbmVudHMuXG4gICAgcHJldkVtcHR5IHx8IG5leHRFbXB0eSB8fCBuZXh0RWxlbWVudC5fb3duZXIgIT09IHByZXZFbGVtZW50Ll9vd25lciB8fCBuZXh0RWxlbWVudC5yZWYgIT09IHByZXZFbGVtZW50LnJlZlxuICApO1xufTtcblxuUmVhY3RSZWYuZGV0YWNoUmVmcyA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgZWxlbWVudCkge1xuICBpZiAoZWxlbWVudCA9PT0gbnVsbCB8fCBlbGVtZW50ID09PSBmYWxzZSkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgcmVmID0gZWxlbWVudC5yZWY7XG4gIGlmIChyZWYgIT0gbnVsbCkge1xuICAgIGRldGFjaFJlZihyZWYsIGluc3RhbmNlLCBlbGVtZW50Ll9vd25lcik7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RSZWY7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0UmVmLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 52 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactOwner\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\n/**\n * ReactOwners are capable of storing references to owned components.\n *\n * All components are capable of //being// referenced by owner components, but\n * only ReactOwner components are capable of //referencing// owned components.\n * The named reference is known as a \"ref\".\n *\n * Refs are available when mounted and updated during reconciliation.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return (\n * <div onClick={this.handleClick}>\n * <CustomComponent ref=\"custom\" />\n * </div>\n * );\n * },\n * handleClick: function() {\n * this.refs.custom.handleClick();\n * },\n * componentDidMount: function() {\n * this.refs.custom.initialize();\n * }\n * });\n *\n * Refs should rarely be used. When refs are used, they should only be done to\n * control data that is not handled by React's data flow.\n *\n * @class ReactOwner\n */\nvar ReactOwner = {\n\n /**\n * @param {?object} object\n * @return {boolean} True if `object` is a valid owner.\n * @final\n */\n isValidOwner: function isValidOwner(object) {\n return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');\n },\n\n /**\n * Adds a component by ref to an owner component.\n *\n * @param {ReactComponent} component Component to reference.\n * @param {string} ref Name by which to refer to the component.\n * @param {ReactOwner} owner Component on which to record the ref.\n * @final\n * @internal\n */\n addComponentAsRefTo: function addComponentAsRefTo(component, ref, owner) {\n !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might ' + 'be adding a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n owner.attachRef(ref, component);\n },\n\n /**\n * Removes a component by ref from an owner component.\n *\n * @param {ReactComponent} component Component to dereference.\n * @param {string} ref Name of the ref to remove.\n * @param {ReactOwner} owner Component on which the ref is recorded.\n * @final\n * @internal\n */\n removeComponentAsRefFrom: function removeComponentAsRefFrom(component, ref, owner) {\n !ReactOwner.isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might ' + 'be removing a ref to a component that was not created inside a component\\'s ' + '`render` method, or you have multiple copies of React loaded ' + '(details: https://fb.me/react-refs-must-have-owner).') : invariant(false) : undefined;\n // Check that `component` is still the current ref because we do not want to\n // detach the ref if another component stole it.\n if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) {\n owner.detachRef(ref);\n }\n }\n\n};\n\nmodule.exports = ReactOwner;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RPd25lci5qcz9lYzMzIl0sIm5hbWVzIjpbImludmFyaWFudCIsInJlcXVpcmUiLCJSZWFjdE93bmVyIiwiaXNWYWxpZE93bmVyIiwib2JqZWN0IiwiYXR0YWNoUmVmIiwiZGV0YWNoUmVmIiwiYWRkQ29tcG9uZW50QXNSZWZUbyIsImNvbXBvbmVudCIsInJlZiIsIm93bmVyIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwicmVtb3ZlQ29tcG9uZW50QXNSZWZGcm9tIiwiZ2V0UHVibGljSW5zdGFuY2UiLCJyZWZzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsWUFBWSxtQkFBQUMsQ0FBUSxFQUFSLENBQWhCOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsSUFBSUMsYUFBYTs7QUFFZjs7Ozs7QUFLQUMsZ0JBQWMsc0JBQVVDLE1BQVYsRUFBa0I7QUFDOUIsV0FBTyxDQUFDLEVBQUVBLFVBQVUsT0FBT0EsT0FBT0MsU0FBZCxLQUE0QixVQUF0QyxJQUFvRCxPQUFPRCxPQUFPRSxTQUFkLEtBQTRCLFVBQWxGLENBQVI7QUFDRCxHQVRjOztBQVdmOzs7Ozs7Ozs7QUFTQUMsdUJBQXFCLDZCQUFVQyxTQUFWLEVBQXFCQyxHQUFyQixFQUEwQkMsS0FBMUIsRUFBaUM7QUFDcEQsS0FBQ1IsV0FBV0MsWUFBWCxDQUF3Qk8sS0FBeEIsQ0FBRCxHQUFrQ0MsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDYixVQUFVLEtBQVYsRUFBaUIsMEVBQTBFLDRFQUExRSxHQUF5SiwrREFBekosR0FBMk4sc0RBQTVPLENBQXhDLEdBQThVQSxVQUFVLEtBQVYsQ0FBaFgsR0FBbVljLFNBQW5ZO0FBQ0FKLFVBQU1MLFNBQU4sQ0FBZ0JJLEdBQWhCLEVBQXFCRCxTQUFyQjtBQUNELEdBdkJjOztBQXlCZjs7Ozs7Ozs7O0FBU0FPLDRCQUEwQixrQ0FBVVAsU0FBVixFQUFxQkMsR0FBckIsRUFBMEJDLEtBQTFCLEVBQWlDO0FBQ3pELEtBQUNSLFdBQVdDLFlBQVgsQ0FBd0JPLEtBQXhCLENBQUQsR0FBa0NDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q2IsVUFBVSxLQUFWLEVBQWlCLCtFQUErRSw4RUFBL0UsR0FBZ0ssK0RBQWhLLEdBQWtPLHNEQUFuUCxDQUF4QyxHQUFxVkEsVUFBVSxLQUFWLENBQXZYLEdBQTBZYyxTQUExWTtBQUNBO0FBQ0E7QUFDQSxRQUFJSixNQUFNTSxpQkFBTixHQUEwQkMsSUFBMUIsQ0FBK0JSLEdBQS9CLE1BQXdDRCxVQUFVUSxpQkFBVixFQUE1QyxFQUEyRTtBQUN6RU4sWUFBTUosU0FBTixDQUFnQkcsR0FBaEI7QUFDRDtBQUNGOztBQXpDYyxDQUFqQjs7QUE2Q0FTLE9BQU9DLE9BQVAsR0FBaUJqQixVQUFqQixDIiwiZmlsZSI6IjUyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0T3duZXJcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxuLyoqXG4gKiBSZWFjdE93bmVycyBhcmUgY2FwYWJsZSBvZiBzdG9yaW5nIHJlZmVyZW5jZXMgdG8gb3duZWQgY29tcG9uZW50cy5cbiAqXG4gKiBBbGwgY29tcG9uZW50cyBhcmUgY2FwYWJsZSBvZiAvL2JlaW5nLy8gcmVmZXJlbmNlZCBieSBvd25lciBjb21wb25lbnRzLCBidXRcbiAqIG9ubHkgUmVhY3RPd25lciBjb21wb25lbnRzIGFyZSBjYXBhYmxlIG9mIC8vcmVmZXJlbmNpbmcvLyBvd25lZCBjb21wb25lbnRzLlxuICogVGhlIG5hbWVkIHJlZmVyZW5jZSBpcyBrbm93biBhcyBhIFwicmVmXCIuXG4gKlxuICogUmVmcyBhcmUgYXZhaWxhYmxlIHdoZW4gbW91bnRlZCBhbmQgdXBkYXRlZCBkdXJpbmcgcmVjb25jaWxpYXRpb24uXG4gKlxuICogICB2YXIgTXlDb21wb25lbnQgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAqICAgICAgIHJldHVybiAoXG4gKiAgICAgICAgIDxkaXYgb25DbGljaz17dGhpcy5oYW5kbGVDbGlja30+XG4gKiAgICAgICAgICAgPEN1c3RvbUNvbXBvbmVudCByZWY9XCJjdXN0b21cIiAvPlxuICogICAgICAgICA8L2Rpdj5cbiAqICAgICAgICk7XG4gKiAgICAgfSxcbiAqICAgICBoYW5kbGVDbGljazogZnVuY3Rpb24oKSB7XG4gKiAgICAgICB0aGlzLnJlZnMuY3VzdG9tLmhhbmRsZUNsaWNrKCk7XG4gKiAgICAgfSxcbiAqICAgICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG4gKiAgICAgICB0aGlzLnJlZnMuY3VzdG9tLmluaXRpYWxpemUoKTtcbiAqICAgICB9XG4gKiAgIH0pO1xuICpcbiAqIFJlZnMgc2hvdWxkIHJhcmVseSBiZSB1c2VkLiBXaGVuIHJlZnMgYXJlIHVzZWQsIHRoZXkgc2hvdWxkIG9ubHkgYmUgZG9uZSB0b1xuICogY29udHJvbCBkYXRhIHRoYXQgaXMgbm90IGhhbmRsZWQgYnkgUmVhY3QncyBkYXRhIGZsb3cuXG4gKlxuICogQGNsYXNzIFJlYWN0T3duZXJcbiAqL1xudmFyIFJlYWN0T3duZXIgPSB7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gb2JqZWN0XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgYG9iamVjdGAgaXMgYSB2YWxpZCBvd25lci5cbiAgICogQGZpbmFsXG4gICAqL1xuICBpc1ZhbGlkT3duZXI6IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICByZXR1cm4gISEob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QuYXR0YWNoUmVmID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmplY3QuZGV0YWNoUmVmID09PSAnZnVuY3Rpb24nKTtcbiAgfSxcblxuICAvKipcbiAgICogQWRkcyBhIGNvbXBvbmVudCBieSByZWYgdG8gYW4gb3duZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjb21wb25lbnQgQ29tcG9uZW50IHRvIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlZiBOYW1lIGJ5IHdoaWNoIHRvIHJlZmVyIHRvIHRoZSBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7UmVhY3RPd25lcn0gb3duZXIgQ29tcG9uZW50IG9uIHdoaWNoIHRvIHJlY29yZCB0aGUgcmVmLlxuICAgKiBAZmluYWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhZGRDb21wb25lbnRBc1JlZlRvOiBmdW5jdGlvbiAoY29tcG9uZW50LCByZWYsIG93bmVyKSB7XG4gICAgIVJlYWN0T3duZXIuaXNWYWxpZE93bmVyKG93bmVyKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdhZGRDb21wb25lbnRBc1JlZlRvKC4uLik6IE9ubHkgYSBSZWFjdE93bmVyIGNhbiBoYXZlIHJlZnMuIFlvdSBtaWdodCAnICsgJ2JlIGFkZGluZyBhIHJlZiB0byBhIGNvbXBvbmVudCB0aGF0IHdhcyBub3QgY3JlYXRlZCBpbnNpZGUgYSBjb21wb25lbnRcXCdzICcgKyAnYHJlbmRlcmAgbWV0aG9kLCBvciB5b3UgaGF2ZSBtdWx0aXBsZSBjb3BpZXMgb2YgUmVhY3QgbG9hZGVkICcgKyAnKGRldGFpbHM6IGh0dHBzOi8vZmIubWUvcmVhY3QtcmVmcy1tdXN0LWhhdmUtb3duZXIpLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICBvd25lci5hdHRhY2hSZWYocmVmLCBjb21wb25lbnQpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY29tcG9uZW50IGJ5IHJlZiBmcm9tIGFuIG93bmVyIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY29tcG9uZW50IENvbXBvbmVudCB0byBkZXJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlZiBOYW1lIG9mIHRoZSByZWYgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0ge1JlYWN0T3duZXJ9IG93bmVyIENvbXBvbmVudCBvbiB3aGljaCB0aGUgcmVmIGlzIHJlY29yZGVkLlxuICAgKiBAZmluYWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZW1vdmVDb21wb25lbnRBc1JlZkZyb206IGZ1bmN0aW9uIChjb21wb25lbnQsIHJlZiwgb3duZXIpIHtcbiAgICAhUmVhY3RPd25lci5pc1ZhbGlkT3duZXIob3duZXIpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3JlbW92ZUNvbXBvbmVudEFzUmVmRnJvbSguLi4pOiBPbmx5IGEgUmVhY3RPd25lciBjYW4gaGF2ZSByZWZzLiBZb3UgbWlnaHQgJyArICdiZSByZW1vdmluZyBhIHJlZiB0byBhIGNvbXBvbmVudCB0aGF0IHdhcyBub3QgY3JlYXRlZCBpbnNpZGUgYSBjb21wb25lbnRcXCdzICcgKyAnYHJlbmRlcmAgbWV0aG9kLCBvciB5b3UgaGF2ZSBtdWx0aXBsZSBjb3BpZXMgb2YgUmVhY3QgbG9hZGVkICcgKyAnKGRldGFpbHM6IGh0dHBzOi8vZmIubWUvcmVhY3QtcmVmcy1tdXN0LWhhdmUtb3duZXIpLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICAvLyBDaGVjayB0aGF0IGBjb21wb25lbnRgIGlzIHN0aWxsIHRoZSBjdXJyZW50IHJlZiBiZWNhdXNlIHdlIGRvIG5vdCB3YW50IHRvXG4gICAgLy8gZGV0YWNoIHRoZSByZWYgaWYgYW5vdGhlciBjb21wb25lbnQgc3RvbGUgaXQuXG4gICAgaWYgKG93bmVyLmdldFB1YmxpY0luc3RhbmNlKCkucmVmc1tyZWZdID09PSBjb21wb25lbnQuZ2V0UHVibGljSW5zdGFuY2UoKSkge1xuICAgICAgb3duZXIuZGV0YWNoUmVmKHJlZik7XG4gICAgfVxuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RPd25lcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RPd25lci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 53 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdateQueue\n */\n\n'use strict';\n\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactElement = __webpack_require__(42);\nvar ReactInstanceMap = __webpack_require__(47);\nvar ReactUpdates = __webpack_require__(54);\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\nfunction enqueueUpdate(internalInstance) {\n ReactUpdates.enqueueUpdate(internalInstance);\n}\n\nfunction getInternalInstanceReadyForUpdate(publicInstance, callerName) {\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (!internalInstance) {\n if (process.env.NODE_ENV !== 'production') {\n // Only warn when we have a callerName. Otherwise we should be silent.\n // We're probably calling from enqueueCallback. We don't want to warn\n // there because we already warned for the corresponding lifecycle method.\n process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor.displayName) : undefined;\n }\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition ' + '(such as within `render`). Render methods should be a pure function ' + 'of props and state.', callerName) : undefined;\n }\n\n return internalInstance;\n}\n\n/**\n * ReactUpdateQueue allows for state updates to be scheduled into a later\n * reconciliation step.\n */\nvar ReactUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function isMounted(publicInstance) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n owner._warnedAboutRefsInRender = true;\n }\n }\n var internalInstance = ReactInstanceMap.get(publicInstance);\n if (internalInstance) {\n // During componentWillMount and render this will still be null but after\n // that will always render to something. At least for now. So we can use\n // this hack.\n return !!internalInstance._renderedComponent;\n } else {\n return false;\n }\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n enqueueCallback: function enqueueCallback(publicInstance, callback) {\n !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);\n\n // Previously we would throw an error if we didn't have an internal\n // instance. Since we want to make it a no-op instead, we mirror the same\n // behavior we have in other enqueue* methods.\n // We also need to ignore callbacks in componentWillMount. See\n // enqueueUpdates.\n if (!internalInstance) {\n return null;\n }\n\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n // TODO: The callback here is ignored when setState is called from\n // componentWillMount. Either fix it or disallow doing so completely in\n // favor of getInitialState. Alternatively, we can disallow\n // componentWillMount during server-side rendering.\n enqueueUpdate(internalInstance);\n },\n\n enqueueCallbackInternal: function enqueueCallbackInternal(internalInstance, callback) {\n !(typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'enqueueCallback(...): You called `setProps`, `replaceProps`, ' + '`setState`, `replaceState`, or `forceUpdate` with a callback that ' + 'isn\\'t callable.') : invariant(false) : undefined;\n if (internalInstance._pendingCallbacks) {\n internalInstance._pendingCallbacks.push(callback);\n } else {\n internalInstance._pendingCallbacks = [callback];\n }\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function enqueueForceUpdate(publicInstance) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingForceUpdate = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function enqueueReplaceState(publicInstance, completeState) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');\n\n if (!internalInstance) {\n return;\n }\n\n internalInstance._pendingStateQueue = [completeState];\n internalInstance._pendingReplaceState = true;\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function enqueueSetState(publicInstance, partialState) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');\n\n if (!internalInstance) {\n return;\n }\n\n var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);\n queue.push(partialState);\n\n enqueueUpdate(internalInstance);\n },\n\n /**\n * Sets a subset of the props.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialProps Subset of the next props.\n * @internal\n */\n enqueueSetProps: function enqueueSetProps(publicInstance, partialProps) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setProps');\n if (!internalInstance) {\n return;\n }\n ReactUpdateQueue.enqueueSetPropsInternal(internalInstance, partialProps);\n },\n\n enqueueSetPropsInternal: function enqueueSetPropsInternal(internalInstance, partialProps) {\n var topLevelWrapper = internalInstance._topLevelWrapper;\n !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setProps(...): You called `setProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n // Merge with the pending element if it exists, otherwise with existing\n // element props.\n var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n var element = wrapElement.props;\n var props = assign({}, element.props, partialProps);\n topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n enqueueUpdate(topLevelWrapper);\n },\n\n /**\n * Replaces all of the props.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} props New props.\n * @internal\n */\n enqueueReplaceProps: function enqueueReplaceProps(publicInstance, props) {\n var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceProps');\n if (!internalInstance) {\n return;\n }\n ReactUpdateQueue.enqueueReplacePropsInternal(internalInstance, props);\n },\n\n enqueueReplacePropsInternal: function enqueueReplacePropsInternal(internalInstance, props) {\n var topLevelWrapper = internalInstance._topLevelWrapper;\n !topLevelWrapper ? process.env.NODE_ENV !== 'production' ? invariant(false, 'replaceProps(...): You called `replaceProps` on a ' + 'component with a parent. This is an anti-pattern since props will ' + 'get reactively updated when rendered. Instead, change the owner\\'s ' + '`render` method to pass the correct value as props to the component ' + 'where it is created.') : invariant(false) : undefined;\n\n // Merge with the pending element if it exists, otherwise with existing\n // element props.\n var wrapElement = topLevelWrapper._pendingElement || topLevelWrapper._currentElement;\n var element = wrapElement.props;\n topLevelWrapper._pendingElement = ReactElement.cloneAndReplaceProps(wrapElement, ReactElement.cloneAndReplaceProps(element, props));\n\n enqueueUpdate(topLevelWrapper);\n },\n\n enqueueElementInternal: function enqueueElementInternal(internalInstance, newElement) {\n internalInstance._pendingElement = newElement;\n enqueueUpdate(internalInstance);\n }\n\n};\n\nmodule.exports = ReactUpdateQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RVcGRhdGVRdWV1ZS5qcz8zODg5Il0sIm5hbWVzIjpbIlJlYWN0Q3VycmVudE93bmVyIiwicmVxdWlyZSIsIlJlYWN0RWxlbWVudCIsIlJlYWN0SW5zdGFuY2VNYXAiLCJSZWFjdFVwZGF0ZXMiLCJhc3NpZ24iLCJpbnZhcmlhbnQiLCJ3YXJuaW5nIiwiZW5xdWV1ZVVwZGF0ZSIsImludGVybmFsSW5zdGFuY2UiLCJnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUiLCJwdWJsaWNJbnN0YW5jZSIsImNhbGxlck5hbWUiLCJnZXQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zdHJ1Y3RvciIsImRpc3BsYXlOYW1lIiwidW5kZWZpbmVkIiwiY3VycmVudCIsIlJlYWN0VXBkYXRlUXVldWUiLCJpc01vdW50ZWQiLCJvd25lciIsIl93YXJuZWRBYm91dFJlZnNJblJlbmRlciIsImdldE5hbWUiLCJfcmVuZGVyZWRDb21wb25lbnQiLCJlbnF1ZXVlQ2FsbGJhY2siLCJjYWxsYmFjayIsIl9wZW5kaW5nQ2FsbGJhY2tzIiwicHVzaCIsImVucXVldWVDYWxsYmFja0ludGVybmFsIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwiX3BlbmRpbmdGb3JjZVVwZGF0ZSIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJjb21wbGV0ZVN0YXRlIiwiX3BlbmRpbmdTdGF0ZVF1ZXVlIiwiX3BlbmRpbmdSZXBsYWNlU3RhdGUiLCJlbnF1ZXVlU2V0U3RhdGUiLCJwYXJ0aWFsU3RhdGUiLCJxdWV1ZSIsImVucXVldWVTZXRQcm9wcyIsInBhcnRpYWxQcm9wcyIsImVucXVldWVTZXRQcm9wc0ludGVybmFsIiwidG9wTGV2ZWxXcmFwcGVyIiwiX3RvcExldmVsV3JhcHBlciIsIndyYXBFbGVtZW50IiwiX3BlbmRpbmdFbGVtZW50IiwiX2N1cnJlbnRFbGVtZW50IiwiZWxlbWVudCIsInByb3BzIiwiY2xvbmVBbmRSZXBsYWNlUHJvcHMiLCJlbnF1ZXVlUmVwbGFjZVByb3BzIiwiZW5xdWV1ZVJlcGxhY2VQcm9wc0ludGVybmFsIiwiZW5xdWV1ZUVsZW1lbnRJbnRlcm5hbCIsIm5ld0VsZW1lbnQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxvQkFBb0IsbUJBQUFDLENBQVEsQ0FBUixDQUF4QjtBQUNBLElBQUlDLGVBQWUsbUJBQUFELENBQVEsRUFBUixDQUFuQjtBQUNBLElBQUlFLG1CQUFtQixtQkFBQUYsQ0FBUSxFQUFSLENBQXZCO0FBQ0EsSUFBSUcsZUFBZSxtQkFBQUgsQ0FBUSxFQUFSLENBQW5COztBQUVBLElBQUlJLFNBQVMsbUJBQUFKLENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUssWUFBWSxtQkFBQUwsQ0FBUSxFQUFSLENBQWhCO0FBQ0EsSUFBSU0sVUFBVSxtQkFBQU4sQ0FBUSxFQUFSLENBQWQ7O0FBRUEsU0FBU08sYUFBVCxDQUF1QkMsZ0JBQXZCLEVBQXlDO0FBQ3ZDTCxlQUFhSSxhQUFiLENBQTJCQyxnQkFBM0I7QUFDRDs7QUFFRCxTQUFTQyxpQ0FBVCxDQUEyQ0MsY0FBM0MsRUFBMkRDLFVBQTNELEVBQXVFO0FBQ3JFLE1BQUlILG1CQUFtQk4saUJBQWlCVSxHQUFqQixDQUFxQkYsY0FBckIsQ0FBdkI7QUFDQSxNQUFJLENBQUNGLGdCQUFMLEVBQXVCO0FBQ3JCLFFBQUlLLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QztBQUNBO0FBQ0E7QUFDQUYsY0FBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDVCxRQUFRLENBQUNLLFVBQVQsRUFBcUIsK0RBQStELGdFQUEvRCxHQUFrSSw4REFBdkosRUFBdU5BLFVBQXZOLEVBQW1PQSxVQUFuTyxFQUErT0QsZUFBZU0sV0FBZixDQUEyQkMsV0FBMVEsQ0FBeEMsR0FBaVVDLFNBQWpVO0FBQ0Q7QUFDRCxXQUFPLElBQVA7QUFDRDs7QUFFRCxNQUFJTCxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNGLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1QsUUFBUVAsa0JBQWtCb0IsT0FBbEIsSUFBNkIsSUFBckMsRUFBMkMsZ0VBQWdFLHNFQUFoRSxHQUF5SSxxQkFBcEwsRUFBMk1SLFVBQTNNLENBQXhDLEdBQWlRTyxTQUFqUTtBQUNEOztBQUVELFNBQU9WLGdCQUFQO0FBQ0Q7O0FBRUQ7Ozs7QUFJQSxJQUFJWSxtQkFBbUI7O0FBRXJCOzs7Ozs7O0FBT0FDLGFBQVcsbUJBQVVYLGNBQVYsRUFBMEI7QUFDbkMsUUFBSUcsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDLFVBQUlPLFFBQVF2QixrQkFBa0JvQixPQUE5QjtBQUNBLFVBQUlHLFVBQVUsSUFBZCxFQUFvQjtBQUNsQlQsZ0JBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1QsUUFBUWdCLE1BQU1DLHdCQUFkLEVBQXdDLDZEQUE2RCxtRUFBN0QsR0FBbUksb0VBQW5JLEdBQTBNLGlFQUExTSxHQUE4USw2QkFBdFQsRUFBcVZELE1BQU1FLE9BQU4sTUFBbUIsYUFBeFcsQ0FBeEMsR0FBaWFOLFNBQWphO0FBQ0FJLGNBQU1DLHdCQUFOLEdBQWlDLElBQWpDO0FBQ0Q7QUFDRjtBQUNELFFBQUlmLG1CQUFtQk4saUJBQWlCVSxHQUFqQixDQUFxQkYsY0FBckIsQ0FBdkI7QUFDQSxRQUFJRixnQkFBSixFQUFzQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxhQUFPLENBQUMsQ0FBQ0EsaUJBQWlCaUIsa0JBQTFCO0FBQ0QsS0FMRCxNQUtPO0FBQ0wsYUFBTyxLQUFQO0FBQ0Q7QUFDRixHQTFCb0I7O0FBNEJyQjs7Ozs7Ozs7QUFRQUMsbUJBQWlCLHlCQUFVaEIsY0FBVixFQUEwQmlCLFFBQTFCLEVBQW9DO0FBQ25ELE1BQUUsT0FBT0EsUUFBUCxLQUFvQixVQUF0QixJQUFvQ2QsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDVixVQUFVLEtBQVYsRUFBaUIsa0VBQWtFLG9FQUFsRSxHQUF5SSxrQkFBMUosQ0FBeEMsR0FBd05BLFVBQVUsS0FBVixDQUE1UCxHQUErUWEsU0FBL1E7QUFDQSxRQUFJVixtQkFBbUJDLGtDQUFrQ0MsY0FBbEMsQ0FBdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQUksQ0FBQ0YsZ0JBQUwsRUFBdUI7QUFDckIsYUFBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBSUEsaUJBQWlCb0IsaUJBQXJCLEVBQXdDO0FBQ3RDcEIsdUJBQWlCb0IsaUJBQWpCLENBQW1DQyxJQUFuQyxDQUF3Q0YsUUFBeEM7QUFDRCxLQUZELE1BRU87QUFDTG5CLHVCQUFpQm9CLGlCQUFqQixHQUFxQyxDQUFDRCxRQUFELENBQXJDO0FBQ0Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBcEIsa0JBQWNDLGdCQUFkO0FBQ0QsR0EzRG9COztBQTZEckJzQiwyQkFBeUIsaUNBQVV0QixnQkFBVixFQUE0Qm1CLFFBQTVCLEVBQXNDO0FBQzdELE1BQUUsT0FBT0EsUUFBUCxLQUFvQixVQUF0QixJQUFvQ2QsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDVixVQUFVLEtBQVYsRUFBaUIsa0VBQWtFLG9FQUFsRSxHQUF5SSxrQkFBMUosQ0FBeEMsR0FBd05BLFVBQVUsS0FBVixDQUE1UCxHQUErUWEsU0FBL1E7QUFDQSxRQUFJVixpQkFBaUJvQixpQkFBckIsRUFBd0M7QUFDdENwQix1QkFBaUJvQixpQkFBakIsQ0FBbUNDLElBQW5DLENBQXdDRixRQUF4QztBQUNELEtBRkQsTUFFTztBQUNMbkIsdUJBQWlCb0IsaUJBQWpCLEdBQXFDLENBQUNELFFBQUQsQ0FBckM7QUFDRDtBQUNEcEIsa0JBQWNDLGdCQUFkO0FBQ0QsR0FyRW9COztBQXVFckI7Ozs7Ozs7Ozs7Ozs7QUFhQXVCLHNCQUFvQiw0QkFBVXJCLGNBQVYsRUFBMEI7QUFDNUMsUUFBSUYsbUJBQW1CQyxrQ0FBa0NDLGNBQWxDLEVBQWtELGFBQWxELENBQXZCOztBQUVBLFFBQUksQ0FBQ0YsZ0JBQUwsRUFBdUI7QUFDckI7QUFDRDs7QUFFREEscUJBQWlCd0IsbUJBQWpCLEdBQXVDLElBQXZDOztBQUVBekIsa0JBQWNDLGdCQUFkO0FBQ0QsR0E5Rm9COztBQWdHckI7Ozs7Ozs7Ozs7O0FBV0F5Qix1QkFBcUIsNkJBQVV2QixjQUFWLEVBQTBCd0IsYUFBMUIsRUFBeUM7QUFDNUQsUUFBSTFCLG1CQUFtQkMsa0NBQWtDQyxjQUFsQyxFQUFrRCxjQUFsRCxDQUF2Qjs7QUFFQSxRQUFJLENBQUNGLGdCQUFMLEVBQXVCO0FBQ3JCO0FBQ0Q7O0FBRURBLHFCQUFpQjJCLGtCQUFqQixHQUFzQyxDQUFDRCxhQUFELENBQXRDO0FBQ0ExQixxQkFBaUI0QixvQkFBakIsR0FBd0MsSUFBeEM7O0FBRUE3QixrQkFBY0MsZ0JBQWQ7QUFDRCxHQXRIb0I7O0FBd0hyQjs7Ozs7Ozs7OztBQVVBNkIsbUJBQWlCLHlCQUFVM0IsY0FBVixFQUEwQjRCLFlBQTFCLEVBQXdDO0FBQ3ZELFFBQUk5QixtQkFBbUJDLGtDQUFrQ0MsY0FBbEMsRUFBa0QsVUFBbEQsQ0FBdkI7O0FBRUEsUUFBSSxDQUFDRixnQkFBTCxFQUF1QjtBQUNyQjtBQUNEOztBQUVELFFBQUkrQixRQUFRL0IsaUJBQWlCMkIsa0JBQWpCLEtBQXdDM0IsaUJBQWlCMkIsa0JBQWpCLEdBQXNDLEVBQTlFLENBQVo7QUFDQUksVUFBTVYsSUFBTixDQUFXUyxZQUFYOztBQUVBL0Isa0JBQWNDLGdCQUFkO0FBQ0QsR0E3SW9COztBQStJckI7Ozs7Ozs7QUFPQWdDLG1CQUFpQix5QkFBVTlCLGNBQVYsRUFBMEIrQixZQUExQixFQUF3QztBQUN2RCxRQUFJakMsbUJBQW1CQyxrQ0FBa0NDLGNBQWxDLEVBQWtELFVBQWxELENBQXZCO0FBQ0EsUUFBSSxDQUFDRixnQkFBTCxFQUF1QjtBQUNyQjtBQUNEO0FBQ0RZLHFCQUFpQnNCLHVCQUFqQixDQUF5Q2xDLGdCQUF6QyxFQUEyRGlDLFlBQTNEO0FBQ0QsR0E1Sm9COztBQThKckJDLDJCQUF5QixpQ0FBVWxDLGdCQUFWLEVBQTRCaUMsWUFBNUIsRUFBMEM7QUFDakUsUUFBSUUsa0JBQWtCbkMsaUJBQWlCb0MsZ0JBQXZDO0FBQ0EsS0FBQ0QsZUFBRCxHQUFtQjlCLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1YsVUFBVSxLQUFWLEVBQWlCLCtDQUErQyxvRUFBL0MsR0FBc0gscUVBQXRILEdBQThMLHNFQUE5TCxHQUF1USxzQkFBeFIsQ0FBeEMsR0FBMFZBLFVBQVUsS0FBVixDQUE3VyxHQUFnWWEsU0FBaFk7O0FBRUE7QUFDQTtBQUNBLFFBQUkyQixjQUFjRixnQkFBZ0JHLGVBQWhCLElBQW1DSCxnQkFBZ0JJLGVBQXJFO0FBQ0EsUUFBSUMsVUFBVUgsWUFBWUksS0FBMUI7QUFDQSxRQUFJQSxRQUFRN0MsT0FBTyxFQUFQLEVBQVc0QyxRQUFRQyxLQUFuQixFQUEwQlIsWUFBMUIsQ0FBWjtBQUNBRSxvQkFBZ0JHLGVBQWhCLEdBQWtDN0MsYUFBYWlELG9CQUFiLENBQWtDTCxXQUFsQyxFQUErQzVDLGFBQWFpRCxvQkFBYixDQUFrQ0YsT0FBbEMsRUFBMkNDLEtBQTNDLENBQS9DLENBQWxDOztBQUVBMUMsa0JBQWNvQyxlQUFkO0FBQ0QsR0ExS29COztBQTRLckI7Ozs7Ozs7QUFPQVEsdUJBQXFCLDZCQUFVekMsY0FBVixFQUEwQnVDLEtBQTFCLEVBQWlDO0FBQ3BELFFBQUl6QyxtQkFBbUJDLGtDQUFrQ0MsY0FBbEMsRUFBa0QsY0FBbEQsQ0FBdkI7QUFDQSxRQUFJLENBQUNGLGdCQUFMLEVBQXVCO0FBQ3JCO0FBQ0Q7QUFDRFkscUJBQWlCZ0MsMkJBQWpCLENBQTZDNUMsZ0JBQTdDLEVBQStEeUMsS0FBL0Q7QUFDRCxHQXpMb0I7O0FBMkxyQkcsK0JBQTZCLHFDQUFVNUMsZ0JBQVYsRUFBNEJ5QyxLQUE1QixFQUFtQztBQUM5RCxRQUFJTixrQkFBa0JuQyxpQkFBaUJvQyxnQkFBdkM7QUFDQSxLQUFDRCxlQUFELEdBQW1COUIsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDVixVQUFVLEtBQVYsRUFBaUIsdURBQXVELG9FQUF2RCxHQUE4SCxxRUFBOUgsR0FBc00sc0VBQXRNLEdBQStRLHNCQUFoUyxDQUF4QyxHQUFrV0EsVUFBVSxLQUFWLENBQXJYLEdBQXdZYSxTQUF4WTs7QUFFQTtBQUNBO0FBQ0EsUUFBSTJCLGNBQWNGLGdCQUFnQkcsZUFBaEIsSUFBbUNILGdCQUFnQkksZUFBckU7QUFDQSxRQUFJQyxVQUFVSCxZQUFZSSxLQUExQjtBQUNBTixvQkFBZ0JHLGVBQWhCLEdBQWtDN0MsYUFBYWlELG9CQUFiLENBQWtDTCxXQUFsQyxFQUErQzVDLGFBQWFpRCxvQkFBYixDQUFrQ0YsT0FBbEMsRUFBMkNDLEtBQTNDLENBQS9DLENBQWxDOztBQUVBMUMsa0JBQWNvQyxlQUFkO0FBQ0QsR0F0TW9COztBQXdNckJVLDBCQUF3QixnQ0FBVTdDLGdCQUFWLEVBQTRCOEMsVUFBNUIsRUFBd0M7QUFDOUQ5QyxxQkFBaUJzQyxlQUFqQixHQUFtQ1EsVUFBbkM7QUFDQS9DLGtCQUFjQyxnQkFBZDtBQUNEOztBQTNNb0IsQ0FBdkI7O0FBK01BK0MsT0FBT0MsT0FBUCxHQUFpQnBDLGdCQUFqQixDIiwiZmlsZSI6IjUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdFVwZGF0ZVF1ZXVlXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSByZXF1aXJlKCcuL1JlYWN0Q3VycmVudE93bmVyJyk7XG52YXIgUmVhY3RFbGVtZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVsZW1lbnQnKTtcbnZhciBSZWFjdEluc3RhbmNlTWFwID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlTWFwJyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbmZ1bmN0aW9uIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSkge1xuICBSZWFjdFVwZGF0ZXMuZW5xdWV1ZVVwZGF0ZShpbnRlcm5hbEluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW50ZXJuYWxJbnN0YW5jZVJlYWR5Rm9yVXBkYXRlKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gIHZhciBpbnRlcm5hbEluc3RhbmNlID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQocHVibGljSW5zdGFuY2UpO1xuICBpZiAoIWludGVybmFsSW5zdGFuY2UpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gT25seSB3YXJuIHdoZW4gd2UgaGF2ZSBhIGNhbGxlck5hbWUuIE90aGVyd2lzZSB3ZSBzaG91bGQgYmUgc2lsZW50LlxuICAgICAgLy8gV2UncmUgcHJvYmFibHkgY2FsbGluZyBmcm9tIGVucXVldWVDYWxsYmFjay4gV2UgZG9uJ3Qgd2FudCB0byB3YXJuXG4gICAgICAvLyB0aGVyZSBiZWNhdXNlIHdlIGFscmVhZHkgd2FybmVkIGZvciB0aGUgY29ycmVzcG9uZGluZyBsaWZlY3ljbGUgbWV0aG9kLlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWNhbGxlck5hbWUsICclcyguLi4pOiBDYW4gb25seSB1cGRhdGUgYSBtb3VudGVkIG9yIG1vdW50aW5nIGNvbXBvbmVudC4gJyArICdUaGlzIHVzdWFsbHkgbWVhbnMgeW91IGNhbGxlZCAlcygpIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuICcgKyAnVGhpcyBpcyBhIG5vLW9wLiBQbGVhc2UgY2hlY2sgdGhlIGNvZGUgZm9yIHRoZSAlcyBjb21wb25lbnQuJywgY2FsbGVyTmFtZSwgY2FsbGVyTmFtZSwgcHVibGljSW5zdGFuY2UuY29uc3RydWN0b3IuZGlzcGxheU5hbWUpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9PSBudWxsLCAnJXMoLi4uKTogQ2Fubm90IHVwZGF0ZSBkdXJpbmcgYW4gZXhpc3Rpbmcgc3RhdGUgdHJhbnNpdGlvbiAnICsgJyhzdWNoIGFzIHdpdGhpbiBgcmVuZGVyYCkuIFJlbmRlciBtZXRob2RzIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gJyArICdvZiBwcm9wcyBhbmQgc3RhdGUuJywgY2FsbGVyTmFtZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gaW50ZXJuYWxJbnN0YW5jZTtcbn1cblxuLyoqXG4gKiBSZWFjdFVwZGF0ZVF1ZXVlIGFsbG93cyBmb3Igc3RhdGUgdXBkYXRlcyB0byBiZSBzY2hlZHVsZWQgaW50byBhIGxhdGVyXG4gKiByZWNvbmNpbGlhdGlvbiBzdGVwLlxuICovXG52YXIgUmVhY3RVcGRhdGVRdWV1ZSA9IHtcblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoaXMgY29tcG9zaXRlIGNvbXBvbmVudCBpcyBtb3VudGVkLlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB3ZSB3YW50IHRvIHRlc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgbW91bnRlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBmaW5hbFxuICAgKi9cbiAgaXNNb3VudGVkOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIG93bmVyID0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudDtcbiAgICAgIGlmIChvd25lciAhPT0gbnVsbCkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhvd25lci5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIsICclcyBpcyBhY2Nlc3NpbmcgaXNNb3VudGVkIGluc2lkZSBpdHMgcmVuZGVyKCkgZnVuY3Rpb24uICcgKyAncmVuZGVyKCkgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGUuIEl0IHNob3VsZCAnICsgJ25ldmVyIGFjY2VzcyBzb21ldGhpbmcgdGhhdCByZXF1aXJlcyBzdGFsZSBkYXRhIGZyb20gdGhlIHByZXZpb3VzICcgKyAncmVuZGVyLCBzdWNoIGFzIHJlZnMuIE1vdmUgdGhpcyBsb2dpYyB0byBjb21wb25lbnREaWRNb3VudCBhbmQgJyArICdjb21wb25lbnREaWRVcGRhdGUgaW5zdGVhZC4nLCBvd25lci5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG4gICAgICAgIG93bmVyLl93YXJuZWRBYm91dFJlZnNJblJlbmRlciA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBpbnRlcm5hbEluc3RhbmNlID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQocHVibGljSW5zdGFuY2UpO1xuICAgIGlmIChpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICAvLyBEdXJpbmcgY29tcG9uZW50V2lsbE1vdW50IGFuZCByZW5kZXIgdGhpcyB3aWxsIHN0aWxsIGJlIG51bGwgYnV0IGFmdGVyXG4gICAgICAvLyB0aGF0IHdpbGwgYWx3YXlzIHJlbmRlciB0byBzb21ldGhpbmcuIEF0IGxlYXN0IGZvciBub3cuIFNvIHdlIGNhbiB1c2VcbiAgICAgIC8vIHRoaXMgaGFjay5cbiAgICAgIHJldHVybiAhIWludGVybmFsSW5zdGFuY2UuX3JlbmRlcmVkQ29tcG9uZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBFbnF1ZXVlIGEgY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCB0aGUgcGVuZGluZyB1cGRhdGVzXG4gICAqIGhhdmUgcHJvY2Vzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0byB1c2UgYXMgYHRoaXNgIGNvbnRleHQuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgc3RhdGUgaXMgdXBkYXRlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlQ2FsbGJhY2s6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2spIHtcbiAgICAhKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnZW5xdWV1ZUNhbGxiYWNrKC4uLik6IFlvdSBjYWxsZWQgYHNldFByb3BzYCwgYHJlcGxhY2VQcm9wc2AsICcgKyAnYHNldFN0YXRlYCwgYHJlcGxhY2VTdGF0ZWAsIG9yIGBmb3JjZVVwZGF0ZWAgd2l0aCBhIGNhbGxiYWNrIHRoYXQgJyArICdpc25cXCd0IGNhbGxhYmxlLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEludGVybmFsSW5zdGFuY2VSZWFkeUZvclVwZGF0ZShwdWJsaWNJbnN0YW5jZSk7XG5cbiAgICAvLyBQcmV2aW91c2x5IHdlIHdvdWxkIHRocm93IGFuIGVycm9yIGlmIHdlIGRpZG4ndCBoYXZlIGFuIGludGVybmFsXG4gICAgLy8gaW5zdGFuY2UuIFNpbmNlIHdlIHdhbnQgdG8gbWFrZSBpdCBhIG5vLW9wIGluc3RlYWQsIHdlIG1pcnJvciB0aGUgc2FtZVxuICAgIC8vIGJlaGF2aW9yIHdlIGhhdmUgaW4gb3RoZXIgZW5xdWV1ZSogbWV0aG9kcy5cbiAgICAvLyBXZSBhbHNvIG5lZWQgdG8gaWdub3JlIGNhbGxiYWNrcyBpbiBjb21wb25lbnRXaWxsTW91bnQuIFNlZVxuICAgIC8vIGVucXVldWVVcGRhdGVzLlxuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MpIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MgPSBbY2FsbGJhY2tdO1xuICAgIH1cbiAgICAvLyBUT0RPOiBUaGUgY2FsbGJhY2sgaGVyZSBpcyBpZ25vcmVkIHdoZW4gc2V0U3RhdGUgaXMgY2FsbGVkIGZyb21cbiAgICAvLyBjb21wb25lbnRXaWxsTW91bnQuIEVpdGhlciBmaXggaXQgb3IgZGlzYWxsb3cgZG9pbmcgc28gY29tcGxldGVseSBpblxuICAgIC8vIGZhdm9yIG9mIGdldEluaXRpYWxTdGF0ZS4gQWx0ZXJuYXRpdmVseSwgd2UgY2FuIGRpc2FsbG93XG4gICAgLy8gY29tcG9uZW50V2lsbE1vdW50IGR1cmluZyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXG4gICAgZW5xdWV1ZVVwZGF0ZShpbnRlcm5hbEluc3RhbmNlKTtcbiAgfSxcblxuICBlbnF1ZXVlQ2FsbGJhY2tJbnRlcm5hbDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIGNhbGxiYWNrKSB7XG4gICAgISh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2VucXVldWVDYWxsYmFjayguLi4pOiBZb3UgY2FsbGVkIGBzZXRQcm9wc2AsIGByZXBsYWNlUHJvcHNgLCAnICsgJ2BzZXRTdGF0ZWAsIGByZXBsYWNlU3RhdGVgLCBvciBgZm9yY2VVcGRhdGVgIHdpdGggYSBjYWxsYmFjayB0aGF0ICcgKyAnaXNuXFwndCBjYWxsYWJsZS4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgaWYgKGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MpIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdDYWxsYmFja3MgPSBbY2FsbGJhY2tdO1xuICAgIH1cbiAgICBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnRlcm5hbEluc3RhbmNlUmVhZHlGb3JVcGRhdGUocHVibGljSW5zdGFuY2UsICdmb3JjZVVwZGF0ZScpO1xuXG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gdHJ1ZTtcblxuICAgIGVucXVldWVVcGRhdGUoaW50ZXJuYWxJbnN0YW5jZSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNvbXBsZXRlU3RhdGUpIHtcbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEludGVybmFsSW5zdGFuY2VSZWFkeUZvclVwZGF0ZShwdWJsaWNJbnN0YW5jZSwgJ3JlcGxhY2VTdGF0ZScpO1xuXG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ1N0YXRlUXVldWUgPSBbY29tcGxldGVTdGF0ZV07XG4gICAgaW50ZXJuYWxJbnN0YW5jZS5fcGVuZGluZ1JlcGxhY2VTdGF0ZSA9IHRydWU7XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gVGhpcyBvbmx5IGV4aXN0cyBiZWNhdXNlIF9wZW5kaW5nU3RhdGUgaXNcbiAgICogaW50ZXJuYWwuIFRoaXMgcHJvdmlkZXMgYSBtZXJnaW5nIHN0cmF0ZWd5IHRoYXQgaXMgbm90IGF2YWlsYWJsZSB0byBkZWVwXG4gICAqIHByb3BlcnRpZXMgd2hpY2ggaXMgY29uZnVzaW5nLiBUT0RPOiBFeHBvc2UgcGVuZGluZ1N0YXRlIG9yIGRvbid0IHVzZSBpdFxuICAgKiBkdXJpbmcgdGhlIG1lcmdlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggc3RhdGUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVNldFN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIHBhcnRpYWxTdGF0ZSkge1xuICAgIHZhciBpbnRlcm5hbEluc3RhbmNlID0gZ2V0SW50ZXJuYWxJbnN0YW5jZVJlYWR5Rm9yVXBkYXRlKHB1YmxpY0luc3RhbmNlLCAnc2V0U3RhdGUnKTtcblxuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBxdWV1ZSA9IGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdTdGF0ZVF1ZXVlIHx8IChpbnRlcm5hbEluc3RhbmNlLl9wZW5kaW5nU3RhdGVRdWV1ZSA9IFtdKTtcbiAgICBxdWV1ZS5wdXNoKHBhcnRpYWxTdGF0ZSk7XG5cbiAgICBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBwcm9wcy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWFsUHJvcHMgU3Vic2V0IG9mIHRoZSBuZXh0IHByb3BzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVTZXRQcm9wczogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlLCBwYXJ0aWFsUHJvcHMpIHtcbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEludGVybmFsSW5zdGFuY2VSZWFkeUZvclVwZGF0ZShwdWJsaWNJbnN0YW5jZSwgJ3NldFByb3BzJyk7XG4gICAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFJlYWN0VXBkYXRlUXVldWUuZW5xdWV1ZVNldFByb3BzSW50ZXJuYWwoaW50ZXJuYWxJbnN0YW5jZSwgcGFydGlhbFByb3BzKTtcbiAgfSxcblxuICBlbnF1ZXVlU2V0UHJvcHNJbnRlcm5hbDogZnVuY3Rpb24gKGludGVybmFsSW5zdGFuY2UsIHBhcnRpYWxQcm9wcykge1xuICAgIHZhciB0b3BMZXZlbFdyYXBwZXIgPSBpbnRlcm5hbEluc3RhbmNlLl90b3BMZXZlbFdyYXBwZXI7XG4gICAgIXRvcExldmVsV3JhcHBlciA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdzZXRQcm9wcyguLi4pOiBZb3UgY2FsbGVkIGBzZXRQcm9wc2Agb24gYSAnICsgJ2NvbXBvbmVudCB3aXRoIGEgcGFyZW50LiBUaGlzIGlzIGFuIGFudGktcGF0dGVybiBzaW5jZSBwcm9wcyB3aWxsICcgKyAnZ2V0IHJlYWN0aXZlbHkgdXBkYXRlZCB3aGVuIHJlbmRlcmVkLiBJbnN0ZWFkLCBjaGFuZ2UgdGhlIG93bmVyXFwncyAnICsgJ2ByZW5kZXJgIG1ldGhvZCB0byBwYXNzIHRoZSBjb3JyZWN0IHZhbHVlIGFzIHByb3BzIHRvIHRoZSBjb21wb25lbnQgJyArICd3aGVyZSBpdCBpcyBjcmVhdGVkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIE1lcmdlIHdpdGggdGhlIHBlbmRpbmcgZWxlbWVudCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB3aXRoIGV4aXN0aW5nXG4gICAgLy8gZWxlbWVudCBwcm9wcy5cbiAgICB2YXIgd3JhcEVsZW1lbnQgPSB0b3BMZXZlbFdyYXBwZXIuX3BlbmRpbmdFbGVtZW50IHx8IHRvcExldmVsV3JhcHBlci5fY3VycmVudEVsZW1lbnQ7XG4gICAgdmFyIGVsZW1lbnQgPSB3cmFwRWxlbWVudC5wcm9wcztcbiAgICB2YXIgcHJvcHMgPSBhc3NpZ24oe30sIGVsZW1lbnQucHJvcHMsIHBhcnRpYWxQcm9wcyk7XG4gICAgdG9wTGV2ZWxXcmFwcGVyLl9wZW5kaW5nRWxlbWVudCA9IFJlYWN0RWxlbWVudC5jbG9uZUFuZFJlcGxhY2VQcm9wcyh3cmFwRWxlbWVudCwgUmVhY3RFbGVtZW50LmNsb25lQW5kUmVwbGFjZVByb3BzKGVsZW1lbnQsIHByb3BzKSk7XG5cbiAgICBlbnF1ZXVlVXBkYXRlKHRvcExldmVsV3JhcHBlcik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgcHJvcHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHMgTmV3IHByb3BzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVSZXBsYWNlUHJvcHM6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgcHJvcHMpIHtcbiAgICB2YXIgaW50ZXJuYWxJbnN0YW5jZSA9IGdldEludGVybmFsSW5zdGFuY2VSZWFkeUZvclVwZGF0ZShwdWJsaWNJbnN0YW5jZSwgJ3JlcGxhY2VQcm9wcycpO1xuICAgIGlmICghaW50ZXJuYWxJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVSZXBsYWNlUHJvcHNJbnRlcm5hbChpbnRlcm5hbEluc3RhbmNlLCBwcm9wcyk7XG4gIH0sXG5cbiAgZW5xdWV1ZVJlcGxhY2VQcm9wc0ludGVybmFsOiBmdW5jdGlvbiAoaW50ZXJuYWxJbnN0YW5jZSwgcHJvcHMpIHtcbiAgICB2YXIgdG9wTGV2ZWxXcmFwcGVyID0gaW50ZXJuYWxJbnN0YW5jZS5fdG9wTGV2ZWxXcmFwcGVyO1xuICAgICF0b3BMZXZlbFdyYXBwZXIgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAncmVwbGFjZVByb3BzKC4uLik6IFlvdSBjYWxsZWQgYHJlcGxhY2VQcm9wc2Agb24gYSAnICsgJ2NvbXBvbmVudCB3aXRoIGEgcGFyZW50LiBUaGlzIGlzIGFuIGFudGktcGF0dGVybiBzaW5jZSBwcm9wcyB3aWxsICcgKyAnZ2V0IHJlYWN0aXZlbHkgdXBkYXRlZCB3aGVuIHJlbmRlcmVkLiBJbnN0ZWFkLCBjaGFuZ2UgdGhlIG93bmVyXFwncyAnICsgJ2ByZW5kZXJgIG1ldGhvZCB0byBwYXNzIHRoZSBjb3JyZWN0IHZhbHVlIGFzIHByb3BzIHRvIHRoZSBjb21wb25lbnQgJyArICd3aGVyZSBpdCBpcyBjcmVhdGVkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIE1lcmdlIHdpdGggdGhlIHBlbmRpbmcgZWxlbWVudCBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB3aXRoIGV4aXN0aW5nXG4gICAgLy8gZWxlbWVudCBwcm9wcy5cbiAgICB2YXIgd3JhcEVsZW1lbnQgPSB0b3BMZXZlbFdyYXBwZXIuX3BlbmRpbmdFbGVtZW50IHx8IHRvcExldmVsV3JhcHBlci5fY3VycmVudEVsZW1lbnQ7XG4gICAgdmFyIGVsZW1lbnQgPSB3cmFwRWxlbWVudC5wcm9wcztcbiAgICB0b3BMZXZlbFdyYXBwZXIuX3BlbmRpbmdFbGVtZW50ID0gUmVhY3RFbGVtZW50LmNsb25lQW5kUmVwbGFjZVByb3BzKHdyYXBFbGVtZW50LCBSZWFjdEVsZW1lbnQuY2xvbmVBbmRSZXBsYWNlUHJvcHMoZWxlbWVudCwgcHJvcHMpKTtcblxuICAgIGVucXVldWVVcGRhdGUodG9wTGV2ZWxXcmFwcGVyKTtcbiAgfSxcblxuICBlbnF1ZXVlRWxlbWVudEludGVybmFsOiBmdW5jdGlvbiAoaW50ZXJuYWxJbnN0YW5jZSwgbmV3RWxlbWVudCkge1xuICAgIGludGVybmFsSW5zdGFuY2UuX3BlbmRpbmdFbGVtZW50ID0gbmV3RWxlbWVudDtcbiAgICBlbnF1ZXVlVXBkYXRlKGludGVybmFsSW5zdGFuY2UpO1xuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RVcGRhdGVRdWV1ZTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RVcGRhdGVRdWV1ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 54 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactUpdates\n */\n\n'use strict';\n\nvar CallbackQueue = __webpack_require__(55);\nvar PooledClass = __webpack_require__(56);\nvar ReactPerf = __webpack_require__(18);\nvar ReactReconciler = __webpack_require__(50);\nvar Transaction = __webpack_require__(57);\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\n\nvar dirtyComponents = [];\nvar asapCallbackQueue = CallbackQueue.getPooled();\nvar asapEnqueued = false;\n\nvar batchingStrategy = null;\n\nfunction ensureInjected() {\n !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching ' + 'strategy') : invariant(false) : undefined;\n}\n\nvar NESTED_UPDATES = {\n initialize: function initialize() {\n this.dirtyComponentsLength = dirtyComponents.length;\n },\n close: function close() {\n if (this.dirtyComponentsLength !== dirtyComponents.length) {\n // Additional updates were enqueued by componentDidUpdate handlers or\n // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run\n // these new updates so that if A's componentDidUpdate calls setState on\n // B, B will update before the callback A's updater provided when calling\n // setState.\n dirtyComponents.splice(0, this.dirtyComponentsLength);\n flushBatchedUpdates();\n } else {\n dirtyComponents.length = 0;\n }\n }\n};\n\nvar UPDATE_QUEUEING = {\n initialize: function initialize() {\n this.callbackQueue.reset();\n },\n close: function close() {\n this.callbackQueue.notifyAll();\n }\n};\n\nvar TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];\n\nfunction ReactUpdatesFlushTransaction() {\n this.reinitializeTransaction();\n this.dirtyComponentsLength = null;\n this.callbackQueue = CallbackQueue.getPooled();\n this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled( /* forceHTML */false);\n}\n\nassign(ReactUpdatesFlushTransaction.prototype, Transaction.Mixin, {\n getTransactionWrappers: function getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n destructor: function destructor() {\n this.dirtyComponentsLength = null;\n CallbackQueue.release(this.callbackQueue);\n this.callbackQueue = null;\n ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);\n this.reconcileTransaction = null;\n },\n\n perform: function perform(method, scope, a) {\n // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`\n // with this transaction's wrappers around it.\n return Transaction.Mixin.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);\n }\n});\n\nPooledClass.addPoolingTo(ReactUpdatesFlushTransaction);\n\nfunction batchedUpdates(callback, a, b, c, d, e) {\n ensureInjected();\n batchingStrategy.batchedUpdates(callback, a, b, c, d, e);\n}\n\n/**\n * Array comparator for ReactComponents by mount ordering.\n *\n * @param {ReactComponent} c1 first component you're comparing\n * @param {ReactComponent} c2 second component you're comparing\n * @return {number} Return value usable by Array.prototype.sort().\n */\nfunction mountOrderComparator(c1, c2) {\n return c1._mountOrder - c2._mountOrder;\n}\n\nfunction runBatchedUpdates(transaction) {\n var len = transaction.dirtyComponentsLength;\n !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\\'s stored dirty-components length (%s) to ' + 'match dirty-components array length (%s).', len, dirtyComponents.length) : invariant(false) : undefined;\n\n // Since reconciling a component higher in the owner hierarchy usually (not\n // always -- see shouldComponentUpdate()) will reconcile children, reconcile\n // them before their children by sorting the array.\n dirtyComponents.sort(mountOrderComparator);\n\n for (var i = 0; i < len; i++) {\n // If a component is unmounted before pending changes apply, it will still\n // be here, but we assume that it has cleared its _pendingCallbacks and\n // that performUpdateIfNecessary is a noop.\n var component = dirtyComponents[i];\n\n // If performUpdateIfNecessary happens to enqueue any new updates, we\n // shouldn't execute the callbacks until the next render happens, so\n // stash the callbacks first\n var callbacks = component._pendingCallbacks;\n component._pendingCallbacks = null;\n\n ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction);\n\n if (callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());\n }\n }\n }\n}\n\nvar flushBatchedUpdates = function flushBatchedUpdates() {\n // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents\n // array and perform any updates enqueued by mount-ready handlers (i.e.,\n // componentDidUpdate) but we need to check here too in order to catch\n // updates enqueued by setState callbacks and asap calls.\n while (dirtyComponents.length || asapEnqueued) {\n if (dirtyComponents.length) {\n var transaction = ReactUpdatesFlushTransaction.getPooled();\n transaction.perform(runBatchedUpdates, null, transaction);\n ReactUpdatesFlushTransaction.release(transaction);\n }\n\n if (asapEnqueued) {\n asapEnqueued = false;\n var queue = asapCallbackQueue;\n asapCallbackQueue = CallbackQueue.getPooled();\n queue.notifyAll();\n CallbackQueue.release(queue);\n }\n }\n};\nflushBatchedUpdates = ReactPerf.measure('ReactUpdates', 'flushBatchedUpdates', flushBatchedUpdates);\n\n/**\n * Mark a component as needing a rerender, adding an optional callback to a\n * list of functions which will be executed once the rerender occurs.\n */\nfunction enqueueUpdate(component) {\n ensureInjected();\n\n // Various parts of our code (such as ReactCompositeComponent's\n // _renderValidatedComponent) assume that calls to render aren't nested;\n // verify that that's the case. (This is called by each top-level update\n // function, like setProps, setState, forceUpdate, etc.; creation and\n // destruction of top-level components is guarded in ReactMount.)\n\n if (!batchingStrategy.isBatchingUpdates) {\n batchingStrategy.batchedUpdates(enqueueUpdate, component);\n return;\n }\n\n dirtyComponents.push(component);\n}\n\n/**\n * Enqueue a callback to be run at the end of the current batching cycle. Throws\n * if no updates are currently being performed.\n */\nfunction asap(callback, context) {\n !batchingStrategy.isBatchingUpdates ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates.asap: Can\\'t enqueue an asap callback in a context where' + 'updates are not being batched.') : invariant(false) : undefined;\n asapCallbackQueue.enqueue(callback, context);\n asapEnqueued = true;\n}\n\nvar ReactUpdatesInjection = {\n injectReconcileTransaction: function injectReconcileTransaction(ReconcileTransaction) {\n !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : invariant(false) : undefined;\n ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;\n },\n\n injectBatchingStrategy: function injectBatchingStrategy(_batchingStrategy) {\n !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : invariant(false) : undefined;\n !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : invariant(false) : undefined;\n !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : invariant(false) : undefined;\n batchingStrategy = _batchingStrategy;\n }\n};\n\nvar ReactUpdates = {\n /**\n * React references `ReactReconcileTransaction` using this property in order\n * to allow dependency injection.\n *\n * @internal\n */\n ReactReconcileTransaction: null,\n\n batchedUpdates: batchedUpdates,\n enqueueUpdate: enqueueUpdate,\n flushBatchedUpdates: flushBatchedUpdates,\n injection: ReactUpdatesInjection,\n asap: asap\n};\n\nmodule.exports = ReactUpdates;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RVcGRhdGVzLmpzPzRkNmQiXSwibmFtZXMiOlsiQ2FsbGJhY2tRdWV1ZSIsInJlcXVpcmUiLCJQb29sZWRDbGFzcyIsIlJlYWN0UGVyZiIsIlJlYWN0UmVjb25jaWxlciIsIlRyYW5zYWN0aW9uIiwiYXNzaWduIiwiaW52YXJpYW50IiwiZGlydHlDb21wb25lbnRzIiwiYXNhcENhbGxiYWNrUXVldWUiLCJnZXRQb29sZWQiLCJhc2FwRW5xdWV1ZWQiLCJiYXRjaGluZ1N0cmF0ZWd5IiwiZW5zdXJlSW5qZWN0ZWQiLCJSZWFjdFVwZGF0ZXMiLCJSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwiTkVTVEVEX1VQREFURVMiLCJpbml0aWFsaXplIiwiZGlydHlDb21wb25lbnRzTGVuZ3RoIiwibGVuZ3RoIiwiY2xvc2UiLCJzcGxpY2UiLCJmbHVzaEJhdGNoZWRVcGRhdGVzIiwiVVBEQVRFX1FVRVVFSU5HIiwiY2FsbGJhY2tRdWV1ZSIsInJlc2V0Iiwibm90aWZ5QWxsIiwiVFJBTlNBQ1RJT05fV1JBUFBFUlMiLCJSZWFjdFVwZGF0ZXNGbHVzaFRyYW5zYWN0aW9uIiwicmVpbml0aWFsaXplVHJhbnNhY3Rpb24iLCJyZWNvbmNpbGVUcmFuc2FjdGlvbiIsInByb3RvdHlwZSIsIk1peGluIiwiZ2V0VHJhbnNhY3Rpb25XcmFwcGVycyIsImRlc3RydWN0b3IiLCJyZWxlYXNlIiwicGVyZm9ybSIsIm1ldGhvZCIsInNjb3BlIiwiYSIsImNhbGwiLCJhZGRQb29saW5nVG8iLCJiYXRjaGVkVXBkYXRlcyIsImNhbGxiYWNrIiwiYiIsImMiLCJkIiwiZSIsIm1vdW50T3JkZXJDb21wYXJhdG9yIiwiYzEiLCJjMiIsIl9tb3VudE9yZGVyIiwicnVuQmF0Y2hlZFVwZGF0ZXMiLCJ0cmFuc2FjdGlvbiIsImxlbiIsInNvcnQiLCJpIiwiY29tcG9uZW50IiwiY2FsbGJhY2tzIiwiX3BlbmRpbmdDYWxsYmFja3MiLCJwZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnkiLCJqIiwiZW5xdWV1ZSIsImdldFB1YmxpY0luc3RhbmNlIiwicXVldWUiLCJtZWFzdXJlIiwiZW5xdWV1ZVVwZGF0ZSIsImlzQmF0Y2hpbmdVcGRhdGVzIiwicHVzaCIsImFzYXAiLCJjb250ZXh0IiwiUmVhY3RVcGRhdGVzSW5qZWN0aW9uIiwiaW5qZWN0UmVjb25jaWxlVHJhbnNhY3Rpb24iLCJSZWNvbmNpbGVUcmFuc2FjdGlvbiIsImluamVjdEJhdGNoaW5nU3RyYXRlZ3kiLCJfYmF0Y2hpbmdTdHJhdGVneSIsImluamVjdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLGdCQUFnQixtQkFBQUMsQ0FBUSxFQUFSLENBQXBCO0FBQ0EsSUFBSUMsY0FBYyxtQkFBQUQsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUUsWUFBWSxtQkFBQUYsQ0FBUSxFQUFSLENBQWhCO0FBQ0EsSUFBSUcsa0JBQWtCLG1CQUFBSCxDQUFRLEVBQVIsQ0FBdEI7QUFDQSxJQUFJSSxjQUFjLG1CQUFBSixDQUFRLEVBQVIsQ0FBbEI7O0FBRUEsSUFBSUssU0FBUyxtQkFBQUwsQ0FBUSxFQUFSLENBQWI7QUFDQSxJQUFJTSxZQUFZLG1CQUFBTixDQUFRLEVBQVIsQ0FBaEI7O0FBRUEsSUFBSU8sa0JBQWtCLEVBQXRCO0FBQ0EsSUFBSUMsb0JBQW9CVCxjQUFjVSxTQUFkLEVBQXhCO0FBQ0EsSUFBSUMsZUFBZSxLQUFuQjs7QUFFQSxJQUFJQyxtQkFBbUIsSUFBdkI7O0FBRUEsU0FBU0MsY0FBVCxHQUEwQjtBQUN4QixJQUFFQyxhQUFhQyx5QkFBYixJQUEwQ0gsZ0JBQTVDLElBQWdFSSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NY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QyxHQUF1SEEsVUFBVSxLQUFWLENBQS9JLEdBQWtLWSxTQUFsSztBQUNBTCxpQkFBYUMseUJBQWIsR0FBeUM4RCxvQkFBekM7QUFDRCxHQUp5Qjs7QUFNMUJDLDBCQUF3QixnQ0FBVUMsaUJBQVYsRUFBNkI7QUFDbkQsS0FBQ0EsaUJBQUQsR0FBcUIvRCxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NYLFVBQVUsS0FBVixFQUFpQixnREFBakIsQ0FBeEMsR0FBNkdBLFVBQVUsS0FBVixDQUFsSSxHQUFxSlksU0FBcko7QUFDQSxNQUFFLE9BQU80RCxrQkFBa0JqQyxjQUF6QixLQUE0QyxVQUE5QyxJQUE0RDlCLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1gsVUFBVSxLQUFWLEVBQWlCLHdEQUFqQixDQUF4QyxHQUFxSEEsVUFBVSxLQUFWLENBQWpMLEdBQW9NWSxTQUFwTTtBQUNBLE1BQUUsT0FBTzRELGtCQUFrQlIsaUJBQXpCLEtBQStDLFNBQWpELElBQThEdkQsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDWCxVQUFVLEtBQVYsRUFBaUIsbUVBQWpCLENBQXhDLEdBQWdJQSxVQUFVLEtBQVYsQ0FBOUwsR0FBaU5ZLFNBQWpOO0FBQ0FQLHVCQUFtQm1FLGlCQUFuQjtBQUNEO0FBWHlCLENBQTVCOztBQWNBLElBQUlqRSxlQUFlO0FBQ2pCOzs7Ozs7QUFNQUMsNkJBQTJCLElBUFY7O0FBU2pCK0Isa0JBQWdCQSxjQVRDO0FBVWpCd0IsaUJBQWVBLGFBVkU7QUFXakI1Qyx1QkFBcUJBLG1CQVhKO0FBWWpCc0QsYUFBV0wscUJBWk07QUFhakJGLFFBQU1BO0FBYlcsQ0FBbkI7O0FBZ0JBUSxPQUFPQyxPQUFQLEdBQWlCcEUsWUFBakIsQyIsImZpbGUiOiI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdFVwZGF0ZXNcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBDYWxsYmFja1F1ZXVlID0gcmVxdWlyZSgnLi9DYWxsYmFja1F1ZXVlJyk7XG52YXIgUG9vbGVkQ2xhc3MgPSByZXF1aXJlKCcuL1Bvb2xlZENsYXNzJyk7XG52YXIgUmVhY3RQZXJmID0gcmVxdWlyZSgnLi9SZWFjdFBlcmYnKTtcbnZhciBSZWFjdFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0UmVjb25jaWxlcicpO1xudmFyIFRyYW5zYWN0aW9uID0gcmVxdWlyZSgnLi9UcmFuc2FjdGlvbicpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbnZhciBkaXJ0eUNvbXBvbmVudHMgPSBbXTtcbnZhciBhc2FwQ2FsbGJhY2tRdWV1ZSA9IENhbGxiYWNrUXVldWUuZ2V0UG9vbGVkKCk7XG52YXIgYXNhcEVucXVldWVkID0gZmFsc2U7XG5cbnZhciBiYXRjaGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuZnVuY3Rpb24gZW5zdXJlSW5qZWN0ZWQoKSB7XG4gICEoUmVhY3RVcGRhdGVzLlJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24gJiYgYmF0Y2hpbmdTdHJhdGVneSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RVcGRhdGVzOiBtdXN0IGluamVjdCBhIHJlY29uY2lsZSB0cmFuc2FjdGlvbiBjbGFzcyBhbmQgYmF0Y2hpbmcgJyArICdzdHJhdGVneScpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbn1cblxudmFyIE5FU1RFRF9VUERBVEVTID0ge1xuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5kaXJ0eUNvbXBvbmVudHNMZW5ndGggPSBkaXJ0eUNvbXBvbmVudHMubGVuZ3RoO1xuICB9LFxuICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLmRpcnR5Q29tcG9uZW50c0xlbmd0aCAhPT0gZGlydHlDb21wb25lbnRzLmxlbmd0aCkge1xuICAgICAgLy8gQWRkaXRpb25hbCB1cGRhdGVzIHdlcmUgZW5xdWV1ZWQgYnkgY29tcG9uZW50RGlkVXBkYXRlIGhhbmRsZXJzIG9yXG4gICAgICAvLyBzaW1pbGFyOyBiZWZvcmUgb3VyIG93biBVUERBVEVfUVVFVUVJTkcgd3JhcHBlciBjbG9zZXMsIHdlIHdhbnQgdG8gcnVuXG4gICAgICAvLyB0aGVzZSBuZXcgdXBkYXRlcyBzbyB0aGF0IGlmIEEncyBjb21wb25lbnREaWRVcGRhdGUgY2FsbHMgc2V0U3RhdGUgb25cbiAgICAgIC8vIEIsIEIgd2lsbCB1cGRhdGUgYmVmb3JlIHRoZSBjYWxsYmFjayBBJ3MgdXBkYXRlciBwcm92aWRlZCB3aGVuIGNhbGxpbmdcbiAgICAgIC8vIHNldFN0YXRlLlxuICAgICAgZGlydHlDb21wb25lbnRzLnNwbGljZSgwLCB0aGlzLmRpcnR5Q29tcG9uZW50c0xlbmd0aCk7XG4gICAgICBmbHVzaEJhdGNoZWRVcGRhdGVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpcnR5Q29tcG9uZW50cy5sZW5ndGggPSAwO1xuICAgIH1cbiAgfVxufTtcblxudmFyIFVQREFURV9RVUVVRUlORyA9IHtcbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuY2FsbGJhY2tRdWV1ZS5yZXNldCgpO1xuICB9LFxuICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuY2FsbGJhY2tRdWV1ZS5ub3RpZnlBbGwoKTtcbiAgfVxufTtcblxudmFyIFRSQU5TQUNUSU9OX1dSQVBQRVJTID0gW05FU1RFRF9VUERBVEVTLCBVUERBVEVfUVVFVUVJTkddO1xuXG5mdW5jdGlvbiBSZWFjdFVwZGF0ZXNGbHVzaFRyYW5zYWN0aW9uKCkge1xuICB0aGlzLnJlaW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XG4gIHRoaXMuZGlydHlDb21wb25lbnRzTGVuZ3RoID0gbnVsbDtcbiAgdGhpcy5jYWxsYmFja1F1ZXVlID0gQ2FsbGJhY2tRdWV1ZS5nZXRQb29sZWQoKTtcbiAgdGhpcy5yZWNvbmNpbGVUcmFuc2FjdGlvbiA9IFJlYWN0VXBkYXRlcy5SZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uLmdldFBvb2xlZCggLyogZm9yY2VIVE1MICovZmFsc2UpO1xufVxuXG5hc3NpZ24oUmVhY3RVcGRhdGVzRmx1c2hUcmFuc2FjdGlvbi5wcm90b3R5cGUsIFRyYW5zYWN0aW9uLk1peGluLCB7XG4gIGdldFRyYW5zYWN0aW9uV3JhcHBlcnM6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gVFJBTlNBQ1RJT05fV1JBUFBFUlM7XG4gIH0sXG5cbiAgZGVzdHJ1Y3RvcjogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZGlydHlDb21wb25lbnRzTGVuZ3RoID0gbnVsbDtcbiAgICBDYWxsYmFja1F1ZXVlLnJlbGVhc2UodGhpcy5jYWxsYmFja1F1ZXVlKTtcbiAgICB0aGlzLmNhbGxiYWNrUXVldWUgPSBudWxsO1xuICAgIFJlYWN0VXBkYXRlcy5SZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uLnJlbGVhc2UodGhpcy5yZWNvbmNpbGVUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5yZWNvbmNpbGVUcmFuc2FjdGlvbiA9IG51bGw7XG4gIH0sXG5cbiAgcGVyZm9ybTogZnVuY3Rpb24gKG1ldGhvZCwgc2NvcGUsIGEpIHtcbiAgICAvLyBFc3NlbnRpYWxseSBjYWxscyBgdGhpcy5yZWNvbmNpbGVUcmFuc2FjdGlvbi5wZXJmb3JtKG1ldGhvZCwgc2NvcGUsIGEpYFxuICAgIC8vIHdpdGggdGhpcyB0cmFuc2FjdGlvbidzIHdyYXBwZXJzIGFyb3VuZCBpdC5cbiAgICByZXR1cm4gVHJhbnNhY3Rpb24uTWl4aW4ucGVyZm9ybS5jYWxsKHRoaXMsIHRoaXMucmVjb25jaWxlVHJhbnNhY3Rpb24ucGVyZm9ybSwgdGhpcy5yZWNvbmNpbGVUcmFuc2FjdGlvbiwgbWV0aG9kLCBzY29wZSwgYSk7XG4gIH1cbn0pO1xuXG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oUmVhY3RVcGRhdGVzRmx1c2hUcmFuc2FjdGlvbik7XG5cbmZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzKGNhbGxiYWNrLCBhLCBiLCBjLCBkLCBlKSB7XG4gIGVuc3VyZUluamVjdGVkKCk7XG4gIGJhdGNoaW5nU3RyYXRlZ3kuYmF0Y2hlZFVwZGF0ZXMoY2FsbGJhY2ssIGEsIGIsIGMsIGQsIGUpO1xufVxuXG4vKipcbiAqIEFycmF5IGNvbXBhcmF0b3IgZm9yIFJlYWN0Q29tcG9uZW50cyBieSBtb3VudCBvcmRlcmluZy5cbiAqXG4gKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjMSBmaXJzdCBjb21wb25lbnQgeW91J3JlIGNvbXBhcmluZ1xuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gYzIgc2Vjb25kIGNvbXBvbmVudCB5b3UncmUgY29tcGFyaW5nXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFJldHVybiB2YWx1ZSB1c2FibGUgYnkgQXJyYXkucHJvdG90eXBlLnNvcnQoKS5cbiAqL1xuZnVuY3Rpb24gbW91bnRPcmRlckNvbXBhcmF0b3IoYzEsIGMyKSB7XG4gIHJldHVybiBjMS5fbW91bnRPcmRlciAtIGMyLl9tb3VudE9yZGVyO1xufVxuXG5mdW5jdGlvbiBydW5CYXRjaGVkVXBkYXRlcyh0cmFuc2FjdGlvbikge1xuICB2YXIgbGVuID0gdHJhbnNhY3Rpb24uZGlydHlDb21wb25lbnRzTGVuZ3RoO1xuICAhKGxlbiA9PT0gZGlydHlDb21wb25lbnRzLmxlbmd0aCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnRXhwZWN0ZWQgZmx1c2ggdHJhbnNhY3Rpb25cXCdzIHN0b3JlZCBkaXJ0eS1jb21wb25lbnRzIGxlbmd0aCAoJXMpIHRvICcgKyAnbWF0Y2ggZGlydHktY29tcG9uZW50cyBhcnJheSBsZW5ndGggKCVzKS4nLCBsZW4sIGRpcnR5Q29tcG9uZW50cy5sZW5ndGgpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAvLyBTaW5jZSByZWNvbmNpbGluZyBhIGNvbXBvbmVudCBoaWdoZXIgaW4gdGhlIG93bmVyIGhpZXJhcmNoeSB1c3VhbGx5IChub3RcbiAgLy8gYWx3YXlzIC0tIHNlZSBzaG91bGRDb21wb25lbnRVcGRhdGUoKSkgd2lsbCByZWNvbmNpbGUgY2hpbGRyZW4sIHJlY29uY2lsZVxuICAvLyB0aGVtIGJlZm9yZSB0aGVpciBjaGlsZHJlbiBieSBzb3J0aW5nIHRoZSBhcnJheS5cbiAgZGlydHlDb21wb25lbnRzLnNvcnQobW91bnRPcmRlckNvbXBhcmF0b3IpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAvLyBJZiBhIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQgYmVmb3JlIHBlbmRpbmcgY2hhbmdlcyBhcHBseSwgaXQgd2lsbCBzdGlsbFxuICAgIC8vIGJlIGhlcmUsIGJ1dCB3ZSBhc3N1bWUgdGhhdCBpdCBoYXMgY2xlYXJlZCBpdHMgX3BlbmRpbmdDYWxsYmFja3MgYW5kXG4gICAgLy8gdGhhdCBwZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnkgaXMgYSBub29wLlxuICAgIHZhciBjb21wb25lbnQgPSBkaXJ0eUNvbXBvbmVudHNbaV07XG5cbiAgICAvLyBJZiBwZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnkgaGFwcGVucyB0byBlbnF1ZXVlIGFueSBuZXcgdXBkYXRlcywgd2VcbiAgICAvLyBzaG91bGRuJ3QgZXhlY3V0ZSB0aGUgY2FsbGJhY2tzIHVudGlsIHRoZSBuZXh0IHJlbmRlciBoYXBwZW5zLCBzb1xuICAgIC8vIHN0YXNoIHRoZSBjYWxsYmFja3MgZmlyc3RcbiAgICB2YXIgY2FsbGJhY2tzID0gY29tcG9uZW50Ll9wZW5kaW5nQ2FsbGJhY2tzO1xuICAgIGNvbXBvbmVudC5fcGVuZGluZ0NhbGxiYWNrcyA9IG51bGw7XG5cbiAgICBSZWFjdFJlY29uY2lsZXIucGVyZm9ybVVwZGF0ZUlmTmVjZXNzYXJ5KGNvbXBvbmVudCwgdHJhbnNhY3Rpb24ucmVjb25jaWxlVHJhbnNhY3Rpb24pO1xuXG4gICAgaWYgKGNhbGxiYWNrcykge1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjYWxsYmFja3MubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uY2FsbGJhY2tRdWV1ZS5lbnF1ZXVlKGNhbGxiYWNrc1tqXSwgY29tcG9uZW50LmdldFB1YmxpY0luc3RhbmNlKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgZmx1c2hCYXRjaGVkVXBkYXRlcyA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gUmVhY3RVcGRhdGVzRmx1c2hUcmFuc2FjdGlvbidzIHdyYXBwZXJzIHdpbGwgY2xlYXIgdGhlIGRpcnR5Q29tcG9uZW50c1xuICAvLyBhcnJheSBhbmQgcGVyZm9ybSBhbnkgdXBkYXRlcyBlbnF1ZXVlZCBieSBtb3VudC1yZWFkeSBoYW5kbGVycyAoaS5lLixcbiAgLy8gY29tcG9uZW50RGlkVXBkYXRlKSBidXQgd2UgbmVlZCB0byBjaGVjayBoZXJlIHRvbyBpbiBvcmRlciB0byBjYXRjaFxuICAvLyB1cGRhdGVzIGVucXVldWVkIGJ5IHNldFN0YXRlIGNhbGxiYWNrcyBhbmQgYXNhcCBjYWxscy5cbiAgd2hpbGUgKGRpcnR5Q29tcG9uZW50cy5sZW5ndGggfHwgYXNhcEVucXVldWVkKSB7XG4gICAgaWYgKGRpcnR5Q29tcG9uZW50cy5sZW5ndGgpIHtcbiAgICAgIHZhciB0cmFuc2FjdGlvbiA9IFJlYWN0VXBkYXRlc0ZsdXNoVHJhbnNhY3Rpb24uZ2V0UG9vbGVkKCk7XG4gICAgICB0cmFuc2FjdGlvbi5wZXJmb3JtKHJ1bkJhdGNoZWRVcGRhdGVzLCBudWxsLCB0cmFuc2FjdGlvbik7XG4gICAgICBSZWFjdFVwZGF0ZXNGbHVzaFRyYW5zYWN0aW9uLnJlbGVhc2UodHJhbnNhY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChhc2FwRW5xdWV1ZWQpIHtcbiAgICAgIGFzYXBFbnF1ZXVlZCA9IGZhbHNlO1xuICAgICAgdmFyIHF1ZXVlID0gYXNhcENhbGxiYWNrUXVldWU7XG4gICAgICBhc2FwQ2FsbGJhY2tRdWV1ZSA9IENhbGxiYWNrUXVldWUuZ2V0UG9vbGVkKCk7XG4gICAgICBxdWV1ZS5ub3RpZnlBbGwoKTtcbiAgICAgIENhbGxiYWNrUXVldWUucmVsZWFzZShxdWV1ZSk7XG4gICAgfVxuICB9XG59O1xuZmx1c2hCYXRjaGVkVXBkYXRlcyA9IFJlYWN0UGVyZi5tZWFzdXJlKCdSZWFjdFVwZGF0ZXMnLCAnZmx1c2hCYXRjaGVkVXBkYXRlcycsIGZsdXNoQmF0Y2hlZFVwZGF0ZXMpO1xuXG4vKipcbiAqIE1hcmsgYSBjb21wb25lbnQgYXMgbmVlZGluZyBhIHJlcmVuZGVyLCBhZGRpbmcgYW4gb3B0aW9uYWwgY2FsbGJhY2sgdG8gYVxuICogbGlzdCBvZiBmdW5jdGlvbnMgd2hpY2ggd2lsbCBiZSBleGVjdXRlZCBvbmNlIHRoZSByZXJlbmRlciBvY2N1cnMuXG4gKi9cbmZ1bmN0aW9uIGVucXVldWVVcGRhdGUoY29tcG9uZW50KSB7XG4gIGVuc3VyZUluamVjdGVkKCk7XG5cbiAgLy8gVmFyaW91cyBwYXJ0cyBvZiBvdXIgY29kZSAoc3VjaCBhcyBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCdzXG4gIC8vIF9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQpIGFzc3VtZSB0aGF0IGNhbGxzIHRvIHJlbmRlciBhcmVuJ3QgbmVzdGVkO1xuICAvLyB2ZXJpZnkgdGhhdCB0aGF0J3MgdGhlIGNhc2UuIChUaGlzIGlzIGNhbGxlZCBieSBlYWNoIHRvcC1sZXZlbCB1cGRhdGVcbiAgLy8gZnVuY3Rpb24sIGxpa2Ugc2V0UHJvcHMsIHNldFN0YXRlLCBmb3JjZVVwZGF0ZSwgZXRjLjsgY3JlYXRpb24gYW5kXG4gIC8vIGRlc3RydWN0aW9uIG9mIHRvcC1sZXZlbCBjb21wb25lbnRzIGlzIGd1YXJkZWQgaW4gUmVhY3RNb3VudC4pXG5cbiAgaWYgKCFiYXRjaGluZ1N0cmF0ZWd5LmlzQmF0Y2hpbmdVcGRhdGVzKSB7XG4gICAgYmF0Y2hpbmdTdHJhdGVneS5iYXRjaGVkVXBkYXRlcyhlbnF1ZXVlVXBkYXRlLCBjb21wb25lbnQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGRpcnR5Q29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCk7XG59XG5cbi8qKlxuICogRW5xdWV1ZSBhIGNhbGxiYWNrIHRvIGJlIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJhdGNoaW5nIGN5Y2xlLiBUaHJvd3NcbiAqIGlmIG5vIHVwZGF0ZXMgYXJlIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuXG4gKi9cbmZ1bmN0aW9uIGFzYXAoY2FsbGJhY2ssIGNvbnRleHQpIHtcbiAgIWJhdGNoaW5nU3RyYXRlZ3kuaXNCYXRjaGluZ1VwZGF0ZXMgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RVcGRhdGVzLmFzYXA6IENhblxcJ3QgZW5xdWV1ZSBhbiBhc2FwIGNhbGxiYWNrIGluIGEgY29udGV4dCB3aGVyZScgKyAndXBkYXRlcyBhcmUgbm90IGJlaW5nIGJhdGNoZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICBhc2FwQ2FsbGJhY2tRdWV1ZS5lbnF1ZXVlKGNhbGxiYWNrLCBjb250ZXh0KTtcbiAgYXNhcEVucXVldWVkID0gdHJ1ZTtcbn1cblxudmFyIFJlYWN0VXBkYXRlc0luamVjdGlvbiA9IHtcbiAgaW5qZWN0UmVjb25jaWxlVHJhbnNhY3Rpb246IGZ1bmN0aW9uIChSZWNvbmNpbGVUcmFuc2FjdGlvbikge1xuICAgICFSZWNvbmNpbGVUcmFuc2FjdGlvbiA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdSZWFjdFVwZGF0ZXM6IG11c3QgcHJvdmlkZSBhIHJlY29uY2lsZSB0cmFuc2FjdGlvbiBjbGFzcycpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICBSZWFjdFVwZGF0ZXMuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbiA9IFJlY29uY2lsZVRyYW5zYWN0aW9uO1xuICB9LFxuXG4gIGluamVjdEJhdGNoaW5nU3RyYXRlZ3k6IGZ1bmN0aW9uIChfYmF0Y2hpbmdTdHJhdGVneSkge1xuICAgICFfYmF0Y2hpbmdTdHJhdGVneSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdSZWFjdFVwZGF0ZXM6IG11c3QgcHJvdmlkZSBhIGJhdGNoaW5nIHN0cmF0ZWd5JykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICEodHlwZW9mIF9iYXRjaGluZ1N0cmF0ZWd5LmJhdGNoZWRVcGRhdGVzID09PSAnZnVuY3Rpb24nKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdSZWFjdFVwZGF0ZXM6IG11c3QgcHJvdmlkZSBhIGJhdGNoZWRVcGRhdGVzKCkgZnVuY3Rpb24nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgISh0eXBlb2YgX2JhdGNoaW5nU3RyYXRlZ3kuaXNCYXRjaGluZ1VwZGF0ZXMgPT09ICdib29sZWFuJykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RVcGRhdGVzOiBtdXN0IHByb3ZpZGUgYW4gaXNCYXRjaGluZ1VwZGF0ZXMgYm9vbGVhbiBhdHRyaWJ1dGUnKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgYmF0Y2hpbmdTdHJhdGVneSA9IF9iYXRjaGluZ1N0cmF0ZWd5O1xuICB9XG59O1xuXG52YXIgUmVhY3RVcGRhdGVzID0ge1xuICAvKipcbiAgICogUmVhY3QgcmVmZXJlbmNlcyBgUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbmAgdXNpbmcgdGhpcyBwcm9wZXJ0eSBpbiBvcmRlclxuICAgKiB0byBhbGxvdyBkZXBlbmRlbmN5IGluamVjdGlvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uOiBudWxsLFxuXG4gIGJhdGNoZWRVcGRhdGVzOiBiYXRjaGVkVXBkYXRlcyxcbiAgZW5xdWV1ZVVwZGF0ZTogZW5xdWV1ZVVwZGF0ZSxcbiAgZmx1c2hCYXRjaGVkVXBkYXRlczogZmx1c2hCYXRjaGVkVXBkYXRlcyxcbiAgaW5qZWN0aW9uOiBSZWFjdFVwZGF0ZXNJbmplY3Rpb24sXG4gIGFzYXA6IGFzYXBcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RVcGRhdGVzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdFVwZGF0ZXMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 55 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CallbackQueue\n */\n\n'use strict';\n\nvar PooledClass = __webpack_require__(56);\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\n\n/**\n * A specialized pseudo-event module to help keep track of components waiting to\n * be notified when their DOM representations are available for use.\n *\n * This implements `PooledClass`, so you should never need to instantiate this.\n * Instead, use `CallbackQueue.getPooled()`.\n *\n * @class ReactMountReady\n * @implements PooledClass\n * @internal\n */\nfunction CallbackQueue() {\n this._callbacks = null;\n this._contexts = null;\n}\n\nassign(CallbackQueue.prototype, {\n\n /**\n * Enqueues a callback to be invoked when `notifyAll` is invoked.\n *\n * @param {function} callback Invoked when `notifyAll` is invoked.\n * @param {?object} context Context to call `callback` with.\n * @internal\n */\n enqueue: function enqueue(callback, context) {\n this._callbacks = this._callbacks || [];\n this._contexts = this._contexts || [];\n this._callbacks.push(callback);\n this._contexts.push(context);\n },\n\n /**\n * Invokes all enqueued callbacks and clears the queue. This is invoked after\n * the DOM representation of a component has been created or updated.\n *\n * @internal\n */\n notifyAll: function notifyAll() {\n var callbacks = this._callbacks;\n var contexts = this._contexts;\n if (callbacks) {\n !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : invariant(false) : undefined;\n this._callbacks = null;\n this._contexts = null;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].call(contexts[i]);\n }\n callbacks.length = 0;\n contexts.length = 0;\n }\n },\n\n /**\n * Resets the internal queue.\n *\n * @internal\n */\n reset: function reset() {\n this._callbacks = null;\n this._contexts = null;\n },\n\n /**\n * `PooledClass` looks for this.\n */\n destructor: function destructor() {\n this.reset();\n }\n\n});\n\nPooledClass.addPoolingTo(CallbackQueue);\n\nmodule.exports = CallbackQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ2FsbGJhY2tRdWV1ZS5qcz9kYTUxIl0sIm5hbWVzIjpbIlBvb2xlZENsYXNzIiwicmVxdWlyZSIsImFzc2lnbiIsImludmFyaWFudCIsIkNhbGxiYWNrUXVldWUiLCJfY2FsbGJhY2tzIiwiX2NvbnRleHRzIiwicHJvdG90eXBlIiwiZW5xdWV1ZSIsImNhbGxiYWNrIiwiY29udGV4dCIsInB1c2giLCJub3RpZnlBbGwiLCJjYWxsYmFja3MiLCJjb250ZXh0cyIsImxlbmd0aCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImkiLCJjYWxsIiwicmVzZXQiLCJkZXN0cnVjdG9yIiwiYWRkUG9vbGluZ1RvIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsY0FBYyxtQkFBQUMsQ0FBUSxFQUFSLENBQWxCOztBQUVBLElBQUlDLFNBQVMsbUJBQUFELENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUUsWUFBWSxtQkFBQUYsQ0FBUSxFQUFSLENBQWhCOztBQUVBOzs7Ozs7Ozs7OztBQVdBLFNBQVNHLGFBQVQsR0FBeUI7QUFDdkIsT0FBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNBLE9BQUtDLFNBQUwsR0FBaUIsSUFBakI7QUFDRDs7QUFFREosT0FBT0UsY0FBY0csU0FBckIsRUFBZ0M7O0FBRTlCOzs7Ozs7O0FBT0FDLFdBQVMsaUJBQVVDLFFBQVYsRUFBb0JDLE9BQXBCLEVBQTZCO0FBQ3BDLFNBQUtMLFVBQUwsR0FBa0IsS0FBS0EsVUFBTCxJQUFtQixFQUFyQztBQUNBLFNBQUtDLFNBQUwsR0FBaUIsS0FBS0EsU0FBTCxJQUFrQixFQUFuQztBQUNBLFNBQUtELFVBQUwsQ0FBZ0JNLElBQWhCLENBQXFCRixRQUFyQjtBQUNBLFNBQUtILFNBQUwsQ0FBZUssSUFBZixDQUFvQkQsT0FBcEI7QUFDRCxHQWQ2Qjs7QUFnQjlCOzs7Ozs7QUFNQUUsYUFBVyxxQkFBWTtBQUNyQixRQUFJQyxZQUFZLEtBQUtSLFVBQXJCO0FBQ0EsUUFBSVMsV0FBVyxLQUFLUixTQUFwQjtBQUNBLFFBQUlPLFNBQUosRUFBZTtBQUNiLFFBQUVBLFVBQVVFLE1BQVYsS0FBcUJELFNBQVNDLE1BQWhDLElBQTBDQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NmLFVBQVUsS0FBVixFQUFpQiwrQ0FBakIsQ0FBeEMsR0FBNEdBLFVBQVUsS0FBVixDQUF0SixHQUF5S2dCLFNBQXpLO0FBQ0EsV0FBS2QsVUFBTCxHQUFrQixJQUFsQjtBQUNBLFdBQUtDLFNBQUwsR0FBaUIsSUFBakI7QUFDQSxXQUFLLElBQUljLElBQUksQ0FBYixFQUFnQkEsSUFBSVAsVUFBVUUsTUFBOUIsRUFBc0NLLEdBQXRDLEVBQTJDO0FBQ3pDUCxrQkFBVU8sQ0FBVixFQUFhQyxJQUFiLENBQWtCUCxTQUFTTSxDQUFULENBQWxCO0FBQ0Q7QUFDRFAsZ0JBQVVFLE1BQVYsR0FBbUIsQ0FBbkI7QUFDQUQsZUFBU0MsTUFBVCxHQUFrQixDQUFsQjtBQUNEO0FBQ0YsR0FuQzZCOztBQXFDOUI7Ozs7O0FBS0FPLFNBQU8saUJBQVk7QUFDakIsU0FBS2pCLFVBQUwsR0FBa0IsSUFBbEI7QUFDQSxTQUFLQyxTQUFMLEdBQWlCLElBQWpCO0FBQ0QsR0E3QzZCOztBQStDOUI7OztBQUdBaUIsY0FBWSxzQkFBWTtBQUN0QixTQUFLRCxLQUFMO0FBQ0Q7O0FBcEQ2QixDQUFoQzs7QUF3REF0QixZQUFZd0IsWUFBWixDQUF5QnBCLGFBQXpCOztBQUVBcUIsT0FBT0MsT0FBUCxHQUFpQnRCLGFBQWpCLEMiLCJmaWxlIjoiNTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgQ2FsbGJhY2tRdWV1ZVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFBvb2xlZENsYXNzID0gcmVxdWlyZSgnLi9Qb29sZWRDbGFzcycpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCBwc2V1ZG8tZXZlbnQgbW9kdWxlIHRvIGhlbHAga2VlcCB0cmFjayBvZiBjb21wb25lbnRzIHdhaXRpbmcgdG9cbiAqIGJlIG5vdGlmaWVkIHdoZW4gdGhlaXIgRE9NIHJlcHJlc2VudGF0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciB1c2UuXG4gKlxuICogVGhpcyBpbXBsZW1lbnRzIGBQb29sZWRDbGFzc2AsIHNvIHlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGlzLlxuICogSW5zdGVhZCwgdXNlIGBDYWxsYmFja1F1ZXVlLmdldFBvb2xlZCgpYC5cbiAqXG4gKiBAY2xhc3MgUmVhY3RNb3VudFJlYWR5XG4gKiBAaW1wbGVtZW50cyBQb29sZWRDbGFzc1xuICogQGludGVybmFsXG4gKi9cbmZ1bmN0aW9uIENhbGxiYWNrUXVldWUoKSB7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IG51bGw7XG4gIHRoaXMuX2NvbnRleHRzID0gbnVsbDtcbn1cblxuYXNzaWduKENhbGxiYWNrUXVldWUucHJvdG90eXBlLCB7XG5cbiAgLyoqXG4gICAqIEVucXVldWVzIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCB3aGVuIGBub3RpZnlBbGxgIGlzIGludm9rZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIEludm9rZWQgd2hlbiBgbm90aWZ5QWxsYCBpcyBpbnZva2VkLlxuICAgKiBAcGFyYW0gez9vYmplY3R9IGNvbnRleHQgQ29udGV4dCB0byBjYWxsIGBjYWxsYmFja2Agd2l0aC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGNvbnRleHQpIHtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwgW107XG4gICAgdGhpcy5fY29udGV4dHMgPSB0aGlzLl9jb250ZXh0cyB8fCBbXTtcbiAgICB0aGlzLl9jYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG4gICAgdGhpcy5fY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgfSxcblxuICAvKipcbiAgICogSW52b2tlcyBhbGwgZW5xdWV1ZWQgY2FsbGJhY2tzIGFuZCBjbGVhcnMgdGhlIHF1ZXVlLiBUaGlzIGlzIGludm9rZWQgYWZ0ZXJcbiAgICogdGhlIERPTSByZXByZXNlbnRhdGlvbiBvZiBhIGNvbXBvbmVudCBoYXMgYmVlbiBjcmVhdGVkIG9yIHVwZGF0ZWQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbm90aWZ5QWxsOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcztcbiAgICB2YXIgY29udGV4dHMgPSB0aGlzLl9jb250ZXh0cztcbiAgICBpZiAoY2FsbGJhY2tzKSB7XG4gICAgICAhKGNhbGxiYWNrcy5sZW5ndGggPT09IGNvbnRleHRzLmxlbmd0aCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnTWlzbWF0Y2hlZCBsaXN0IG9mIGNvbnRleHRzIGluIGNhbGxiYWNrIHF1ZXVlJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5fY2FsbGJhY2tzID0gbnVsbDtcbiAgICAgIHRoaXMuX2NvbnRleHRzID0gbnVsbDtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxiYWNrc1tpXS5jYWxsKGNvbnRleHRzW2ldKTtcbiAgICAgIH1cbiAgICAgIGNhbGxiYWNrcy5sZW5ndGggPSAwO1xuICAgICAgY29udGV4dHMubGVuZ3RoID0gMDtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgcXVldWUuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVzZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9jYWxsYmFja3MgPSBudWxsO1xuICAgIHRoaXMuX2NvbnRleHRzID0gbnVsbDtcbiAgfSxcblxuICAvKipcbiAgICogYFBvb2xlZENsYXNzYCBsb29rcyBmb3IgdGhpcy5cbiAgICovXG4gIGRlc3RydWN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxufSk7XG5cblBvb2xlZENsYXNzLmFkZFBvb2xpbmdUbyhDYWxsYmFja1F1ZXVlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYWxsYmFja1F1ZXVlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9DYWxsYmFja1F1ZXVlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 56 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule PooledClass\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Static poolers. Several custom versions for each potential number of\n * arguments. A completely generic pooler is easy to implement, but would\n * require accessing the `arguments` object. In each of these, `this` refers to\n * the Class itself, not an instance. If any others are needed, simply add them\n * here, or in their own files.\n */\nvar oneArgumentPooler = function oneArgumentPooler(copyFieldsFrom) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, copyFieldsFrom);\n return instance;\n } else {\n return new Klass(copyFieldsFrom);\n }\n};\n\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar threeArgumentPooler = function threeArgumentPooler(a1, a2, a3) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3);\n return instance;\n } else {\n return new Klass(a1, a2, a3);\n }\n};\n\nvar fourArgumentPooler = function fourArgumentPooler(a1, a2, a3, a4) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4);\n }\n};\n\nvar fiveArgumentPooler = function fiveArgumentPooler(a1, a2, a3, a4, a5) {\n var Klass = this;\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2, a3, a4, a5);\n return instance;\n } else {\n return new Klass(a1, a2, a3, a4, a5);\n }\n};\n\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : invariant(false) : undefined;\n instance.destructor();\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = oneArgumentPooler;\n\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances (optional).\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n oneArgumentPooler: oneArgumentPooler,\n twoArgumentPooler: twoArgumentPooler,\n threeArgumentPooler: threeArgumentPooler,\n fourArgumentPooler: fourArgumentPooler,\n fiveArgumentPooler: fiveArgumentPooler\n};\n\nmodule.exports = PooledClass;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUG9vbGVkQ2xhc3MuanM/MjhmNiJdLCJuYW1lcyI6WyJpbnZhcmlhbnQiLCJyZXF1aXJlIiwib25lQXJndW1lbnRQb29sZXIiLCJjb3B5RmllbGRzRnJvbSIsIktsYXNzIiwiaW5zdGFuY2VQb29sIiwibGVuZ3RoIiwiaW5zdGFuY2UiLCJwb3AiLCJjYWxsIiwidHdvQXJndW1lbnRQb29sZXIiLCJhMSIsImEyIiwidGhyZWVBcmd1bWVudFBvb2xlciIsImEzIiwiZm91ckFyZ3VtZW50UG9vbGVyIiwiYTQiLCJmaXZlQXJndW1lbnRQb29sZXIiLCJhNSIsInN0YW5kYXJkUmVsZWFzZXIiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJkZXN0cnVjdG9yIiwicG9vbFNpemUiLCJwdXNoIiwiREVGQVVMVF9QT09MX1NJWkUiLCJERUZBVUxUX1BPT0xFUiIsImFkZFBvb2xpbmdUbyIsIkNvcHlDb25zdHJ1Y3RvciIsInBvb2xlciIsIk5ld0tsYXNzIiwiZ2V0UG9vbGVkIiwicmVsZWFzZSIsIlBvb2xlZENsYXNzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsWUFBWSxtQkFBQUMsQ0FBUSxFQUFSLENBQWhCOztBQUVBOzs7Ozs7O0FBT0EsSUFBSUMsb0JBQW9CLFNBQXBCQSxpQkFBb0IsQ0FBVUMsY0FBVixFQUEwQjtBQUNoRCxNQUFJQyxRQUFRLElBQVo7QUFDQSxNQUFJQSxNQUFNQyxZQUFOLENBQW1CQyxNQUF2QixFQUErQjtBQUM3QixRQUFJQyxXQUFXSCxNQUFNQyxZQUFOLENBQW1CRyxHQUFuQixFQUFmO0FBQ0FKLFVBQU1LLElBQU4sQ0FBV0YsUUFBWCxFQUFxQkosY0FBckI7QUFDQSxXQUFPSSxRQUFQO0FBQ0QsR0FKRCxNQUlP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TUFBSXBCLE1BQU1DLFlBQU4sQ0FBbUJDLE1BQW5CLEdBQTRCRixNQUFNcUIsUUFBdEMsRUFBZ0Q7QUFDOUNyQixVQUFNQyxZQUFOLENBQW1CcUIsSUFBbkIsQ0FBd0JuQixRQUF4QjtBQUNEO0FBQ0YsQ0FQRDs7QUFTQSxJQUFJb0Isb0JBQW9CLEVBQXhCO0FBQ0EsSUFBSUMsaUJBQWlCMUIsaUJBQXJCOztBQUVBOzs7Ozs7Ozs7QUFTQSxJQUFJMkIsZUFBZSxTQUFmQSxZQUFlLENBQVVDLGVBQVYsRUFBMkJDLE1BQTNCLEVBQW1DO0FBQ3BELE1BQUlDLFdBQVdGLGVBQWY7QUFDQUUsV0FBUzNCLFlBQVQsR0FBd0IsRUFBeEI7QUFDQTJCLFdBQVNDLFNBQVQsR0FBcUJGLFVBQVVILGNBQS9CO0FBQ0EsTUFBSSxDQUFDSSxTQUFTUCxRQUFkLEVBQXdCO0FBQ3RCTyxhQUFTUCxRQUFULEdBQW9CRSxpQkFBcEI7QUFDRDtBQUNESyxXQUFTRSxPQUFULEdBQW1CZixnQkFBbkI7QUFDQSxTQUFPYSxRQUFQO0FBQ0QsQ0FURDs7QUFXQSxJQUFJRyxjQUFjO0FBQ2hCTixnQkFBY0EsWUFERTtBQUVoQjNCLHFCQUFtQkEsaUJBRkg7QUFHaEJRLHFCQUFtQkEsaUJBSEg7QUFJaEJHLHVCQUFxQkEsbUJBSkw7QUFLaEJFLHNCQUFvQkEsa0JBTEo7QUFNaEJFLHNCQUFvQkE7QUFOSixDQUFsQjs7QUFTQW1CLE9BQU9DLE9BQVAsR0FBaUJGLFdBQWpCLEMiLCJmaWxlIjoiNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUG9vbGVkQ2xhc3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxuLyoqXG4gKiBTdGF0aWMgcG9vbGVycy4gU2V2ZXJhbCBjdXN0b20gdmVyc2lvbnMgZm9yIGVhY2ggcG90ZW50aWFsIG51bWJlciBvZlxuICogYXJndW1lbnRzLiBBIGNvbXBsZXRlbHkgZ2VuZXJpYyBwb29sZXIgaXMgZWFzeSB0byBpbXBsZW1lbnQsIGJ1dCB3b3VsZFxuICogcmVxdWlyZSBhY2Nlc3NpbmcgdGhlIGBhcmd1bWVudHNgIG9iamVjdC4gSW4gZWFjaCBvZiB0aGVzZSwgYHRoaXNgIHJlZmVycyB0b1xuICogdGhlIENsYXNzIGl0c2VsZiwgbm90IGFuIGluc3RhbmNlLiBJZiBhbnkgb3RoZXJzIGFyZSBuZWVkZWQsIHNpbXBseSBhZGQgdGhlbVxuICogaGVyZSwgb3IgaW4gdGhlaXIgb3duIGZpbGVzLlxuICovXG52YXIgb25lQXJndW1lbnRQb29sZXIgPSBmdW5jdGlvbiAoY29weUZpZWxkc0Zyb20pIHtcbiAgdmFyIEtsYXNzID0gdGhpcztcbiAgaWYgKEtsYXNzLmluc3RhbmNlUG9vbC5sZW5ndGgpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBLbGFzcy5pbnN0YW5jZVBvb2wucG9wKCk7XG4gICAgS2xhc3MuY2FsbChpbnN0YW5jZSwgY29weUZpZWxkc0Zyb20pO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IEtsYXNzKGNvcHlGaWVsZHNGcm9tKTtcbiAgfVxufTtcblxudmFyIHR3b0FyZ3VtZW50UG9vbGVyID0gZnVuY3Rpb24gKGExLCBhMikge1xuICB2YXIgS2xhc3MgPSB0aGlzO1xuICBpZiAoS2xhc3MuaW5zdGFuY2VQb29sLmxlbmd0aCkge1xuICAgIHZhciBpbnN0YW5jZSA9IEtsYXNzLmluc3RhbmNlUG9vbC5wb3AoKTtcbiAgICBLbGFzcy5jYWxsKGluc3RhbmNlLCBhMSwgYTIpO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IEtsYXNzKGExLCBhMik7XG4gIH1cbn07XG5cbnZhciB0aHJlZUFyZ3VtZW50UG9vbGVyID0gZnVuY3Rpb24gKGExLCBhMiwgYTMpIHtcbiAgdmFyIEtsYXNzID0gdGhpcztcbiAgaWYgKEtsYXNzLmluc3RhbmNlUG9vbC5sZW5ndGgpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBLbGFzcy5pbnN0YW5jZVBvb2wucG9wKCk7XG4gICAgS2xhc3MuY2FsbChpbnN0YW5jZSwgYTEsIGEyLCBhMyk7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgS2xhc3MoYTEsIGEyLCBhMyk7XG4gIH1cbn07XG5cbnZhciBmb3VyQXJndW1lbnRQb29sZXIgPSBmdW5jdGlvbiAoYTEsIGEyLCBhMywgYTQpIHtcbiAgdmFyIEtsYXNzID0gdGhpcztcbiAgaWYgKEtsYXNzLmluc3RhbmNlUG9vbC5sZW5ndGgpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBLbGFzcy5pbnN0YW5jZVBvb2wucG9wKCk7XG4gICAgS2xhc3MuY2FsbChpbnN0YW5jZSwgYTEsIGEyLCBhMywgYTQpO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IEtsYXNzKGExLCBhMiwgYTMsIGE0KTtcbiAgfVxufTtcblxudmFyIGZpdmVBcmd1bWVudFBvb2xlciA9IGZ1bmN0aW9uIChhMSwgYTIsIGEzLCBhNCwgYTUpIHtcbiAgdmFyIEtsYXNzID0gdGhpcztcbiAgaWYgKEtsYXNzLmluc3RhbmNlUG9vbC5sZW5ndGgpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBLbGFzcy5pbnN0YW5jZVBvb2wucG9wKCk7XG4gICAgS2xhc3MuY2FsbChpbnN0YW5jZSwgYTEsIGEyLCBhMywgYTQsIGE1KTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBLbGFzcyhhMSwgYTIsIGEzLCBhNCwgYTUpO1xuICB9XG59O1xuXG52YXIgc3RhbmRhcmRSZWxlYXNlciA9IGZ1bmN0aW9uIChpbnN0YW5jZSkge1xuICB2YXIgS2xhc3MgPSB0aGlzO1xuICAhKGluc3RhbmNlIGluc3RhbmNlb2YgS2xhc3MpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1RyeWluZyB0byByZWxlYXNlIGFuIGluc3RhbmNlIGludG8gYSBwb29sIG9mIGEgZGlmZmVyZW50IHR5cGUuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICBpbnN0YW5jZS5kZXN0cnVjdG9yKCk7XG4gIGlmIChLbGFzcy5pbnN0YW5jZVBvb2wubGVuZ3RoIDwgS2xhc3MucG9vbFNpemUpIHtcbiAgICBLbGFzcy5pbnN0YW5jZVBvb2wucHVzaChpbnN0YW5jZSk7XG4gIH1cbn07XG5cbnZhciBERUZBVUxUX1BPT0xfU0laRSA9IDEwO1xudmFyIERFRkFVTFRfUE9PTEVSID0gb25lQXJndW1lbnRQb29sZXI7XG5cbi8qKlxuICogQXVnbWVudHMgYENvcHlDb25zdHJ1Y3RvcmAgdG8gYmUgYSBwb29sYWJsZSBjbGFzcywgYXVnbWVudGluZyBvbmx5IHRoZSBjbGFzc1xuICogaXRzZWxmIChzdGF0aWNhbGx5KSBub3QgYWRkaW5nIGFueSBwcm90b3R5cGljYWwgZmllbGRzLiBBbnkgQ29weUNvbnN0cnVjdG9yXG4gKiB5b3UgZ2l2ZSB0aGlzIG1heSBoYXZlIGEgYHBvb2xTaXplYCBwcm9wZXJ0eSwgYW5kIHdpbGwgbG9vayBmb3IgYVxuICogcHJvdG90eXBpY2FsIGBkZXN0cnVjdG9yYCBvbiBpbnN0YW5jZXMgKG9wdGlvbmFsKS5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBDb3B5Q29uc3RydWN0b3IgQ29uc3RydWN0b3IgdGhhdCBjYW4gYmUgdXNlZCB0byByZXNldC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHBvb2xlciBDdXN0b21pemFibGUgcG9vbGVyLlxuICovXG52YXIgYWRkUG9vbGluZ1RvID0gZnVuY3Rpb24gKENvcHlDb25zdHJ1Y3RvciwgcG9vbGVyKSB7XG4gIHZhciBOZXdLbGFzcyA9IENvcHlDb25zdHJ1Y3RvcjtcbiAgTmV3S2xhc3MuaW5zdGFuY2VQb29sID0gW107XG4gIE5ld0tsYXNzLmdldFBvb2xlZCA9IHBvb2xlciB8fCBERUZBVUxUX1BPT0xFUjtcbiAgaWYgKCFOZXdLbGFzcy5wb29sU2l6ZSkge1xuICAgIE5ld0tsYXNzLnBvb2xTaXplID0gREVGQVVMVF9QT09MX1NJWkU7XG4gIH1cbiAgTmV3S2xhc3MucmVsZWFzZSA9IHN0YW5kYXJkUmVsZWFzZXI7XG4gIHJldHVybiBOZXdLbGFzcztcbn07XG5cbnZhciBQb29sZWRDbGFzcyA9IHtcbiAgYWRkUG9vbGluZ1RvOiBhZGRQb29saW5nVG8sXG4gIG9uZUFyZ3VtZW50UG9vbGVyOiBvbmVBcmd1bWVudFBvb2xlcixcbiAgdHdvQXJndW1lbnRQb29sZXI6IHR3b0FyZ3VtZW50UG9vbGVyLFxuICB0aHJlZUFyZ3VtZW50UG9vbGVyOiB0aHJlZUFyZ3VtZW50UG9vbGVyLFxuICBmb3VyQXJndW1lbnRQb29sZXI6IGZvdXJBcmd1bWVudFBvb2xlcixcbiAgZml2ZUFyZ3VtZW50UG9vbGVyOiBmaXZlQXJndW1lbnRQb29sZXJcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUG9vbGVkQ2xhc3M7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1Bvb2xlZENsYXNzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 57 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Transaction\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\n/**\n * `Transaction` creates a black box that is able to wrap any method such that\n * certain invariants are maintained before and after the method is invoked\n * (Even if an exception is thrown while invoking the wrapped method). Whoever\n * instantiates a transaction can provide enforcers of the invariants at\n * creation time. The `Transaction` class itself will supply one additional\n * automatic invariant for you - the invariant that any transaction instance\n * should not be run while it is already being run. You would typically create a\n * single instance of a `Transaction` for reuse multiple times, that potentially\n * is used to wrap several different methods. Wrappers are extremely simple -\n * they only require implementing two methods.\n *\n * <pre>\n * wrappers (injected at creation time)\n * + +\n * | |\n * +-----------------|--------|--------------+\n * | v | |\n * | +---------------+ | |\n * | +--| wrapper1 |---|----+ |\n * | | +---------------+ v | |\n * | | +-------------+ | |\n * | | +----| wrapper2 |--------+ |\n * | | | +-------------+ | | |\n * | | | | | |\n * | v v v v | wrapper\n * | +---+ +---+ +---------+ +---+ +---+ | invariants\n * perform(anyMethod) | | | | | | | | | | | | maintained\n * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | | | | | | | | | | | |\n * | +---+ +---+ +---------+ +---+ +---+ |\n * | initialize close |\n * +-----------------------------------------+\n * </pre>\n *\n * Use cases:\n * - Preserving the input selection ranges before/after reconciliation.\n * Restoring selection even in the event of an unexpected error.\n * - Deactivating events while rearranging the DOM, preventing blurs/focuses,\n * while guaranteeing that afterwards, the event system is reactivated.\n * - Flushing a queue of collected DOM mutations to the main UI thread after a\n * reconciliation takes place in a worker thread.\n * - Invoking any collected `componentDidUpdate` callbacks after rendering new\n * content.\n * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue\n * to preserve the `scrollTop` (an automatic scroll aware DOM).\n * - (Future use case): Layout calculations before and after DOM updates.\n *\n * Transactional plugin API:\n * - A module that has an `initialize` method that returns any precomputation.\n * - and a `close` method that accepts the precomputation. `close` is invoked\n * when the wrapped process is completed, or has failed.\n *\n * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules\n * that implement `initialize` and `close`.\n * @return {Transaction} Single transaction for reuse in thread.\n *\n * @class Transaction\n */\nvar Mixin = {\n /**\n * Sets up this instance so that it is prepared for collecting metrics. Does\n * so such that this setup method may be used on an instance that is already\n * initialized, in a way that does not consume additional memory upon reuse.\n * That can be useful if you decide to make your subclass of this mixin a\n * \"PooledClass\".\n */\n reinitializeTransaction: function reinitializeTransaction() {\n this.transactionWrappers = this.getTransactionWrappers();\n if (this.wrapperInitData) {\n this.wrapperInitData.length = 0;\n } else {\n this.wrapperInitData = [];\n }\n this._isInTransaction = false;\n },\n\n _isInTransaction: false,\n\n /**\n * @abstract\n * @return {Array<TransactionWrapper>} Array of transaction wrappers.\n */\n getTransactionWrappers: null,\n\n isInTransaction: function isInTransaction() {\n return !!this._isInTransaction;\n },\n\n /**\n * Executes the function within a safety window. Use this for the top level\n * methods that result in large amounts of computation/mutations that would\n * need to be safety checked. The optional arguments helps prevent the need\n * to bind in many cases.\n *\n * @param {function} method Member of scope to call.\n * @param {Object} scope Scope to invoke from.\n * @param {Object?=} a Argument to pass to the method.\n * @param {Object?=} b Argument to pass to the method.\n * @param {Object?=} c Argument to pass to the method.\n * @param {Object?=} d Argument to pass to the method.\n * @param {Object?=} e Argument to pass to the method.\n * @param {Object?=} f Argument to pass to the method.\n *\n * @return {*} Return value from `method`.\n */\n perform: function perform(method, scope, a, b, c, d, e, f) {\n !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there ' + 'is already an outstanding transaction.') : invariant(false) : undefined;\n var errorThrown;\n var ret;\n try {\n this._isInTransaction = true;\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // one of these calls threw.\n errorThrown = true;\n this.initializeAll(0);\n ret = method.call(scope, a, b, c, d, e, f);\n errorThrown = false;\n } finally {\n try {\n if (errorThrown) {\n // If `method` throws, prefer to show that stack trace over any thrown\n // by invoking `closeAll`.\n try {\n this.closeAll(0);\n } catch (err) {}\n } else {\n // Since `method` didn't throw, we don't want to silence the exception\n // here.\n this.closeAll(0);\n }\n } finally {\n this._isInTransaction = false;\n }\n }\n return ret;\n },\n\n initializeAll: function initializeAll(startIndex) {\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n try {\n // Catching errors makes debugging more difficult, so we start with the\n // OBSERVED_ERROR state before overwriting it with the real return value\n // of initialize -- if it's still set to OBSERVED_ERROR in the finally\n // block, it means wrapper.initialize threw.\n this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;\n this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;\n } finally {\n if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {\n // The initializer for wrapper i threw an error; initialize the\n // remaining wrappers but silence any exceptions from them to ensure\n // that the first error is the one to bubble up.\n try {\n this.initializeAll(i + 1);\n } catch (err) {}\n }\n }\n }\n },\n\n /**\n * Invokes each of `this.transactionWrappers.close[i]` functions, passing into\n * them the respective return values of `this.transactionWrappers.init[i]`\n * (`close`rs that correspond to initializers that failed will not be\n * invoked).\n */\n closeAll: function closeAll(startIndex) {\n !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : invariant(false) : undefined;\n var transactionWrappers = this.transactionWrappers;\n for (var i = startIndex; i < transactionWrappers.length; i++) {\n var wrapper = transactionWrappers[i];\n var initData = this.wrapperInitData[i];\n var errorThrown;\n try {\n // Catching errors makes debugging more difficult, so we start with\n // errorThrown set to true before setting it to false after calling\n // close -- if it's still set to true in the finally block, it means\n // wrapper.close threw.\n errorThrown = true;\n if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {\n wrapper.close.call(this, initData);\n }\n errorThrown = false;\n } finally {\n if (errorThrown) {\n // The closer for wrapper i threw an error; close the remaining\n // wrappers but silence any exceptions from them to ensure that the\n // first error is the one to bubble up.\n try {\n this.closeAll(i + 1);\n } catch (e) {}\n }\n }\n }\n this.wrapperInitData.length = 0;\n }\n};\n\nvar Transaction = {\n\n Mixin: Mixin,\n\n /**\n * Token to look for to determine if an error occurred.\n */\n OBSERVED_ERROR: {}\n\n};\n\nmodule.exports = Transaction;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvVHJhbnNhY3Rpb24uanM/Mjk4ZCJdLCJuYW1lcyI6WyJpbnZhcmlhbnQiLCJyZXF1aXJlIiwiTWl4aW4iLCJyZWluaXRpYWxpemVUcmFuc2FjdGlvbiIsInRyYW5zYWN0aW9uV3JhcHBlcnMiLCJnZXRUcmFuc2FjdGlvbldyYXBwZXJzIiwid3JhcHBlckluaXREYXRhIiwibGVuZ3RoIiwiX2lzSW5UcmFuc2FjdGlvbiIsImlzSW5UcmFuc2FjdGlvbiIsInBlcmZvcm0iLCJtZXRob2QiLCJzY29wZSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImVycm9yVGhyb3duIiwicmV0IiwiaW5pdGlhbGl6ZUFsbCIsImNhbGwiLCJjbG9zZUFsbCIsImVyciIsInN0YXJ0SW5kZXgiLCJpIiwid3JhcHBlciIsIlRyYW5zYWN0aW9uIiwiT0JTRVJWRURfRVJST1IiLCJpbml0aWFsaXplIiwiaW5pdERhdGEiLCJjbG9zZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLFlBQVksbUJBQUFDLENBQVEsRUFBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZEQSxJQUFJQyxRQUFRO0FBQ1Y7Ozs7Ozs7QUFPQUMsMkJBQXlCLG1DQUFZO0FBQ25DLFNBQUtDLG1CQUFMLEdBQTJCLEtBQUtDLHNCQUFMLEVBQTNCO0FBQ0EsUUFBSSxLQUFLQyxlQUFULEVBQTBCO0FBQ3hCLFdBQUtBLGVBQUwsQ0FBcUJDLE1BQXJCLEdBQThCLENBQTlCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBS0QsZUFBTCxHQUF1QixFQUF2QjtBQUNEO0FBQ0QsU0FBS0UsZ0JBQUwsR0FBd0IsS0FBeEI7QUFDRCxHQWhCUzs7QUFrQlZBLG9CQUFrQixLQWxCUjs7QUFvQlY7Ozs7QUFJQUgsMEJBQXdCLElBeEJkOztBQTBCVkksbUJBQWlCLDJCQUFZO0FBQzNCLFdBQU8sQ0FBQyxDQUFDLEtBQUtELGdCQUFkO0FBQ0QsR0E1QlM7O0FBOEJWOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQUUsV0FBUyxpQkFBVUMsTUFBVixFQUFrQkMsS0FBbEIsRUFBeUJDLENBQXpCLEVBQTRCQyxDQUE1QixFQUErQkMsQ0FBL0IsRUFBa0NDLENBQWxDLEVBQXFDQyxDQUFyQyxFQUF3Q0MsQ0FBeEMsRUFBMkM7QUFDbEQsS0FBQyxDQUFDLEtBQUtULGVBQUwsRUFBRixHQUEyQlUsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDckIsVUFBVSxLQUFWLEVBQWlCLDBFQUEwRSx3Q0FBM0YsQ0FBeEMsR0FBK0tBLFVBQVUsS0FBVixDQUExTSxHQUE2TnNCLFNBQTdOO0FBQ0EsUUFBSUMsV0FBSjtBQUNBLFFBQUlDLEdBQUo7QUFDQSxRQUFJO0FBQ0YsV0FBS2hCLGdCQUFMLEdBQXdCLElBQXhCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQWUsb0JBQWMsSUFBZDtBQUNBLFdBQUtFLGFBQUwsQ0FBbUIsQ0FBbkI7QUFDQUQsWUFBTWIsT0FBT2UsSUFBUCxDQUFZZCxLQUFaLEVBQW1CQyxDQUFuQixFQUFzQkMsQ0FBdEIsRUFBeUJDLENBQXpCLEVBQTRCQyxDQUE1QixFQUErQkMsQ0FBL0IsRUFBa0NDLENBQWxDLENBQU47QUFDQUssb0JBQWMsS0FBZDtBQUNELEtBVkQsU0FVVTtBQUNSLFVBQUk7QUFDRixZQUFJQSxXQUFKLEVBQWlCO0FBQ2Y7QUFDQTtBQUNBLGNBQUk7QUFDRixpQkFBS0ksUUFBTCxDQUFjLENBQWQ7QUFDRCxXQUZELENBRUUsT0FBT0MsR0FBUCxFQUFZLENBQUU7QUFDakIsU0FORCxNQU1PO0FBQ0w7QUFDQTtBQUNBLGVBQUtELFFBQUwsQ0FBYyxDQUFkO0FBQ0Q7QUFDRixPQVpELFNBWVU7QUFDUixhQUFLbkIsZ0JBQUwsR0FBd0IsS0FBeEI7QUFDRDtBQUNGO0FBQ0QsV0FBT2dCLEdBQVA7QUFDRCxHQS9FUzs7QUFpRlZDLGlCQUFlLHVCQUFVSSxVQUFWLEVBQXNCO0FBQ25DLFFBQUl6QixzQkFBc0IsS0FBS0EsbUJBQS9CO0FBQ0EsU0FBSyxJQUFJMEIsSUFBSUQsVUFBYixFQUF5QkMsSUFBSTFCLG9CQUFvQkcsTUFBakQsRUFBeUR1QixHQUF6RCxFQUE4RDtBQUM1RCxVQUFJQyxVQUFVM0Isb0JBQW9CMEIsQ0FBcEIsQ0FBZDtBQUNBLFVBQUk7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQUt4QixlQUFMLENBQXFCd0IsQ0FBckIsSUFBMEJFLFlBQVlDLGNBQXRDO0FBQ0EsYUFBSzNCLGVBQUwsQ0FBcUJ3QixDQUFyQixJQUEwQkMsUUFBUUcsVUFBUixHQUFxQkgsUUFBUUcsVUFBUixDQUFtQlIsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBckIsR0FBcUQsSUFBL0U7QUFDRCxPQVBELFNBT1U7QUFDUixZQUFJLEtBQUtwQixlQUFMLENBQXFCd0IsQ0FBckIsTUFBNEJFLFlBQVlDLGNBQTVDLEVBQTREO0FBQzFEO0FBQ0E7QUFDQTtBQUNBLGNBQUk7QUFDRixpQkFBS1IsYUFBTCxDQUFtQkssSUFBSSxDQUF2QjtBQUNELFdBRkQsQ0FFRSxPQUFPRixHQUFQLEVBQVksQ0FBRTtBQUNqQjtBQUNGO0FBQ0Y7QUFDRixHQXZHUzs7QUF5R1Y7Ozs7OztBQU1BRCxZQUFVLGtCQUFVRSxVQUFWLEVBQXNCO0FBQzlCLEtBQUMsS0FBS3BCLGVBQUwsRUFBRCxHQUEwQlUsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDckIsVUFBVSxLQUFWLEVBQWlCLHNFQUFqQixDQUF4QyxHQUFtSUEsVUFBVSxLQUFWLENBQTdKLEdBQWdMc0IsU0FBaEw7QUFDQSxRQUFJbEIsc0JBQXNCLEtBQUtBLG1CQUEvQjtBQUNBLFNBQUssSUFBSTBCLElBQUlELFVBQWIsRUFBeUJDLElBQUkxQixvQkFBb0JHLE1BQWpELEVBQXlEdUIsR0FBekQsRUFBOEQ7QUFDNUQsVUFBSUMsVUFBVTNCLG9CQUFvQjBCLENBQXBCLENBQWQ7QUFDQSxVQUFJSyxXQUFXLEtBQUs3QixlQUFMLENBQXFCd0IsQ0FBckIsQ0FBZjtBQUNBLFVBQUlQLFdBQUo7QUFDQSxVQUFJO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsc0JBQWMsSUFBZDtBQUNBLFlBQUlZLGFBQWFILFlBQVlDLGNBQXpCLElBQTJDRixRQUFRSyxLQUF2RCxFQUE4RDtBQUM1REwsa0JBQVFLLEtBQVIsQ0FBY1YsSUFBZCxDQUFtQixJQUFuQixFQUF5QlMsUUFBekI7QUFDRDtBQUNEWixzQkFBYyxLQUFkO0FBQ0QsT0FWRCxTQVVVO0FBQ1IsWUFBSUEsV0FBSixFQUFpQjtBQUNmO0FBQ0E7QUFDQTtBQUNBLGNBQUk7QUFDRixpQkFBS0ksUUFBTCxDQUFjRyxJQUFJLENBQWxCO0FBQ0QsV0FGRCxDQUVFLE9BQU9iLENBQVAsRUFBVSxDQUFFO0FBQ2Y7QUFDRjtBQUNGO0FBQ0QsU0FBS1gsZUFBTCxDQUFxQkMsTUFBckIsR0FBOEIsQ0FBOUI7QUFDRDtBQTVJUyxDQUFaOztBQStJQSxJQUFJeUIsY0FBYzs7QUFFaEI5QixTQUFPQSxLQUZTOztBQUloQjs7O0FBR0ErQixrQkFBZ0I7O0FBUEEsQ0FBbEI7O0FBV0FJLE9BQU9DLE9BQVAsR0FBaUJOLFdBQWpCLEMiLCJmaWxlIjoiNTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgVHJhbnNhY3Rpb25cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxuLyoqXG4gKiBgVHJhbnNhY3Rpb25gIGNyZWF0ZXMgYSBibGFjayBib3ggdGhhdCBpcyBhYmxlIHRvIHdyYXAgYW55IG1ldGhvZCBzdWNoIHRoYXRcbiAqIGNlcnRhaW4gaW52YXJpYW50cyBhcmUgbWFpbnRhaW5lZCBiZWZvcmUgYW5kIGFmdGVyIHRoZSBtZXRob2QgaXMgaW52b2tlZFxuICogKEV2ZW4gaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGlsZSBpbnZva2luZyB0aGUgd3JhcHBlZCBtZXRob2QpLiBXaG9ldmVyXG4gKiBpbnN0YW50aWF0ZXMgYSB0cmFuc2FjdGlvbiBjYW4gcHJvdmlkZSBlbmZvcmNlcnMgb2YgdGhlIGludmFyaWFudHMgYXRcbiAqIGNyZWF0aW9uIHRpbWUuIFRoZSBgVHJhbnNhY3Rpb25gIGNsYXNzIGl0c2VsZiB3aWxsIHN1cHBseSBvbmUgYWRkaXRpb25hbFxuICogYXV0b21hdGljIGludmFyaWFudCBmb3IgeW91IC0gdGhlIGludmFyaWFudCB0aGF0IGFueSB0cmFuc2FjdGlvbiBpbnN0YW5jZVxuICogc2hvdWxkIG5vdCBiZSBydW4gd2hpbGUgaXQgaXMgYWxyZWFkeSBiZWluZyBydW4uIFlvdSB3b3VsZCB0eXBpY2FsbHkgY3JlYXRlIGFcbiAqIHNpbmdsZSBpbnN0YW5jZSBvZiBhIGBUcmFuc2FjdGlvbmAgZm9yIHJldXNlIG11bHRpcGxlIHRpbWVzLCB0aGF0IHBvdGVudGlhbGx5XG4gKiBpcyB1c2VkIHRvIHdyYXAgc2V2ZXJhbCBkaWZmZXJlbnQgbWV0aG9kcy4gV3JhcHBlcnMgYXJlIGV4dHJlbWVseSBzaW1wbGUgLVxuICogdGhleSBvbmx5IHJlcXVpcmUgaW1wbGVtZW50aW5nIHR3byBtZXRob2RzLlxuICpcbiAqIDxwcmU+XG4gKiAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBlcnMgKGluamVjdGVkIGF0IGNyZWF0aW9uIHRpbWUpXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgK1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0rXG4gKiAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgdiAgICAgICAgfCAgICAgICAgICAgICAgfFxuICogICAgICAgICAgICAgICAgICAgIHwgICAgICArLS0tLS0tLS0tLS0tLS0tKyAgIHwgICAgICAgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICB8ICAgKy0tfCAgICB3cmFwcGVyMSAgIHwtLS18LS0tLSsgICAgICAgICB8XG4gKiAgICAgICAgICAgICAgICAgICAgfCAgIHwgICstLS0tLS0tLS0tLS0tLS0rICAgdiAgICB8ICAgICAgICAgfFxuICogICAgICAgICAgICAgICAgICAgIHwgICB8ICAgICAgICAgICstLS0tLS0tLS0tLS0tKyAgfCAgICAgICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICB8ICAgfCAgICAgKy0tLS18ICAgd3JhcHBlcjIgIHwtLS0tLS0tLSsgICB8XG4gKiAgICAgICAgICAgICAgICAgICAgfCAgIHwgICAgIHwgICAgKy0tLS0tLS0tLS0tLS0rICB8ICAgICB8ICAgfFxuICogICAgICAgICAgICAgICAgICAgIHwgICB8ICAgICB8ICAgICAgICAgICAgICAgICAgICAgfCAgICAgfCAgIHxcbiAqICAgICAgICAgICAgICAgICAgICB8ICAgdiAgICAgdiAgICAgICAgICAgICAgICAgICAgIHYgICAgIHYgICB8IHdyYXBwZXJcbiAqICAgICAgICAgICAgICAgICAgICB8ICstLS0rICstLS0rICAgKy0tLS0tLS0tLSsgICArLS0tKyArLS0tKyB8IGludmFyaWFudHNcbiAqIHBlcmZvcm0oYW55TWV0aG9kKSB8IHwgICB8IHwgICB8ICAgfCAgICAgICAgIHwgICB8ICAgfCB8ICAgfCB8IG1haW50YWluZWRcbiAqICstLS0tLS0tLS0tLS0tLS0tLT58LXwtLS18LXwtLS18LS0+fGFueU1ldGhvZHwtLS18LS0tfC18LS0tfC18LS0tLS0tLS0+XG4gKiAgICAgICAgICAgICAgICAgICAgfCB8ICAgfCB8ICAgfCAgIHwgICAgICAgICB8ICAgfCAgIHwgfCAgIHwgfFxuICogICAgICAgICAgICAgICAgICAgIHwgfCAgIHwgfCAgIHwgICB8ICAgICAgICAgfCAgIHwgICB8IHwgICB8IHxcbiAqICAgICAgICAgICAgICAgICAgICB8IHwgICB8IHwgICB8ICAgfCAgICAgICAgIHwgICB8ICAgfCB8ICAgfCB8XG4gKiAgICAgICAgICAgICAgICAgICAgfCArLS0tKyArLS0tKyAgICstLS0tLS0tLS0rICAgKy0tLSsgKy0tLSsgfFxuICogICAgICAgICAgICAgICAgICAgIHwgIGluaXRpYWxpemUgICAgICAgICAgICAgICAgICAgIGNsb3NlICAgIHxcbiAqICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gKiA8L3ByZT5cbiAqXG4gKiBVc2UgY2FzZXM6XG4gKiAtIFByZXNlcnZpbmcgdGhlIGlucHV0IHNlbGVjdGlvbiByYW5nZXMgYmVmb3JlL2FmdGVyIHJlY29uY2lsaWF0aW9uLlxuICogICBSZXN0b3Jpbmcgc2VsZWN0aW9uIGV2ZW4gaW4gdGhlIGV2ZW50IG9mIGFuIHVuZXhwZWN0ZWQgZXJyb3IuXG4gKiAtIERlYWN0aXZhdGluZyBldmVudHMgd2hpbGUgcmVhcnJhbmdpbmcgdGhlIERPTSwgcHJldmVudGluZyBibHVycy9mb2N1c2VzLFxuICogICB3aGlsZSBndWFyYW50ZWVpbmcgdGhhdCBhZnRlcndhcmRzLCB0aGUgZXZlbnQgc3lzdGVtIGlzIHJlYWN0aXZhdGVkLlxuICogLSBGbHVzaGluZyBhIHF1ZXVlIG9mIGNvbGxlY3RlZCBET00gbXV0YXRpb25zIHRvIHRoZSBtYWluIFVJIHRocmVhZCBhZnRlciBhXG4gKiAgIHJlY29uY2lsaWF0aW9uIHRha2VzIHBsYWNlIGluIGEgd29ya2VyIHRocmVhZC5cbiAqIC0gSW52b2tpbmcgYW55IGNvbGxlY3RlZCBgY29tcG9uZW50RGlkVXBkYXRlYCBjYWxsYmFja3MgYWZ0ZXIgcmVuZGVyaW5nIG5ld1xuICogICBjb250ZW50LlxuICogLSAoRnV0dXJlIHVzZSBjYXNlKTogV3JhcHBpbmcgcGFydGljdWxhciBmbHVzaGVzIG9mIHRoZSBgUmVhY3RXb3JrZXJgIHF1ZXVlXG4gKiAgIHRvIHByZXNlcnZlIHRoZSBgc2Nyb2xsVG9wYCAoYW4gYXV0b21hdGljIHNjcm9sbCBhd2FyZSBET00pLlxuICogLSAoRnV0dXJlIHVzZSBjYXNlKTogTGF5b3V0IGNhbGN1bGF0aW9ucyBiZWZvcmUgYW5kIGFmdGVyIERPTSB1cGRhdGVzLlxuICpcbiAqIFRyYW5zYWN0aW9uYWwgcGx1Z2luIEFQSTpcbiAqIC0gQSBtb2R1bGUgdGhhdCBoYXMgYW4gYGluaXRpYWxpemVgIG1ldGhvZCB0aGF0IHJldHVybnMgYW55IHByZWNvbXB1dGF0aW9uLlxuICogLSBhbmQgYSBgY2xvc2VgIG1ldGhvZCB0aGF0IGFjY2VwdHMgdGhlIHByZWNvbXB1dGF0aW9uLiBgY2xvc2VgIGlzIGludm9rZWRcbiAqICAgd2hlbiB0aGUgd3JhcHBlZCBwcm9jZXNzIGlzIGNvbXBsZXRlZCwgb3IgaGFzIGZhaWxlZC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5PFRyYW5zYWN0aW9uYWxXcmFwcGVyPn0gdHJhbnNhY3Rpb25XcmFwcGVyIFdyYXBwZXIgbW9kdWxlc1xuICogdGhhdCBpbXBsZW1lbnQgYGluaXRpYWxpemVgIGFuZCBgY2xvc2VgLlxuICogQHJldHVybiB7VHJhbnNhY3Rpb259IFNpbmdsZSB0cmFuc2FjdGlvbiBmb3IgcmV1c2UgaW4gdGhyZWFkLlxuICpcbiAqIEBjbGFzcyBUcmFuc2FjdGlvblxuICovXG52YXIgTWl4aW4gPSB7XG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoaXMgaW5zdGFuY2Ugc28gdGhhdCBpdCBpcyBwcmVwYXJlZCBmb3IgY29sbGVjdGluZyBtZXRyaWNzLiBEb2VzXG4gICAqIHNvIHN1Y2ggdGhhdCB0aGlzIHNldHVwIG1ldGhvZCBtYXkgYmUgdXNlZCBvbiBhbiBpbnN0YW5jZSB0aGF0IGlzIGFscmVhZHlcbiAgICogaW5pdGlhbGl6ZWQsIGluIGEgd2F5IHRoYXQgZG9lcyBub3QgY29uc3VtZSBhZGRpdGlvbmFsIG1lbW9yeSB1cG9uIHJldXNlLlxuICAgKiBUaGF0IGNhbiBiZSB1c2VmdWwgaWYgeW91IGRlY2lkZSB0byBtYWtlIHlvdXIgc3ViY2xhc3Mgb2YgdGhpcyBtaXhpbiBhXG4gICAqIFwiUG9vbGVkQ2xhc3NcIi5cbiAgICovXG4gIHJlaW5pdGlhbGl6ZVRyYW5zYWN0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy50cmFuc2FjdGlvbldyYXBwZXJzID0gdGhpcy5nZXRUcmFuc2FjdGlvbldyYXBwZXJzKCk7XG4gICAgaWYgKHRoaXMud3JhcHBlckluaXREYXRhKSB7XG4gICAgICB0aGlzLndyYXBwZXJJbml0RGF0YS5sZW5ndGggPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndyYXBwZXJJbml0RGF0YSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLl9pc0luVHJhbnNhY3Rpb24gPSBmYWxzZTtcbiAgfSxcblxuICBfaXNJblRyYW5zYWN0aW9uOiBmYWxzZSxcblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEByZXR1cm4ge0FycmF5PFRyYW5zYWN0aW9uV3JhcHBlcj59IEFycmF5IG9mIHRyYW5zYWN0aW9uIHdyYXBwZXJzLlxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25XcmFwcGVyczogbnVsbCxcblxuICBpc0luVHJhbnNhY3Rpb246IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9pc0luVHJhbnNhY3Rpb247XG4gIH0sXG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIHRoZSBmdW5jdGlvbiB3aXRoaW4gYSBzYWZldHkgd2luZG93LiBVc2UgdGhpcyBmb3IgdGhlIHRvcCBsZXZlbFxuICAgKiBtZXRob2RzIHRoYXQgcmVzdWx0IGluIGxhcmdlIGFtb3VudHMgb2YgY29tcHV0YXRpb24vbXV0YXRpb25zIHRoYXQgd291bGRcbiAgICogbmVlZCB0byBiZSBzYWZldHkgY2hlY2tlZC4gVGhlIG9wdGlvbmFsIGFyZ3VtZW50cyBoZWxwcyBwcmV2ZW50IHRoZSBuZWVkXG4gICAqIHRvIGJpbmQgaW4gbWFueSBjYXNlcy5cbiAgICpcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbWV0aG9kIE1lbWJlciBvZiBzY29wZSB0byBjYWxsLlxuICAgKiBAcGFyYW0ge09iamVjdH0gc2NvcGUgU2NvcGUgdG8gaW52b2tlIGZyb20uXG4gICAqIEBwYXJhbSB7T2JqZWN0Pz19IGEgQXJndW1lbnQgdG8gcGFzcyB0byB0aGUgbWV0aG9kLlxuICAgKiBAcGFyYW0ge09iamVjdD89fSBiIEFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIG1ldGhvZC5cbiAgICogQHBhcmFtIHtPYmplY3Q/PX0gYyBBcmd1bWVudCB0byBwYXNzIHRvIHRoZSBtZXRob2QuXG4gICAqIEBwYXJhbSB7T2JqZWN0Pz19IGQgQXJndW1lbnQgdG8gcGFzcyB0byB0aGUgbWV0aG9kLlxuICAgKiBAcGFyYW0ge09iamVjdD89fSBlIEFyZ3VtZW50IHRvIHBhc3MgdG8gdGhlIG1ldGhvZC5cbiAgICogQHBhcmFtIHtPYmplY3Q/PX0gZiBBcmd1bWVudCB0byBwYXNzIHRvIHRoZSBtZXRob2QuXG4gICAqXG4gICAqIEByZXR1cm4geyp9IFJldHVybiB2YWx1ZSBmcm9tIGBtZXRob2RgLlxuICAgKi9cbiAgcGVyZm9ybTogZnVuY3Rpb24gKG1ldGhvZCwgc2NvcGUsIGEsIGIsIGMsIGQsIGUsIGYpIHtcbiAgICAhIXRoaXMuaXNJblRyYW5zYWN0aW9uKCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnVHJhbnNhY3Rpb24ucGVyZm9ybSguLi4pOiBDYW5ub3QgaW5pdGlhbGl6ZSBhIHRyYW5zYWN0aW9uIHdoZW4gdGhlcmUgJyArICdpcyBhbHJlYWR5IGFuIG91dHN0YW5kaW5nIHRyYW5zYWN0aW9uLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgZXJyb3JUaHJvd247XG4gICAgdmFyIHJldDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5faXNJblRyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgICAgIC8vIENhdGNoaW5nIGVycm9ycyBtYWtlcyBkZWJ1Z2dpbmcgbW9yZSBkaWZmaWN1bHQsIHNvIHdlIHN0YXJ0IHdpdGhcbiAgICAgIC8vIGVycm9yVGhyb3duIHNldCB0byB0cnVlIGJlZm9yZSBzZXR0aW5nIGl0IHRvIGZhbHNlIGFmdGVyIGNhbGxpbmdcbiAgICAgIC8vIGNsb3NlIC0tIGlmIGl0J3Mgc3RpbGwgc2V0IHRvIHRydWUgaW4gdGhlIGZpbmFsbHkgYmxvY2ssIGl0IG1lYW5zXG4gICAgICAvLyBvbmUgb2YgdGhlc2UgY2FsbHMgdGhyZXcuXG4gICAgICBlcnJvclRocm93biA9IHRydWU7XG4gICAgICB0aGlzLmluaXRpYWxpemVBbGwoMCk7XG4gICAgICByZXQgPSBtZXRob2QuY2FsbChzY29wZSwgYSwgYiwgYywgZCwgZSwgZik7XG4gICAgICBlcnJvclRocm93biA9IGZhbHNlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHtcbiAgICAgICAgICAvLyBJZiBgbWV0aG9kYCB0aHJvd3MsIHByZWZlciB0byBzaG93IHRoYXQgc3RhY2sgdHJhY2Ugb3ZlciBhbnkgdGhyb3duXG4gICAgICAgICAgLy8gYnkgaW52b2tpbmcgYGNsb3NlQWxsYC5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUFsbCgwKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gU2luY2UgYG1ldGhvZGAgZGlkbid0IHRocm93LCB3ZSBkb24ndCB3YW50IHRvIHNpbGVuY2UgdGhlIGV4Y2VwdGlvblxuICAgICAgICAgIC8vIGhlcmUuXG4gICAgICAgICAgdGhpcy5jbG9zZUFsbCgwKTtcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5faXNJblRyYW5zYWN0aW9uID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG5cbiAgaW5pdGlhbGl6ZUFsbDogZnVuY3Rpb24gKHN0YXJ0SW5kZXgpIHtcbiAgICB2YXIgdHJhbnNhY3Rpb25XcmFwcGVycyA9IHRoaXMudHJhbnNhY3Rpb25XcmFwcGVycztcbiAgICBmb3IgKHZhciBpID0gc3RhcnRJbmRleDsgaSA8IHRyYW5zYWN0aW9uV3JhcHBlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB3cmFwcGVyID0gdHJhbnNhY3Rpb25XcmFwcGVyc1tpXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIENhdGNoaW5nIGVycm9ycyBtYWtlcyBkZWJ1Z2dpbmcgbW9yZSBkaWZmaWN1bHQsIHNvIHdlIHN0YXJ0IHdpdGggdGhlXG4gICAgICAgIC8vIE9CU0VSVkVEX0VSUk9SIHN0YXRlIGJlZm9yZSBvdmVyd3JpdGluZyBpdCB3aXRoIHRoZSByZWFsIHJldHVybiB2YWx1ZVxuICAgICAgICAvLyBvZiBpbml0aWFsaXplIC0tIGlmIGl0J3Mgc3RpbGwgc2V0IHRvIE9CU0VSVkVEX0VSUk9SIGluIHRoZSBmaW5hbGx5XG4gICAgICAgIC8vIGJsb2NrLCBpdCBtZWFucyB3cmFwcGVyLmluaXRpYWxpemUgdGhyZXcuXG4gICAgICAgIHRoaXMud3JhcHBlckluaXREYXRhW2ldID0gVHJhbnNhY3Rpb24uT0JTRVJWRURfRVJST1I7XG4gICAgICAgIHRoaXMud3JhcHBlckluaXREYXRhW2ldID0gd3JhcHBlci5pbml0aWFsaXplID8gd3JhcHBlci5pbml0aWFsaXplLmNhbGwodGhpcykgOiBudWxsO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlckluaXREYXRhW2ldID09PSBUcmFuc2FjdGlvbi5PQlNFUlZFRF9FUlJPUikge1xuICAgICAgICAgIC8vIFRoZSBpbml0aWFsaXplciBmb3Igd3JhcHBlciBpIHRocmV3IGFuIGVycm9yOyBpbml0aWFsaXplIHRoZVxuICAgICAgICAgIC8vIHJlbWFpbmluZyB3cmFwcGVycyBidXQgc2lsZW5jZSBhbnkgZXhjZXB0aW9ucyBmcm9tIHRoZW0gdG8gZW5zdXJlXG4gICAgICAgICAgLy8gdGhhdCB0aGUgZmlyc3QgZXJyb3IgaXMgdGhlIG9uZSB0byBidWJibGUgdXAuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUFsbChpICsgMSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBJbnZva2VzIGVhY2ggb2YgYHRoaXMudHJhbnNhY3Rpb25XcmFwcGVycy5jbG9zZVtpXWAgZnVuY3Rpb25zLCBwYXNzaW5nIGludG9cbiAgICogdGhlbSB0aGUgcmVzcGVjdGl2ZSByZXR1cm4gdmFsdWVzIG9mIGB0aGlzLnRyYW5zYWN0aW9uV3JhcHBlcnMuaW5pdFtpXWBcbiAgICogKGBjbG9zZWBycyB0aGF0IGNvcnJlc3BvbmQgdG8gaW5pdGlhbGl6ZXJzIHRoYXQgZmFpbGVkIHdpbGwgbm90IGJlXG4gICAqIGludm9rZWQpLlxuICAgKi9cbiAgY2xvc2VBbGw6IGZ1bmN0aW9uIChzdGFydEluZGV4KSB7XG4gICAgIXRoaXMuaXNJblRyYW5zYWN0aW9uKCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnVHJhbnNhY3Rpb24uY2xvc2VBbGwoKTogQ2Fubm90IGNsb3NlIHRyYW5zYWN0aW9uIHdoZW4gbm9uZSBhcmUgb3Blbi4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgdmFyIHRyYW5zYWN0aW9uV3JhcHBlcnMgPSB0aGlzLnRyYW5zYWN0aW9uV3JhcHBlcnM7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0SW5kZXg7IGkgPCB0cmFuc2FjdGlvbldyYXBwZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgd3JhcHBlciA9IHRyYW5zYWN0aW9uV3JhcHBlcnNbaV07XG4gICAgICB2YXIgaW5pdERhdGEgPSB0aGlzLndyYXBwZXJJbml0RGF0YVtpXTtcbiAgICAgIHZhciBlcnJvclRocm93bjtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIENhdGNoaW5nIGVycm9ycyBtYWtlcyBkZWJ1Z2dpbmcgbW9yZSBkaWZmaWN1bHQsIHNvIHdlIHN0YXJ0IHdpdGhcbiAgICAgICAgLy8gZXJyb3JUaHJvd24gc2V0IHRvIHRydWUgYmVmb3JlIHNldHRpbmcgaXQgdG8gZmFsc2UgYWZ0ZXIgY2FsbGluZ1xuICAgICAgICAvLyBjbG9zZSAtLSBpZiBpdCdzIHN0aWxsIHNldCB0byB0cnVlIGluIHRoZSBmaW5hbGx5IGJsb2NrLCBpdCBtZWFuc1xuICAgICAgICAvLyB3cmFwcGVyLmNsb3NlIHRocmV3LlxuICAgICAgICBlcnJvclRocm93biA9IHRydWU7XG4gICAgICAgIGlmIChpbml0RGF0YSAhPT0gVHJhbnNhY3Rpb24uT0JTRVJWRURfRVJST1IgJiYgd3JhcHBlci5jbG9zZSkge1xuICAgICAgICAgIHdyYXBwZXIuY2xvc2UuY2FsbCh0aGlzLCBpbml0RGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgZXJyb3JUaHJvd24gPSBmYWxzZTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChlcnJvclRocm93bikge1xuICAgICAgICAgIC8vIFRoZSBjbG9zZXIgZm9yIHdyYXBwZXIgaSB0aHJldyBhbiBlcnJvcjsgY2xvc2UgdGhlIHJlbWFpbmluZ1xuICAgICAgICAgIC8vIHdyYXBwZXJzIGJ1dCBzaWxlbmNlIGFueSBleGNlcHRpb25zIGZyb20gdGhlbSB0byBlbnN1cmUgdGhhdCB0aGVcbiAgICAgICAgICAvLyBmaXJzdCBlcnJvciBpcyB0aGUgb25lIHRvIGJ1YmJsZSB1cC5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUFsbChpICsgMSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLndyYXBwZXJJbml0RGF0YS5sZW5ndGggPSAwO1xuICB9XG59O1xuXG52YXIgVHJhbnNhY3Rpb24gPSB7XG5cbiAgTWl4aW46IE1peGluLFxuXG4gIC8qKlxuICAgKiBUb2tlbiB0byBsb29rIGZvciB0byBkZXRlcm1pbmUgaWYgYW4gZXJyb3Igb2NjdXJyZWQuXG4gICAqL1xuICBPQlNFUlZFRF9FUlJPUjoge31cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc2FjdGlvbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvVHJhbnNhY3Rpb24uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 58 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule emptyObject\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9lbXB0eU9iamVjdC5qcz9jMjZhIl0sIm5hbWVzIjpbImVtcHR5T2JqZWN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiT2JqZWN0IiwiZnJlZXplIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsY0FBYyxFQUFsQjs7QUFFQSxJQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNDLFNBQU9DLE1BQVAsQ0FBY0wsV0FBZDtBQUNEOztBQUVETSxPQUFPQyxPQUFQLEdBQWlCUCxXQUFqQixDIiwiZmlsZSI6IjU4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGVtcHR5T2JqZWN0XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgZW1wdHlPYmplY3QgPSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgT2JqZWN0LmZyZWV6ZShlbXB0eU9iamVjdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZW1wdHlPYmplY3Q7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvZW1wdHlPYmplY3QuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 59 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule containsNode\n * @typechecks\n */\n\n'use strict';\n\nvar isTextNode = __webpack_require__(60);\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n *\n * @param {?DOMNode} outerNode Outer DOM node.\n * @param {?DOMNode} innerNode Inner DOM node.\n * @return {boolean} True if `outerNode` contains or is `innerNode`.\n */\nfunction containsNode(_x, _x2) {\n var _again = true;\n\n _function: while (_again) {\n var outerNode = _x,\n innerNode = _x2;\n _again = false;\n\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n _x = outerNode;\n _x2 = innerNode.parentNode;\n _again = true;\n continue _function;\n } else if (outerNode.contains) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n }\n}\n\nmodule.exports = containsNode;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9jb250YWluc05vZGUuanM/MDhhNiJdLCJuYW1lcyI6WyJpc1RleHROb2RlIiwicmVxdWlyZSIsImNvbnRhaW5zTm9kZSIsIl94IiwiX3gyIiwiX2FnYWluIiwiX2Z1bmN0aW9uIiwib3V0ZXJOb2RlIiwiaW5uZXJOb2RlIiwicGFyZW50Tm9kZSIsImNvbnRhaW5zIiwiY29tcGFyZURvY3VtZW50UG9zaXRpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsYUFBYSxtQkFBQUMsQ0FBUSxFQUFSLENBQWpCOztBQUVBOztBQUVBOzs7Ozs7O0FBT0EsU0FBU0MsWUFBVCxDQUFzQkMsRUFBdEIsRUFBMEJDLEdBQTFCLEVBQStCO0FBQzdCLE1BQUlDLFNBQVMsSUFBYjs7QUFFQUMsYUFBVyxPQUFPRCxNQUFQLEVBQWU7QUFDeEIsUUFBSUUsWUFBWUosRUFBaEI7QUFBQSxRQUNJSyxZQUFZSixHQURoQjtBQUVBQyxhQUFTLEtBQVQ7O0FBRUEsUUFBSSxDQUFDRSxTQUFELElBQWMsQ0FBQ0MsU0FBbkIsRUFBOEI7QUFDNUIsYUFBTyxLQUFQO0FBQ0QsS0FGRCxNQUVPLElBQUlELGNBQWNDLFNBQWxCLEVBQTZCO0FBQ2xDLGFBQU8sSUFBUDtBQUNELEtBRk0sTUFFQSxJQUFJUixXQUFXTyxTQUFYLENBQUosRUFBMkI7QUFDaEMsYUFBTyxLQUFQO0FBQ0QsS0FGTSxNQUVBLElBQUlQLFdBQVdRLFNBQVgsQ0FBSixFQUEyQjtBQUNoQ0wsV0FBS0ksU0FBTDtBQUNBSCxZQUFNSSxVQUFVQyxVQUFoQjtBQUNBSixlQUFTLElBQVQ7QUFDQSxlQUFTQyxTQUFUO0FBQ0QsS0FMTSxNQUtBLElBQUlDLFVBQVVHLFFBQWQsRUFBd0I7QUFDN0IsYUFBT0gsVUFBVUcsUUFBVixDQUFtQkYsU0FBbkIsQ0FBUDtBQUNELEtBRk0sTUFFQSxJQUFJRCxVQUFVSSx1QkFBZCxFQUF1QztBQUM1QyxhQUFPLENBQUMsRUFBRUosVUFBVUksdUJBQVYsQ0FBa0NILFNBQWxDLElBQStDLEVBQWpELENBQVI7QUFDRCxLQUZNLE1BRUE7QUFDTCxhQUFPLEtBQVA7QUFDRDtBQUNGO0FBQ0Y7O0FBRURJLE9BQU9DLE9BQVAsR0FBaUJYLFlBQWpCIiwiZmlsZSI6IjU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGNvbnRhaW5zTm9kZVxuICogQHR5cGVjaGVja3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpc1RleHROb2RlID0gcmVxdWlyZSgnLi9pc1RleHROb2RlJyk7XG5cbi8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSAqL1xuXG4vKipcbiAqIENoZWNrcyBpZiBhIGdpdmVuIERPTSBub2RlIGNvbnRhaW5zIG9yIGlzIGFub3RoZXIgRE9NIG5vZGUuXG4gKlxuICogQHBhcmFtIHs/RE9NTm9kZX0gb3V0ZXJOb2RlIE91dGVyIERPTSBub2RlLlxuICogQHBhcmFtIHs/RE9NTm9kZX0gaW5uZXJOb2RlIElubmVyIERPTSBub2RlLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb3V0ZXJOb2RlYCBjb250YWlucyBvciBpcyBgaW5uZXJOb2RlYC5cbiAqL1xuZnVuY3Rpb24gY29udGFpbnNOb2RlKF94LCBfeDIpIHtcbiAgdmFyIF9hZ2FpbiA9IHRydWU7XG5cbiAgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7XG4gICAgdmFyIG91dGVyTm9kZSA9IF94LFxuICAgICAgICBpbm5lck5vZGUgPSBfeDI7XG4gICAgX2FnYWluID0gZmFsc2U7XG5cbiAgICBpZiAoIW91dGVyTm9kZSB8fCAhaW5uZXJOb2RlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChvdXRlck5vZGUgPT09IGlubmVyTm9kZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChpc1RleHROb2RlKG91dGVyTm9kZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGlzVGV4dE5vZGUoaW5uZXJOb2RlKSkge1xuICAgICAgX3ggPSBvdXRlck5vZGU7XG4gICAgICBfeDIgPSBpbm5lck5vZGUucGFyZW50Tm9kZTtcbiAgICAgIF9hZ2FpbiA9IHRydWU7XG4gICAgICBjb250aW51ZSBfZnVuY3Rpb247XG4gICAgfSBlbHNlIGlmIChvdXRlck5vZGUuY29udGFpbnMpIHtcbiAgICAgIHJldHVybiBvdXRlck5vZGUuY29udGFpbnMoaW5uZXJOb2RlKTtcbiAgICB9IGVsc2UgaWYgKG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikge1xuICAgICAgcmV0dXJuICEhKG91dGVyTm9kZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihpbm5lck5vZGUpICYgMTYpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29udGFpbnNOb2RlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2NvbnRhaW5zTm9kZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 60 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextNode\n * @typechecks\n */\n\n'use strict';\n\nvar isNode = __webpack_require__(61);\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM text node.\n */\nfunction isTextNode(object) {\n return isNode(object) && object.nodeType == 3;\n}\n\nmodule.exports = isTextNode;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9pc1RleHROb2RlLmpzPzIxYzAiXSwibmFtZXMiOlsiaXNOb2RlIiwicmVxdWlyZSIsImlzVGV4dE5vZGUiLCJvYmplY3QiLCJub2RlVHlwZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxTQUFTLG1CQUFBQyxDQUFRLEVBQVIsQ0FBYjs7QUFFQTs7OztBQUlBLFNBQVNDLFVBQVQsQ0FBb0JDLE1BQXBCLEVBQTRCO0FBQzFCLFNBQU9ILE9BQU9HLE1BQVAsS0FBa0JBLE9BQU9DLFFBQVAsSUFBbUIsQ0FBNUM7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQkosVUFBakIiLCJmaWxlIjoiNjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgaXNUZXh0Tm9kZVxuICogQHR5cGVjaGVja3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpc05vZGUgPSByZXF1aXJlKCcuL2lzTm9kZScpO1xuXG4vKipcbiAqIEBwYXJhbSB7Kn0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2hlY2suXG4gKiBAcmV0dXJuIHtib29sZWFufSBXaGV0aGVyIG9yIG5vdCB0aGUgb2JqZWN0IGlzIGEgRE9NIHRleHQgbm9kZS5cbiAqL1xuZnVuY3Rpb24gaXNUZXh0Tm9kZShvYmplY3QpIHtcbiAgcmV0dXJuIGlzTm9kZShvYmplY3QpICYmIG9iamVjdC5ub2RlVHlwZSA9PSAzO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVGV4dE5vZGU7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvaXNUZXh0Tm9kZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 61 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isNode\n * @typechecks\n */\n\n/**\n * @param {*} object The object to check.\n * @return {boolean} Whether or not the object is a DOM node.\n */\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction isNode(object) {\n return !!(object && (typeof Node === 'function' ? object instanceof Node : (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));\n}\n\nmodule.exports = isNode;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9pc05vZGUuanM/NTZjYSJdLCJuYW1lcyI6WyJpc05vZGUiLCJvYmplY3QiLCJOb2RlIiwibm9kZVR5cGUiLCJub2RlTmFtZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7OztBQUlBOzs7O0FBRUEsU0FBU0EsTUFBVCxDQUFnQkMsTUFBaEIsRUFBd0I7QUFDdEIsU0FBTyxDQUFDLEVBQUVBLFdBQVcsT0FBT0MsSUFBUCxLQUFnQixVQUFoQixHQUE2QkQsa0JBQWtCQyxJQUEvQyxHQUFzRCxRQUFPRCxNQUFQLHlDQUFPQSxNQUFQLE9BQWtCLFFBQWxCLElBQThCLE9BQU9BLE9BQU9FLFFBQWQsS0FBMkIsUUFBekQsSUFBcUUsT0FBT0YsT0FBT0csUUFBZCxLQUEyQixRQUFqSyxDQUFGLENBQVI7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQk4sTUFBakIiLCJmaWxlIjoiNjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgaXNOb2RlXG4gKiBAdHlwZWNoZWNrc1xuICovXG5cbi8qKlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIG9iamVjdCB0byBjaGVjay5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgb3Igbm90IHRoZSBvYmplY3QgaXMgYSBET00gbm9kZS5cbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBpc05vZGUob2JqZWN0KSB7XG4gIHJldHVybiAhIShvYmplY3QgJiYgKHR5cGVvZiBOb2RlID09PSAnZnVuY3Rpb24nID8gb2JqZWN0IGluc3RhbmNlb2YgTm9kZSA6IHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvYmplY3Qubm9kZVR5cGUgPT09ICdudW1iZXInICYmIHR5cGVvZiBvYmplY3Qubm9kZU5hbWUgPT09ICdzdHJpbmcnKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNOb2RlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2lzTm9kZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 62 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule instantiateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactCompositeComponent = __webpack_require__(63);\nvar ReactEmptyComponent = __webpack_require__(68);\nvar ReactNativeComponent = __webpack_require__(69);\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\n// To avoid a cyclic dependency, we create the final class in this module\nvar ReactCompositeComponentWrapper = function ReactCompositeComponentWrapper() {};\nassign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent.Mixin, {\n _instantiateReactComponent: instantiateReactComponent\n});\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Check if the type reference is a known internal type. I.e. not a user\n * provided composite type.\n *\n * @param {function} type\n * @return {boolean} Returns true if this is a valid internal type.\n */\nfunction isInternalComponentType(type) {\n return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';\n}\n\n/**\n * Given a ReactNode, create an instance that will actually be mounted.\n *\n * @param {ReactNode} node\n * @return {object} A new instance of the element's constructor.\n * @protected\n */\nfunction instantiateReactComponent(node) {\n var instance;\n\n if (node === null || node === false) {\n instance = new ReactEmptyComponent(instantiateReactComponent);\n } else if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object') {\n var element = node;\n !(element && (typeof element.type === 'function' || typeof element.type === 'string')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invalid: expected a string (for built-in components) ' + 'or a class/function (for composite components) but got: %s.%s', element.type == null ? element.type : _typeof(element.type), getDeclarationErrorAddendum(element._owner)) : invariant(false) : undefined;\n\n // Special case string values\n if (typeof element.type === 'string') {\n instance = ReactNativeComponent.createInternalComponent(element);\n } else if (isInternalComponentType(element.type)) {\n // This is temporarily available for custom components that are not string\n // representations. I.e. ART. Once those are updated to use the string\n // representation, we can drop this code path.\n instance = new element.type(element);\n } else {\n instance = new ReactCompositeComponentWrapper();\n }\n } else if (typeof node === 'string' || typeof node === 'number') {\n instance = ReactNativeComponent.createInstanceForText(node);\n } else {\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node === 'undefined' ? 'undefined' : _typeof(node)) : invariant(false) : undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof instance.construct === 'function' && typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : undefined;\n }\n\n // Sets up the instance. This can probably just move into the constructor now.\n instance.construct(node);\n\n // These two fields are used by the DOM and ART diffing algorithms\n // respectively. Instead of using expandos on components, we should be\n // storing the state needed by the diffing algorithms elsewhere.\n instance._mountIndex = 0;\n instance._mountImage = null;\n\n if (process.env.NODE_ENV !== 'production') {\n instance._isOwnerNecessary = false;\n instance._warnedAboutRefsInRender = false;\n }\n\n // Internal instances should fully constructed at this point, so they should\n // not get any new fields added to them at this point.\n if (process.env.NODE_ENV !== 'production') {\n if (Object.preventExtensions) {\n Object.preventExtensions(instance);\n }\n }\n\n return instance;\n}\n\nmodule.exports = instantiateReactComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudC5qcz9iOTJhIl0sIm5hbWVzIjpbIlJlYWN0Q29tcG9zaXRlQ29tcG9uZW50IiwicmVxdWlyZSIsIlJlYWN0RW1wdHlDb21wb25lbnQiLCJSZWFjdE5hdGl2ZUNvbXBvbmVudCIsImFzc2lnbiIsImludmFyaWFudCIsIndhcm5pbmciLCJSZWFjdENvbXBvc2l0ZUNvbXBvbmVudFdyYXBwZXIiLCJwcm90b3R5cGUiLCJNaXhpbiIsIl9pbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50IiwiaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsIm93bmVyIiwibmFtZSIsImdldE5hbWUiLCJpc0ludGVybmFsQ29tcG9uZW50VHlwZSIsInR5cGUiLCJtb3VudENvbXBvbmVudCIsInJlY2VpdmVDb21wb25lbnQiLCJub2RlIiwiaW5zdGFuY2UiLCJlbGVtZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiX293bmVyIiwidW5kZWZpbmVkIiwiY3JlYXRlSW50ZXJuYWxDb21wb25lbnQiLCJjcmVhdGVJbnN0YW5jZUZvclRleHQiLCJjb25zdHJ1Y3QiLCJ1bm1vdW50Q29tcG9uZW50IiwiX21vdW50SW5kZXgiLCJfbW91bnRJbWFnZSIsIl9pc093bmVyTmVjZXNzYXJ5IiwiX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyIiwiT2JqZWN0IiwicHJldmVudEV4dGVuc2lvbnMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7Ozs7QUFFQSxJQUFJQSwwQkFBMEIsbUJBQUFDLENBQVEsRUFBUixDQUE5QjtBQUNBLElBQUlDLHNCQUFzQixtQkFBQUQsQ0FBUSxFQUFSLENBQTFCO0FBQ0EsSUFBSUUsdUJB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QyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNGLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q25CLFFBQVEsT0FBT2UsU0FBU1MsU0FBaEIsS0FBOEIsVUFBOUIsSUFBNEMsT0FBT1QsU0FBU0gsY0FBaEIsS0FBbUMsVUFBL0UsSUFBNkYsT0FBT0csU0FBU0YsZ0JBQWhCLEtBQXFDLFVBQWxJLElBQWdKLE9BQU9FLFNBQVNVLGdCQUFoQixLQUFxQyxVQUE3TCxFQUF5TSx1Q0FBek0sQ0FBeEMsR0FBNFJKLFNBQTVSO0FBQ0Q7O0FBRUQ7QUFDQU4sV0FBU1MsU0FBVCxDQUFtQlYsSUFBbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0FDLFdBQVNXLFdBQVQsR0FBdUIsQ0FBdkI7QUFDQVgsV0FBU1ksV0FBVCxHQUF1QixJQUF2Qjs7QUFFQSxNQUFJVixRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNKLGFBQVNhLGlCQUFULEdBQTZCLEtBQTdCO0FBQ0FiLGFBQVNjLHdCQUFULEdBQW9DLEtBQXBDO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBLE1BQUlaLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxRQUFJVyxPQUFPQyxpQkFBWCxFQUE4QjtBQUM1QkQsYUFBT0MsaUJBQVAsQ0FBeUJoQixRQUF6QjtBQUNEO0FBQ0Y7O0FBRUQsU0FBT0EsUUFBUDtBQUNEOztBQUVEaUIsT0FBT0MsT0FBUCxHQUFpQjVCLHlCQUFqQixDIiwiZmlsZSI6IjYyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnRcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RDb21wb3NpdGVDb21wb25lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50Jyk7XG52YXIgUmVhY3RFbXB0eUNvbXBvbmVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbXB0eUNvbXBvbmVudCcpO1xudmFyIFJlYWN0TmF0aXZlQ29tcG9uZW50ID0gcmVxdWlyZSgnLi9SZWFjdE5hdGl2ZUNvbXBvbmVudCcpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxuLy8gVG8gYXZvaWQgYSBjeWNsaWMgZGVwZW5kZW5jeSwgd2UgY3JlYXRlIHRoZSBmaW5hbCBjbGFzcyBpbiB0aGlzIG1vZHVsZVxudmFyIFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50V3JhcHBlciA9IGZ1bmN0aW9uICgpIHt9O1xuYXNzaWduKFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50V3JhcHBlci5wcm90b3R5cGUsIFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50Lk1peGluLCB7XG4gIF9pbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50OiBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50XG59KTtcblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKG93bmVyKSB7XG4gIGlmIChvd25lcikge1xuICAgIHZhciBuYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJyBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgIH1cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHR5cGUgcmVmZXJlbmNlIGlzIGEga25vd24gaW50ZXJuYWwgdHlwZS4gSS5lLiBub3QgYSB1c2VyXG4gKiBwcm92aWRlZCBjb21wb3NpdGUgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSB0eXBlXG4gKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhIHZhbGlkIGludGVybmFsIHR5cGUuXG4gKi9cbmZ1bmN0aW9uIGlzSW50ZXJuYWxDb21wb25lbnRUeXBlKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB0eXBlLnByb3RvdHlwZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHR5cGUucHJvdG90eXBlLm1vdW50Q29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB0eXBlLnByb3RvdHlwZS5yZWNlaXZlQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgUmVhY3ROb2RlLCBjcmVhdGUgYW4gaW5zdGFuY2UgdGhhdCB3aWxsIGFjdHVhbGx5IGJlIG1vdW50ZWQuXG4gKlxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGVcbiAqIEByZXR1cm4ge29iamVjdH0gQSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGVsZW1lbnQncyBjb25zdHJ1Y3Rvci5cbiAqIEBwcm90ZWN0ZWRcbiAqL1xuZnVuY3Rpb24gaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudChub2RlKSB7XG4gIHZhciBpbnN0YW5jZTtcblxuICBpZiAobm9kZSA9PT0gbnVsbCB8fCBub2RlID09PSBmYWxzZSkge1xuICAgIGluc3RhbmNlID0gbmV3IFJlYWN0RW1wdHlDb21wb25lbnQoaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBub2RlO1xuICAgICEoZWxlbWVudCAmJiAodHlwZW9mIGVsZW1lbnQudHlwZSA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgZWxlbWVudC50eXBlID09PSAnc3RyaW5nJykpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0VsZW1lbnQgdHlwZSBpcyBpbnZhbGlkOiBleHBlY3RlZCBhIHN0cmluZyAoZm9yIGJ1aWx0LWluIGNvbXBvbmVudHMpICcgKyAnb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSBjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIGVsZW1lbnQudHlwZSA9PSBudWxsID8gZWxlbWVudC50eXBlIDogdHlwZW9mIGVsZW1lbnQudHlwZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKGVsZW1lbnQuX293bmVyKSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHN0cmluZyB2YWx1ZXNcbiAgICBpZiAodHlwZW9mIGVsZW1lbnQudHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGluc3RhbmNlID0gUmVhY3ROYXRpdmVDb21wb25lbnQuY3JlYXRlSW50ZXJuYWxDb21wb25lbnQoZWxlbWVudCk7XG4gICAgfSBlbHNlIGlmIChpc0ludGVybmFsQ29tcG9uZW50VHlwZShlbGVtZW50LnR5cGUpKSB7XG4gICAgICAvLyBUaGlzIGlzIHRlbXBvcmFyaWx5IGF2YWlsYWJsZSBmb3IgY3VzdG9tIGNvbXBvbmVudHMgdGhhdCBhcmUgbm90IHN0cmluZ1xuICAgICAgLy8gcmVwcmVzZW50YXRpb25zLiBJLmUuIEFSVC4gT25jZSB0aG9zZSBhcmUgdXBkYXRlZCB0byB1c2UgdGhlIHN0cmluZ1xuICAgICAgLy8gcmVwcmVzZW50YXRpb24sIHdlIGNhbiBkcm9wIHRoaXMgY29kZSBwYXRoLlxuICAgICAgaW5zdGFuY2UgPSBuZXcgZWxlbWVudC50eXBlKGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IG5ldyBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudFdyYXBwZXIoKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIG5vZGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBub2RlID09PSAnbnVtYmVyJykge1xuICAgIGluc3RhbmNlID0gUmVhY3ROYXRpdmVDb21wb25lbnQuY3JlYXRlSW5zdGFuY2VGb3JUZXh0KG5vZGUpO1xuICB9IGVsc2Uge1xuICAgICFmYWxzZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdFbmNvdW50ZXJlZCBpbnZhbGlkIFJlYWN0IG5vZGUgb2YgdHlwZSAlcycsIHR5cGVvZiBub2RlKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHR5cGVvZiBpbnN0YW5jZS5jb25zdHJ1Y3QgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluc3RhbmNlLm1vdW50Q29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbnN0YW5jZS5yZWNlaXZlQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbnN0YW5jZS51bm1vdW50Q29tcG9uZW50ID09PSAnZnVuY3Rpb24nLCAnT25seSBSZWFjdCBDb21wb25lbnRzIGNhbiBiZSBtb3VudGVkLicpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gU2V0cyB1cCB0aGUgaW5zdGFuY2UuIFRoaXMgY2FuIHByb2JhYmx5IGp1c3QgbW92ZSBpbnRvIHRoZSBjb25zdHJ1Y3RvciBub3cuXG4gIGluc3RhbmNlLmNvbnN0cnVjdChub2RlKTtcblxuICAvLyBUaGVzZSB0d28gZmllbGRzIGFyZSB1c2VkIGJ5IHRoZSBET00gYW5kIEFSVCBkaWZmaW5nIGFsZ29yaXRobXNcbiAgLy8gcmVzcGVjdGl2ZWx5LiBJbnN0ZWFkIG9mIHVzaW5nIGV4cGFuZG9zIG9uIGNvbXBvbmVudHMsIHdlIHNob3VsZCBiZVxuICAvLyBzdG9yaW5nIHRoZSBzdGF0ZSBuZWVkZWQgYnkgdGhlIGRpZmZpbmcgYWxnb3JpdGhtcyBlbHNld2hlcmUuXG4gIGluc3RhbmNlLl9tb3VudEluZGV4ID0gMDtcbiAgaW5zdGFuY2UuX21vdW50SW1hZ2UgPSBudWxsO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaW5zdGFuY2UuX2lzT3duZXJOZWNlc3NhcnkgPSBmYWxzZTtcbiAgICBpbnN0YW5jZS5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSBmYWxzZTtcbiAgfVxuXG4gIC8vIEludGVybmFsIGluc3RhbmNlcyBzaG91bGQgZnVsbHkgY29uc3RydWN0ZWQgYXQgdGhpcyBwb2ludCwgc28gdGhleSBzaG91bGRcbiAgLy8gbm90IGdldCBhbnkgbmV3IGZpZWxkcyBhZGRlZCB0byB0aGVtIGF0IHRoaXMgcG9pbnQuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucykge1xuICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKGluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 63 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactCompositeComponent\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactComponentEnvironment = __webpack_require__(64);\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactElement = __webpack_require__(42);\nvar ReactInstanceMap = __webpack_require__(47);\nvar ReactPerf = __webpack_require__(18);\nvar ReactPropTypeLocations = __webpack_require__(65);\nvar ReactPropTypeLocationNames = __webpack_require__(66);\nvar ReactReconciler = __webpack_require__(50);\nvar ReactUpdateQueue = __webpack_require__(53);\n\nvar assign = __webpack_require__(39);\nvar emptyObject = __webpack_require__(58);\nvar invariant = __webpack_require__(13);\nvar shouldUpdateReactComponent = __webpack_require__(67);\nvar warning = __webpack_require__(25);\n\nfunction getDeclarationErrorAddendum(component) {\n var owner = component._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nfunction StatelessComponent(Component) {}\nStatelessComponent.prototype.render = function () {\n var Component = ReactInstanceMap.get(this)._currentElement.type;\n return Component(this.props, this.context, this.updater);\n};\n\n/**\n * ------------------ The Life-Cycle of a Composite Component ------------------\n *\n * - constructor: Initialization of state. The instance is now retained.\n * - componentWillMount\n * - render\n * - [children's constructors]\n * - [children's componentWillMount and render]\n * - [children's componentDidMount]\n * - componentDidMount\n *\n * Update Phases:\n * - componentWillReceiveProps (only called if parent updated)\n * - shouldComponentUpdate\n * - componentWillUpdate\n * - render\n * - [children's constructors or receive props phases]\n * - componentDidUpdate\n *\n * - componentWillUnmount\n * - [children's componentWillUnmount]\n * - [children destroyed]\n * - (destroyed): The instance is now blank, released by React and ready for GC.\n *\n * -----------------------------------------------------------------------------\n */\n\n/**\n * An incrementing ID assigned to each component when it is mounted. This is\n * used to enforce the order in which `ReactUpdates` updates dirty components.\n *\n * @private\n */\nvar nextMountID = 1;\n\n/**\n * @lends {ReactCompositeComponent.prototype}\n */\nvar ReactCompositeComponentMixin = {\n\n /**\n * Base constructor for all composite component.\n *\n * @param {ReactElement} element\n * @final\n * @internal\n */\n construct: function construct(element) {\n this._currentElement = element;\n this._rootNodeID = null;\n this._instance = null;\n\n // See ReactUpdateQueue\n this._pendingElement = null;\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n this._renderedComponent = null;\n\n this._context = null;\n this._mountOrder = 0;\n this._topLevelWrapper = null;\n\n // See ReactUpdates and ReactUpdateQueue.\n this._pendingCallbacks = null;\n },\n\n /**\n * Initializes the component, renders markup, and registers event listeners.\n *\n * @param {string} rootID DOM ID of the root node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @return {?string} Rendered markup to be inserted into the DOM.\n * @final\n * @internal\n */\n mountComponent: function mountComponent(rootID, transaction, context) {\n this._context = context;\n this._mountOrder = nextMountID++;\n this._rootNodeID = rootID;\n\n var publicProps = this._processProps(this._currentElement.props);\n var publicContext = this._processContext(context);\n\n var Component = this._currentElement.type;\n\n // Initialize the public class\n var inst;\n var renderedElement;\n\n // This is a way to detect if Component is a stateless arrow function\n // component, which is not newable. It might not be 100% reliable but is\n // something we can do until we start detecting that Component extends\n // React.Component. We already assume that typeof Component === 'function'.\n var canInstantiate = 'prototype' in Component;\n\n if (canInstantiate) {\n if (process.env.NODE_ENV !== 'production') {\n ReactCurrentOwner.current = this;\n try {\n inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n } finally {\n ReactCurrentOwner.current = null;\n }\n } else {\n inst = new Component(publicProps, publicContext, ReactUpdateQueue);\n }\n }\n\n if (!canInstantiate || inst === null || inst === false || ReactElement.isValidElement(inst)) {\n renderedElement = inst;\n inst = new StatelessComponent(Component);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This will throw later in _renderValidatedComponent, but add an early\n // warning now to help debugging\n if (inst.render == null) {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`, returned ' + 'null/false from a stateless component, or tried to render an ' + 'element whose type is a function that isn\\'t a React component.', Component.displayName || Component.name || 'Component') : undefined;\n } else {\n // We support ES6 inheriting from React.Component, the module pattern,\n // and stateless components, but not ES6 classes that don't extend\n process.env.NODE_ENV !== 'production' ? warning(Component.prototype && Component.prototype.isReactComponent || !canInstantiate || !(inst instanceof Component), '%s(...): React component classes must extend React.Component.', Component.displayName || Component.name || 'Component') : undefined;\n }\n }\n\n // These should be set up in the constructor, but as a convenience for\n // simpler class abstractions, we set them up after the fact.\n inst.props = publicProps;\n inst.context = publicContext;\n inst.refs = emptyObject;\n inst.updater = ReactUpdateQueue;\n\n this._instance = inst;\n\n // Store a reference from the instance back to the internal representation\n ReactInstanceMap.set(inst, this);\n\n if (process.env.NODE_ENV !== 'production') {\n // Since plain JS classes are defined without any special initialization\n // logic, we can not catch common errors early. Therefore, we have to\n // catch them here, at initialization time, instead.\n process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined;\n }\n\n var initialState = inst.state;\n if (initialState === undefined) {\n inst.state = initialState = null;\n }\n !((typeof initialState === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n\n if (inst.componentWillMount) {\n inst.componentWillMount();\n // When mounting, calls to `setState` by `componentWillMount` will set\n // `this._pendingStateQueue` without triggering a re-render.\n if (this._pendingStateQueue) {\n inst.state = this._processPendingState(inst.props, inst.context);\n }\n }\n\n // If not a stateless component, we now render\n if (renderedElement === undefined) {\n renderedElement = this._renderValidatedComponent();\n }\n\n this._renderedComponent = this._instantiateReactComponent(renderedElement);\n\n var markup = ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, this._processChildContext(context));\n if (inst.componentDidMount) {\n transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);\n }\n\n return markup;\n },\n\n /**\n * Releases any resources allocated by `mountComponent`.\n *\n * @final\n * @internal\n */\n unmountComponent: function unmountComponent() {\n var inst = this._instance;\n\n if (inst.componentWillUnmount) {\n inst.componentWillUnmount();\n }\n\n ReactReconciler.unmountComponent(this._renderedComponent);\n this._renderedComponent = null;\n this._instance = null;\n\n // Reset pending fields\n // Even if this component is scheduled for another update in ReactUpdates,\n // it would still be ignored because these fields are reset.\n this._pendingStateQueue = null;\n this._pendingReplaceState = false;\n this._pendingForceUpdate = false;\n this._pendingCallbacks = null;\n this._pendingElement = null;\n\n // These fields do not really need to be reset since this object is no\n // longer accessible.\n this._context = null;\n this._rootNodeID = null;\n this._topLevelWrapper = null;\n\n // Delete the reference from the instance to this internal representation\n // which allow the internals to be properly cleaned up even if the user\n // leaks a reference to the public instance.\n ReactInstanceMap.remove(inst);\n\n // Some existing components rely on inst.props even after they've been\n // destroyed (in event handlers).\n // TODO: inst.props = null;\n // TODO: inst.state = null;\n // TODO: inst.context = null;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _maskContext: function _maskContext(context) {\n var maskedContext = null;\n var Component = this._currentElement.type;\n var contextTypes = Component.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n },\n\n /**\n * Filters the context object to only contain keys specified in\n * `contextTypes`, and asserts that they are valid.\n *\n * @param {object} context\n * @return {?object}\n * @private\n */\n _processContext: function _processContext(context) {\n var maskedContext = this._maskContext(context);\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.contextTypes) {\n this._checkPropTypes(Component.contextTypes, maskedContext, ReactPropTypeLocations.context);\n }\n }\n return maskedContext;\n },\n\n /**\n * @param {object} currentContext\n * @return {object}\n * @private\n */\n _processChildContext: function _processChildContext(currentContext) {\n var Component = this._currentElement.type;\n var inst = this._instance;\n var childContext = inst.getChildContext && inst.getChildContext();\n if (childContext) {\n !(_typeof(Component.childContextTypes) === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n if (process.env.NODE_ENV !== 'production') {\n this._checkPropTypes(Component.childContextTypes, childContext, ReactPropTypeLocations.childContext);\n }\n for (var name in childContext) {\n !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : invariant(false) : undefined;\n }\n return assign({}, currentContext, childContext);\n }\n return currentContext;\n },\n\n /**\n * Processes props by setting default values for unspecified props and\n * asserting that the props are valid. Does not mutate its argument; returns\n * a new props object with defaults merged in.\n *\n * @param {object} newProps\n * @return {object}\n * @private\n */\n _processProps: function _processProps(newProps) {\n if (process.env.NODE_ENV !== 'production') {\n var Component = this._currentElement.type;\n if (Component.propTypes) {\n this._checkPropTypes(Component.propTypes, newProps, ReactPropTypeLocations.prop);\n }\n }\n return newProps;\n },\n\n /**\n * Assert that the props are valid\n *\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\n _checkPropTypes: function _checkPropTypes(propTypes, props, location) {\n // TODO: Stop validating prop types here and only use the element\n // validation.\n var componentName = this.getName();\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error;\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n error = propTypes[propName](props, propName, componentName, location);\n } catch (ex) {\n error = ex;\n }\n if (error instanceof Error) {\n // We may want to extend this logic for similar errors in\n // top-level render calls, so I'm abstracting it away into\n // a function to minimize refactoring in the future\n var addendum = getDeclarationErrorAddendum(this);\n\n if (location === ReactPropTypeLocations.prop) {\n // Preface gives us something to blacklist in warning module\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Composite propType: %s%s', error.message, addendum) : undefined;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed Context Types: %s%s', error.message, addendum) : undefined;\n }\n }\n }\n }\n },\n\n receiveComponent: function receiveComponent(nextElement, transaction, nextContext) {\n var prevElement = this._currentElement;\n var prevContext = this._context;\n\n this._pendingElement = null;\n\n this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);\n },\n\n /**\n * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`\n * is set, update the component.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n performUpdateIfNecessary: function performUpdateIfNecessary(transaction) {\n if (this._pendingElement != null) {\n ReactReconciler.receiveComponent(this, this._pendingElement || this._currentElement, transaction, this._context);\n }\n\n if (this._pendingStateQueue !== null || this._pendingForceUpdate) {\n this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);\n }\n },\n\n /**\n * Perform an update to a mounted component. The componentWillReceiveProps and\n * shouldComponentUpdate methods are called, then (assuming the update isn't\n * skipped) the remaining update lifecycle methods are called and the DOM\n * representation is updated.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevParentElement\n * @param {ReactElement} nextParentElement\n * @internal\n * @overridable\n */\n updateComponent: function updateComponent(transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {\n var inst = this._instance;\n\n var nextContext = this._context === nextUnmaskedContext ? inst.context : this._processContext(nextUnmaskedContext);\n var nextProps;\n\n // Distinguish between a props update versus a simple state update\n if (prevParentElement === nextParentElement) {\n // Skip checking prop types again -- we don't read inst.props to avoid\n // warning for DOM component props in this upgrade\n nextProps = nextParentElement.props;\n } else {\n nextProps = this._processProps(nextParentElement.props);\n // An update here will schedule an update but immediately set\n // _pendingStateQueue which will ensure that any state updates gets\n // immediately reconciled instead of waiting for the next batch.\n\n if (inst.componentWillReceiveProps) {\n inst.componentWillReceiveProps(nextProps, nextContext);\n }\n }\n\n var nextState = this._processPendingState(nextProps, nextContext);\n\n var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext);\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : undefined;\n }\n\n if (shouldUpdate) {\n this._pendingForceUpdate = false;\n // Will set `this.props`, `this.state` and `this.context`.\n this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);\n } else {\n // If it's determined that a component should not update, we still want\n // to set props and state but we shortcut the rest of the update.\n this._currentElement = nextParentElement;\n this._context = nextUnmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n }\n },\n\n _processPendingState: function _processPendingState(props, context) {\n var inst = this._instance;\n var queue = this._pendingStateQueue;\n var replace = this._pendingReplaceState;\n this._pendingReplaceState = false;\n this._pendingStateQueue = null;\n\n if (!queue) {\n return inst.state;\n }\n\n if (replace && queue.length === 1) {\n return queue[0];\n }\n\n var nextState = assign({}, replace ? queue[0] : inst.state);\n for (var i = replace ? 1 : 0; i < queue.length; i++) {\n var partial = queue[i];\n assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);\n }\n\n return nextState;\n },\n\n /**\n * Merges new props and state, notifies delegate methods of update and\n * performs update.\n *\n * @param {ReactElement} nextElement Next element\n * @param {object} nextProps Next public object to set as properties.\n * @param {?object} nextState Next object to set as state.\n * @param {?object} nextContext Next public object to set as context.\n * @param {ReactReconcileTransaction} transaction\n * @param {?object} unmaskedContext\n * @private\n */\n _performComponentUpdate: function _performComponentUpdate(nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {\n var inst = this._instance;\n\n var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);\n var prevProps;\n var prevState;\n var prevContext;\n if (hasComponentDidUpdate) {\n prevProps = inst.props;\n prevState = inst.state;\n prevContext = inst.context;\n }\n\n if (inst.componentWillUpdate) {\n inst.componentWillUpdate(nextProps, nextState, nextContext);\n }\n\n this._currentElement = nextElement;\n this._context = unmaskedContext;\n inst.props = nextProps;\n inst.state = nextState;\n inst.context = nextContext;\n\n this._updateRenderedComponent(transaction, unmaskedContext);\n\n if (hasComponentDidUpdate) {\n transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);\n }\n },\n\n /**\n * Call the component's `render` method and update the DOM accordingly.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n _updateRenderedComponent: function _updateRenderedComponent(transaction, context) {\n var prevComponentInstance = this._renderedComponent;\n var prevRenderedElement = prevComponentInstance._currentElement;\n var nextRenderedElement = this._renderValidatedComponent();\n if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {\n ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));\n } else {\n // These two IDs are actually the same! But nothing should rely on that.\n var thisID = this._rootNodeID;\n var prevComponentID = prevComponentInstance._rootNodeID;\n ReactReconciler.unmountComponent(prevComponentInstance);\n\n this._renderedComponent = this._instantiateReactComponent(nextRenderedElement);\n var nextMarkup = ReactReconciler.mountComponent(this._renderedComponent, thisID, transaction, this._processChildContext(context));\n this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n }\n },\n\n /**\n * @protected\n */\n _replaceNodeWithMarkupByID: function _replaceNodeWithMarkupByID(prevComponentID, nextMarkup) {\n ReactComponentEnvironment.replaceNodeWithMarkupByID(prevComponentID, nextMarkup);\n },\n\n /**\n * @protected\n */\n _renderValidatedComponentWithoutOwnerOrContext: function _renderValidatedComponentWithoutOwnerOrContext() {\n var inst = this._instance;\n var renderedComponent = inst.render();\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n renderedComponent = null;\n }\n }\n\n return renderedComponent;\n },\n\n /**\n * @private\n */\n _renderValidatedComponent: function _renderValidatedComponent() {\n var renderedComponent;\n ReactCurrentOwner.current = this;\n try {\n renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext();\n } finally {\n ReactCurrentOwner.current = null;\n }\n !(\n // TODO: An `isValidNode` function would probably be more appropriate\n renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : invariant(false) : undefined;\n return renderedComponent;\n },\n\n /**\n * Lazily allocates the refs object and stores `component` as `ref`.\n *\n * @param {string} ref Reference name.\n * @param {component} component Component to store as `ref`.\n * @final\n * @private\n */\n attachRef: function attachRef(ref, component) {\n var inst = this.getPublicInstance();\n !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : invariant(false) : undefined;\n var publicComponentInstance = component.getPublicInstance();\n if (process.env.NODE_ENV !== 'production') {\n var componentName = component && component.getName ? component.getName() : 'a component';\n process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null, 'Stateless function components cannot be given refs ' + '(See ref \"%s\" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : undefined;\n }\n var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;\n refs[ref] = publicComponentInstance;\n },\n\n /**\n * Detaches a reference name.\n *\n * @param {string} ref Name to dereference.\n * @final\n * @private\n */\n detachRef: function detachRef(ref) {\n var refs = this.getPublicInstance().refs;\n delete refs[ref];\n },\n\n /**\n * Get a text description of the component that can be used to identify it\n * in error messages.\n * @return {string} The name or null.\n * @internal\n */\n getName: function getName() {\n var type = this._currentElement.type;\n var constructor = this._instance && this._instance.constructor;\n return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;\n },\n\n /**\n * Get the publicly accessible representation of this component - i.e. what\n * is exposed by refs and returned by render. Can be null for stateless\n * components.\n *\n * @return {ReactComponent} the public component instance.\n * @internal\n */\n getPublicInstance: function getPublicInstance() {\n var inst = this._instance;\n if (inst instanceof StatelessComponent) {\n return null;\n }\n return inst;\n },\n\n // Stub\n _instantiateReactComponent: null\n\n};\n\nReactPerf.measureMethods(ReactCompositeComponentMixin, 'ReactCompositeComponent', {\n mountComponent: 'mountComponent',\n updateComponent: 'updateComponent',\n _renderValidatedComponent: '_renderValidatedComponent'\n});\n\nvar ReactCompositeComponent = {\n\n Mixin: ReactCompositeComponentMixin\n\n};\n\nmodule.exports = ReactCompositeComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDb21wb3NpdGVDb21wb25lbnQuanM/MjM5YiJdLCJuYW1lcyI6WyJSZWFjdENvbXBvbmVudEVudmlyb25tZW50IiwicmVxdWlyZSIsIlJlYWN0Q3VycmVudE93bmVyIiwiUmVhY3RFbGVtZW50IiwiUmVhY3RJbnN0YW5jZU1hcCIsIlJlYWN0UGVyZiIsIlJlYWN0UHJvcFR5cGVMb2NhdGlvbnMiLCJSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcyIsIlJlYWN0UmVjb25jaWxlciIsIlJlYWN0VXBkYXRlUXVldWUiLCJhc3NpZ24iLCJlbXB0eU9iamVjdCIsImludmFyaWFudCIsInNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50Iiwid2FybmluZyIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsImNvbXBvbmVudCIsIm93bmVyIiwiX2N1cnJlbnRFbGVtZW50IiwiX293bmVyIiwibmFtZSIsImdldE5hbWUiLCJTdGF0ZWxlc3NDb21wb25lbnQiLCJDb21wb25lbnQiLCJwcm90b3R5cGUiLCJyZW5kZXIiLCJnZXQiLCJ0eXBlIiwicHJvcHMiLCJjb250ZXh0IiwidXBkYXRlciIsIm5leHRNb3VudElEIiwiUmVhY3RDb21wb3NpdGVDb21wb25lbnRNaXhpbiIsImNvbnN0cnVjdCIsImVsZW1lbnQiLCJfcm9vdE5vZGVJRCIsIl9pbnN0YW5jZSIsIl9wZW5kaW5nRWxlbWVudCIsIl9wZW5kaW5nU3RhdGVRdWV1ZSIsIl9wZW5kaW5nUmVwbGFjZVN0YXRlIiwiX3BlbmRpbmdGb3JjZVVwZGF0ZSIsIl9yZW5kZXJlZENvbXBvbmVudCIsIl9jb250ZXh0IiwiX21vdW50T3JkZXIiLCJfdG9wTGV2ZWxXcmFwcGVyIiwiX3BlbmRpbmdDYWxsYmFja3MiLCJtb3VudENvbXBvbmVudCIsInJvb3RJRCIsInRyYW5zYWN0aW9uIiwicHVibGljUHJvcHMiLCJfcHJvY2Vzc1Byb3BzIiwicHVibGljQ29udGV4dCIsIl9wcm9jZXNzQ29udGV4dCIsImluc3QiLCJyZW5kZXJlZEVsZW1lbnQiLCJjYW5JbnN0YW50aWF0ZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImN1cnJlbnQiLCJpc1ZhbGlkRWxlbWVudCIsImRpc3BsYXlOYW1lIiwidW5kZWZpbmVkIiwiaXNSZWFjdENvbXBvbmVudCIsInJlZnMiLCJzZXQiLCJnZXRJbml0aWFsU3RhdGUiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsImdldERlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsImNvbnRleHRUeXBlcyIsImNvbXBvbmVudFNob3VsZFVwZGF0ZSIsImNvbXBvbmVudERpZFVubW91bnQiLCJjb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzIiwiaW5pdGlhbFN0YXRlIiwic3RhdGUiLCJBcnJheSIsImlzQXJyYXkiLCJjb21wb25lbnRXaWxsTW91bnQiLCJfcHJvY2Vzc1BlbmRpbmdTdGF0ZSIsIl9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQiLCJfaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCIsIm1hcmt1cCIsIl9wcm9jZXNzQ2hpbGRDb250ZXh0IiwiY29tcG9uZW50RGlkTW91bnQiLCJnZXRSZWFjdE1vdW50UmVhZHkiLCJlbnF1ZXVlIiwidW5tb3VudENvbXBvbmVudCIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlIiwiX21hc2tDb250ZXh0IiwibWFza2VkQ29udGV4dCIsImNvbnRleHROYW1lIiwiX2NoZWNrUHJvcFR5cGVzIiwiY3VycmVudENvbnRleHQiLCJjaGlsZENvbnRleHQiLCJnZXRDaGlsZENvbnRleHQiLCJjaGlsZENvbnRleHRUeXBlcyIsIm5ld1Byb3BzIiwicHJvcCIsImxvY2F0aW9uIiwiY29tcG9uZW50TmFtZSIsInByb3BOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJlcnJvciIsImV4IiwiRXJyb3IiLCJhZGRlbmR1bSIsIm1lc3NhZ2UiLCJyZWNlaXZlQ29tcG9uZW50IiwibmV4dEVsZW1lbnQiLCJuZXh0Q29udGV4dCIsInByZXZFbGVtZW50IiwicHJldkNvbnRleHQiLCJ1cGRhdGVDb21wb25lbnQiLCJwZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnkiLCJwcmV2UGFyZW50RWxlbWVudCIsIm5leHRQYXJlbnRFbGVtZW50IiwicHJldlVubWFza2VkQ29udGV4dCIsIm5leHRVbm1hc2tlZENvbnRleHQiLCJuZXh0UHJvcHMiLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwibmV4dFN0YXRlIiwic2hvdWxkVXBkYXRlIiwic2hvdWxkQ29tcG9uZW50VXBkYXRlIiwiX3BlcmZvcm1Db21wb25lbnRVcGRhdGUiLCJxdWV1ZSIsInJlcGxhY2UiLCJsZW5ndGgiLCJpIiwicGFydGlhbCIsImNhbGwiLCJ1bm1hc2tlZENvbnRleHQiLCJoYXNDb21wb25lbnREaWRVcGRhdGUiLCJCb29sZWFuIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwicHJldlN0YXRlIiwiY29tcG9uZW50V2lsbFVwZGF0ZSIsIl91cGRhdGVSZW5kZXJlZENvbXBvbmVudCIsImJpbmQiLCJwcmV2Q29tcG9uZW50SW5zdGFuY2UiLCJwcmV2UmVuZGVyZWRFbGVtZW50IiwibmV4dFJlbmRlcmVkRWxlbWVudCIsInRoaXNJRCIsInByZXZDb21wb25lbnRJRCIsIm5leHRNYXJrdXAiLCJfcmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRCIsInJlcGxhY2VOb2RlV2l0aE1hcmt1cEJ5SUQiLCJfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50V2l0aG91dE93bmVyT3JDb250ZXh0IiwicmVuZGVyZWRDb21wb25lbnQiLCJfaXNNb2NrRnVuY3Rpb24iLCJhdHRhY2hSZWYiLCJyZWYiLCJnZXRQdWJsaWNJbnN0YW5jZSIsInB1YmxpY0NvbXBvbmVudEluc3RhbmNlIiwiZGV0YWNoUmVmIiwiY29uc3RydWN0b3IiLCJtZWFzdXJlTWV0aG9kcyIsIlJlYWN0Q29tcG9zaXRlQ29t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O0FBQ2hGYyxrQkFBZ0IsZ0JBRGdFO0FBRWhGb0UsbUJBQWlCLGlCQUYrRDtBQUdoRmxDLDZCQUEyQjtBQUhxRCxDQUFsRjs7QUFNQSxJQUFJK0UsMEJBQTBCOztBQUU1QkMsU0FBT2hJOztBQUZxQixDQUE5Qjs7QUFNQWlJLE9BQU9DLE9BQVAsR0FBaUJILHVCQUFqQixDIiwiZmlsZSI6IjYzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudCA9IHJlcXVpcmUoJy4vUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudCcpO1xudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgnLi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG52YXIgUmVhY3RJbnN0YW5jZU1hcCA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZU1hcCcpO1xudmFyIFJlYWN0UGVyZiA9IHJlcXVpcmUoJy4vUmVhY3RQZXJmJyk7XG52YXIgUmVhY3RQcm9wVHlwZUxvY2F0aW9ucyA9IHJlcXVpcmUoJy4vUmVhY3RQcm9wVHlwZUxvY2F0aW9ucycpO1xudmFyIFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzID0gcmVxdWlyZSgnLi9SZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcycpO1xudmFyIFJlYWN0UmVjb25jaWxlciA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVyJyk7XG52YXIgUmVhY3RVcGRhdGVRdWV1ZSA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVRdWV1ZScpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgZW1wdHlPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eU9iamVjdCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpIHtcbiAgdmFyIG93bmVyID0gY29tcG9uZW50Ll9jdXJyZW50RWxlbWVudC5fb3duZXIgfHwgbnVsbDtcbiAgaWYgKG93bmVyKSB7XG4gICAgdmFyIG5hbWUgPSBvd25lci5nZXROYW1lKCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gU3RhdGVsZXNzQ29tcG9uZW50KENvbXBvbmVudCkge31cblN0YXRlbGVzc0NvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgQ29tcG9uZW50ID0gUmVhY3RJbnN0YW5jZU1hcC5nZXQodGhpcykuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG4gIHJldHVybiBDb21wb25lbnQodGhpcy5wcm9wcywgdGhpcy5jb250ZXh0LCB0aGlzLnVwZGF0ZXIpO1xufTtcblxuLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0gVGhlIExpZmUtQ3ljbGUgb2YgYSBDb21wb3NpdGUgQ29tcG9uZW50IC0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIC0gY29uc3RydWN0b3I6IEluaXRpYWxpemF0aW9uIG9mIHN0YXRlLiBUaGUgaW5zdGFuY2UgaXMgbm93IHJldGFpbmVkLlxuICogICAtIGNvbXBvbmVudFdpbGxNb3VudFxuICogICAtIHJlbmRlclxuICogICAtIFtjaGlsZHJlbidzIGNvbnN0cnVjdG9yc11cbiAqICAgICAtIFtjaGlsZHJlbidzIGNvbXBvbmVudFdpbGxNb3VudCBhbmQgcmVuZGVyXVxuICogICAgIC0gW2NoaWxkcmVuJ3MgY29tcG9uZW50RGlkTW91bnRdXG4gKiAgICAgLSBjb21wb25lbnREaWRNb3VudFxuICpcbiAqICAgICAgIFVwZGF0ZSBQaGFzZXM6XG4gKiAgICAgICAtIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgKG9ubHkgY2FsbGVkIGlmIHBhcmVudCB1cGRhdGVkKVxuICogICAgICAgLSBzaG91bGRDb21wb25lbnRVcGRhdGVcbiAqICAgICAgICAgLSBjb21wb25lbnRXaWxsVXBkYXRlXG4gKiAgICAgICAgICAgLSByZW5kZXJcbiAqICAgICAgICAgICAtIFtjaGlsZHJlbidzIGNvbnN0cnVjdG9ycyBvciByZWNlaXZlIHByb3BzIHBoYXNlc11cbiAqICAgICAgICAgLSBjb21wb25lbnREaWRVcGRhdGVcbiAqXG4gKiAgICAgLSBjb21wb25lbnRXaWxsVW5tb3VudFxuICogICAgIC0gW2NoaWxkcmVuJ3MgY29tcG9uZW50V2lsbFVubW91bnRdXG4gKiAgIC0gW2NoaWxkcmVuIGRlc3Ryb3llZF1cbiAqIC0gKGRlc3Ryb3llZCk6IFRoZSBpbnN0YW5jZSBpcyBub3cgYmxhbmssIHJlbGVhc2VkIGJ5IFJlYWN0IGFuZCByZWFkeSBmb3IgR0MuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIEFuIGluY3JlbWVudGluZyBJRCBhc3NpZ25lZCB0byBlYWNoIGNvbXBvbmVudCB3aGVuIGl0IGlzIG1vdW50ZWQuIFRoaXMgaXNcbiAqIHVzZWQgdG8gZW5mb3JjZSB0aGUgb3JkZXIgaW4gd2hpY2ggYFJlYWN0VXBkYXRlc2AgdXBkYXRlcyBkaXJ0eSBjb21wb25lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbnZhciBuZXh0TW91bnRJRCA9IDE7XG5cbi8qKlxuICogQGxlbmRzIHtSZWFjdENvbXBvc2l0ZUNvbXBvbmVudC5wcm90b3R5cGV9XG4gKi9cbnZhciBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudE1peGluID0ge1xuXG4gIC8qKlxuICAgKiBCYXNlIGNvbnN0cnVjdG9yIGZvciBhbGwgY29tcG9zaXRlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAgICogQGZpbmFsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gZWxlbWVudDtcbiAgICB0aGlzLl9yb290Tm9kZUlEID0gbnVsbDtcbiAgICB0aGlzLl9pbnN0YW5jZSA9IG51bGw7XG5cbiAgICAvLyBTZWUgUmVhY3RVcGRhdGVRdWV1ZVxuICAgIHRoaXMuX3BlbmRpbmdFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nU3RhdGVRdWV1ZSA9IG51bGw7XG4gICAgdGhpcy5fcGVuZGluZ1JlcGxhY2VTdGF0ZSA9IGZhbHNlO1xuICAgIHRoaXMuX3BlbmRpbmdGb3JjZVVwZGF0ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5fcmVuZGVyZWRDb21wb25lbnQgPSBudWxsO1xuXG4gICAgdGhpcy5fY29udGV4dCA9IG51bGw7XG4gICAgdGhpcy5fbW91bnRPcmRlciA9IDA7XG4gICAgdGhpcy5fdG9wTGV2ZWxXcmFwcGVyID0gbnVsbDtcblxuICAgIC8vIFNlZSBSZWFjdFVwZGF0ZXMgYW5kIFJlYWN0VXBkYXRlUXVldWUuXG4gICAgdGhpcy5fcGVuZGluZ0NhbGxiYWNrcyA9IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBjb21wb25lbnQsIHJlbmRlcnMgbWFya3VwLCBhbmQgcmVnaXN0ZXJzIGV2ZW50IGxpc3RlbmVycy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJvb3RJRCBET00gSUQgb2YgdGhlIHJvb3Qgbm9kZS5cbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm4gez9zdHJpbmd9IFJlbmRlcmVkIG1hcmt1cCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBET00uXG4gICAqIEBmaW5hbFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG1vdW50Q29tcG9uZW50OiBmdW5jdGlvbiAocm9vdElELCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHRoaXMuX2NvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMuX21vdW50T3JkZXIgPSBuZXh0TW91bnRJRCsrO1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSByb290SUQ7XG5cbiAgICB2YXIgcHVibGljUHJvcHMgPSB0aGlzLl9wcm9jZXNzUHJvcHModGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHMpO1xuICAgIHZhciBwdWJsaWNDb250ZXh0ID0gdGhpcy5fcHJvY2Vzc0NvbnRleHQoY29udGV4dCk7XG5cbiAgICB2YXIgQ29tcG9uZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcblxuICAgIC8vIEluaXRpYWxpemUgdGhlIHB1YmxpYyBjbGFzc1xuICAgIHZhciBpbnN0O1xuICAgIHZhciByZW5kZXJlZEVsZW1lbnQ7XG5cbiAgICAvLyBUaGlzIGlzIGEgd2F5IHRvIGRldGVjdCBpZiBDb21wb25lbnQgaXMgYSBzdGF0ZWxlc3MgYXJyb3cgZnVuY3Rpb25cbiAgICAvLyBjb21wb25lbnQsIHdoaWNoIGlzIG5vdCBuZXdhYmxlLiBJdCBtaWdodCBub3QgYmUgMTAwJSByZWxpYWJsZSBidXQgaXNcbiAgICAvLyBzb21ldGhpbmcgd2UgY2FuIGRvIHVudGlsIHdlIHN0YXJ0IGRldGVjdGluZyB0aGF0IENvbXBvbmVudCBleHRlbmRzXG4gICAgLy8gUmVhY3QuQ29tcG9uZW50LiBXZSBhbHJlYWR5IGFzc3VtZSB0aGF0IHR5cGVvZiBDb21wb25lbnQgPT09ICdmdW5jdGlvbicuXG4gICAgdmFyIGNhbkluc3RhbnRpYXRlID0gKCdwcm90b3R5cGUnIGluIENvbXBvbmVudCk7XG5cbiAgICBpZiAoY2FuSW5zdGFudGlhdGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSB0aGlzO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGluc3QgPSBuZXcgQ29tcG9uZW50KHB1YmxpY1Byb3BzLCBwdWJsaWNDb250ZXh0LCBSZWFjdFVwZGF0ZVF1ZXVlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdCA9IG5ldyBDb21wb25lbnQocHVibGljUHJvcHMsIHB1YmxpY0NvbnRleHQsIFJlYWN0VXBkYXRlUXVldWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghY2FuSW5zdGFudGlhdGUgfHwgaW5zdCA9PT0gbnVsbCB8fCBpbnN0ID09PSBmYWxzZSB8fCBSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQoaW5zdCkpIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IGluc3Q7XG4gICAgICBpbnN0ID0gbmV3IFN0YXRlbGVzc0NvbXBvbmVudChDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgbGF0ZXIgaW4gX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCwgYnV0IGFkZCBhbiBlYXJseVxuICAgICAgLy8gd2FybmluZyBub3cgdG8gaGVscCBkZWJ1Z2dpbmdcbiAgICAgIGlmIChpbnN0LnJlbmRlciA9PSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogeW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBkZWZpbmUgYHJlbmRlcmAsIHJldHVybmVkICcgKyAnbnVsbC9mYWxzZSBmcm9tIGEgc3RhdGVsZXNzIGNvbXBvbmVudCwgb3IgdHJpZWQgdG8gcmVuZGVyIGFuICcgKyAnZWxlbWVudCB3aG9zZSB0eXBlIGlzIGEgZnVuY3Rpb24gdGhhdCBpc25cXCd0IGEgUmVhY3QgY29tcG9uZW50LicsIENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnQ29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSBzdXBwb3J0IEVTNiBpbmhlcml0aW5nIGZyb20gUmVhY3QuQ29tcG9uZW50LCB0aGUgbW9kdWxlIHBhdHRlcm4sXG4gICAgICAgIC8vIGFuZCBzdGF0ZWxlc3MgY29tcG9uZW50cywgYnV0IG5vdCBFUzYgY2xhc3NlcyB0aGF0IGRvbid0IGV4dGVuZFxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhDb21wb25lbnQucHJvdG90eXBlICYmIENvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCB8fCAhY2FuSW5zdGFudGlhdGUgfHwgIShpbnN0IGluc3RhbmNlb2YgQ29tcG9uZW50KSwgJyVzKC4uLik6IFJlYWN0IGNvbXBvbmVudCBjbGFzc2VzIG11c3QgZXh0ZW5kIFJlYWN0LkNvbXBvbmVudC4nLCBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCcpIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZXNlIHNob3VsZCBiZSBzZXQgdXAgaW4gdGhlIGNvbnN0cnVjdG9yLCBidXQgYXMgYSBjb252ZW5pZW5jZSBmb3JcbiAgICAvLyBzaW1wbGVyIGNsYXNzIGFic3RyYWN0aW9ucywgd2Ugc2V0IHRoZW0gdXAgYWZ0ZXIgdGhlIGZhY3QuXG4gICAgaW5zdC5wcm9wcyA9IHB1YmxpY1Byb3BzO1xuICAgIGluc3QuY29udGV4dCA9IHB1YmxpY0NvbnRleHQ7XG4gICAgaW5zdC5yZWZzID0gZW1wdHlPYmplY3Q7XG4gICAgaW5zdC51cGRhdGVyID0gUmVhY3RVcGRhdGVRdWV1ZTtcblxuICAgIHRoaXMuX2luc3RhbmNlID0gaW5zdDtcblxuICAgIC8vIFN0b3JlIGEgcmVmZXJlbmNlIGZyb20gdGhlIGluc3RhbmNlIGJhY2sgdG8gdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uXG4gICAgUmVhY3RJbnN0YW5jZU1hcC5zZXQoaW5zdCwgdGhpcyk7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gU2luY2UgcGxhaW4gSlMgY2xhc3NlcyBhcmUgZGVmaW5lZCB3aXRob3V0IGFueSBzcGVjaWFsIGluaXRpYWxpemF0aW9uXG4gICAgICAvLyBsb2dpYywgd2UgY2FuIG5vdCBjYXRjaCBjb21tb24gZXJyb3JzIGVhcmx5LiBUaGVyZWZvcmUsIHdlIGhhdmUgdG9cbiAgICAgIC8vIGNhdGNoIHRoZW0gaGVyZSwgYXQgaW5pdGlhbGl6YXRpb24gdGltZSwgaW5zdGVhZC5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFpbnN0LmdldEluaXRpYWxTdGF0ZSB8fCBpbnN0LmdldEluaXRpYWxTdGF0ZS5pc1JlYWN0Q2xhc3NBcHByb3ZlZCwgJ2dldEluaXRpYWxTdGF0ZSB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD8nLCB0aGlzLmdldE5hbWUoKSB8fCAnYSBjb21wb25lbnQnKSA6IHVuZGVmaW5lZDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKCFpbnN0LmdldERlZmF1bHRQcm9wcyB8fCBpbnN0LmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCwgJ2dldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGRlZmF1bHRQcm9wcyBpbnN0ZWFkLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdhIGNvbXBvbmVudCcpIDogdW5kZWZpbmVkO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIWluc3QucHJvcFR5cGVzLCAncHJvcFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgcHJvcFR5cGVzIGluc3RlYWQuJywgdGhpcy5nZXROYW1lKCkgfHwgJ2EgY29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghaW5zdC5jb250ZXh0VHlwZXMsICdjb250ZXh0VHlwZXMgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhICcgKyAnc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBjb250ZXh0VHlwZXMgaW5zdGVhZC4nLCB0aGlzLmdldE5hbWUoKSB8fCAnYSBjb21wb25lbnQnKSA6IHVuZGVmaW5lZDtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHR5cGVvZiBpbnN0LmNvbXBvbmVudFNob3VsZFVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJywgJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnRTaG91bGRVcGRhdGUoKS4gRGlkIHlvdSBtZWFuIHNob3VsZENvbXBvbmVudFVwZGF0ZSgpPyAnICsgJ1RoZSBuYW1lIGlzIHBocmFzZWQgYXMgYSBxdWVzdGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyAnICsgJ2V4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdBIGNvbXBvbmVudCcpIDogdW5kZWZpbmVkO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodHlwZW9mIGluc3QuY29tcG9uZW50RGlkVW5tb3VudCAhPT0gJ2Z1bmN0aW9uJywgJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRVbm1vdW50KCkuIEJ1dCB0aGVyZSBpcyBubyBzdWNoIGxpZmVjeWNsZSBtZXRob2QuICcgKyAnRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/JywgdGhpcy5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyh0eXBlb2YgaW5zdC5jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzICE9PSAnZnVuY3Rpb24nLCAnJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKT8nLCB0aGlzLmdldE5hbWUoKSB8fCAnQSBjb21wb25lbnQnKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB2YXIgaW5pdGlhbFN0YXRlID0gaW5zdC5zdGF0ZTtcbiAgICBpZiAoaW5pdGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3Quc3RhdGUgPSBpbml0aWFsU3RhdGUgPSBudWxsO1xuICAgIH1cbiAgICAhKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGluaXRpYWxTdGF0ZSkpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBvYmplY3Qgb3IgbnVsbCcsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gZmFsc2U7XG5cbiAgICBpZiAoaW5zdC5jb21wb25lbnRXaWxsTW91bnQpIHtcbiAgICAgIGluc3QuY29tcG9uZW50V2lsbE1vdW50KCk7XG4gICAgICAvLyBXaGVuIG1vdW50aW5nLCBjYWxscyB0byBgc2V0U3RhdGVgIGJ5IGBjb21wb25lbnRXaWxsTW91bnRgIHdpbGwgc2V0XG4gICAgICAvLyBgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWVgIHdpdGhvdXQgdHJpZ2dlcmluZyBhIHJlLXJlbmRlci5cbiAgICAgIGlmICh0aGlzLl9wZW5kaW5nU3RhdGVRdWV1ZSkge1xuICAgICAgICBpbnN0LnN0YXRlID0gdGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0ZShpbnN0LnByb3BzLCBpbnN0LmNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIG5vdCBhIHN0YXRlbGVzcyBjb21wb25lbnQsIHdlIG5vdyByZW5kZXJcbiAgICBpZiAocmVuZGVyZWRFbGVtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlbmRlcmVkRWxlbWVudCA9IHRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCgpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50ID0gdGhpcy5faW5zdGFudGlhdGVSZWFjdENvbXBvbmVudChyZW5kZXJlZEVsZW1lbnQpO1xuXG4gICAgdmFyIG1hcmt1cCA9IFJlYWN0UmVjb25jaWxlci5tb3VudENvbXBvbmVudCh0aGlzLl9yZW5kZXJlZENvbXBvbmVudCwgcm9vdElELCB0cmFuc2FjdGlvbiwgdGhpcy5fcHJvY2Vzc0NoaWxkQ29udGV4dChjb250ZXh0KSk7XG4gICAgaWYgKGluc3QuY29tcG9uZW50RGlkTW91bnQpIHtcbiAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoaW5zdC5jb21wb25lbnREaWRNb3VudCwgaW5zdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmt1cDtcbiAgfSxcblxuICAvKipcbiAgICogUmVsZWFzZXMgYW55IHJlc291cmNlcyBhbGxvY2F0ZWQgYnkgYG1vdW50Q29tcG9uZW50YC5cbiAgICpcbiAgICogQGZpbmFsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKCkge1xuICAgIHZhciBpbnN0ID0gdGhpcy5faW5zdGFuY2U7XG5cbiAgICBpZiAoaW5zdC5jb21wb25lbnRXaWxsVW5tb3VudCkge1xuICAgICAgaW5zdC5jb21wb25lbnRXaWxsVW5tb3VudCgpO1xuICAgIH1cblxuICAgIFJlYWN0UmVjb25jaWxlci51bm1vdW50Q29tcG9uZW50KHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50KTtcbiAgICB0aGlzLl9yZW5kZXJlZENvbXBvbmVudCA9IG51bGw7XG4gICAgdGhpcy5faW5zdGFuY2UgPSBudWxsO1xuXG4gICAgLy8gUmVzZXQgcGVuZGluZyBmaWVsZHNcbiAgICAvLyBFdmVuIGlmIHRoaXMgY29tcG9uZW50IGlzIHNjaGVkdWxlZCBmb3IgYW5vdGhlciB1cGRhdGUgaW4gUmVhY3RVcGRhdGVzLFxuICAgIC8vIGl0IHdvdWxkIHN0aWxsIGJlIGlnbm9yZWQgYmVjYXVzZSB0aGVzZSBmaWVsZHMgYXJlIHJlc2V0LlxuICAgIHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlID0gbnVsbDtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ0NhbGxiYWNrcyA9IG51bGw7XG4gICAgdGhpcy5fcGVuZGluZ0VsZW1lbnQgPSBudWxsO1xuXG4gICAgLy8gVGhlc2UgZmllbGRzIGRvIG5vdCByZWFsbHkgbmVlZCB0byBiZSByZXNldCBzaW5jZSB0aGlzIG9iamVjdCBpcyBub1xuICAgIC8vIGxvbmdlciBhY2Nlc3NpYmxlLlxuICAgIHRoaXMuX2NvbnRleHQgPSBudWxsO1xuICAgIHRoaXMuX3Jvb3ROb2RlSUQgPSBudWxsO1xuICAgIHRoaXMuX3RvcExldmVsV3JhcHBlciA9IG51bGw7XG5cbiAgICAvLyBEZWxldGUgdGhlIHJlZmVyZW5jZSBmcm9tIHRoZSBpbnN0YW5jZSB0byB0aGlzIGludGVybmFsIHJlcHJlc2VudGF0aW9uXG4gICAgLy8gd2hpY2ggYWxsb3cgdGhlIGludGVybmFscyB0byBiZSBwcm9wZXJseSBjbGVhbmVkIHVwIGV2ZW4gaWYgdGhlIHVzZXJcbiAgICAvLyBsZWFrcyBhIHJlZmVyZW5jZSB0byB0aGUgcHVibGljIGluc3RhbmNlLlxuICAgIFJlYWN0SW5zdGFuY2VNYXAucmVtb3ZlKGluc3QpO1xuXG4gICAgLy8gU29tZSBleGlzdGluZyBjb21wb25lbnRzIHJlbHkgb24gaW5zdC5wcm9wcyBldmVuIGFmdGVyIHRoZXkndmUgYmVlblxuICAgIC8vIGRlc3Ryb3llZCAoaW4gZXZlbnQgaGFuZGxlcnMpLlxuICAgIC8vIFRPRE86IGluc3QucHJvcHMgPSBudWxsO1xuICAgIC8vIFRPRE86IGluc3Quc3RhdGUgPSBudWxsO1xuICAgIC8vIFRPRE86IGluc3QuY29udGV4dCA9IG51bGw7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgdGhlIGNvbnRleHQgb2JqZWN0IHRvIG9ubHkgY29udGFpbiBrZXlzIHNwZWNpZmllZCBpblxuICAgKiBgY29udGV4dFR5cGVzYFxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHs/b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX21hc2tDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBtYXNrZWRDb250ZXh0ID0gbnVsbDtcbiAgICB2YXIgQ29tcG9uZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcbiAgICB2YXIgY29udGV4dFR5cGVzID0gQ29tcG9uZW50LmNvbnRleHRUeXBlcztcbiAgICBpZiAoIWNvbnRleHRUeXBlcykge1xuICAgICAgcmV0dXJuIGVtcHR5T2JqZWN0O1xuICAgIH1cbiAgICBtYXNrZWRDb250ZXh0ID0ge307XG4gICAgZm9yICh2YXIgY29udGV4dE5hbWUgaW4gY29udGV4dFR5cGVzKSB7XG4gICAgICBtYXNrZWRDb250ZXh0W2NvbnRleHROYW1lXSA9IGNvbnRleHRbY29udGV4dE5hbWVdO1xuICAgIH1cbiAgICByZXR1cm4gbWFza2VkQ29udGV4dDtcbiAgfSxcblxuICAvKipcbiAgICogRmlsdGVycyB0aGUgY29udGV4dCBvYmplY3QgdG8gb25seSBjb250YWluIGtleXMgc3BlY2lmaWVkIGluXG4gICAqIGBjb250ZXh0VHlwZXNgLCBhbmQgYXNzZXJ0cyB0aGF0IHRoZXkgYXJlIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHs/b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3Byb2Nlc3NDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBtYXNrZWRDb250ZXh0ID0gdGhpcy5fbWFza0NvbnRleHQoY29udGV4dCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgICAgaWYgKENvbXBvbmVudC5jb250ZXh0VHlwZXMpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tQcm9wVHlwZXMoQ29tcG9uZW50LmNvbnRleHRUeXBlcywgbWFza2VkQ29udGV4dCwgUmVhY3RQcm9wVHlwZUxvY2F0aW9ucy5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hc2tlZENvbnRleHQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjdXJyZW50Q29udGV4dFxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfcHJvY2Vzc0NoaWxkQ29udGV4dDogZnVuY3Rpb24gKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgdmFyIENvbXBvbmVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGU7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcbiAgICB2YXIgY2hpbGRDb250ZXh0ID0gaW5zdC5nZXRDaGlsZENvbnRleHQgJiYgaW5zdC5nZXRDaGlsZENvbnRleHQoKTtcbiAgICBpZiAoY2hpbGRDb250ZXh0KSB7XG4gICAgICAhKHR5cGVvZiBDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMgPT09ICdvYmplY3QnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcy5nZXRDaGlsZENvbnRleHQoKTogY2hpbGRDb250ZXh0VHlwZXMgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvICcgKyAndXNlIGdldENoaWxkQ29udGV4dCgpLicsIHRoaXMuZ2V0TmFtZSgpIHx8ICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRoaXMuX2NoZWNrUHJvcFR5cGVzKENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0LCBSZWFjdFByb3BUeXBlTG9jYXRpb25zLmNoaWxkQ29udGV4dCk7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBuYW1lIGluIGNoaWxkQ29udGV4dCkge1xuICAgICAgICAhKG5hbWUgaW4gQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcy5nZXRDaGlsZENvbnRleHQoKToga2V5IFwiJXNcIiBpcyBub3QgZGVmaW5lZCBpbiBjaGlsZENvbnRleHRUeXBlcy4nLCB0aGlzLmdldE5hbWUoKSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnLCBuYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXNzaWduKHt9LCBjdXJyZW50Q29udGV4dCwgY2hpbGRDb250ZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRDb250ZXh0O1xuICB9LFxuXG4gIC8qKlxuICAgKiBQcm9jZXNzZXMgcHJvcHMgYnkgc2V0dGluZyBkZWZhdWx0IHZhbHVlcyBmb3IgdW5zcGVjaWZpZWQgcHJvcHMgYW5kXG4gICAqIGFzc2VydGluZyB0aGF0IHRoZSBwcm9wcyBhcmUgdmFsaWQuIERvZXMgbm90IG11dGF0ZSBpdHMgYXJndW1lbnQ7IHJldHVybnNcbiAgICogYSBuZXcgcHJvcHMgb2JqZWN0IHdpdGggZGVmYXVsdHMgbWVyZ2VkIGluLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3UHJvcHNcbiAgICogQHJldHVybiB7b2JqZWN0fVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3Byb2Nlc3NQcm9wczogZnVuY3Rpb24gKG5ld1Byb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBDb21wb25lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuICAgICAgaWYgKENvbXBvbmVudC5wcm9wVHlwZXMpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tQcm9wVHlwZXMoQ29tcG9uZW50LnByb3BUeXBlcywgbmV3UHJvcHMsIFJlYWN0UHJvcFR5cGVMb2NhdGlvbnMucHJvcCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdQcm9wcztcbiAgfSxcblxuICAvKipcbiAgICogQXNzZXJ0IHRoYXQgdGhlIHByb3BzIGFyZSB2YWxpZFxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcFR5cGVzIE1hcCBvZiBwcm9wIG5hbWUgdG8gYSBSZWFjdFByb3BUeXBlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBfY2hlY2tQcm9wVHlwZXM6IGZ1bmN0aW9uIChwcm9wVHlwZXMsIHByb3BzLCBsb2NhdGlvbikge1xuICAgIC8vIFRPRE86IFN0b3AgdmFsaWRhdGluZyBwcm9wIHR5cGVzIGhlcmUgYW5kIG9ubHkgdXNlIHRoZSBlbGVtZW50XG4gICAgLy8gdmFsaWRhdGlvbi5cbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IHRoaXMuZ2V0TmFtZSgpO1xuICAgIGZvciAodmFyIHByb3BOYW1lIGluIHByb3BUeXBlcykge1xuICAgICAgaWYgKHByb3BUeXBlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxuICAgICAgICAgIC8vIGJlaGF2aW9yIGFzIHdpdGhvdXQgdGhpcyBzdGF0ZW1lbnQgZXhjZXB0IHdpdGggYSBiZXR0ZXIgbWVzc2FnZS5cbiAgICAgICAgICAhKHR5cGVvZiBwcm9wVHlwZXNbcHJvcE5hbWVdID09PSAnZnVuY3Rpb24nKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclczogJXMgdHlwZSBgJXNgIGlzIGludmFsaWQ7IGl0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSAnICsgJ2Zyb20gUmVhY3QuUHJvcFR5cGVzLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXNbbG9jYXRpb25dLCBwcm9wTmFtZSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGVycm9yID0gcHJvcFR5cGVzW3Byb3BOYW1lXShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uKTtcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgICAgICBlcnJvciA9IGV4O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgLy8gV2UgbWF5IHdhbnQgdG8gZXh0ZW5kIHRoaXMgbG9naWMgZm9yIHNpbWlsYXIgZXJyb3JzIGluXG4gICAgICAgICAgLy8gdG9wLWxldmVsIHJlbmRlciBjYWxscywgc28gSSdtIGFic3RyYWN0aW5nIGl0IGF3YXkgaW50b1xuICAgICAgICAgIC8vIGEgZnVuY3Rpb24gdG8gbWluaW1pemUgcmVmYWN0b3JpbmcgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAgIHZhciBhZGRlbmR1bSA9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSh0aGlzKTtcblxuICAgICAgICAgIGlmIChsb2NhdGlvbiA9PT0gUmVhY3RQcm9wVHlwZUxvY2F0aW9ucy5wcm9wKSB7XG4gICAgICAgICAgICAvLyBQcmVmYWNlIGdpdmVzIHVzIHNvbWV0aGluZyB0byBibGFja2xpc3QgaW4gd2FybmluZyBtb2R1bGVcbiAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnRmFpbGVkIENvbXBvc2l0ZSBwcm9wVHlwZTogJXMlcycsIGVycm9yLm1lc3NhZ2UsIGFkZGVuZHVtKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdGYWlsZWQgQ29udGV4dCBUeXBlczogJXMlcycsIGVycm9yLm1lc3NhZ2UsIGFkZGVuZHVtKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgcmVjZWl2ZUNvbXBvbmVudDogZnVuY3Rpb24gKG5leHRFbGVtZW50LCB0cmFuc2FjdGlvbiwgbmV4dENvbnRleHQpIHtcbiAgICB2YXIgcHJldkVsZW1lbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudDtcbiAgICB2YXIgcHJldkNvbnRleHQgPSB0aGlzLl9jb250ZXh0O1xuXG4gICAgdGhpcy5fcGVuZGluZ0VsZW1lbnQgPSBudWxsO1xuXG4gICAgdGhpcy51cGRhdGVDb21wb25lbnQodHJhbnNhY3Rpb24sIHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCwgcHJldkNvbnRleHQsIG5leHRDb250ZXh0KTtcbiAgfSxcblxuICAvKipcbiAgICogSWYgYW55IG9mIGBfcGVuZGluZ0VsZW1lbnRgLCBgX3BlbmRpbmdTdGF0ZVF1ZXVlYCwgb3IgYF9wZW5kaW5nRm9yY2VVcGRhdGVgXG4gICAqIGlzIHNldCwgdXBkYXRlIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwZXJmb3JtVXBkYXRlSWZOZWNlc3Nhcnk6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbikge1xuICAgIGlmICh0aGlzLl9wZW5kaW5nRWxlbWVudCAhPSBudWxsKSB7XG4gICAgICBSZWFjdFJlY29uY2lsZXIucmVjZWl2ZUNvbXBvbmVudCh0aGlzLCB0aGlzLl9wZW5kaW5nRWxlbWVudCB8fCB0aGlzLl9jdXJyZW50RWxlbWVudCwgdHJhbnNhY3Rpb24sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9wZW5kaW5nU3RhdGVRdWV1ZSAhPT0gbnVsbCB8fCB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KHRyYW5zYWN0aW9uLCB0aGlzLl9jdXJyZW50RWxlbWVudCwgdGhpcy5fY3VycmVudEVsZW1lbnQsIHRoaXMuX2NvbnRleHQsIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUGVyZm9ybSBhbiB1cGRhdGUgdG8gYSBtb3VudGVkIGNvbXBvbmVudC4gVGhlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgYW5kXG4gICAqIHNob3VsZENvbXBvbmVudFVwZGF0ZSBtZXRob2RzIGFyZSBjYWxsZWQsIHRoZW4gKGFzc3VtaW5nIHRoZSB1cGRhdGUgaXNuJ3RcbiAgICogc2tpcHBlZCkgdGhlIHJlbWFpbmluZyB1cGRhdGUgbGlmZWN5Y2xlIG1ldGhvZHMgYXJlIGNhbGxlZCBhbmQgdGhlIERPTVxuICAgKiByZXByZXNlbnRhdGlvbiBpcyB1cGRhdGVkLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGlzIGltcGxlbWVudHMgUmVhY3QncyByZW5kZXJpbmcgYW5kIHJlY29uY2lsaWF0aW9uIGFsZ29yaXRobS5cbiAgICogU29waGlzdGljYXRlZCBjbGllbnRzIG1heSB3aXNoIHRvIG92ZXJyaWRlIHRoaXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IHByZXZQYXJlbnRFbGVtZW50XG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBuZXh0UGFyZW50RWxlbWVudFxuICAgKiBAaW50ZXJuYWxcbiAgICogQG92ZXJyaWRhYmxlXG4gICAqL1xuICB1cGRhdGVDb21wb25lbnQ6IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgcHJldlBhcmVudEVsZW1lbnQsIG5leHRQYXJlbnRFbGVtZW50LCBwcmV2VW5tYXNrZWRDb250ZXh0LCBuZXh0VW5tYXNrZWRDb250ZXh0KSB7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcblxuICAgIHZhciBuZXh0Q29udGV4dCA9IHRoaXMuX2NvbnRleHQgPT09IG5leHRVbm1hc2tlZENvbnRleHQgPyBpbnN0LmNvbnRleHQgOiB0aGlzLl9wcm9jZXNzQ29udGV4dChuZXh0VW5tYXNrZWRDb250ZXh0KTtcbiAgICB2YXIgbmV4dFByb3BzO1xuXG4gICAgLy8gRGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHByb3BzIHVwZGF0ZSB2ZXJzdXMgYSBzaW1wbGUgc3RhdGUgdXBkYXRlXG4gICAgaWYgKHByZXZQYXJlbnRFbGVtZW50ID09PSBuZXh0UGFyZW50RWxlbWVudCkge1xuICAgICAgLy8gU2tpcCBjaGVja2luZyBwcm9wIHR5cGVzIGFnYWluIC0tIHdlIGRvbid0IHJlYWQgaW5zdC5wcm9wcyB0byBhdm9pZFxuICAgICAgLy8gd2FybmluZyBmb3IgRE9NIGNvbXBvbmVudCBwcm9wcyBpbiB0aGlzIHVwZ3JhZGVcbiAgICAgIG5leHRQcm9wcyA9IG5leHRQYXJlbnRFbGVtZW50LnByb3BzO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0UHJvcHMgPSB0aGlzLl9wcm9jZXNzUHJvcHMobmV4dFBhcmVudEVsZW1lbnQucHJvcHMpO1xuICAgICAgLy8gQW4gdXBkYXRlIGhlcmUgd2lsbCBzY2hlZHVsZSBhbiB1cGRhdGUgYnV0IGltbWVkaWF0ZWx5IHNldFxuICAgICAgLy8gX3BlbmRpbmdTdGF0ZVF1ZXVlIHdoaWNoIHdpbGwgZW5zdXJlIHRoYXQgYW55IHN0YXRlIHVwZGF0ZXMgZ2V0c1xuICAgICAgLy8gaW1tZWRpYXRlbHkgcmVjb25jaWxlZCBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBuZXh0IGJhdGNoLlxuXG4gICAgICBpZiAoaW5zdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKSB7XG4gICAgICAgIGluc3QuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbmV4dFN0YXRlID0gdGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0ZShuZXh0UHJvcHMsIG5leHRDb250ZXh0KTtcblxuICAgIHZhciBzaG91bGRVcGRhdGUgPSB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgfHwgIWluc3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlIHx8IGluc3Quc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodHlwZW9mIHNob3VsZFVwZGF0ZSAhPT0gJ3VuZGVmaW5lZCcsICclcy5zaG91bGRDb21wb25lbnRVcGRhdGUoKTogUmV0dXJuZWQgdW5kZWZpbmVkIGluc3RlYWQgb2YgYSAnICsgJ2Jvb2xlYW4gdmFsdWUuIE1ha2Ugc3VyZSB0byByZXR1cm4gdHJ1ZSBvciBmYWxzZS4nLCB0aGlzLmdldE5hbWUoKSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgICB0aGlzLl9wZW5kaW5nRm9yY2VVcGRhdGUgPSBmYWxzZTtcbiAgICAgIC8vIFdpbGwgc2V0IGB0aGlzLnByb3BzYCwgYHRoaXMuc3RhdGVgIGFuZCBgdGhpcy5jb250ZXh0YC5cbiAgICAgIHRoaXMuX3BlcmZvcm1Db21wb25lbnRVcGRhdGUobmV4dFBhcmVudEVsZW1lbnQsIG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCwgdHJhbnNhY3Rpb24sIG5leHRVbm1hc2tlZENvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpdCdzIGRldGVybWluZWQgdGhhdCBhIGNvbXBvbmVudCBzaG91bGQgbm90IHVwZGF0ZSwgd2Ugc3RpbGwgd2FudFxuICAgICAgLy8gdG8gc2V0IHByb3BzIGFuZCBzdGF0ZSBidXQgd2Ugc2hvcnRjdXQgdGhlIHJlc3Qgb2YgdGhlIHVwZGF0ZS5cbiAgICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gbmV4dFBhcmVudEVsZW1lbnQ7XG4gICAgICB0aGlzLl9jb250ZXh0ID0gbmV4dFVubWFza2VkQ29udGV4dDtcbiAgICAgIGluc3QucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgICBpbnN0LnN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgaW5zdC5jb250ZXh0ID0gbmV4dENvbnRleHQ7XG4gICAgfVxuICB9LFxuXG4gIF9wcm9jZXNzUGVuZGluZ1N0YXRlOiBmdW5jdGlvbiAocHJvcHMsIGNvbnRleHQpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuX2luc3RhbmNlO1xuICAgIHZhciBxdWV1ZSA9IHRoaXMuX3BlbmRpbmdTdGF0ZVF1ZXVlO1xuICAgIHZhciByZXBsYWNlID0gdGhpcy5fcGVuZGluZ1JlcGxhY2VTdGF0ZTtcbiAgICB0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlID0gZmFsc2U7XG4gICAgdGhpcy5fcGVuZGluZ1N0YXRlUXVldWUgPSBudWxsO1xuXG4gICAgaWYgKCFxdWV1ZSkge1xuICAgICAgcmV0dXJuIGluc3Quc3RhdGU7XG4gICAgfVxuXG4gICAgaWYgKHJlcGxhY2UgJiYgcXVldWUubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gcXVldWVbMF07XG4gICAgfVxuXG4gICAgdmFyIG5leHRTdGF0ZSA9IGFzc2lnbih7fSwgcmVwbGFjZSA/IHF1ZXVlWzBdIDogaW5zdC5zdGF0ZSk7XG4gICAgZm9yICh2YXIgaSA9IHJlcGxhY2UgPyAxIDogMDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcGFydGlhbCA9IHF1ZXVlW2ldO1xuICAgICAgYXNzaWduKG5leHRTdGF0ZSwgdHlwZW9mIHBhcnRpYWwgPT09ICdmdW5jdGlvbicgPyBwYXJ0aWFsLmNhbGwoaW5zdCwgbmV4dFN0YXRlLCBwcm9wcywgY29udGV4dCkgOiBwYXJ0aWFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dFN0YXRlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBNZXJnZXMgbmV3IHByb3BzIGFuZCBzdGF0ZSwgbm90aWZpZXMgZGVsZWdhdGUgbWV0aG9kcyBvZiB1cGRhdGUgYW5kXG4gICAqIHBlcmZvcm1zIHVwZGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IG5leHRFbGVtZW50IE5leHQgZWxlbWVudFxuICAgKiBAcGFyYW0ge29iamVjdH0gbmV4dFByb3BzIE5leHQgcHVibGljIG9iamVjdCB0byBzZXQgYXMgcHJvcGVydGllcy5cbiAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXh0U3RhdGUgTmV4dCBvYmplY3QgdG8gc2V0IGFzIHN0YXRlLlxuICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHRDb250ZXh0IE5leHQgcHVibGljIG9iamVjdCB0byBzZXQgYXMgY29udGV4dC5cbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gez9vYmplY3R9IHVubWFza2VkQ29udGV4dFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX3BlcmZvcm1Db21wb25lbnRVcGRhdGU6IGZ1bmN0aW9uIChuZXh0RWxlbWVudCwgbmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0LCB0cmFuc2FjdGlvbiwgdW5tYXNrZWRDb250ZXh0KSB7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcblxuICAgIHZhciBoYXNDb21wb25lbnREaWRVcGRhdGUgPSBCb29sZWFuKGluc3QuY29tcG9uZW50RGlkVXBkYXRlKTtcbiAgICB2YXIgcHJldlByb3BzO1xuICAgIHZhciBwcmV2U3RhdGU7XG4gICAgdmFyIHByZXZDb250ZXh0O1xuICAgIGlmIChoYXNDb21wb25lbnREaWRVcGRhdGUpIHtcbiAgICAgIHByZXZQcm9wcyA9IGluc3QucHJvcHM7XG4gICAgICBwcmV2U3RhdGUgPSBpbnN0LnN0YXRlO1xuICAgICAgcHJldkNvbnRleHQgPSBpbnN0LmNvbnRleHQ7XG4gICAgfVxuXG4gICAgaWYgKGluc3QuY29tcG9uZW50V2lsbFVwZGF0ZSkge1xuICAgICAgaW5zdC5jb21wb25lbnRXaWxsVXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlLCBuZXh0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBuZXh0RWxlbWVudDtcbiAgICB0aGlzLl9jb250ZXh0ID0gdW5tYXNrZWRDb250ZXh0O1xuICAgIGluc3QucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgaW5zdC5zdGF0ZSA9IG5leHRTdGF0ZTtcbiAgICBpbnN0LmNvbnRleHQgPSBuZXh0Q29udGV4dDtcblxuICAgIHRoaXMuX3VwZGF0ZVJlbmRlcmVkQ29tcG9uZW50KHRyYW5zYWN0aW9uLCB1bm1hc2tlZENvbnRleHQpO1xuXG4gICAgaWYgKGhhc0NvbXBvbmVudERpZFVwZGF0ZSkge1xuICAgICAgdHJhbnNhY3Rpb24uZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShpbnN0LmNvbXBvbmVudERpZFVwZGF0ZS5iaW5kKGluc3QsIHByZXZQcm9wcywgcHJldlN0YXRlLCBwcmV2Q29udGV4dCksIGluc3QpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQ2FsbCB0aGUgY29tcG9uZW50J3MgYHJlbmRlcmAgbWV0aG9kIGFuZCB1cGRhdGUgdGhlIERPTSBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF91cGRhdGVSZW5kZXJlZENvbXBvbmVudDogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgdmFyIHByZXZDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50O1xuICAgIHZhciBwcmV2UmVuZGVyZWRFbGVtZW50ID0gcHJldkNvbXBvbmVudEluc3RhbmNlLl9jdXJyZW50RWxlbWVudDtcbiAgICB2YXIgbmV4dFJlbmRlcmVkRWxlbWVudCA9IHRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudCgpO1xuICAgIGlmIChzaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudChwcmV2UmVuZGVyZWRFbGVtZW50LCBuZXh0UmVuZGVyZWRFbGVtZW50KSkge1xuICAgICAgUmVhY3RSZWNvbmNpbGVyLnJlY2VpdmVDb21wb25lbnQocHJldkNvbXBvbmVudEluc3RhbmNlLCBuZXh0UmVuZGVyZWRFbGVtZW50LCB0cmFuc2FjdGlvbiwgdGhpcy5fcHJvY2Vzc0NoaWxkQ29udGV4dChjb250ZXh0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZXNlIHR3byBJRHMgYXJlIGFjdHVhbGx5IHRoZSBzYW1lISBCdXQgbm90aGluZyBzaG91bGQgcmVseSBvbiB0aGF0LlxuICAgICAgdmFyIHRoaXNJRCA9IHRoaXMuX3Jvb3ROb2RlSUQ7XG4gICAgICB2YXIgcHJldkNvbXBvbmVudElEID0gcHJldkNvbXBvbmVudEluc3RhbmNlLl9yb290Tm9kZUlEO1xuICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocHJldkNvbXBvbmVudEluc3RhbmNlKTtcblxuICAgICAgdGhpcy5fcmVuZGVyZWRDb21wb25lbnQgPSB0aGlzLl9pbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50KG5leHRSZW5kZXJlZEVsZW1lbnQpO1xuICAgICAgdmFyIG5leHRNYXJrdXAgPSBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQodGhpcy5fcmVuZGVyZWRDb21wb25lbnQsIHRoaXNJRCwgdHJhbnNhY3Rpb24sIHRoaXMuX3Byb2Nlc3NDaGlsZENvbnRleHQoY29udGV4dCkpO1xuICAgICAgdGhpcy5fcmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRChwcmV2Q29tcG9uZW50SUQsIG5leHRNYXJrdXApO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgX3JlcGxhY2VOb2RlV2l0aE1hcmt1cEJ5SUQ6IGZ1bmN0aW9uIChwcmV2Q29tcG9uZW50SUQsIG5leHRNYXJrdXApIHtcbiAgICBSZWFjdENvbXBvbmVudEVudmlyb25tZW50LnJlcGxhY2VOb2RlV2l0aE1hcmt1cEJ5SUQocHJldkNvbXBvbmVudElELCBuZXh0TWFya3VwKTtcbiAgfSxcblxuICAvKipcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9yQ29udGV4dDogZnVuY3Rpb24gKCkge1xuICAgIHZhciBpbnN0ID0gdGhpcy5faW5zdGFuY2U7XG4gICAgdmFyIHJlbmRlcmVkQ29tcG9uZW50ID0gaW5zdC5yZW5kZXIoKTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gV2UgYWxsb3cgYXV0by1tb2NrcyB0byBwcm9jZWVkIGFzIGlmIHRoZXkncmUgcmV0dXJuaW5nIG51bGwuXG4gICAgICBpZiAodHlwZW9mIHJlbmRlcmVkQ29tcG9uZW50ID09PSAndW5kZWZpbmVkJyAmJiBpbnN0LnJlbmRlci5faXNNb2NrRnVuY3Rpb24pIHtcbiAgICAgICAgLy8gVGhpcyBpcyBwcm9iYWJseSBiYWQgcHJhY3RpY2UuIENvbnNpZGVyIHdhcm5pbmcgaGVyZSBhbmRcbiAgICAgICAgLy8gZGVwcmVjYXRpbmcgdGhpcyBjb252ZW5pZW5jZS5cbiAgICAgICAgcmVuZGVyZWRDb21wb25lbnQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZW5kZXJlZENvbXBvbmVudDtcbiAgfSxcblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIF9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVuZGVyZWRDb21wb25lbnQ7XG4gICAgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9IHRoaXM7XG4gICAgdHJ5IHtcbiAgICAgIHJlbmRlcmVkQ29tcG9uZW50ID0gdGhpcy5fcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50V2l0aG91dE93bmVyT3JDb250ZXh0KCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICAhKFxuICAgIC8vIFRPRE86IEFuIGBpc1ZhbGlkTm9kZWAgZnVuY3Rpb24gd291bGQgcHJvYmFibHkgYmUgbW9yZSBhcHByb3ByaWF0ZVxuICAgIHJlbmRlcmVkQ29tcG9uZW50ID09PSBudWxsIHx8IHJlbmRlcmVkQ29tcG9uZW50ID09PSBmYWxzZSB8fCBSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQocmVuZGVyZWRDb21wb25lbnQpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcy5yZW5kZXIoKTogQSB2YWxpZCBSZWFjdENvbXBvbmVudCBtdXN0IGJlIHJldHVybmVkLiBZb3UgbWF5IGhhdmUgJyArICdyZXR1cm5lZCB1bmRlZmluZWQsIGFuIGFycmF5IG9yIHNvbWUgb3RoZXIgaW52YWxpZCBvYmplY3QuJywgdGhpcy5nZXROYW1lKCkgfHwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50JykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiByZW5kZXJlZENvbXBvbmVudDtcbiAgfSxcblxuICAvKipcbiAgICogTGF6aWx5IGFsbG9jYXRlcyB0aGUgcmVmcyBvYmplY3QgYW5kIHN0b3JlcyBgY29tcG9uZW50YCBhcyBgcmVmYC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlZiBSZWZlcmVuY2UgbmFtZS5cbiAgICogQHBhcmFtIHtjb21wb25lbnR9IGNvbXBvbmVudCBDb21wb25lbnQgdG8gc3RvcmUgYXMgYHJlZmAuXG4gICAqIEBmaW5hbFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYXR0YWNoUmVmOiBmdW5jdGlvbiAocmVmLCBjb21wb25lbnQpIHtcbiAgICB2YXIgaW5zdCA9IHRoaXMuZ2V0UHVibGljSW5zdGFuY2UoKTtcbiAgICAhKGluc3QgIT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnU3RhdGVsZXNzIGZ1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGhhdmUgcmVmcy4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgdmFyIHB1YmxpY0NvbXBvbmVudEluc3RhbmNlID0gY29tcG9uZW50LmdldFB1YmxpY0luc3RhbmNlKCk7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gY29tcG9uZW50ICYmIGNvbXBvbmVudC5nZXROYW1lID8gY29tcG9uZW50LmdldE5hbWUoKSA6ICdhIGNvbXBvbmVudCc7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhwdWJsaWNDb21wb25lbnRJbnN0YW5jZSAhPSBudWxsLCAnU3RhdGVsZXNzIGZ1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGJlIGdpdmVuIHJlZnMgJyArICcoU2VlIHJlZiBcIiVzXCIgaW4gJXMgY3JlYXRlZCBieSAlcykuICcgKyAnQXR0ZW1wdHMgdG8gYWNjZXNzIHRoaXMgcmVmIHdpbGwgZmFpbC4nLCByZWYsIGNvbXBvbmVudE5hbWUsIHRoaXMuZ2V0TmFtZSgpKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdmFyIHJlZnMgPSBpbnN0LnJlZnMgPT09IGVtcHR5T2JqZWN0ID8gaW5zdC5yZWZzID0ge30gOiBpbnN0LnJlZnM7XG4gICAgcmVmc1tyZWZdID0gcHVibGljQ29tcG9uZW50SW5zdGFuY2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIERldGFjaGVzIGEgcmVmZXJlbmNlIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWYgTmFtZSB0byBkZXJlZmVyZW5jZS5cbiAgICogQGZpbmFsXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBkZXRhY2hSZWY6IGZ1bmN0aW9uIChyZWYpIHtcbiAgICB2YXIgcmVmcyA9IHRoaXMuZ2V0UHVibGljSW5zdGFuY2UoKS5yZWZzO1xuICAgIGRlbGV0ZSByZWZzW3JlZl07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBhIHRleHQgZGVzY3JpcHRpb24gb2YgdGhlIGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IGl0XG4gICAqIGluIGVycm9yIG1lc3NhZ2VzLlxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBuYW1lIG9yIG51bGwuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0TmFtZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciB0eXBlID0gdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtcbiAgICB2YXIgY29uc3RydWN0b3IgPSB0aGlzLl9pbnN0YW5jZSAmJiB0aGlzLl9pbnN0YW5jZS5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCBjb25zdHJ1Y3RvciAmJiBjb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgY29uc3RydWN0b3IgJiYgY29uc3RydWN0b3IubmFtZSB8fCBudWxsO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHB1YmxpY2x5IGFjY2Vzc2libGUgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjb21wb25lbnQgLSBpLmUuIHdoYXRcbiAgICogaXMgZXhwb3NlZCBieSByZWZzIGFuZCByZXR1cm5lZCBieSByZW5kZXIuIENhbiBiZSBudWxsIGZvciBzdGF0ZWxlc3NcbiAgICogY29tcG9uZW50cy5cbiAgICpcbiAgICogQHJldHVybiB7UmVhY3RDb21wb25lbnR9IHRoZSBwdWJsaWMgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldFB1YmxpY0luc3RhbmNlOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGluc3QgPSB0aGlzLl9pbnN0YW5jZTtcbiAgICBpZiAoaW5zdCBpbnN0YW5jZW9mIFN0YXRlbGVzc0NvbXBvbmVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBpbnN0O1xuICB9LFxuXG4gIC8vIFN0dWJcbiAgX2luc3RhbnRpYXRlUmVhY3RDb21wb25lbnQ6IG51bGxcblxufTtcblxuUmVhY3RQZXJmLm1lYXN1cmVNZXRob2RzKFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50TWl4aW4sICdSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCcsIHtcbiAgbW91bnRDb21wb25lbnQ6ICdtb3VudENvbXBvbmVudCcsXG4gIHVwZGF0ZUNvbXBvbmVudDogJ3VwZGF0ZUNvbXBvbmVudCcsXG4gIF9yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQ6ICdfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50J1xufSk7XG5cbnZhciBSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCA9IHtcblxuICBNaXhpbjogUmVhY3RDb21wb3NpdGVDb21wb25lbnRNaXhpblxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdENvbXBvc2l0ZUNvbXBvbmVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 64 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponentEnvironment\n */\n\n'use strict';\n\nvar invariant = __webpack_require__(13);\n\nvar injected = false;\n\nvar ReactComponentEnvironment = {\n\n /**\n * Optionally injectable environment dependent cleanup hook. (server vs.\n * browser etc). Example: A browser system caches DOM nodes based on component\n * ID and must remove that cache entry when this instance is unmounted.\n */\n unmountIDFromEnvironment: null,\n\n /**\n * Optionally injectable hook for swapping out mount images in the middle of\n * the tree.\n */\n replaceNodeWithMarkupByID: null,\n\n /**\n * Optionally injectable hook for processing a queue of child updates. Will\n * later move into MultiChildComponents.\n */\n processChildrenUpdates: null,\n\n injection: {\n injectEnvironment: function injectEnvironment(environment) {\n !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : invariant(false) : undefined;\n ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment;\n ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID;\n ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;\n injected = true;\n }\n }\n\n};\n\nmodule.exports = ReactComponentEnvironment;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudC5qcz9hOTQzIl0sIm5hbWVzIjpbImludmFyaWFudCIsInJlcXVpcmUiLCJpbmplY3RlZCIsIlJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQiLCJ1bm1vdW50SURGcm9tRW52aXJvbm1lbnQiLCJyZXBsYWNlTm9kZVdpdGhNYXJrdXBCeUlEIiwicHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyIsImluamVjdGlvbiIsImluamVjdEVudmlyb25tZW50IiwiZW52aXJvbm1lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxZQUFZLG1CQUFBQyxDQUFRLEVBQVIsQ0FBaEI7O0FBRUEsSUFBSUMsV0FBVyxLQUFmOztBQUVBLElBQUlDLDRCQUE0Qjs7QUFFOUI7Ozs7O0FBS0FDLDRCQUEwQixJQVBJOztBQVM5Qjs7OztBQUlBQyw2QkFBMkIsSUFiRzs7QUFlOUI7Ozs7QUFJQUMsMEJBQXdCLElBbkJNOztBQXFCOUJDLGFBQVc7QUFDVEMsdUJBQW1CLDJCQUFVQyxXQUFWLEVBQXVCO0FBQ3hDLE9BQUMsQ0FBQ1AsUUFBRixHQUFhUSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NaLFVBQVUsS0FBVixFQUFpQix1RUFBakIsQ0FBeEMsR0FBb0lBLFVBQVUsS0FBVixDQUFqSixHQUFvS2EsU0FBcEs7QUFDQVYsZ0NBQTBCQyx3QkFBMUIsR0FBcURLLFlBQVlMLHdCQUFqRTtBQUNBRCxnQ0FBMEJFLHlCQUExQixHQUFzREksWUFBWUoseUJBQWxFO0FBQ0FGLGdDQUEwQkcsc0JBQTFCLEdBQW1ERyxZQUFZSCxzQkFBL0Q7QUFDQUosaUJBQVcsSUFBWDtBQUNEO0FBUFE7O0FBckJtQixDQUFoQzs7QUFpQ0FZLE9BQU9DLE9BQVAsR0FBaUJaLHlCQUFqQixDIiwiZmlsZSI6IjY0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxudmFyIGluamVjdGVkID0gZmFsc2U7XG5cbnZhciBSZWFjdENvbXBvbmVudEVudmlyb25tZW50ID0ge1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IGluamVjdGFibGUgZW52aXJvbm1lbnQgZGVwZW5kZW50IGNsZWFudXAgaG9vay4gKHNlcnZlciB2cy5cbiAgICogYnJvd3NlciBldGMpLiBFeGFtcGxlOiBBIGJyb3dzZXIgc3lzdGVtIGNhY2hlcyBET00gbm9kZXMgYmFzZWQgb24gY29tcG9uZW50XG4gICAqIElEIGFuZCBtdXN0IHJlbW92ZSB0aGF0IGNhY2hlIGVudHJ5IHdoZW4gdGhpcyBpbnN0YW5jZSBpcyB1bm1vdW50ZWQuXG4gICAqL1xuICB1bm1vdW50SURGcm9tRW52aXJvbm1lbnQ6IG51bGwsXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgaW5qZWN0YWJsZSBob29rIGZvciBzd2FwcGluZyBvdXQgbW91bnQgaW1hZ2VzIGluIHRoZSBtaWRkbGUgb2ZcbiAgICogdGhlIHRyZWUuXG4gICAqL1xuICByZXBsYWNlTm9kZVdpdGhNYXJrdXBCeUlEOiBudWxsLFxuXG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IGluamVjdGFibGUgaG9vayBmb3IgcHJvY2Vzc2luZyBhIHF1ZXVlIG9mIGNoaWxkIHVwZGF0ZXMuIFdpbGxcbiAgICogbGF0ZXIgbW92ZSBpbnRvIE11bHRpQ2hpbGRDb21wb25lbnRzLlxuICAgKi9cbiAgcHJvY2Vzc0NoaWxkcmVuVXBkYXRlczogbnVsbCxcblxuICBpbmplY3Rpb246IHtcbiAgICBpbmplY3RFbnZpcm9ubWVudDogZnVuY3Rpb24gKGVudmlyb25tZW50KSB7XG4gICAgICAhIWluamVjdGVkID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0Q29tcG9zaXRlQ29tcG9uZW50OiBpbmplY3RFbnZpcm9ubWVudCgpIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICAgIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQudW5tb3VudElERnJvbUVudmlyb25tZW50ID0gZW52aXJvbm1lbnQudW5tb3VudElERnJvbUVudmlyb25tZW50O1xuICAgICAgUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudC5yZXBsYWNlTm9kZVdpdGhNYXJrdXBCeUlEID0gZW52aXJvbm1lbnQucmVwbGFjZU5vZGVXaXRoTWFya3VwQnlJRDtcbiAgICAgIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQucHJvY2Vzc0NoaWxkcmVuVXBkYXRlcyA9IGVudmlyb25tZW50LnByb2Nlc3NDaGlsZHJlblVwZGF0ZXM7XG4gICAgICBpbmplY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 65 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocations\n */\n\n'use strict';\n\nvar keyMirror = __webpack_require__(17);\n\nvar ReactPropTypeLocations = keyMirror({\n prop: null,\n context: null,\n childContext: null\n});\n\nmodule.exports = ReactPropTypeLocations;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RQcm9wVHlwZUxvY2F0aW9ucy5qcz9iODE2Il0sIm5hbWVzIjpbImtleU1pcnJvciIsInJlcXVpcmUiLCJSZWFjdFByb3BUeXBlTG9jYXRpb25zIiwicHJvcCIsImNvbnRleHQiLCJjaGlsZENvbnRleHQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxZQUFZLG1CQUFBQyxDQUFRLEVBQVIsQ0FBaEI7O0FBRUEsSUFBSUMseUJBQXlCRixVQUFVO0FBQ3JDRyxRQUFNLElBRCtCO0FBRXJDQyxXQUFTLElBRjRCO0FBR3JDQyxnQkFBYztBQUh1QixDQUFWLENBQTdCOztBQU1BQyxPQUFPQyxPQUFQLEdBQWlCTCxzQkFBakIiLCJmaWxlIjoiNjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RQcm9wVHlwZUxvY2F0aW9uc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGtleU1pcnJvciA9IHJlcXVpcmUoJ2ZianMvbGliL2tleU1pcnJvcicpO1xuXG52YXIgUmVhY3RQcm9wVHlwZUxvY2F0aW9ucyA9IGtleU1pcnJvcih7XG4gIHByb3A6IG51bGwsXG4gIGNvbnRleHQ6IG51bGwsXG4gIGNoaWxkQ29udGV4dDogbnVsbFxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZUxvY2F0aW9ucztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RQcm9wVHlwZUxvY2F0aW9ucy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 66 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypeLocationNames\n */\n\n'use strict';\n\nvar ReactPropTypeLocationNames = {};\n\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n}\n\nmodule.exports = ReactPropTypeLocationNames;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMuanM/MTY4MCJdLCJuYW1lcyI6WyJSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3AiLCJjb250ZXh0IiwiY2hpbGRDb250ZXh0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsNkJBQTZCLEVBQWpDOztBQUVBLElBQUlDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6Q0gsK0JBQTZCO0FBQzNCSSxVQUFNLE1BRHFCO0FBRTNCQyxhQUFTLFNBRmtCO0FBRzNCQyxrQkFBYztBQUhhLEdBQTdCO0FBS0Q7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUJSLDBCQUFqQixDIiwiZmlsZSI6IjY2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMgPSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMgPSB7XG4gICAgcHJvcDogJ3Byb3AnLFxuICAgIGNvbnRleHQ6ICdjb250ZXh0JyxcbiAgICBjaGlsZENvbnRleHQ6ICdjaGlsZCBjb250ZXh0J1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 67 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shouldUpdateReactComponent\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Given a `prevElement` and `nextElement`, determines if the existing\n * instance should be updated as opposed to being destroyed or replaced by a new\n * instance. Both arguments are elements. This ensures that this logic can\n * operate on stateless trees without any backing instance.\n *\n * @param {?object} prevElement\n * @param {?object} nextElement\n * @return {boolean} True if the existing instance should be updated.\n * @protected\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction shouldUpdateReactComponent(prevElement, nextElement) {\n var prevEmpty = prevElement === null || prevElement === false;\n var nextEmpty = nextElement === null || nextElement === false;\n if (prevEmpty || nextEmpty) {\n return prevEmpty === nextEmpty;\n }\n\n var prevType = typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement);\n var nextType = typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement);\n if (prevType === 'string' || prevType === 'number') {\n return nextType === 'string' || nextType === 'number';\n } else {\n return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;\n }\n return false;\n}\n\nmodule.exports = shouldUpdateReactComponent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQuanM/Y2VjNCJdLCJuYW1lcyI6WyJzaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCIsInByZXZFbGVtZW50IiwibmV4dEVsZW1lbnQiLCJwcmV2RW1wdHkiLCJuZXh0RW1wdHkiLCJwcmV2VHlwZSIsIm5leHRUeXBlIiwidHlwZSIsImtleSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFXQSxTQUFTQSwwQkFBVCxDQUFvQ0MsV0FBcEMsRUFBaURDLFdBQWpELEVBQThEO0FBQzVELE1BQUlDLFlBQVlGLGdCQUFnQixJQUFoQixJQUF3QkEsZ0JBQWdCLEtBQXhEO0FBQ0EsTUFBSUcsWUFBWUYsZ0JBQWdCLElBQWhCLElBQXdCQSxnQkFBZ0IsS0FBeEQ7QUFDQSxNQUFJQyxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQixXQUFPRCxjQUFjQyxTQUFyQjtBQUNEOztBQUVELE1BQUlDLGtCQUFrQkosV0FBbEIseUNBQWtCQSxXQUFsQixDQUFKO0FBQ0EsTUFBSUssa0JBQWtCSixXQUFsQix5Q0FBa0JBLFdBQWxCLENBQUo7QUFDQSxNQUFJRyxhQUFhLFFBQWIsSUFBeUJBLGFBQWEsUUFBMUMsRUFBb0Q7QUFDbEQsV0FBT0MsYUFBYSxRQUFiLElBQXlCQSxhQUFhLFFBQTdDO0FBQ0QsR0FGRCxNQUVPO0FBQ0wsV0FBT0EsYUFBYSxRQUFiLElBQXlCTCxZQUFZTSxJQUFaLEtBQXFCTCxZQUFZSyxJQUExRCxJQUFrRU4sWUFBWU8sR0FBWixLQUFvQk4sWUFBWU0sR0FBekc7QUFDRDtBQUNELFNBQU8sS0FBUDtBQUNEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCViwwQkFBakIiLCJmaWxlIjoiNjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnRcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEdpdmVuIGEgYHByZXZFbGVtZW50YCBhbmQgYG5leHRFbGVtZW50YCwgZGV0ZXJtaW5lcyBpZiB0aGUgZXhpc3RpbmdcbiAqIGluc3RhbmNlIHNob3VsZCBiZSB1cGRhdGVkIGFzIG9wcG9zZWQgdG8gYmVpbmcgZGVzdHJveWVkIG9yIHJlcGxhY2VkIGJ5IGEgbmV3XG4gKiBpbnN0YW5jZS4gQm90aCBhcmd1bWVudHMgYXJlIGVsZW1lbnRzLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGlzIGxvZ2ljIGNhblxuICogb3BlcmF0ZSBvbiBzdGF0ZWxlc3MgdHJlZXMgd2l0aG91dCBhbnkgYmFja2luZyBpbnN0YW5jZS5cbiAqXG4gKiBAcGFyYW0gez9vYmplY3R9IHByZXZFbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG5leHRFbGVtZW50XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBleGlzdGluZyBpbnN0YW5jZSBzaG91bGQgYmUgdXBkYXRlZC5cbiAqIEBwcm90ZWN0ZWRcbiAqL1xuZnVuY3Rpb24gc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQocHJldkVsZW1lbnQsIG5leHRFbGVtZW50KSB7XG4gIHZhciBwcmV2RW1wdHkgPSBwcmV2RWxlbWVudCA9PT0gbnVsbCB8fCBwcmV2RWxlbWVudCA9PT0gZmFsc2U7XG4gIHZhciBuZXh0RW1wdHkgPSBuZXh0RWxlbWVudCA9PT0gbnVsbCB8fCBuZXh0RWxlbWVudCA9PT0gZmFsc2U7XG4gIGlmIChwcmV2RW1wdHkgfHwgbmV4dEVtcHR5KSB7XG4gICAgcmV0dXJuIHByZXZFbXB0eSA9PT0gbmV4dEVtcHR5O1xuICB9XG5cbiAgdmFyIHByZXZUeXBlID0gdHlwZW9mIHByZXZFbGVtZW50O1xuICB2YXIgbmV4dFR5cGUgPSB0eXBlb2YgbmV4dEVsZW1lbnQ7XG4gIGlmIChwcmV2VHlwZSA9PT0gJ3N0cmluZycgfHwgcHJldlR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIG5leHRUeXBlID09PSAnc3RyaW5nJyB8fCBuZXh0VHlwZSA9PT0gJ251bWJlcic7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5leHRUeXBlID09PSAnb2JqZWN0JyAmJiBwcmV2RWxlbWVudC50eXBlID09PSBuZXh0RWxlbWVudC50eXBlICYmIHByZXZFbGVtZW50LmtleSA9PT0gbmV4dEVsZW1lbnQua2V5O1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvc2hvdWxkVXBkYXRlUmVhY3RDb21wb25lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 68 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEmptyComponent\n */\n\n'use strict';\n\nvar ReactElement = __webpack_require__(42);\nvar ReactEmptyComponentRegistry = __webpack_require__(44);\nvar ReactReconciler = __webpack_require__(50);\n\nvar assign = __webpack_require__(39);\n\nvar placeholderElement;\n\nvar ReactEmptyComponentInjection = {\n injectEmptyComponent: function injectEmptyComponent(component) {\n placeholderElement = ReactElement.createElement(component);\n }\n};\n\nfunction registerNullComponentID() {\n ReactEmptyComponentRegistry.registerNullComponentID(this._rootNodeID);\n}\n\nvar ReactEmptyComponent = function ReactEmptyComponent(instantiate) {\n this._currentElement = null;\n this._rootNodeID = null;\n this._renderedComponent = instantiate(placeholderElement);\n};\nassign(ReactEmptyComponent.prototype, {\n construct: function construct(element) {},\n mountComponent: function mountComponent(rootID, transaction, context) {\n transaction.getReactMountReady().enqueue(registerNullComponentID, this);\n this._rootNodeID = rootID;\n return ReactReconciler.mountComponent(this._renderedComponent, rootID, transaction, context);\n },\n receiveComponent: function receiveComponent() {},\n unmountComponent: function unmountComponent(rootID, transaction, context) {\n ReactReconciler.unmountComponent(this._renderedComponent);\n ReactEmptyComponentRegistry.deregisterNullComponentID(this._rootNodeID);\n this._rootNodeID = null;\n this._renderedComponent = null;\n }\n});\n\nReactEmptyComponent.injection = ReactEmptyComponentInjection;\n\nmodule.exports = ReactEmptyComponent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFbXB0eUNvbXBvbmVudC5qcz8zNDQxIl0sIm5hbWVzIjpbIlJlYWN0RWxlbWVudCIsInJlcXVpcmUiLCJSZWFjdEVtcHR5Q29tcG9uZW50UmVnaXN0cnkiLCJSZWFjdFJlY29uY2lsZXIiLCJhc3NpZ24iLCJwbGFjZWhvbGRlckVsZW1lbnQiLCJSZWFjdEVtcHR5Q29tcG9uZW50SW5qZWN0aW9uIiwiaW5qZWN0RW1wdHlDb21wb25lbnQiLCJjb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwicmVnaXN0ZXJOdWxsQ29tcG9uZW50SUQiLCJfcm9vdE5vZGVJRCIsIlJlYWN0RW1wdHlDb21wb25lbnQiLCJpbnN0YW50aWF0ZSIsIl9jdXJyZW50RWxlbWVudCIsIl9yZW5kZXJlZENvbXBvbmVudCIsInByb3RvdHlwZSIsImNvbnN0cnVjdCIsImVsZW1lbnQiLCJtb3VudENvbXBvbmVudCIsInJvb3RJRCIsInRyYW5zYWN0aW9uIiwiY29udGV4dCIsImdldFJlYWN0TW91bnRSZWFkeSIsImVucXVldWUiLCJyZWNlaXZlQ29tcG9uZW50IiwidW5tb3VudENvbXBvbmVudCIsImRlcmVnaXN0ZXJOdWxsQ29tcG9uZW50SUQiLCJpbmplY3Rpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxlQUFlLG1CQUFBQyxDQUFRLEVBQVIsQ0FBbkI7QUFDQSxJQUFJQyw4QkFBOEIsbUJBQUFELENBQVEsRUFBUixDQUFsQztBQUNBLElBQUlFLGtCQUFrQixtQkFBQUYsQ0FBUSxFQUFSLENBQXRCOztBQUVBLElBQUlHLFNBQVMsbUJBQUFILENBQVEsRUFBUixDQUFiOztBQUVBLElBQUlJLGtCQUFKOztBQUVBLElBQUlDLCtCQUErQjtBQUNqQ0Msd0JBQXNCLDhCQUFVQyxTQUFWLEVBQXFCO0FBQ3pDSCx5QkFBcUJMLGFBQWFTLGFBQWIsQ0FBMkJELFNBQTNCLENBQXJCO0FBQ0Q7QUFIZ0MsQ0FBbkM7O0FBTUEsU0FBU0UsdUJBQVQsR0FBbUM7QUFDakNSLDhCQUE0QlEsdUJBQTVCLENBQW9ELEtBQUtDLFdBQXpEO0FBQ0Q7O0FBRUQsSUFBSUMsc0JBQXNCLFNBQXRCQSxtQkFBc0IsQ0FBVUMsV0FBVixFQUF1QjtBQUMvQyxPQUFLQyxlQUFMLEdBQXVCLElBQXZCO0FBQ0EsT0FBS0gsV0FBTCxHQUFtQixJQUFuQjtBQUNBLE9BQUtJLGtCQUFMLEdBQTBCRixZQUFZUixrQkFBWixDQUExQjtBQUNELENBSkQ7QUFLQUQsT0FBT1Esb0JBQW9CSSxTQUEzQixFQUFzQztBQUNwQ0MsYUFBVyxtQkFBVUMsT0FBVixFQUFtQixDQUFFLENBREk7QUFFcENDLGtCQUFnQix3QkFBVUMsTUFBVixFQUFrQkMsV0FBbEIsRUFBK0JDLE9BQS9CLEVBQXdDO0FBQ3RERCxnQkFBWUUsa0JBQVosR0FBaUNDLE9BQWpDLENBQXlDZCx1QkFBekMsRUFBa0UsSUFBbEU7QUFDQSxTQUFLQyxXQUFMLEdBQW1CUyxNQUFuQjtBQUNBLFdBQU9qQixnQkFBZ0JnQixjQUFoQixDQUErQixLQUFLSixrQkFBcEMsRUFBd0RLLE1BQXhELEVBQWdFQyxXQUFoRSxFQUE2RUMsT0FBN0UsQ0FBUDtBQUNELEdBTm1DO0FBT3BDRyxvQkFBa0IsNEJBQVksQ0FBRSxDQVBJO0FBUXBDQyxvQkFBa0IsMEJBQVVOLE1BQVYsRUFBa0JDLFdBQWxCLEVBQStCQyxPQUEvQixFQUF3QztBQUN4RG5CLG9CQUFnQnVCLGdCQUFoQixDQUFpQyxLQUFLWCxrQkFBdEM7QUFDQWIsZ0NBQTRCeUIseUJBQTVCLENBQXNELEtBQUtoQixXQUEzRDtBQUNBLFNBQUtBLFdBQUwsR0FBbUIsSUFBbkI7QUFDQSxTQUFLSSxrQkFBTCxHQUEwQixJQUExQjtBQUNEO0FBYm1DLENBQXRDOztBQWdCQUgsb0JBQW9CZ0IsU0FBcEIsR0FBZ0N0Qiw0QkFBaEM7O0FBRUF1QixPQUFPQyxPQUFQLEdBQWlCbEIsbUJBQWpCIiwiZmlsZSI6IjY4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNC0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RW1wdHlDb21wb25lbnRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEVsZW1lbnQgPSByZXF1aXJlKCcuL1JlYWN0RWxlbWVudCcpO1xudmFyIFJlYWN0RW1wdHlDb21wb25lbnRSZWdpc3RyeSA9IHJlcXVpcmUoJy4vUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5Jyk7XG52YXIgUmVhY3RSZWNvbmNpbGVyID0gcmVxdWlyZSgnLi9SZWFjdFJlY29uY2lsZXInKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xuXG52YXIgcGxhY2Vob2xkZXJFbGVtZW50O1xuXG52YXIgUmVhY3RFbXB0eUNvbXBvbmVudEluamVjdGlvbiA9IHtcbiAgaW5qZWN0RW1wdHlDb21wb25lbnQ6IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcbiAgICBwbGFjZWhvbGRlckVsZW1lbnQgPSBSZWFjdEVsZW1lbnQuY3JlYXRlRWxlbWVudChjb21wb25lbnQpO1xuICB9XG59O1xuXG5mdW5jdGlvbiByZWdpc3Rlck51bGxDb21wb25lbnRJRCgpIHtcbiAgUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5LnJlZ2lzdGVyTnVsbENvbXBvbmVudElEKHRoaXMuX3Jvb3ROb2RlSUQpO1xufVxuXG52YXIgUmVhY3RFbXB0eUNvbXBvbmVudCA9IGZ1bmN0aW9uIChpbnN0YW50aWF0ZSkge1xuICB0aGlzLl9jdXJyZW50RWxlbWVudCA9IG51bGw7XG4gIHRoaXMuX3Jvb3ROb2RlSUQgPSBudWxsO1xuICB0aGlzLl9yZW5kZXJlZENvbXBvbmVudCA9IGluc3RhbnRpYXRlKHBsYWNlaG9sZGVyRWxlbWVudCk7XG59O1xuYXNzaWduKFJlYWN0RW1wdHlDb21wb25lbnQucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdDogZnVuY3Rpb24gKGVsZW1lbnQpIHt9LFxuICBtb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHJvb3RJRCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKHJlZ2lzdGVyTnVsbENvbXBvbmVudElELCB0aGlzKTtcbiAgICB0aGlzLl9yb290Tm9kZUlEID0gcm9vdElEO1xuICAgIHJldHVybiBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQodGhpcy5fcmVuZGVyZWRDb21wb25lbnQsIHJvb3RJRCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICB9LFxuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAoKSB7fSxcbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHJvb3RJRCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICBSZWFjdFJlY29uY2lsZXIudW5tb3VudENvbXBvbmVudCh0aGlzLl9yZW5kZXJlZENvbXBvbmVudCk7XG4gICAgUmVhY3RFbXB0eUNvbXBvbmVudFJlZ2lzdHJ5LmRlcmVnaXN0ZXJOdWxsQ29tcG9uZW50SUQodGhpcy5fcm9vdE5vZGVJRCk7XG4gICAgdGhpcy5fcm9vdE5vZGVJRCA9IG51bGw7XG4gICAgdGhpcy5fcmVuZGVyZWRDb21wb25lbnQgPSBudWxsO1xuICB9XG59KTtcblxuUmVhY3RFbXB0eUNvbXBvbmVudC5pbmplY3Rpb24gPSBSZWFjdEVtcHR5Q29tcG9uZW50SW5qZWN0aW9uO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RW1wdHlDb21wb25lbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RW1wdHlDb21wb25lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 69 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNativeComponent\n */\n\n'use strict';\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\n\nvar autoGenerateWrapperClass = null;\nvar genericComponentClass = null;\n// This registry keeps track of wrapper classes around native tags.\nvar tagToComponentClass = {};\nvar textComponentClass = null;\n\nvar ReactNativeComponentInjection = {\n // This accepts a class that receives the tag string. This is a catch all\n // that can render any kind of tag.\n injectGenericComponentClass: function injectGenericComponentClass(componentClass) {\n genericComponentClass = componentClass;\n },\n // This accepts a text component class that takes the text string to be\n // rendered as props.\n injectTextComponentClass: function injectTextComponentClass(componentClass) {\n textComponentClass = componentClass;\n },\n // This accepts a keyed object with classes as values. Each key represents a\n // tag. That particular tag will use this class instead of the generic one.\n injectComponentClasses: function injectComponentClasses(componentClasses) {\n assign(tagToComponentClass, componentClasses);\n }\n};\n\n/**\n * Get a composite component wrapper class for a specific tag.\n *\n * @param {ReactElement} element The tag for which to get the class.\n * @return {function} The React class constructor function.\n */\nfunction getComponentClassForElement(element) {\n if (typeof element.type === 'function') {\n return element.type;\n }\n var tag = element.type;\n var componentClass = tagToComponentClass[tag];\n if (componentClass == null) {\n tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag);\n }\n return componentClass;\n}\n\n/**\n * Get a native internal component class for a specific tag.\n *\n * @param {ReactElement} element The element to create.\n * @return {function} The internal class constructor function.\n */\nfunction createInternalComponent(element) {\n !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : invariant(false) : undefined;\n return new genericComponentClass(element.type, element.props);\n}\n\n/**\n * @param {ReactText} text\n * @return {ReactComponent}\n */\nfunction createInstanceForText(text) {\n return new textComponentClass(text);\n}\n\n/**\n * @param {ReactComponent} component\n * @return {boolean}\n */\nfunction isTextComponent(component) {\n return component instanceof textComponentClass;\n}\n\nvar ReactNativeComponent = {\n getComponentClassForElement: getComponentClassForElement,\n createInternalComponent: createInternalComponent,\n createInstanceForText: createInstanceForText,\n isTextComponent: isTextComponent,\n injection: ReactNativeComponentInjection\n};\n\nmodule.exports = ReactNativeComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3ROYXRpdmVDb21wb25lbnQuanM/ZTY3ZSJdLCJuYW1lcyI6WyJhc3NpZ24iLCJyZXF1aXJlIiwiaW52YXJpYW50IiwiYXV0b0dlbmVyYXRlV3JhcHBlckNsYXNzIiwiZ2VuZXJpY0NvbXBvbmVudENsYXNzIiwidGFnVG9Db21wb25lbnRDbGFzcyIsInRleHRDb21wb25lbnRDbGFzcyIsIlJlYWN0TmF0aXZlQ29tcG9uZW50SW5qZWN0aW9uIiwiaW5qZWN0R2VuZXJpY0NvbXBvbmVudENsYXNzIiwiY29tcG9uZW50Q2xhc3MiLCJpbmplY3RUZXh0Q29tcG9uZW50Q2xhc3MiLCJpbmplY3RDb21wb25lbnRDbGFzc2VzIiwiY29tcG9uZW50Q2xhc3NlcyIsImdldENvbXBvbmVudENsYXNzRm9yRWxlbWVudCIsImVsZW1lbnQiLCJ0eXBlIiwidGFnIiwiY3JlYXRlSW50ZXJuYWxDb21wb25lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJwcm9wcyIsImNyZWF0ZUluc3RhbmNlRm9yVGV4dCIsInRleHQiLCJpc1RleHRDb21wb25lbnQiLCJjb21wb25lbnQiLCJSZWFjdE5hdGl2ZUNvbXBvbmVudCIsImluamVjdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLFNBQVMsbUJBQUFDLENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUMsWUFBWSxtQkFBQUQsQ0FBUSxFQUFSLENBQWhCOztBQUVBLElBQUlFLDJCQUEyQixJQUEvQjtBQUNBLElBQUlDLHdCQUF3QixJQUE1QjtBQUNBO0FBQ0EsSUFBSUMsc0JBQXNCLEVBQTFCO0FBQ0EsSUFBSUMscUJBQXFCLElBQXpCOztBQUVBLElBQUlDLGdDQUFnQztBQUNsQztBQUNBO0FBQ0FDLCtCQUE2QixxQ0FBVUMsY0FBVixFQUEwQjtBQUNyREwsNEJBQXdCSyxjQUF4QjtBQUNELEdBTGlDO0FBTWxDO0FBQ0E7QUFDQUMsNEJBQTBCLGtDQUFVRCxjQUFWLEVBQTBCO0FBQ2xESCx5QkFBcUJHLGNBQXJCO0FBQ0QsR0FWaUM7QUFXbEM7QUFDQTtBQUNBRSwwQkFBd0IsZ0NBQVVDLGdCQUFWLEVBQTRCO0FBQ2xEWixXQUFPSyxtQkFBUCxFQUE0Qk8sZ0JBQTVCO0FBQ0Q7QUFmaUMsQ0FBcEM7O0FBa0JBOzs7Ozs7QUFNQSxTQUFTQywyQkFBVCxDQUFxQ0MsT0FBckMsRUFBOEM7QUFDNUMsTUFBSSxPQUFPQSxRQUFRQyxJQUFmLEtBQXdCLFVBQTVCLEVBQXdDO0FBQ3RDLFdBQU9ELFFBQVFDLElBQWY7QUFDRDtBQUNELE1BQUlDLE1BQU1GLFFBQVFDLElBQWxCO0FBQ0EsTUFBSU4saUJBQWlCSixvQkFBb0JXLEdBQXBCLENBQXJCO0FBQ0EsTUFBSVAsa0JBQWtCLElBQXRCLEVBQTRCO0FBQzFCSix3QkFBb0JXLEdBQXBCLElBQTJCUCxpQkFBaUJOLHlCQUF5QmEsR0FBekIsQ0FBNUM7QUFDRDtBQUNELFNBQU9QLGNBQVA7QUFDRDs7QUFFRDs7Ozs7O0FBTUEsU0FBU1EsdUJBQVQsQ0FBaUNILE9BQWpDLEVBQTBDO0FBQ3hDLEdBQUNWLHFCQUFELEdBQXlCYyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NsQixVQUFVLEtBQVYsRUFBaUIsaURBQWpCLEVBQW9FWSxRQUFRQyxJQUE1RSxDQUF4QyxHQUE0SGIsVUFBVSxLQUFWLENBQXJKLEdBQXdLbUIsU0FBeEs7QUFDQSxTQUFPLElBQUlqQixxQkFBSixDQUEwQlUsUUFBUUMsSUFBbEMsRUFBd0NELFFBQVFRLEtBQWhELENBQVA7QUFDRDs7QUFFRDs7OztBQUlBLFNBQVNDLHFCQUFULENBQStCQyxJQUEvQixFQUFxQztBQUNuQyxTQUFPLElBQUlsQixrQkFBSixDQUF1QmtCLElBQXZCLENBQVA7QUFDRDs7QUFFRDs7OztBQUlBLFNBQVNDLGVBQVQsQ0FBeUJDLFNBQXpCLEVBQW9DO0FBQ2xDLFNBQU9BLHFCQUFxQnBCLGtCQUE1QjtBQUNEOztBQUVELElBQUlxQix1QkFBdUI7QUFDekJkLCtCQUE2QkEsMkJBREo7QUFFekJJLDJCQUF5QkEsdUJBRkE7QUFHekJNLHlCQUF1QkEscUJBSEU7QUFJekJFLG1CQUFpQkEsZUFKUTtBQUt6QkcsYUFBV3JCO0FBTGMsQ0FBM0I7O0FBUUFzQixPQUFPQyxPQUFQLEdBQWlCSCxvQkFBakIsQyIsImZpbGUiOiI2OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdE5hdGl2ZUNvbXBvbmVudFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG52YXIgYXV0b0dlbmVyYXRlV3JhcHBlckNsYXNzID0gbnVsbDtcbnZhciBnZW5lcmljQ29tcG9uZW50Q2xhc3MgPSBudWxsO1xuLy8gVGhpcyByZWdpc3RyeSBrZWVwcyB0cmFjayBvZiB3cmFwcGVyIGNsYXNzZXMgYXJvdW5kIG5hdGl2ZSB0YWdzLlxudmFyIHRhZ1RvQ29tcG9uZW50Q2xhc3MgPSB7fTtcbnZhciB0ZXh0Q29tcG9uZW50Q2xhc3MgPSBudWxsO1xuXG52YXIgUmVhY3ROYXRpdmVDb21wb25lbnRJbmplY3Rpb24gPSB7XG4gIC8vIFRoaXMgYWNjZXB0cyBhIGNsYXNzIHRoYXQgcmVjZWl2ZXMgdGhlIHRhZyBzdHJpbmcuIFRoaXMgaXMgYSBjYXRjaCBhbGxcbiAgLy8gdGhhdCBjYW4gcmVuZGVyIGFueSBraW5kIG9mIHRhZy5cbiAgaW5qZWN0R2VuZXJpY0NvbXBvbmVudENsYXNzOiBmdW5jdGlvbiAoY29tcG9uZW50Q2xhc3MpIHtcbiAgICBnZW5lcmljQ29tcG9uZW50Q2xhc3MgPSBjb21wb25lbnRDbGFzcztcbiAgfSxcbiAgLy8gVGhpcyBhY2NlcHRzIGEgdGV4dCBjb21wb25lbnQgY2xhc3MgdGhhdCB0YWtlcyB0aGUgdGV4dCBzdHJpbmcgdG8gYmVcbiAgLy8gcmVuZGVyZWQgYXMgcHJvcHMuXG4gIGluamVjdFRleHRDb21wb25lbnRDbGFzczogZnVuY3Rpb24gKGNvbXBvbmVudENsYXNzKSB7XG4gICAgdGV4dENvbXBvbmVudENsYXNzID0gY29tcG9uZW50Q2xhc3M7XG4gIH0sXG4gIC8vIFRoaXMgYWNjZXB0cyBhIGtleWVkIG9iamVjdCB3aXRoIGNsYXNzZXMgYXMgdmFsdWVzLiBFYWNoIGtleSByZXByZXNlbnRzIGFcbiAgLy8gdGFnLiBUaGF0IHBhcnRpY3VsYXIgdGFnIHdpbGwgdXNlIHRoaXMgY2xhc3MgaW5zdGVhZCBvZiB0aGUgZ2VuZXJpYyBvbmUuXG4gIGluamVjdENvbXBvbmVudENsYXNzZXM6IGZ1bmN0aW9uIChjb21wb25lbnRDbGFzc2VzKSB7XG4gICAgYXNzaWduKHRhZ1RvQ29tcG9uZW50Q2xhc3MsIGNvbXBvbmVudENsYXNzZXMpO1xuICB9XG59O1xuXG4vKipcbiAqIEdldCBhIGNvbXBvc2l0ZSBjb21wb25lbnQgd3JhcHBlciBjbGFzcyBmb3IgYSBzcGVjaWZpYyB0YWcuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgVGhlIHRhZyBmb3Igd2hpY2ggdG8gZ2V0IHRoZSBjbGFzcy5cbiAqIEByZXR1cm4ge2Z1bmN0aW9ufSBUaGUgUmVhY3QgY2xhc3MgY29uc3RydWN0b3IgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGdldENvbXBvbmVudENsYXNzRm9yRWxlbWVudChlbGVtZW50KSB7XG4gIGlmICh0eXBlb2YgZWxlbWVudC50eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQudHlwZTtcbiAgfVxuICB2YXIgdGFnID0gZWxlbWVudC50eXBlO1xuICB2YXIgY29tcG9uZW50Q2xhc3MgPSB0YWdUb0NvbXBvbmVudENsYXNzW3RhZ107XG4gIGlmIChjb21wb25lbnRDbGFzcyA9PSBudWxsKSB7XG4gICAgdGFnVG9Db21wb25lbnRDbGFzc1t0YWddID0gY29tcG9uZW50Q2xhc3MgPSBhdXRvR2VuZXJhdGVXcmFwcGVyQ2xhc3ModGFnKTtcbiAgfVxuICByZXR1cm4gY29tcG9uZW50Q2xhc3M7XG59XG5cbi8qKlxuICogR2V0IGEgbmF0aXZlIGludGVybmFsIGNvbXBvbmVudCBjbGFzcyBmb3IgYSBzcGVjaWZpYyB0YWcuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgVGhlIGVsZW1lbnQgdG8gY3JlYXRlLlxuICogQHJldHVybiB7ZnVuY3Rpb259IFRoZSBpbnRlcm5hbCBjbGFzcyBjb25zdHJ1Y3RvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW50ZXJuYWxDb21wb25lbnQoZWxlbWVudCkge1xuICAhZ2VuZXJpY0NvbXBvbmVudENsYXNzID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1RoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgY29tcG9uZW50IGZvciB0aGUgdGFnICVzJywgZWxlbWVudC50eXBlKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBuZXcgZ2VuZXJpY0NvbXBvbmVudENsYXNzKGVsZW1lbnQudHlwZSwgZWxlbWVudC5wcm9wcyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWFjdFRleHR9IHRleHRcbiAqIEByZXR1cm4ge1JlYWN0Q29tcG9uZW50fVxuICovXG5mdW5jdGlvbiBjcmVhdGVJbnN0YW5jZUZvclRleHQodGV4dCkge1xuICByZXR1cm4gbmV3IHRleHRDb21wb25lbnRDbGFzcyh0ZXh0KTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjb21wb25lbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzVGV4dENvbXBvbmVudChjb21wb25lbnQpIHtcbiAgcmV0dXJuIGNvbXBvbmVudCBpbnN0YW5jZW9mIHRleHRDb21wb25lbnRDbGFzcztcbn1cblxudmFyIFJlYWN0TmF0aXZlQ29tcG9uZW50ID0ge1xuICBnZXRDb21wb25lbnRDbGFzc0ZvckVsZW1lbnQ6IGdldENvbXBvbmVudENsYXNzRm9yRWxlbWVudCxcbiAgY3JlYXRlSW50ZXJuYWxDb21wb25lbnQ6IGNyZWF0ZUludGVybmFsQ29tcG9uZW50LFxuICBjcmVhdGVJbnN0YW5jZUZvclRleHQ6IGNyZWF0ZUluc3RhbmNlRm9yVGV4dCxcbiAgaXNUZXh0Q29tcG9uZW50OiBpc1RleHRDb21wb25lbnQsXG4gIGluamVjdGlvbjogUmVhY3ROYXRpdmVDb21wb25lbnRJbmplY3Rpb25cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3ROYXRpdmVDb21wb25lbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0TmF0aXZlQ29tcG9uZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 70 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule validateDOMNesting\n */\n\n'use strict';\n\nvar assign = __webpack_require__(39);\nvar emptyFunction = __webpack_require__(15);\nvar warning = __webpack_require__(25);\n\nvar validateDOMNesting = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title'];\n\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n var buttonScopeTags = inScopeTags.concat(['button']);\n\n // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n var emptyAncestorInfo = {\n parentTag: null,\n\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n var updatedAncestorInfo = function updatedAncestorInfo(oldInfo, tag, instance) {\n var ancestorInfo = assign({}, oldInfo || emptyAncestorInfo);\n var info = { tag: tag, instance: instance };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n }\n\n // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.parentTag = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n\n /**\n * Returns whether\n */\n var isTagValidWithParent = function isTagValidWithParent(tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n case 'option':\n return tag === '#text';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n case 'html':\n return tag === 'head' || tag === 'body';\n }\n\n // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frame':\n case 'head':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n\n /**\n * Returns whether\n */\n var findInvalidAncestorForTag = function findInvalidAncestorForTag(tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n\n case 'pre':\n case 'listing':\n\n case 'table':\n\n case 'hr':\n\n case 'xmp':\n\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n /**\n * Given a ReactCompositeComponent instance, return a list of its recursive\n * owners, starting at the root and ending with the instance itself.\n */\n var findOwnerStack = function findOwnerStack(instance) {\n if (!instance) {\n return [];\n }\n\n var stack = [];\n /*eslint-disable space-after-keywords */\n do {\n /*eslint-enable space-after-keywords */\n stack.push(instance);\n } while (instance = instance._currentElement._owner);\n stack.reverse();\n return stack;\n };\n\n var didWarn = {};\n\n validateDOMNesting = function validateDOMNesting(childTag, childInstance, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.parentTag;\n var parentTag = parentInfo && parentInfo.tag;\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var problematic = invalidParent || invalidAncestor;\n\n if (problematic) {\n var ancestorTag = problematic.tag;\n var ancestorInstance = problematic.instance;\n\n var childOwner = childInstance && childInstance._currentElement._owner;\n var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;\n\n var childOwners = findOwnerStack(childOwner);\n var ancestorOwners = findOwnerStack(ancestorOwner);\n\n var minStackLen = Math.min(childOwners.length, ancestorOwners.length);\n var i;\n\n var deepestCommon = -1;\n for (i = 0; i < minStackLen; i++) {\n if (childOwners[i] === ancestorOwners[i]) {\n deepestCommon = i;\n } else {\n break;\n }\n }\n\n var UNKNOWN = '(unknown)';\n var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {\n return inst.getName() || UNKNOWN;\n });\n var ownerInfo = [].concat(\n // If the parent and child instances have a common owner ancestor, start\n // with that -- otherwise we just start with the parent's owners.\n deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,\n // If we're warning about an invalid (non-parent) ancestry, add '...'\n invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');\n\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;\n if (didWarn[warnKey]) {\n return;\n }\n didWarn[warnKey] = true;\n\n if (invalidParent) {\n var info = '';\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a child of <%s>. ' + 'See %s.%s', childTag, ancestorTag, ownerInfo, info) : undefined;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): <%s> cannot appear as a descendant of ' + '<%s>. See %s.', childTag, ancestorTag, ownerInfo) : undefined;\n }\n }\n };\n\n validateDOMNesting.ancestorInfoContextKey = '__validateDOMNesting_ancestorInfo$' + Math.random().toString(36).slice(2);\n\n validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;\n\n // For testing\n validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.parentTag;\n var parentTag = parentInfo && parentInfo.tag;\n return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);\n };\n}\n\nmodule.exports = validateDOMNesting;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvdmFsaWRhdGVET01OZXN0aW5nLmpzPzczZmUiXSwibmFtZXMiOlsiYXNzaWduIiwicmVxdWlyZSIsImVtcHR5RnVuY3Rpb24iLCJ3YXJuaW5nIiwidmFsaWRhdGVET01OZXN0aW5nIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwic3BlY2lhbFRhZ3MiLCJpblNjb3BlVGFncyIsImJ1dHRvblNjb3BlVGFncyIsImNvbmNhdCIsImltcGxpZWRFbmRUYWdzIiwiZW1wdHlBbmNlc3RvckluZm8iLCJwYXJlbnRUYWciLCJmb3JtVGFnIiwiYVRhZ0luU2NvcGUiLCJidXR0b25UYWdJblNjb3BlIiwibm9iclRhZ0luU2NvcGUiLCJwVGFnSW5CdXR0b25TY29wZSIsImxpc3RJdGVtVGFnQXV0b2Nsb3NpbmciLCJkbEl0ZW1UYWdBdXRvY2xvc2luZyIsInVwZGF0ZWRBbmNlc3RvckluZm8iLCJvbGRJbmZvIiwidGFnIiwiaW5zdGFuY2UiLCJhbmNlc3RvckluZm8iLCJpbmZvIiwiaW5kZXhPZiIsImlzVGFnVmFsaWRXaXRoUGFyZW50IiwiZmluZEludmFsaWRBbmNlc3RvckZvclRhZyIsImZpbmRPd25lclN0YWNrIiwic3RhY2siLCJwdXNoIiwiX2N1cnJlbnRFbGVtZW50IiwiX293bmVyIiwicmV2ZXJzZSIsImRpZFdhcm4iLCJjaGlsZFRhZyIsImNoaWxkSW5zdGFuY2UiLCJwYXJlbnRJbmZvIiwiaW52YWxpZFBhcmVudCIsImludmFsaWRBbmNlc3RvciIsInByb2JsZW1hdGljIiwiYW5jZXN0b3JUYWciLCJhbmNlc3Rvckluc3RhbmNlIiwiY2hpbGRPd25lciIsImFuY2VzdG9yT3duZXIiLCJjaGlsZE93bmVycyIsImFuY2VzdG9yT3duZXJzIiwibWluU3RhY2tMZW4iLCJNYXRoIiwibWluIiwibGVuZ3RoIiwiaSIsImRlZXBlc3RDb21tb24iLCJVTktOT1dOIiwiY2hpbGRPd25lck5hbWVzIiwic2xpY2UiLCJtYXAiLCJpbnN0IiwiZ2V0TmFtZSIsImFuY2VzdG9yT3duZXJOYW1lcyIsIm93bmVySW5mbyIsImpvaW4iLCJ3YXJuS2V5IiwidW5kZWZpbmVkIiwiYW5jZXN0b3JJbmZvQ29udGV4dEtleSIsInJhbmRvbSIsInRvU3RyaW5nIiwiaXNUYWdWYWxpZEluQ29udGV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLFNBQVMsbUJBQUFDLENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUMsZ0JBQWdCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBcEI7QUFDQSxJQUFJRSxVQUFVLG1CQUFBRixDQUFRLEVBQVIsQ0FBZDs7QUFFQSxJQUFJRyxxQkFBcUJGLGFBQXpCOztBQUVBLElBQUlHLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQUlDLGNBQWMsQ0FBQyxTQUFELEVBQVksUUFBWixFQUFzQixNQUF0QixFQUE4QixTQUE5QixFQUF5QyxPQUF6QyxFQUFrRCxNQUFsRCxFQUEwRCxVQUExRCxFQUFzRSxTQUF0RSxFQUFpRixZQUFqRixFQUErRixNQUEvRixFQUF1RyxJQUF2RyxFQUE2RyxRQUE3RyxFQUF1SCxTQUF2SCxFQUFrSSxRQUFsSSxFQUE0SSxLQUE1SSxFQUFtSixVQUFuSixFQUErSixJQUEvSixFQUFxSyxTQUFySyxFQUFnTCxLQUFoTCxFQUF1TCxLQUF2TCxFQUE4TCxJQUE5TCxFQUFvTSxJQUFwTSxFQUEwTSxPQUExTSxFQUFtTixVQUFuTixFQUErTixZQUEvTixFQUE2TyxRQUE3TyxFQUF1UCxRQUF2UCxFQUFpUSxNQUFqUSxFQUF5USxPQUF6USxFQUFrUixVQUFsUixFQUE4UixJQUE5UixFQUFvUyxJQUFwUyxFQUEw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LGVBQW5GLEVBQW9HbUMsUUFBcEcsRUFBOEdNLFdBQTlHLEVBQTJIbUIsU0FBM0gsQ0FBeEMsR0FBZ0xHLFNBQWhMO0FBQ0Q7QUFDRjtBQUNGLEdBN0REOztBQStEQTlELHFCQUFtQitELHNCQUFuQixHQUE0Qyx1Q0FBdUNoQixLQUFLaUIsTUFBTCxHQUFjQyxRQUFkLENBQXVCLEVBQXZCLEVBQTJCWCxLQUEzQixDQUFpQyxDQUFqQyxDQUFuRjs7QUFFQXRELHFCQUFtQmtCLG1CQUFuQixHQUF5Q0EsbUJBQXpDOztBQUVBO0FBQ0FsQixxQkFBbUJrRSxtQkFBbkIsR0FBeUMsVUFBVTlDLEdBQVYsRUFBZUUsWUFBZixFQUE2QjtBQUNwRUEsbUJBQWVBLGdCQUFnQmIsaUJBQS9CO0FBQ0EsUUFBSTJCLGFBQWFkLGFBQWFaLFNBQTlCO0FBQ0EsUUFBSUEsWUFBWTBCLGNBQWNBLFdBQVdoQixHQUF6QztBQUNBLFdBQU9LLHFCQUFxQkwsR0FBckIsRUFBMEJWLFNBQTFCLEtBQXdDLENBQUNnQiwwQkFBMEJOLEdBQTFCLEVBQStCRSxZQUEvQixDQUFoRDtBQUNELEdBTEQ7QUFNRDs7QUFFRDZDLE9BQU9DLE9BQVAsR0FBaUJwRSxrQkFBakIsQyIsImZpbGUiOiI3MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgdmFsaWRhdGVET01OZXN0aW5nXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgZW1wdHlGdW5jdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2VtcHR5RnVuY3Rpb24nKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgdmFsaWRhdGVET01OZXN0aW5nID0gZW1wdHlGdW5jdGlvbjtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gVGhpcyB2YWxpZGF0aW9uIGNvZGUgd2FzIHdyaXR0ZW4gYmFzZWQgb24gdGhlIEhUTUw1IHBhcnNpbmcgc3BlYzpcbiAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjaGFzLWFuLWVsZW1lbnQtaW4tc2NvcGVcbiAgLy9cbiAgLy8gTm90ZTogdGhpcyBkb2VzIG5vdCBjYXRjaCBhbGwgaW52YWxpZCBuZXN0aW5nLCBub3IgZG9lcyBpdCB0cnkgdG8gKGFzIGl0J3NcbiAgLy8gbm90IGNsZWFyIHdoYXQgcHJhY3RpY2FsIGJlbmVmaXQgZG9pbmcgc28gcHJvdmlkZXMpOyBpbnN0ZWFkLCB3ZSB3YXJuIG9ubHlcbiAgLy8gZm9yIGNhc2VzIHdoZXJlIHRoZSBwYXJzZXIgd2lsbCBnaXZlIGEgcGFyc2UgdHJlZSBkaWZmZXJpbmcgZnJvbSB3aGF0IFJlYWN0XG4gIC8vIGludGVuZGVkLiBGb3IgZXhhbXBsZSwgPGI+PGRpdj48L2Rpdj48L2I+IGlzIGludmFsaWQgYnV0IHdlIGRvbid0IHdhcm5cbiAgLy8gYmVjYXVzZSBpdCBzdGlsbCBwYXJzZXMgY29ycmVjdGx5OyB3ZSBkbyB3YXJuIGZvciBvdGhlciBjYXNlcyBsaWtlIG5lc3RlZFxuICAvLyA8cD4gdGFncyB3aGVyZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzZWNvbmQgZWxlbWVudCBpbXBsaWNpdGx5IGNsb3NlcyB0aGVcbiAgLy8gZmlyc3QsIGNhdXNpbmcgYSBjb25mdXNpbmcgbWVzcy5cblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNzcGVjaWFsXG4gIHZhciBzcGVjaWFsVGFncyA9IFsnYWRkcmVzcycsICdhcHBsZXQnLCAnYXJlYScsICdhcnRpY2xlJywgJ2FzaWRlJywgJ2Jhc2UnLCAnYmFzZWZvbnQnLCAnYmdzb3VuZCcsICdibG9ja3F1b3RlJywgJ2JvZHknLCAnYnInLCAnYnV0dG9uJywgJ2NhcHRpb24nLCAnY2VudGVyJywgJ2NvbCcsICdjb2xncm91cCcsICdkZCcsICdkZXRhaWxzJywgJ2RpcicsICdkaXYnLCAnZGwnLCAnZHQnLCAnZW1iZWQnLCAnZmllbGRzZXQnLCAnZmlnY2FwdGlvbicsICdmaWd1cmUnLCAnZm9vdGVyJywgJ2Zvcm0nLCAnZnJhbWUnLCAnZnJhbWVzZXQnLCAnaDEnLCAnaDInLCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLCAnaGVhZCcsICdoZWFkZXInLCAnaGdyb3VwJywgJ2hyJywgJ2h0bWwnLCAnaWZyYW1lJywgJ2ltZycsICdpbnB1dCcsICdpc2luZGV4JywgJ2xpJywgJ2xpbmsnLCAnbGlzdGluZycsICdtYWluJywgJ21hcnF1ZWUnLCAnbWVudScsICdtZW51aXRlbScsICdtZXRhJywgJ25hdicsICdub2VtYmVkJywgJ25vZnJhbWVzJywgJ25vc2NyaXB0JywgJ29iamVjdCcsICdvbCcsICdwJywgJ3BhcmFtJywgJ3BsYWludGV4dCcsICdwcmUnLCAnc2NyaXB0JywgJ3NlY3Rpb24nLCAnc2VsZWN0JywgJ3NvdXJjZScsICdzdHlsZScsICdzdW1tYXJ5JywgJ3RhYmxlJywgJ3Rib2R5JywgJ3RkJywgJ3RlbXBsYXRlJywgJ3RleHRhcmVhJywgJ3Rmb290JywgJ3RoJywgJ3RoZWFkJywgJ3RpdGxlJywgJ3RyJywgJ3RyYWNrJywgJ3VsJywgJ3dicicsICd4bXAnXTtcblxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNoYXMtYW4tZWxlbWVudC1pbi1zY29wZVxuICB2YXIgaW5TY29wZVRhZ3MgPSBbJ2FwcGxldCcsICdjYXB0aW9uJywgJ2h0bWwnLCAndGFibGUnLCAndGQnLCAndGgnLCAnbWFycXVlZScsICdvYmplY3QnLCAndGVtcGxhdGUnLFxuXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2h0bWwtaW50ZWdyYXRpb24tcG9pbnRcbiAgLy8gVE9ETzogRGlzdGluZ3Vpc2ggYnkgbmFtZXNwYWNlIGhlcmUgLS0gZm9yIDx0aXRsZT4sIGluY2x1ZGluZyBpdCBoZXJlXG4gIC8vIGVycnMgb24gdGhlIHNpZGUgb2YgZmV3ZXIgd2FybmluZ3NcbiAgJ2ZvcmVpZ25PYmplY3QnLCAnZGVzYycsICd0aXRsZSddO1xuXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLWJ1dHRvbi1zY29wZVxuICB2YXIgYnV0dG9uU2NvcGVUYWdzID0gaW5TY29wZVRhZ3MuY29uY2F0KFsnYnV0dG9uJ10pO1xuXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2dlbmVyYXRlLWltcGxpZWQtZW5kLXRhZ3NcbiAgdmFyIGltcGxpZWRFbmRUYWdzID0gWydkZCcsICdkdCcsICdsaScsICdvcHRpb24nLCAnb3B0Z3JvdXAnLCAncCcsICdycCcsICdydCddO1xuXG4gIHZhciBlbXB0eUFuY2VzdG9ySW5mbyA9IHtcbiAgICBwYXJlbnRUYWc6IG51bGwsXG5cbiAgICBmb3JtVGFnOiBudWxsLFxuICAgIGFUYWdJblNjb3BlOiBudWxsLFxuICAgIGJ1dHRvblRhZ0luU2NvcGU6IG51bGwsXG4gICAgbm9iclRhZ0luU2NvcGU6IG51bGwsXG4gICAgcFRhZ0luQnV0dG9uU2NvcGU6IG51bGwsXG5cbiAgICBsaXN0SXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsLFxuICAgIGRsSXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsXG4gIH07XG5cbiAgdmFyIHVwZGF0ZWRBbmNlc3RvckluZm8gPSBmdW5jdGlvbiAob2xkSW5mbywgdGFnLCBpbnN0YW5jZSkge1xuICAgIHZhciBhbmNlc3RvckluZm8gPSBhc3NpZ24oe30sIG9sZEluZm8gfHwgZW1wdHlBbmNlc3RvckluZm8pO1xuICAgIHZhciBpbmZvID0geyB0YWc6IHRhZywgaW5zdGFuY2U6IGluc3RhbmNlIH07XG5cbiAgICBpZiAoaW5TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gbnVsbDtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IG51bGw7XG4gICAgfVxuICAgIGlmIChidXR0b25TY29wZVRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSkge1xuICAgICAgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlID0gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBTZWUgcnVsZXMgZm9yICdsaScsICdkZCcsICdkdCcgc3RhcnQgdGFncyBpblxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcbiAgICBpZiAoc3BlY2lhbFRhZ3MuaW5kZXhPZih0YWcpICE9PSAtMSAmJiB0YWcgIT09ICdhZGRyZXNzJyAmJiB0YWcgIT09ICdkaXYnICYmIHRhZyAhPT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZyA9IG51bGw7XG4gICAgICBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsO1xuICAgIH1cblxuICAgIGFuY2VzdG9ySW5mby5wYXJlbnRUYWcgPSBpbmZvO1xuXG4gICAgaWYgKHRhZyA9PT0gJ2Zvcm0nKSB7XG4gICAgICBhbmNlc3RvckluZm8uZm9ybVRhZyA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdhJykge1xuICAgICAgYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG4gICAgaWYgKHRhZyA9PT0gJ2J1dHRvbicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG4gICAgaWYgKHRhZyA9PT0gJ25vYnInKSB7XG4gICAgICBhbmNlc3RvckluZm8ubm9iclRhZ0luU2NvcGUgPSBpbmZvO1xuICAgIH1cbiAgICBpZiAodGFnID09PSAncCcpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IGluZm87XG4gICAgfVxuICAgIGlmICh0YWcgPT09ICdsaScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG4gICAgaWYgKHRhZyA9PT0gJ2RkJyB8fCB0YWcgPT09ICdkdCcpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZyA9IGluZm87XG4gICAgfVxuXG4gICAgcmV0dXJuIGFuY2VzdG9ySW5mbztcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuICB2YXIgaXNUYWdWYWxpZFdpdGhQYXJlbnQgPSBmdW5jdGlvbiAodGFnLCBwYXJlbnRUYWcpIHtcbiAgICAvLyBGaXJzdCwgbGV0J3MgY2hlY2sgaWYgd2UncmUgaW4gYW4gdW51c3VhbCBwYXJzaW5nIG1vZGUuLi5cbiAgICBzd2l0Y2ggKHBhcmVudFRhZykge1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluc2VsZWN0XG4gICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnb3B0aW9uJyB8fCB0YWcgPT09ICdvcHRncm91cCcgfHwgdGFnID09PSAnI3RleHQnO1xuICAgICAgY2FzZSAnb3B0Z3JvdXAnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnb3B0aW9uJyB8fCB0YWcgPT09ICcjdGV4dCc7XG4gICAgICAvLyBTdHJpY3RseSBzcGVha2luZywgc2VlaW5nIGFuIDxvcHRpb24+IGRvZXNuJ3QgbWVhbiB3ZSdyZSBpbiBhIDxzZWxlY3Q+XG4gICAgICAvLyBidXRcbiAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICcjdGV4dCc7XG5cbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRkXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5jYXB0aW9uXG4gICAgICAvLyBObyBzcGVjaWFsIGJlaGF2aW9yIHNpbmNlIHRoZXNlIHJ1bGVzIGZhbGwgYmFjayB0byBcImluIGJvZHlcIiBtb2RlIGZvclxuICAgICAgLy8gYWxsIGV4Y2VwdCBzcGVjaWFsIHRhYmxlIG5vZGVzIHdoaWNoIGNhdXNlIGJhZCBwYXJzaW5nIGJlaGF2aW9yIGFueXdheS5cblxuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludHJcbiAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ3RoJyB8fCB0YWcgPT09ICd0ZCcgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50Ym9keVxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndHInIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcblxuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluY29sZ3JvdXBcbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2NvbCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW50YWJsZVxuICAgICAgY2FzZSAndGFibGUnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnY2FwdGlvbicgfHwgdGFnID09PSAnY29sZ3JvdXAnIHx8IHRhZyA9PT0gJ3Rib2R5JyB8fCB0YWcgPT09ICd0Zm9vdCcgfHwgdGFnID09PSAndGhlYWQnIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcblxuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluaGVhZFxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdiYXNlJyB8fCB0YWcgPT09ICdiYXNlZm9udCcgfHwgdGFnID09PSAnYmdzb3VuZCcgfHwgdGFnID09PSAnbGluaycgfHwgdGFnID09PSAnbWV0YScgfHwgdGFnID09PSAndGl0bGUnIHx8IHRhZyA9PT0gJ25vc2NyaXB0JyB8fCB0YWcgPT09ICdub2ZyYW1lcycgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zZW1hbnRpY3MuaHRtbCN0aGUtaHRtbC1lbGVtZW50XG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2hlYWQnIHx8IHRhZyA9PT0gJ2JvZHknO1xuICAgIH1cblxuICAgIC8vIFByb2JhYmx5IGluIHRoZSBcImluIGJvZHlcIiBwYXJzaW5nIG1vZGUsIHNvIHdlIG91dGxhdyBvbmx5IHRhZyBjb21ib3NcbiAgICAvLyB3aGVyZSB0aGUgcGFyc2luZyBydWxlcyBjYXVzZSBpbXBsaWNpdCBvcGVucyBvciBjbG9zZXMgdG8gYmUgYWRkZWQuXG4gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWluYm9keVxuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBwYXJlbnRUYWcgIT09ICdoMScgJiYgcGFyZW50VGFnICE9PSAnaDInICYmIHBhcmVudFRhZyAhPT0gJ2gzJyAmJiBwYXJlbnRUYWcgIT09ICdoNCcgJiYgcGFyZW50VGFnICE9PSAnaDUnICYmIHBhcmVudFRhZyAhPT0gJ2g2JztcblxuICAgICAgY2FzZSAncnAnOlxuICAgICAgY2FzZSAncnQnOlxuICAgICAgICByZXR1cm4gaW1wbGllZEVuZFRhZ3MuaW5kZXhPZihwYXJlbnRUYWcpID09PSAtMTtcblxuICAgICAgY2FzZSAnY2FwdGlvbic6XG4gICAgICBjYXNlICdjb2wnOlxuICAgICAgY2FzZSAnY29sZ3JvdXAnOlxuICAgICAgY2FzZSAnZnJhbWUnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBjYXNlICd0Ym9keSc6XG4gICAgICBjYXNlICd0ZCc6XG4gICAgICBjYXNlICd0Zm9vdCc6XG4gICAgICBjYXNlICd0aCc6XG4gICAgICBjYXNlICd0aGVhZCc6XG4gICAgICBjYXNlICd0cic6XG4gICAgICAgIC8vIFRoZXNlIHRhZ3MgYXJlIG9ubHkgdmFsaWQgd2l0aCBhIGZldyBwYXJlbnRzIHRoYXQgaGF2ZSBzcGVjaWFsIGNoaWxkXG4gICAgICAgIC8vIHBhcnNpbmcgcnVsZXMgLS0gaWYgd2UncmUgZG93biBoZXJlLCB0aGVuIG5vbmUgb2YgdGhvc2UgbWF0Y2hlZCBhbmRcbiAgICAgICAgLy8gc28gd2UgYWxsb3cgaXQgb25seSBpZiB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHBhcmVudCBpcywgYXMgYWxsIG90aGVyXG4gICAgICAgIC8vIGNhc2VzIGFyZSBpbnZhbGlkLlxuICAgICAgICByZXR1cm4gcGFyZW50VGFnID09IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlclxuICAgKi9cbiAgdmFyIGZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcgPSBmdW5jdGlvbiAodGFnLCBhbmNlc3RvckluZm8pIHtcbiAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgY2FzZSAnYWRkcmVzcyc6XG4gICAgICBjYXNlICdhcnRpY2xlJzpcbiAgICAgIGNhc2UgJ2FzaWRlJzpcbiAgICAgIGNhc2UgJ2Jsb2NrcXVvdGUnOlxuICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgY2FzZSAnZGlhbG9nJzpcbiAgICAgIGNhc2UgJ2Rpcic6XG4gICAgICBjYXNlICdkaXYnOlxuICAgICAgY2FzZSAnZGwnOlxuICAgICAgY2FzZSAnZmllbGRzZXQnOlxuICAgICAgY2FzZSAnZmlnY2FwdGlvbic6XG4gICAgICBjYXNlICdmaWd1cmUnOlxuICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICBjYXNlICdoZ3JvdXAnOlxuICAgICAgY2FzZSAnbWFpbic6XG4gICAgICBjYXNlICdtZW51JzpcbiAgICAgIGNhc2UgJ25hdic6XG4gICAgICBjYXNlICdvbCc6XG4gICAgICBjYXNlICdwJzpcbiAgICAgIGNhc2UgJ3NlY3Rpb24nOlxuICAgICAgY2FzZSAnc3VtbWFyeSc6XG4gICAgICBjYXNlICd1bCc6XG5cbiAgICAgIGNhc2UgJ3ByZSc6XG4gICAgICBjYXNlICdsaXN0aW5nJzpcblxuICAgICAgY2FzZSAndGFibGUnOlxuXG4gICAgICBjYXNlICdocic6XG5cbiAgICAgIGNhc2UgJ3htcCc6XG5cbiAgICAgIGNhc2UgJ2gxJzpcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgIGNhc2UgJ2gzJzpcbiAgICAgIGNhc2UgJ2g0JzpcbiAgICAgIGNhc2UgJ2g1JzpcbiAgICAgIGNhc2UgJ2g2JzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZTtcblxuICAgICAgY2FzZSAnZm9ybSc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uZm9ybVRhZyB8fCBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2xpJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nO1xuXG4gICAgICBjYXNlICdkZCc6XG4gICAgICBjYXNlICdkdCc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uZGxJdGVtVGFnQXV0b2Nsb3Npbmc7XG5cbiAgICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uYnV0dG9uVGFnSW5TY29wZTtcblxuICAgICAgY2FzZSAnYSc6XG4gICAgICAgIC8vIFNwZWMgc2F5cyBzb21ldGhpbmcgYWJvdXQgc3RvcmluZyBhIGxpc3Qgb2YgbWFya2VycywgYnV0IGl0IHNvdW5kc1xuICAgICAgICAvLyBlcXVpdmFsZW50IHRvIHRoaXMgY2hlY2suXG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uYVRhZ0luU2NvcGU7XG5cbiAgICAgIGNhc2UgJ25vYnInOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHaXZlbiBhIFJlYWN0Q29tcG9zaXRlQ29tcG9uZW50IGluc3RhbmNlLCByZXR1cm4gYSBsaXN0IG9mIGl0cyByZWN1cnNpdmVcbiAgICogb3duZXJzLCBzdGFydGluZyBhdCB0aGUgcm9vdCBhbmQgZW5kaW5nIHdpdGggdGhlIGluc3RhbmNlIGl0c2VsZi5cbiAgICovXG4gIHZhciBmaW5kT3duZXJTdGFjayA9IGZ1bmN0aW9uIChpbnN0YW5jZSkge1xuICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB2YXIgc3RhY2sgPSBbXTtcbiAgICAvKmVzbGludC1kaXNhYmxlIHNwYWNlLWFmdGVyLWtleXdvcmRzICovXG4gICAgZG8ge1xuICAgICAgLyplc2xpbnQtZW5hYmxlIHNwYWNlLWFmdGVyLWtleXdvcmRzICovXG4gICAgICBzdGFjay5wdXNoKGluc3RhbmNlKTtcbiAgICB9IHdoaWxlIChpbnN0YW5jZSA9IGluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5fb3duZXIpO1xuICAgIHN0YWNrLnJldmVyc2UoKTtcbiAgICByZXR1cm4gc3RhY2s7XG4gIH07XG5cbiAgdmFyIGRpZFdhcm4gPSB7fTtcblxuICB2YWxpZGF0ZURPTU5lc3RpbmcgPSBmdW5jdGlvbiAoY2hpbGRUYWcsIGNoaWxkSW5zdGFuY2UsIGFuY2VzdG9ySW5mbykge1xuICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbztcbiAgICB2YXIgcGFyZW50SW5mbyA9IGFuY2VzdG9ySW5mby5wYXJlbnRUYWc7XG4gICAgdmFyIHBhcmVudFRhZyA9IHBhcmVudEluZm8gJiYgcGFyZW50SW5mby50YWc7XG5cbiAgICB2YXIgaW52YWxpZFBhcmVudCA9IGlzVGFnVmFsaWRXaXRoUGFyZW50KGNoaWxkVGFnLCBwYXJlbnRUYWcpID8gbnVsbCA6IHBhcmVudEluZm87XG4gICAgdmFyIGludmFsaWRBbmNlc3RvciA9IGludmFsaWRQYXJlbnQgPyBudWxsIDogZmluZEludmFsaWRBbmNlc3RvckZvclRhZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKTtcbiAgICB2YXIgcHJvYmxlbWF0aWMgPSBpbnZhbGlkUGFyZW50IHx8IGludmFsaWRBbmNlc3RvcjtcblxuICAgIGlmIChwcm9ibGVtYXRpYykge1xuICAgICAgdmFyIGFuY2VzdG9yVGFnID0gcHJvYmxlbWF0aWMudGFnO1xuICAgICAgdmFyIGFuY2VzdG9ySW5zdGFuY2UgPSBwcm9ibGVtYXRpYy5pbnN0YW5jZTtcblxuICAgICAgdmFyIGNoaWxkT3duZXIgPSBjaGlsZEluc3RhbmNlICYmIGNoaWxkSW5zdGFuY2UuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgICAgIHZhciBhbmNlc3Rvck93bmVyID0gYW5jZXN0b3JJbnN0YW5jZSAmJiBhbmNlc3Rvckluc3RhbmNlLl9jdXJyZW50RWxlbWVudC5fb3duZXI7XG5cbiAgICAgIHZhciBjaGlsZE93bmVycyA9IGZpbmRPd25lclN0YWNrKGNoaWxkT3duZXIpO1xuICAgICAgdmFyIGFuY2VzdG9yT3duZXJzID0gZmluZE93bmVyU3RhY2soYW5jZXN0b3JPd25lcik7XG5cbiAgICAgIHZhciBtaW5TdGFja0xlbiA9IE1hdGgubWluKGNoaWxkT3duZXJzLmxlbmd0aCwgYW5jZXN0b3JPd25lcnMubGVuZ3RoKTtcbiAgICAgIHZhciBpO1xuXG4gICAgICB2YXIgZGVlcGVzdENvbW1vbiA9IC0xO1xuICAgICAgZm9yIChpID0gMDsgaSA8IG1pblN0YWNrTGVuOyBpKyspIHtcbiAgICAgICAgaWYgKGNoaWxkT3duZXJzW2ldID09PSBhbmNlc3Rvck93bmVyc1tpXSkge1xuICAgICAgICAgIGRlZXBlc3RDb21tb24gPSBpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBVTktOT1dOID0gJyh1bmtub3duKSc7XG4gICAgICB2YXIgY2hpbGRPd25lck5hbWVzID0gY2hpbGRPd25lcnMuc2xpY2UoZGVlcGVzdENvbW1vbiArIDEpLm1hcChmdW5jdGlvbiAoaW5zdCkge1xuICAgICAgICByZXR1cm4gaW5zdC5nZXROYW1lKCkgfHwgVU5LTk9XTjtcbiAgICAgIH0pO1xuICAgICAgdmFyIGFuY2VzdG9yT3duZXJOYW1lcyA9IGFuY2VzdG9yT3duZXJzLnNsaWNlKGRlZXBlc3RDb21tb24gKyAxKS5tYXAoZnVuY3Rpb24gKGluc3QpIHtcbiAgICAgICAgcmV0dXJuIGluc3QuZ2V0TmFtZSgpIHx8IFVOS05PV047XG4gICAgICB9KTtcbiAgICAgIHZhciBvd25lckluZm8gPSBbXS5jb25jYXQoXG4gICAgICAvLyBJZiB0aGUgcGFyZW50IGFuZCBjaGlsZCBpbnN0YW5jZXMgaGF2ZSBhIGNvbW1vbiBvd25lciBhbmNlc3Rvciwgc3RhcnRcbiAgICAgIC8vIHdpdGggdGhhdCAtLSBvdGhlcndpc2Ugd2UganVzdCBzdGFydCB3aXRoIHRoZSBwYXJlbnQncyBvd25lcnMuXG4gICAgICBkZWVwZXN0Q29tbW9uICE9PSAtMSA/IGNoaWxkT3duZXJzW2RlZXBlc3RDb21tb25dLmdldE5hbWUoKSB8fCBVTktOT1dOIDogW10sIGFuY2VzdG9yT3duZXJOYW1lcywgYW5jZXN0b3JUYWcsXG4gICAgICAvLyBJZiB3ZSdyZSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgKG5vbi1wYXJlbnQpIGFuY2VzdHJ5LCBhZGQgJy4uLidcbiAgICAgIGludmFsaWRBbmNlc3RvciA/IFsnLi4uJ10gOiBbXSwgY2hpbGRPd25lck5hbWVzLCBjaGlsZFRhZykuam9pbignID4gJyk7XG5cbiAgICAgIHZhciB3YXJuS2V5ID0gISFpbnZhbGlkUGFyZW50ICsgJ3wnICsgY2hpbGRUYWcgKyAnfCcgKyBhbmNlc3RvclRhZyArICd8JyArIG93bmVySW5mbztcbiAgICAgIGlmIChkaWRXYXJuW3dhcm5LZXldKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGRpZFdhcm5bd2FybktleV0gPSB0cnVlO1xuXG4gICAgICBpZiAoaW52YWxpZFBhcmVudCkge1xuICAgICAgICB2YXIgaW5mbyA9ICcnO1xuICAgICAgICBpZiAoYW5jZXN0b3JUYWcgPT09ICd0YWJsZScgJiYgY2hpbGRUYWcgPT09ICd0cicpIHtcbiAgICAgICAgICBpbmZvICs9ICcgQWRkIGEgPHRib2R5PiB0byB5b3VyIGNvZGUgdG8gbWF0Y2ggdGhlIERPTSB0cmVlIGdlbmVyYXRlZCBieSAnICsgJ3RoZSBicm93c2VyLic7XG4gICAgICAgIH1cbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICd2YWxpZGF0ZURPTU5lc3RpbmcoLi4uKTogPCVzPiBjYW5ub3QgYXBwZWFyIGFzIGEgY2hpbGQgb2YgPCVzPi4gJyArICdTZWUgJXMuJXMnLCBjaGlsZFRhZywgYW5jZXN0b3JUYWcsIG93bmVySW5mbywgaW5mbykgOiB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ3ZhbGlkYXRlRE9NTmVzdGluZyguLi4pOiA8JXM+IGNhbm5vdCBhcHBlYXIgYXMgYSBkZXNjZW5kYW50IG9mICcgKyAnPCVzPi4gU2VlICVzLicsIGNoaWxkVGFnLCBhbmNlc3RvclRhZywgb3duZXJJbmZvKSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nLmFuY2VzdG9ySW5mb0NvbnRleHRLZXkgPSAnX192YWxpZGF0ZURPTU5lc3RpbmdfYW5jZXN0b3JJbmZvJCcgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtcblxuICB2YWxpZGF0ZURPTU5lc3RpbmcudXBkYXRlZEFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm87XG5cbiAgLy8gRm9yIHRlc3RpbmdcbiAgdmFsaWRhdGVET01OZXN0aW5nLmlzVGFnVmFsaWRJbkNvbnRleHQgPSBmdW5jdGlvbiAodGFnLCBhbmNlc3RvckluZm8pIHtcbiAgICBhbmNlc3RvckluZm8gPSBhbmNlc3RvckluZm8gfHwgZW1wdHlBbmNlc3RvckluZm87XG4gICAgdmFyIHBhcmVudEluZm8gPSBhbmNlc3RvckluZm8ucGFyZW50VGFnO1xuICAgIHZhciBwYXJlbnRUYWcgPSBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnO1xuICAgIHJldHVybiBpc1RhZ1ZhbGlkV2l0aFBhcmVudCh0YWcsIHBhcmVudFRhZykgJiYgIWZpbmRJbnZhbGlkQW5jZXN0b3JGb3JUYWcodGFnLCBhbmNlc3RvckluZm8pO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZhbGlkYXRlRE9NTmVzdGluZztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvdmFsaWRhdGVET01OZXN0aW5nLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 71 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultInjection\n */\n\n'use strict';\n\nvar BeforeInputEventPlugin = __webpack_require__(72);\nvar ChangeEventPlugin = __webpack_require__(80);\nvar ClientReactRootIndex = __webpack_require__(83);\nvar DefaultEventPluginOrder = __webpack_require__(84);\nvar EnterLeaveEventPlugin = __webpack_require__(85);\nvar ExecutionEnvironment = __webpack_require__(9);\nvar HTMLDOMPropertyConfig = __webpack_require__(89);\nvar ReactBrowserComponentMixin = __webpack_require__(90);\nvar ReactComponentBrowserEnvironment = __webpack_require__(26);\nvar ReactDefaultBatchingStrategy = __webpack_require__(92);\nvar ReactDOMComponent = __webpack_require__(93);\nvar ReactDOMTextComponent = __webpack_require__(6);\nvar ReactEventListener = __webpack_require__(118);\nvar ReactInjection = __webpack_require__(121);\nvar ReactInstanceHandles = __webpack_require__(45);\nvar ReactMount = __webpack_require__(28);\nvar ReactReconcileTransaction = __webpack_require__(125);\nvar SelectEventPlugin = __webpack_require__(130);\nvar ServerReactRootIndex = __webpack_require__(131);\nvar SimpleEventPlugin = __webpack_require__(132);\nvar SVGDOMPropertyConfig = __webpack_require__(141);\n\nvar alreadyInjected = false;\n\nfunction inject() {\n if (alreadyInjected) {\n // TODO: This is currently true because these injections are shared between\n // the client and the server package. They should be built independently\n // and not share any injection state. Then this problem will be solved.\n return;\n }\n alreadyInjected = true;\n\n ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);\n\n /**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\n ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);\n ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);\n ReactInjection.EventPluginHub.injectMount(ReactMount);\n\n /**\n * Some important event plugins included by default (without having to require\n * them).\n */\n ReactInjection.EventPluginHub.injectEventPluginsByName({\n SimpleEventPlugin: SimpleEventPlugin,\n EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n ChangeEventPlugin: ChangeEventPlugin,\n SelectEventPlugin: SelectEventPlugin,\n BeforeInputEventPlugin: BeforeInputEventPlugin\n });\n\n ReactInjection.NativeComponent.injectGenericComponentClass(ReactDOMComponent);\n\n ReactInjection.NativeComponent.injectTextComponentClass(ReactDOMTextComponent);\n\n ReactInjection.Class.injectMixin(ReactBrowserComponentMixin);\n\n ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);\n ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);\n\n ReactInjection.EmptyComponent.injectEmptyComponent('noscript');\n\n ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);\n ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n\n ReactInjection.RootIndex.injectCreateReactRootIndex(ExecutionEnvironment.canUseDOM ? ClientReactRootIndex.createReactRootIndex : ServerReactRootIndex.createReactRootIndex);\n\n ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);\n\n if (process.env.NODE_ENV !== 'production') {\n var url = ExecutionEnvironment.canUseDOM && window.location.href || '';\n if (/[?&]react_perf\\b/.test(url)) {\n var ReactDefaultPerf = __webpack_require__(142);\n ReactDefaultPerf.start();\n }\n }\n}\n\nmodule.exports = {\n inject: inject\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3REZWZhdWx0SW5qZWN0aW9uLmpzP2ExZDkiXSwibmFtZXMiOlsiQmVmb3JlSW5wdXRFdmVudFBsdWdpbiIsInJlcXVpcmUiLCJDaGFuZ2VFdmVudFBsdWdpbiIsIkNsaWVudFJlYWN0Um9vdEluZGV4IiwiRGVmYXVsdEV2ZW50UGx1Z2luT3JkZXIiLCJFbnRlckxlYXZlRXZlbnRQbHVnaW4iLCJFeGVjdXRpb25FbnZpcm9ubWVudCIsIkhUTUxET01Qcm9wZXJ0eUNvbmZpZyIsIlJlYWN0QnJvd3NlckNvbXBvbmVudE1peGluIiwiUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQiLCJSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5IiwiUmVhY3RET01Db21wb25lbnQiLCJSZWFjdERPTVRleHRDb21wb25lbnQiLCJSZWFjdEV2ZW50TGlzdGVuZXIiLCJSZWFjdEluamVjdGlvbiIsIlJlYWN0SW5zdGFuY2VIYW5kbGVzIiwiUmVhY3RNb3VudCIsIlJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24iLCJTZWxlY3RFdmVudFBsdWdpbiIsIlNlcnZlclJlYWN0Um9vdEluZGV4IiwiU2ltcGxlRXZlbnRQbHVnaW4iLCJTVkdET01Qcm9wZXJ0eUNvbmZpZyIsImFscmVhZHlJbmplY3RlZCIsImluamVjdCIsIkV2ZW50RW1pdHRlciIsImluamVjdFJlYWN0RXZlbnRMaXN0ZW5lciIsIkV2ZW50UGx1Z2luSHViIiwiaW5qZWN0RXZlbnRQbHVnaW5PcmRlciIsImluamVjdEluc3RhbmNlSGFuZGxlIiwiaW5qZWN0TW91bnQiLCJpbmplY3RFdmVudFBsdWdpbnNCeU5hbWUiLCJOYXRpdmVDb21wb25lbnQiLCJpbmplY3RHZW5lcmljQ29tcG9uZW50Q2xhc3MiLCJpbmplY3RUZXh0Q29tcG9uZW50Q2xhc3MiLCJDbGFzcyIsImluamVjdE1peGluIiwiRE9NUHJvcGVydHkiLCJpbmplY3RET01Qcm9wZXJ0eUNvbmZpZyIsIkVtcHR5Q29tcG9uZW50IiwiaW5qZWN0RW1wdHlDb21wb25lbnQiLCJVcGRhdGVzIiwiaW5qZWN0UmVjb25jaWxlVHJhbnNhY3Rpb24iLCJpbmplY3RCYXRjaGluZ1N0cmF0ZWd5IiwiUm9vdEluZGV4IiwiaW5qZWN0Q3JlYXRlUmVhY3RSb290SW5kZXgiLCJjYW5Vc2VET00iLCJjcmVhdGVSZWFjdFJvb3RJbmRleCIsIkNvbXBvbmVudCIsImluamVjdEVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXJsIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwidGVzdCIsIlJlYWN0RGVmYXVsdFBlcmYiLCJzdGFydCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLHlCQUF5QixtQkFBQUMsQ0FBUSxFQUFSLENBQTdCO0FBQ0EsSUFBSUMsb0JBQW9CLG1CQUFBRCxDQUFRLEVBQVIsQ0FBeEI7QUFDQSxJQUFJRSx1QkFBdUIsbUJBQUFGLENBQVEsRUFBUixDQUEzQjtBQUNBLElBQUlHLDBCQUEwQixtQkFBQUgsQ0FBUSxFQUFSLENBQTlCO0FBQ0EsSUFBSUksd0JBQXdCLG1CQUFBSixDQUFRLEVBQVIsQ0FBNUI7QUFDQSxJQUFJSyx1QkFBdUIsbUJBQUFMLENBQVEsQ0FBUixDQUEzQjtBQUNBLElBQUlNLHdCQUF3QixtQkFBQU4sQ0FBUSxFQUFSLENBQTVCO0FBQ0EsSUFBSU8sNkJBQTZCLG1CQUFBUCxDQUFRLEVBQVIsQ0FBakM7QUFDQSxJQUFJUSxtQ0FBbUMsbUJBQUFSLENBQVEsRUFBUixDQUF2QztBQUNBLElBQUlTLCtCQUErQixtQkFBQVQsQ0FBUSxFQUFSLENBQW5DO0FBQ0EsSUFBSVUsb0JBQW9CLG1CQUFBVixDQUFRLEVBQVIsQ0FBeEI7QUFDQSxJQUFJVyx3QkFBd0IsbUJBQUFYLENBQVEsQ0FBUixDQUE1QjtBQUNBLElBQUlZLHFCQUFxQixtQkFBQVosQ0FBUSxHQUFSLENBQXpCO0FBQ0EsSUFBSWEsaUJBQWlCLG1CQUFBYixDQUFRLEdBQVIsQ0FBckI7QUFDQSxJQUFJYyx1QkFBdUIsbUJBQUFkLENBQVEsRUFBUixDQUEzQjtBQUNBLElBQUllLGFBQWEsbUJBQUFmLENBQVEsRUFBUixDQUFqQjtBQUNBLElBQUlnQiw0QkFBNEIsbUJBQUFoQixDQUFRLEdBQVIsQ0FBaEM7QUFDQSxJQUFJaUIsb0JBQW9CLG1CQUFBakIsQ0FBUSxHQUFSLENBQXhCO0FBQ0EsSUFBSWtCLHVCQUF1QixtQkFBQWxCLENBQVEsR0FBUixDQUEzQjtBQUNBLElBQUltQixvQkFBb0IsbUJBQUFuQixDQUFRLEdBQVIsQ0FBeEI7QUFDQSxJQUFJb0IsdUJBQXVCLG1CQUFBcEIsQ0FBUSxHQUFSLENBQTNCOztBQUVBLElBQUlxQixrQkFBa0IsS0FBdEI7O0FBRUEsU0FBU0MsTUFBVCxHQUFrQjtBQUNoQixNQUFJRCxlQUFKLEVBQXFCO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0Q7QUFDREEsb0JBQWtCLElBQWxCOztBQUVBUixpQkFBZVUsWUFBZixDQUE0QkMsd0JBQTVCLENBQXFEWixrQkFBckQ7O0FBRUE7OztBQUdBQyxpQkFBZVksY0FBZixDQUE4QkMsc0JBQTlCLENBQXFEdkIsdUJBQXJEO0FBQ0FVLGlCQUFlWSxjQUFmLENBQThCRSxvQkFBOUIsQ0FBbURiLG9CQUFuRDtBQUNBRCxpQkFBZVksY0FBZixDQUE4QkcsV0FBOUIsQ0FBMENiLFVBQTFDOztBQUVBOzs7O0FBSUFGLGlCQUFlWSxjQUFmLENBQThCSSx3QkFBOUIsQ0FBdUQ7QUFDckRWLHVCQUFtQkEsaUJBRGtDO0FBRXJEZiwyQkFBdUJBLHFCQUY4QjtBQUdyREgsdUJBQW1CQSxpQkFIa0M7QUFJckRnQix1QkFBbUJBLGlCQUprQztBQUtyRGxCLDRCQUF3QkE7QUFMNkIsR0FBdkQ7O0FBUUFjLGlCQUFlaUIsZUFBZixDQUErQkMsMkJBQS9CLENBQTJEckIsaUJBQTNEOztBQUVBRyxpQkFBZWlCLGVBQWYsQ0FBK0JFLHdCQUEvQixDQUF3RHJCLHFCQUF4RDs7QUFFQUUsaUJBQWVvQixLQUFmLENBQXFCQyxXQUFyQixDQUFpQzNCLDBCQUFqQzs7QUFFQU0saUJBQWVzQixXQUFmLENBQTJCQyx1QkFBM0IsQ0FBbUQ5QixxQkFBbkQ7QUFDQU8saUJBQWVzQixXQUFmLENBQTJCQyx1QkFBM0IsQ0FBbURoQixvQkFBbkQ7O0FBRUFQLGlCQUFld0IsY0FBZixDQUE4QkMsb0JBQTlCLENBQW1ELFVBQW5EOztBQUVBekIsaUJBQWUwQixPQUFmLENBQXVCQywwQkFBdkIsQ0FBa0R4Qix5QkFBbEQ7QUFDQUgsaUJBQWUwQixPQUFmLENBQXVCRSxzQkFBdkIsQ0FBOENoQyw0QkFBOUM7O0FBRUFJLGlCQUFlNkIsU0FBZixDQUF5QkMsMEJBQXpCLENBQW9EdEMscUJBQXFCdUMsU0FBckIsR0FBaUMxQyxxQkFBcUIyQyxvQkFBdEQsR0FBNkUzQixxQkFBcUIyQixvQkFBdEo7O0FBRUFoQyxpQkFBZWlDLFNBQWYsQ0FBeUJDLGlCQUF6QixDQUEyQ3ZDLGdDQUEzQzs7QUFFQSxNQUFJd0MsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDLFFBQUlDLE1BQU05QyxxQkFBcUJ1QyxTQUFyQixJQUFrQ1EsT0FBT0MsUUFBUCxDQUFnQkMsSUFBbEQsSUFBMEQsRUFBcEU7QUFDQSxRQUFJLG1CQUFtQkMsSUFBbkIsQ0FBd0JKLEdBQXhCLENBQUosRUFBa0M7QUFDaEMsVUFBSUssbUJBQW1CLG1CQUFBeEQsQ0FBUSxHQUFSLENBQXZCO0FBQ0F3RCx1QkFBaUJDLEtBQWpCO0FBQ0Q7QUFDRjtBQUNGOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZyQyxVQUFRQTtBQURPLENBQWpCLEMiLCJmaWxlIjoiNzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3REZWZhdWx0SW5qZWN0aW9uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgQmVmb3JlSW5wdXRFdmVudFBsdWdpbiA9IHJlcXVpcmUoJy4vQmVmb3JlSW5wdXRFdmVudFBsdWdpbicpO1xudmFyIENoYW5nZUV2ZW50UGx1Z2luID0gcmVxdWlyZSgnLi9DaGFuZ2VFdmVudFBsdWdpbicpO1xudmFyIENsaWVudFJlYWN0Um9vdEluZGV4ID0gcmVxdWlyZSgnLi9DbGllbnRSZWFjdFJvb3RJbmRleCcpO1xudmFyIERlZmF1bHRFdmVudFBsdWdpbk9yZGVyID0gcmVxdWlyZSgnLi9EZWZhdWx0RXZlbnRQbHVnaW5PcmRlcicpO1xudmFyIEVudGVyTGVhdmVFdmVudFBsdWdpbiA9IHJlcXVpcmUoJy4vRW50ZXJMZWF2ZUV2ZW50UGx1Z2luJyk7XG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xudmFyIEhUTUxET01Qcm9wZXJ0eUNvbmZpZyA9IHJlcXVpcmUoJy4vSFRNTERPTVByb3BlcnR5Q29uZmlnJyk7XG52YXIgUmVhY3RCcm93c2VyQ29tcG9uZW50TWl4aW4gPSByZXF1aXJlKCcuL1JlYWN0QnJvd3NlckNvbXBvbmVudE1peGluJyk7XG52YXIgUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50Jyk7XG52YXIgUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneSA9IHJlcXVpcmUoJy4vUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneScpO1xudmFyIFJlYWN0RE9NQ29tcG9uZW50ID0gcmVxdWlyZSgnLi9SZWFjdERPTUNvbXBvbmVudCcpO1xudmFyIFJlYWN0RE9NVGV4dENvbXBvbmVudCA9IHJlcXVpcmUoJy4vUmVhY3RET01UZXh0Q29tcG9uZW50Jyk7XG52YXIgUmVhY3RFdmVudExpc3RlbmVyID0gcmVxdWlyZSgnLi9SZWFjdEV2ZW50TGlzdGVuZXInKTtcbnZhciBSZWFjdEluamVjdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RJbmplY3Rpb24nKTtcbnZhciBSZWFjdEluc3RhbmNlSGFuZGxlcyA9IHJlcXVpcmUoJy4vUmVhY3RJbnN0YW5jZUhhbmRsZXMnKTtcbnZhciBSZWFjdE1vdW50ID0gcmVxdWlyZSgnLi9SZWFjdE1vdW50Jyk7XG52YXIgUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbicpO1xudmFyIFNlbGVjdEV2ZW50UGx1Z2luID0gcmVxdWlyZSgnLi9TZWxlY3RFdmVudFBsdWdpbicpO1xudmFyIFNlcnZlclJlYWN0Um9vdEluZGV4ID0gcmVxdWlyZSgnLi9TZXJ2ZXJSZWFjdFJvb3RJbmRleCcpO1xudmFyIFNpbXBsZUV2ZW50UGx1Z2luID0gcmVxdWlyZSgnLi9TaW1wbGVFdmVudFBsdWdpbicpO1xudmFyIFNWR0RPTVByb3BlcnR5Q29uZmlnID0gcmVxdWlyZSgnLi9TVkdET01Qcm9wZXJ0eUNvbmZpZycpO1xuXG52YXIgYWxyZWFkeUluamVjdGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGluamVjdCgpIHtcbiAgaWYgKGFscmVhZHlJbmplY3RlZCkge1xuICAgIC8vIFRPRE86IFRoaXMgaXMgY3VycmVudGx5IHRydWUgYmVjYXVzZSB0aGVzZSBpbmplY3Rpb25zIGFyZSBzaGFyZWQgYmV0d2VlblxuICAgIC8vIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgcGFja2FnZS4gVGhleSBzaG91bGQgYmUgYnVpbHQgaW5kZXBlbmRlbnRseVxuICAgIC8vIGFuZCBub3Qgc2hhcmUgYW55IGluamVjdGlvbiBzdGF0ZS4gVGhlbiB0aGlzIHByb2JsZW0gd2lsbCBiZSBzb2x2ZWQuXG4gICAgcmV0dXJuO1xuICB9XG4gIGFscmVhZHlJbmplY3RlZCA9IHRydWU7XG5cbiAgUmVhY3RJbmplY3Rpb24uRXZlbnRFbWl0dGVyLmluamVjdFJlYWN0RXZlbnRMaXN0ZW5lcihSZWFjdEV2ZW50TGlzdGVuZXIpO1xuXG4gIC8qKlxuICAgKiBJbmplY3QgbW9kdWxlcyBmb3IgcmVzb2x2aW5nIERPTSBoaWVyYXJjaHkgYW5kIHBsdWdpbiBvcmRlcmluZy5cbiAgICovXG4gIFJlYWN0SW5qZWN0aW9uLkV2ZW50UGx1Z2luSHViLmluamVjdEV2ZW50UGx1Z2luT3JkZXIoRGVmYXVsdEV2ZW50UGx1Z2luT3JkZXIpO1xuICBSZWFjdEluamVjdGlvbi5FdmVudFBsdWdpbkh1Yi5pbmplY3RJbnN0YW5jZUhhbmRsZShSZWFjdEluc3RhbmNlSGFuZGxlcyk7XG4gIFJlYWN0SW5qZWN0aW9uLkV2ZW50UGx1Z2luSHViLmluamVjdE1vdW50KFJlYWN0TW91bnQpO1xuXG4gIC8qKlxuICAgKiBTb21lIGltcG9ydGFudCBldmVudCBwbHVnaW5zIGluY2x1ZGVkIGJ5IGRlZmF1bHQgKHdpdGhvdXQgaGF2aW5nIHRvIHJlcXVpcmVcbiAgICogdGhlbSkuXG4gICAqL1xuICBSZWFjdEluamVjdGlvbi5FdmVudFBsdWdpbkh1Yi5pbmplY3RFdmVudFBsdWdpbnNCeU5hbWUoe1xuICAgIFNpbXBsZUV2ZW50UGx1Z2luOiBTaW1wbGVFdmVudFBsdWdpbixcbiAgICBFbnRlckxlYXZlRXZlbnRQbHVnaW46IEVudGVyTGVhdmVFdmVudFBsdWdpbixcbiAgICBDaGFuZ2VFdmVudFBsdWdpbjogQ2hhbmdlRXZlbnRQbHVnaW4sXG4gICAgU2VsZWN0RXZlbnRQbHVnaW46IFNlbGVjdEV2ZW50UGx1Z2luLFxuICAgIEJlZm9yZUlucHV0RXZlbnRQbHVnaW46IEJlZm9yZUlucHV0RXZlbnRQbHVnaW5cbiAgfSk7XG5cbiAgUmVhY3RJbmplY3Rpb24uTmF0aXZlQ29tcG9uZW50LmluamVjdEdlbmVyaWNDb21wb25lbnRDbGFzcyhSZWFjdERPTUNvbXBvbmVudCk7XG5cbiAgUmVhY3RJbmplY3Rpb24uTmF0aXZlQ29tcG9uZW50LmluamVjdFRleHRDb21wb25lbnRDbGFzcyhSZWFjdERPTVRleHRDb21wb25lbnQpO1xuXG4gIFJlYWN0SW5qZWN0aW9uLkNsYXNzLmluamVjdE1peGluKFJlYWN0QnJvd3NlckNvbXBvbmVudE1peGluKTtcblxuICBSZWFjdEluamVjdGlvbi5ET01Qcm9wZXJ0eS5pbmplY3RET01Qcm9wZXJ0eUNvbmZpZyhIVE1MRE9NUHJvcGVydHlDb25maWcpO1xuICBSZWFjdEluamVjdGlvbi5ET01Qcm9wZXJ0eS5pbmplY3RET01Qcm9wZXJ0eUNvbmZpZyhTVkdET01Qcm9wZXJ0eUNvbmZpZyk7XG5cbiAgUmVhY3RJbmplY3Rpb24uRW1wdHlDb21wb25lbnQuaW5qZWN0RW1wdHlDb21wb25lbnQoJ25vc2NyaXB0Jyk7XG5cbiAgUmVhY3RJbmplY3Rpb24uVXBkYXRlcy5pbmplY3RSZWNvbmNpbGVUcmFuc2FjdGlvbihSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uKTtcbiAgUmVhY3RJbmplY3Rpb24uVXBkYXRlcy5pbmplY3RCYXRjaGluZ1N0cmF0ZWd5KFJlYWN0RGVmYXVsdEJhdGNoaW5nU3RyYXRlZ3kpO1xuXG4gIFJlYWN0SW5qZWN0aW9uLlJvb3RJbmRleC5pbmplY3RDcmVhdGVSZWFjdFJvb3RJbmRleChFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gPyBDbGllbnRSZWFjdFJvb3RJbmRleC5jcmVhdGVSZWFjdFJvb3RJbmRleCA6IFNlcnZlclJlYWN0Um9vdEluZGV4LmNyZWF0ZVJlYWN0Um9vdEluZGV4KTtcblxuICBSZWFjdEluamVjdGlvbi5Db21wb25lbnQuaW5qZWN0RW52aXJvbm1lbnQoUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFyIHVybCA9IEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSAmJiB3aW5kb3cubG9jYXRpb24uaHJlZiB8fCAnJztcbiAgICBpZiAoL1s/Jl1yZWFjdF9wZXJmXFxiLy50ZXN0KHVybCkpIHtcbiAgICAgIHZhciBSZWFjdERlZmF1bHRQZXJmID0gcmVxdWlyZSgnLi9SZWFjdERlZmF1bHRQZXJmJyk7XG4gICAgICBSZWFjdERlZmF1bHRQZXJmLnN0YXJ0KCk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpbmplY3Q6IGluamVjdFxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3REZWZhdWx0SW5qZWN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 72 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015 Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BeforeInputEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar EventConstants = __webpack_require__(30);\nvar EventPropagators = __webpack_require__(73);\nvar ExecutionEnvironment = __webpack_require__(9);\nvar FallbackCompositionState = __webpack_require__(74);\nvar SyntheticCompositionEvent = __webpack_require__(76);\nvar SyntheticInputEvent = __webpack_require__(78);\n\nvar keyOf = __webpack_require__(79);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\n/**\n * Opera <= 12 includes TextEvent in window, but does not fire\n * text input events. Rely on keypress instead.\n */\nfunction isPresto() {\n var opera = window.opera;\n return (typeof opera === 'undefined' ? 'undefined' : _typeof(opera)) === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;\n}\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\n// Events and their corresponding property names.\nvar eventTypes = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onBeforeInput: null }),\n captured: keyOf({ onBeforeInputCapture: null })\n },\n dependencies: [topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste]\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionEnd: null }),\n captured: keyOf({ onCompositionEndCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionStart: null }),\n captured: keyOf({ onCompositionStartCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCompositionUpdate: null }),\n captured: keyOf({ onCompositionUpdateCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown]\n }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionStart:\n return eventTypes.compositionStart;\n case topLevelTypes.topCompositionEnd:\n return eventTypes.compositionEnd;\n case topLevelTypes.topCompositionUpdate:\n return eventTypes.compositionUpdate;\n }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n return topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topKeyUp:\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n case topLevelTypes.topKeyDown:\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n case topLevelTypes.topKeyPress:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topBlur:\n // Events are not possible without cancelling IME.\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n if ((typeof detail === 'undefined' ? 'undefined' : _typeof(detail)) === 'object' && 'data' in detail) {\n return detail.data;\n }\n return null;\n}\n\n// Track the current IME composition fallback object, if any.\nvar currentComposition = null;\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(topLevelType);\n } else if (!currentComposition) {\n if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionStart;\n }\n } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n eventType = eventTypes.compositionEnd;\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!currentComposition && eventType === eventTypes.compositionStart) {\n currentComposition = FallbackCompositionState.getPooled(topLevelTarget);\n } else if (eventType === eventTypes.compositionEnd) {\n if (currentComposition) {\n fallbackData = currentComposition.getData();\n }\n }\n }\n\n var event = SyntheticCompositionEvent.getPooled(eventType, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n if (customData !== null) {\n event.data = customData;\n }\n }\n\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n switch (topLevelType) {\n case topLevelTypes.topCompositionEnd:\n return getDataFromCustomEvent(nativeEvent);\n case topLevelTypes.topKeyPress:\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case topLevelTypes.topTextInput:\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data;\n\n // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to blacklist it.\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n if (currentComposition) {\n if (topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n var chars = currentComposition.getData();\n FallbackCompositionState.release(currentComposition);\n currentComposition = null;\n return chars;\n }\n return null;\n }\n\n switch (topLevelType) {\n case topLevelTypes.topPaste:\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n case topLevelTypes.topKeyPress:\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case topLevelTypes.topCompositionEnd:\n return useFallbackCompositionData ? null : nativeEvent.data;\n default:\n return null;\n }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n }\n\n // If no characters are being inserted, no BeforeInput event should\n // be fired.\n if (!chars) {\n return null;\n }\n\n var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, topLevelTargetID, nativeEvent, nativeEventTarget);\n\n event.data = chars;\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n return [extractCompositionEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget)];\n }\n};\n\nmodule.exports = BeforeInputEventPlugin;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQmVmb3JlSW5wdXRFdmVudFBsdWdpbi5qcz84MzRjIl0sIm5hbWVzIjpbIkV2ZW50Q29uc3RhbnRzIiwicmVxdWlyZSIsIkV2ZW50UHJvcGFnYXRvcnMiLCJFeGVjdXRpb25FbnZpcm9ubWVudCIsIkZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZSIsIlN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQiLCJTeW50aGV0aWNJbnB1dEV2ZW50Iiwia2V5T2YiLCJFTkRfS0VZQ09ERVMiLCJTVEFSVF9LRVlDT0RFIiwiY2FuVXNlQ29tcG9zaXRpb25FdmVudCIsImNhblVzZURPTSIsIndpbmRvdyIsImRvY3VtZW50TW9kZSIsImRvY3VtZW50IiwiY2FuVXNlVGV4dElucHV0RXZlbnQiLCJpc1ByZXN0byIsInVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhIiwib3BlcmEiLCJ2ZXJzaW9uIiwicGFyc2VJbnQiLCJTUEFDRUJBUl9DT0RFIiwiU1BBQ0VCQVJfQ0hBUiIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsInRvcExldmVsVHlwZXMiLCJldmVudFR5cGVzIiwiYmVmb3JlSW5wdXQiLCJwaGFzZWRSZWdpc3RyYXRpb25OYW1lcyIsImJ1YmJsZWQiLCJvbkJlZm9yZUlucHV0IiwiY2FwdHVyZWQiLCJvbkJlZm9yZUlucHV0Q2FwdHVyZSIsImRlcGVuZGVuY2llcyIsInRvcENvbXBvc2l0aW9uRW5kIiwidG9wS2V5UHJlc3MiLCJ0b3BUZXh0SW5wdXQiLCJ0b3BQYXN0ZSIsImNvbXBvc2l0aW9uRW5kIiwib25Db21wb3NpdGlvbkVuZCIsIm9uQ29tcG9zaXRpb25FbmRDYXB0dXJlIiwidG9wQmx1ciIsInRvcEtleURvd24iLCJ0b3BLZXlVcCIsInRvcE1vdXNlRG93biIsImNvbXBvc2l0aW9uU3RhcnQiLCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJvbkNvbXBvc2l0aW9uU3RhcnRDYXB0dXJlIiwidG9wQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uVXBkYXRlIiwib25Db21wb3NpdGlvblVwZGF0ZSIsIm9uQ29tcG9zaXRpb25VcGRhdGVDYXB0dXJlIiwidG9wQ29tcG9zaXRpb25VcGRhdGUiLCJoYXNTcGFjZUtleXByZXNzIiwiaXNLZXlwcmVzc0NvbW1hbmQiLCJuYXRpdmVFdmVudCIsImN0cmxLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0Q29tcG9zaXRpb25FdmVudFR5cGUiLCJ0b3BMZXZlbFR5cGUiLCJpc0ZhbGxiYWNrQ29tcG9zaXRpb25TdGFydCIsImtleUNvZGUiLCJpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQiLCJpbmRleE9mIiwiZ2V0RGF0YUZyb21DdXN0b21FdmVudCIsImRldGFpbCIsImRhdGEiLCJjdXJyZW50Q29tcG9zaXRpb24iLCJleHRyYWN0Q29tcG9zaXRpb25FdmVudCIsInRvcExldmVsVGFyZ2V0IiwidG9wTGV2ZWxUYXJnZXRJRCIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwiZXZlbnRUeXBlIiwiZmFsbGJhY2tEYXRhIiwiZ2V0UG9vbGVkIiwiZ2V0RGF0YSIsImV2ZW50IiwiY3VzdG9tRGF0YSIsImFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMiLCJnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzIiwid2hpY2giLCJjaGFycyIsImdldEZhbGxiYWNrQmVmb3JlSW5wdXRDaGFycyIsInJlbGVhc2UiLCJleHRyYWN0QmVmb3JlSW5wdXRFdmVudCIsIkJlZm9yZUlucHV0RXZlbnRQbHVnaW4iLCJleHRyYWN0RXZlbnRzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOzs7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBckI7QUFDQSxJQUFJQyxtQkFBbUIsbUJBQUFELENBQVEsRUFBUixDQUF2QjtBQUNBLElBQUlFLHVCQUF1QixtQkFBQUYs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SCxzQkFBakIiLCJmaWxlIjoiNzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBCZWZvcmVJbnB1dEV2ZW50UGx1Z2luXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV2ZW50Q29uc3RhbnRzID0gcmVxdWlyZSgnLi9FdmVudENvbnN0YW50cycpO1xudmFyIEV2ZW50UHJvcGFnYXRvcnMgPSByZXF1aXJlKCcuL0V2ZW50UHJvcGFnYXRvcnMnKTtcbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG52YXIgRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlID0gcmVxdWlyZSgnLi9GYWxsYmFja0NvbXBvc2l0aW9uU3RhdGUnKTtcbnZhciBTeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50Jyk7XG52YXIgU3ludGhldGljSW5wdXRFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljSW5wdXRFdmVudCcpO1xuXG52YXIga2V5T2YgPSByZXF1aXJlKCdmYmpzL2xpYi9rZXlPZicpO1xuXG52YXIgRU5EX0tFWUNPREVTID0gWzksIDEzLCAyNywgMzJdOyAvLyBUYWIsIFJldHVybiwgRXNjLCBTcGFjZVxudmFyIFNUQVJUX0tFWUNPREUgPSAyMjk7XG5cbnZhciBjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ID0gRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NICYmICdDb21wb3NpdGlvbkV2ZW50JyBpbiB3aW5kb3c7XG5cbnZhciBkb2N1bWVudE1vZGUgPSBudWxsO1xuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSAmJiAnZG9jdW1lbnRNb2RlJyBpbiBkb2N1bWVudCkge1xuICBkb2N1bWVudE1vZGUgPSBkb2N1bWVudC5kb2N1bWVudE1vZGU7XG59XG5cbi8vIFdlYmtpdCBvZmZlcnMgYSB2ZXJ5IHVzZWZ1bCBgdGV4dElucHV0YCBldmVudCB0aGF0IGNhbiBiZSB1c2VkIHRvXG4vLyBkaXJlY3RseSByZXByZXNlbnQgYGJlZm9yZUlucHV0YC4gVGhlIElFIGB0ZXh0aW5wdXRgIGV2ZW50IGlzIG5vdCBhc1xuLy8gdXNlZnVsLCBzbyB3ZSBkb24ndCB1c2UgaXQuXG52YXIgY2FuVXNlVGV4dElucHV0RXZlbnQgPSBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gJiYgJ1RleHRFdmVudCcgaW4gd2luZG93ICYmICFkb2N1bWVudE1vZGUgJiYgIWlzUHJlc3RvKCk7XG5cbi8vIEluIElFOSssIHdlIGhhdmUgYWNjZXNzIHRvIGNvbXBvc2l0aW9uIGV2ZW50cywgYnV0IHRoZSBkYXRhIHN1cHBsaWVkXG4vLyBieSB0aGUgbmF0aXZlIGNvbXBvc2l0aW9uZW5kIGV2ZW50IG1heSBiZSBpbmNvcnJlY3QuIEphcGFuZXNlIGlkZW9ncmFwaGljXG4vLyBzcGFjZXMsIGZvciBpbnN0YW5jZSAoXFx1MzAwMCkgYXJlIG5vdCByZWNvcmRlZCBjb3JyZWN0bHkuXG52YXIgdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgPSBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gJiYgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50IHx8IGRvY3VtZW50TW9kZSAmJiBkb2N1bWVudE1vZGUgPiA4ICYmIGRvY3VtZW50TW9kZSA8PSAxMSk7XG5cbi8qKlxuICogT3BlcmEgPD0gMTIgaW5jbHVkZXMgVGV4dEV2ZW50IGluIHdpbmRvdywgYnV0IGRvZXMgbm90IGZpcmVcbiAqIHRleHQgaW5wdXQgZXZlbnRzLiBSZWx5IG9uIGtleXByZXNzIGluc3RlYWQuXG4gKi9cbmZ1bmN0aW9uIGlzUHJlc3RvKCkge1xuICB2YXIgb3BlcmEgPSB3aW5kb3cub3BlcmE7XG4gIHJldHVybiB0eXBlb2Ygb3BlcmEgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcGVyYS52ZXJzaW9uID09PSAnZnVuY3Rpb24nICYmIHBhcnNlSW50KG9wZXJhLnZlcnNpb24oKSwgMTApIDw9IDEyO1xufVxuXG52YXIgU1BBQ0VCQVJfQ09ERSA9IDMyO1xudmFyIFNQQUNFQkFSX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFNQQUNFQkFSX0NPREUpO1xuXG52YXIgdG9wTGV2ZWxUeXBlcyA9IEV2ZW50Q29uc3RhbnRzLnRvcExldmVsVHlwZXM7XG5cbi8vIEV2ZW50cyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBuYW1lcy5cbnZhciBldmVudFR5cGVzID0ge1xuICBiZWZvcmVJbnB1dDoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uQmVmb3JlSW5wdXQ6IG51bGwgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkJlZm9yZUlucHV0Q2FwdHVyZTogbnVsbCB9KVxuICAgIH0sXG4gICAgZGVwZW5kZW5jaWVzOiBbdG9wTGV2ZWxUeXBlcy50b3BDb21wb3NpdGlvbkVuZCwgdG9wTGV2ZWxUeXBlcy50b3BLZXlQcmVzcywgdG9wTGV2ZWxUeXBlcy50b3BUZXh0SW5wdXQsIHRvcExldmVsVHlwZXMudG9wUGFzdGVdXG4gIH0sXG4gIGNvbXBvc2l0aW9uRW5kOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25Db21wb3NpdGlvbkVuZDogbnVsbCB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uQ29tcG9zaXRpb25FbmRDYXB0dXJlOiBudWxsIH0pXG4gICAgfSxcbiAgICBkZXBlbmRlbmNpZXM6IFt0b3BMZXZlbFR5cGVzLnRvcEJsdXIsIHRvcExldmVsVHlwZXMudG9wQ29tcG9zaXRpb25FbmQsIHRvcExldmVsVHlwZXMudG9wS2V5RG93biwgdG9wTGV2ZWxUeXBlcy50b3BLZXlQcmVzcywgdG9wTGV2ZWxUeXBlcy50b3BLZXlVcCwgdG9wTGV2ZWxUeXBlcy50b3BNb3VzZURvd25dXG4gIH0sXG4gIGNvbXBvc2l0aW9uU3RhcnQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkNvbXBvc2l0aW9uU3RhcnQ6IG51bGwgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkNvbXBvc2l0aW9uU3RhcnRDYXB0dXJlOiBudWxsIH0pXG4gICAgfSxcbiAgICBkZXBlbmRlbmNpZXM6IFt0b3BMZXZlbFR5cGVzLnRvcEJsdXIsIHRvcExldmVsVHlwZXMudG9wQ29tcG9zaXRpb25TdGFydCwgdG9wTGV2ZWxUeXBlcy50b3BLZXlEb3duLCB0b3BMZXZlbFR5cGVzLnRvcEtleVByZXNzLCB0b3BMZXZlbFR5cGVzLnRvcEtleVVwLCB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlRG93bl1cbiAgfSxcbiAgY29tcG9zaXRpb25VcGRhdGU6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkNvbXBvc2l0aW9uVXBkYXRlOiBudWxsIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Db21wb3NpdGlvblVwZGF0ZUNhcHR1cmU6IG51bGwgfSlcbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogW3RvcExldmVsVHlwZXMudG9wQmx1ciwgdG9wTGV2ZWxUeXBlcy50b3BDb21wb3NpdGlvblVwZGF0ZSwgdG9wTGV2ZWxUeXBlcy50b3BLZXlEb3duLCB0b3BMZXZlbFR5cGVzLnRvcEtleVByZXNzLCB0b3BMZXZlbFR5cGVzLnRvcEtleVVwLCB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlRG93bl1cbiAgfVxufTtcblxuLy8gVHJhY2sgd2hldGhlciB3ZSd2ZSBldmVyIGhhbmRsZWQgYSBrZXlwcmVzcyBvbiB0aGUgc3BhY2Uga2V5LlxudmFyIGhhc1NwYWNlS2V5cHJlc3MgPSBmYWxzZTtcblxuLyoqXG4gKiBSZXR1cm4gd2hldGhlciBhIG5hdGl2ZSBrZXlwcmVzcyBldmVudCBpcyBhc3N1bWVkIHRvIGJlIGEgY29tbWFuZC5cbiAqIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBGaXJlZm94IGZpcmVzIGBrZXlwcmVzc2AgZXZlbnRzIGZvciBrZXkgY29tbWFuZHNcbiAqIChjdXQsIGNvcHksIHNlbGVjdC1hbGwsIGV0Yy4pIGV2ZW4gdGhvdWdoIG5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZC5cbiAqL1xuZnVuY3Rpb24gaXNLZXlwcmVzc0NvbW1hbmQobmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIChuYXRpdmVFdmVudC5jdHJsS2V5IHx8IG5hdGl2ZUV2ZW50LmFsdEtleSB8fCBuYXRpdmVFdmVudC5tZXRhS2V5KSAmJlxuICAvLyBjdHJsS2V5ICYmIGFsdEtleSBpcyBlcXVpdmFsZW50IHRvIEFsdEdyLCBhbmQgaXMgbm90IGEgY29tbWFuZC5cbiAgIShuYXRpdmVFdmVudC5jdHJsS2V5ICYmIG5hdGl2ZUV2ZW50LmFsdEtleSk7XG59XG5cbi8qKlxuICogVHJhbnNsYXRlIG5hdGl2ZSB0b3AgbGV2ZWwgZXZlbnRzIGludG8gZXZlbnQgdHlwZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVHlwZVxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5mdW5jdGlvbiBnZXRDb21wb3NpdGlvbkV2ZW50VHlwZSh0b3BMZXZlbFR5cGUpIHtcbiAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQ29tcG9zaXRpb25TdGFydDpcbiAgICAgIHJldHVybiBldmVudFR5cGVzLmNvbXBvc2l0aW9uU3RhcnQ7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcENvbXBvc2l0aW9uRW5kOlxuICAgICAgcmV0dXJuIGV2ZW50VHlwZXMuY29tcG9zaXRpb25FbmQ7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcENvbXBvc2l0aW9uVXBkYXRlOlxuICAgICAgcmV0dXJuIGV2ZW50VHlwZXMuY29tcG9zaXRpb25VcGRhdGU7XG4gIH1cbn1cblxuLyoqXG4gKiBEb2VzIG91ciBmYWxsYmFjayBiZXN0LWd1ZXNzIG1vZGVsIHRoaW5rIHRoaXMgZXZlbnQgc2lnbmlmaWVzIHRoYXRcbiAqIGNvbXBvc2l0aW9uIGhhcyBiZWd1bj9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzRmFsbGJhY2tDb21wb3NpdGlvblN0YXJ0KHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BLZXlEb3duICYmIG5hdGl2ZUV2ZW50LmtleUNvZGUgPT09IFNUQVJUX0tFWUNPREU7XG59XG5cbi8qKlxuICogRG9lcyBvdXIgZmFsbGJhY2sgbW9kZSB0aGluayB0aGF0IHRoaXMgZXZlbnQgaXMgdGhlIGVuZCBvZiBjb21wb3NpdGlvbj9cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KSB7XG4gIHN3aXRjaCAodG9wTGV2ZWxUeXBlKSB7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcEtleVVwOlxuICAgICAgLy8gQ29tbWFuZCBrZXlzIGluc2VydCBvciBjbGVhciBJTUUgaW5wdXQuXG4gICAgICByZXR1cm4gRU5EX0tFWUNPREVTLmluZGV4T2YobmF0aXZlRXZlbnQua2V5Q29kZSkgIT09IC0xO1xuICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BLZXlEb3duOlxuICAgICAgLy8gRXhwZWN0IElNRSBrZXlDb2RlIG9uIGVhY2gga2V5ZG93bi4gSWYgd2UgZ2V0IGFueSBvdGhlclxuICAgICAgLy8gY29kZSB3ZSBtdXN0IGhhdmUgZXhpdGVkIGVhcmxpZXIuXG4gICAgICByZXR1cm4gbmF0aXZlRXZlbnQua2V5Q29kZSAhPT0gU1RBUlRfS0VZQ09ERTtcbiAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wS2V5UHJlc3M6XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlRG93bjpcbiAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQmx1cjpcbiAgICAgIC8vIEV2ZW50cyBhcmUgbm90IHBvc3NpYmxlIHdpdGhvdXQgY2FuY2VsbGluZyBJTUUuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogR29vZ2xlIElucHV0IFRvb2xzIHByb3ZpZGVzIGNvbXBvc2l0aW9uIGRhdGEgdmlhIGEgQ3VzdG9tRXZlbnQsXG4gKiB3aXRoIHRoZSBgZGF0YWAgcHJvcGVydHkgcG9wdWxhdGVkIGluIHRoZSBgZGV0YWlsYCBvYmplY3QuIElmIHRoaXNcbiAqIGlzIGF2YWlsYWJsZSBvbiB0aGUgZXZlbnQgb2JqZWN0LCB1c2UgaXQuIElmIG5vdCwgdGhpcyBpcyBhIHBsYWluXG4gKiBjb21wb3NpdGlvbiBldmVudCBhbmQgd2UgaGF2ZSBub3RoaW5nIHNwZWNpYWwgdG8gZXh0cmFjdC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEByZXR1cm4gez9zdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpIHtcbiAgdmFyIGRldGFpbCA9IG5hdGl2ZUV2ZW50LmRldGFpbDtcbiAgaWYgKHR5cGVvZiBkZXRhaWwgPT09ICdvYmplY3QnICYmICdkYXRhJyBpbiBkZXRhaWwpIHtcbiAgICByZXR1cm4gZGV0YWlsLmRhdGE7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8vIFRyYWNrIHRoZSBjdXJyZW50IElNRSBjb21wb3NpdGlvbiBmYWxsYmFjayBvYmplY3QsIGlmIGFueS5cbnZhciBjdXJyZW50Q29tcG9zaXRpb24gPSBudWxsO1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFR5cGUgUmVjb3JkIGZyb20gYEV2ZW50Q29uc3RhbnRzYC5cbiAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRvcExldmVsVGFyZ2V0IFRoZSBsaXN0ZW5pbmcgY29tcG9uZW50IHJvb3Qgbm9kZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFRhcmdldElEIElEIG9mIGB0b3BMZXZlbFRhcmdldGAuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHs/b2JqZWN0fSBBIFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RDb21wb3NpdGlvbkV2ZW50KHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB2YXIgZXZlbnRUeXBlO1xuICB2YXIgZmFsbGJhY2tEYXRhO1xuXG4gIGlmIChjYW5Vc2VDb21wb3NpdGlvbkV2ZW50KSB7XG4gICAgZXZlbnRUeXBlID0gZ2V0Q29tcG9zaXRpb25FdmVudFR5cGUodG9wTGV2ZWxUeXBlKTtcbiAgfSBlbHNlIGlmICghY3VycmVudENvbXBvc2l0aW9uKSB7XG4gICAgaWYgKGlzRmFsbGJhY2tDb21wb3NpdGlvblN0YXJ0KHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpKSB7XG4gICAgICBldmVudFR5cGUgPSBldmVudFR5cGVzLmNvbXBvc2l0aW9uU3RhcnQ7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KSkge1xuICAgIGV2ZW50VHlwZSA9IGV2ZW50VHlwZXMuY29tcG9zaXRpb25FbmQ7XG4gIH1cblxuICBpZiAoIWV2ZW50VHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhKSB7XG4gICAgLy8gVGhlIGN1cnJlbnQgY29tcG9zaXRpb24gaXMgc3RvcmVkIHN0YXRpY2FsbHkgYW5kIG11c3Qgbm90IGJlXG4gICAgLy8gb3ZlcndyaXR0ZW4gd2hpbGUgY29tcG9zaXRpb24gY29udGludWVzLlxuICAgIGlmICghY3VycmVudENvbXBvc2l0aW9uICYmIGV2ZW50VHlwZSA9PT0gZXZlbnRUeXBlcy5jb21wb3NpdGlvblN0YXJ0KSB7XG4gICAgICBjdXJyZW50Q29tcG9zaXRpb24gPSBGYWxsYmFja0NvbXBvc2l0aW9uU3RhdGUuZ2V0UG9vbGVkKHRvcExldmVsVGFyZ2V0KTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gZXZlbnRUeXBlcy5jb21wb3NpdGlvbkVuZCkge1xuICAgICAgaWYgKGN1cnJlbnRDb21wb3NpdGlvbikge1xuICAgICAgICBmYWxsYmFja0RhdGEgPSBjdXJyZW50Q29tcG9zaXRpb24uZ2V0RGF0YSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBldmVudCA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQuZ2V0UG9vbGVkKGV2ZW50VHlwZSwgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAoZmFsbGJhY2tEYXRhKSB7XG4gICAgLy8gSW5qZWN0IGRhdGEgZ2VuZXJhdGVkIGZyb20gZmFsbGJhY2sgcGF0aCBpbnRvIHRoZSBzeW50aGV0aWMgZXZlbnQuXG4gICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBvZiBuYXRpdmUgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZS5cbiAgICBldmVudC5kYXRhID0gZmFsbGJhY2tEYXRhO1xuICB9IGVsc2Uge1xuICAgIHZhciBjdXN0b21EYXRhID0gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG4gICAgaWYgKGN1c3RvbURhdGEgIT09IG51bGwpIHtcbiAgICAgIGV2ZW50LmRhdGEgPSBjdXN0b21EYXRhO1xuICAgIH1cbiAgfVxuXG4gIEV2ZW50UHJvcGFnYXRvcnMuYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyhldmVudCk7XG4gIHJldHVybiBldmVudDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHs/c3RyaW5nfSBUaGUgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBgYmVmb3JlSW5wdXRgIGV2ZW50LlxuICovXG5mdW5jdGlvbiBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoICh0b3BMZXZlbFR5cGUpIHtcbiAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQ29tcG9zaXRpb25FbmQ6XG4gICAgICByZXR1cm4gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCk7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcEtleVByZXNzOlxuICAgICAgLyoqXG4gICAgICAgKiBJZiBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRzIGFyZSBhdmFpbGFibGUsIG91ciBnb2FsIGlzIHRvIG1ha2VcbiAgICAgICAqIHVzZSBvZiB0aGVtLiBIb3dldmVyLCB0aGVyZSBpcyBhIHNwZWNpYWwgY2FzZTogdGhlIHNwYWNlYmFyIGtleS5cbiAgICAgICAqIEluIFdlYmtpdCwgcHJldmVudGluZyBkZWZhdWx0IG9uIGEgc3BhY2ViYXIgYHRleHRJbnB1dGAgZXZlbnRcbiAgICAgICAqIGNhbmNlbHMgY2hhcmFjdGVyIGluc2VydGlvbiwgYnV0IGl0ICphbHNvKiBjYXVzZXMgdGhlIGJyb3dzZXJcbiAgICAgICAqIHRvIGZhbGwgYmFjayB0byBpdHMgZGVmYXVsdCBzcGFjZWJhciBiZWhhdmlvciBvZiBzY3JvbGxpbmcgdGhlXG4gICAgICAgKiBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIFRyYWNraW5nIGF0OlxuICAgICAgICogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM1NTEwM1xuICAgICAgICpcbiAgICAgICAqIFRvIGF2b2lkIHRoaXMgaXNzdWUsIHVzZSB0aGUga2V5cHJlc3MgZXZlbnQgYXMgaWYgbm8gYHRleHRJbnB1dGBcbiAgICAgICAqIGV2ZW50IGlzIGF2YWlsYWJsZS5cbiAgICAgICAqL1xuICAgICAgdmFyIHdoaWNoID0gbmF0aXZlRXZlbnQud2hpY2g7XG4gICAgICBpZiAod2hpY2ggIT09IFNQQUNFQkFSX0NPREUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGhhc1NwYWNlS2V5cHJlc3MgPSB0cnVlO1xuICAgICAgcmV0dXJuIFNQQUNFQkFSX0NIQVI7XG5cbiAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wVGV4dElucHV0OlxuICAgICAgLy8gUmVjb3JkIHRoZSBjaGFyYWN0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZSBET00uXG4gICAgICB2YXIgY2hhcnMgPSBuYXRpdmVFdmVudC5kYXRhO1xuXG4gICAgICAvLyBJZiBpdCdzIGEgc3BhY2ViYXIgY2hhcmFjdGVyLCBhc3N1bWUgdGhhdCB3ZSBoYXZlIGFscmVhZHkgaGFuZGxlZFxuICAgICAgLy8gaXQgYXQgdGhlIGtleXByZXNzIGxldmVsIGFuZCBiYWlsIGltbWVkaWF0ZWx5LiBBbmRyb2lkIENocm9tZVxuICAgICAgLy8gZG9lc24ndCBnaXZlIHVzIGtleWNvZGVzLCBzbyB3ZSBuZWVkIHRvIGJsYWNrbGlzdCBpdC5cbiAgICAgIGlmIChjaGFycyA9PT0gU1BBQ0VCQVJfQ0hBUiAmJiBoYXNTcGFjZUtleXByZXNzKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hhcnM7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gRm9yIG90aGVyIG5hdGl2ZSBldmVudCB0eXBlcywgZG8gbm90aGluZy5cbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogRm9yIGJyb3dzZXJzIHRoYXQgZG8gbm90IHByb3ZpZGUgdGhlIGB0ZXh0SW5wdXRgIGV2ZW50LCBleHRyYWN0IHRoZVxuICogYXBwcm9wcmlhdGUgc3RyaW5nIHRvIHVzZSBmb3IgU3ludGhldGljSW5wdXRFdmVudC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHs/c3RyaW5nfSBUaGUgZmFsbGJhY2sgc3RyaW5nIGZvciB0aGlzIGBiZWZvcmVJbnB1dGAgZXZlbnQuXG4gKi9cbmZ1bmN0aW9uIGdldEZhbGxiYWNrQmVmb3JlSW5wdXRDaGFycyh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KSB7XG4gIC8vIElmIHdlIGFyZSBjdXJyZW50bHkgY29tcG9zaW5nIChJTUUpIGFuZCB1c2luZyBhIGZhbGxiYWNrIHRvIGRvIHNvLFxuICAvLyB0cnkgdG8gZXh0cmFjdCB0aGUgY29tcG9zZWQgY2hhcmFjdGVycyBmcm9tIHRoZSBmYWxsYmFjayBvYmplY3QuXG4gIGlmIChjdXJyZW50Q29tcG9zaXRpb24pIHtcbiAgICBpZiAodG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcENvbXBvc2l0aW9uRW5kIHx8IGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgdmFyIGNoYXJzID0gY3VycmVudENvbXBvc2l0aW9uLmdldERhdGEoKTtcbiAgICAgIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZS5yZWxlYXNlKGN1cnJlbnRDb21wb3NpdGlvbik7XG4gICAgICBjdXJyZW50Q29tcG9zaXRpb24gPSBudWxsO1xuICAgICAgcmV0dXJuIGNoYXJzO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN3aXRjaCAodG9wTGV2ZWxUeXBlKSB7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFBhc3RlOlxuICAgICAgLy8gSWYgYSBwYXN0ZSBldmVudCBvY2N1cnMgYWZ0ZXIgYSBrZXlwcmVzcywgdGhyb3cgb3V0IHRoZSBpbnB1dFxuICAgICAgLy8gY2hhcnMuIFBhc3RlIGV2ZW50cyBzaG91bGQgbm90IGxlYWQgdG8gQmVmb3JlSW5wdXQgZXZlbnRzLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcEtleVByZXNzOlxuICAgICAgLyoqXG4gICAgICAgKiBBcyBvZiB2MjcsIEZpcmVmb3ggbWF5IGZpcmUga2V5cHJlc3MgZXZlbnRzIGV2ZW4gd2hlbiBubyBjaGFyYWN0ZXJcbiAgICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQuIEEgZmV3IHBvc3NpYmlsaXRpZXM6XG4gICAgICAgKlxuICAgICAgICogLSBgd2hpY2hgIGlzIGAwYC4gQXJyb3cga2V5cywgRXNjIGtleSwgZXRjLlxuICAgICAgICpcbiAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IG5vIGNoYXIgaXMgYXZhaWxhYmxlLlxuICAgICAgICogICBFeDogJ0FsdEdyICsgZGAgaW4gUG9saXNoLiBUaGVyZSBpcyBubyBtb2RpZmllZCBjaGFyYWN0ZXIgZm9yXG4gICAgICAgKiAgIHRoaXMga2V5IGNvbWJpbmF0aW9uIGFuZCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQgaW50byB0aGVcbiAgICAgICAqICAgZG9jdW1lbnQsIGJ1dCBGRiBmaXJlcyB0aGUga2V5cHJlc3MgZm9yIGNoYXIgY29kZSBgMTAwYCBhbnl3YXkuXG4gICAgICAgKiAgIE5vIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAqXG4gICAgICAgKiAtIGB3aGljaGAgaXMgdGhlIHByZXNzZWQga2V5IGNvZGUsIGJ1dCBhIGNvbW1hbmQgY29tYmluYXRpb24gaXNcbiAgICAgICAqICAgYmVpbmcgdXNlZC4gRXg6IGBDbWQrQ2AuIE5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCwgYW5kIG5vXG4gICAgICAgKiAgIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hdGl2ZUV2ZW50LndoaWNoICYmICFpc0tleXByZXNzQ29tbWFuZChuYXRpdmVFdmVudCkpIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobmF0aXZlRXZlbnQud2hpY2gpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcENvbXBvc2l0aW9uRW5kOlxuICAgICAgcmV0dXJuIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhID8gbnVsbCA6IG5hdGl2ZUV2ZW50LmRhdGE7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdCBhIFN5bnRoZXRpY0lucHV0RXZlbnQgZm9yIGBiZWZvcmVJbnB1dGAsIGJhc2VkIG9uIGVpdGhlciBuYXRpdmVcbiAqIGB0ZXh0SW5wdXRgIG9yIGZhbGxiYWNrIGJlaGF2aW9yLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFR5cGUgUmVjb3JkIGZyb20gYEV2ZW50Q29uc3RhbnRzYC5cbiAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRvcExldmVsVGFyZ2V0IFRoZSBsaXN0ZW5pbmcgY29tcG9uZW50IHJvb3Qgbm9kZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFRhcmdldElEIElEIG9mIGB0b3BMZXZlbFRhcmdldGAuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHs/b2JqZWN0fSBBIFN5bnRoZXRpY0lucHV0RXZlbnQuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RCZWZvcmVJbnB1dEV2ZW50KHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB2YXIgY2hhcnM7XG5cbiAgaWYgKGNhblVzZVRleHRJbnB1dEV2ZW50KSB7XG4gICAgY2hhcnMgPSBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIGNoYXJzID0gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKHRvcExldmVsVHlwZSwgbmF0aXZlRXZlbnQpO1xuICB9XG5cbiAgLy8gSWYgbm8gY2hhcmFjdGVycyBhcmUgYmVpbmcgaW5zZXJ0ZWQsIG5vIEJlZm9yZUlucHV0IGV2ZW50IHNob3VsZFxuICAvLyBiZSBmaXJlZC5cbiAgaWYgKCFjaGFycykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGV2ZW50ID0gU3ludGhldGljSW5wdXRFdmVudC5nZXRQb29sZWQoZXZlbnRUeXBlcy5iZWZvcmVJbnB1dCwgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBldmVudC5kYXRhID0gY2hhcnM7XG4gIEV2ZW50UHJvcGFnYXRvcnMuYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyhldmVudCk7XG4gIHJldHVybiBldmVudDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYG9uQmVmb3JlSW5wdXRgIGV2ZW50IHRvIG1hdGNoXG4gKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL1dELURPTS1MZXZlbC0zLUV2ZW50cy0yMDEzMTEwNS8jZXZlbnRzLWlucHV0ZXZlbnRzLlxuICpcbiAqIFRoaXMgZXZlbnQgcGx1Z2luIGlzIGJhc2VkIG9uIHRoZSBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRcbiAqIGF2YWlsYWJsZSBpbiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEsIGFuZCBJRS4gVGhpcyBldmVudCBmaXJlcyBhZnRlclxuICogYG9uS2V5UHJlc3NgIGFuZCBgb25Db21wb3NpdGlvbkVuZGAsIGJ1dCBiZWZvcmUgYG9uSW5wdXRgLlxuICpcbiAqIGBiZWZvcmVJbnB1dGAgaXMgc3BlYydkIGJ1dCBub3QgaW1wbGVtZW50ZWQgaW4gYW55IGJyb3dzZXJzLCBhbmRcbiAqIHRoZSBgaW5wdXRgIGV2ZW50IGRvZXMgbm90IHByb3ZpZGUgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGhhc1xuICogYWN0dWFsbHkgYmVlbiBhZGRlZCwgY29udHJhcnkgdG8gdGhlIHNwZWMuIFRodXMsIGB0ZXh0SW5wdXRgIGlzIHRoZSBiZXN0XG4gKiBhdmFpbGFibGUgZXZlbnQgdG8gaWRlbnRpZnkgdGhlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGFjdHVhbGx5IGJlZW4gaW5zZXJ0ZWRcbiAqIGludG8gdGhlIHRhcmdldCBub2RlLlxuICpcbiAqIFRoaXMgcGx1Z2luIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGVtaXR0aW5nIGBjb21wb3NpdGlvbmAgZXZlbnRzLCB0aHVzXG4gKiBhbGxvd2luZyB1cyB0byBzaGFyZSBjb21wb3NpdGlvbiBmYWxsYmFjayBjb2RlIGZvciBib3RoIGBiZWZvcmVJbnB1dGAgYW5kXG4gKiBgY29tcG9zaXRpb25gIGV2ZW50IHR5cGVzLlxuICovXG52YXIgQmVmb3JlSW5wdXRFdmVudFBsdWdpbiA9IHtcblxuICBldmVudFR5cGVzOiBldmVudFR5cGVzLFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gICAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRvcExldmVsVGFyZ2V0IFRoZSBsaXN0ZW5pbmcgY29tcG9uZW50IHJvb3Qgbm9kZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVGFyZ2V0SUQgSUQgb2YgYHRvcExldmVsVGFyZ2V0YC5cbiAgICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICAgKiBAcmV0dXJuIHsqfSBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQHNlZSB7RXZlbnRQbHVnaW5IdWIuZXh0cmFjdEV2ZW50c31cbiAgICovXG4gIGV4dHJhY3RFdmVudHM6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElELCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICByZXR1cm4gW2V4dHJhY3RDb21wb3NpdGlvbkV2ZW50KHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCksIGV4dHJhY3RCZWZvcmVJbnB1dEV2ZW50KHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCldO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEJlZm9yZUlucHV0RXZlbnRQbHVnaW47XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0JlZm9yZUlucHV0RXZlbnRQbHVnaW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 73 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventPropagators\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar EventPluginHub = __webpack_require__(31);\n\nvar warning = __webpack_require__(25);\n\nvar accumulateInto = __webpack_require__(35);\nvar forEachAccumulated = __webpack_require__(36);\n\nvar PropagationPhases = EventConstants.PropagationPhases;\nvar getListener = EventPluginHub.getListener;\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(id, event, propagationPhase) {\n var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n return getListener(id, registrationName);\n}\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(domID, upwards, event) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(domID, 'Dispatching id must not be null') : undefined;\n }\n var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;\n var listener = listenerAtPhase(domID, event, phase);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);\n }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory. We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(event.dispatchMarker, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.\n */\nfunction accumulateTwoPhaseDispatchesSingleSkipTarget(event) {\n if (event && event.dispatchConfig.phasedRegistrationNames) {\n EventPluginHub.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(event.dispatchMarker, accumulateDirectionalDispatches, event);\n }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(id, ignoredDirection, event) {\n if (event && event.dispatchConfig.registrationName) {\n var registrationName = event.dispatchConfig.registrationName;\n var listener = getListener(id, registrationName);\n if (listener) {\n event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n event._dispatchIDs = accumulateInto(event._dispatchIDs, id);\n }\n }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n if (event && event.dispatchConfig.registrationName) {\n accumulateDispatches(event.dispatchMarker, null, event);\n }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\nfunction accumulateTwoPhaseDispatchesSkipTarget(events) {\n forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);\n}\n\nfunction accumulateEnterLeaveDispatches(leave, enter, fromID, toID) {\n EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(fromID, toID, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing event a\n * single one.\n *\n * @constructor EventPropagators\n */\nvar EventPropagators = {\n accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,\n accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,\n accumulateDirectDispatches: accumulateDirectDispatches,\n accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches\n};\n\nmodule.exports = EventPropagators;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRXZlbnRQcm9wYWdhdG9ycy5qcz9mYTM2Il0sIm5hbWVzIjpbIkV2ZW50Q29uc3RhbnRzIiwicmVxdWlyZSIsIkV2ZW50UGx1Z2luSHViIiwid2FybmluZyIsImFjY3VtdWxhdGVJbnRvIiwiZm9yRWFjaEFjY3VtdWxhdGVkIiwiUHJvcGFnYXRpb25QaGFzZXMiLCJnZXRMaXN0ZW5lciIsImxpc3RlbmVyQXRQaGFzZSIsImlkIiwiZXZlbnQiLCJwcm9wYWdhdGlvblBoYXNlIiwicmVnaXN0cmF0aW9uTmFtZSIsImRpc3BhdGNoQ29uZmlnIiwicGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMiLCJhY2N1bXVsYXRlRGlyZWN0aW9uYWxEaXNwYXRjaGVzIiwiZG9tSUQiLCJ1cHdhcmRzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwicGhhc2UiLCJidWJibGVkIiwiY2FwdHVyZWQiLCJsaXN0ZW5lciIsIl9kaXNwYXRjaExpc3RlbmVycyIsIl9kaXNwYXRjaElEcyIsImFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTaW5nbGUiLCJpbmplY3Rpb24iLCJnZXRJbnN0YW5jZUhhbmRsZSIsInRyYXZlcnNlVHdvUGhhc2UiLCJkaXNwYXRjaE1hcmtlciIsImFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTaW5nbGVTa2lwVGFyZ2V0IiwidHJhdmVyc2VUd29QaGFzZVNraXBUYXJnZXQiLCJhY2N1bXVsYXRlRGlzcGF0Y2hlcyIsImlnbm9yZWREaXJlY3Rpb24iLCJhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlc1NpbmdsZSIsImFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMiLCJldmVudHMiLCJhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2tpcFRhcmdldCIsImFjY3VtdWxhdGVFbnRlckxlYXZlRGlzcGF0Y2hlcyIsImxlYXZlIiwiZW50ZXIiLCJmcm9tSUQiLCJ0b0lEIiwidHJhdmVyc2VFbnRlckxlYXZlIiwiYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXMiLCJFdmVudFByb3BhZ2F0b3JzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBckI7QUFDQSxJQUFJQyxpQkFBaUIsbUJBQUFELENBQVEsRUFBUixDQUFyQjs7QUFFQSxJQUFJRSxVQUFVLG1CQUFBRixDQUFRLEVBQVIsQ0FBZDs7QUFFQSxJQUFJRyxpQkFBaUIsbUJBQUFILENBQVEsRUFBUixDQUFyQjtBQUNBLElBQUlJLHFCQUFxQixtQkFBQUosQ0FBUSxFQUFSLENBQXpCOztBQUVBLElBQUlLLG9CQUFvQk4sZUFBZU0saUJBQXZDO0FBQ0EsSUFBSUMsY0FBY0wsZUFBZUssV0FBakM7O0FBRUE7Ozs7QUFJQSxTQUFTQyxlQUFULENBQXlCQyxFQUF6QixFQUE2QkMsS0FBN0IsRUFBb0NDLGdCQUFwQyxFQUFzRDtBQUNwRCxNQUFJQyxtQkFBbUJGLE1BQU1HLGNBQU4sQ0FBcUJDLHVCQUFyQixDQUE2Q0gsZ0JBQTdDLENBQXZCO0FBQ0EsU0FBT0osWUFBWUUsRUFBWixFQUFnQkcsZ0JBQWhCLENBQVA7QUFDRDs7QUFFRDs7Ozs7O0FBTUEsU0FBU0csK0JBQVQsQ0FBeUNDLEtBQXpDLEVBQWdEQyxPQUFoRCxFQUF5RFAsS0FBekQsRUFBZ0U7QUFDOUQsTUFBSVEsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDRixZQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NqQixRQUFRYSxLQUFSLEVBQWUsaUNBQWYsQ0FBeEMsR0FBNEZLLFNBQTVGO0FBQ0Q7QUFDRCxNQUFJQyxRQUFRTCxVQUFVWCxrQkFBa0JpQixPQUE1QixHQUFzQ2pCLGtCQUFrQmtCLFFBQXBFO0FBQ0EsTUFB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LyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIEV2ZW50UHJvcGFnYXRvcnNcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBFdmVudENvbnN0YW50cyA9IHJlcXVpcmUoJy4vRXZlbnRDb25zdGFudHMnKTtcbnZhciBFdmVudFBsdWdpbkh1YiA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5IdWInKTtcblxudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBhY2N1bXVsYXRlSW50byA9IHJlcXVpcmUoJy4vYWNjdW11bGF0ZUludG8nKTtcbnZhciBmb3JFYWNoQWNjdW11bGF0ZWQgPSByZXF1aXJlKCcuL2ZvckVhY2hBY2N1bXVsYXRlZCcpO1xuXG52YXIgUHJvcGFnYXRpb25QaGFzZXMgPSBFdmVudENvbnN0YW50cy5Qcm9wYWdhdGlvblBoYXNlcztcbnZhciBnZXRMaXN0ZW5lciA9IEV2ZW50UGx1Z2luSHViLmdldExpc3RlbmVyO1xuXG4vKipcbiAqIFNvbWUgZXZlbnQgdHlwZXMgaGF2ZSBhIG5vdGlvbiBvZiBkaWZmZXJlbnQgcmVnaXN0cmF0aW9uIG5hbWVzIGZvciBkaWZmZXJlbnRcbiAqIFwicGhhc2VzXCIgb2YgcHJvcGFnYXRpb24uIFRoaXMgZmluZHMgbGlzdGVuZXJzIGJ5IGEgZ2l2ZW4gcGhhc2UuXG4gKi9cbmZ1bmN0aW9uIGxpc3RlbmVyQXRQaGFzZShpZCwgZXZlbnQsIHByb3BhZ2F0aW9uUGhhc2UpIHtcbiAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBldmVudC5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdpc3RyYXRpb25OYW1lc1twcm9wYWdhdGlvblBoYXNlXTtcbiAgcmV0dXJuIGdldExpc3RlbmVyKGlkLCByZWdpc3RyYXRpb25OYW1lKTtcbn1cblxuLyoqXG4gKiBUYWdzIGEgYFN5bnRoZXRpY0V2ZW50YCB3aXRoIGRpc3BhdGNoZWQgbGlzdGVuZXJzLiBDcmVhdGluZyB0aGlzIGZ1bmN0aW9uXG4gKiBoZXJlLCBhbGxvd3MgdXMgdG8gbm90IGhhdmUgdG8gYmluZCBvciBjcmVhdGUgZnVuY3Rpb25zIGZvciBlYWNoIGV2ZW50LlxuICogTXV0YXRpbmcgdGhlIGV2ZW50J3MgbWVtYmVycyBhbGxvd3MgdXMgdG8gbm90IGhhdmUgdG8gY3JlYXRlIGEgd3JhcHBpbmdcbiAqIFwiZGlzcGF0Y2hcIiBvYmplY3QgdGhhdCBwYWlycyB0aGUgZXZlbnQgd2l0aCB0aGUgbGlzdGVuZXIuXG4gKi9cbmZ1bmN0aW9uIGFjY3VtdWxhdGVEaXJlY3Rpb25hbERpc3BhdGNoZXMoZG9tSUQsIHVwd2FyZHMsIGV2ZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZG9tSUQsICdEaXNwYXRjaGluZyBpZCBtdXN0IG5vdCBiZSBudWxsJykgOiB1bmRlZmluZWQ7XG4gIH1cbiAgdmFyIHBoYXNlID0gdXB3YXJkcyA/IFByb3BhZ2F0aW9uUGhhc2VzLmJ1YmJsZWQgOiBQcm9wYWdhdGlvblBoYXNlcy5jYXB0dXJlZDtcbiAgdmFyIGxpc3RlbmVyID0gbGlzdGVuZXJBdFBoYXNlKGRvbUlELCBldmVudCwgcGhhc2UpO1xuICBpZiAobGlzdGVuZXIpIHtcbiAgICBldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hMaXN0ZW5lcnMsIGxpc3RlbmVyKTtcbiAgICBldmVudC5fZGlzcGF0Y2hJRHMgPSBhY2N1bXVsYXRlSW50byhldmVudC5fZGlzcGF0Y2hJRHMsIGRvbUlEKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbGxlY3QgZGlzcGF0Y2hlcyAobXVzdCBiZSBlbnRpcmVseSBjb2xsZWN0ZWQgYmVmb3JlIGRpc3BhdGNoaW5nIC0gc2VlIHVuaXRcbiAqIHRlc3RzKS4gTGF6aWx5IGFsbG9jYXRlIHRoZSBhcnJheSB0byBjb25zZXJ2ZSBtZW1vcnkuICBXZSBtdXN0IGxvb3AgdGhyb3VnaFxuICogZWFjaCBldmVudCBhbmQgcGVyZm9ybSB0aGUgdHJhdmVyc2FsIGZvciBlYWNoIG9uZS4gV2UgY2Fubm90IHBlcmZvcm0gYVxuICogc2luZ2xlIHRyYXZlcnNhbCBmb3IgdGhlIGVudGlyZSBjb2xsZWN0aW9uIG9mIGV2ZW50cyBiZWNhdXNlIGVhY2ggZXZlbnQgbWF5XG4gKiBoYXZlIGEgZGlmZmVyZW50IHRhcmdldC5cbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZShldmVudCkge1xuICBpZiAoZXZlbnQgJiYgZXZlbnQuZGlzcGF0Y2hDb25maWcucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMpIHtcbiAgICBFdmVudFBsdWdpbkh1Yi5pbmplY3Rpb24uZ2V0SW5zdGFuY2VIYW5kbGUoKS50cmF2ZXJzZVR3b1BoYXNlKGV2ZW50LmRpc3BhdGNoTWFya2VyLCBhY2N1bXVsYXRlRGlyZWN0aW9uYWxEaXNwYXRjaGVzLCBldmVudCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTYW1lIGFzIGBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2luZ2xlYCwgYnV0IHNraXBzIG92ZXIgdGhlIHRhcmdldElELlxuICovXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2luZ2xlU2tpcFRhcmdldChldmVudCkge1xuICBpZiAoZXZlbnQgJiYgZXZlbnQuZGlzcGF0Y2hDb25maWcucGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMpIHtcbiAgICBFdmVudFBsdWdpbkh1Yi5pbmplY3Rpb24uZ2V0SW5zdGFuY2VIYW5kbGUoKS50cmF2ZXJzZVR3b1BoYXNlU2tpcFRhcmdldChldmVudC5kaXNwYXRjaE1hcmtlciwgYWNjdW11bGF0ZURpcmVjdGlvbmFsRGlzcGF0Y2hlcywgZXZlbnQpO1xuICB9XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZXMgd2l0aG91dCByZWdhcmQgdG8gZGlyZWN0aW9uLCBkb2VzIG5vdCBsb29rIGZvciBwaGFzZWRcbiAqIHJlZ2lzdHJhdGlvbiBuYW1lcy4gU2FtZSBhcyBgYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXNTaW5nbGVgIGJ1dCB3aXRob3V0XG4gKiByZXF1aXJpbmcgdGhhdCB0aGUgYGRpc3BhdGNoTWFya2VyYCBiZSB0aGUgc2FtZSBhcyB0aGUgZGlzcGF0Y2hlZCBJRC5cbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZURpc3BhdGNoZXMoaWQsIGlnbm9yZWREaXJlY3Rpb24sIGV2ZW50KSB7XG4gIGlmIChldmVudCAmJiBldmVudC5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lKSB7XG4gICAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBldmVudC5kaXNwYXRjaENvbmZpZy5yZWdpc3RyYXRpb25OYW1lO1xuICAgIHZhciBsaXN0ZW5lciA9IGdldExpc3RlbmVyKGlkLCByZWdpc3RyYXRpb25OYW1lKTtcbiAgICBpZiAobGlzdGVuZXIpIHtcbiAgICAgIGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycyA9IGFjY3VtdWxhdGVJbnRvKGV2ZW50Ll9kaXNwYXRjaExpc3RlbmVycywgbGlzdGVuZXIpO1xuICAgICAgZXZlbnQuX2Rpc3BhdGNoSURzID0gYWNjdW11bGF0ZUludG8oZXZlbnQuX2Rpc3BhdGNoSURzLCBpZCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWNjdW11bGF0ZXMgZGlzcGF0Y2hlcyBvbiBhbiBgU3ludGhldGljRXZlbnRgLCBidXQgb25seSBmb3IgdGhlXG4gKiBgZGlzcGF0Y2hNYXJrZXJgLlxuICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZlbnRcbiAqL1xuZnVuY3Rpb24gYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXNTaW5nbGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LmRpc3BhdGNoQ29uZmlnLnJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICBhY2N1bXVsYXRlRGlzcGF0Y2hlcyhldmVudC5kaXNwYXRjaE1hcmtlciwgbnVsbCwgZXZlbnQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoZXZlbnRzKSB7XG4gIGZvckVhY2hBY2N1bXVsYXRlZChldmVudHMsIGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTaW5nbGUpO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzU2tpcFRhcmdldChldmVudHMpIHtcbiAgZm9yRWFjaEFjY3VtdWxhdGVkKGV2ZW50cywgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NpbmdsZVNraXBUYXJnZXQpO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZURpc3BhdGNoZXMobGVhdmUsIGVudGVyLCBmcm9tSUQsIHRvSUQpIHtcbiAgRXZlbnRQbHVnaW5IdWIuaW5qZWN0aW9uLmdldEluc3RhbmNlSGFuZGxlKCkudHJhdmVyc2VFbnRlckxlYXZlKGZyb21JRCwgdG9JRCwgYWNjdW11bGF0ZURpc3BhdGNoZXMsIGxlYXZlLCBlbnRlcik7XG59XG5cbmZ1bmN0aW9uIGFjY3VtdWxhdGVEaXJlY3REaXNwYXRjaGVzKGV2ZW50cykge1xuICBmb3JFYWNoQWNjdW11bGF0ZWQoZXZlbnRzLCBhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlc1NpbmdsZSk7XG59XG5cbi8qKlxuICogQSBzbWFsbCBzZXQgb2YgcHJvcGFnYXRpb24gcGF0dGVybnMsIGVhY2ggb2Ygd2hpY2ggd2lsbCBhY2NlcHQgYSBzbWFsbCBhbW91bnRcbiAqIG9mIGluZm9ybWF0aW9uLCBhbmQgZ2VuZXJhdGUgYSBzZXQgb2YgXCJkaXNwYXRjaCByZWFkeSBldmVudCBvYmplY3RzXCIgLSB3aGljaFxuICogYXJlIHNldHMgb2YgZXZlbnRzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYW5ub3RhdGVkIHdpdGggYSBzZXQgb2YgZGlzcGF0Y2hlZFxuICogbGlzdGVuZXIgZnVuY3Rpb25zL2lkcy4gVGhlIEFQSSBpcyBkZXNpZ25lZCB0aGlzIHdheSB0byBkaXNjb3VyYWdlIHRoZXNlXG4gKiBwcm9wYWdhdGlvbiBzdHJhdGVnaWVzIGZyb20gYWN0dWFsbHkgZXhlY3V0aW5nIHRoZSBkaXNwYXRjaGVzLCBzaW5jZSB3ZVxuICogYWx3YXlzIHdhbnQgdG8gY29sbGVjdCB0aGUgZW50aXJlIHNldCBvZiBkaXNwYXRjaGVzIGJlZm9yZSBleGVjdXRpbmcgZXZlbnQgYVxuICogc2luZ2xlIG9uZS5cbiAqXG4gKiBAY29uc3RydWN0b3IgRXZlbnRQcm9wYWdhdG9yc1xuICovXG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHtcbiAgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlczogYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyxcbiAgYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlc1NraXBUYXJnZXQ6IGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTa2lwVGFyZ2V0LFxuICBhY2N1bXVsYXRlRGlyZWN0RGlzcGF0Y2hlczogYWNjdW11bGF0ZURpcmVjdERpc3BhdGNoZXMsXG4gIGFjY3VtdWxhdGVFbnRlckxlYXZlRGlzcGF0Y2hlczogYWNjdW11bGF0ZUVudGVyTGVhdmVEaXNwYXRjaGVzXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50UHJvcGFnYXRvcnM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0V2ZW50UHJvcGFnYXRvcnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 74 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FallbackCompositionState\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = __webpack_require__(56);\n\nvar assign = __webpack_require__(39);\nvar getTextContentAccessor = __webpack_require__(75);\n\n/**\n * This helper class stores information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n * @param {DOMEventTarget} root\n */\nfunction FallbackCompositionState(root) {\n this._root = root;\n this._startText = this.getText();\n this._fallbackText = null;\n}\n\nassign(FallbackCompositionState.prototype, {\n destructor: function destructor() {\n this._root = null;\n this._startText = null;\n this._fallbackText = null;\n },\n\n /**\n * Get current text of input.\n *\n * @return {string}\n */\n getText: function getText() {\n if ('value' in this._root) {\n return this._root.value;\n }\n return this._root[getTextContentAccessor()];\n },\n\n /**\n * Determine the differing substring between the initially stored\n * text content and the current content.\n *\n * @return {string}\n */\n getData: function getData() {\n if (this._fallbackText) {\n return this._fallbackText;\n }\n\n var start;\n var startValue = this._startText;\n var startLength = startValue.length;\n var end;\n var endValue = this.getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n this._fallbackText = endValue.slice(start, sliceTail);\n return this._fallbackText;\n }\n});\n\nPooledClass.addPoolingTo(FallbackCompositionState);\n\nmodule.exports = FallbackCompositionState;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlLmpzPzAzNDQiXSwibmFtZXMiOlsiUG9vbGVkQ2xhc3MiLCJyZXF1aXJlIiwiYXNzaWduIiwiZ2V0VGV4dENvbnRlbnRBY2Nlc3NvciIsIkZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZSIsInJvb3QiLCJfcm9vdCIsIl9zdGFydFRleHQiLCJnZXRUZXh0IiwiX2ZhbGxiYWNrVGV4dCIsInByb3RvdHlwZSIsImRlc3RydWN0b3IiLCJ2YWx1ZSIsImdldERhdGEiLCJzdGFydCIsInN0YXJ0VmFsdWUiLCJzdGFydExlbmd0aCIsImxlbmd0aCIsImVuZCIsImVuZFZhbHVlIiwiZW5kTGVuZ3RoIiwibWluRW5kIiwic2xpY2VUYWlsIiwidW5kZWZpbmVkIiwic2xpY2UiLCJhZGRQb29saW5nVG8iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsY0FBYyxtQkFBQUMsQ0FBUSxFQUFSLENBQWxCOztBQUVBLElBQUlDLFNBQVMsbUJBQUFELENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUUseUJBQXlCLG1CQUFBRixDQUFRLEVBQVIsQ0FBN0I7O0FBRUE7Ozs7Ozs7Ozs7O0FBV0EsU0FBU0csd0JBQVQsQ0FBa0NDLElBQWxDLEVBQXdDO0FBQ3RDLE9BQUtDLEtBQUwsR0FBYUQsSUFBYjtBQUNBLE9BQUtFLFVBQUwsR0FBa0IsS0FBS0MsT0FBTCxFQUFsQjtBQUNBLE9BQUtDLGFBQUwsR0FBcUIsSUFBckI7QUFDRDs7QUFFRFAsT0FBT0UseUJBQXlCTSxTQUFoQyxFQUEyQztBQUN6Q0MsY0FBWSxzQkFBWTtBQUN0QixTQUFLTCxLQUFMLEdBQWEsSUFBYjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsSUFBbEI7QUFDQSxTQUFLRSxhQUFMLEdBQXFCLElBQXJCO0FBQ0QsR0FMd0M7O0FBT3pDOzs7OztBQUtBRCxXQUFTLG1CQUFZO0FBQ25CLFFBQUksV0FBVyxLQUFLRixLQUFwQixFQUEyQjtBQUN6QixhQUFPLEtBQUtBLEtBQUwsQ0FBV00sS0FBbEI7QUFDRDtBQUNELFdBQU8sS0FBS04sS0FBTCxDQUFXSCx3QkFBWCxDQUFQO0FBQ0QsR0FqQndDOztBQW1CekM7Ozs7OztBQU1BVSxXQUFTLG1CQUFZO0FBQ25CLFFBQUksS0FBS0osYUFBVCxFQUF3QjtBQUN0QixhQUFPLEtBQUtBLGFBQVo7QUFDRDs7QUFFRCxRQUFJSyxLQUFKO0FBQ0EsUUFBSUMsYUFBYSxLQUFLUixVQUF0QjtBQUNBLFFBQUlTLGNBQWNELFdBQVdFLE1BQTdCO0FBQ0EsUUFBSUMsR0FBSjtBQUNBLFFBQUlDLFdBQVcsS0FBS1gsT0FBTCxFQUFmO0FBQ0EsUUFBSVksWUFBWUQsU0FBU0YsTUFBekI7O0FBRUEsU0FBS0gsUUFBUSxDQUFiLEVBQWdCQSxRQUFRRSxXQUF4QixFQUFxQ0YsT0FBckMsRUFBOEM7QUFDNUMsVUFBSUMsV0FBV0QsS0FBWCxNQUFzQkssU0FBU0wsS0FBVCxDQUExQixFQUEyQztBQUN6QztBQUNEO0FBQ0Y7O0FBRUQsUUFBSU8sU0FBU0wsY0FBY0YsS0FBM0I7QUFDQSxTQUFLSSxNQUFNLENBQVgsRUFBY0EsT0FBT0csTUFBckIsRUFBNkJILEtBQTdCLEVBQW9DO0FBQ2xDLFVBQUlILFdBQVdDLGNBQWNFLEdBQXpCLE1BQWtDQyxTQUFTQyxZQUFZRixHQUFyQixDQUF0QyxFQUFpRTtBQUMvRDtBQUNEO0FBQ0Y7O0FBRUQsUUFBSUksWUFBWUosTUFBTSxDQUFOLEdBQVUsSUFBSUEsR0FBZCxHQUFvQkssU0FBcEM7QUFDQSxTQUFLZCxhQUFMLEdBQXFCVSxTQUFTSyxLQUFULENBQWVWLEtBQWYsRUFBc0JRLFNBQXRCLENBQXJCO0FBQ0EsV0FBTyxLQUFLYixhQUFaO0FBQ0Q7QUFyRHdDLENBQTNDOztBQXdEQVQsWUFBWXlCLFlBQVosQ0FBeUJyQix3QkFBekI7O0FBRUFzQixPQUFPQyxPQUFQLEdBQWlCdkIsd0JBQWpCIiwiZmlsZSI6Ijc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZVxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBQb29sZWRDbGFzcyA9IHJlcXVpcmUoJy4vUG9vbGVkQ2xhc3MnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGdldFRleHRDb250ZW50QWNjZXNzb3IgPSByZXF1aXJlKCcuL2dldFRleHRDb250ZW50QWNjZXNzb3InKTtcblxuLyoqXG4gKiBUaGlzIGhlbHBlciBjbGFzcyBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGV4dCBjb250ZW50IG9mIGEgdGFyZ2V0IG5vZGUsXG4gKiBhbGxvd2luZyBjb21wYXJpc29uIG9mIGNvbnRlbnQgYmVmb3JlIGFuZCBhZnRlciBhIGdpdmVuIGV2ZW50LlxuICpcbiAqIElkZW50aWZ5IHRoZSBub2RlIHdoZXJlIHNlbGVjdGlvbiBjdXJyZW50bHkgYmVnaW5zLCB0aGVuIG9ic2VydmVcbiAqIGJvdGggaXRzIHRleHQgY29udGVudCBhbmQgaXRzIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIERPTS4gU2luY2UgdGhlXG4gKiBicm93c2VyIG1heSBuYXRpdmVseSByZXBsYWNlIHRoZSB0YXJnZXQgbm9kZSBkdXJpbmcgY29tcG9zaXRpb24sIHdlIGNhblxuICogdXNlIGl0cyBwb3NpdGlvbiB0byBmaW5kIGl0cyByZXBsYWNlbWVudC5cbiAqXG4gKiBAcGFyYW0ge0RPTUV2ZW50VGFyZ2V0fSByb290XG4gKi9cbmZ1bmN0aW9uIEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZShyb290KSB7XG4gIHRoaXMuX3Jvb3QgPSByb290O1xuICB0aGlzLl9zdGFydFRleHQgPSB0aGlzLmdldFRleHQoKTtcbiAgdGhpcy5fZmFsbGJhY2tUZXh0ID0gbnVsbDtcbn1cblxuYXNzaWduKEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZS5wcm90b3R5cGUsIHtcbiAgZGVzdHJ1Y3RvcjogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuX3Jvb3QgPSBudWxsO1xuICAgIHRoaXMuX3N0YXJ0VGV4dCA9IG51bGw7XG4gICAgdGhpcy5fZmFsbGJhY2tUZXh0ID0gbnVsbDtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgdGV4dCBvZiBpbnB1dC5cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0VGV4dDogZnVuY3Rpb24gKCkge1xuICAgIGlmICgndmFsdWUnIGluIHRoaXMuX3Jvb3QpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yb290LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcm9vdFtnZXRUZXh0Q29udGVudEFjY2Vzc29yKCldO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgdGhlIGRpZmZlcmluZyBzdWJzdHJpbmcgYmV0d2VlbiB0aGUgaW5pdGlhbGx5IHN0b3JlZFxuICAgKiB0ZXh0IGNvbnRlbnQgYW5kIHRoZSBjdXJyZW50IGNvbnRlbnQuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICovXG4gIGdldERhdGE6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5fZmFsbGJhY2tUZXh0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUZXh0O1xuICAgIH1cblxuICAgIHZhciBzdGFydDtcbiAgICB2YXIgc3RhcnRWYWx1ZSA9IHRoaXMuX3N0YXJ0VGV4dDtcbiAgICB2YXIgc3RhcnRMZW5ndGggPSBzdGFydFZhbHVlLmxlbmd0aDtcbiAgICB2YXIgZW5kO1xuICAgIHZhciBlbmRWYWx1ZSA9IHRoaXMuZ2V0VGV4dCgpO1xuICAgIHZhciBlbmRMZW5ndGggPSBlbmRWYWx1ZS5sZW5ndGg7XG5cbiAgICBmb3IgKHN0YXJ0ID0gMDsgc3RhcnQgPCBzdGFydExlbmd0aDsgc3RhcnQrKykge1xuICAgICAgaWYgKHN0YXJ0VmFsdWVbc3RhcnRdICE9PSBlbmRWYWx1ZVtzdGFydF0pIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG1pbkVuZCA9IHN0YXJ0TGVuZ3RoIC0gc3RhcnQ7XG4gICAgZm9yIChlbmQgPSAxOyBlbmQgPD0gbWluRW5kOyBlbmQrKykge1xuICAgICAgaWYgKHN0YXJ0VmFsdWVbc3RhcnRMZW5ndGggLSBlbmRdICE9PSBlbmRWYWx1ZVtlbmRMZW5ndGggLSBlbmRdKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBzbGljZVRhaWwgPSBlbmQgPiAxID8gMSAtIGVuZCA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9mYWxsYmFja1RleHQgPSBlbmRWYWx1ZS5zbGljZShzdGFydCwgc2xpY2VUYWlsKTtcbiAgICByZXR1cm4gdGhpcy5fZmFsbGJhY2tUZXh0O1xuICB9XG59KTtcblxuUG9vbGVkQ2xhc3MuYWRkUG9vbGluZ1RvKEZhbGxiYWNrQ29tcG9zaXRpb25TdGF0ZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gRmFsbGJhY2tDb21wb3NpdGlvblN0YXRlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9GYWxsYmFja0NvbXBvc2l0aW9uU3RhdGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 75 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getTextContentAccessor\n */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar contentKey = null;\n\n/**\n * Gets the key used to access text content on a DOM node.\n *\n * @return {?string} Key used to access text content.\n * @internal\n */\nfunction getTextContentAccessor() {\n if (!contentKey && ExecutionEnvironment.canUseDOM) {\n // Prefer textContent to innerText because many browsers support both but\n // SVG <text> elements don't support innerText even when <div> does.\n contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';\n }\n return contentKey;\n}\n\nmodule.exports = getTextContentAccessor;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0VGV4dENvbnRlbnRBY2Nlc3Nvci5qcz8xYjIyIl0sIm5hbWVzIjpbIkV4ZWN1dGlvbkVudmlyb25tZW50IiwicmVxdWlyZSIsImNvbnRlbnRLZXkiLCJnZXRUZXh0Q29udGVudEFjY2Vzc29yIiwiY2FuVXNlRE9NIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSx1QkFBdUIsbUJBQUFDLENBQVEsQ0FBUixDQUEzQjs7QUFFQSxJQUFJQyxhQUFhLElBQWpCOztBQUVBOzs7Ozs7QUFNQSxTQUFTQyxzQkFBVCxHQUFrQztBQUNoQyxNQUFJLENBQUNELFVBQUQsSUFBZUYscUJBQXFCSSxTQUF4QyxFQUFtRDtBQUNqRDtBQUNBO0FBQ0FGLGlCQUFhLGlCQUFpQkcsU0FBU0MsZUFBMUIsR0FBNEMsYUFBNUMsR0FBNEQsV0FBekU7QUFDRDtBQUNELFNBQU9KLFVBQVA7QUFDRDs7QUFFREssT0FBT0MsT0FBUCxHQUFpQkwsc0JBQWpCIiwiZmlsZSI6Ijc1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGdldFRleHRDb250ZW50QWNjZXNzb3JcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG5cbnZhciBjb250ZW50S2V5ID0gbnVsbDtcblxuLyoqXG4gKiBHZXRzIHRoZSBrZXkgdXNlZCB0byBhY2Nlc3MgdGV4dCBjb250ZW50IG9uIGEgRE9NIG5vZGUuXG4gKlxuICogQHJldHVybiB7P3N0cmluZ30gS2V5IHVzZWQgdG8gYWNjZXNzIHRleHQgY29udGVudC5cbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBnZXRUZXh0Q29udGVudEFjY2Vzc29yKCkge1xuICBpZiAoIWNvbnRlbnRLZXkgJiYgRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NKSB7XG4gICAgLy8gUHJlZmVyIHRleHRDb250ZW50IHRvIGlubmVyVGV4dCBiZWNhdXNlIG1hbnkgYnJvd3NlcnMgc3VwcG9ydCBib3RoIGJ1dFxuICAgIC8vIFNWRyA8dGV4dD4gZWxlbWVudHMgZG9uJ3Qgc3VwcG9ydCBpbm5lclRleHQgZXZlbiB3aGVuIDxkaXY+IGRvZXMuXG4gICAgY29udGVudEtleSA9ICd0ZXh0Q29udGVudCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ID8gJ3RleHRDb250ZW50JyA6ICdpbm5lclRleHQnO1xuICB9XG4gIHJldHVybiBjb250ZW50S2V5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldFRleHRDb250ZW50QWNjZXNzb3I7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL2dldFRleHRDb250ZW50QWNjZXNzb3IuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 76 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticCompositionEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = __webpack_require__(77);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar CompositionEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);\n\nmodule.exports = SyntheticCompositionEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljQ29tcG9zaXRpb25FdmVudC5qcz9kNjE3Il0sIm5hbWVzIjpbIlN5bnRoZXRpY0V2ZW50IiwicmVxdWlyZSIsIkNvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UiLCJkYXRhIiwiU3ludGhldGljQ29tcG9zaXRpb25FdmVudCIsImRpc3BhdGNoQ29uZmlnIiwiZGlzcGF0Y2hNYXJrZXIiLCJuYXRpdmVFdmVudCIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwiY2FsbCIsImF1Z21lbnRDbGFzcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjs7QUFFQTs7OztBQUlBLElBQUlDLDRCQUE0QjtBQUM5QkMsUUFBTTtBQUR3QixDQUFoQzs7QUFJQTs7Ozs7O0FBTUEsU0FBU0MseUJBQVQsQ0FBbUNDLGNBQW5DLEVBQW1EQyxjQUFuRCxFQUFtRUMsV0FBbkUsRUFBZ0ZDLGlCQUFoRixFQUFtRztBQUNqR1IsaUJBQWVTLElBQWYsQ0FBb0IsSUFBcEIsRUFBMEJKLGNBQTFCLEVBQTBDQyxjQUExQyxFQUEwREMsV0FBMUQsRUFBdUVDLGlCQUF2RTtBQUNEOztBQUVEUixlQUFlVSxZQUFmLENBQTRCTix5QkFBNUIsRUFBdURGLHlCQUF2RDs7QUFFQVMsT0FBT0MsT0FBUCxHQUFpQlIseUJBQWpCIiwiZmlsZSI6Ijc2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnRcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgU3ludGhldGljRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0V2ZW50Jyk7XG5cbi8qKlxuICogQGludGVyZmFjZSBFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1jb21wb3NpdGlvbmV2ZW50c1xuICovXG52YXIgQ29tcG9zaXRpb25FdmVudEludGVyZmFjZSA9IHtcbiAgZGF0YTogbnVsbFxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljVUlFdmVudH1cbiAqL1xuZnVuY3Rpb24gU3ludGhldGljQ29tcG9zaXRpb25FdmVudChkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICBTeW50aGV0aWNFdmVudC5jYWxsKHRoaXMsIGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbn1cblxuU3ludGhldGljRXZlbnQuYXVnbWVudENsYXNzKFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQsIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1N5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 77 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar PooledClass = __webpack_require__(56);\n\nvar assign = __webpack_require__(39);\nvar emptyFunction = __webpack_require__(15);\nvar warning = __webpack_require__(25);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n type: null,\n target: null,\n // currentTarget is set when dispatching; no use in copying it here\n currentTarget: emptyFunction.thatReturnsNull,\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function timeStamp(event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n */\nfunction SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n this.dispatchConfig = dispatchConfig;\n this.dispatchMarker = dispatchMarker;\n this.nativeEvent = nativeEvent;\n\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n if (!Interface.hasOwnProperty(propName)) {\n continue;\n }\n var normalize = Interface[propName];\n if (normalize) {\n this[propName] = normalize(nativeEvent);\n } else {\n if (propName === 'target') {\n this.target = nativeEventTarget;\n } else {\n this[propName] = nativeEvent[propName];\n }\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n if (defaultPrevented) {\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n } else {\n this.isDefaultPrevented = emptyFunction.thatReturnsFalse;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsFalse;\n}\n\nassign(SyntheticEvent.prototype, {\n\n preventDefault: function preventDefault() {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `preventDefault` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n }\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault();\n } else {\n event.returnValue = false;\n }\n this.isDefaultPrevented = emptyFunction.thatReturnsTrue;\n },\n\n stopPropagation: function stopPropagation() {\n var event = this.nativeEvent;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(event, 'This synthetic event is reused for performance reasons. If you\\'re ' + 'seeing this, you\\'re calling `stopPropagation` on a ' + 'released/nullified synthetic event. This is a no-op. See ' + 'https://fb.me/react-event-pooling for more information.') : undefined;\n }\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation();\n } else {\n event.cancelBubble = true;\n }\n this.isPropagationStopped = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function persist() {\n this.isPersistent = emptyFunction.thatReturnsTrue;\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: emptyFunction.thatReturnsFalse,\n\n /**\n * `PooledClass` looks for `destructor` on each instance it releases.\n */\n destructor: function destructor() {\n var Interface = this.constructor.Interface;\n for (var propName in Interface) {\n this[propName] = null;\n }\n this.dispatchConfig = null;\n this.dispatchMarker = null;\n this.nativeEvent = null;\n }\n\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n *\n * @param {function} Class\n * @param {?object} Interface\n */\nSyntheticEvent.augmentClass = function (Class, Interface) {\n var Super = this;\n\n var prototype = Object.create(Super.prototype);\n assign(prototype, Class.prototype);\n Class.prototype = prototype;\n Class.prototype.constructor = Class;\n\n Class.Interface = assign({}, Super.Interface, Interface);\n Class.augmentClass = Super.augmentClass;\n\n PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);\n};\n\nPooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);\n\nmodule.exports = SyntheticEvent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljRXZlbnQuanM/YmQ2YSJdLCJuYW1lcyI6WyJQb29sZWRDbGFzcyIsInJlcXVpcmUiLCJhc3NpZ24iLCJlbXB0eUZ1bmN0aW9uIiwid2FybmluZyIsIkV2ZW50SW50ZXJmYWNlIiwidHlwZSIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJ0aGF0UmV0dXJuc051bGwiLCJldmVudFBoYXNlIiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJ0aW1lU3RhbXAiLCJldmVudCIsIkRhdGUiLCJub3ciLCJkZWZhdWx0UHJldmVudGVkIiwiaXNUcnVzdGVkIiwiU3ludGhldGljRXZlbnQiLCJkaXNwYXRjaENvbmZpZyIsImRpc3BhdGNoTWFya2VyIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsIkludGVyZmFjZSIsImNvbnN0cnVjdG9yIiwicHJvcE5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIm5vcm1hbGl6ZSIsInJldHVyblZhbHVlIiwiaXNEZWZhdWx0UHJldmVudGVkIiwidGhhdFJldHVybnNUcnVlIiwidGhhdFJldHVybnNGYWxzZSIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwicHJvdG90eXBlIiwicHJldmVudERlZmF1bHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJwZXJzaXN0IiwiaXNQZXJzaXN0ZW50IiwiZGVzdHJ1Y3RvciIsImF1Z21lbnRDbGFzcyIsIkNsYXNzIiwiU3VwZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJhZGRQb29saW5nVG8iLCJmb3VyQXJndW1lbnRQb29sZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsY0FBYyxtQkFB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QWtCWSxNQUFNWixTQUF4QjtBQUNBWSxRQUFNWixTQUFOLEdBQWtCQSxTQUFsQjtBQUNBWSxRQUFNWixTQUFOLENBQWdCVCxXQUFoQixHQUE4QnFCLEtBQTlCOztBQUVBQSxRQUFNdEIsU0FBTixHQUFrQnRCLE9BQU8sRUFBUCxFQUFXNkMsTUFBTXZCLFNBQWpCLEVBQTRCQSxTQUE1QixDQUFsQjtBQUNBc0IsUUFBTUQsWUFBTixHQUFxQkUsTUFBTUYsWUFBM0I7O0FBRUE3QyxjQUFZa0QsWUFBWixDQUF5QkosS0FBekIsRUFBZ0M5QyxZQUFZbUQsa0JBQTVDO0FBQ0QsQ0FaRDs7QUFjQW5ELFlBQVlrRCxZQUFaLENBQXlCL0IsY0FBekIsRUFBeUNuQixZQUFZbUQsa0JBQXJEOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCbEMsY0FBakIsQyIsImZpbGUiOiI3Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBTeW50aGV0aWNFdmVudFxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBQb29sZWRDbGFzcyA9IHJlcXVpcmUoJy4vUG9vbGVkQ2xhc3MnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xudmFyIEV2ZW50SW50ZXJmYWNlID0ge1xuICB0eXBlOiBudWxsLFxuICB0YXJnZXQ6IG51bGwsXG4gIC8vIGN1cnJlbnRUYXJnZXQgaXMgc2V0IHdoZW4gZGlzcGF0Y2hpbmc7IG5vIHVzZSBpbiBjb3B5aW5nIGl0IGhlcmVcbiAgY3VycmVudFRhcmdldDogZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc051bGwsXG4gIGV2ZW50UGhhc2U6IG51bGwsXG4gIGJ1YmJsZXM6IG51bGwsXG4gIGNhbmNlbGFibGU6IG51bGwsXG4gIHRpbWVTdGFtcDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xuICB9LFxuICBkZWZhdWx0UHJldmVudGVkOiBudWxsLFxuICBpc1RydXN0ZWQ6IG51bGxcbn07XG5cbi8qKlxuICogU3ludGhldGljIGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBieSBldmVudCBwbHVnaW5zLCB0eXBpY2FsbHkgaW4gcmVzcG9uc2UgdG8gYVxuICogdG9wLWxldmVsIGV2ZW50IGRlbGVnYXRpb24gaGFuZGxlci5cbiAqXG4gKiBUaGVzZSBzeXN0ZW1zIHNob3VsZCBnZW5lcmFsbHkgdXNlIHBvb2xpbmcgdG8gcmVkdWNlIHRoZSBmcmVxdWVuY3kgb2YgZ2FyYmFnZVxuICogY29sbGVjdGlvbi4gVGhlIHN5c3RlbSBzaG91bGQgY2hlY2sgYGlzUGVyc2lzdGVudGAgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlXG4gKiBldmVudCBzaG91bGQgYmUgcmVsZWFzZWQgaW50byB0aGUgcG9vbCBhZnRlciBiZWluZyBkaXNwYXRjaGVkLiBVc2VycyB0aGF0XG4gKiBuZWVkIGEgcGVyc2lzdGVkIGV2ZW50IHNob3VsZCBpbnZva2UgYHBlcnNpc3RgLlxuICpcbiAqIFN5bnRoZXRpYyBldmVudHMgKGFuZCBzdWJjbGFzc2VzKSBpbXBsZW1lbnQgdGhlIERPTSBMZXZlbCAzIEV2ZW50cyBBUEkgYnlcbiAqIG5vcm1hbGl6aW5nIGJyb3dzZXIgcXVpcmtzLiBTdWJjbGFzc2VzIGRvIG5vdCBuZWNlc3NhcmlseSBoYXZlIHRvIGltcGxlbWVudCBhXG4gKiBET00gaW50ZXJmYWNlOyBjdXN0b20gYXBwbGljYXRpb24tc3BlY2lmaWMgZXZlbnRzIGNhbiBhbHNvIHN1YmNsYXNzIHRoaXMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGRpc3BhdGNoQ29uZmlnIENvbmZpZ3VyYXRpb24gdXNlZCB0byBkaXNwYXRjaCB0aGlzIGV2ZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGRpc3BhdGNoTWFya2VyIE1hcmtlciBpZGVudGlmeWluZyB0aGUgZXZlbnQgdGFyZ2V0LlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNFdmVudChkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB0aGlzLmRpc3BhdGNoQ29uZmlnID0gZGlzcGF0Y2hDb25maWc7XG4gIHRoaXMuZGlzcGF0Y2hNYXJrZXIgPSBkaXNwYXRjaE1hcmtlcjtcbiAgdGhpcy5uYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50O1xuXG4gIHZhciBJbnRlcmZhY2UgPSB0aGlzLmNvbnN0cnVjdG9yLkludGVyZmFjZTtcbiAgZm9yICh2YXIgcHJvcE5hbWUgaW4gSW50ZXJmYWNlKSB7XG4gICAgaWYgKCFJbnRlcmZhY2UuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdmFyIG5vcm1hbGl6ZSA9IEludGVyZmFjZVtwcm9wTmFtZV07XG4gICAgaWYgKG5vcm1hbGl6ZSkge1xuICAgICAgdGhpc1twcm9wTmFtZV0gPSBub3JtYWxpemUobmF0aXZlRXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocHJvcE5hbWUgPT09ICd0YXJnZXQnKSB7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbmF0aXZlRXZlbnRUYXJnZXQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzW3Byb3BOYW1lXSA9IG5hdGl2ZUV2ZW50W3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZGVmYXVsdFByZXZlbnRlZCA9IG5hdGl2ZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgIT0gbnVsbCA/IG5hdGl2ZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgOiBuYXRpdmVFdmVudC5yZXR1cm5WYWx1ZSA9PT0gZmFsc2U7XG4gIGlmIChkZWZhdWx0UHJldmVudGVkKSB7XG4gICAgdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zVHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNGYWxzZTtcbiAgfVxuICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc0ZhbHNlO1xufVxuXG5hc3NpZ24oU3ludGhldGljRXZlbnQucHJvdG90eXBlLCB7XG5cbiAgcHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmRlZmF1bHRQcmV2ZW50ZWQgPSB0cnVlO1xuICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGV2ZW50LCAnVGhpcyBzeW50aGV0aWMgZXZlbnQgaXMgcmV1c2VkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiBJZiB5b3VcXCdyZSAnICsgJ3NlZWluZyB0aGlzLCB5b3VcXCdyZSBjYWxsaW5nIGBwcmV2ZW50RGVmYXVsdGAgb24gYSAnICsgJ3JlbGVhc2VkL251bGxpZmllZCBzeW50aGV0aWMgZXZlbnQuIFRoaXMgaXMgYSBuby1vcC4gU2VlICcgKyAnaHR0cHM6Ly9mYi5tZS9yZWFjdC1ldmVudC1wb29saW5nIGZvciBtb3JlIGluZm9ybWF0aW9uLicpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIWV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNUcnVlO1xuICB9LFxuXG4gIHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24gKCkge1xuICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGV2ZW50LCAnVGhpcyBzeW50aGV0aWMgZXZlbnQgaXMgcmV1c2VkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiBJZiB5b3VcXCdyZSAnICsgJ3NlZWluZyB0aGlzLCB5b3VcXCdyZSBjYWxsaW5nIGBzdG9wUHJvcGFnYXRpb25gIG9uIGEgJyArICdyZWxlYXNlZC9udWxsaWZpZWQgc3ludGhldGljIGV2ZW50LiBUaGlzIGlzIGEgbm8tb3AuIFNlZSAnICsgJ2h0dHBzOi8vZmIubWUvcmVhY3QtZXZlbnQtcG9vbGluZyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc1RydWU7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFdlIHJlbGVhc2UgYWxsIGRpc3BhdGNoZWQgYFN5bnRoZXRpY0V2ZW50YHMgYWZ0ZXIgZWFjaCBldmVudCBsb29wLCBhZGRpbmdcbiAgICogdGhlbSBiYWNrIGludG8gdGhlIHBvb2wuIFRoaXMgYWxsb3dzIGEgd2F5IHRvIGhvbGQgb250byBhIHJlZmVyZW5jZSB0aGF0XG4gICAqIHdvbid0IGJlIGFkZGVkIGJhY2sgaW50byB0aGUgcG9vbC5cbiAgICovXG4gIHBlcnNpc3Q6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmlzUGVyc2lzdGVudCA9IGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNUcnVlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBldmVudCBzaG91bGQgYmUgcmVsZWFzZWQgYmFjayBpbnRvIHRoZSBwb29sLlxuICAgKlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoaXMgc2hvdWxkIG5vdCBiZSByZWxlYXNlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNQZXJzaXN0ZW50OiBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zRmFsc2UsXG5cbiAgLyoqXG4gICAqIGBQb29sZWRDbGFzc2AgbG9va3MgZm9yIGBkZXN0cnVjdG9yYCBvbiBlYWNoIGluc3RhbmNlIGl0IHJlbGVhc2VzLlxuICAgKi9cbiAgZGVzdHJ1Y3RvcjogZnVuY3Rpb24gKCkge1xuICAgIHZhciBJbnRlcmZhY2UgPSB0aGlzLmNvbnN0cnVjdG9yLkludGVyZmFjZTtcbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBJbnRlcmZhY2UpIHtcbiAgICAgIHRoaXNbcHJvcE5hbWVdID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaENvbmZpZyA9IG51bGw7XG4gICAgdGhpcy5kaXNwYXRjaE1hcmtlciA9IG51bGw7XG4gICAgdGhpcy5uYXRpdmVFdmVudCA9IG51bGw7XG4gIH1cblxufSk7XG5cblN5bnRoZXRpY0V2ZW50LkludGVyZmFjZSA9IEV2ZW50SW50ZXJmYWNlO1xuXG4vKipcbiAqIEhlbHBlciB0byByZWR1Y2UgYm9pbGVycGxhdGUgd2hlbiBjcmVhdGluZyBzdWJjbGFzc2VzLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IENsYXNzXG4gKiBAcGFyYW0gez9vYmplY3R9IEludGVyZmFjZVxuICovXG5TeW50aGV0aWNFdmVudC5hdWdtZW50Q2xhc3MgPSBmdW5jdGlvbiAoQ2xhc3MsIEludGVyZmFjZSkge1xuICB2YXIgU3VwZXIgPSB0aGlzO1xuXG4gIHZhciBwcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFN1cGVyLnByb3RvdHlwZSk7XG4gIGFzc2lnbihwcm90b3R5cGUsIENsYXNzLnByb3RvdHlwZSk7XG4gIENsYXNzLnByb3RvdHlwZSA9IHByb3RvdHlwZTtcbiAgQ2xhc3MucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gQ2xhc3M7XG5cbiAgQ2xhc3MuSW50ZXJmYWNlID0gYXNzaWduKHt9LCBTdXBlci5JbnRlcmZhY2UsIEludGVyZmFjZSk7XG4gIENsYXNzLmF1Z21lbnRDbGFzcyA9IFN1cGVyLmF1Z21lbnRDbGFzcztcblxuICBQb29sZWRDbGFzcy5hZGRQb29saW5nVG8oQ2xhc3MsIFBvb2xlZENsYXNzLmZvdXJBcmd1bWVudFBvb2xlcik7XG59O1xuXG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oU3ludGhldGljRXZlbnQsIFBvb2xlZENsYXNzLmZvdXJBcmd1bWVudFBvb2xlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljRXZlbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1N5bnRoZXRpY0V2ZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 78 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticInputEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = __webpack_require__(77);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\nvar InputEventInterface = {\n data: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);\n\nmodule.exports = SyntheticInputEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljSW5wdXRFdmVudC5qcz8yMTIwIl0sIm5hbWVzIjpbIlN5bnRoZXRpY0V2ZW50IiwicmVxdWlyZSIsIklucHV0RXZlbnRJbnRlcmZhY2UiLCJkYXRhIiwiU3ludGhldGljSW5wdXRFdmVudCIsImRpc3BhdGNoQ29uZmlnIiwiZGlzcGF0Y2hNYXJrZXIiLCJuYXRpdmVFdmVudCIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwiY2FsbCIsImF1Z21lbnRDbGFzcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjs7QUFFQTs7Ozs7QUFLQSxJQUFJQyxzQkFBc0I7QUFDeEJDLFFBQU07QUFEa0IsQ0FBMUI7O0FBSUE7Ozs7OztBQU1BLFNBQVNDLG1CQUFULENBQTZCQyxjQUE3QixFQUE2Q0MsY0FBN0MsRUFBNkRDLFdBQTdELEVBQTBFQyxpQkFBMUUsRUFBNkY7QUFDM0ZSLGlCQUFlUyxJQUFmLENBQW9CLElBQXBCLEVBQTBCSixjQUExQixFQUEwQ0MsY0FBMUMsRUFBMERDLFdBQTFELEVBQXVFQyxpQkFBdkU7QUFDRDs7QUFFRFIsZUFBZVUsWUFBZixDQUE0Qk4sbUJBQTVCLEVBQWlERixtQkFBakQ7O0FBRUFTLE9BQU9DLE9BQVAsR0FBaUJSLG1CQUFqQiIsImZpbGUiOiI3OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBTeW50aGV0aWNJbnB1dEV2ZW50XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAxMzExMDVcbiAqICAgICAgLyNldmVudHMtaW5wdXRldmVudHNcbiAqL1xudmFyIElucHV0RXZlbnRJbnRlcmZhY2UgPSB7XG4gIGRhdGE6IG51bGxcbn07XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGRpc3BhdGNoQ29uZmlnIENvbmZpZ3VyYXRpb24gdXNlZCB0byBkaXNwYXRjaCB0aGlzIGV2ZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGRpc3BhdGNoTWFya2VyIE1hcmtlciBpZGVudGlmeWluZyB0aGUgZXZlbnQgdGFyZ2V0LlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICogQGV4dGVuZHMge1N5bnRoZXRpY1VJRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIFN5bnRoZXRpY0lucHV0RXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgU3ludGhldGljRXZlbnQuY2FsbCh0aGlzLCBkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG59XG5cblN5bnRoZXRpY0V2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNJbnB1dEV2ZW50LCBJbnB1dEV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNJbnB1dEV2ZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9TeW50aGV0aWNJbnB1dEV2ZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 79 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\n\"use strict\";\n\nvar keyOf = function keyOf(oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\nmodule.exports = keyOf;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9rZXlPZi5qcz80MWRkIl0sIm5hbWVzIjpbImtleU9mIiwib25lS2V5T2JqIiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7Ozs7Ozs7OztBQVVBOztBQUVBLElBQUlBLFFBQVEsU0FBUkEsS0FBUSxDQUFVQyxTQUFWLEVBQXFCO0FBQy9CLE1BQUlDLEdBQUo7QUFDQSxPQUFLQSxHQUFMLElBQVlELFNBQVosRUFBdUI7QUFDckIsUUFBSSxDQUFDQSxVQUFVRSxjQUFWLENBQXlCRCxHQUF6QixDQUFMLEVBQW9DO0FBQ2xDO0FBQ0Q7QUFDRCxXQUFPQSxHQUFQO0FBQ0Q7QUFDRCxTQUFPLElBQVA7QUFDRCxDQVREOztBQVdBRSxPQUFPQyxPQUFQLEdBQWlCTCxLQUFqQiIsImZpbGUiOiI3OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBrZXlPZlxuICovXG5cbi8qKlxuICogQWxsb3dzIGV4dHJhY3Rpb24gb2YgYSBtaW5pZmllZCBrZXkuIExldCdzIHRoZSBidWlsZCBzeXN0ZW0gbWluaWZ5IGtleXNcbiAqIHdpdGhvdXQgbG9zaW5nIHRoZSBhYmlsaXR5IHRvIGR5bmFtaWNhbGx5IHVzZSBrZXkgc3RyaW5ncyBhcyB2YWx1ZXNcbiAqIHRoZW1zZWx2ZXMuIFBhc3MgaW4gYW4gb2JqZWN0IHdpdGggYSBzaW5nbGUga2V5L3ZhbCBwYWlyIGFuZCBpdCB3aWxsIHJldHVyblxuICogeW91IHRoZSBzdHJpbmcga2V5IG9mIHRoYXQgc2luZ2xlIHJlY29yZC4gU3VwcG9zZSB5b3Ugd2FudCB0byBncmFiIHRoZVxuICogdmFsdWUgZm9yIGEga2V5ICdjbGFzc05hbWUnIGluc2lkZSBvZiBhbiBvYmplY3QuIEtleS92YWwgbWluaWZpY2F0aW9uIG1heVxuICogaGF2ZSBhbGlhc2VkIHRoYXQga2V5IHRvIGJlICd4YTEyJy4ga2V5T2Yoe2NsYXNzTmFtZTogbnVsbH0pIHdpbGwgcmV0dXJuXG4gKiAneGExMicgaW4gdGhhdCBjYXNlLiBSZXNvbHZlIGtleXMgeW91IHdhbnQgdG8gdXNlIG9uY2UgYXQgc3RhcnR1cCB0aW1lLCB0aGVuXG4gKiByZXVzZSB0aG9zZSByZXNvbHV0aW9ucy5cbiAqL1xuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBrZXlPZiA9IGZ1bmN0aW9uIChvbmVLZXlPYmopIHtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gb25lS2V5T2JqKSB7XG4gICAgaWYgKCFvbmVLZXlPYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHJldHVybiBrZXk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGtleU9mO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2tleU9mLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 80 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ChangeEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar EventPluginHub = __webpack_require__(31);\nvar EventPropagators = __webpack_require__(73);\nvar ExecutionEnvironment = __webpack_require__(9);\nvar ReactUpdates = __webpack_require__(54);\nvar SyntheticEvent = __webpack_require__(77);\n\nvar getEventTarget = __webpack_require__(81);\nvar isEventSupported = __webpack_require__(40);\nvar isTextInputElement = __webpack_require__(82);\nvar keyOf = __webpack_require__(79);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n change: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onChange: null }),\n captured: keyOf({ onChangeCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange]\n }\n};\n\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementID = null;\nvar activeElementValue = null;\nvar activeElementValueProp = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nvar doesChangeEventBubble = false;\nif (ExecutionEnvironment.canUseDOM) {\n // See `handleChange` comment below\n doesChangeEventBubble = isEventSupported('change') && (!('documentMode' in document) || document.documentMode > 8);\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var event = SyntheticEvent.getPooled(eventTypes.change, activeElementID, nativeEvent, getEventTarget(nativeEvent));\n EventPropagators.accumulateTwoPhaseDispatches(event);\n\n // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n ReactUpdates.batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n EventPluginHub.enqueueEvents(event);\n EventPluginHub.processEventQueue(false);\n}\n\nfunction startWatchingForChangeEventIE8(target, targetID) {\n activeElement = target;\n activeElementID = targetID;\n activeElement.attachEvent('onchange', manualDispatchChangeEvent);\n}\n\nfunction stopWatchingForChangeEventIE8() {\n if (!activeElement) {\n return;\n }\n activeElement.detachEvent('onchange', manualDispatchChangeEvent);\n activeElement = null;\n activeElementID = null;\n}\n\nfunction getTargetIDForChangeEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n if (topLevelType === topLevelTypes.topChange) {\n return topLevelTargetID;\n }\n}\nfunction handleEventsForChangeEventIE8(topLevelType, topLevelTarget, topLevelTargetID) {\n if (topLevelType === topLevelTypes.topFocus) {\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForChangeEventIE8();\n startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForChangeEventIE8();\n }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (ExecutionEnvironment.canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events\n isInputEventSupported = isEventSupported('input') && (!('documentMode' in document) || document.documentMode > 9);\n}\n\n/**\n * (For old IE.) Replacement getter/setter for the `value` property that gets\n * set on the active element.\n */\nvar newValueProp = {\n get: function get() {\n return activeElementValueProp.get.call(this);\n },\n set: function set(val) {\n // Cast to a string so we can do equality checks.\n activeElementValue = '' + val;\n activeElementValueProp.set.call(this, val);\n }\n};\n\n/**\n * (For old IE.) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetID) {\n activeElement = target;\n activeElementID = targetID;\n activeElementValue = target.value;\n activeElementValueProp = Object.getOwnPropertyDescriptor(target.constructor.prototype, 'value');\n\n // Not guarded in a canDefineProperty check: IE8 supports defineProperty only\n // on DOM elements\n Object.defineProperty(activeElement, 'value', newValueProp);\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For old IE.) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n // delete restores the original property definition\n delete activeElement.value;\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n\n activeElement = null;\n activeElementID = null;\n activeElementValue = null;\n activeElementValueProp = null;\n}\n\n/**\n * (For old IE.) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n var value = nativeEvent.srcElement.value;\n if (value === activeElementValue) {\n return;\n }\n activeElementValue = value;\n\n manualDispatchChangeEvent(nativeEvent);\n}\n\n/**\n * If a `change` event should be fired, returns the target's ID.\n */\nfunction getTargetIDForInputEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n if (topLevelType === topLevelTypes.topInput) {\n // In modern browsers (i.e., not IE8 or IE9), the input event is exactly\n // what we want so fall through here and trigger an abstract event\n return topLevelTargetID;\n }\n}\n\n// For IE8 and IE9.\nfunction handleEventsForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n if (topLevelType === topLevelTypes.topFocus) {\n // In IE8, we can capture almost all .value changes by adding a\n // propertychange handler and looking for events with propertyName\n // equal to 'value'\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(topLevelTarget, topLevelTargetID);\n } else if (topLevelType === topLevelTypes.topBlur) {\n stopWatchingForValueChange();\n }\n}\n\n// For IE8 and IE9.\nfunction getTargetIDForInputEventIE(topLevelType, topLevelTarget, topLevelTargetID) {\n if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n if (activeElement && activeElement.value !== activeElementValue) {\n activeElementValue = activeElement.value;\n return activeElementID;\n }\n }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n return elem.nodeName && elem.nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetIDForClickEvent(topLevelType, topLevelTarget, topLevelTargetID) {\n if (topLevelType === topLevelTypes.topClick) {\n return topLevelTargetID;\n }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n\n var getTargetIDFunc, handleEventFunc;\n if (shouldUseChangeEvent(topLevelTarget)) {\n if (doesChangeEventBubble) {\n getTargetIDFunc = getTargetIDForChangeEvent;\n } else {\n handleEventFunc = handleEventsForChangeEventIE8;\n }\n } else if (isTextInputElement(topLevelTarget)) {\n if (isInputEventSupported) {\n getTargetIDFunc = getTargetIDForInputEvent;\n } else {\n getTargetIDFunc = getTargetIDForInputEventIE;\n handleEventFunc = handleEventsForInputEventIE;\n }\n } else if (shouldUseClickEvent(topLevelTarget)) {\n getTargetIDFunc = getTargetIDForClickEvent;\n }\n\n if (getTargetIDFunc) {\n var targetID = getTargetIDFunc(topLevelType, topLevelTarget, topLevelTargetID);\n if (targetID) {\n var event = SyntheticEvent.getPooled(eventTypes.change, targetID, nativeEvent, nativeEventTarget);\n event.type = 'change';\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(topLevelType, topLevelTarget, topLevelTargetID);\n }\n }\n\n};\n\nmodule.exports = ChangeEventPlugin;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ2hhbmdlRXZlbnRQbHVnaW4uanM/NTFhOCJdLCJuYW1lcyI6WyJFdmVudENvbnN0YW50cyIsInJlcXVpcmUiLCJFdmVudFBsdWdpbkh1YiIsIkV2ZW50UHJvcGFnYXRvcnMiLCJFeGVjdXRpb25FbnZpcm9ubWVudCIsIlJlYWN0VXBkYXRlcyIsIlN5bnRoZXRpY0V2ZW50IiwiZ2V0RXZlbnRUYXJnZXQiLCJpc0V2ZW50U3VwcG9ydGVkIiwiaXNUZXh0SW5wdXRFbGVtZW50Iiwia2V5T2YiLCJ0b3BMZXZlbFR5cGVzIiwiZXZlbnRUeXBlcyIsImNoYW5nZSIsInBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzIiwiYnViYmxlZCIsIm9uQ2hhbmdlIiwiY2FwdHVyZWQiLCJvbkNoYW5nZUNhcHR1cmUiLCJkZXBlbmRlbmNpZXMiLCJ0b3BCbHVyIiwidG9wQ2hhbmdlIiwidG9wQ2xpY2siLCJ0b3BGb2N1cyIsInRvcElucHV0IiwidG9wS2V5RG93biIsInRvcEtleVVwIiwidG9wU2VsZWN0aW9uQ2hhbmdlIiwiYWN0aXZlRWxlbWVudCIsImFjdGl2ZUVsZW1lbnRJRCIsImFjdGl2ZUVsZW1lbnRWYWx1ZSIsImFjdGl2ZUVsZW1lbnRWYWx1ZVByb3AiLCJzaG91bGRVc2VDaGFuZ2VFdmVudCIsImVsZW0iLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwidHlwZSIsImRvZXNDaGFuZ2VFdmVudEJ1YmJsZSIsImNhblVzZURPTSIsImRvY3VtZW50IiwiZG9jdW1lbnRNb2RlIiwibWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudCIsIm5hdGl2ZUV2ZW50IiwiZXZlbnQiLCJnZXRQb29sZWQiLCJhY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzIiwiYmF0Y2hlZFVwZGF0ZXMiLCJydW5FdmVudEluQmF0Y2giLCJlbnF1ZXVlRXZlbnRzIiwicHJvY2Vzc0V2ZW50UXVldWUiLCJzdGFydFdhdGNoaW5nRm9yQ2hhbmdlRXZlbnRJRTgiLCJ0YXJnZXQiLCJ0YXJnZXRJRCIsImF0dGFjaEV2ZW50Iiwic3RvcFdhdGNoaW5nRm9yQ2hhbmdlRXZlbnRJRTgiLCJkZXRhY2hFdmVudCIsImdldFRhcmdldElERm9yQ2hhbmdlRXZlbnQiLCJ0b3BMZXZlbFR5cGUiLCJ0b3BMZXZlbFRhcmdldCIsInRvcExldmVsVGFyZ2V0SUQiLCJoYW5kbGVFdmVudHNGb3JDaGFuZ2VFdmVudElFOCIsImlzSW5wdXRFdmVudFN1cHBvcnRlZCIsIm5ld1ZhbHVlUHJvcCIsImdldCIsImNhbGwiLCJzZXQiLCJ2YWwiLCJzdGFydFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UiLCJ2YWx1ZSIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiZGVmaW5lUHJvcGVydHkiLCJoYW5kbGVQcm9wZXJ0eUNoYW5nZSIsInN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlIiwicHJvcGVydHlOYW1lIiwic3JjRWxlbWVudCIsImdldFRhcmdldElERm9ySW5wdXRFdmVudCIsImhhbmRsZUV2ZW50c0ZvcklucHV0RXZlbnRJRSIsImdldFRhcmdldElERm9ySW5wdXRFdmVudElFIiwic2hvdWxkVXNlQ2xpY2tFdmVudCIsImdldFRhcmdldElERm9yQ2xpY2tFdmVudCIsIkNoYW5nZUV2ZW50UGx1Z2luIiwiZXh0cmFjdEV2ZW50cyIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwiZ2V0VGFyZ2V0SURGdW5jIiwiaGFuZGxlRXZlbnRGdW5jIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBckI7QUFDQSxJQUFJQyxpQkFBaUIsbUJBQUFELENBQVEsRUFBUixDQUFyQjtBQUNBLElBQUlFLG1CQUFtQixtQkFBQUYsQ0FBUSxFQUFSLENBQXZC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QVAsR0FBaUJOLGlCQUFqQiIsImZpbGUiOiI4MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBDaGFuZ2VFdmVudFBsdWdpblxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV2ZW50Q29uc3RhbnRzID0gcmVxdWlyZSgnLi9FdmVudENvbnN0YW50cycpO1xudmFyIEV2ZW50UGx1Z2luSHViID0gcmVxdWlyZSgnLi9FdmVudFBsdWdpbkh1YicpO1xudmFyIEV2ZW50UHJvcGFnYXRvcnMgPSByZXF1aXJlKCcuL0V2ZW50UHJvcGFnYXRvcnMnKTtcbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcbnZhciBTeW50aGV0aWNFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRXZlbnQnKTtcblxudmFyIGdldEV2ZW50VGFyZ2V0ID0gcmVxdWlyZSgnLi9nZXRFdmVudFRhcmdldCcpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcbnZhciBpc1RleHRJbnB1dEVsZW1lbnQgPSByZXF1aXJlKCcuL2lzVGV4dElucHV0RWxlbWVudCcpO1xudmFyIGtleU9mID0gcmVxdWlyZSgnZmJqcy9saWIva2V5T2YnKTtcblxudmFyIHRvcExldmVsVHlwZXMgPSBFdmVudENvbnN0YW50cy50b3BMZXZlbFR5cGVzO1xuXG52YXIgZXZlbnRUeXBlcyA9IHtcbiAgY2hhbmdlOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25DaGFuZ2U6IG51bGwgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkNoYW5nZUNhcHR1cmU6IG51bGwgfSlcbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogW3RvcExldmVsVHlwZXMudG9wQmx1ciwgdG9wTGV2ZWxUeXBlcy50b3BDaGFuZ2UsIHRvcExldmVsVHlwZXMudG9wQ2xpY2ssIHRvcExldmVsVHlwZXMudG9wRm9jdXMsIHRvcExldmVsVHlwZXMudG9wSW5wdXQsIHRvcExldmVsVHlwZXMudG9wS2V5RG93biwgdG9wTGV2ZWxUeXBlcy50b3BLZXlVcCwgdG9wTGV2ZWxUeXBlcy50b3BTZWxlY3Rpb25DaGFuZ2VdXG4gIH1cbn07XG5cbi8qKlxuICogRm9yIElFIHNoaW1zXG4gKi9cbnZhciBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbnZhciBhY3RpdmVFbGVtZW50SUQgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRWYWx1ZSA9IG51bGw7XG52YXIgYWN0aXZlRWxlbWVudFZhbHVlUHJvcCA9IG51bGw7XG5cbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBjaGFuZ2VgIGV2ZW50XG4gKi9cbmZ1bmN0aW9uIHNob3VsZFVzZUNoYW5nZUV2ZW50KGVsZW0pIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBub2RlTmFtZSA9PT0gJ3NlbGVjdCcgfHwgbm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbS50eXBlID09PSAnZmlsZSc7XG59XG5cbnZhciBkb2VzQ2hhbmdlRXZlbnRCdWJibGUgPSBmYWxzZTtcbmlmIChFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00pIHtcbiAgLy8gU2VlIGBoYW5kbGVDaGFuZ2VgIGNvbW1lbnQgYmVsb3dcbiAgZG9lc0NoYW5nZUV2ZW50QnViYmxlID0gaXNFdmVudFN1cHBvcnRlZCgnY2hhbmdlJykgJiYgKCEoJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQpIHx8IGRvY3VtZW50LmRvY3VtZW50TW9kZSA+IDgpO1xufVxuXG5mdW5jdGlvbiBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBldmVudCA9IFN5bnRoZXRpY0V2ZW50LmdldFBvb2xlZChldmVudFR5cGVzLmNoYW5nZSwgYWN0aXZlRWxlbWVudElELCBuYXRpdmVFdmVudCwgZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpKTtcbiAgRXZlbnRQcm9wYWdhdG9ycy5hY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzKGV2ZW50KTtcblxuICAvLyBJZiBjaGFuZ2UgYW5kIHByb3BlcnR5Y2hhbmdlIGJ1YmJsZWQsIHdlJ2QganVzdCBiaW5kIHRvIGl0IGxpa2UgYWxsIHRoZVxuICAvLyBvdGhlciBldmVudHMgYW5kIGhhdmUgaXQgZ28gdGhyb3VnaCBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuIFNpbmNlIGl0XG4gIC8vIGRvZXNuJ3QsIHdlIG1hbnVhbGx5IGxpc3RlbiBmb3IgdGhlIGV2ZW50cyBhbmQgc28gd2UgaGF2ZSB0byBlbnF1ZXVlIGFuZFxuICAvLyBwcm9jZXNzIHRoZSBhYnN0cmFjdCBldmVudCBtYW51YWxseS5cbiAgLy9cbiAgLy8gQmF0Y2hpbmcgaXMgbmVjZXNzYXJ5IGhlcmUgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgYWxsIGV2ZW50IGhhbmRsZXJzIHJ1blxuICAvLyBiZWZvcmUgdGhlIG5leHQgcmVyZW5kZXIgKGluY2x1ZGluZyBldmVudCBoYW5kbGVycyBhdHRhY2hlZCB0byBhbmNlc3RvclxuICAvLyBlbGVtZW50cyBpbnN0ZWFkIG9mIGRpcmVjdGx5IG9uIHRoZSBpbnB1dCkuIFdpdGhvdXQgdGhpcywgY29udHJvbGxlZFxuICAvLyBjb21wb25lbnRzIGRvbid0IHdvcmsgcHJvcGVybHkgaW4gY29uanVuY3Rpb24gd2l0aCBldmVudCBidWJibGluZyBiZWNhdXNlXG4gIC8vIHRoZSBjb21wb25lbnQgaXMgcmVyZW5kZXJlZCBhbmQgdGhlIHZhbHVlIHJldmVydGVkIGJlZm9yZSBhbGwgdGhlIGV2ZW50XG4gIC8vIGhhbmRsZXJzIGNhbiBydW4uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzcwOC5cbiAgUmVhY3RVcGRhdGVzLmJhdGNoZWRVcGRhdGVzKHJ1bkV2ZW50SW5CYXRjaCwgZXZlbnQpO1xufVxuXG5mdW5jdGlvbiBydW5FdmVudEluQmF0Y2goZXZlbnQpIHtcbiAgRXZlbnRQbHVnaW5IdWIuZW5xdWV1ZUV2ZW50cyhldmVudCk7XG4gIEV2ZW50UGx1Z2luSHViLnByb2Nlc3NFdmVudFF1ZXVlKGZhbHNlKTtcbn1cblxuZnVuY3Rpb24gc3RhcnRXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KHRhcmdldCwgdGFyZ2V0SUQpIHtcbiAgYWN0aXZlRWxlbWVudCA9IHRhcmdldDtcbiAgYWN0aXZlRWxlbWVudElEID0gdGFyZ2V0SUQ7XG4gIGFjdGl2ZUVsZW1lbnQuYXR0YWNoRXZlbnQoJ29uY2hhbmdlJywgbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudCk7XG59XG5cbmZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KCkge1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYWN0aXZlRWxlbWVudC5kZXRhY2hFdmVudCgnb25jaGFuZ2UnLCBtYW51YWxEaXNwYXRjaENoYW5nZUV2ZW50KTtcbiAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gIGFjdGl2ZUVsZW1lbnRJRCA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldElERm9yQ2hhbmdlRXZlbnQodG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcENoYW5nZSkge1xuICAgIHJldHVybiB0b3BMZXZlbFRhcmdldElEO1xuICB9XG59XG5mdW5jdGlvbiBoYW5kbGVFdmVudHNGb3JDaGFuZ2VFdmVudElFOCh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElEKSB7XG4gIGlmICh0b3BMZXZlbFR5cGUgPT09IHRvcExldmVsVHlwZXMudG9wRm9jdXMpIHtcbiAgICAvLyBzdG9wV2F0Y2hpbmcoKSBzaG91bGQgYmUgYSBub29wIGhlcmUgYnV0IHdlIGNhbGwgaXQganVzdCBpbiBjYXNlIHdlXG4gICAgLy8gbWlzc2VkIGEgYmx1ciBldmVudCBzb21laG93LlxuICAgIHN0b3BXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KCk7XG4gICAgc3RhcnRXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElEKTtcbiAgfSBlbHNlIGlmICh0b3BMZXZlbFR5cGUgPT09IHRvcExldmVsVHlwZXMudG9wQmx1cikge1xuICAgIHN0b3BXYXRjaGluZ0ZvckNoYW5nZUV2ZW50SUU4KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGlucHV0YCBldmVudFxuICovXG52YXIgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gZmFsc2U7XG5pZiAoRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NKSB7XG4gIC8vIElFOSBjbGFpbXMgdG8gc3VwcG9ydCB0aGUgaW5wdXQgZXZlbnQgYnV0IGZhaWxzIHRvIHRyaWdnZXIgaXQgd2hlblxuICAvLyBkZWxldGluZyB0ZXh0LCBzbyB3ZSBpZ25vcmUgaXRzIGlucHV0IGV2ZW50c1xuICBpc0lucHV0RXZlbnRTdXBwb3J0ZWQgPSBpc0V2ZW50U3VwcG9ydGVkKCdpbnB1dCcpICYmICghKCdkb2N1bWVudE1vZGUnIGluIGRvY3VtZW50KSB8fCBkb2N1bWVudC5kb2N1bWVudE1vZGUgPiA5KTtcbn1cblxuLyoqXG4gKiAoRm9yIG9sZCBJRS4pIFJlcGxhY2VtZW50IGdldHRlci9zZXR0ZXIgZm9yIHRoZSBgdmFsdWVgIHByb3BlcnR5IHRoYXQgZ2V0c1xuICogc2V0IG9uIHRoZSBhY3RpdmUgZWxlbWVudC5cbiAqL1xudmFyIG5ld1ZhbHVlUHJvcCA9IHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGFjdGl2ZUVsZW1lbnRWYWx1ZVByb3AuZ2V0LmNhbGwodGhpcyk7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gKHZhbCkge1xuICAgIC8vIENhc3QgdG8gYSBzdHJpbmcgc28gd2UgY2FuIGRvIGVxdWFsaXR5IGNoZWNrcy5cbiAgICBhY3RpdmVFbGVtZW50VmFsdWUgPSAnJyArIHZhbDtcbiAgICBhY3RpdmVFbGVtZW50VmFsdWVQcm9wLnNldC5jYWxsKHRoaXMsIHZhbCk7XG4gIH1cbn07XG5cbi8qKlxuICogKEZvciBvbGQgSUUuKSBTdGFydHMgdHJhY2tpbmcgcHJvcGVydHljaGFuZ2UgZXZlbnRzIG9uIHRoZSBwYXNzZWQtaW4gZWxlbWVudFxuICogYW5kIG92ZXJyaWRlIHRoZSB2YWx1ZSBwcm9wZXJ0eSBzbyB0aGF0IHdlIGNhbiBkaXN0aW5ndWlzaCB1c2VyIGV2ZW50cyBmcm9tXG4gKiB2YWx1ZSBjaGFuZ2VzIGluIEpTLlxuICovXG5mdW5jdGlvbiBzdGFydFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UodGFyZ2V0LCB0YXJnZXRJRCkge1xuICBhY3RpdmVFbGVtZW50ID0gdGFyZ2V0O1xuICBhY3RpdmVFbGVtZW50SUQgPSB0YXJnZXRJRDtcbiAgYWN0aXZlRWxlbWVudFZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICBhY3RpdmVFbGVtZW50VmFsdWVQcm9wID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQuY29uc3RydWN0b3IucHJvdG90eXBlLCAndmFsdWUnKTtcblxuICAvLyBOb3QgZ3VhcmRlZCBpbiBhIGNhbkRlZmluZVByb3BlcnR5IGNoZWNrOiBJRTggc3VwcG9ydHMgZGVmaW5lUHJvcGVydHkgb25seVxuICAvLyBvbiBET00gZWxlbWVudHNcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFjdGl2ZUVsZW1lbnQsICd2YWx1ZScsIG5ld1ZhbHVlUHJvcCk7XG4gIGFjdGl2ZUVsZW1lbnQuYXR0YWNoRXZlbnQoJ29ucHJvcGVydHljaGFuZ2UnLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSk7XG59XG5cbi8qKlxuICogKEZvciBvbGQgSUUuKSBSZW1vdmVzIHRoZSBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgY3VycmVudGx5LXRyYWNrZWQgZWxlbWVudCxcbiAqIGlmIGFueSBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCkge1xuICBpZiAoIWFjdGl2ZUVsZW1lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBkZWxldGUgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHByb3BlcnR5IGRlZmluaXRpb25cbiAgZGVsZXRlIGFjdGl2ZUVsZW1lbnQudmFsdWU7XG4gIGFjdGl2ZUVsZW1lbnQuZGV0YWNoRXZlbnQoJ29ucHJvcGVydHljaGFuZ2UnLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSk7XG5cbiAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gIGFjdGl2ZUVsZW1lbnRJRCA9IG51bGw7XG4gIGFjdGl2ZUVsZW1lbnRWYWx1ZSA9IG51bGw7XG4gIGFjdGl2ZUVsZW1lbnRWYWx1ZVByb3AgPSBudWxsO1xufVxuXG4vKipcbiAqIChGb3Igb2xkIElFLikgSGFuZGxlcyBhIHByb3BlcnR5Y2hhbmdlIGV2ZW50LCBzZW5kaW5nIGEgYGNoYW5nZWAgZXZlbnQgaWZcbiAqIHRoZSB2YWx1ZSBvZiB0aGUgYWN0aXZlIGVsZW1lbnQgaGFzIGNoYW5nZWQuXG4gKi9cbmZ1bmN0aW9uIGhhbmRsZVByb3BlcnR5Q2hhbmdlKG5hdGl2ZUV2ZW50KSB7XG4gIGlmIChuYXRpdmVFdmVudC5wcm9wZXJ0eU5hbWUgIT09ICd2YWx1ZScpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIHZhbHVlID0gbmF0aXZlRXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcbiAgaWYgKHZhbHVlID09PSBhY3RpdmVFbGVtZW50VmFsdWUpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgYWN0aXZlRWxlbWVudFZhbHVlID0gdmFsdWU7XG5cbiAgbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCk7XG59XG5cbi8qKlxuICogSWYgYSBgY2hhbmdlYCBldmVudCBzaG91bGQgYmUgZmlyZWQsIHJldHVybnMgdGhlIHRhcmdldCdzIElELlxuICovXG5mdW5jdGlvbiBnZXRUYXJnZXRJREZvcklucHV0RXZlbnQodG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcElucHV0KSB7XG4gICAgLy8gSW4gbW9kZXJuIGJyb3dzZXJzIChpLmUuLCBub3QgSUU4IG9yIElFOSksIHRoZSBpbnB1dCBldmVudCBpcyBleGFjdGx5XG4gICAgLy8gd2hhdCB3ZSB3YW50IHNvIGZhbGwgdGhyb3VnaCBoZXJlIGFuZCB0cmlnZ2VyIGFuIGFic3RyYWN0IGV2ZW50XG4gICAgcmV0dXJuIHRvcExldmVsVGFyZ2V0SUQ7XG4gIH1cbn1cblxuLy8gRm9yIElFOCBhbmQgSUU5LlxuZnVuY3Rpb24gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudElFKHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQpIHtcbiAgaWYgKHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BGb2N1cykge1xuICAgIC8vIEluIElFOCwgd2UgY2FuIGNhcHR1cmUgYWxtb3N0IGFsbCAudmFsdWUgY2hhbmdlcyBieSBhZGRpbmcgYVxuICAgIC8vIHByb3BlcnR5Y2hhbmdlIGhhbmRsZXIgYW5kIGxvb2tpbmcgZm9yIGV2ZW50cyB3aXRoIHByb3BlcnR5TmFtZVxuICAgIC8vIGVxdWFsIHRvICd2YWx1ZSdcbiAgICAvLyBJbiBJRTksIHByb3BlcnR5Y2hhbmdlIGZpcmVzIGZvciBtb3N0IGlucHV0IGV2ZW50cyBidXQgaXMgYnVnZ3kgYW5kXG4gICAgLy8gZG9lc24ndCBmaXJlIHdoZW4gdGV4dCBpcyBkZWxldGVkLCBidXQgY29udmVuaWVudGx5LCBzZWxlY3Rpb25jaGFuZ2VcbiAgICAvLyBhcHBlYXJzIHRvIGZpcmUgaW4gYWxsIG9mIHRoZSByZW1haW5pbmcgY2FzZXMgc28gd2UgY2F0Y2ggdGhvc2UgYW5kXG4gICAgLy8gZm9yd2FyZCB0aGUgZXZlbnQgaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkXG4gICAgLy8gSW4gZWl0aGVyIGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gY2FsbCB0aGUgZXZlbnQgaGFuZGxlciBpZiB0aGUgdmFsdWVcbiAgICAvLyBpcyBjaGFuZ2VkIGZyb20gSlMgc28gd2UgcmVkZWZpbmUgYSBzZXR0ZXIgZm9yIGAudmFsdWVgIHRoYXQgdXBkYXRlc1xuICAgIC8vIG91ciBhY3RpdmVFbGVtZW50VmFsdWUgdmFyaWFibGUsIGFsbG93aW5nIHVzIHRvIGlnbm9yZSB0aG9zZSBjaGFuZ2VzXG4gICAgLy9cbiAgICAvLyBzdG9wV2F0Y2hpbmcoKSBzaG91bGQgYmUgYSBub29wIGhlcmUgYnV0IHdlIGNhbGwgaXQganVzdCBpbiBjYXNlIHdlXG4gICAgLy8gbWlzc2VkIGEgYmx1ciBldmVudCBzb21laG93LlxuICAgIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gICAgc3RhcnRXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElEKTtcbiAgfSBlbHNlIGlmICh0b3BMZXZlbFR5cGUgPT09IHRvcExldmVsVHlwZXMudG9wQmx1cikge1xuICAgIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gIH1cbn1cblxuLy8gRm9yIElFOCBhbmQgSUU5LlxuZnVuY3Rpb24gZ2V0VGFyZ2V0SURGb3JJbnB1dEV2ZW50SUUodG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCkge1xuICBpZiAodG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcFNlbGVjdGlvbkNoYW5nZSB8fCB0b3BMZXZlbFR5cGUgPT09IHRvcExldmVsVHlwZXMudG9wS2V5VXAgfHwgdG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcEtleURvd24pIHtcbiAgICAvLyBPbiB0aGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50LCB0aGUgdGFyZ2V0IGlzIGp1c3QgZG9jdW1lbnQgd2hpY2ggaXNuJ3RcbiAgICAvLyBoZWxwZnVsIGZvciB1cyBzbyBqdXN0IGNoZWNrIGFjdGl2ZUVsZW1lbnQgaW5zdGVhZC5cbiAgICAvL1xuICAgIC8vIDk5JSBvZiB0aGUgdGltZSwga2V5ZG93biBhbmQga2V5dXAgYXJlbid0IG5lY2Vzc2FyeS4gSUU4IGZhaWxzIHRvIGZpcmVcbiAgICAvLyBwcm9wZXJ0eWNoYW5nZSBvbiB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYWZ0ZXIgc2V0dGluZyBgdmFsdWVgIGZyb20gYVxuICAgIC8vIHNjcmlwdCBhbmQgZmlyZXMgb25seSBrZXlkb3duLCBrZXlwcmVzcywga2V5dXAuIENhdGNoaW5nIGtleXVwIHVzdWFsbHlcbiAgICAvLyBnZXRzIGl0IGFuZCBjYXRjaGluZyBrZXlkb3duIGxldHMgdXMgZmlyZSBhbiBldmVudCBmb3IgdGhlIGZpcnN0XG4gICAgLy8ga2V5c3Ryb2tlIGlmIHVzZXIgZG9lcyBhIGtleSByZXBlYXQgKGl0J2xsIGJlIGEgbGl0dGxlIGRlbGF5ZWQ6IHJpZ2h0XG4gICAgLy8gYmVmb3JlIHRoZSBzZWNvbmQga2V5c3Ryb2tlKS4gT3RoZXIgaW5wdXQgbWV0aG9kcyAoZS5nLiwgcGFzdGUpIHNlZW0gdG9cbiAgICAvLyBmaXJlIHNlbGVjdGlvbmNoYW5nZSBub3JtYWxseS5cbiAgICBpZiAoYWN0aXZlRWxlbWVudCAmJiBhY3RpdmVFbGVtZW50LnZhbHVlICE9PSBhY3RpdmVFbGVtZW50VmFsdWUpIHtcbiAgICAgIGFjdGl2ZUVsZW1lbnRWYWx1ZSA9IGFjdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICByZXR1cm4gYWN0aXZlRWxlbWVudElEO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFNFQ1RJT046IGhhbmRsZSBgY2xpY2tgIGV2ZW50XG4gKi9cbmZ1bmN0aW9uIHNob3VsZFVzZUNsaWNrRXZlbnQoZWxlbSkge1xuICAvLyBVc2UgdGhlIGBjbGlja2AgZXZlbnQgdG8gZGV0ZWN0IGNoYW5nZXMgdG8gY2hlY2tib3ggYW5kIHJhZGlvIGlucHV0cy5cbiAgLy8gVGhpcyBhcHByb2FjaCB3b3JrcyBhY3Jvc3MgYWxsIGJyb3dzZXJzLCB3aGVyZWFzIGBjaGFuZ2VgIGRvZXMgbm90IGZpcmVcbiAgLy8gdW50aWwgYGJsdXJgIGluIElFOC5cbiAgcmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmIChlbGVtLnR5cGUgPT09ICdjaGVja2JveCcgfHwgZWxlbS50eXBlID09PSAncmFkaW8nKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFyZ2V0SURGb3JDbGlja0V2ZW50KHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQpIHtcbiAgaWYgKHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BDbGljaykge1xuICAgIHJldHVybiB0b3BMZXZlbFRhcmdldElEO1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBwbHVnaW4gY3JlYXRlcyBhbiBgb25DaGFuZ2VgIGV2ZW50IHRoYXQgbm9ybWFsaXplcyBjaGFuZ2UgZXZlbnRzXG4gKiBhY3Jvc3MgZm9ybSBlbGVtZW50cy4gVGhpcyBldmVudCBmaXJlcyBhdCBhIHRpbWUgd2hlbiBpdCdzIHBvc3NpYmxlIHRvXG4gKiBjaGFuZ2UgdGhlIGVsZW1lbnQncyB2YWx1ZSB3aXRob3V0IHNlZWluZyBhIGZsaWNrZXIuXG4gKlxuICogU3VwcG9ydGVkIGVsZW1lbnRzIGFyZTpcbiAqIC0gaW5wdXQgKHNlZSBgaXNUZXh0SW5wdXRFbGVtZW50YClcbiAqIC0gdGV4dGFyZWFcbiAqIC0gc2VsZWN0XG4gKi9cbnZhciBDaGFuZ2VFdmVudFBsdWdpbiA9IHtcblxuICBldmVudFR5cGVzOiBldmVudFR5cGVzLFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gICAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRvcExldmVsVGFyZ2V0IFRoZSBsaXN0ZW5pbmcgY29tcG9uZW50IHJvb3Qgbm9kZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVGFyZ2V0SUQgSUQgb2YgYHRvcExldmVsVGFyZ2V0YC5cbiAgICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICAgKiBAcmV0dXJuIHsqfSBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQHNlZSB7RXZlbnRQbHVnaW5IdWIuZXh0cmFjdEV2ZW50c31cbiAgICovXG4gIGV4dHJhY3RFdmVudHM6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElELCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcblxuICAgIHZhciBnZXRUYXJnZXRJREZ1bmMsIGhhbmRsZUV2ZW50RnVuYztcbiAgICBpZiAoc2hvdWxkVXNlQ2hhbmdlRXZlbnQodG9wTGV2ZWxUYXJnZXQpKSB7XG4gICAgICBpZiAoZG9lc0NoYW5nZUV2ZW50QnViYmxlKSB7XG4gICAgICAgIGdldFRhcmdldElERnVuYyA9IGdldFRhcmdldElERm9yQ2hhbmdlRXZlbnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoYW5kbGVFdmVudEZ1bmMgPSBoYW5kbGVFdmVudHNGb3JDaGFuZ2VFdmVudElFODtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzVGV4dElucHV0RWxlbWVudCh0b3BMZXZlbFRhcmdldCkpIHtcbiAgICAgIGlmIChpc0lucHV0RXZlbnRTdXBwb3J0ZWQpIHtcbiAgICAgICAgZ2V0VGFyZ2V0SURGdW5jID0gZ2V0VGFyZ2V0SURGb3JJbnB1dEV2ZW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZ2V0VGFyZ2V0SURGdW5jID0gZ2V0VGFyZ2V0SURGb3JJbnB1dEV2ZW50SUU7XG4gICAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IGhhbmRsZUV2ZW50c0ZvcklucHV0RXZlbnRJRTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHNob3VsZFVzZUNsaWNrRXZlbnQodG9wTGV2ZWxUYXJnZXQpKSB7XG4gICAgICBnZXRUYXJnZXRJREZ1bmMgPSBnZXRUYXJnZXRJREZvckNsaWNrRXZlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGdldFRhcmdldElERnVuYykge1xuICAgICAgdmFyIHRhcmdldElEID0gZ2V0VGFyZ2V0SURGdW5jKHRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQpO1xuICAgICAgaWYgKHRhcmdldElEKSB7XG4gICAgICAgIHZhciBldmVudCA9IFN5bnRoZXRpY0V2ZW50LmdldFBvb2xlZChldmVudFR5cGVzLmNoYW5nZSwgdGFyZ2V0SUQsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgICAgIGV2ZW50LnR5cGUgPSAnY2hhbmdlJztcbiAgICAgICAgRXZlbnRQcm9wYWdhdG9ycy5hY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYW5kbGVFdmVudEZ1bmMpIHtcbiAgICAgIGhhbmRsZUV2ZW50RnVuYyh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElEKTtcbiAgICB9XG4gIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDaGFuZ2VFdmVudFBsdWdpbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ2hhbmdlRXZlbnRQbHVnaW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 81 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventTarget\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n var target = nativeEvent.target || nativeEvent.srcElement || window;\n // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n return target.nodeType === 3 ? target.parentNode : target;\n}\n\nmodule.exports = getEventTarget;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0RXZlbnRUYXJnZXQuanM/NWE2MCJdLCJuYW1lcyI6WyJnZXRFdmVudFRhcmdldCIsIm5hdGl2ZUV2ZW50IiwidGFyZ2V0Iiwic3JjRWxlbWVudCIsIndpbmRvdyIsIm5vZGVUeXBlIiwicGFyZW50Tm9kZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7Ozs7Ozs7QUFPQSxTQUFTQSxjQUFULENBQXdCQyxXQUF4QixFQUFxQztBQUNuQyxNQUFJQyxTQUFTRCxZQUFZQyxNQUFaLElBQXNCRCxZQUFZRSxVQUFsQyxJQUFnREMsTUFBN0Q7QUFDQTtBQUNBO0FBQ0EsU0FBT0YsT0FBT0csUUFBUCxLQUFvQixDQUFwQixHQUF3QkgsT0FBT0ksVUFBL0IsR0FBNENKLE1BQW5EO0FBQ0Q7O0FBRURLLE9BQU9DLE9BQVAsR0FBaUJSLGNBQWpCIiwiZmlsZSI6IjgxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGdldEV2ZW50VGFyZ2V0XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBHZXRzIHRoZSB0YXJnZXQgbm9kZSBmcm9tIGEgbmF0aXZlIGJyb3dzZXIgZXZlbnQgYnkgYWNjb3VudGluZyBmb3JcbiAqIGluY29uc2lzdGVuY2llcyBpbiBicm93c2VyIERPTSBBUElzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEByZXR1cm4ge0RPTUV2ZW50VGFyZ2V0fSBUYXJnZXQgbm9kZS5cbiAqL1xuZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpIHtcbiAgdmFyIHRhcmdldCA9IG5hdGl2ZUV2ZW50LnRhcmdldCB8fCBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IHdpbmRvdztcbiAgLy8gU2FmYXJpIG1heSBmaXJlIGV2ZW50cyBvbiB0ZXh0IG5vZGVzIChOb2RlLlRFWFRfTk9ERSBpcyAzKS5cbiAgLy8gQHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2pzL2V2ZW50c19wcm9wZXJ0aWVzLmh0bWxcbiAgcmV0dXJuIHRhcmdldC5ub2RlVHlwZSA9PT0gMyA/IHRhcmdldC5wYXJlbnROb2RlIDogdGFyZ2V0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEV2ZW50VGFyZ2V0O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9nZXRFdmVudFRhcmdldC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 82 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isTextInputElement\n */\n\n'use strict';\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\n\nvar supportedInputTypes = {\n 'color': true,\n 'date': true,\n 'datetime': true,\n 'datetime-local': true,\n 'email': true,\n 'month': true,\n 'number': true,\n 'password': true,\n 'range': true,\n 'search': true,\n 'tel': true,\n 'text': true,\n 'time': true,\n 'url': true,\n 'week': true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && supportedInputTypes[elem.type] || nodeName === 'textarea');\n}\n\nmodule.exports = isTextInputElement;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvaXNUZXh0SW5wdXRFbGVtZW50LmpzPzA5NzgiXSwibmFtZXMiOlsic3VwcG9ydGVkSW5wdXRUeXBlcyIsImlzVGV4dElucHV0RWxlbWVudCIsImVsZW0iLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwidHlwZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBOzs7O0FBR0EsSUFBSUEsc0JBQXNCO0FBQ3hCLFdBQVMsSUFEZTtBQUV4QixVQUFRLElBRmdCO0FBR3hCLGNBQVksSUFIWTtBQUl4QixvQkFBa0IsSUFKTTtBQUt4QixXQUFTLElBTGU7QUFNeEIsV0FBUyxJQU5lO0FBT3hCLFlBQVUsSUFQYztBQVF4QixjQUFZLElBUlk7QUFTeEIsV0FBUyxJQVRlO0FBVXhCLFlBQVUsSUFWYztBQVd4QixTQUFPLElBWGlCO0FBWXhCLFVBQVEsSUFaZ0I7QUFheEIsVUFBUSxJQWJnQjtBQWN4QixTQUFPLElBZGlCO0FBZXhCLFVBQVE7QUFmZ0IsQ0FBMUI7O0FBa0JBLFNBQVNDLGtCQUFULENBQTRCQyxJQUE1QixFQUFrQztBQUNoQyxNQUFJQyxXQUFXRCxRQUFRQSxLQUFLQyxRQUFiLElBQXlCRCxLQUFLQyxRQUFMLENBQWNDLFdBQWQsRUFBeEM7QUFDQSxTQUFPRCxhQUFhQSxhQUFhLE9BQWIsSUFBd0JILG9CQUFvQkUsS0FBS0csSUFBekIsQ0FBeEIsSUFBMERGLGFBQWEsVUFBcEYsQ0FBUDtBQUNEOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCTixrQkFBakIiLCJmaWxlIjoiODIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgaXNUZXh0SW5wdXRFbGVtZW50XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEBzZWUgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLWlucHV0LWVsZW1lbnQuaHRtbCNpbnB1dC10eXBlLWF0dHItc3VtbWFyeVxuICovXG52YXIgc3VwcG9ydGVkSW5wdXRUeXBlcyA9IHtcbiAgJ2NvbG9yJzogdHJ1ZSxcbiAgJ2RhdGUnOiB0cnVlLFxuICAnZGF0ZXRpbWUnOiB0cnVlLFxuICAnZGF0ZXRpbWUtbG9jYWwnOiB0cnVlLFxuICAnZW1haWwnOiB0cnVlLFxuICAnbW9udGgnOiB0cnVlLFxuICAnbnVtYmVyJzogdHJ1ZSxcbiAgJ3Bhc3N3b3JkJzogdHJ1ZSxcbiAgJ3JhbmdlJzogdHJ1ZSxcbiAgJ3NlYXJjaCc6IHRydWUsXG4gICd0ZWwnOiB0cnVlLFxuICAndGV4dCc6IHRydWUsXG4gICd0aW1lJzogdHJ1ZSxcbiAgJ3VybCc6IHRydWUsXG4gICd3ZWVrJzogdHJ1ZVxufTtcblxuZnVuY3Rpb24gaXNUZXh0SW5wdXRFbGVtZW50KGVsZW0pIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIG5vZGVOYW1lICYmIChub2RlTmFtZSA9PT0gJ2lucHV0JyAmJiBzdXBwb3J0ZWRJbnB1dFR5cGVzW2VsZW0udHlwZV0gfHwgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVGV4dElucHV0RWxlbWVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvaXNUZXh0SW5wdXRFbGVtZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 83 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ClientReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\nvar nextReactRootIndex = 0;\n\nvar ClientReactRootIndex = {\n createReactRootIndex: function createReactRootIndex() {\n return nextReactRootIndex++;\n }\n};\n\nmodule.exports = ClientReactRootIndex;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ2xpZW50UmVhY3RSb290SW5kZXguanM/ZTkwOSJdLCJuYW1lcyI6WyJuZXh0UmVhY3RSb290SW5kZXgiLCJDbGllbnRSZWFjdFJvb3RJbmRleCIsImNyZWF0ZVJlYWN0Um9vdEluZGV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLHFCQUFxQixDQUF6Qjs7QUFFQSxJQUFJQyx1QkFBdUI7QUFDekJDLHdCQUFzQixnQ0FBWTtBQUNoQyxXQUFPRixvQkFBUDtBQUNEO0FBSHdCLENBQTNCOztBQU1BRyxPQUFPQyxPQUFQLEdBQWlCSCxvQkFBakIiLCJmaWxlIjoiODMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgQ2xpZW50UmVhY3RSb290SW5kZXhcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgbmV4dFJlYWN0Um9vdEluZGV4ID0gMDtcblxudmFyIENsaWVudFJlYWN0Um9vdEluZGV4ID0ge1xuICBjcmVhdGVSZWFjdFJvb3RJbmRleDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBuZXh0UmVhY3RSb290SW5kZXgrKztcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBDbGllbnRSZWFjdFJvb3RJbmRleDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ2xpZW50UmVhY3RSb290SW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 84 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule DefaultEventPluginOrder\n */\n\n'use strict';\n\nvar keyOf = __webpack_require__(79);\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DefaultEventPluginOrder = [keyOf({ ResponderEventPlugin: null }), keyOf({ SimpleEventPlugin: null }), keyOf({ TapEventPlugin: null }), keyOf({ EnterLeaveEventPlugin: null }), keyOf({ ChangeEventPlugin: null }), keyOf({ SelectEventPlugin: null }), keyOf({ BeforeInputEventPlugin: null })];\n\nmodule.exports = DefaultEventPluginOrder;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRGVmYXVsdEV2ZW50UGx1Z2luT3JkZXIuanM/Nzc2ZSJdLCJuYW1lcyI6WyJrZXlPZiIsInJlcXVpcmUiLCJEZWZhdWx0RXZlbnRQbHVnaW5PcmRlciIsIlJlc3BvbmRlckV2ZW50UGx1Z2luIiwiU2ltcGxlRXZlbnRQbHVnaW4iLCJUYXBFdmVudFBsdWdpbiIsIkVudGVyTGVhdmVFdmVudFBsdWdpbiIsIkNoYW5nZUV2ZW50UGx1Z2luIiwiU2VsZWN0RXZlbnRQbHVnaW4iLCJCZWZvcmVJbnB1dEV2ZW50UGx1Z2luIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsUUFBUSxtQkFBQUMsQ0FBUSxFQUFSLENBQVo7O0FBRUE7Ozs7Ozs7OztBQVNBLElBQUlDLDBCQUEwQixDQUFDRixNQUFNLEVBQUVHLHNCQUFzQixJQUF4QixFQUFOLENBQUQsRUFBd0NILE1BQU0sRUFBRUksbUJBQW1CLElBQXJCLEVBQU4sQ0FBeEMsRUFBNEVKLE1BQU0sRUFBRUssZ0JBQWdCLElBQWxCLEVBQU4sQ0FBNUUsRUFBNkdMLE1BQU0sRUFBRU0sdUJBQXVCLElBQXpCLEVBQU4sQ0FBN0csRUFBcUpOLE1BQU0sRUFBRU8sbUJBQW1CLElBQXJCLEVBQU4sQ0FBckosRUFBeUxQLE1BQU0sRUFBRVEsbUJBQW1CLElBQXJCLEVBQU4sQ0FBekwsRUFBNk5SLE1BQU0sRUFBRVMsd0JBQXdCLElBQTFCLEVBQU4sQ0FBN04sQ0FBOUI7O0FBRUFDLE9BQU9DLE9BQVAsR0FBaUJULHVCQUFqQiIsImZpbGUiOiI4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBEZWZhdWx0RXZlbnRQbHVnaW5PcmRlclxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGtleU9mID0gcmVxdWlyZSgnZmJqcy9saWIva2V5T2YnKTtcblxuLyoqXG4gKiBNb2R1bGUgdGhhdCBpcyBpbmplY3RhYmxlIGludG8gYEV2ZW50UGx1Z2luSHViYCwgdGhhdCBzcGVjaWZpZXMgYVxuICogZGV0ZXJtaW5pc3RpYyBvcmRlcmluZyBvZiBgRXZlbnRQbHVnaW5gcy4gQSBjb252ZW5pZW50IHdheSB0byByZWFzb24gYWJvdXRcbiAqIHBsdWdpbnMsIHdpdGhvdXQgaGF2aW5nIHRvIHBhY2thZ2UgZXZlcnkgb25lIG9mIHRoZW0uIFRoaXMgaXMgYmV0dGVyIHRoYW5cbiAqIGhhdmluZyBwbHVnaW5zIGJlIG9yZGVyZWQgaW4gdGhlIHNhbWUgb3JkZXIgdGhhdCB0aGV5IGFyZSBpbmplY3RlZCBiZWNhdXNlXG4gKiB0aGF0IG9yZGVyaW5nIHdvdWxkIGJlIGluZmx1ZW5jZWQgYnkgdGhlIHBhY2thZ2luZyBvcmRlci5cbiAqIGBSZXNwb25kZXJFdmVudFBsdWdpbmAgbXVzdCBvY2N1ciBiZWZvcmUgYFNpbXBsZUV2ZW50UGx1Z2luYCBzbyB0aGF0XG4gKiBwcmV2ZW50aW5nIGRlZmF1bHQgb24gZXZlbnRzIGlzIGNvbnZlbmllbnQgaW4gYFNpbXBsZUV2ZW50UGx1Z2luYCBoYW5kbGVycy5cbiAqL1xudmFyIERlZmF1bHRFdmVudFBsdWdpbk9yZGVyID0gW2tleU9mKHsgUmVzcG9uZGVyRXZlbnRQbHVnaW46IG51bGwgfSksIGtleU9mKHsgU2ltcGxlRXZlbnRQbHVnaW46IG51bGwgfSksIGtleU9mKHsgVGFwRXZlbnRQbHVnaW46IG51bGwgfSksIGtleU9mKHsgRW50ZXJMZWF2ZUV2ZW50UGx1Z2luOiBudWxsIH0pLCBrZXlPZih7IENoYW5nZUV2ZW50UGx1Z2luOiBudWxsIH0pLCBrZXlPZih7IFNlbGVjdEV2ZW50UGx1Z2luOiBudWxsIH0pLCBrZXlPZih7IEJlZm9yZUlucHV0RXZlbnRQbHVnaW46IG51bGwgfSldO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERlZmF1bHRFdmVudFBsdWdpbk9yZGVyO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9EZWZhdWx0RXZlbnRQbHVnaW5PcmRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 85 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EnterLeaveEventPlugin\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar EventPropagators = __webpack_require__(73);\nvar SyntheticMouseEvent = __webpack_require__(86);\n\nvar ReactMount = __webpack_require__(28);\nvar keyOf = __webpack_require__(79);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\nvar getFirstReactDOM = ReactMount.getFirstReactDOM;\n\nvar eventTypes = {\n mouseEnter: {\n registrationName: keyOf({ onMouseEnter: null }),\n dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n },\n mouseLeave: {\n registrationName: keyOf({ onMouseLeave: null }),\n dependencies: [topLevelTypes.topMouseOut, topLevelTypes.topMouseOver]\n }\n};\n\nvar extractedEvents = [null, null];\n\nvar EnterLeaveEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n if (topLevelType === topLevelTypes.topMouseOver && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n return null;\n }\n if (topLevelType !== topLevelTypes.topMouseOut && topLevelType !== topLevelTypes.topMouseOver) {\n // Must not be a mouse in or mouse out - ignoring.\n return null;\n }\n\n var win;\n if (topLevelTarget.window === topLevelTarget) {\n // `topLevelTarget` is probably a window object.\n win = topLevelTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = topLevelTarget.ownerDocument;\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n var fromID = '';\n var toID = '';\n if (topLevelType === topLevelTypes.topMouseOut) {\n from = topLevelTarget;\n fromID = topLevelTargetID;\n to = getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement);\n if (to) {\n toID = ReactMount.getID(to);\n } else {\n to = win;\n }\n to = to || win;\n } else {\n from = win;\n to = topLevelTarget;\n toID = topLevelTargetID;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return null;\n }\n\n var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, fromID, nativeEvent, nativeEventTarget);\n leave.type = 'mouseleave';\n leave.target = from;\n leave.relatedTarget = to;\n\n var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, toID, nativeEvent, nativeEventTarget);\n enter.type = 'mouseenter';\n enter.target = to;\n enter.relatedTarget = from;\n\n EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID);\n\n extractedEvents[0] = leave;\n extractedEvents[1] = enter;\n\n return extractedEvents;\n }\n\n};\n\nmodule.exports = EnterLeaveEventPlugin;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvRW50ZXJMZWF2ZUV2ZW50UGx1Z2luLmpzP2Q3MjkiXSwibmFtZXMiOlsiRXZlbnRDb25zdGFudHMiLCJyZXF1aXJlIiwiRXZlbnRQcm9wYWdhdG9ycyIsIlN5bnRoZXRpY01vdXNlRXZlbnQiLCJSZWFjdE1vdW50Iiwia2V5T2YiLCJ0b3BMZXZlbFR5cGVzIiwiZ2V0Rmlyc3RSZWFjdERPTSIsImV2ZW50VHlwZXMiLCJtb3VzZUVudGVyIiwicmVnaXN0cmF0aW9uTmFtZSIsIm9uTW91c2VFbnRlciIsImRlcGVuZGVuY2llcyIsInRvcE1vdXNlT3V0IiwidG9wTW91c2VPdmVyIiwibW91c2VMZWF2ZSIsIm9uTW91c2VMZWF2ZSIsImV4dHJhY3RlZEV2ZW50cyIsIkVudGVyTGVhdmVFdmVudFBsdWdpbiIsImV4dHJhY3RFdmVudHMiLCJ0b3BMZXZlbFR5cGUiLCJ0b3BMZXZlbFRhcmdldCIsInRvcExldmVsVGFyZ2V0SUQiLCJuYXRpdmVFdmVudCIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwicmVsYXRlZFRhcmdldCIsImZyb21FbGVtZW50Iiwid2luIiwid2luZG93IiwiZG9jIiwib3duZXJEb2N1bWVudCIsImRlZmF1bHRWaWV3IiwicGFyZW50V2luZG93IiwiZnJvbSIsInRvIiwiZnJvbUlEIiwidG9JRCIsInRvRWxlbWVudCIsImdldElEIiwibGVhdmUiLCJnZXRQb29sZWQiLCJ0eXBlIiwidGFyZ2V0IiwiZW50ZXIiLCJhY2N1bXVsYXRlRW50ZXJMZWF2ZURpc3BhdGNoZXMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBckI7QUFDQSxJQUFJQyxtQkFBbUIsbUJBQUFELENBQVEsRUFBUixDQUF2QjtBQUNBLElB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TixHQUFhLFlBQWI7QUFDQUUsVUFBTUQsTUFBTixHQUFlUixFQUFmO0FBQ0FTLFVBQU1sQixhQUFOLEdBQXNCUSxJQUF0Qjs7QUFFQS9CLHFCQUFpQjBDLDhCQUFqQixDQUFnREwsS0FBaEQsRUFBdURJLEtBQXZELEVBQThEUixNQUE5RCxFQUFzRUMsSUFBdEU7O0FBRUFuQixvQkFBZ0IsQ0FBaEIsSUFBcUJzQixLQUFyQjtBQUNBdEIsb0JBQWdCLENBQWhCLElBQXFCMEIsS0FBckI7O0FBRUEsV0FBTzFCLGVBQVA7QUFDRDs7QUFsRnlCLENBQTVCOztBQXNGQTRCLE9BQU9DLE9BQVAsR0FBaUI1QixxQkFBakIiLCJmaWxlIjoiODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgRW50ZXJMZWF2ZUV2ZW50UGx1Z2luXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV2ZW50Q29uc3RhbnRzID0gcmVxdWlyZSgnLi9FdmVudENvbnN0YW50cycpO1xudmFyIEV2ZW50UHJvcGFnYXRvcnMgPSByZXF1aXJlKCcuL0V2ZW50UHJvcGFnYXRvcnMnKTtcbnZhciBTeW50aGV0aWNNb3VzZUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNNb3VzZUV2ZW50Jyk7XG5cbnZhciBSZWFjdE1vdW50ID0gcmVxdWlyZSgnLi9SZWFjdE1vdW50Jyk7XG52YXIga2V5T2YgPSByZXF1aXJlKCdmYmpzL2xpYi9rZXlPZicpO1xuXG52YXIgdG9wTGV2ZWxUeXBlcyA9IEV2ZW50Q29uc3RhbnRzLnRvcExldmVsVHlwZXM7XG52YXIgZ2V0Rmlyc3RSZWFjdERPTSA9IFJlYWN0TW91bnQuZ2V0Rmlyc3RSZWFjdERPTTtcblxudmFyIGV2ZW50VHlwZXMgPSB7XG4gIG1vdXNlRW50ZXI6IHtcbiAgICByZWdpc3RyYXRpb25OYW1lOiBrZXlPZih7IG9uTW91c2VFbnRlcjogbnVsbCB9KSxcbiAgICBkZXBlbmRlbmNpZXM6IFt0b3BMZXZlbFR5cGVzLnRvcE1vdXNlT3V0LCB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlT3Zlcl1cbiAgfSxcbiAgbW91c2VMZWF2ZToge1xuICAgIHJlZ2lzdHJhdGlvbk5hbWU6IGtleU9mKHsgb25Nb3VzZUxlYXZlOiBudWxsIH0pLFxuICAgIGRlcGVuZGVuY2llczogW3RvcExldmVsVHlwZXMudG9wTW91c2VPdXQsIHRvcExldmVsVHlwZXMudG9wTW91c2VPdmVyXVxuICB9XG59O1xuXG52YXIgZXh0cmFjdGVkRXZlbnRzID0gW251bGwsIG51bGxdO1xuXG52YXIgRW50ZXJMZWF2ZUV2ZW50UGx1Z2luID0ge1xuXG4gIGV2ZW50VHlwZXM6IGV2ZW50VHlwZXMsXG5cbiAgLyoqXG4gICAqIEZvciBhbG1vc3QgZXZlcnkgaW50ZXJhY3Rpb24gd2UgY2FyZSBhYm91dCwgdGhlcmUgd2lsbCBiZSBib3RoIGEgdG9wLWxldmVsXG4gICAqIGBtb3VzZW92ZXJgIGFuZCBgbW91c2VvdXRgIGV2ZW50IHRoYXQgb2NjdXJzLiBPbmx5IHVzZSBgbW91c2VvdXRgIHNvIHRoYXRcbiAgICogd2UgZG8gbm90IGV4dHJhY3QgZHVwbGljYXRlIGV2ZW50cy4gSG93ZXZlciwgbW92aW5nIHRoZSBtb3VzZSBpbnRvIHRoZVxuICAgKiBicm93c2VyIGZyb20gb3V0c2lkZSB3aWxsIG5vdCBmaXJlIGEgYG1vdXNlb3V0YCBldmVudC4gSW4gdGhpcyBjYXNlLCB3ZSB1c2VcbiAgICogdGhlIGBtb3VzZW92ZXJgIHRvcC1sZXZlbCBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVHlwZSBSZWNvcmQgZnJvbSBgRXZlbnRDb25zdGFudHNgLlxuICAgKiBAcGFyYW0ge0RPTUV2ZW50VGFyZ2V0fSB0b3BMZXZlbFRhcmdldCBUaGUgbGlzdGVuaW5nIGNvbXBvbmVudCByb290IG5vZGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFRhcmdldElEIElEIG9mIGB0b3BMZXZlbFRhcmdldGAuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAgICogQHJldHVybiB7Kn0gQW4gYWNjdW11bGF0aW9uIG9mIHN5bnRoZXRpYyBldmVudHMuXG4gICAqIEBzZWUge0V2ZW50UGx1Z2luSHViLmV4dHJhY3RFdmVudHN9XG4gICAqL1xuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgaWYgKHRvcExldmVsVHlwZSA9PT0gdG9wTGV2ZWxUeXBlcy50b3BNb3VzZU92ZXIgJiYgKG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQuZnJvbUVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRvcExldmVsVHlwZSAhPT0gdG9wTGV2ZWxUeXBlcy50b3BNb3VzZU91dCAmJiB0b3BMZXZlbFR5cGUgIT09IHRvcExldmVsVHlwZXMudG9wTW91c2VPdmVyKSB7XG4gICAgICAvLyBNdXN0IG5vdCBiZSBhIG1vdXNlIGluIG9yIG1vdXNlIG91dCAtIGlnbm9yaW5nLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHdpbjtcbiAgICBpZiAodG9wTGV2ZWxUYXJnZXQud2luZG93ID09PSB0b3BMZXZlbFRhcmdldCkge1xuICAgICAgLy8gYHRvcExldmVsVGFyZ2V0YCBpcyBwcm9iYWJseSBhIHdpbmRvdyBvYmplY3QuXG4gICAgICB3aW4gPSB0b3BMZXZlbFRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETzogRmlndXJlIG91dCB3aHkgYG93bmVyRG9jdW1lbnRgIGlzIHNvbWV0aW1lcyB1bmRlZmluZWQgaW4gSUU4LlxuICAgICAgdmFyIGRvYyA9IHRvcExldmVsVGFyZ2V0Lm93bmVyRG9jdW1lbnQ7XG4gICAgICBpZiAoZG9jKSB7XG4gICAgICAgIHdpbiA9IGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luID0gd2luZG93O1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBmcm9tO1xuICAgIHZhciB0bztcbiAgICB2YXIgZnJvbUlEID0gJyc7XG4gICAgdmFyIHRvSUQgPSAnJztcbiAgICBpZiAodG9wTGV2ZWxUeXBlID09PSB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlT3V0KSB7XG4gICAgICBmcm9tID0gdG9wTGV2ZWxUYXJnZXQ7XG4gICAgICBmcm9tSUQgPSB0b3BMZXZlbFRhcmdldElEO1xuICAgICAgdG8gPSBnZXRGaXJzdFJlYWN0RE9NKG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQudG9FbGVtZW50KTtcbiAgICAgIGlmICh0bykge1xuICAgICAgICB0b0lEID0gUmVhY3RNb3VudC5nZXRJRCh0byk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0byA9IHdpbjtcbiAgICAgIH1cbiAgICAgIHRvID0gdG8gfHwgd2luO1xuICAgIH0gZWxzZSB7XG4gICAgICBmcm9tID0gd2luO1xuICAgICAgdG8gPSB0b3BMZXZlbFRhcmdldDtcbiAgICAgIHRvSUQgPSB0b3BMZXZlbFRhcmdldElEO1xuICAgIH1cblxuICAgIGlmIChmcm9tID09PSB0bykge1xuICAgICAgLy8gTm90aGluZyBwZXJ0YWlucyB0byBvdXIgbWFuYWdlZCBjb21wb25lbnRzLlxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIGxlYXZlID0gU3ludGhldGljTW91c2VFdmVudC5nZXRQb29sZWQoZXZlbnRUeXBlcy5tb3VzZUxlYXZlLCBmcm9tSUQsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgbGVhdmUudHlwZSA9ICdtb3VzZWxlYXZlJztcbiAgICBsZWF2ZS50YXJnZXQgPSBmcm9tO1xuICAgIGxlYXZlLnJlbGF0ZWRUYXJnZXQgPSB0bztcblxuICAgIHZhciBlbnRlciA9IFN5bnRoZXRpY01vdXNlRXZlbnQuZ2V0UG9vbGVkKGV2ZW50VHlwZXMubW91c2VFbnRlciwgdG9JRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBlbnRlci50eXBlID0gJ21vdXNlZW50ZXInO1xuICAgIGVudGVyLnRhcmdldCA9IHRvO1xuICAgIGVudGVyLnJlbGF0ZWRUYXJnZXQgPSBmcm9tO1xuXG4gICAgRXZlbnRQcm9wYWdhdG9ycy5hY2N1bXVsYXRlRW50ZXJMZWF2ZURpc3BhdGNoZXMobGVhdmUsIGVudGVyLCBmcm9tSUQsIHRvSUQpO1xuXG4gICAgZXh0cmFjdGVkRXZlbnRzWzBdID0gbGVhdmU7XG4gICAgZXh0cmFjdGVkRXZlbnRzWzFdID0gZW50ZXI7XG5cbiAgICByZXR1cm4gZXh0cmFjdGVkRXZlbnRzO1xuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRW50ZXJMZWF2ZUV2ZW50UGx1Z2luO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9FbnRlckxlYXZlRXZlbnRQbHVnaW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 86 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticMouseEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = __webpack_require__(87);\nvar ViewportMetrics = __webpack_require__(38);\n\nvar getEventModifierState = __webpack_require__(88);\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar MouseEventInterface = {\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: getEventModifierState,\n button: function button(event) {\n // Webkit, Firefox, IE9+\n // which: 1 2 3\n // button: 0 1 2 (standard)\n var button = event.button;\n if ('which' in event) {\n return button;\n }\n // IE<9\n // which: undefined\n // button: 0 0 0\n // button: 1 4 2 (onmouseup)\n return button === 2 ? 2 : button === 4 ? 1 : 0;\n },\n buttons: null,\n relatedTarget: function relatedTarget(event) {\n return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n },\n // \"Proprietary\" Interface.\n pageX: function pageX(event) {\n return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;\n },\n pageY: function pageY(event) {\n return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);\n\nmodule.exports = SyntheticMouseEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljTW91c2VFdmVudC5qcz83OTNjIl0sIm5hbWVzIjpbIlN5bnRoZXRpY1VJRXZlbnQiLCJyZXF1aXJlIiwiVmlld3BvcnRNZXRyaWNzIiwiZ2V0RXZlbnRNb2RpZmllclN0YXRlIiwiTW91c2VFdmVudEludGVyZmFjZSIsInNjcmVlblgiLCJzY3JlZW5ZIiwiY2xpZW50WCIsImNsaWVudFkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsImJ1dHRvbiIsImV2ZW50IiwiYnV0dG9ucyIsInJlbGF0ZWRUYXJnZXQiLCJmcm9tRWxlbWVudCIsInNyY0VsZW1lbnQiLCJ0b0VsZW1lbnQiLCJwYWdlWCIsImN1cnJlbnRTY3JvbGxMZWZ0IiwicGFnZVkiLCJjdXJyZW50U2Nyb2xsVG9wIiwiU3ludGhldGljTW91c2VFdmVudCIsImRpc3BhdGNoQ29uZmlnIiwiZGlzcGF0Y2hNYXJrZXIiLCJuYXRpdmVFdmVudCIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwiY2FsbCIsImF1Z21lbnRDbGFzcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxtQkFBbUIsbUJBQUFDLENBQVEsRUFBUixDQUF2QjtBQUNBLElBQUlDLGtCQUFrQixtQkFBQUQsQ0FBUSxFQUFSLENBQXRCOztBQUVBLElBQUlFLHdCQUF3QixtQkFBQUYsQ0FBUSxFQUFSLENBQTVCOztBQUVBOzs7O0FBSUEsSUFBSUcsc0JBQXNCO0FBQ3hCQyxXQUFTLElBRGU7QUFFeEJDLFdBQVMsSUFGZTtBQUd4QkMsV0FBUyxJQUhlO0FBSXhCQyxXQUFTLElBSmU7QUFLeEJDLFdBQVMsSUFMZTtBQU14QkMsWUFBVSxJQU5jO0FBT3hCQyxVQUFRLElBUGdCO0FBUXhCQyxXQUFTLElBUmU7QUFTeEJDLG9CQUFrQlYscUJBVE07QUFVeEJXLFVBQVEsZ0JBQVVDLEtBQVYsRUFBaUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsUUFBSUQsU0FBU0MsTUFBTUQsTUFBbkI7QUFDQSxRQUFJLFdBQVdDLEtBQWYsRUFBc0I7QUFDcEIsYUFBT0QsTUFBUDtBQUNEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFPQSxXQUFXLENBQVgsR0FBZSxDQUFmLEdBQW1CQSxXQUFXLENBQVgsR0FBZSxDQUFmLEdBQW1CLENBQTdDO0FBQ0QsR0F2QnVCO0FBd0J4QkUsV0FBUyxJQXhCZTtBQXlCeEJDLGlCQUFlLHVCQUFVRixLQUFWLEVBQWlCO0FBQzlCLFdBQU9BLE1BQU1FLGFBQU4sS0FBd0JGLE1BQU1HLFdBQU4sS0FBc0JILE1BQU1JLFVBQTVCLEdBQXlDSixNQUFNSyxTQUEvQyxHQUEyREwsTUFBTUcsV0FBekYsQ0FBUDtBQUNELEdBM0J1QjtBQTRCeEI7QUFDQUcsU0FBTyxlQUFVTixLQUFWLEVBQWlCO0FBQ3RCLFdBQU8sV0FBV0EsS0FBWCxHQUFtQkEsTUFBTU0sS0FBekIsR0FBaUNOLE1BQU1SLE9BQU4sR0FBZ0JMLGdCQUFnQm9CLGlCQUF4RTtBQUNELEdBL0J1QjtBQWdDeEJDLFNBQU8sZUFBVVIsS0FBVixFQUFpQjtBQUN0QixXQUFPLFdBQVdBLEtBQVgsR0FBbUJBLE1BQU1RLEtBQXpCLEdBQWlDUixNQUFNUCxPQUFOLEdBQWdCTixnQkFBZ0JzQixnQkFBeEU7QUFDRDtBQWxDdUIsQ0FBMUI7O0FBcUNBOzs7Ozs7QUFNQSxTQUFTQyxtQkFBVCxDQUE2QkMsY0FBN0IsRUFBNkNDLGNBQTdDLEVBQTZEQyxXQUE3RCxFQUEwRUMsaUJBQTFFLEVBQTZGO0FBQzNGN0IsbUJBQWlCOEIsSUFBakIsQ0FBc0IsSUFBdEIsRUFBNEJKLGNBQTVCLEVBQTRDQyxjQUE1QyxFQUE0REMsV0FBNUQsRUFBeUVDLGlCQUF6RTtBQUNEOztBQUVEN0IsaUJBQWlCK0IsWUFBakIsQ0FBOEJOLG1CQUE5QixFQUFtRHJCLG1CQUFuRDs7QUFFQTRCLE9BQU9DLE9BQVAsR0FBaUJSLG1CQUFqQiIsImZpbGUiOiI4Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBTeW50aGV0aWNNb3VzZUV2ZW50XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY1VJRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1VJRXZlbnQnKTtcbnZhciBWaWV3cG9ydE1ldHJpY3MgPSByZXF1aXJlKCcuL1ZpZXdwb3J0TWV0cmljcycpO1xuXG52YXIgZ2V0RXZlbnRNb2RpZmllclN0YXRlID0gcmVxdWlyZSgnLi9nZXRFdmVudE1vZGlmaWVyU3RhdGUnKTtcblxuLyoqXG4gKiBAaW50ZXJmYWNlIE1vdXNlRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG52YXIgTW91c2VFdmVudEludGVyZmFjZSA9IHtcbiAgc2NyZWVuWDogbnVsbCxcbiAgc2NyZWVuWTogbnVsbCxcbiAgY2xpZW50WDogbnVsbCxcbiAgY2xpZW50WTogbnVsbCxcbiAgY3RybEtleTogbnVsbCxcbiAgc2hpZnRLZXk6IG51bGwsXG4gIGFsdEtleTogbnVsbCxcbiAgbWV0YUtleTogbnVsbCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICBidXR0b246IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIFdlYmtpdCwgRmlyZWZveCwgSUU5K1xuICAgIC8vIHdoaWNoOiAgMSAyIDNcbiAgICAvLyBidXR0b246IDAgMSAyIChzdGFuZGFyZClcbiAgICB2YXIgYnV0dG9uID0gZXZlbnQuYnV0dG9uO1xuICAgIGlmICgnd2hpY2gnIGluIGV2ZW50KSB7XG4gICAgICByZXR1cm4gYnV0dG9uO1xuICAgIH1cbiAgICAvLyBJRTw5XG4gICAgLy8gd2hpY2g6ICB1bmRlZmluZWRcbiAgICAvLyBidXR0b246IDAgMCAwXG4gICAgLy8gYnV0dG9uOiAxIDQgMiAob25tb3VzZXVwKVxuICAgIHJldHVybiBidXR0b24gPT09IDIgPyAyIDogYnV0dG9uID09PSA0ID8gMSA6IDA7XG4gIH0sXG4gIGJ1dHRvbnM6IG51bGwsXG4gIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiBldmVudC5yZWxhdGVkVGFyZ2V0IHx8IChldmVudC5mcm9tRWxlbWVudCA9PT0gZXZlbnQuc3JjRWxlbWVudCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50KTtcbiAgfSxcbiAgLy8gXCJQcm9wcmlldGFyeVwiIEludGVyZmFjZS5cbiAgcGFnZVg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAncGFnZVgnIGluIGV2ZW50ID8gZXZlbnQucGFnZVggOiBldmVudC5jbGllbnRYICsgVmlld3BvcnRNZXRyaWNzLmN1cnJlbnRTY3JvbGxMZWZ0O1xuICB9LFxuICBwYWdlWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdwYWdlWScgaW4gZXZlbnQgPyBldmVudC5wYWdlWSA6IGV2ZW50LmNsaWVudFkgKyBWaWV3cG9ydE1ldHJpY3MuY3VycmVudFNjcm9sbFRvcDtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljVUlFdmVudH1cbiAqL1xuZnVuY3Rpb24gU3ludGhldGljTW91c2VFdmVudChkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICBTeW50aGV0aWNVSUV2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNVSUV2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNNb3VzZUV2ZW50LCBNb3VzZUV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNNb3VzZUV2ZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9TeW50aGV0aWNNb3VzZUV2ZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 87 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticUIEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = __webpack_require__(77);\n\nvar getEventTarget = __webpack_require__(81);\n\n/**\n * @interface UIEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar UIEventInterface = {\n view: function view(event) {\n if (event.view) {\n return event.view;\n }\n\n var target = getEventTarget(event);\n if (target != null && target.window === target) {\n // target is a window object\n return target;\n }\n\n var doc = target.ownerDocument;\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n if (doc) {\n return doc.defaultView || doc.parentWindow;\n } else {\n return window;\n }\n },\n detail: function detail(event) {\n return event.detail || 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticEvent}\n */\nfunction SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);\n\nmodule.exports = SyntheticUIEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljVUlFdmVudC5qcz9kMWU3Il0sIm5hbWVzIjpbIlN5bnRoZXRpY0V2ZW50IiwicmVxdWlyZSIsImdldEV2ZW50VGFyZ2V0IiwiVUlFdmVudEludGVyZmFjZSIsInZpZXciLCJldmVudCIsInRhcmdldCIsIndpbmRvdyIsImRvYyIsIm93bmVyRG9jdW1lbnQiLCJkZWZhdWx0VmlldyIsInBhcmVudFdpbmRvdyIsImRldGFpbCIsIlN5bnRoZXRpY1VJRXZlbnQiLCJkaXNwYXRjaENvbmZpZyIsImRpc3BhdGNoTWFya2VyIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsImNhbGwiLCJhdWdtZW50Q2xhc3MiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBckI7O0FBRUEsSUFBSUMsaUJBQWlCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBckI7O0FBRUE7Ozs7QUFJQSxJQUFJRSxtQkFBbUI7QUFDckJDLFFBQU0sY0FBVUMsS0FBVixFQUFpQjtBQUNyQixRQUFJQSxNQUFNRCxJQUFWLEVBQWdCO0FBQ2QsYUFBT0MsTUFBTUQsSUFBYjtBQUNEOztBQUVELFFBQUlFLFNBQVNKLGVBQWVHLEtBQWYsQ0FBYjtBQUNBLFFBQUlDLFVBQVUsSUFBVixJQUFrQkEsT0FBT0MsTUFBUCxLQUFrQkQsTUFBeEMsRUFBZ0Q7QUFDOUM7QUFDQSxhQUFPQSxNQUFQO0FBQ0Q7O0FBRUQsUUFBSUUsTUFBTUYsT0FBT0csYUFBakI7QUFDQTtBQUNBLFFBQUlELEdBQUosRUFBUztBQUNQLGFBQU9BLElBQUlFLFdBQUosSUFBbUJGLElBQUlHLFlBQTlCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsYUFBT0osTUFBUDtBQUNEO0FBQ0YsR0FuQm9CO0FBb0JyQkssVUFBUSxnQkFBVVAsS0FBVixFQUFpQjtBQUN2QixXQUFPQSxNQUFNTyxNQUFOLElBQWdCLENBQXZCO0FBQ0Q7QUF0Qm9CLENBQXZCOztBQXlCQTs7Ozs7O0FBTUEsU0FBU0MsZ0JBQVQsQ0FBMEJDLGNBQTFCLEVBQTBDQyxjQUExQyxFQUEwREMsV0FBMUQsRUFBdUVDLGlCQUF2RSxFQUEwRjtBQUN4RmpCLGlCQUFla0IsSUFBZixDQUFvQixJQUFwQixFQUEwQkosY0FBMUIsRUFBMENDLGNBQTFDLEVBQTBEQyxXQUExRCxFQUF1RUMsaUJBQXZFO0FBQ0Q7O0FBRURqQixlQUFlbUIsWUFBZixDQUE0Qk4sZ0JBQTVCLEVBQThDVixnQkFBOUM7O0FBRUFpQixPQUFPQyxPQUFQLEdBQWlCUixnQkFBakIiLCJmaWxlIjoiODcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgU3ludGhldGljVUlFdmVudFxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRXZlbnQnKTtcblxudmFyIGdldEV2ZW50VGFyZ2V0ID0gcmVxdWlyZSgnLi9nZXRFdmVudFRhcmdldCcpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgVUlFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cbnZhciBVSUV2ZW50SW50ZXJmYWNlID0ge1xuICB2aWV3OiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudmlldykge1xuICAgICAgcmV0dXJuIGV2ZW50LnZpZXc7XG4gICAgfVxuXG4gICAgdmFyIHRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KGV2ZW50KTtcbiAgICBpZiAodGFyZ2V0ICE9IG51bGwgJiYgdGFyZ2V0LndpbmRvdyA9PT0gdGFyZ2V0KSB7XG4gICAgICAvLyB0YXJnZXQgaXMgYSB3aW5kb3cgb2JqZWN0XG4gICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cblxuICAgIHZhciBkb2MgPSB0YXJnZXQub3duZXJEb2N1bWVudDtcbiAgICAvLyBUT0RPOiBGaWd1cmUgb3V0IHdoeSBgb3duZXJEb2N1bWVudGAgaXMgc29tZXRpbWVzIHVuZGVmaW5lZCBpbiBJRTguXG4gICAgaWYgKGRvYykge1xuICAgICAgcmV0dXJuIGRvYy5kZWZhdWx0VmlldyB8fCBkb2MucGFyZW50V2luZG93O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gd2luZG93O1xuICAgIH1cbiAgfSxcbiAgZGV0YWlsOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gZXZlbnQuZGV0YWlsIHx8IDA7XG4gIH1cbn07XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGRpc3BhdGNoQ29uZmlnIENvbmZpZ3VyYXRpb24gdXNlZCB0byBkaXNwYXRjaCB0aGlzIGV2ZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGRpc3BhdGNoTWFya2VyIE1hcmtlciBpZGVudGlmeWluZyB0aGUgZXZlbnQgdGFyZ2V0LlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICogQGV4dGVuZHMge1N5bnRoZXRpY0V2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNVSUV2ZW50KGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIFN5bnRoZXRpY0V2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljVUlFdmVudCwgVUlFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljVUlFdmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljVUlFdmVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 88 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventModifierState\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nvar modifierKeyToProp = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Meta': 'metaKey',\n 'Shift': 'shiftKey'\n};\n\n// IE8 does not implement getModifierState so we simply map it to the only\n// modifier keys exposed by the event itself, does not support Lock-keys.\n// Currently, all major browsers except Chrome seems to support Lock-keys.\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n\nmodule.exports = getEventModifierState;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0RXZlbnRNb2RpZmllclN0YXRlLmpzP2E4MmYiXSwibmFtZXMiOlsibW9kaWZpZXJLZXlUb1Byb3AiLCJtb2RpZmllclN0YXRlR2V0dGVyIiwia2V5QXJnIiwic3ludGhldGljRXZlbnQiLCJuYXRpdmVFdmVudCIsImdldE1vZGlmaWVyU3RhdGUiLCJrZXlQcm9wIiwiZ2V0RXZlbnRNb2RpZmllclN0YXRlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBOzs7OztBQUtBLElBQUlBLG9CQUFvQjtBQUN0QixTQUFPLFFBRGU7QUFFdEIsYUFBVyxTQUZXO0FBR3RCLFVBQVEsU0FIYztBQUl0QixXQUFTO0FBSmEsQ0FBeEI7O0FBT0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsbUJBQVQsQ0FBNkJDLE1BQTdCLEVBQXFDO0FBQ25DLE1BQUlDLGlCQUFpQixJQUFyQjtBQUNBLE1BQUlDLGNBQWNELGVBQWVDLFdBQWpDO0FBQ0EsTUFBSUEsWUFBWUMsZ0JBQWhCLEVBQWtDO0FBQ2hDLFdBQU9ELFlBQVlDLGdCQUFaLENBQTZCSCxNQUE3QixDQUFQO0FBQ0Q7QUFDRCxNQUFJSSxVQUFVTixrQkFBa0JFLE1BQWxCLENBQWQ7QUFDQSxTQUFPSSxVQUFVLENBQUMsQ0FBQ0YsWUFBWUUsT0FBWixDQUFaLEdBQW1DLEtBQTFDO0FBQ0Q7O0FBRUQsU0FBU0MscUJBQVQsQ0FBK0JILFdBQS9CLEVBQTRDO0FBQzFDLFNBQU9ILG1CQUFQO0FBQ0Q7O0FBRURPLE9BQU9DLE9BQVAsR0FBaUJGLHFCQUFqQiIsImZpbGUiOiI4OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBnZXRFdmVudE1vZGlmaWVyU3RhdGVcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIFRyYW5zbGF0aW9uIGZyb20gbW9kaWZpZXIga2V5IHRvIHRoZSBhc3NvY2lhdGVkIHByb3BlcnR5IGluIHRoZSBldmVudC5cbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzLyNrZXlzLU1vZGlmaWVyc1xuICovXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgJ0FsdCc6ICdhbHRLZXknLFxuICAnQ29udHJvbCc6ICdjdHJsS2V5JyxcbiAgJ01ldGEnOiAnbWV0YUtleScsXG4gICdTaGlmdCc6ICdzaGlmdEtleSdcbn07XG5cbi8vIElFOCBkb2VzIG5vdCBpbXBsZW1lbnQgZ2V0TW9kaWZpZXJTdGF0ZSBzbyB3ZSBzaW1wbHkgbWFwIGl0IHRvIHRoZSBvbmx5XG4vLyBtb2RpZmllciBrZXlzIGV4cG9zZWQgYnkgdGhlIGV2ZW50IGl0c2VsZiwgZG9lcyBub3Qgc3VwcG9ydCBMb2NrLWtleXMuXG4vLyBDdXJyZW50bHksIGFsbCBtYWpvciBicm93c2VycyBleGNlcHQgQ2hyb21lIHNlZW1zIHRvIHN1cHBvcnQgTG9jay1rZXlzLlxuZnVuY3Rpb24gbW9kaWZpZXJTdGF0ZUdldHRlcihrZXlBcmcpIHtcbiAgdmFyIHN5bnRoZXRpY0V2ZW50ID0gdGhpcztcbiAgdmFyIG5hdGl2ZUV2ZW50ID0gc3ludGhldGljRXZlbnQubmF0aXZlRXZlbnQ7XG4gIGlmIChuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmdldE1vZGlmaWVyU3RhdGUoa2V5QXJnKTtcbiAgfVxuICB2YXIga2V5UHJvcCA9IG1vZGlmaWVyS2V5VG9Qcm9wW2tleUFyZ107XG4gIHJldHVybiBrZXlQcm9wID8gISFuYXRpdmVFdmVudFtrZXlQcm9wXSA6IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXRFdmVudE1vZGlmaWVyU3RhdGUobmF0aXZlRXZlbnQpIHtcbiAgcmV0dXJuIG1vZGlmaWVyU3RhdGVHZXR0ZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0RXZlbnRNb2RpZmllclN0YXRlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9nZXRFdmVudE1vZGlmaWVyU3RhdGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 89 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule HTMLDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = __webpack_require__(23);\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\nvar MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;\nvar HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;\nvar HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS;\nvar HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;\nvar HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;\nvar HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;\n\nvar hasSVG;\nif (ExecutionEnvironment.canUseDOM) {\n var implementation = document.implementation;\n hasSVG = implementation && implementation.hasFeature && implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n}\n\nvar HTMLDOMPropertyConfig = {\n isCustomAttribute: RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\\d_.\\-]*$/),\n Properties: {\n /**\n * Standard Properties\n */\n accept: null,\n acceptCharset: null,\n accessKey: null,\n action: null,\n allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n allowTransparency: MUST_USE_ATTRIBUTE,\n alt: null,\n async: HAS_BOOLEAN_VALUE,\n autoComplete: null,\n // autoFocus is polyfilled/normalized by AutoFocusUtils\n // autoFocus: HAS_BOOLEAN_VALUE,\n autoPlay: HAS_BOOLEAN_VALUE,\n capture: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n cellPadding: null,\n cellSpacing: null,\n charSet: MUST_USE_ATTRIBUTE,\n challenge: MUST_USE_ATTRIBUTE,\n checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n classID: MUST_USE_ATTRIBUTE,\n // To set className on SVG elements, it's necessary to use .setAttribute;\n // this works on HTML elements too in all browsers except IE8. Conveniently,\n // IE8 doesn't support SVG and so we can simply use the attribute in\n // browsers that support SVG and the property in browsers that don't,\n // regardless of whether the element is HTML or SVG.\n className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY,\n cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n colSpan: null,\n content: null,\n contentEditable: null,\n contextMenu: MUST_USE_ATTRIBUTE,\n controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n coords: null,\n crossOrigin: null,\n data: null, // For `<object />` acts as `src`.\n dateTime: MUST_USE_ATTRIBUTE,\n 'default': HAS_BOOLEAN_VALUE,\n defer: HAS_BOOLEAN_VALUE,\n dir: null,\n disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n download: HAS_OVERLOADED_BOOLEAN_VALUE,\n draggable: null,\n encType: null,\n form: MUST_USE_ATTRIBUTE,\n formAction: MUST_USE_ATTRIBUTE,\n formEncType: MUST_USE_ATTRIBUTE,\n formMethod: MUST_USE_ATTRIBUTE,\n formNoValidate: HAS_BOOLEAN_VALUE,\n formTarget: MUST_USE_ATTRIBUTE,\n frameBorder: MUST_USE_ATTRIBUTE,\n headers: null,\n height: MUST_USE_ATTRIBUTE,\n hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n high: null,\n href: null,\n hrefLang: null,\n htmlFor: null,\n httpEquiv: null,\n icon: null,\n id: MUST_USE_PROPERTY,\n inputMode: MUST_USE_ATTRIBUTE,\n integrity: null,\n is: MUST_USE_ATTRIBUTE,\n keyParams: MUST_USE_ATTRIBUTE,\n keyType: MUST_USE_ATTRIBUTE,\n kind: null,\n label: null,\n lang: null,\n list: MUST_USE_ATTRIBUTE,\n loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n low: null,\n manifest: MUST_USE_ATTRIBUTE,\n marginHeight: null,\n marginWidth: null,\n max: null,\n maxLength: MUST_USE_ATTRIBUTE,\n media: MUST_USE_ATTRIBUTE,\n mediaGroup: null,\n method: null,\n min: null,\n minLength: MUST_USE_ATTRIBUTE,\n multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n name: null,\n nonce: MUST_USE_ATTRIBUTE,\n noValidate: HAS_BOOLEAN_VALUE,\n open: HAS_BOOLEAN_VALUE,\n optimum: null,\n pattern: null,\n placeholder: null,\n poster: null,\n preload: null,\n radioGroup: null,\n readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n rel: null,\n required: HAS_BOOLEAN_VALUE,\n reversed: HAS_BOOLEAN_VALUE,\n role: MUST_USE_ATTRIBUTE,\n rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n rowSpan: null,\n sandbox: null,\n scope: null,\n scoped: HAS_BOOLEAN_VALUE,\n scrolling: null,\n seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,\n shape: null,\n size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,\n sizes: MUST_USE_ATTRIBUTE,\n span: HAS_POSITIVE_NUMERIC_VALUE,\n spellCheck: null,\n src: null,\n srcDoc: MUST_USE_PROPERTY,\n srcLang: null,\n srcSet: MUST_USE_ATTRIBUTE,\n start: HAS_NUMERIC_VALUE,\n step: null,\n style: null,\n summary: null,\n tabIndex: null,\n target: null,\n title: null,\n type: null,\n useMap: null,\n value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,\n width: MUST_USE_ATTRIBUTE,\n wmode: MUST_USE_ATTRIBUTE,\n wrap: null,\n\n /**\n * RDFa Properties\n */\n about: MUST_USE_ATTRIBUTE,\n datatype: MUST_USE_ATTRIBUTE,\n inlist: MUST_USE_ATTRIBUTE,\n prefix: MUST_USE_ATTRIBUTE,\n // property is also supported for OpenGraph in meta tags.\n property: MUST_USE_ATTRIBUTE,\n resource: MUST_USE_ATTRIBUTE,\n 'typeof': MUST_USE_ATTRIBUTE,\n vocab: MUST_USE_ATTRIBUTE,\n\n /**\n * Non-standard Properties\n */\n // autoCapitalize and autoCorrect are supported in Mobile Safari for\n // keyboard hints.\n autoCapitalize: MUST_USE_ATTRIBUTE,\n autoCorrect: MUST_USE_ATTRIBUTE,\n // autoSave allows WebKit/Blink to persist values of input fields on page reloads\n autoSave: null,\n // color is for Safari mask-icon link\n color: null,\n // itemProp, itemScope, itemType are for\n // Microdata support. See http://schema.org/docs/gs.html\n itemProp: MUST_USE_ATTRIBUTE,\n itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,\n itemType: MUST_USE_ATTRIBUTE,\n // itemID and itemRef are for Microdata support as well but\n // only specified in the the WHATWG spec document. See\n // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api\n itemID: MUST_USE_ATTRIBUTE,\n itemRef: MUST_USE_ATTRIBUTE,\n // results show looking glass icon and recent searches on input\n // search fields in WebKit/Blink\n results: null,\n // IE-only attribute that specifies security restrictions on an iframe\n // as an alternative to the sandbox attribute on IE<10\n security: MUST_USE_ATTRIBUTE,\n // IE-only attribute that controls focus behavior\n unselectable: MUST_USE_ATTRIBUTE\n },\n DOMAttributeNames: {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv'\n },\n DOMPropertyNames: {\n autoComplete: 'autocomplete',\n autoFocus: 'autofocus',\n autoPlay: 'autoplay',\n autoSave: 'autosave',\n // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter.\n // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding\n encType: 'encoding',\n hrefLang: 'hreflang',\n radioGroup: 'radiogroup',\n spellCheck: 'spellcheck',\n srcDoc: 'srcdoc',\n srcSet: 'srcset'\n }\n};\n\nmodule.exports = HTMLDOMPropertyConfig;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvSFRNTERPTVByb3BlcnR5Q29uZmlnLmpzPzgwYTUiXSwibmFtZXMiOlsiRE9NUHJvcGVydHkiLCJyZXF1aXJlIiwiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCJNVVNUX1VTRV9BVFRSSUJVVEUiLCJpbmplY3Rpb24iLCJNVVNUX1VTRV9QUk9QRVJUWSIsIkhBU19CT09MRUFOX1ZBTFVFIiwiSEFTX1NJREVfRUZGRUNUUyIsIkhBU19OVU1FUklDX1ZBTFVFIiwiSEFTX1BPU0lUSVZFX05VTUVSSUNfVkFMVUUiLCJIQVNfT1ZFUkxPQURFRF9CT09MRUFOX1ZBTFVFIiwiaGFzU1ZHIiwiY2FuVXNlRE9NIiwiaW1wbGVtZW50YXRpb24iLCJkb2N1bWVudCIsImhhc0ZlYXR1cmUiLCJIVE1MRE9NUHJvcGVydHlDb25maWciLCJpc0N1c3RvbUF0dHJpYnV0ZSIsIlJlZ0V4cCIsInByb3RvdHlwZSIsInRlc3QiLCJiaW5kIiwiUHJvcGVydGllcyIsImFjY2VwdCIsImFjY2VwdENoYXJzZXQiLCJhY2Nlc3NLZXkiLCJhY3Rpb24iLCJhbGxvd0Z1bGxTY3JlZW4iLCJhbGxvd1RyYW5zcGFyZW5jeSIsImFsdCIsImFzeW5jIiwiYXV0b0NvbXBsZXRlIiwiYXV0b1BsYXkiLCJjYXB0dXJlIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYXJTZXQiLCJjaGFsbGVuZ2UiLCJjaGVja2VkIiwiY2xhc3NJRCIsImNsYXNzTmFtZSIsImNvbHMiLCJjb2xTcGFuIiwiY29udGVudCIsImNvbnRlbnRFZGl0YWJsZSIsImNvbnRleHRNZW51IiwiY29udHJvbHMiLCJjb29yZHMiLCJjcm9zc09yaWdpbiIsImRhdGEiLCJkYXRlVGltZSIsImRlZmVyIiwiZGlyIiwiZGlzYWJsZWQiLCJkb3dubG9hZCIsImRyYWdnYWJsZSIsImVuY1R5cGUiLCJmb3JtIiwiZm9ybUFjdGlvbiIsImZvcm1FbmNUeXBlIiwiZm9ybU1ldGhvZCIsImZvcm1Ob1ZhbGlkYXRlIiwiZm9ybVRhcmdldCIsImZyYW1lQm9yZGVyIiwiaGVhZGVycyIsImhlaWdodCIsImhpZGRlbiIsImhpZ2giLCJocmVmIiwiaHJlZkxhbmciLCJodG1sRm9yIiwiaHR0cEVxdWl2IiwiaWNvbiIsImlkIiwiaW5wdXRNb2RlIiwiaW50ZWdyaXR5IiwiaXMiLCJrZXlQYXJhbXMiLCJrZXlUeXBlIiwia2luZCIsImxhYmVsIiwibGFuZyIsImxpc3QiLCJsb29wIiwibG93IiwibWFuaWZlc3QiLCJtYXJnaW5IZWlnaHQiLCJtYXJnaW5XaWR0aCIsIm1heCIsIm1heExlbmd0aCIsIm1lZGlhIiwibWVkaWFHcm91cCIsIm1ldGhvZCIsIm1pbiIsIm1pbkxlbmd0aCIsIm11bHRpcGxlIiwibXV0ZWQiLCJuYW1lIiwibm9uY2UiLCJub1ZhbGlkYXRlIiwib3BlbiIsIm9wdGltdW0iLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJwb3N0ZXIiLCJwcmVsb2FkIiwicmFkaW9Hcm91cCIsInJlYWRPbmx5IiwicmVsIiwicmVxdWlyZWQiLCJyZXZlcnNlZCIsInJvbGUiLCJyb3dzIiwicm93U3BhbiIsInNhbmRib3giLCJzY29wZSIsInNjb3BlZCIsInNjcm9sbGluZyIsInNlYW1sZXNzIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemUiLCJzaXplcyIsInNwYW4iLCJzcGVsbENoZWNrIiwic3JjIiwic3JjRG9jIiwic3JjTGFuZyIsInNyY1NldCIsInN0YXJ0Iiwic3RlcCIsInN0eWxlIiwic3VtbWFyeSIsInRhYkluZGV4IiwidGFyZ2V0IiwidGl0bGUiLCJ0eXBlIiwidXNlTWFwIiwidmFsdWUiLCJ3aWR0aCIsIndtb2RlIiwid3JhcCIsImFib3V0IiwiZGF0YXR5cGUiLCJpbmxpc3QiLCJwcmVmaXgiLCJwcm9wZXJ0eSIsInJlc291cmNlIiwidm9jYWIiLCJhdXRvQ2FwaXRhbGl6ZSIsImF1dG9Db3JyZWN0IiwiYXV0b1NhdmUiLCJjb2xvciIsIml0ZW1Qcm9wIiwiaXRlbVNjb3BlIiwiaXRlbVR5cGUiLCJpdGVtSUQiLCJpdGVtUmVmIiwicmVzdWx0cyIsInNlY3VyaXR5IiwidW5zZWxlY3RhYmxlIiwiRE9NQXR0cmlidXRlTmFtZXMiLCJET01Qcm9wZXJ0eU5hbWVzIiwiYXV0b0ZvY3VzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsY0FBYyxtQkFBQUMsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUMsdUJBQXVCLG1CQUFBRCxDQUFRLENBQVIsQ0FBM0I7O0FBRUEsSUFBSUUscUJBQXFCSCxZQUFZSSxTQUFaLENBQXNCRCxrQkFBL0M7QUFDQSxJQUFJRSxvQkFBb0JMLFlBQVlJLFNBQVosQ0FBc0JDLGlCQUE5QztBQUNBLElBQUlDLG9CQUFvQk4sWUFBWUksU0FBWixDQUFzQkUsaUJBQTlDO0FBQ0EsSUFBSUMsbUJBQW1CUCxZQUFZSSxTQUFaLENBQXNCRyxnQkFBN0M7QUFDQSxJQUFJQyxvQkFBb0JSLFlBQVlJLFNBQVosQ0FBc0JJLGlCQUE5QztBQUNBLElBQUlDLDZCQUE2QlQsWUFBWUksU0FBWixDQUFzQkssMEJBQXZEO0FBQ0EsSUFBSUMsK0JBQStCVixZQUFZSSxTQUFaLENBQXNCTSw0QkFBekQ7O0FBRUEsSUFBSUMsTUFBSjtBQUNBLElBQUlULHFCQUFxQlUsU0FBekIsRUFBb0M7QUFDbEMsTUFBSUMsaUJBQWlCQyxTQUFTRCxjQUE5QjtBQUNBRixXQUFTRSxrQkFBa0JBLGVBQWVFLFVBQWpDLElBQStDRixlQUFlRSxVQUFmLENBQTBCLG1EQUExQixFQUErRSxLQUEvRSxDQUF4RDtBQUNEOztBQUVELElBQUlDLHdCQUF3QjtBQUMxQkMscUJBQW1CQyxPQUFPQyxTQUFQLENBQWlCQyxJQUFqQixDQUFzQkMsSUFBdEIsQ0FBMkIsa0NBQTNCLENBRE87QUFFMUJDLGNBQVk7QUFDVjs7O0FBR0FDLFlBQVEsSUFKRTtBQUtWQyxtQkFB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SUE7QUE2SVZnSixjQUFVaEosa0JBN0lBO0FBOElWLGNBQVVBLGtCQTlJQTtBQStJVmlKLFdBQU9qSixrQkEvSUc7O0FBaUpWOzs7QUFHQTtBQUNBO0FBQ0FrSixvQkFBZ0JsSixrQkF0Sk47QUF1SlZtSixpQkFBYW5KLGtCQXZKSDtBQXdKVjtBQUNBb0osY0FBVSxJQXpKQTtBQTBKVjtBQUNBQyxXQUFPLElBM0pHO0FBNEpWO0FBQ0E7QUFDQUMsY0FBVXRKLGtCQTlKQTtBQStKVnVKLGVBQVd2SixxQkFBcUJHLGlCQS9KdEI7QUFnS1ZxSixjQUFVeEosa0JBaEtBO0FBaUtWO0FBQ0E7QUFDQTtBQUNBeUosWUFBUXpKLGtCQXBLRTtBQXFLVjBKLGFBQVMxSixrQkFyS0M7QUFzS1Y7QUFDQTtBQUNBMkosYUFBUyxJQXhLQztBQXlLVjtBQUNBO0FBQ0FDLGNBQVU1SixrQkEzS0E7QUE0S1Y7QUFDQTZKLGtCQUFjN0o7QUE3S0osR0FGYztBQWlMMUI4SixxQkFBbUI7QUFDakJ6SSxtQkFBZSxnQkFERTtBQUVqQmdCLGVBQVcsT0FGTTtBQUdqQjhCLGFBQVMsS0FIUTtBQUlqQkMsZUFBVztBQUpNLEdBakxPO0FBdUwxQjJGLG9CQUFrQjtBQUNoQm5JLGtCQUFjLGNBREU7QUFFaEJvSSxlQUFXLFdBRks7QUFHaEJuSSxjQUFVLFVBSE07QUFJaEJ1SCxjQUFVLFVBSk07QUFLaEI7QUFDQTtBQUNBL0YsYUFBUyxVQVBPO0FBUWhCYSxjQUFVLFVBUk07QUFTaEJxQyxnQkFBWSxZQVRJO0FBVWhCa0IsZ0JBQVksWUFWSTtBQVdoQkUsWUFBUSxRQVhRO0FBWWhCRSxZQUFRO0FBWlE7QUF2TFEsQ0FBNUI7O0FBdU1Bb0MsT0FBT0MsT0FBUCxHQUFpQnJKLHFCQUFqQiIsImZpbGUiOiI4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBIVE1MRE9NUHJvcGVydHlDb25maWdcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG5cbnZhciBNVVNUX1VTRV9BVFRSSUJVVEUgPSBET01Qcm9wZXJ0eS5pbmplY3Rpb24uTVVTVF9VU0VfQVRUUklCVVRFO1xudmFyIE1VU1RfVVNFX1BST1BFUlRZID0gRE9NUHJvcGVydHkuaW5qZWN0aW9uLk1VU1RfVVNFX1BST1BFUlRZO1xudmFyIEhBU19CT09MRUFOX1ZBTFVFID0gRE9NUHJvcGVydHkuaW5qZWN0aW9uLkhBU19CT09MRUFOX1ZBTFVFO1xudmFyIEhBU19TSURFX0VGRkVDVFMgPSBET01Qcm9wZXJ0eS5pbmplY3Rpb24uSEFTX1NJREVfRUZGRUNUUztcbnZhciBIQVNfTlVNRVJJQ19WQUxVRSA9IERPTVByb3BlcnR5LmluamVjdGlvbi5IQVNfTlVNRVJJQ19WQUxVRTtcbnZhciBIQVNfUE9TSVRJVkVfTlVNRVJJQ19WQUxVRSA9IERPTVByb3BlcnR5LmluamVjdGlvbi5IQVNfUE9TSVRJVkVfTlVNRVJJQ19WQUxVRTtcbnZhciBIQVNfT1ZFUkxPQURFRF9CT09MRUFOX1ZBTFVFID0gRE9NUHJvcGVydHkuaW5qZWN0aW9uLkhBU19PVkVSTE9BREVEX0JPT0xFQU5fVkFMVUU7XG5cbnZhciBoYXNTVkc7XG5pZiAoRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NKSB7XG4gIHZhciBpbXBsZW1lbnRhdGlvbiA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uO1xuICBoYXNTVkcgPSBpbXBsZW1lbnRhdGlvbiAmJiBpbXBsZW1lbnRhdGlvbi5oYXNGZWF0dXJlICYmIGltcGxlbWVudGF0aW9uLmhhc0ZlYXR1cmUoJ2h0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjQmFzaWNTdHJ1Y3R1cmUnLCAnMS4xJyk7XG59XG5cbnZhciBIVE1MRE9NUHJvcGVydHlDb25maWcgPSB7XG4gIGlzQ3VzdG9tQXR0cmlidXRlOiBSZWdFeHAucHJvdG90eXBlLnRlc3QuYmluZCgvXihkYXRhfGFyaWEpLVthLXpfXVthLXpcXGRfLlxcLV0qJC8pLFxuICBQcm9wZXJ0aWVzOiB7XG4gICAgLyoqXG4gICAgICogU3RhbmRhcmQgUHJvcGVydGllc1xuICAgICAqL1xuICAgIGFjY2VwdDogbnVsbCxcbiAgICBhY2NlcHRDaGFyc2V0OiBudWxsLFxuICAgIGFjY2Vzc0tleTogbnVsbCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBNVVNUX1VTRV9BVFRSSUJVVEUgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBhbGxvd1RyYW5zcGFyZW5jeTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGFsdDogbnVsbCxcbiAgICBhc3luYzogSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgYXV0b0NvbXBsZXRlOiBudWxsLFxuICAgIC8vIGF1dG9Gb2N1cyBpcyBwb2x5ZmlsbGVkL25vcm1hbGl6ZWQgYnkgQXV0b0ZvY3VzVXRpbHNcbiAgICAvLyBhdXRvRm9jdXM6IEhBU19CT09MRUFOX1ZBTFVFLFxuICAgIGF1dG9QbGF5OiBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBjYXB0dXJlOiBNVVNUX1VTRV9BVFRSSUJVVEUgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBjZWxsUGFkZGluZzogbnVsbCxcbiAgICBjZWxsU3BhY2luZzogbnVsbCxcbiAgICBjaGFyU2V0OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgY2hhbGxlbmdlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgY2hlY2tlZDogTVVTVF9VU0VfUFJPUEVSVFkgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBjbGFzc0lEOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgLy8gVG8gc2V0IGNsYXNzTmFtZSBvbiBTVkcgZWxlbWVudHMsIGl0J3MgbmVjZXNzYXJ5IHRvIHVzZSAuc2V0QXR0cmlidXRlO1xuICAgIC8vIHRoaXMgd29ya3Mgb24gSFRNTCBlbGVtZW50cyB0b28gaW4gYWxsIGJyb3dzZXJzIGV4Y2VwdCBJRTguIENvbnZlbmllbnRseSxcbiAgICAvLyBJRTggZG9lc24ndCBzdXBwb3J0IFNWRyBhbmQgc28gd2UgY2FuIHNpbXBseSB1c2UgdGhlIGF0dHJpYnV0ZSBpblxuICAgIC8vIGJyb3dzZXJzIHRoYXQgc3VwcG9ydCBTVkcgYW5kIHRoZSBwcm9wZXJ0eSBpbiBicm93c2VycyB0aGF0IGRvbid0LFxuICAgIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZWxlbWVudCBpcyBIVE1MIG9yIFNWRy5cbiAgICBjbGFzc05hbWU6IGhhc1NWRyA/IE1VU1RfVVNFX0FUVFJJQlVURSA6IE1VU1RfVVNFX1BST1BFUlRZLFxuICAgIGNvbHM6IE1VU1RfVVNFX0FUVFJJQlVURSB8IEhBU19QT1NJVElWRV9OVU1FUklDX1ZBTFVFLFxuICAgIGNvbFNwYW46IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBjb250ZW50RWRpdGFibGU6IG51bGwsXG4gICAgY29udGV4dE1lbnU6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBjb250cm9sczogTVVTVF9VU0VfUFJPUEVSVFkgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBjb29yZHM6IG51bGwsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgZGF0YTogbnVsbCwgLy8gRm9yIGA8b2JqZWN0IC8+YCBhY3RzIGFzIGBzcmNgLlxuICAgIGRhdGVUaW1lOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgJ2RlZmF1bHQnOiBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBkZWZlcjogSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgZGlyOiBudWxsLFxuICAgIGRpc2FibGVkOiBNVVNUX1VTRV9BVFRSSUJVVEUgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBkb3dubG9hZDogSEFTX09WRVJMT0FERURfQk9PTEVBTl9WQUxVRSxcbiAgICBkcmFnZ2FibGU6IG51bGwsXG4gICAgZW5jVHlwZTogbnVsbCxcbiAgICBmb3JtOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgZm9ybUFjdGlvbjogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGZvcm1FbmNUeXBlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgZm9ybU1ldGhvZDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGZvcm1Ob1ZhbGlkYXRlOiBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBmb3JtVGFyZ2V0OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgZnJhbWVCb3JkZXI6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBoZWFkZXJzOiBudWxsLFxuICAgIGhlaWdodDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGhpZGRlbjogTVVTVF9VU0VfQVRUUklCVVRFIHwgSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgaGlnaDogbnVsbCxcbiAgICBocmVmOiBudWxsLFxuICAgIGhyZWZMYW5nOiBudWxsLFxuICAgIGh0bWxGb3I6IG51bGwsXG4gICAgaHR0cEVxdWl2OiBudWxsLFxuICAgIGljb246IG51bGwsXG4gICAgaWQ6IE1VU1RfVVNFX1BST1BFUlRZLFxuICAgIGlucHV0TW9kZTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGludGVncml0eTogbnVsbCxcbiAgICBpczogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGtleVBhcmFtczogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGtleVR5cGU6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBraW5kOiBudWxsLFxuICAgIGxhYmVsOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGlzdDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGxvb3A6IE1VU1RfVVNFX1BST1BFUlRZIHwgSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgbG93OiBudWxsLFxuICAgIG1hbmlmZXN0OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgbWFyZ2luSGVpZ2h0OiBudWxsLFxuICAgIG1hcmdpbldpZHRoOiBudWxsLFxuICAgIG1heDogbnVsbCxcbiAgICBtYXhMZW5ndGg6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBtZWRpYTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIG1lZGlhR3JvdXA6IG51bGwsXG4gICAgbWV0aG9kOiBudWxsLFxuICAgIG1pbjogbnVsbCxcbiAgICBtaW5MZW5ndGg6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBtdWx0aXBsZTogTVVTVF9VU0VfUFJPUEVSVFkgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBtdXRlZDogTVVTVF9VU0VfUFJPUEVSVFkgfCBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICBuYW1lOiBudWxsLFxuICAgIG5vbmNlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgbm9WYWxpZGF0ZTogSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgb3BlbjogSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgb3B0aW11bTogbnVsbCxcbiAgICBwYXR0ZXJuOiBudWxsLFxuICAgIHBsYWNlaG9sZGVyOiBudWxsLFxuICAgIHBvc3RlcjogbnVsbCxcbiAgICBwcmVsb2FkOiBudWxsLFxuICAgIHJhZGlvR3JvdXA6IG51bGwsXG4gICAgcmVhZE9ubHk6IE1VU1RfVVNFX1BST1BFUlRZIHwgSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgcmVsOiBudWxsLFxuICAgIHJlcXVpcmVkOiBIQVNfQk9PTEVBTl9WQUxVRSxcbiAgICByZXZlcnNlZDogSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgcm9sZTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHJvd3M6IE1VU1RfVVNFX0FUVFJJQlVURSB8IEhBU19QT1NJVElWRV9OVU1FUklDX1ZBTFVFLFxuICAgIHJvd1NwYW46IG51bGwsXG4gICAgc2FuZGJveDogbnVsbCxcbiAgICBzY29wZTogbnVsbCxcbiAgICBzY29wZWQ6IEhBU19CT09MRUFOX1ZBTFVFLFxuICAgIHNjcm9sbGluZzogbnVsbCxcbiAgICBzZWFtbGVzczogTVVTVF9VU0VfQVRUUklCVVRFIHwgSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgc2VsZWN0ZWQ6IE1VU1RfVVNFX1BST1BFUlRZIHwgSEFTX0JPT0xFQU5fVkFMVUUsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogTVVTVF9VU0VfQVRUUklCVVRFIHwgSEFTX1BPU0lUSVZFX05VTUVSSUNfVkFMVUUsXG4gICAgc2l6ZXM6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBzcGFuOiBIQVNfUE9TSVRJVkVfTlVNRVJJQ19WQUxVRSxcbiAgICBzcGVsbENoZWNrOiBudWxsLFxuICAgIHNyYzogbnVsbCxcbiAgICBzcmNEb2M6IE1VU1RfVVNFX1BST1BFUlRZLFxuICAgIHNyY0xhbmc6IG51bGwsXG4gICAgc3JjU2V0OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgc3RhcnQ6IEhBU19OVU1FUklDX1ZBTFVFLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgc3VtbWFyeTogbnVsbCxcbiAgICB0YWJJbmRleDogbnVsbCxcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHlwZTogbnVsbCxcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IE1VU1RfVVNFX1BST1BFUlRZIHwgSEFTX1NJREVfRUZGRUNUUyxcbiAgICB3aWR0aDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHdtb2RlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgd3JhcDogbnVsbCxcblxuICAgIC8qKlxuICAgICAqIFJERmEgUHJvcGVydGllc1xuICAgICAqL1xuICAgIGFib3V0OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgZGF0YXR5cGU6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBpbmxpc3Q6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBwcmVmaXg6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICAvLyBwcm9wZXJ0eSBpcyBhbHNvIHN1cHBvcnRlZCBmb3IgT3BlbkdyYXBoIGluIG1ldGEgdGFncy5cbiAgICBwcm9wZXJ0eTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHJlc291cmNlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgJ3R5cGVvZic6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB2b2NhYjogTVVTVF9VU0VfQVRUUklCVVRFLFxuXG4gICAgLyoqXG4gICAgICogTm9uLXN0YW5kYXJkIFByb3BlcnRpZXNcbiAgICAgKi9cbiAgICAvLyBhdXRvQ2FwaXRhbGl6ZSBhbmQgYXV0b0NvcnJlY3QgYXJlIHN1cHBvcnRlZCBpbiBNb2JpbGUgU2FmYXJpIGZvclxuICAgIC8vIGtleWJvYXJkIGhpbnRzLlxuICAgIGF1dG9DYXBpdGFsaXplOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgYXV0b0NvcnJlY3Q6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICAvLyBhdXRvU2F2ZSBhbGxvd3MgV2ViS2l0L0JsaW5rIHRvIHBlcnNpc3QgdmFsdWVzIG9mIGlucHV0IGZpZWxkcyBvbiBwYWdlIHJlbG9hZHNcbiAgICBhdXRvU2F2ZTogbnVsbCxcbiAgICAvLyBjb2xvciBpcyBmb3IgU2FmYXJpIG1hc2staWNvbiBsaW5rXG4gICAgY29sb3I6IG51bGwsXG4gICAgLy8gaXRlbVByb3AsIGl0ZW1TY29wZSwgaXRlbVR5cGUgYXJlIGZvclxuICAgIC8vIE1pY3JvZGF0YSBzdXBwb3J0LiBTZWUgaHR0cDovL3NjaGVtYS5vcmcvZG9jcy9ncy5odG1sXG4gICAgaXRlbVByb3A6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBpdGVtU2NvcGU6IE1VU1RfVVNFX0FUVFJJQlVURSB8IEhBU19CT09MRUFOX1ZBTFVFLFxuICAgIGl0ZW1UeXBlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgLy8gaXRlbUlEIGFuZCBpdGVtUmVmIGFyZSBmb3IgTWljcm9kYXRhIHN1cHBvcnQgYXMgd2VsbCBidXRcbiAgICAvLyBvbmx5IHNwZWNpZmllZCBpbiB0aGUgdGhlIFdIQVRXRyBzcGVjIGRvY3VtZW50LiBTZWVcbiAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9taWNyb2RhdGEuaHRtbCNtaWNyb2RhdGEtZG9tLWFwaVxuICAgIGl0ZW1JRDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGl0ZW1SZWY6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICAvLyByZXN1bHRzIHNob3cgbG9va2luZyBnbGFzcyBpY29uIGFuZCByZWNlbnQgc2VhcmNoZXMgb24gaW5wdXRcbiAgICAvLyBzZWFyY2ggZmllbGRzIGluIFdlYktpdC9CbGlua1xuICAgIHJlc3VsdHM6IG51bGwsXG4gICAgLy8gSUUtb25seSBhdHRyaWJ1dGUgdGhhdCBzcGVjaWZpZXMgc2VjdXJpdHkgcmVzdHJpY3Rpb25zIG9uIGFuIGlmcmFtZVxuICAgIC8vIGFzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBzYW5kYm94IGF0dHJpYnV0ZSBvbiBJRTwxMFxuICAgIHNlY3VyaXR5OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgLy8gSUUtb25seSBhdHRyaWJ1dGUgdGhhdCBjb250cm9scyBmb2N1cyBiZWhhdmlvclxuICAgIHVuc2VsZWN0YWJsZTogTVVTVF9VU0VfQVRUUklCVVRFXG4gIH0sXG4gIERPTUF0dHJpYnV0ZU5hbWVzOiB7XG4gICAgYWNjZXB0Q2hhcnNldDogJ2FjY2VwdC1jaGFyc2V0JyxcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgaHRtbEZvcjogJ2ZvcicsXG4gICAgaHR0cEVxdWl2OiAnaHR0cC1lcXVpdidcbiAgfSxcbiAgRE9NUHJvcGVydHlOYW1lczoge1xuICAgIGF1dG9Db21wbGV0ZTogJ2F1dG9jb21wbGV0ZScsXG4gICAgYXV0b0ZvY3VzOiAnYXV0b2ZvY3VzJyxcbiAgICBhdXRvUGxheTogJ2F1dG9wbGF5JyxcbiAgICBhdXRvU2F2ZTogJ2F1dG9zYXZlJyxcbiAgICAvLyBgZW5jb2RpbmdgIGlzIGVxdWl2YWxlbnQgdG8gYGVuY3R5cGVgLCBJRTggbGFja3MgYW4gYGVuY3R5cGVgIHNldHRlci5cbiAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI2RvbS1mcy1lbmNvZGluZ1xuICAgIGVuY1R5cGU6ICdlbmNvZGluZycsXG4gICAgaHJlZkxhbmc6ICdocmVmbGFuZycsXG4gICAgcmFkaW9Hcm91cDogJ3JhZGlvZ3JvdXAnLFxuICAgIHNwZWxsQ2hlY2s6ICdzcGVsbGNoZWNrJyxcbiAgICBzcmNEb2M6ICdzcmNkb2MnLFxuICAgIHNyY1NldDogJ3NyY3NldCdcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBIVE1MRE9NUHJvcGVydHlDb25maWc7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0hUTUxET01Qcm9wZXJ0eUNvbmZpZy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 90 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactBrowserComponentMixin\n */\n\n'use strict';\n\nvar ReactInstanceMap = __webpack_require__(47);\n\nvar findDOMNode = __webpack_require__(91);\nvar warning = __webpack_require__(25);\n\nvar didWarnKey = '_getDOMNodeDidWarn';\n\nvar ReactBrowserComponentMixin = {\n /**\n * Returns the DOM node rendered by this component.\n *\n * @return {DOMElement} The root node of this component.\n * @final\n * @protected\n */\n getDOMNode: function getDOMNode() {\n process.env.NODE_ENV !== 'production' ? warning(this.constructor[didWarnKey], '%s.getDOMNode(...) is deprecated. Please use ' + 'ReactDOM.findDOMNode(instance) instead.', ReactInstanceMap.get(this).getName() || this.tagName || 'Unknown') : undefined;\n this.constructor[didWarnKey] = true;\n return findDOMNode(this);\n }\n};\n\nmodule.exports = ReactBrowserComponentMixin;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RCcm93c2VyQ29tcG9uZW50TWl4aW4uanM/OWYzZSJdLCJuYW1lcyI6WyJSZWFjdEluc3RhbmNlTWFwIiwicmVxdWlyZSIsImZpbmRET01Ob2RlIiwid2FybmluZyIsImRpZFdhcm5LZXkiLCJSZWFjdEJyb3dzZXJDb21wb25lbnRNaXhpbiIsImdldERPTU5vZGUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zdHJ1Y3RvciIsImdldCIsImdldE5hbWUiLCJ0YWdOYW1lIiwidW5kZWZpbmVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsbUJBQW1CLG1CQUFBQyxDQUFRLEVBQVIsQ0FBdkI7O0FBRUEsSUFBSUMsY0FBYyxtQkFBQUQsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUUsVUFBVSxtQkFBQUYsQ0FBUSxFQUFSLENBQWQ7O0FBRUEsSUFBSUcsYUFBYSxvQkFBakI7O0FBRUEsSUFBSUMsNkJBQTZCO0FBQy9COzs7Ozs7O0FBT0FDLGNBQVksc0JBQVk7QUFDdEJDLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q04sUUFBUSxLQUFLTyxXQUFMLENBQWlCTixVQUFqQixDQUFSLEVBQXNDLGtEQUFrRCx5Q0FBeEYsRUFBbUlKLGlCQUFpQlcsR0FBakIsQ0FBcUIsSUFBckIsRUFBMkJDLE9BQTNCLE1BQXdDLEtBQUtDLE9BQTdDLElBQXdELFNBQTNMLENBQXhDLEdBQWdQQyxTQUFoUDtBQUNBLFNBQUtKLFdBQUwsQ0FBaUJOLFVBQWpCLElBQStCLElBQS9CO0FBQ0EsV0FBT0YsWUFBWSxJQUFaLENBQVA7QUFDRDtBQVo4QixDQUFqQzs7QUFlQWEsT0FBT0MsT0FBUCxHQUFpQlgsMEJBQWpCLEMiLCJmaWxlIjoiOTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RCcm93c2VyQ29tcG9uZW50TWl4aW5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEluc3RhbmNlTWFwID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlTWFwJyk7XG5cbnZhciBmaW5kRE9NTm9kZSA9IHJlcXVpcmUoJy4vZmluZERPTU5vZGUnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgZGlkV2FybktleSA9ICdfZ2V0RE9NTm9kZURpZFdhcm4nO1xuXG52YXIgUmVhY3RCcm93c2VyQ29tcG9uZW50TWl4aW4gPSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBET00gbm9kZSByZW5kZXJlZCBieSB0aGlzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybiB7RE9NRWxlbWVudH0gVGhlIHJvb3Qgbm9kZSBvZiB0aGlzIGNvbXBvbmVudC5cbiAgICogQGZpbmFsXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIGdldERPTU5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyh0aGlzLmNvbnN0cnVjdG9yW2RpZFdhcm5LZXldLCAnJXMuZ2V0RE9NTm9kZSguLi4pIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgJyArICdSZWFjdERPTS5maW5kRE9NTm9kZShpbnN0YW5jZSkgaW5zdGVhZC4nLCBSZWFjdEluc3RhbmNlTWFwLmdldCh0aGlzKS5nZXROYW1lKCkgfHwgdGhpcy50YWdOYW1lIHx8ICdVbmtub3duJykgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5jb25zdHJ1Y3RvcltkaWRXYXJuS2V5XSA9IHRydWU7XG4gICAgcmV0dXJuIGZpbmRET01Ob2RlKHRoaXMpO1xuICB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0QnJvd3NlckNvbXBvbmVudE1peGluO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdEJyb3dzZXJDb21wb25lbnRNaXhpbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 91 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule findDOMNode\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactInstanceMap = __webpack_require__(47);\nvar ReactMount = __webpack_require__(28);\n\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\n/**\n * Returns the DOM node rendered by this element.\n *\n * @param {ReactComponent|DOMElement} componentOrElement\n * @return {?DOMElement} The root node of this element.\n */\nfunction findDOMNode(componentOrElement) {\n if (process.env.NODE_ENV !== 'production') {\n var owner = ReactCurrentOwner.current;\n if (owner !== null) {\n process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing getDOMNode or findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component') : undefined;\n owner._warnedAboutRefsInRender = true;\n }\n }\n if (componentOrElement == null) {\n return null;\n }\n if (componentOrElement.nodeType === 1) {\n return componentOrElement;\n }\n if (ReactInstanceMap.has(componentOrElement)) {\n return ReactMount.getNodeFromInstance(componentOrElement);\n }\n !(componentOrElement.render == null || typeof componentOrElement.render !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : invariant(false) : undefined;\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : invariant(false) : undefined;\n}\n\nmodule.exports = findDOMNode;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZmluZERPTU5vZGUuanM/M2JjMCJdLCJuYW1lcyI6WyJSZWFjdEN1cnJlbnRPd25lciIsInJlcXVpcmUiLCJSZWFjdEluc3RhbmNlTWFwIiwiUmVhY3RNb3VudCIsImludmFyaWFudCIsIndhcm5pbmciLCJmaW5kRE9NTm9kZSIsImNvbXBvbmVudE9yRWxlbWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm93bmVyIiwiY3VycmVudCIsIl93YXJuZWRBYm91dFJlZnNJblJlbmRlciIsImdldE5hbWUiLCJ1bmRlZmluZWQiLCJub2RlVHlwZSIsImhhcyIsImdldE5vZGVGcm9tSW5zdGFuY2UiLCJyZW5kZXIiLCJPYmplY3QiLCJrZXlzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLG9CQUFvQixtQkFBQUMsQ0FBUSxDQUFSLENBQXhCO0FBQ0EsSUFBSUMsbUJBQW1CLG1CQUFBRCxDQUFRLEVBQVIsQ0FBdkI7QUFDQSxJQUFJRSxhQUFhLG1CQUFBRixDQUFRLEVBQVIsQ0FBakI7O0FBRUEsSUFBSUcsWUFBWSxtQkFBQUgsQ0FBUSxFQUFSLENBQWhCO0FBQ0EsSUFBSUksVUFBVSxtQkFBQUosQ0FBUSxFQUFSLENBQWQ7O0FBRUE7Ozs7OztBQU1BLFNBQVNLLFdBQVQsQ0FBcUJDLGtCQUFyQixFQUF5QztBQUN2QyxNQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsUUFBSUMsUUFBUVgsa0JBQWtCWSxPQUE5QjtBQUNBLFFBQUlELFVBQVUsSUFBZCxFQUFvQjtBQUNsQkgsY0FBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDTCxRQUFRTSxNQUFNRSx3QkFBZCxFQUF3QyxvRUFBb0UsbUVBQXBFLEdBQTBJLG9FQUExSSxHQUFpTixpRUFBak4sR0FBcVIsNkJBQTdULEVBQTRWRixNQUFNRyxPQUFOLE1BQW1CLGFBQS9XLENBQXhDLEdBQXdhQyxTQUF4YTtBQUNBSixZQUFNRSx3QkFBTixHQUFpQyxJQUFqQztBQUNEO0FBQ0Y7QUFDRCxNQUFJTixzQkFBc0IsSUFBMUIsRUFBZ0M7QUFDOUIsV0FBTyxJQUFQO0FBQ0Q7QUFDRCxNQUFJQSxtQkFBbUJTLFFBQW5CLEtBQWdDLENBQXBDLEVBQXVDO0FBQ3JDLFdBQU9ULGtCQUFQO0FBQ0Q7QUFDRCxNQUFJTCxpQkFBaUJlLEdBQWpCLENBQXFCVixrQkFBckIsQ0FBSixFQUE4QztBQUM1QyxXQUFPSixXQUFXZSxtQkFBWCxDQUErQlgsa0JBQS9CLENBQVA7QUFDRDtBQUNELElBQUVBLG1CQUFtQlksTUFBbkIsSUFBNkIsSUFBN0IsSUFBcUMsT0FBT1osbUJBQW1CWSxNQUExQixLQUFxQyxVQUE1RSxJQUEwRlgsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDTixVQUFVLEtBQVYsRUFBaUIsbURBQWpCLENBQXhDLEdBQWdIQSxVQUFVLEtBQVYsQ0FBMU0sR0FBNk5XLFNBQTdOO0FBQ0EsVUFBU1AsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDTixVQUFVLEtBQVYsRUFBaUIscUVBQWpCLEVBQXdGZ0IsT0FBT0MsSUFBUCxDQUFZZCxrQkFBWixDQUF4RixDQUF4QyxHQUFtS0gsVUFBVSxLQUFWLENBQTVLLEdBQStMVyxTQUEvTDtBQUNEOztBQUVETyxPQUFPQyxPQUFQLEdBQWlCakIsV0FBakIsQyIsImZpbGUiOiI5MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBmaW5kRE9NTm9kZVxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJy4vUmVhY3RDdXJyZW50T3duZXInKTtcbnZhciBSZWFjdEluc3RhbmNlTWFwID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlTWFwJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBET00gbm9kZSByZW5kZXJlZCBieSB0aGlzIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtSZWFjdENvbXBvbmVudHxET01FbGVtZW50fSBjb21wb25lbnRPckVsZW1lbnRcbiAqIEByZXR1cm4gez9ET01FbGVtZW50fSBUaGUgcm9vdCBub2RlIG9mIHRoaXMgZWxlbWVudC5cbiAqL1xuZnVuY3Rpb24gZmluZERPTU5vZGUoY29tcG9uZW50T3JFbGVtZW50KSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgdmFyIG93bmVyID0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudDtcbiAgICBpZiAob3duZXIgIT09IG51bGwpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKG93bmVyLl93YXJuZWRBYm91dFJlZnNJblJlbmRlciwgJyVzIGlzIGFjY2Vzc2luZyBnZXRET01Ob2RlIG9yIGZpbmRET01Ob2RlIGluc2lkZSBpdHMgcmVuZGVyKCkuICcgKyAncmVuZGVyKCkgc2hvdWxkIGJlIGEgcHVyZSBmdW5jdGlvbiBvZiBwcm9wcyBhbmQgc3RhdGUuIEl0IHNob3VsZCAnICsgJ25ldmVyIGFjY2VzcyBzb21ldGhpbmcgdGhhdCByZXF1aXJlcyBzdGFsZSBkYXRhIGZyb20gdGhlIHByZXZpb3VzICcgKyAncmVuZGVyLCBzdWNoIGFzIHJlZnMuIE1vdmUgdGhpcyBsb2dpYyB0byBjb21wb25lbnREaWRNb3VudCBhbmQgJyArICdjb21wb25lbnREaWRVcGRhdGUgaW5zdGVhZC4nLCBvd25lci5nZXROYW1lKCkgfHwgJ0EgY29tcG9uZW50JykgOiB1bmRlZmluZWQ7XG4gICAgICBvd25lci5fd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBpZiAoY29tcG9uZW50T3JFbGVtZW50ID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBpZiAoY29tcG9uZW50T3JFbGVtZW50Lm5vZGVUeXBlID09PSAxKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudE9yRWxlbWVudDtcbiAgfVxuICBpZiAoUmVhY3RJbnN0YW5jZU1hcC5oYXMoY29tcG9uZW50T3JFbGVtZW50KSkge1xuICAgIHJldHVybiBSZWFjdE1vdW50LmdldE5vZGVGcm9tSW5zdGFuY2UoY29tcG9uZW50T3JFbGVtZW50KTtcbiAgfVxuICAhKGNvbXBvbmVudE9yRWxlbWVudC5yZW5kZXIgPT0gbnVsbCB8fCB0eXBlb2YgY29tcG9uZW50T3JFbGVtZW50LnJlbmRlciAhPT0gJ2Z1bmN0aW9uJykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnZmluZERPTU5vZGUgd2FzIGNhbGxlZCBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0VsZW1lbnQgYXBwZWFycyB0byBiZSBuZWl0aGVyIFJlYWN0Q29tcG9uZW50IG5vciBET01Ob2RlIChrZXlzOiAlcyknLCBPYmplY3Qua2V5cyhjb21wb25lbnRPckVsZW1lbnQpKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZmluZERPTU5vZGU7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL2ZpbmRET01Ob2RlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 92 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultBatchingStrategy\n */\n\n'use strict';\n\nvar ReactUpdates = __webpack_require__(54);\nvar Transaction = __webpack_require__(57);\n\nvar assign = __webpack_require__(39);\nvar emptyFunction = __webpack_require__(15);\n\nvar RESET_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: function close() {\n ReactDefaultBatchingStrategy.isBatchingUpdates = false;\n }\n};\n\nvar FLUSH_BATCHED_UPDATES = {\n initialize: emptyFunction,\n close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)\n};\n\nvar TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];\n\nfunction ReactDefaultBatchingStrategyTransaction() {\n this.reinitializeTransaction();\n}\n\nassign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction.Mixin, {\n getTransactionWrappers: function getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n }\n});\n\nvar transaction = new ReactDefaultBatchingStrategyTransaction();\n\nvar ReactDefaultBatchingStrategy = {\n isBatchingUpdates: false,\n\n /**\n * Call the provided function in a context within which calls to `setState`\n * and friends are batched such that components aren't updated unnecessarily.\n */\n batchedUpdates: function batchedUpdates(callback, a, b, c, d, e) {\n var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;\n\n ReactDefaultBatchingStrategy.isBatchingUpdates = true;\n\n // The code is written this way to avoid extra allocations\n if (alreadyBatchingUpdates) {\n callback(a, b, c, d, e);\n } else {\n transaction.perform(callback, null, a, b, c, d, e);\n }\n }\n};\n\nmodule.exports = ReactDefaultBatchingStrategy;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneS5qcz8yYmIxIl0sIm5hbWVzIjpbIlJlYWN0VXBkYXRlcyIsInJlcXVpcmUiLCJUcmFuc2FjdGlvbiIsImFzc2lnbiIsImVtcHR5RnVuY3Rpb24iLCJSRVNFVF9CQVRDSEVEX1VQREFURVMiLCJpbml0aWFsaXplIiwiY2xvc2UiLCJSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5IiwiaXNCYXRjaGluZ1VwZGF0ZXMiLCJGTFVTSF9CQVRDSEVEX1VQREFURVMiLCJmbHVzaEJhdGNoZWRVcGRhdGVzIiwiYmluZCIsIlRSQU5TQUNUSU9OX1dSQVBQRVJTIiwiUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneVRyYW5zYWN0aW9uIiwicmVpbml0aWFsaXplVHJhbnNhY3Rpb24iLCJwcm90b3R5cGUiLCJNaXhpbiIsImdldFRyYW5zYWN0aW9uV3JhcHBlcnMiLCJ0cmFuc2FjdGlvbiIsImJhdGNoZWRVcGRhdGVzIiwiY2FsbGJhY2siLCJhIiwiYiIsImMiLCJkIiwiZSIsImFscmVhZHlCYXRjaGluZ1VwZGF0ZXMiLCJwZXJmb3JtIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsZUFBZSxtQkFBQUMsQ0FBUSxFQUFSLENBQW5CO0FBQ0EsSUFBSUMsY0FBYyxtQkFBQUQsQ0FBUSxFQUFSLENBQWxCOztBQUVBLElBQUlFLFNBQVMsbUJBQUFGLENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUcsZ0JBQWdCLG1CQUFBSCxDQUFRLEVBQVIsQ0FBcEI7O0FBRUEsSUFBSUksd0JBQXdCO0FBQzFCQyxjQUFZRixhQURjO0FBRTFCRyxTQUFPLGlCQUFZO0FBQ2pCQyxpQ0FBNkJDLGlCQUE3QixHQUFpRCxLQUFqRDtBQUNEO0FBSnlCLENBQTVCOztBQU9BLElBQUlDLHdCQUF3QjtBQUMxQkosY0FBWUYsYUFEYztBQUUxQkcsU0FBT1AsYUFBYVcsbUJBQWIsQ0FBaUNDLElBQWpDLENBQXNDWixZQUF0QztBQUZtQixDQUE1Qjs7QUFLQSxJQUFJYSx1QkFBdUIsQ0FBQ0gscUJBQUQsRUFBd0JMLHFCQUF4QixDQUEzQjs7QUFFQSxTQUFTUyx1Q0FBVCxHQUFtRDtBQUNqRCxPQUFLQyx1QkFBTDtBQUNEOztBQUVEWixPQUFPVyx3Q0FBd0NFLFNBQS9DLEVBQTBEZCxZQUFZZSxLQUF0RSxFQUE2RTtBQUMzRUMsMEJBQXdCLGtDQUFZO0FBQ2xDLFdBQU9MLG9CQUFQO0FBQ0Q7QUFIMEUsQ0FBN0U7O0FBTUEsSUFBSU0sY0FBYyxJQUFJTCx1Q0FBSixFQUFsQjs7QUFFQSxJQUFJTiwrQkFBK0I7QUFDakNDLHFCQUFtQixLQURjOztBQUdqQzs7OztBQUlBVyxrQkFBZ0Isd0JBQVVDLFFBQVYsRUFBb0JDLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQkMsQ0FBMUIsRUFBNkJDLENBQTdCLEVBQWdDQyxDQUFoQyxFQUFtQztBQUNqRCxRQUFJQyx5QkFBeUJuQiw2QkFBNkJDLGlCQUExRDs7QUFFQUQsaUNBQTZCQyxpQkFBN0IsR0FBaUQsSUFBakQ7O0FBRUE7QUFDQSxRQUFJa0Isc0JBQUosRUFBNEI7QUFDMUJOLGVBQVNDLENBQVQsRUFBWUMsQ0FBWixFQUFlQyxDQUFmLEVBQWtCQyxDQUFsQixFQUFxQkMsQ0FBckI7QUFDRCxLQUZELE1BRU87QUFDTFAsa0JBQVlTLE9BQVosQ0FBb0JQLFFBQXBCLEVBQThCLElBQTlCLEVBQW9DQyxDQUFwQyxFQUF1Q0MsQ0FBdkMsRUFBMENDLENBQTFDLEVBQTZDQyxDQUE3QyxFQUFnREMsQ0FBaEQ7QUFDRDtBQUNGO0FBbEJnQyxDQUFuQzs7QUFxQkFHLE9BQU9DLE9BQVAsR0FBaUJ0Qiw0QkFBakIiLCJmaWxlIjoiOTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG52YXIgVHJhbnNhY3Rpb24gPSByZXF1aXJlKCcuL1RyYW5zYWN0aW9uJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xuXG52YXIgUkVTRVRfQkFUQ0hFRF9VUERBVEVTID0ge1xuICBpbml0aWFsaXplOiBlbXB0eUZ1bmN0aW9uLFxuICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgIFJlYWN0RGVmYXVsdEJhdGNoaW5nU3RyYXRlZ3kuaXNCYXRjaGluZ1VwZGF0ZXMgPSBmYWxzZTtcbiAgfVxufTtcblxudmFyIEZMVVNIX0JBVENIRURfVVBEQVRFUyA9IHtcbiAgaW5pdGlhbGl6ZTogZW1wdHlGdW5jdGlvbixcbiAgY2xvc2U6IFJlYWN0VXBkYXRlcy5mbHVzaEJhdGNoZWRVcGRhdGVzLmJpbmQoUmVhY3RVcGRhdGVzKVxufTtcblxudmFyIFRSQU5TQUNUSU9OX1dSQVBQRVJTID0gW0ZMVVNIX0JBVENIRURfVVBEQVRFUywgUkVTRVRfQkFUQ0hFRF9VUERBVEVTXTtcblxuZnVuY3Rpb24gUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneVRyYW5zYWN0aW9uKCkge1xuICB0aGlzLnJlaW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XG59XG5cbmFzc2lnbihSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5VHJhbnNhY3Rpb24ucHJvdG90eXBlLCBUcmFuc2FjdGlvbi5NaXhpbiwge1xuICBnZXRUcmFuc2FjdGlvbldyYXBwZXJzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFRSQU5TQUNUSU9OX1dSQVBQRVJTO1xuICB9XG59KTtcblxudmFyIHRyYW5zYWN0aW9uID0gbmV3IFJlYWN0RGVmYXVsdEJhdGNoaW5nU3RyYXRlZ3lUcmFuc2FjdGlvbigpO1xuXG52YXIgUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneSA9IHtcbiAgaXNCYXRjaGluZ1VwZGF0ZXM6IGZhbHNlLFxuXG4gIC8qKlxuICAgKiBDYWxsIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBpbiBhIGNvbnRleHQgd2l0aGluIHdoaWNoIGNhbGxzIHRvIGBzZXRTdGF0ZWBcbiAgICogYW5kIGZyaWVuZHMgYXJlIGJhdGNoZWQgc3VjaCB0aGF0IGNvbXBvbmVudHMgYXJlbid0IHVwZGF0ZWQgdW5uZWNlc3NhcmlseS5cbiAgICovXG4gIGJhdGNoZWRVcGRhdGVzOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGEsIGIsIGMsIGQsIGUpIHtcbiAgICB2YXIgYWxyZWFkeUJhdGNoaW5nVXBkYXRlcyA9IFJlYWN0RGVmYXVsdEJhdGNoaW5nU3RyYXRlZ3kuaXNCYXRjaGluZ1VwZGF0ZXM7XG5cbiAgICBSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5LmlzQmF0Y2hpbmdVcGRhdGVzID0gdHJ1ZTtcblxuICAgIC8vIFRoZSBjb2RlIGlzIHdyaXR0ZW4gdGhpcyB3YXkgdG8gYXZvaWQgZXh0cmEgYWxsb2NhdGlvbnNcbiAgICBpZiAoYWxyZWFkeUJhdGNoaW5nVXBkYXRlcykge1xuICAgICAgY2FsbGJhY2soYSwgYiwgYywgZCwgZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zYWN0aW9uLnBlcmZvcm0oY2FsbGJhY2ssIG51bGwsIGEsIGIsIGMsIGQsIGUpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 93 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMComponent\n * @typechecks static-only\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar AutoFocusUtils = __webpack_require__(94);\nvar CSSPropertyOperations = __webpack_require__(96);\nvar DOMProperty = __webpack_require__(23);\nvar DOMPropertyOperations = __webpack_require__(22);\nvar EventConstants = __webpack_require__(30);\nvar ReactBrowserEventEmitter = __webpack_require__(29);\nvar ReactComponentBrowserEnvironment = __webpack_require__(26);\nvar ReactDOMButton = __webpack_require__(104);\nvar ReactDOMInput = __webpack_require__(105);\nvar ReactDOMOption = __webpack_require__(109);\nvar ReactDOMSelect = __webpack_require__(112);\nvar ReactDOMTextarea = __webpack_require__(113);\nvar ReactMount = __webpack_require__(28);\nvar ReactMultiChild = __webpack_require__(114);\nvar ReactPerf = __webpack_require__(18);\nvar ReactUpdateQueue = __webpack_require__(53);\n\nvar assign = __webpack_require__(39);\nvar canDefineProperty = __webpack_require__(43);\nvar escapeTextContentForBrowser = __webpack_require__(21);\nvar invariant = __webpack_require__(13);\nvar isEventSupported = __webpack_require__(40);\nvar keyOf = __webpack_require__(79);\nvar setInnerHTML = __webpack_require__(19);\nvar setTextContent = __webpack_require__(20);\nvar shallowEqual = __webpack_require__(117);\nvar validateDOMNesting = __webpack_require__(70);\nvar warning = __webpack_require__(25);\n\nvar deleteListener = ReactBrowserEventEmitter.deleteListener;\nvar listenTo = ReactBrowserEventEmitter.listenTo;\nvar registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;\n\n// For quickly matching children type, to test if can be treated as content.\nvar CONTENT_TYPES = { 'string': true, 'number': true };\n\nvar CHILDREN = keyOf({ children: null });\nvar STYLE = keyOf({ style: null });\nvar HTML = keyOf({ __html: null });\n\nvar ELEMENT_NODE_TYPE = 1;\n\nfunction getDeclarationErrorAddendum(internalInstance) {\n if (internalInstance) {\n var owner = internalInstance._currentElement._owner || null;\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' This DOM node was rendered by `' + name + '`.';\n }\n }\n }\n return '';\n}\n\nvar legacyPropsDescriptor;\nif (process.env.NODE_ENV !== 'production') {\n legacyPropsDescriptor = {\n props: {\n enumerable: false,\n get: function get() {\n var component = this._reactInternalComponent;\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .props of a DOM node; instead, ' + 'recreate the props as `render` did originally or read the DOM ' + 'properties/attributes directly from this node (e.g., ' + 'this.refs.box.className).%s', getDeclarationErrorAddendum(component)) : undefined;\n return component._currentElement.props;\n }\n }\n };\n}\n\nfunction legacyGetDOMNode() {\n if (process.env.NODE_ENV !== 'production') {\n var component = this._reactInternalComponent;\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .getDOMNode() of a DOM node; ' + 'instead, use the node directly.%s', getDeclarationErrorAddendum(component)) : undefined;\n }\n return this;\n}\n\nfunction legacyIsMounted() {\n var component = this._reactInternalComponent;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .isMounted() of a DOM node.%s', getDeclarationErrorAddendum(component)) : undefined;\n }\n return !!component;\n}\n\nfunction legacySetStateEtc() {\n if (process.env.NODE_ENV !== 'production') {\n var component = this._reactInternalComponent;\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setState(), .replaceState(), or ' + '.forceUpdate() of a DOM node. This is a no-op.%s', getDeclarationErrorAddendum(component)) : undefined;\n }\n}\n\nfunction legacySetProps(partialProps, callback) {\n var component = this._reactInternalComponent;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .setProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n }\n if (!component) {\n return;\n }\n ReactUpdateQueue.enqueueSetPropsInternal(component, partialProps);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n }\n}\n\nfunction legacyReplaceProps(partialProps, callback) {\n var component = this._reactInternalComponent;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDOMComponent: Do not access .replaceProps() of a DOM node. ' + 'Instead, call ReactDOM.render again at the top level.%s', getDeclarationErrorAddendum(component)) : undefined;\n }\n if (!component) {\n return;\n }\n ReactUpdateQueue.enqueueReplacePropsInternal(component, partialProps);\n if (callback) {\n ReactUpdateQueue.enqueueCallbackInternal(component, callback);\n }\n}\n\nfunction friendlyStringify(obj) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object') {\n if (Array.isArray(obj)) {\n return '[' + obj.map(friendlyStringify).join(', ') + ']';\n } else {\n var pairs = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var keyEscaped = /^[a-z$_][\\w$_]*$/i.test(key) ? key : JSON.stringify(key);\n pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));\n }\n }\n return '{' + pairs.join(', ') + '}';\n }\n } else if (typeof obj === 'string') {\n return JSON.stringify(obj);\n } else if (typeof obj === 'function') {\n return '[function object]';\n }\n // Differs from JSON.stringify in that undefined becauses undefined and that\n // inf and nan don't become null\n return String(obj);\n}\n\nvar styleMutationWarning = {};\n\nfunction checkAndWarnForMutatedStyle(style1, style2, component) {\n if (style1 == null || style2 == null) {\n return;\n }\n if (shallowEqual(style1, style2)) {\n return;\n }\n\n var componentName = component._tag;\n var owner = component._currentElement._owner;\n var ownerName;\n if (owner) {\n ownerName = owner.getName();\n }\n\n var hash = ownerName + '|' + componentName;\n\n if (styleMutationWarning.hasOwnProperty(hash)) {\n return;\n }\n\n styleMutationWarning[hash] = true;\n\n process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : undefined;\n}\n\n/**\n * @param {object} component\n * @param {?object} props\n */\nfunction assertValidProps(component, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (process.env.NODE_ENV !== 'production') {\n if (voidElementTags[component._tag]) {\n process.env.NODE_ENV !== 'production' ? warning(props.children == null && props.dangerouslySetInnerHTML == null, '%s is a void element tag and must not have `children` or ' + 'use `props.dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : undefined;\n }\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : invariant(false) : undefined;\n !(_typeof(props.dangerouslySetInnerHTML) === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' + 'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' + 'for more information.') : invariant(false) : undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(!props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : undefined;\n }\n !(props.style == null || _typeof(props.style) === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, ' + 'not a string. For example, style={{marginRight: spacing + \\'em\\'}} when ' + 'using JSX.%s', getDeclarationErrorAddendum(component)) : invariant(false) : undefined;\n}\n\nfunction enqueuePutListener(id, registrationName, listener, transaction) {\n if (process.env.NODE_ENV !== 'production') {\n // IE8 has no API for event capturing and the `onScroll` event doesn't\n // bubble.\n process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), 'This browser doesn\\'t support the `onScroll` event') : undefined;\n }\n var container = ReactMount.findReactContainerForID(id);\n if (container) {\n var doc = container.nodeType === ELEMENT_NODE_TYPE ? container.ownerDocument : container;\n listenTo(registrationName, doc);\n }\n transaction.getReactMountReady().enqueue(putListener, {\n id: id,\n registrationName: registrationName,\n listener: listener\n });\n}\n\nfunction putListener() {\n var listenerToPut = this;\n ReactBrowserEventEmitter.putListener(listenerToPut.id, listenerToPut.registrationName, listenerToPut.listener);\n}\n\n// There are so many media events, it makes sense to just\n// maintain a list rather than create a `trapBubbledEvent` for each\nvar mediaEvents = {\n topAbort: 'abort',\n topCanPlay: 'canplay',\n topCanPlayThrough: 'canplaythrough',\n topDurationChange: 'durationchange',\n topEmptied: 'emptied',\n topEncrypted: 'encrypted',\n topEnded: 'ended',\n topError: 'error',\n topLoadedData: 'loadeddata',\n topLoadedMetadata: 'loadedmetadata',\n topLoadStart: 'loadstart',\n topPause: 'pause',\n topPlay: 'play',\n topPlaying: 'playing',\n topProgress: 'progress',\n topRateChange: 'ratechange',\n topSeeked: 'seeked',\n topSeeking: 'seeking',\n topStalled: 'stalled',\n topSuspend: 'suspend',\n topTimeUpdate: 'timeupdate',\n topVolumeChange: 'volumechange',\n topWaiting: 'waiting'\n};\n\nfunction trapBubbledEventsLocal() {\n var inst = this;\n // If a component renders to null or if another component fatals and causes\n // the state of the tree to be corrupted, `node` here can be null.\n !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : invariant(false) : undefined;\n var node = ReactMount.getNode(inst._rootNodeID);\n !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : invariant(false) : undefined;\n\n switch (inst._tag) {\n case 'iframe':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n break;\n case 'video':\n case 'audio':\n\n inst._wrapperState.listeners = [];\n // create listener for each media event\n for (var event in mediaEvents) {\n if (mediaEvents.hasOwnProperty(event)) {\n inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes[event], mediaEvents[event], node));\n }\n }\n\n break;\n case 'img':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load', node)];\n break;\n case 'form':\n inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit', node)];\n break;\n }\n}\n\nfunction mountReadyInputWrapper() {\n ReactDOMInput.mountReadyWrapper(this);\n}\n\nfunction postUpdateSelectWrapper() {\n ReactDOMSelect.postUpdateWrapper(this);\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special cased tags.\n\nvar omittedCloseTags = {\n 'area': true,\n 'base': true,\n 'br': true,\n 'col': true,\n 'embed': true,\n 'hr': true,\n 'img': true,\n 'input': true,\n 'keygen': true,\n 'link': true,\n 'meta': true,\n 'param': true,\n 'source': true,\n 'track': true,\n 'wbr': true\n};\n\n// NOTE: menuitem's close tag should be omitted, but that causes problems.\nvar newlineEatingTags = {\n 'listing': true,\n 'pre': true,\n 'textarea': true\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = assign({\n 'menuitem': true\n}, omittedCloseTags);\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\n\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nvar hasOwnProperty = {}.hasOwnProperty;\n\nfunction validateDangerousTag(tag) {\n if (!hasOwnProperty.call(validatedTagCache, tag)) {\n !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : invariant(false) : undefined;\n validatedTagCache[tag] = true;\n }\n}\n\nfunction processChildContextDev(context, inst) {\n // Pass down our tag name to child components for validation purposes\n context = assign({}, context);\n var info = context[validateDOMNesting.ancestorInfoContextKey];\n context[validateDOMNesting.ancestorInfoContextKey] = validateDOMNesting.updatedAncestorInfo(info, inst._tag, inst);\n return context;\n}\n\nfunction isCustomComponent(tagName, props) {\n return tagName.indexOf('-') >= 0 || props.is != null;\n}\n\n/**\n * Creates a new React class that is idempotent and capable of containing other\n * React components. It accepts event listeners and DOM properties that are\n * valid according to `DOMProperty`.\n *\n * - Event listeners: `onClick`, `onMouseDown`, etc.\n * - DOM properties: `className`, `name`, `title`, etc.\n *\n * The `style` property functions differently from the DOM API. It accepts an\n * object mapping of style properties to values.\n *\n * @constructor ReactDOMComponent\n * @extends ReactMultiChild\n */\nfunction ReactDOMComponent(tag) {\n validateDangerousTag(tag);\n this._tag = tag.toLowerCase();\n this._renderedChildren = null;\n this._previousStyle = null;\n this._previousStyleCopy = null;\n this._rootNodeID = null;\n this._wrapperState = null;\n this._topLevelWrapper = null;\n this._nodeWithLegacyProperties = null;\n if (process.env.NODE_ENV !== 'production') {\n this._unprocessedContextDev = null;\n this._processedContextDev = null;\n }\n}\n\nReactDOMComponent.displayName = 'ReactDOMComponent';\n\nReactDOMComponent.Mixin = {\n\n construct: function construct(element) {\n this._currentElement = element;\n },\n\n /**\n * Generates root tag markup then recurses. This method has side effects and\n * is not idempotent.\n *\n * @internal\n * @param {string} rootID The root DOM ID for this node.\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n * @return {string} The computed markup.\n */\n mountComponent: function mountComponent(rootID, transaction, context) {\n this._rootNodeID = rootID;\n\n var props = this._currentElement.props;\n\n switch (this._tag) {\n case 'iframe':\n case 'img':\n case 'form':\n case 'video':\n case 'audio':\n this._wrapperState = {\n listeners: null\n };\n transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);\n break;\n case 'button':\n props = ReactDOMButton.getNativeProps(this, props, context);\n break;\n case 'input':\n ReactDOMInput.mountWrapper(this, props, context);\n props = ReactDOMInput.getNativeProps(this, props, context);\n break;\n case 'option':\n ReactDOMOption.mountWrapper(this, props, context);\n props = ReactDOMOption.getNativeProps(this, props, context);\n break;\n case 'select':\n ReactDOMSelect.mountWrapper(this, props, context);\n props = ReactDOMSelect.getNativeProps(this, props, context);\n context = ReactDOMSelect.processChildContext(this, props, context);\n break;\n case 'textarea':\n ReactDOMTextarea.mountWrapper(this, props, context);\n props = ReactDOMTextarea.getNativeProps(this, props, context);\n break;\n }\n\n assertValidProps(this, props);\n if (process.env.NODE_ENV !== 'production') {\n if (context[validateDOMNesting.ancestorInfoContextKey]) {\n validateDOMNesting(this._tag, this, context[validateDOMNesting.ancestorInfoContextKey]);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n this._unprocessedContextDev = context;\n this._processedContextDev = processChildContextDev(context, this);\n context = this._processedContextDev;\n }\n\n var mountImage;\n if (transaction.useCreateElement) {\n var ownerDocument = context[ReactMount.ownerDocumentContextKey];\n var el = ownerDocument.createElement(this._currentElement.type);\n DOMPropertyOperations.setAttributeForID(el, this._rootNodeID);\n // Populate node cache\n ReactMount.getID(el);\n this._updateDOMProperties({}, props, transaction, el);\n this._createInitialChildren(transaction, props, context, el);\n mountImage = el;\n } else {\n var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);\n var tagContent = this._createContentMarkup(transaction, props, context);\n if (!tagContent && omittedCloseTags[this._tag]) {\n mountImage = tagOpen + '/>';\n } else {\n mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';\n }\n }\n\n switch (this._tag) {\n case 'input':\n transaction.getReactMountReady().enqueue(mountReadyInputWrapper, this);\n // falls through\n case 'button':\n case 'select':\n case 'textarea':\n if (props.autoFocus) {\n transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);\n }\n break;\n }\n\n return mountImage;\n },\n\n /**\n * Creates markup for the open tag and all attributes.\n *\n * This method has side effects because events get registered.\n *\n * Iterating over object properties is faster than iterating over arrays.\n * @see http://jsperf.com/obj-vs-arr-iteration\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @return {string} Markup of opening tag.\n */\n _createOpenTagMarkupAndPutListeners: function _createOpenTagMarkupAndPutListeners(transaction, props) {\n var ret = '<' + this._currentElement.type;\n\n for (var propKey in props) {\n if (!props.hasOwnProperty(propKey)) {\n continue;\n }\n var propValue = props[propKey];\n if (propValue == null) {\n continue;\n }\n if (registrationNameModules.hasOwnProperty(propKey)) {\n if (propValue) {\n enqueuePutListener(this._rootNodeID, propKey, propValue, transaction);\n }\n } else {\n if (propKey === STYLE) {\n if (propValue) {\n if (process.env.NODE_ENV !== 'production') {\n // See `_updateDOMProperties`. style block\n this._previousStyle = propValue;\n }\n propValue = this._previousStyleCopy = assign({}, props.style);\n }\n propValue = CSSPropertyOperations.createMarkupForStyles(propValue);\n }\n var markup = null;\n if (this._tag != null && isCustomComponent(this._tag, props)) {\n if (propKey !== CHILDREN) {\n markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);\n }\n } else {\n markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);\n }\n if (markup) {\n ret += ' ' + markup;\n }\n }\n }\n\n // For static pages, no need to put React ID and checksum. Saves lots of\n // bytes.\n if (transaction.renderToStaticMarkup) {\n return ret;\n }\n\n var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID);\n return ret + ' ' + markupForID;\n },\n\n /**\n * Creates markup for the content between the tags.\n *\n * @private\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} props\n * @param {object} context\n * @return {string} Content markup.\n */\n _createContentMarkup: function _createContentMarkup(transaction, props, context) {\n var ret = '';\n\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n ret = innerHTML.__html;\n }\n } else {\n var contentToUse = CONTENT_TYPES[_typeof(props.children)] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n ret = escapeTextContentForBrowser(contentToUse);\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n ret = mountImages.join('');\n }\n }\n if (newlineEatingTags[this._tag] && ret.charAt(0) === '\\n') {\n // text/html ignores the first character in these tags if it's a newline\n // Prefer to break application/xml over text/html (for now) by adding\n // a newline specifically to get eaten by the parser. (Alternately for\n // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n // \\r is normalized out by HTMLTextAreaElement#value.)\n // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n // from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n return '\\n' + ret;\n } else {\n return ret;\n }\n },\n\n _createInitialChildren: function _createInitialChildren(transaction, props, context, el) {\n // Intentional use of != to avoid catching zero/false.\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n setInnerHTML(el, innerHTML.__html);\n }\n } else {\n var contentToUse = CONTENT_TYPES[_typeof(props.children)] ? props.children : null;\n var childrenToUse = contentToUse != null ? null : props.children;\n if (contentToUse != null) {\n // TODO: Validate that text is allowed as a child of this node\n setTextContent(el, contentToUse);\n } else if (childrenToUse != null) {\n var mountImages = this.mountChildren(childrenToUse, transaction, context);\n for (var i = 0; i < mountImages.length; i++) {\n el.appendChild(mountImages[i]);\n }\n }\n }\n },\n\n /**\n * Receives a next element and updates the component.\n *\n * @internal\n * @param {ReactElement} nextElement\n * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction\n * @param {object} context\n */\n receiveComponent: function receiveComponent(nextElement, transaction, context) {\n var prevElement = this._currentElement;\n this._currentElement = nextElement;\n this.updateComponent(transaction, prevElement, nextElement, context);\n },\n\n /**\n * Updates a native DOM component after it has already been allocated and\n * attached to the DOM. Reconciles the root DOM node, then recurses.\n *\n * @param {ReactReconcileTransaction} transaction\n * @param {ReactElement} prevElement\n * @param {ReactElement} nextElement\n * @internal\n * @overridable\n */\n updateComponent: function updateComponent(transaction, prevElement, nextElement, context) {\n var lastProps = prevElement.props;\n var nextProps = this._currentElement.props;\n\n switch (this._tag) {\n case 'button':\n lastProps = ReactDOMButton.getNativeProps(this, lastProps);\n nextProps = ReactDOMButton.getNativeProps(this, nextProps);\n break;\n case 'input':\n ReactDOMInput.updateWrapper(this);\n lastProps = ReactDOMInput.getNativeProps(this, lastProps);\n nextProps = ReactDOMInput.getNativeProps(this, nextProps);\n break;\n case 'option':\n lastProps = ReactDOMOption.getNativeProps(this, lastProps);\n nextProps = ReactDOMOption.getNativeProps(this, nextProps);\n break;\n case 'select':\n lastProps = ReactDOMSelect.getNativeProps(this, lastProps);\n nextProps = ReactDOMSelect.getNativeProps(this, nextProps);\n break;\n case 'textarea':\n ReactDOMTextarea.updateWrapper(this);\n lastProps = ReactDOMTextarea.getNativeProps(this, lastProps);\n nextProps = ReactDOMTextarea.getNativeProps(this, nextProps);\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // If the context is reference-equal to the old one, pass down the same\n // processed object so the update bailout in ReactReconciler behaves\n // correctly (and identically in dev and prod). See #5005.\n if (this._unprocessedContextDev !== context) {\n this._unprocessedContextDev = context;\n this._processedContextDev = processChildContextDev(context, this);\n }\n context = this._processedContextDev;\n }\n\n assertValidProps(this, nextProps);\n this._updateDOMProperties(lastProps, nextProps, transaction, null);\n this._updateDOMChildren(lastProps, nextProps, transaction, context);\n\n if (!canDefineProperty && this._nodeWithLegacyProperties) {\n this._nodeWithLegacyProperties.props = nextProps;\n }\n\n if (this._tag === 'select') {\n // <select> value update needs to occur after <option> children\n // reconciliation\n transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);\n }\n },\n\n /**\n * Reconciles the properties by detecting differences in property values and\n * updating the DOM as necessary. This function is probably the single most\n * critical path for performance optimization.\n *\n * TODO: Benchmark whether checking for changed values in memory actually\n * improves performance (especially statically positioned elements).\n * TODO: Benchmark the effects of putting this at the top since 99% of props\n * do not change for a given reconciliation.\n * TODO: Benchmark areas that can be improved with caching.\n *\n * @private\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {?DOMElement} node\n */\n _updateDOMProperties: function _updateDOMProperties(lastProps, nextProps, transaction, node) {\n var propKey;\n var styleName;\n var styleUpdates;\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey)) {\n continue;\n }\n if (propKey === STYLE) {\n var lastStyle = this._previousStyleCopy;\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n this._previousStyleCopy = null;\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (lastProps[propKey]) {\n // Only call deleteListener if there was a listener previously or\n // else willDeleteListener gets called when there wasn't actually a\n // listener (e.g., onClick={null})\n deleteListener(this._rootNodeID, propKey);\n }\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n if (!node) {\n node = ReactMount.getNode(this._rootNodeID);\n }\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps[propKey];\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) {\n continue;\n }\n if (propKey === STYLE) {\n if (nextProp) {\n if (process.env.NODE_ENV !== 'production') {\n checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);\n this._previousStyle = nextProp;\n }\n nextProp = this._previousStyleCopy = assign({}, nextProp);\n } else {\n this._previousStyleCopy = null;\n }\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = '';\n }\n }\n // Update styles that changed since `lastProp`.\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n styleUpdates = styleUpdates || {};\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n styleUpdates = nextProp;\n }\n } else if (registrationNameModules.hasOwnProperty(propKey)) {\n if (nextProp) {\n enqueuePutListener(this._rootNodeID, propKey, nextProp, transaction);\n } else if (lastProp) {\n deleteListener(this._rootNodeID, propKey);\n }\n } else if (isCustomComponent(this._tag, nextProps)) {\n if (!node) {\n node = ReactMount.getNode(this._rootNodeID);\n }\n if (propKey === CHILDREN) {\n nextProp = null;\n }\n DOMPropertyOperations.setValueForAttribute(node, propKey, nextProp);\n } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {\n if (!node) {\n node = ReactMount.getNode(this._rootNodeID);\n }\n // If we're updating to null or undefined, we should remove the property\n // from the DOM node instead of inadvertantly setting to a string. This\n // brings us in line with the same behavior we have on initial render.\n if (nextProp != null) {\n DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);\n } else {\n DOMPropertyOperations.deleteValueForProperty(node, propKey);\n }\n }\n }\n if (styleUpdates) {\n if (!node) {\n node = ReactMount.getNode(this._rootNodeID);\n }\n CSSPropertyOperations.setValueForStyles(node, styleUpdates);\n }\n },\n\n /**\n * Reconciles the children with the various properties that affect the\n * children content.\n *\n * @param {object} lastProps\n * @param {object} nextProps\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n */\n _updateDOMChildren: function _updateDOMChildren(lastProps, nextProps, transaction, context) {\n var lastContent = CONTENT_TYPES[_typeof(lastProps.children)] ? lastProps.children : null;\n var nextContent = CONTENT_TYPES[_typeof(nextProps.children)] ? nextProps.children : null;\n\n var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;\n var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;\n\n // Note the use of `!=` which checks for null or undefined.\n var lastChildren = lastContent != null ? null : lastProps.children;\n var nextChildren = nextContent != null ? null : nextProps.children;\n\n // If we're switching from children to content/html or vice versa, remove\n // the old content\n var lastHasContentOrHtml = lastContent != null || lastHtml != null;\n var nextHasContentOrHtml = nextContent != null || nextHtml != null;\n if (lastChildren != null && nextChildren == null) {\n this.updateChildren(null, transaction, context);\n } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {\n this.updateTextContent('');\n }\n\n if (nextContent != null) {\n if (lastContent !== nextContent) {\n this.updateTextContent('' + nextContent);\n }\n } else if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n this.updateMarkup('' + nextHtml);\n }\n } else if (nextChildren != null) {\n this.updateChildren(nextChildren, transaction, context);\n }\n },\n\n /**\n * Destroys all event registrations for this instance. Does not remove from\n * the DOM. That must be done by the parent.\n *\n * @internal\n */\n unmountComponent: function unmountComponent() {\n switch (this._tag) {\n case 'iframe':\n case 'img':\n case 'form':\n case 'video':\n case 'audio':\n var listeners = this._wrapperState.listeners;\n if (listeners) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n }\n break;\n case 'input':\n ReactDOMInput.unmountWrapper(this);\n break;\n case 'html':\n case 'head':\n case 'body':\n /**\n * Components like <html> <head> and <body> can't be removed or added\n * easily in a cross-browser way, however it's valuable to be able to\n * take advantage of React's reconciliation for styling and <title>\n * management. So we just document it and throw in dangerous cases.\n */\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : undefined;\n break;\n }\n\n this.unmountChildren();\n ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID);\n ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);\n this._rootNodeID = null;\n this._wrapperState = null;\n if (this._nodeWithLegacyProperties) {\n var node = this._nodeWithLegacyProperties;\n node._reactInternalComponent = null;\n this._nodeWithLegacyProperties = null;\n }\n },\n\n getPublicInstance: function getPublicInstance() {\n if (!this._nodeWithLegacyProperties) {\n var node = ReactMount.getNode(this._rootNodeID);\n\n node._reactInternalComponent = this;\n node.getDOMNode = legacyGetDOMNode;\n node.isMounted = legacyIsMounted;\n node.setState = legacySetStateEtc;\n node.replaceState = legacySetStateEtc;\n node.forceUpdate = legacySetStateEtc;\n node.setProps = legacySetProps;\n node.replaceProps = legacyReplaceProps;\n\n if (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperties(node, legacyPropsDescriptor);\n } else {\n // updateComponent will update this property on subsequent renders\n node.props = this._currentElement.props;\n }\n } else {\n // updateComponent will update this property on subsequent renders\n node.props = this._currentElement.props;\n }\n\n this._nodeWithLegacyProperties = node;\n }\n return this._nodeWithLegacyProperties;\n }\n\n};\n\nReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', {\n mountComponent: 'mountComponent',\n updateComponent: 'updateComponent'\n});\n\nassign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);\n\nmodule.exports = ReactDOMComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01Db21wb25lbnQuanM/YzJjYyJdLCJuYW1lcyI6WyJBdXRvRm9jdXNVdGlscyIsInJlcXVpcmUiLCJDU1NQcm9wZXJ0eU9wZXJhdGlvbnMiLCJET01Qcm9wZXJ0eSIsIkRPTVByb3BlcnR5T3BlcmF0aW9ucyIsIkV2ZW50Q29uc3RhbnRzIiwiUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyIiwiUmVhY3RDb21wb25lbnRCcm93c2VyRW52aXJvbm1lbnQiLCJSZWFjdERPTUJ1dHRvbiIsIlJlYWN0RE9NSW5wdXQiLCJSZWFjdERPTU9wdGlvbiIsIlJlYWN0RE9NU2VsZWN0IiwiUmVhY3RET01UZXh0YXJlYSIsIlJlYWN0TW91bnQiLCJSZWFjdE11bHRpQ2hpbGQiLCJSZWFjdFBlcmYiLCJSZWFjdFVwZGF0ZVF1ZXVlIiwiYXNzaWduIiwiY2FuRGVmaW5lUHJvcGVydHkiLCJlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIiLCJpbnZhcmlhbnQiLCJpc0V2ZW50U3VwcG9ydGVkIiwia2V5T2YiLCJzZXRJbm5lckhUTUwiLCJzZXRUZXh0Q29udGVudCIsInNoYWxsb3dFcXVhbCIsInZhbGlkYXRlRE9NTmVzdGluZyIsIndhcm5pbmciLCJkZWxldGVMaXN0ZW5lciIsImxpc3RlblRvIiwicmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMiLCJDT05URU5UX1RZUEVTIiwiQ0hJTERSRU4iLCJjaGlsZHJlbiIsIlNUWUxFIiwic3R5bGUiLCJIVE1MIiwiX19odG1sIiwiRUxFTUVOVF9OT0RFX1RZUEUiLCJnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0iLCJpbnRlcm5hbEluc3RhbmNlIiwib3duZXIiLCJfY3VycmVudEVsZW1lbnQiLCJfb3duZXIiLCJuYW1lIiwiZ2V0TmFtZSIsImxlZ2FjeVByb3BzRGVzY3JpcHRvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3BzIiwiZW51bWVyYWJsZSIsImdldCIsImNvbXBvbmVudCIsIl9yZWFjdEludGVybmFsQ29tcG9uZW50IiwidW5kZWZpbmVkIiwibGVnYWN5R2V0RE9NTm9kZSIsImxlZ2FjeUlzTW91bnRlZCIsImxlZ2FjeVNldFN0YXRlRXRjIiwibGVnYWN5U2V0UHJvcHMiLCJwYXJ0aWFsUHJvcHMiLCJjYWxsYmFjayIsImVucXVldWVTZXRQcm9wc0ludGVybmFsIiwiZW5xdWV1ZUNhbGxiYWNrSW50ZXJuYWwiLCJsZWdhY3lSZXBsYWNlUHJvcHMiLCJlbnF1ZXVlUmVwbGFjZVByb3BzSW50ZXJuYWwiLCJmcmllbmRseVN0cmluZ2lmeSIsIm9iaiIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImpvaW4iLCJwYWlycyIsImtleSIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImtleUVzY2FwZWQiLCJ0ZXN0IiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2giLCJTdHJpbmciLCJzdHlsZU11dGF0aW9uV2FybmluZyIsImNoZWNrQW5kV2FybkZvck11dGF0ZWRTdHlsZSIsInN0eWxlMSIsInN0eWxlMiIsImNvbXBvbmVudE5hbWUiLCJfdGFnIiwib3duZXJOYW1lIiwiaGFzaCIsImFzc2VydFZhbGlkUHJvcHMiLCJ2b2lkRWxlbWVudFRhZ3MiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImlubmVySFRNTCIsImNvbnRlbnRFZGl0YWJsZSIsImVucXVldWVQdXRMaXN0ZW5lciIsImlkIiwicmVnaXN0cmF0aW9uTmFtZSIsImxpc3RlbmVyIiwidHJhbnNhY3Rpb24iLCJjb250YWluZXIiLCJmaW5kUmVhY3RDb250YWluZXJGb3JJRCIsImRvYyIsIm5vZGVUeXBlIiwib3duZXJEb2N1bWVudCIsImdldFJlYWN0TW91bnRSZWFkeSIsImVucXVldWUiLCJwdXRMaXN0ZW5lciIsImxpc3RlbmVyVG9QdXQiLCJtZWRpYUV2ZW50cyIsInRvcEFib3J0IiwidG9wQ2FuUGxheSIsInRvcENhblBsYXlUaHJvdWdoIiwidG9wRHVyYXRpb25DaGFuZ2UiLCJ0b3BFbXB0aWVkIiwidG9wRW5jcnlwdGVkIiwidG9wRW5kZWQiLCJ0b3BFcnJvciIsInRvcExvYWRlZERhdGEiLCJ0b3BMb2FkZWRNZXRhZGF0YSIsInRvcExvYWRTdGFydCIsInRvcFBhdXNlIiwidG9wUGxheSIsInRvcFBsYXlpbmciLCJ0b3BQcm9ncmVzcyIsInRvcFJhdGVDaGFuZ2UiLCJ0b3BTZWVrZWQiLCJ0b3BTZWVraW5nIiwidG9wU3RhbGxlZCIsInRvcFN1c3BlbmQiLCJ0b3BUaW1lVXBkYXRlIiwidG9wVm9sdW1lQ2hhbmdlIiwidG9wV2FpdGluZyIsInRyYXBCdWJibGVkRXZlbnRzTG9jYWwiLCJpbnN0IiwiX3Jvb3ROb2RlSUQiLCJub2RlIiwiZ2V0Tm9kZSIsIl93cmFwcGVyU3RhdGUiLCJsaXN0ZW5lcnMiLCJ0cmFwQnViYmxlZEV2ZW50IiwidG9wTGV2ZWxUeXBlcyIsInRvcExvYWQiLCJldmVudCIsInRvcFJlc2V0IiwidG9wU3VibWl0IiwibW91bnRSZWFkeUlucHV0V3JhcHBlciIsIm1vdW50UmVhZHlXcmFwcGVyIiwicG9zdFVwZGF0ZVNlbGVjdFdyYXBwZXIiLCJwb3N0VXBkYXRlV3JhcHBlciIsIm9taXR0ZWRDbG9zZVRhZ3MiLCJuZXdsaW5lRWF0aW5nVGFncyIsIlZBTElEX1RBR19SRUdFWCIsInZhbGlkYXRlZFRhZ0NhY2hlIiwidmFsaWRhdGVEYW5nZXJvdXNUYWciLCJ0YWciLCJwcm9jZXNzQ2hpbGRDb250ZXh0RGV2IiwiY29udGV4dCIsImluZm8iLCJhbmNlc3RvckluZm9Db250ZXh0S2V5IiwidXBkYXRlZEFuY2VzdG9ySW5mbyIsImlzQ3VzdG9tQ29tcG9uZW50IiwidGFnTmFtZSIsImluZGV4T2YiLCJpcyIsIlJlYWN0RE9NQ29tcG9uZW50IiwidG9Mb3dlckNhc2UiLCJfcmVuZGVyZWRDaGlsZHJlbiIsIl9wcmV2aW91c1N0eWxlIiwiX3ByZXZpb3VzU3R5bGVDb3B5IiwiX3RvcExldmVsV3JhcHBlciIsIl9ub2RlV2l0aExlZ2FjeVByb3BlcnRpZXMiLCJfdW5wcm9jZXNzZWRDb250ZXh0RGV2IiwiX3Byb2Nlc3NlZENvbnRleHREZXYiLCJkaXNwbGF5TmFtZSIsIk1peGluIiwiY29uc3RydWN0IiwiZWxlbWVudCIsIm1vdW50Q29tcG9uZW50Iiwicm9vdElEIiwiZ2V0TmF0aXZlUHJvcHMiLCJtb3VudFdyYXBwZXIiLCJwcm9jZXNzQ2hpbGRDb250ZXh0IiwibW91bnRJbWFnZSIsInVzZUNyZWF0ZUVsZW1lbnQiLCJvd25lckRvY3VtZW50Q29udGV4dEtleSIsImVsIiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJzZXRBdHRyaWJ1dGVGb3JJRCIsImdldElEIiwiX3VwZGF0ZURPTVByb3BlcnRpZXMiLCJfY3JlYXRlSW5pdGlhbENoaWxkcmVuIiwidGFnT3BlbiIsIl9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlzdGVuZXJzIiwidGFnQ29udGVudCIsIl9jcmVhdGVDb250ZW50TWFya3VwIiwiYXV0b0ZvY3VzIiwiZm9jdXNET01Db21wb25lbnQiLCJyZXQiLCJwcm9wS2V5IiwicHJvcFZhbHVlIiwiY3JlYXRlTWFya3VwRm9yU3R5bGVzIiwibWFya3VwIiwiY3JlYXRlTWFya3VwRm9yQ3VzdG9tQXR0cmlidXRlIiwiY3JlYXRlTWFya3VwRm9yUHJvcGVydHkiLCJyZW5kZXJUb1N0YXRpY01hcmt1cCIsIm1hcmt1cEZvcklEIiwiY3JlYXRlTWFya3VwRm9ySUQiLCJjb250ZW50VG9Vc2UiLCJjaGlsZHJlblRvVXNlIiwibW91bnRJbWFnZXMiLCJtb3VudENoaWxkcmVuIiwiY2hhckF0IiwiaSIsImxlbmd0aCIsImFwcGVuZENoaWxkIiwicmVjZWl2ZUNvbXBvbmVudCIsIm5leHRFbGVtZW50IiwicHJldkVsZW1lbnQiLCJ1cGRhdGVDb21wb25lbnQiLCJsYXN0UHJvcHMiLCJuZXh0UHJvcHMiLCJ1cGRhdGVXcmFwcGVyIiwiX3VwZGF0ZURPTUNoaWxkcmVuIiwic3R5bGVOYW1lIiwic3R5bGVVcGRhdGVzIiwibGFzdFN0eWxlIiwicHJvcGVydGllcyIsImlzQ3VzdG9tQXR0cmlidXRlIiwiZGVsZXRlVmFsdWVGb3JQcm9wZXJ0eSIsIm5leHRQcm9wIiwibGFzdFByb3AiLCJzZXRWYWx1ZUZvckF0dHJpYnV0ZSIsInNldFZhbHVlRm9yUHJvcGVydHkiLCJzZXRWYWx1ZUZvclN0eWxlcyIsImxhc3RDb250ZW50IiwibmV4dENvbnRlbnQiLCJsYXN0SHRtbCIsIm5leHRIdG1sIiwibGFzdENoaWxkcmVuIiwibmV4dENoaWxkcmVuIiwibGFzdEhhc0NvbnRlbnRPckh0bWwiLCJuZXh0SGFzQ29udGVudE9ySHRtbCIsInVwZGF0ZUNoaWxkcmVuIiwidXBkYXRlVGV4dENvbnRlbnQiLCJ1cGRhdGVNYXJrdXAiLCJ1bm1vdW50Q29tcG9uZW50IiwicmVtb3ZlIiwidW5tb3VudFdyYXBwZXIiLCJ1bm1vdW50Q2hpbGRyZW4iLCJkZWxldGVBbGxMaXN0ZW5lcnMiLCJ1bm1vdW50SURGcm9tRW52aXJvbm1lbnQiLCJnZXRQdWJsaWNJbnN0YW5jZSIsImdldERPTU5vZGUiLCJpc01vdW50ZWQiLCJzZXRTdGF0ZSIsInJlcGxhY2VTdGF0ZSIsImZvcmNlVXBkYXRlIiwic2V0UHJvcHMiLCJyZXBsYWNlUHJvcHMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwibWVhc3VyZU1ldGhvZHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUE7Ozs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjtBQUNBLElBQUlDLHdCQUF3QixtQkFBQUQsQ0FBUSxFQUFSLENBQTVCO0FBQ0EsSUFBSUUsY0FBYyxtQkFBQUYsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUcsd0JBQXdCLG1CQUFBSCxDQUFRLEVBQVIsQ0FBNUI7QUFDQSxJQUFJSSxpQkFBaUIsbUJBQUFKLENBQVEsRUFBUixDQUFyQjtBQUNBLElB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My0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RE9NQ29tcG9uZW50XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbi8qIGdsb2JhbCBoYXNPd25Qcm9wZXJ0eTp0cnVlICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEF1dG9Gb2N1c1V0aWxzID0gcmVxdWlyZSgnLi9BdXRvRm9jdXNVdGlscycpO1xudmFyIENTU1Byb3BlcnR5T3BlcmF0aW9ucyA9IHJlcXVpcmUoJy4vQ1NTUHJvcGVydHlPcGVyYXRpb25zJyk7XG52YXIgRE9NUHJvcGVydHkgPSByZXF1aXJlKCcuL0RPTVByb3BlcnR5Jyk7XG52YXIgRE9NUHJvcGVydHlPcGVyYXRpb25zID0gcmVxdWlyZSgnLi9ET01Qcm9wZXJ0eU9wZXJhdGlvbnMnKTtcbnZhciBFdmVudENvbnN0YW50cyA9IHJlcXVpcmUoJy4vRXZlbnRDb25zdGFudHMnKTtcbnZhciBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCcuL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlcicpO1xudmFyIFJlYWN0Q29tcG9uZW50QnJvd3NlckVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9SZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudCcpO1xudmFyIFJlYWN0RE9NQnV0dG9uID0gcmVxdWlyZSgnLi9SZWFjdERPTUJ1dHRvbicpO1xudmFyIFJlYWN0RE9NSW5wdXQgPSByZXF1aXJlKCcuL1JlYWN0RE9NSW5wdXQnKTtcbnZhciBSZWFjdERPTU9wdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RET01PcHRpb24nKTtcbnZhciBSZWFjdERPTVNlbGVjdCA9IHJlcXVpcmUoJy4vUmVhY3RET01TZWxlY3QnKTtcbnZhciBSZWFjdERPTVRleHRhcmVhID0gcmVxdWlyZSgnLi9SZWFjdERPTVRleHRhcmVhJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xudmFyIFJlYWN0TXVsdGlDaGlsZCA9IHJlcXVpcmUoJy4vUmVhY3RNdWx0aUNoaWxkJyk7XG52YXIgUmVhY3RQZXJmID0gcmVxdWlyZSgnLi9SZWFjdFBlcmYnKTtcbnZhciBSZWFjdFVwZGF0ZVF1ZXVlID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZVF1ZXVlJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vY2FuRGVmaW5lUHJvcGVydHknKTtcbnZhciBlc2NhcGVUZXh0Q29udGVudEZvckJyb3dzZXIgPSByZXF1aXJlKCcuL2VzY2FwZVRleHRDb250ZW50Rm9yQnJvd3NlcicpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIGlzRXZlbnRTdXBwb3J0ZWQgPSByZXF1aXJlKCcuL2lzRXZlbnRTdXBwb3J0ZWQnKTtcbnZhciBrZXlPZiA9IHJlcXVpcmUoJ2ZianMvbGliL2tleU9mJyk7XG52YXIgc2V0SW5uZXJIVE1MID0gcmVxdWlyZSgnLi9zZXRJbm5lckhUTUwnKTtcbnZhciBzZXRUZXh0Q29udGVudCA9IHJlcXVpcmUoJy4vc2V0VGV4dENvbnRlbnQnKTtcbnZhciBzaGFsbG93RXF1YWwgPSByZXF1aXJlKCdmYmpzL2xpYi9zaGFsbG93RXF1YWwnKTtcbnZhciB2YWxpZGF0ZURPTU5lc3RpbmcgPSByZXF1aXJlKCcuL3ZhbGlkYXRlRE9NTmVzdGluZycpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBkZWxldGVMaXN0ZW5lciA9IFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5kZWxldGVMaXN0ZW5lcjtcbnZhciBsaXN0ZW5UbyA9IFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5saXN0ZW5UbztcbnZhciByZWdpc3RyYXRpb25OYW1lTW9kdWxlcyA9IFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcztcblxuLy8gRm9yIHF1aWNrbHkgbWF0Y2hpbmcgY2hpbGRyZW4gdHlwZSwgdG8gdGVzdCBpZiBjYW4gYmUgdHJlYXRlZCBhcyBjb250ZW50LlxudmFyIENPTlRFTlRfVFlQRVMgPSB7ICdzdHJpbmcnOiB0cnVlLCAnbnVtYmVyJzogdHJ1ZSB9O1xuXG52YXIgQ0hJTERSRU4gPSBrZXlPZih7IGNoaWxkcmVuOiBudWxsIH0pO1xudmFyIFNUWUxFID0ga2V5T2YoeyBzdHlsZTogbnVsbCB9KTtcbnZhciBIVE1MID0ga2V5T2YoeyBfX2h0bWw6IG51bGwgfSk7XG5cbnZhciBFTEVNRU5UX05PREVfVFlQRSA9IDE7XG5cbmZ1bmN0aW9uIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShpbnRlcm5hbEluc3RhbmNlKSB7XG4gIGlmIChpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgdmFyIG93bmVyID0gaW50ZXJuYWxJbnN0YW5jZS5fY3VycmVudEVsZW1lbnQuX293bmVyIHx8IG51bGw7XG4gICAgaWYgKG93bmVyKSB7XG4gICAgICB2YXIgbmFtZSA9IG93bmVyLmdldE5hbWUoKTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIHJldHVybiAnIFRoaXMgRE9NIG5vZGUgd2FzIHJlbmRlcmVkIGJ5IGAnICsgbmFtZSArICdgLic7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxudmFyIGxlZ2FjeVByb3BzRGVzY3JpcHRvcjtcbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGxlZ2FjeVByb3BzRGVzY3JpcHRvciA9IHtcbiAgICBwcm9wczoge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMuX3JlYWN0SW50ZXJuYWxDb21wb25lbnQ7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnUmVhY3RET01Db21wb25lbnQ6IERvIG5vdCBhY2Nlc3MgLnByb3BzIG9mIGEgRE9NIG5vZGU7IGluc3RlYWQsICcgKyAncmVjcmVhdGUgdGhlIHByb3BzIGFzIGByZW5kZXJgIGRpZCBvcmlnaW5hbGx5IG9yIHJlYWQgdGhlIERPTSAnICsgJ3Byb3BlcnRpZXMvYXR0cmlidXRlcyBkaXJlY3RseSBmcm9tIHRoaXMgbm9kZSAoZS5nLiwgJyArICd0aGlzLnJlZnMuYm94LmNsYXNzTmFtZSkuJXMnLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oY29tcG9uZW50KSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gbGVnYWN5R2V0RE9NTm9kZSgpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5fcmVhY3RJbnRlcm5hbENvbXBvbmVudDtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1JlYWN0RE9NQ29tcG9uZW50OiBEbyBub3QgYWNjZXNzIC5nZXRET01Ob2RlKCkgb2YgYSBET00gbm9kZTsgJyArICdpbnN0ZWFkLCB1c2UgdGhlIG5vZGUgZGlyZWN0bHkuJXMnLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oY29tcG9uZW50KSkgOiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59XG5cbmZ1bmN0aW9uIGxlZ2FjeUlzTW91bnRlZCgpIHtcbiAgdmFyIGNvbXBvbmVudCA9IHRoaXMuX3JlYWN0SW50ZXJuYWxDb21wb25lbnQ7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdSZWFjdERPTUNvbXBvbmVudDogRG8gbm90IGFjY2VzcyAuaXNNb3VudGVkKCkgb2YgYSBET00gbm9kZS4lcycsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gISFjb21wb25lbnQ7XG59XG5cbmZ1bmN0aW9uIGxlZ2FjeVNldFN0YXRlRXRjKCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHZhciBjb21wb25lbnQgPSB0aGlzLl9yZWFjdEludGVybmFsQ29tcG9uZW50O1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnUmVhY3RET01Db21wb25lbnQ6IERvIG5vdCBhY2Nlc3MgLnNldFN0YXRlKCksIC5yZXBsYWNlU3RhdGUoKSwgb3IgJyArICcuZm9yY2VVcGRhdGUoKSBvZiBhIERPTSBub2RlLiBUaGlzIGlzIGEgbm8tb3AuJXMnLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oY29tcG9uZW50KSkgOiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbGVnYWN5U2V0UHJvcHMocGFydGlhbFByb3BzLCBjYWxsYmFjaykge1xuICB2YXIgY29tcG9uZW50ID0gdGhpcy5fcmVhY3RJbnRlcm5hbENvbXBvbmVudDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1JlYWN0RE9NQ29tcG9uZW50OiBEbyBub3QgYWNjZXNzIC5zZXRQcm9wcygpIG9mIGEgRE9NIG5vZGUuICcgKyAnSW5zdGVhZCwgY2FsbCBSZWFjdERPTS5yZW5kZXIgYWdhaW4gYXQgdGhlIHRvcCBsZXZlbC4lcycsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoIWNvbXBvbmVudCkge1xuICAgIHJldHVybjtcbiAgfVxuICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVTZXRQcm9wc0ludGVybmFsKGNvbXBvbmVudCwgcGFydGlhbFByb3BzKTtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgUmVhY3RVcGRhdGVRdWV1ZS5lbnF1ZXVlQ2FsbGJhY2tJbnRlcm5hbChjb21wb25lbnQsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsZWdhY3lSZXBsYWNlUHJvcHMocGFydGlhbFByb3BzLCBjYWxsYmFjaykge1xuICB2YXIgY29tcG9uZW50ID0gdGhpcy5fcmVhY3RJbnRlcm5hbENvbXBvbmVudDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1JlYWN0RE9NQ29tcG9uZW50OiBEbyBub3QgYWNjZXNzIC5yZXBsYWNlUHJvcHMoKSBvZiBhIERPTSBub2RlLiAnICsgJ0luc3RlYWQsIGNhbGwgUmVhY3RET00ucmVuZGVyIGFnYWluIGF0IHRoZSB0b3AgbGV2ZWwuJXMnLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oY29tcG9uZW50KSkgOiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKCFjb21wb25lbnQpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgUmVhY3RVcGRhdGVRdWV1ZS5lbnF1ZXVlUmVwbGFjZVByb3BzSW50ZXJuYWwoY29tcG9uZW50LCBwYXJ0aWFsUHJvcHMpO1xuICBpZiAoY2FsbGJhY2spIHtcbiAgICBSZWFjdFVwZGF0ZVF1ZXVlLmVucXVldWVDYWxsYmFja0ludGVybmFsKGNvbXBvbmVudCwgY2FsbGJhY2spO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZyaWVuZGx5U3RyaW5naWZ5KG9iaikge1xuICBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gJ1snICsgb2JqLm1hcChmcmllbmRseVN0cmluZ2lmeSkuam9pbignLCAnKSArICddJztcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHBhaXJzID0gW107XG4gICAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgdmFyIGtleUVzY2FwZWQgPSAvXlthLXokX11bXFx3JF9dKiQvaS50ZXN0KGtleSkgPyBrZXkgOiBKU09OLnN0cmluZ2lmeShrZXkpO1xuICAgICAgICAgIHBhaXJzLnB1c2goa2V5RXNjYXBlZCArICc6ICcgKyBmcmllbmRseVN0cmluZ2lmeShvYmpba2V5XSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gJ3snICsgcGFpcnMuam9pbignLCAnKSArICd9JztcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuICdbZnVuY3Rpb24gb2JqZWN0XSc7XG4gIH1cbiAgLy8gRGlmZmVycyBmcm9tIEpTT04uc3RyaW5naWZ5IGluIHRoYXQgdW5kZWZpbmVkIGJlY2F1c2VzIHVuZGVmaW5lZCBhbmQgdGhhdFxuICAvLyBpbmYgYW5kIG5hbiBkb24ndCBiZWNvbWUgbnVsbFxuICByZXR1cm4gU3RyaW5nKG9iaik7XG59XG5cbnZhciBzdHlsZU11dGF0aW9uV2FybmluZyA9IHt9O1xuXG5mdW5jdGlvbiBjaGVja0FuZFdhcm5Gb3JNdXRhdGVkU3R5bGUoc3R5bGUxLCBzdHlsZTIsIGNvbXBvbmVudCkge1xuICBpZiAoc3R5bGUxID09IG51bGwgfHwgc3R5bGUyID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHNoYWxsb3dFcXVhbChzdHlsZTEsIHN0eWxlMikpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudC5fdGFnO1xuICB2YXIgb3duZXIgPSBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgdmFyIG93bmVyTmFtZTtcbiAgaWYgKG93bmVyKSB7XG4gICAgb3duZXJOYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICB9XG5cbiAgdmFyIGhhc2ggPSBvd25lck5hbWUgKyAnfCcgKyBjb21wb25lbnROYW1lO1xuXG4gIGlmIChzdHlsZU11dGF0aW9uV2FybmluZy5oYXNPd25Qcm9wZXJ0eShoYXNoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN0eWxlTXV0YXRpb25XYXJuaW5nW2hhc2hdID0gdHJ1ZTtcblxuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2Alc2Agd2FzIHBhc3NlZCBhIHN0eWxlIG9iamVjdCB0aGF0IGhhcyBwcmV2aW91c2x5IGJlZW4gbXV0YXRlZC4gJyArICdNdXRhdGluZyBgc3R5bGVgIGlzIGRlcHJlY2F0ZWQuIENvbnNpZGVyIGNsb25pbmcgaXQgYmVmb3JlaGFuZC4gQ2hlY2sgJyArICd0aGUgYHJlbmRlcmAgJXMuIFByZXZpb3VzIHN0eWxlOiAlcy4gTXV0YXRlZCBzdHlsZTogJXMuJywgY29tcG9uZW50TmFtZSwgb3duZXIgPyAnb2YgYCcgKyBvd25lck5hbWUgKyAnYCcgOiAndXNpbmcgPCcgKyBjb21wb25lbnROYW1lICsgJz4nLCBmcmllbmRseVN0cmluZ2lmeShzdHlsZTEpLCBmcmllbmRseVN0cmluZ2lmeShzdHlsZTIpKSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gY29tcG9uZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IHByb3BzXG4gKi9cbmZ1bmN0aW9uIGFzc2VydFZhbGlkUHJvcHMoY29tcG9uZW50LCBwcm9wcykge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIC8vIE5vdGUgdGhlIHVzZSBvZiBgPT1gIHdoaWNoIGNoZWNrcyBmb3IgbnVsbCBvciB1bmRlZmluZWQuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKHZvaWRFbGVtZW50VGFnc1tjb21wb25lbnQuX3RhZ10pIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHByb3BzLmNoaWxkcmVuID09IG51bGwgJiYgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT0gbnVsbCwgJyVzIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBub3QgaGF2ZSBgY2hpbGRyZW5gIG9yICcgKyAndXNlIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuJXMnLCBjb21wb25lbnQuX3RhZywgY29tcG9uZW50Ll9jdXJyZW50RWxlbWVudC5fb3duZXIgPyAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICcgKyBjb21wb25lbnQuX2N1cnJlbnRFbGVtZW50Ll9vd25lci5nZXROYW1lKCkgKyAnLicgOiAnJykgOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIGlmIChwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAhPSBudWxsKSB7XG4gICAgIShwcm9wcy5jaGlsZHJlbiA9PSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdDYW4gb25seSBzZXQgb25lIG9mIGBjaGlsZHJlbmAgb3IgYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgISh0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT09ICdvYmplY3QnICYmIEhUTUwgaW4gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ2Bwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAgbXVzdCBiZSBpbiB0aGUgZm9ybSBge19faHRtbDogLi4ufWAuICcgKyAnUGxlYXNlIHZpc2l0IGh0dHBzOi8vZmIubWUvcmVhY3QtaW52YXJpYW50LWRhbmdlcm91c2x5LXNldC1pbm5lci1odG1sICcgKyAnZm9yIG1vcmUgaW5mb3JtYXRpb24uJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcocHJvcHMuaW5uZXJIVE1MID09IG51bGwsICdEaXJlY3RseSBzZXR0aW5nIHByb3BlcnR5IGBpbm5lckhUTUxgIGlzIG5vdCBwZXJtaXR0ZWQuICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2t1cCBkb2N1bWVudGF0aW9uIG9uIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJykgOiB1bmRlZmluZWQ7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIXByb3BzLmNvbnRlbnRFZGl0YWJsZSB8fCBwcm9wcy5jaGlsZHJlbiA9PSBudWxsLCAnQSBjb21wb25lbnQgaXMgYGNvbnRlbnRFZGl0YWJsZWAgYW5kIGNvbnRhaW5zIGBjaGlsZHJlbmAgbWFuYWdlZCBieSAnICsgJ1JlYWN0LiBJdCBpcyBub3cgeW91ciByZXNwb25zaWJpbGl0eSB0byBndWFyYW50ZWUgdGhhdCBub25lIG9mICcgKyAndGhvc2Ugbm9kZXMgYXJlIHVuZXhwZWN0ZWRseSBtb2RpZmllZCBvciBkdXBsaWNhdGVkLiBUaGlzIGlzICcgKyAncHJvYmFibHkgbm90IGludGVudGlvbmFsLicpIDogdW5kZWZpbmVkO1xuICB9XG4gICEocHJvcHMuc3R5bGUgPT0gbnVsbCB8fCB0eXBlb2YgcHJvcHMuc3R5bGUgPT09ICdvYmplY3QnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdUaGUgYHN0eWxlYCBwcm9wIGV4cGVjdHMgYSBtYXBwaW5nIGZyb20gc3R5bGUgcHJvcGVydGllcyB0byB2YWx1ZXMsICcgKyAnbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArIFxcJ2VtXFwnfX0gd2hlbiAnICsgJ3VzaW5nIEpTWC4lcycsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShjb21wb25lbnQpKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGVucXVldWVQdXRMaXN0ZW5lcihpZCwgcmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIsIHRyYW5zYWN0aW9uKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gSUU4IGhhcyBubyBBUEkgZm9yIGV2ZW50IGNhcHR1cmluZyBhbmQgdGhlIGBvblNjcm9sbGAgZXZlbnQgZG9lc24ndFxuICAgIC8vIGJ1YmJsZS5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhyZWdpc3RyYXRpb25OYW1lICE9PSAnb25TY3JvbGwnIHx8IGlzRXZlbnRTdXBwb3J0ZWQoJ3Njcm9sbCcsIHRydWUpLCAnVGhpcyBicm93c2VyIGRvZXNuXFwndCBzdXBwb3J0IHRoZSBgb25TY3JvbGxgIGV2ZW50JykgOiB1bmRlZmluZWQ7XG4gIH1cbiAgdmFyIGNvbnRhaW5lciA9IFJlYWN0TW91bnQuZmluZFJlYWN0Q29udGFpbmVyRm9ySUQoaWQpO1xuICBpZiAoY29udGFpbmVyKSB7XG4gICAgdmFyIGRvYyA9IGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFX1RZUEUgPyBjb250YWluZXIub3duZXJEb2N1bWVudCA6IGNvbnRhaW5lcjtcbiAgICBsaXN0ZW5UbyhyZWdpc3RyYXRpb25OYW1lLCBkb2MpO1xuICB9XG4gIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUocHV0TGlzdGVuZXIsIHtcbiAgICBpZDogaWQsXG4gICAgcmVnaXN0cmF0aW9uTmFtZTogcmVnaXN0cmF0aW9uTmFtZSxcbiAgICBsaXN0ZW5lcjogbGlzdGVuZXJcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHB1dExpc3RlbmVyKCkge1xuICB2YXIgbGlzdGVuZXJUb1B1dCA9IHRoaXM7XG4gIFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci5wdXRMaXN0ZW5lcihsaXN0ZW5lclRvUHV0LmlkLCBsaXN0ZW5lclRvUHV0LnJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyVG9QdXQubGlzdGVuZXIpO1xufVxuXG4vLyBUaGVyZSBhcmUgc28gbWFueSBtZWRpYSBldmVudHMsIGl0IG1ha2VzIHNlbnNlIHRvIGp1c3Rcbi8vIG1haW50YWluIGEgbGlzdCByYXRoZXIgdGhhbiBjcmVhdGUgYSBgdHJhcEJ1YmJsZWRFdmVudGAgZm9yIGVhY2hcbnZhciBtZWRpYUV2ZW50cyA9IHtcbiAgdG9wQWJvcnQ6ICdhYm9ydCcsXG4gIHRvcENhblBsYXk6ICdjYW5wbGF5JyxcbiAgdG9wQ2FuUGxheVRocm91Z2g6ICdjYW5wbGF5dGhyb3VnaCcsXG4gIHRvcER1cmF0aW9uQ2hhbmdlOiAnZHVyYXRpb25jaGFuZ2UnLFxuICB0b3BFbXB0aWVkOiAnZW1wdGllZCcsXG4gIHRvcEVuY3J5cHRlZDogJ2VuY3J5cHRlZCcsXG4gIHRvcEVuZGVkOiAnZW5kZWQnLFxuICB0b3BFcnJvcjogJ2Vycm9yJyxcbiAgdG9wTG9hZGVkRGF0YTogJ2xvYWRlZGRhdGEnLFxuICB0b3BMb2FkZWRNZXRhZGF0YTogJ2xvYWRlZG1ldGFkYXRhJyxcbiAgdG9wTG9hZFN0YXJ0OiAnbG9hZHN0YXJ0JyxcbiAgdG9wUGF1c2U6ICdwYXVzZScsXG4gIHRvcFBsYXk6ICdwbGF5JyxcbiAgdG9wUGxheWluZzogJ3BsYXlpbmcnLFxuICB0b3BQcm9ncmVzczogJ3Byb2dyZXNzJyxcbiAgdG9wUmF0ZUNoYW5nZTogJ3JhdGVjaGFuZ2UnLFxuICB0b3BTZWVrZWQ6ICdzZWVrZWQnLFxuICB0b3BTZWVraW5nOiAnc2Vla2luZycsXG4gIHRvcFN0YWxsZWQ6ICdzdGFsbGVkJyxcbiAgdG9wU3VzcGVuZDogJ3N1c3BlbmQnLFxuICB0b3BUaW1lVXBkYXRlOiAndGltZXVwZGF0ZScsXG4gIHRvcFZvbHVtZUNoYW5nZTogJ3ZvbHVtZWNoYW5nZScsXG4gIHRvcFdhaXRpbmc6ICd3YWl0aW5nJ1xufTtcblxuZnVuY3Rpb24gdHJhcEJ1YmJsZWRFdmVudHNMb2NhbCgpIHtcbiAgdmFyIGluc3QgPSB0aGlzO1xuICAvLyBJZiBhIGNvbXBvbmVudCByZW5kZXJzIHRvIG51bGwgb3IgaWYgYW5vdGhlciBjb21wb25lbnQgZmF0YWxzIGFuZCBjYXVzZXNcbiAgLy8gdGhlIHN0YXRlIG9mIHRoZSB0cmVlIHRvIGJlIGNvcnJ1cHRlZCwgYG5vZGVgIGhlcmUgY2FuIGJlIG51bGwuXG4gICFpbnN0Ll9yb290Tm9kZUlEID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ011c3QgYmUgbW91bnRlZCB0byB0cmFwIGV2ZW50cycpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgdmFyIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUoaW5zdC5fcm9vdE5vZGVJRCk7XG4gICFub2RlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ3RyYXBCdWJibGVkRXZlbnQoLi4uKTogUmVxdWlyZXMgbm9kZSB0byBiZSByZW5kZXJlZC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgc3dpdGNoIChpbnN0Ll90YWcpIHtcbiAgICBjYXNlICdpZnJhbWUnOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIudHJhcEJ1YmJsZWRFdmVudChFdmVudENvbnN0YW50cy50b3BMZXZlbFR5cGVzLnRvcExvYWQsICdsb2FkJywgbm9kZSldO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAndmlkZW8nOlxuICAgIGNhc2UgJ2F1ZGlvJzpcblxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtdO1xuICAgICAgLy8gY3JlYXRlIGxpc3RlbmVyIGZvciBlYWNoIG1lZGlhIGV2ZW50XG4gICAgICBmb3IgKHZhciBldmVudCBpbiBtZWRpYUV2ZW50cykge1xuICAgICAgICBpZiAobWVkaWFFdmVudHMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XG4gICAgICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycy5wdXNoKFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlci50cmFwQnViYmxlZEV2ZW50KEV2ZW50Q29uc3RhbnRzLnRvcExldmVsVHlwZXNbZXZlbnRdLCBtZWRpYUV2ZW50c1tldmVudF0sIG5vZGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICBjYXNlICdpbWcnOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIudHJhcEJ1YmJsZWRFdmVudChFdmVudENvbnN0YW50cy50b3BMZXZlbFR5cGVzLnRvcEVycm9yLCAnZXJyb3InLCBub2RlKSwgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoRXZlbnRDb25zdGFudHMudG9wTGV2ZWxUeXBlcy50b3BMb2FkLCAnbG9hZCcsIG5vZGUpXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgaW5zdC5fd3JhcHBlclN0YXRlLmxpc3RlbmVycyA9IFtSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIudHJhcEJ1YmJsZWRFdmVudChFdmVudENvbnN0YW50cy50b3BMZXZlbFR5cGVzLnRvcFJlc2V0LCAncmVzZXQnLCBub2RlKSwgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnRyYXBCdWJibGVkRXZlbnQoRXZlbnRDb25zdGFudHMudG9wTGV2ZWxUeXBlcy50b3BTdWJtaXQsICdzdWJtaXQnLCBub2RlKV07XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudFJlYWR5SW5wdXRXcmFwcGVyKCkge1xuICBSZWFjdERPTUlucHV0Lm1vdW50UmVhZHlXcmFwcGVyKHRoaXMpO1xufVxuXG5mdW5jdGlvbiBwb3N0VXBkYXRlU2VsZWN0V3JhcHBlcigpIHtcbiAgUmVhY3RET01TZWxlY3QucG9zdFVwZGF0ZVdyYXBwZXIodGhpcyk7XG59XG5cbi8vIEZvciBIVE1MLCBjZXJ0YWluIHRhZ3Mgc2hvdWxkIG9taXQgdGhlaXIgY2xvc2UgdGFnLiBXZSBrZWVwIGEgd2hpdGVsaXN0IGZvclxuLy8gdGhvc2Ugc3BlY2lhbCBjYXNlZCB0YWdzLlxuXG52YXIgb21pdHRlZENsb3NlVGFncyA9IHtcbiAgJ2FyZWEnOiB0cnVlLFxuICAnYmFzZSc6IHRydWUsXG4gICdicic6IHRydWUsXG4gICdjb2wnOiB0cnVlLFxuICAnZW1iZWQnOiB0cnVlLFxuICAnaHInOiB0cnVlLFxuICAnaW1nJzogdHJ1ZSxcbiAgJ2lucHV0JzogdHJ1ZSxcbiAgJ2tleWdlbic6IHRydWUsXG4gICdsaW5rJzogdHJ1ZSxcbiAgJ21ldGEnOiB0cnVlLFxuICAncGFyYW0nOiB0cnVlLFxuICAnc291cmNlJzogdHJ1ZSxcbiAgJ3RyYWNrJzogdHJ1ZSxcbiAgJ3dicic6IHRydWVcbn07XG5cbi8vIE5PVEU6IG1lbnVpdGVtJ3MgY2xvc2UgdGFnIHNob3VsZCBiZSBvbWl0dGVkLCBidXQgdGhhdCBjYXVzZXMgcHJvYmxlbXMuXG52YXIgbmV3bGluZUVhdGluZ1RhZ3MgPSB7XG4gICdsaXN0aW5nJzogdHJ1ZSxcbiAgJ3ByZSc6IHRydWUsXG4gICd0ZXh0YXJlYSc6IHRydWVcbn07XG5cbi8vIEZvciBIVE1MLCBjZXJ0YWluIHRhZ3MgY2Fubm90IGhhdmUgY2hpbGRyZW4uIFRoaXMgaGFzIHRoZSBzYW1lIHB1cnBvc2UgYXNcbi8vIGBvbWl0dGVkQ2xvc2VUYWdzYCBleGNlcHQgdGhhdCBgbWVudWl0ZW1gIHNob3VsZCBzdGlsbCBoYXZlIGl0cyBjbG9zaW5nIHRhZy5cblxudmFyIHZvaWRFbGVtZW50VGFncyA9IGFzc2lnbih7XG4gICdtZW51aXRlbSc6IHRydWVcbn0sIG9taXR0ZWRDbG9zZVRhZ3MpO1xuXG4vLyBXZSBhY2NlcHQgYW55IHRhZyB0byBiZSByZW5kZXJlZCBidXQgc2luY2UgdGhpcyBnZXRzIGluamVjdGVkIGludG8gYXJiaXRyYXJ5XG4vLyBIVE1MLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IGl0J3MgYSBzYWZlIHRhZy5cbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy14bWwvI05ULU5hbWVcblxudmFyIFZBTElEX1RBR19SRUdFWCA9IC9eW2EtekEtWl1bYS16QS1aOl9cXC5cXC1cXGRdKiQvOyAvLyBTaW1wbGlmaWVkIHN1YnNldFxudmFyIHZhbGlkYXRlZFRhZ0NhY2hlID0ge307XG52YXIgaGFzT3duUHJvcGVydHkgPSAoe30pLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiB2YWxpZGF0ZURhbmdlcm91c1RhZyh0YWcpIHtcbiAgaWYgKCFoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbGlkYXRlZFRhZ0NhY2hlLCB0YWcpKSB7XG4gICAgIVZBTElEX1RBR19SRUdFWC50ZXN0KHRhZykgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnSW52YWxpZCB0YWc6ICVzJywgdGFnKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgdmFsaWRhdGVkVGFnQ2FjaGVbdGFnXSA9IHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0NoaWxkQ29udGV4dERldihjb250ZXh0LCBpbnN0KSB7XG4gIC8vIFBhc3MgZG93biBvdXIgdGFnIG5hbWUgdG8gY2hpbGQgY29tcG9uZW50cyBmb3IgdmFsaWRhdGlvbiBwdXJwb3Nlc1xuICBjb250ZXh0ID0gYXNzaWduKHt9LCBjb250ZXh0KTtcbiAgdmFyIGluZm8gPSBjb250ZXh0W3ZhbGlkYXRlRE9NTmVzdGluZy5hbmNlc3RvckluZm9Db250ZXh0S2V5XTtcbiAgY29udGV4dFt2YWxpZGF0ZURPTU5lc3RpbmcuYW5jZXN0b3JJbmZvQ29udGV4dEtleV0gPSB2YWxpZGF0ZURPTU5lc3RpbmcudXBkYXRlZEFuY2VzdG9ySW5mbyhpbmZvLCBpbnN0Ll90YWcsIGluc3QpO1xuICByZXR1cm4gY29udGV4dDtcbn1cblxuZnVuY3Rpb24gaXNDdXN0b21Db21wb25lbnQodGFnTmFtZSwgcHJvcHMpIHtcbiAgcmV0dXJuIHRhZ05hbWUuaW5kZXhPZignLScpID49IDAgfHwgcHJvcHMuaXMgIT0gbnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IFJlYWN0IGNsYXNzIHRoYXQgaXMgaWRlbXBvdGVudCBhbmQgY2FwYWJsZSBvZiBjb250YWluaW5nIG90aGVyXG4gKiBSZWFjdCBjb21wb25lbnRzLiBJdCBhY2NlcHRzIGV2ZW50IGxpc3RlbmVycyBhbmQgRE9NIHByb3BlcnRpZXMgdGhhdCBhcmVcbiAqIHZhbGlkIGFjY29yZGluZyB0byBgRE9NUHJvcGVydHlgLlxuICpcbiAqICAtIEV2ZW50IGxpc3RlbmVyczogYG9uQ2xpY2tgLCBgb25Nb3VzZURvd25gLCBldGMuXG4gKiAgLSBET00gcHJvcGVydGllczogYGNsYXNzTmFtZWAsIGBuYW1lYCwgYHRpdGxlYCwgZXRjLlxuICpcbiAqIFRoZSBgc3R5bGVgIHByb3BlcnR5IGZ1bmN0aW9ucyBkaWZmZXJlbnRseSBmcm9tIHRoZSBET00gQVBJLiBJdCBhY2NlcHRzIGFuXG4gKiBvYmplY3QgbWFwcGluZyBvZiBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcy5cbiAqXG4gKiBAY29uc3RydWN0b3IgUmVhY3RET01Db21wb25lbnRcbiAqIEBleHRlbmRzIFJlYWN0TXVsdGlDaGlsZFxuICovXG5mdW5jdGlvbiBSZWFjdERPTUNvbXBvbmVudCh0YWcpIHtcbiAgdmFsaWRhdGVEYW5nZXJvdXNUYWcodGFnKTtcbiAgdGhpcy5fdGFnID0gdGFnLnRvTG93ZXJDYXNlKCk7XG4gIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBudWxsO1xuICB0aGlzLl9wcmV2aW91c1N0eWxlID0gbnVsbDtcbiAgdGhpcy5fcHJldmlvdXNTdHlsZUNvcHkgPSBudWxsO1xuICB0aGlzLl9yb290Tm9kZUlEID0gbnVsbDtcbiAgdGhpcy5fd3JhcHBlclN0YXRlID0gbnVsbDtcbiAgdGhpcy5fdG9wTGV2ZWxXcmFwcGVyID0gbnVsbDtcbiAgdGhpcy5fbm9kZVdpdGhMZWdhY3lQcm9wZXJ0aWVzID0gbnVsbDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB0aGlzLl91bnByb2Nlc3NlZENvbnRleHREZXYgPSBudWxsO1xuICAgIHRoaXMuX3Byb2Nlc3NlZENvbnRleHREZXYgPSBudWxsO1xuICB9XG59XG5cblJlYWN0RE9NQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gJ1JlYWN0RE9NQ29tcG9uZW50JztcblxuUmVhY3RET01Db21wb25lbnQuTWl4aW4gPSB7XG5cbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHRoaXMuX2N1cnJlbnRFbGVtZW50ID0gZWxlbWVudDtcbiAgfSxcblxuICAvKipcbiAgICogR2VuZXJhdGVzIHJvb3QgdGFnIG1hcmt1cCB0aGVuIHJlY3Vyc2VzLiBUaGlzIG1ldGhvZCBoYXMgc2lkZSBlZmZlY3RzIGFuZFxuICAgKiBpcyBub3QgaWRlbXBvdGVudC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByb290SUQgVGhlIHJvb3QgRE9NIElEIGZvciB0aGlzIG5vZGUuXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbnxSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge29iamVjdH0gY29udGV4dFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjb21wdXRlZCBtYXJrdXAuXG4gICAqL1xuICBtb3VudENvbXBvbmVudDogZnVuY3Rpb24gKHJvb3RJRCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICB0aGlzLl9yb290Tm9kZUlEID0gcm9vdElEO1xuXG4gICAgdmFyIHByb3BzID0gdGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3RhZykge1xuICAgICAgY2FzZSAnaWZyYW1lJzpcbiAgICAgIGNhc2UgJ2ltZyc6XG4gICAgICBjYXNlICdmb3JtJzpcbiAgICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICAgIGNhc2UgJ2F1ZGlvJzpcbiAgICAgICAgdGhpcy5fd3JhcHBlclN0YXRlID0ge1xuICAgICAgICAgIGxpc3RlbmVyczogbnVsbFxuICAgICAgICB9O1xuICAgICAgICB0cmFuc2FjdGlvbi5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKHRyYXBCdWJibGVkRXZlbnRzTG9jYWwsIHRoaXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgICAgIHByb3BzID0gUmVhY3RET01CdXR0b24uZ2V0TmF0aXZlUHJvcHModGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgICAgUmVhY3RET01JbnB1dC5tb3VudFdyYXBwZXIodGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBwcm9wcyA9IFJlYWN0RE9NSW5wdXQuZ2V0TmF0aXZlUHJvcHModGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICAgIFJlYWN0RE9NT3B0aW9uLm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01PcHRpb24uZ2V0TmF0aXZlUHJvcHModGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIFJlYWN0RE9NU2VsZWN0Lm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01TZWxlY3QuZ2V0TmF0aXZlUHJvcHModGhpcywgcHJvcHMsIGNvbnRleHQpO1xuICAgICAgICBjb250ZXh0ID0gUmVhY3RET01TZWxlY3QucHJvY2Vzc0NoaWxkQ29udGV4dCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICBSZWFjdERPTVRleHRhcmVhLm1vdW50V3JhcHBlcih0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIHByb3BzID0gUmVhY3RET01UZXh0YXJlYS5nZXROYXRpdmVQcm9wcyh0aGlzLCBwcm9wcywgY29udGV4dCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGFzc2VydFZhbGlkUHJvcHModGhpcywgcHJvcHMpO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAoY29udGV4dFt2YWxpZGF0ZURPTU5lc3RpbmcuYW5jZXN0b3JJbmZvQ29udGV4dEtleV0pIHtcbiAgICAgICAgdmFsaWRhdGVET01OZXN0aW5nKHRoaXMuX3RhZywgdGhpcywgY29udGV4dFt2YWxpZGF0ZURPTU5lc3RpbmcuYW5jZXN0b3JJbmZvQ29udGV4dEtleV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB0aGlzLl91bnByb2Nlc3NlZENvbnRleHREZXYgPSBjb250ZXh0O1xuICAgICAgdGhpcy5fcHJvY2Vzc2VkQ29udGV4dERldiA9IHByb2Nlc3NDaGlsZENvbnRleHREZXYoY29udGV4dCwgdGhpcyk7XG4gICAgICBjb250ZXh0ID0gdGhpcy5fcHJvY2Vzc2VkQ29udGV4dERldjtcbiAgICB9XG5cbiAgICB2YXIgbW91bnRJbWFnZTtcbiAgICBpZiAodHJhbnNhY3Rpb24udXNlQ3JlYXRlRWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBjb250ZXh0W1JlYWN0TW91bnQub3duZXJEb2N1bWVudENvbnRleHRLZXldO1xuICAgICAgdmFyIGVsID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGUpO1xuICAgICAgRE9NUHJvcGVydHlPcGVyYXRpb25zLnNldEF0dHJpYnV0ZUZvcklEKGVsLCB0aGlzLl9yb290Tm9kZUlEKTtcbiAgICAgIC8vIFBvcHVsYXRlIG5vZGUgY2FjaGVcbiAgICAgIFJlYWN0TW91bnQuZ2V0SUQoZWwpO1xuICAgICAgdGhpcy5fdXBkYXRlRE9NUHJvcGVydGllcyh7fSwgcHJvcHMsIHRyYW5zYWN0aW9uLCBlbCk7XG4gICAgICB0aGlzLl9jcmVhdGVJbml0aWFsQ2hpbGRyZW4odHJhbnNhY3Rpb24sIHByb3BzLCBjb250ZXh0LCBlbCk7XG4gICAgICBtb3VudEltYWdlID0gZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB0YWdPcGVuID0gdGhpcy5fY3JlYXRlT3BlblRhZ01hcmt1cEFuZFB1dExpc3RlbmVycyh0cmFuc2FjdGlvbiwgcHJvcHMpO1xuICAgICAgdmFyIHRhZ0NvbnRlbnQgPSB0aGlzLl9jcmVhdGVDb250ZW50TWFya3VwKHRyYW5zYWN0aW9uLCBwcm9wcywgY29udGV4dCk7XG4gICAgICBpZiAoIXRhZ0NvbnRlbnQgJiYgb21pdHRlZENsb3NlVGFnc1t0aGlzLl90YWddKSB7XG4gICAgICAgIG1vdW50SW1hZ2UgPSB0YWdPcGVuICsgJy8+JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1vdW50SW1hZ2UgPSB0YWdPcGVuICsgJz4nICsgdGFnQ29udGVudCArICc8LycgKyB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlICsgJz4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUobW91bnRSZWFkeUlucHV0V3JhcHBlciwgdGhpcyk7XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlICdidXR0b24nOlxuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgaWYgKHByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoQXV0b0ZvY3VzVXRpbHMuZm9jdXNET01Db21wb25lbnQsIHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBtb3VudEltYWdlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIG1hcmt1cCBmb3IgdGhlIG9wZW4gdGFnIGFuZCBhbGwgYXR0cmlidXRlcy5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaGFzIHNpZGUgZWZmZWN0cyBiZWNhdXNlIGV2ZW50cyBnZXQgcmVnaXN0ZXJlZC5cbiAgICpcbiAgICogSXRlcmF0aW5nIG92ZXIgb2JqZWN0IHByb3BlcnRpZXMgaXMgZmFzdGVyIHRoYW4gaXRlcmF0aW5nIG92ZXIgYXJyYXlzLlxuICAgKiBAc2VlIGh0dHA6Ly9qc3BlcmYuY29tL29iai12cy1hcnItaXRlcmF0aW9uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbnxSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAgICogQHJldHVybiB7c3RyaW5nfSBNYXJrdXAgb2Ygb3BlbmluZyB0YWcuXG4gICAqL1xuICBfY3JlYXRlT3BlblRhZ01hcmt1cEFuZFB1dExpc3RlbmVyczogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBwcm9wcykge1xuICAgIHZhciByZXQgPSAnPCcgKyB0aGlzLl9jdXJyZW50RWxlbWVudC50eXBlO1xuXG4gICAgZm9yICh2YXIgcHJvcEtleSBpbiBwcm9wcykge1xuICAgICAgaWYgKCFwcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wS2V5XTtcbiAgICAgIGlmIChwcm9wVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lTW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICBpZiAocHJvcFZhbHVlKSB7XG4gICAgICAgICAgZW5xdWV1ZVB1dExpc3RlbmVyKHRoaXMuX3Jvb3ROb2RlSUQsIHByb3BLZXksIHByb3BWYWx1ZSwgdHJhbnNhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvcEtleSA9PT0gU1RZTEUpIHtcbiAgICAgICAgICBpZiAocHJvcFZhbHVlKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICAvLyBTZWUgYF91cGRhdGVET01Qcm9wZXJ0aWVzYC4gc3R5bGUgYmxvY2tcbiAgICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNTdHlsZSA9IHByb3BWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb3BWYWx1ZSA9IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gYXNzaWduKHt9LCBwcm9wcy5zdHlsZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByb3BWYWx1ZSA9IENTU1Byb3BlcnR5T3BlcmF0aW9ucy5jcmVhdGVNYXJrdXBGb3JTdHlsZXMocHJvcFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbWFya3VwID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuX3RhZyAhPSBudWxsICYmIGlzQ3VzdG9tQ29tcG9uZW50KHRoaXMuX3RhZywgcHJvcHMpKSB7XG4gICAgICAgICAgaWYgKHByb3BLZXkgIT09IENISUxEUkVOKSB7XG4gICAgICAgICAgICBtYXJrdXAgPSBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuY3JlYXRlTWFya3VwRm9yQ3VzdG9tQXR0cmlidXRlKHByb3BLZXksIHByb3BWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1hcmt1cCA9IERPTVByb3BlcnR5T3BlcmF0aW9ucy5jcmVhdGVNYXJrdXBGb3JQcm9wZXJ0eShwcm9wS2V5LCBwcm9wVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXJrdXApIHtcbiAgICAgICAgICByZXQgKz0gJyAnICsgbWFya3VwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yIHN0YXRpYyBwYWdlcywgbm8gbmVlZCB0byBwdXQgUmVhY3QgSUQgYW5kIGNoZWNrc3VtLiBTYXZlcyBsb3RzIG9mXG4gICAgLy8gYnl0ZXMuXG4gICAgaWYgKHRyYW5zYWN0aW9uLnJlbmRlclRvU3RhdGljTWFya3VwKSB7XG4gICAgICByZXR1cm4gcmV0O1xuICAgIH1cblxuICAgIHZhciBtYXJrdXBGb3JJRCA9IERPTVByb3BlcnR5T3BlcmF0aW9ucy5jcmVhdGVNYXJrdXBGb3JJRCh0aGlzLl9yb290Tm9kZUlEKTtcbiAgICByZXR1cm4gcmV0ICsgJyAnICsgbWFya3VwRm9ySUQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgbWFya3VwIGZvciB0aGUgY29udGVudCBiZXR3ZWVuIHRoZSB0YWdzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb258UmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0XG4gICAqIEByZXR1cm4ge3N0cmluZ30gQ29udGVudCBtYXJrdXAuXG4gICAqL1xuICBfY3JlYXRlQ29udGVudE1hcmt1cDogZnVuY3Rpb24gKHRyYW5zYWN0aW9uLCBwcm9wcywgY29udGV4dCkge1xuICAgIHZhciByZXQgPSAnJztcblxuICAgIC8vIEludGVudGlvbmFsIHVzZSBvZiAhPSB0byBhdm9pZCBjYXRjaGluZyB6ZXJvL2ZhbHNlLlxuICAgIHZhciBpbm5lckhUTUwgPSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTDtcbiAgICBpZiAoaW5uZXJIVE1MICE9IG51bGwpIHtcbiAgICAgIGlmIChpbm5lckhUTUwuX19odG1sICE9IG51bGwpIHtcbiAgICAgICAgcmV0ID0gaW5uZXJIVE1MLl9faHRtbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNvbnRlbnRUb1VzZSA9IENPTlRFTlRfVFlQRVNbdHlwZW9mIHByb3BzLmNoaWxkcmVuXSA/IHByb3BzLmNoaWxkcmVuIDogbnVsbDtcbiAgICAgIHZhciBjaGlsZHJlblRvVXNlID0gY29udGVudFRvVXNlICE9IG51bGwgPyBudWxsIDogcHJvcHMuY2hpbGRyZW47XG4gICAgICBpZiAoY29udGVudFRvVXNlICE9IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogVmFsaWRhdGUgdGhhdCB0ZXh0IGlzIGFsbG93ZWQgYXMgYSBjaGlsZCBvZiB0aGlzIG5vZGVcbiAgICAgICAgcmV0ID0gZXNjYXBlVGV4dENvbnRlbnRGb3JCcm93c2VyKGNvbnRlbnRUb1VzZSk7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuVG9Vc2UgIT0gbnVsbCkge1xuICAgICAgICB2YXIgbW91bnRJbWFnZXMgPSB0aGlzLm1vdW50Q2hpbGRyZW4oY2hpbGRyZW5Ub1VzZSwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgICAgICByZXQgPSBtb3VudEltYWdlcy5qb2luKCcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5ld2xpbmVFYXRpbmdUYWdzW3RoaXMuX3RhZ10gJiYgcmV0LmNoYXJBdCgwKSA9PT0gJ1xcbicpIHtcbiAgICAgIC8vIHRleHQvaHRtbCBpZ25vcmVzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgaW4gdGhlc2UgdGFncyBpZiBpdCdzIGEgbmV3bGluZVxuICAgICAgLy8gUHJlZmVyIHRvIGJyZWFrIGFwcGxpY2F0aW9uL3htbCBvdmVyIHRleHQvaHRtbCAoZm9yIG5vdykgYnkgYWRkaW5nXG4gICAgICAvLyBhIG5ld2xpbmUgc3BlY2lmaWNhbGx5IHRvIGdldCBlYXRlbiBieSB0aGUgcGFyc2VyLiAoQWx0ZXJuYXRlbHkgZm9yXG4gICAgICAvLyB0ZXh0YXJlYXMsIHJlcGxhY2luZyBcIl5cXG5cIiB3aXRoIFwiXFxyXFxuXCIgZG9lc24ndCBnZXQgZWF0ZW4sIGFuZCB0aGUgZmlyc3RcbiAgICAgIC8vIFxcciBpcyBub3JtYWxpemVkIG91dCBieSBIVE1MVGV4dEFyZWFFbGVtZW50I3ZhbHVlLilcbiAgICAgIC8vIFNlZTogPGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwtcG9seWdsb3QvI25ld2xpbmVzLWluLXRleHRhcmVhLWFuZC1wcmU+XG4gICAgICAvLyBTZWU6IDxodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9zeW50YXguaHRtbCNlbGVtZW50LXJlc3RyaWN0aW9ucz5cbiAgICAgIC8vIFNlZTogPGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3N5bnRheC5odG1sI25ld2xpbmVzPlxuICAgICAgLy8gU2VlOiBQYXJzaW5nIG9mIFwidGV4dGFyZWFcIiBcImxpc3RpbmdcIiBhbmQgXCJwcmVcIiBlbGVtZW50c1xuICAgICAgLy8gIGZyb20gPGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHk+XG4gICAgICByZXR1cm4gJ1xcbicgKyByZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9LFxuXG4gIF9jcmVhdGVJbml0aWFsQ2hpbGRyZW46IGZ1bmN0aW9uICh0cmFuc2FjdGlvbiwgcHJvcHMsIGNvbnRleHQsIGVsKSB7XG4gICAgLy8gSW50ZW50aW9uYWwgdXNlIG9mICE9IHRvIGF2b2lkIGNhdGNoaW5nIHplcm8vZmFsc2UuXG4gICAgdmFyIGlubmVySFRNTCA9IHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MO1xuICAgIGlmIChpbm5lckhUTUwgIT0gbnVsbCkge1xuICAgICAgaWYgKGlubmVySFRNTC5fX2h0bWwgIT0gbnVsbCkge1xuICAgICAgICBzZXRJbm5lckhUTUwoZWwsIGlubmVySFRNTC5fX2h0bWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY29udGVudFRvVXNlID0gQ09OVEVOVF9UWVBFU1t0eXBlb2YgcHJvcHMuY2hpbGRyZW5dID8gcHJvcHMuY2hpbGRyZW4gOiBudWxsO1xuICAgICAgdmFyIGNoaWxkcmVuVG9Vc2UgPSBjb250ZW50VG9Vc2UgIT0gbnVsbCA/IG51bGwgOiBwcm9wcy5jaGlsZHJlbjtcbiAgICAgIGlmIChjb250ZW50VG9Vc2UgIT0gbnVsbCkge1xuICAgICAgICAvLyBUT0RPOiBWYWxpZGF0ZSB0aGF0IHRleHQgaXMgYWxsb3dlZCBhcyBhIGNoaWxkIG9mIHRoaXMgbm9kZVxuICAgICAgICBzZXRUZXh0Q29udGVudChlbCwgY29udGVudFRvVXNlKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hpbGRyZW5Ub1VzZSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBtb3VudEltYWdlcyA9IHRoaXMubW91bnRDaGlsZHJlbihjaGlsZHJlblRvVXNlLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW91bnRJbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBlbC5hcHBlbmRDaGlsZChtb3VudEltYWdlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY2VpdmVzIGEgbmV4dCBlbGVtZW50IGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnRcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0XG4gICAqL1xuICByZWNlaXZlQ29tcG9uZW50OiBmdW5jdGlvbiAobmV4dEVsZW1lbnQsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgdmFyIHByZXZFbGVtZW50ID0gdGhpcy5fY3VycmVudEVsZW1lbnQ7XG4gICAgdGhpcy5fY3VycmVudEVsZW1lbnQgPSBuZXh0RWxlbWVudDtcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCh0cmFuc2FjdGlvbiwgcHJldkVsZW1lbnQsIG5leHRFbGVtZW50LCBjb250ZXh0KTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlcyBhIG5hdGl2ZSBET00gY29tcG9uZW50IGFmdGVyIGl0IGhhcyBhbHJlYWR5IGJlZW4gYWxsb2NhdGVkIGFuZFxuICAgKiBhdHRhY2hlZCB0byB0aGUgRE9NLiBSZWNvbmNpbGVzIHRoZSByb290IERPTSBub2RlLCB0aGVuIHJlY3Vyc2VzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBwcmV2RWxlbWVudFxuICAgKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gbmV4dEVsZW1lbnRcbiAgICogQGludGVybmFsXG4gICAqIEBvdmVycmlkYWJsZVxuICAgKi9cbiAgdXBkYXRlQ29tcG9uZW50OiBmdW5jdGlvbiAodHJhbnNhY3Rpb24sIHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCwgY29udGV4dCkge1xuICAgIHZhciBsYXN0UHJvcHMgPSBwcmV2RWxlbWVudC5wcm9wcztcbiAgICB2YXIgbmV4dFByb3BzID0gdGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICBzd2l0Y2ggKHRoaXMuX3RhZykge1xuICAgICAgY2FzZSAnYnV0dG9uJzpcbiAgICAgICAgbGFzdFByb3BzID0gUmVhY3RET01CdXR0b24uZ2V0TmF0aXZlUHJvcHModGhpcywgbGFzdFByb3BzKTtcbiAgICAgICAgbmV4dFByb3BzID0gUmVhY3RET01CdXR0b24uZ2V0TmF0aXZlUHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgIFJlYWN0RE9NSW5wdXQudXBkYXRlV3JhcHBlcih0aGlzKTtcbiAgICAgICAgbGFzdFByb3BzID0gUmVhY3RET01JbnB1dC5nZXROYXRpdmVQcm9wcyh0aGlzLCBsYXN0UHJvcHMpO1xuICAgICAgICBuZXh0UHJvcHMgPSBSZWFjdERPTUlucHV0LmdldE5hdGl2ZVByb3BzKHRoaXMsIG5leHRQcm9wcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgbGFzdFByb3BzID0gUmVhY3RET01PcHRpb24uZ2V0TmF0aXZlUHJvcHModGhpcywgbGFzdFByb3BzKTtcbiAgICAgICAgbmV4dFByb3BzID0gUmVhY3RET01PcHRpb24uZ2V0TmF0aXZlUHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICBsYXN0UHJvcHMgPSBSZWFjdERPTVNlbGVjdC5nZXROYXRpdmVQcm9wcyh0aGlzLCBsYXN0UHJvcHMpO1xuICAgICAgICBuZXh0UHJvcHMgPSBSZWFjdERPTVNlbGVjdC5nZXROYXRpdmVQcm9wcyh0aGlzLCBuZXh0UHJvcHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgUmVhY3RET01UZXh0YXJlYS51cGRhdGVXcmFwcGVyKHRoaXMpO1xuICAgICAgICBsYXN0UHJvcHMgPSBSZWFjdERPTVRleHRhcmVhLmdldE5hdGl2ZVByb3BzKHRoaXMsIGxhc3RQcm9wcyk7XG4gICAgICAgIG5leHRQcm9wcyA9IFJlYWN0RE9NVGV4dGFyZWEuZ2V0TmF0aXZlUHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8vIElmIHRoZSBjb250ZXh0IGlzIHJlZmVyZW5jZS1lcXVhbCB0byB0aGUgb2xkIG9uZSwgcGFzcyBkb3duIHRoZSBzYW1lXG4gICAgICAvLyBwcm9jZXNzZWQgb2JqZWN0IHNvIHRoZSB1cGRhdGUgYmFpbG91dCBpbiBSZWFjdFJlY29uY2lsZXIgYmVoYXZlc1xuICAgICAgLy8gY29ycmVjdGx5IChhbmQgaWRlbnRpY2FsbHkgaW4gZGV2IGFuZCBwcm9kKS4gU2VlICM1MDA1LlxuICAgICAgaWYgKHRoaXMuX3VucHJvY2Vzc2VkQ29udGV4dERldiAhPT0gY29udGV4dCkge1xuICAgICAgICB0aGlzLl91bnByb2Nlc3NlZENvbnRleHREZXYgPSBjb250ZXh0O1xuICAgICAgICB0aGlzLl9wcm9jZXNzZWRDb250ZXh0RGV2ID0gcHJvY2Vzc0NoaWxkQ29udGV4dERldihjb250ZXh0LCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQgPSB0aGlzLl9wcm9jZXNzZWRDb250ZXh0RGV2O1xuICAgIH1cblxuICAgIGFzc2VydFZhbGlkUHJvcHModGhpcywgbmV4dFByb3BzKTtcbiAgICB0aGlzLl91cGRhdGVET01Qcm9wZXJ0aWVzKGxhc3RQcm9wcywgbmV4dFByb3BzLCB0cmFuc2FjdGlvbiwgbnVsbCk7XG4gICAgdGhpcy5fdXBkYXRlRE9NQ2hpbGRyZW4obGFzdFByb3BzLCBuZXh0UHJvcHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcblxuICAgIGlmICghY2FuRGVmaW5lUHJvcGVydHkgJiYgdGhpcy5fbm9kZVdpdGhMZWdhY3lQcm9wZXJ0aWVzKSB7XG4gICAgICB0aGlzLl9ub2RlV2l0aExlZ2FjeVByb3BlcnRpZXMucHJvcHMgPSBuZXh0UHJvcHM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3RhZyA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIC8vIDxzZWxlY3Q+IHZhbHVlIHVwZGF0ZSBuZWVkcyB0byBvY2N1ciBhZnRlciA8b3B0aW9uPiBjaGlsZHJlblxuICAgICAgLy8gcmVjb25jaWxpYXRpb25cbiAgICAgIHRyYW5zYWN0aW9uLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUocG9zdFVwZGF0ZVNlbGVjdFdyYXBwZXIsIHRoaXMpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogUmVjb25jaWxlcyB0aGUgcHJvcGVydGllcyBieSBkZXRlY3RpbmcgZGlmZmVyZW5jZXMgaW4gcHJvcGVydHkgdmFsdWVzIGFuZFxuICAgKiB1cGRhdGluZyB0aGUgRE9NIGFzIG5lY2Vzc2FyeS4gVGhpcyBmdW5jdGlvbiBpcyBwcm9iYWJseSB0aGUgc2luZ2xlIG1vc3RcbiAgICogY3JpdGljYWwgcGF0aCBmb3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLlxuICAgKlxuICAgKiBUT0RPOiBCZW5jaG1hcmsgd2hldGhlciBjaGVja2luZyBmb3IgY2hhbmdlZCB2YWx1ZXMgaW4gbWVtb3J5IGFjdHVhbGx5XG4gICAqICAgICAgIGltcHJvdmVzIHBlcmZvcm1hbmNlIChlc3BlY2lhbGx5IHN0YXRpY2FsbHkgcG9zaXRpb25lZCBlbGVtZW50cykuXG4gICAqIFRPRE86IEJlbmNobWFyayB0aGUgZWZmZWN0cyBvZiBwdXR0aW5nIHRoaXMgYXQgdGhlIHRvcCBzaW5jZSA5OSUgb2YgcHJvcHNcbiAgICogICAgICAgZG8gbm90IGNoYW5nZSBmb3IgYSBnaXZlbiByZWNvbmNpbGlhdGlvbi5cbiAgICogVE9ETzogQmVuY2htYXJrIGFyZWFzIHRoYXQgY2FuIGJlIGltcHJvdmVkIHdpdGggY2FjaGluZy5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtvYmplY3R9IGxhc3RQcm9wc1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV4dFByb3BzXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHs/RE9NRWxlbWVudH0gbm9kZVxuICAgKi9cbiAgX3VwZGF0ZURPTVByb3BlcnRpZXM6IGZ1bmN0aW9uIChsYXN0UHJvcHMsIG5leHRQcm9wcywgdHJhbnNhY3Rpb24sIG5vZGUpIHtcbiAgICB2YXIgcHJvcEtleTtcbiAgICB2YXIgc3R5bGVOYW1lO1xuICAgIHZhciBzdHlsZVVwZGF0ZXM7XG4gICAgZm9yIChwcm9wS2V5IGluIGxhc3RQcm9wcykge1xuICAgICAgaWYgKG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSB8fCAhbGFzdFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICAgIHZhciBsYXN0U3R5bGUgPSB0aGlzLl9wcmV2aW91c1N0eWxlQ29weTtcbiAgICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFN0eWxlKSB7XG4gICAgICAgICAgaWYgKGxhc3RTdHlsZS5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSBzdHlsZVVwZGF0ZXMgfHwge307XG4gICAgICAgICAgICBzdHlsZVVwZGF0ZXNbc3R5bGVOYW1lXSA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcmV2aW91c1N0eWxlQ29weSA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICAgIGlmIChsYXN0UHJvcHNbcHJvcEtleV0pIHtcbiAgICAgICAgICAvLyBPbmx5IGNhbGwgZGVsZXRlTGlzdGVuZXIgaWYgdGhlcmUgd2FzIGEgbGlzdGVuZXIgcHJldmlvdXNseSBvclxuICAgICAgICAgIC8vIGVsc2Ugd2lsbERlbGV0ZUxpc3RlbmVyIGdldHMgY2FsbGVkIHdoZW4gdGhlcmUgd2Fzbid0IGFjdHVhbGx5IGFcbiAgICAgICAgICAvLyBsaXN0ZW5lciAoZS5nLiwgb25DbGljaz17bnVsbH0pXG4gICAgICAgICAgZGVsZXRlTGlzdGVuZXIodGhpcy5fcm9vdE5vZGVJRCwgcHJvcEtleSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoRE9NUHJvcGVydHkucHJvcGVydGllc1twcm9wS2V5XSB8fCBET01Qcm9wZXJ0eS5pc0N1c3RvbUF0dHJpYnV0ZShwcm9wS2V5KSkge1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICBub2RlID0gUmVhY3RNb3VudC5nZXROb2RlKHRoaXMuX3Jvb3ROb2RlSUQpO1xuICAgICAgICB9XG4gICAgICAgIERPTVByb3BlcnR5T3BlcmF0aW9ucy5kZWxldGVWYWx1ZUZvclByb3BlcnR5KG5vZGUsIHByb3BLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgICB2YXIgbmV4dFByb3AgPSBuZXh0UHJvcHNbcHJvcEtleV07XG4gICAgICB2YXIgbGFzdFByb3AgPSBwcm9wS2V5ID09PSBTVFlMRSA/IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5IDogbGFzdFByb3BzW3Byb3BLZXldO1xuICAgICAgaWYgKCFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbmV4dFByb3AgPT09IGxhc3RQcm9wKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcCkge1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICBjaGVja0FuZFdhcm5Gb3JNdXRhdGVkU3R5bGUodGhpcy5fcHJldmlvdXNTdHlsZUNvcHksIHRoaXMuX3ByZXZpb3VzU3R5bGUsIHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNTdHlsZSA9IG5leHRQcm9wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuZXh0UHJvcCA9IHRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5ID0gYXNzaWduKHt9LCBuZXh0UHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcHJldmlvdXNTdHlsZUNvcHkgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsYXN0UHJvcCkge1xuICAgICAgICAgIC8vIFVuc2V0IHN0eWxlcyBvbiBgbGFzdFByb3BgIGJ1dCBub3Qgb24gYG5leHRQcm9wYC5cbiAgICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBsYXN0UHJvcCkge1xuICAgICAgICAgICAgaWYgKGxhc3RQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgKCFuZXh0UHJvcCB8fCAhbmV4dFByb3AuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkpIHtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzID0gc3R5bGVVcGRhdGVzIHx8IHt9O1xuICAgICAgICAgICAgICBzdHlsZVVwZGF0ZXNbc3R5bGVOYW1lXSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBVcGRhdGUgc3R5bGVzIHRoYXQgY2hhbmdlZCBzaW5jZSBgbGFzdFByb3BgLlxuICAgICAgICAgIGZvciAoc3R5bGVOYW1lIGluIG5leHRQcm9wKSB7XG4gICAgICAgICAgICBpZiAobmV4dFByb3AuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSAmJiBsYXN0UHJvcFtzdHlsZU5hbWVdICE9PSBuZXh0UHJvcFtzdHlsZU5hbWVdKSB7XG4gICAgICAgICAgICAgIHN0eWxlVXBkYXRlcyA9IHN0eWxlVXBkYXRlcyB8fCB7fTtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSBuZXh0UHJvcFtzdHlsZU5hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBSZWxpZXMgb24gYHVwZGF0ZVN0eWxlc0J5SURgIG5vdCBtdXRhdGluZyBgc3R5bGVVcGRhdGVzYC5cbiAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSBuZXh0UHJvcDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChyZWdpc3RyYXRpb25OYW1lTW9kdWxlcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICBpZiAobmV4dFByb3ApIHtcbiAgICAgICAgICBlbnF1ZXVlUHV0TGlzdGVuZXIodGhpcy5fcm9vdE5vZGVJRCwgcHJvcEtleSwgbmV4dFByb3AsIHRyYW5zYWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXN0UHJvcCkge1xuICAgICAgICAgIGRlbGV0ZUxpc3RlbmVyKHRoaXMuX3Jvb3ROb2RlSUQsIHByb3BLZXkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQ3VzdG9tQ29tcG9uZW50KHRoaXMuX3RhZywgbmV4dFByb3BzKSkge1xuICAgICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgICBub2RlID0gUmVhY3RNb3VudC5nZXROb2RlKHRoaXMuX3Jvb3ROb2RlSUQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9wS2V5ID09PSBDSElMRFJFTikge1xuICAgICAgICAgIG5leHRQcm9wID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuc2V0VmFsdWVGb3JBdHRyaWJ1dGUobm9kZSwgcHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgfSBlbHNlIGlmIChET01Qcm9wZXJ0eS5wcm9wZXJ0aWVzW3Byb3BLZXldIHx8IERPTVByb3BlcnR5LmlzQ3VzdG9tQXR0cmlidXRlKHByb3BLZXkpKSB7XG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUodGhpcy5fcm9vdE5vZGVJRCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgd2UncmUgdXBkYXRpbmcgdG8gbnVsbCBvciB1bmRlZmluZWQsIHdlIHNob3VsZCByZW1vdmUgdGhlIHByb3BlcnR5XG4gICAgICAgIC8vIGZyb20gdGhlIERPTSBub2RlIGluc3RlYWQgb2YgaW5hZHZlcnRhbnRseSBzZXR0aW5nIHRvIGEgc3RyaW5nLiBUaGlzXG4gICAgICAgIC8vIGJyaW5ncyB1cyBpbiBsaW5lIHdpdGggdGhlIHNhbWUgYmVoYXZpb3Igd2UgaGF2ZSBvbiBpbml0aWFsIHJlbmRlci5cbiAgICAgICAgaWYgKG5leHRQcm9wICE9IG51bGwpIHtcbiAgICAgICAgICBET01Qcm9wZXJ0eU9wZXJhdGlvbnMuc2V0VmFsdWVGb3JQcm9wZXJ0eShub2RlLCBwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgRE9NUHJvcGVydHlPcGVyYXRpb25zLmRlbGV0ZVZhbHVlRm9yUHJvcGVydHkobm9kZSwgcHJvcEtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0eWxlVXBkYXRlcykge1xuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUodGhpcy5fcm9vdE5vZGVJRCk7XG4gICAgICB9XG4gICAgICBDU1NQcm9wZXJ0eU9wZXJhdGlvbnMuc2V0VmFsdWVGb3JTdHlsZXMobm9kZSwgc3R5bGVVcGRhdGVzKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlY29uY2lsZXMgdGhlIGNoaWxkcmVuIHdpdGggdGhlIHZhcmlvdXMgcHJvcGVydGllcyB0aGF0IGFmZmVjdCB0aGVcbiAgICogY2hpbGRyZW4gY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGxhc3RQcm9wc1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV4dFByb3BzXG4gICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRleHRcbiAgICovXG4gIF91cGRhdGVET01DaGlsZHJlbjogZnVuY3Rpb24gKGxhc3RQcm9wcywgbmV4dFByb3BzLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIHZhciBsYXN0Q29udGVudCA9IENPTlRFTlRfVFlQRVNbdHlwZW9mIGxhc3RQcm9wcy5jaGlsZHJlbl0gPyBsYXN0UHJvcHMuY2hpbGRyZW4gOiBudWxsO1xuICAgIHZhciBuZXh0Q29udGVudCA9IENPTlRFTlRfVFlQRVNbdHlwZW9mIG5leHRQcm9wcy5jaGlsZHJlbl0gPyBuZXh0UHJvcHMuY2hpbGRyZW4gOiBudWxsO1xuXG4gICAgdmFyIGxhc3RIdG1sID0gbGFzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmIGxhc3RQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWw7XG4gICAgdmFyIG5leHRIdG1sID0gbmV4dFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmIG5leHRQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWw7XG5cbiAgICAvLyBOb3RlIHRoZSB1c2Ugb2YgYCE9YCB3aGljaCBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkLlxuICAgIHZhciBsYXN0Q2hpbGRyZW4gPSBsYXN0Q29udGVudCAhPSBudWxsID8gbnVsbCA6IGxhc3RQcm9wcy5jaGlsZHJlbjtcbiAgICB2YXIgbmV4dENoaWxkcmVuID0gbmV4dENvbnRlbnQgIT0gbnVsbCA/IG51bGwgOiBuZXh0UHJvcHMuY2hpbGRyZW47XG5cbiAgICAvLyBJZiB3ZSdyZSBzd2l0Y2hpbmcgZnJvbSBjaGlsZHJlbiB0byBjb250ZW50L2h0bWwgb3IgdmljZSB2ZXJzYSwgcmVtb3ZlXG4gICAgLy8gdGhlIG9sZCBjb250ZW50XG4gICAgdmFyIGxhc3RIYXNDb250ZW50T3JIdG1sID0gbGFzdENvbnRlbnQgIT0gbnVsbCB8fCBsYXN0SHRtbCAhPSBudWxsO1xuICAgIHZhciBuZXh0SGFzQ29udGVudE9ySHRtbCA9IG5leHRDb250ZW50ICE9IG51bGwgfHwgbmV4dEh0bWwgIT0gbnVsbDtcbiAgICBpZiAobGFzdENoaWxkcmVuICE9IG51bGwgJiYgbmV4dENoaWxkcmVuID09IG51bGwpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW4obnVsbCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAobGFzdEhhc0NvbnRlbnRPckh0bWwgJiYgIW5leHRIYXNDb250ZW50T3JIdG1sKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRleHRDb250ZW50KCcnKTtcbiAgICB9XG5cbiAgICBpZiAobmV4dENvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgaWYgKGxhc3RDb250ZW50ICE9PSBuZXh0Q29udGVudCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVRleHRDb250ZW50KCcnICsgbmV4dENvbnRlbnQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgaWYgKGxhc3RIdG1sICE9PSBuZXh0SHRtbCkge1xuICAgICAgICB0aGlzLnVwZGF0ZU1hcmt1cCgnJyArIG5leHRIdG1sKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5leHRDaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKG5leHRDaGlsZHJlbiwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogRGVzdHJveXMgYWxsIGV2ZW50IHJlZ2lzdHJhdGlvbnMgZm9yIHRoaXMgaW5zdGFuY2UuIERvZXMgbm90IHJlbW92ZSBmcm9tXG4gICAqIHRoZSBET00uIFRoYXQgbXVzdCBiZSBkb25lIGJ5IHRoZSBwYXJlbnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdW5tb3VudENvbXBvbmVudDogZnVuY3Rpb24gKCkge1xuICAgIHN3aXRjaCAodGhpcy5fdGFnKSB7XG4gICAgICBjYXNlICdpZnJhbWUnOlxuICAgICAgY2FzZSAnaW1nJzpcbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgY2FzZSAnYXVkaW8nOlxuICAgICAgICB2YXIgbGlzdGVuZXJzID0gdGhpcy5fd3JhcHBlclN0YXRlLmxpc3RlbmVycztcbiAgICAgICAgaWYgKGxpc3RlbmVycykge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsaXN0ZW5lcnNbaV0ucmVtb3ZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5wdXQnOlxuICAgICAgICBSZWFjdERPTUlucHV0LnVubW91bnRXcmFwcGVyKHRoaXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbXBvbmVudHMgbGlrZSA8aHRtbD4gPGhlYWQ+IGFuZCA8Ym9keT4gY2FuJ3QgYmUgcmVtb3ZlZCBvciBhZGRlZFxuICAgICAgICAgKiBlYXNpbHkgaW4gYSBjcm9zcy1icm93c2VyIHdheSwgaG93ZXZlciBpdCdzIHZhbHVhYmxlIHRvIGJlIGFibGUgdG9cbiAgICAgICAgICogdGFrZSBhZHZhbnRhZ2Ugb2YgUmVhY3QncyByZWNvbmNpbGlhdGlvbiBmb3Igc3R5bGluZyBhbmQgPHRpdGxlPlxuICAgICAgICAgKiBtYW5hZ2VtZW50LiBTbyB3ZSBqdXN0IGRvY3VtZW50IGl0IGFuZCB0aHJvdyBpbiBkYW5nZXJvdXMgY2FzZXMuXG4gICAgICAgICAqL1xuICAgICAgICAhZmFsc2UgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnPCVzPiB0cmllZCB0byB1bm1vdW50LiBCZWNhdXNlIG9mIGNyb3NzLWJyb3dzZXIgcXVpcmtzIGl0IGlzICcgKyAnaW1wb3NzaWJsZSB0byB1bm1vdW50IHNvbWUgdG9wLWxldmVsIGNvbXBvbmVudHMgKGVnIDxodG1sPiwgJyArICc8aGVhZD4sIGFuZCA8Ym9keT4pIHJlbGlhYmx5IGFuZCBlZmZpY2llbnRseS4gVG8gZml4IHRoaXMsIGhhdmUgYSAnICsgJ3NpbmdsZSB0b3AtbGV2ZWwgY29tcG9uZW50IHRoYXQgbmV2ZXIgdW5tb3VudHMgcmVuZGVyIHRoZXNlICcgKyAnZWxlbWVudHMuJywgdGhpcy5fdGFnKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHRoaXMudW5tb3VudENoaWxkcmVuKCk7XG4gICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLmRlbGV0ZUFsbExpc3RlbmVycyh0aGlzLl9yb290Tm9kZUlEKTtcbiAgICBSZWFjdENvbXBvbmVudEJyb3dzZXJFbnZpcm9ubWVudC51bm1vdW50SURGcm9tRW52aXJvbm1lbnQodGhpcy5fcm9vdE5vZGVJRCk7XG4gICAgdGhpcy5fcm9vdE5vZGVJRCA9IG51bGw7XG4gICAgdGhpcy5fd3JhcHBlclN0YXRlID0gbnVsbDtcbiAgICBpZiAodGhpcy5fbm9kZVdpdGhMZWdhY3lQcm9wZXJ0aWVzKSB7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuX25vZGVXaXRoTGVnYWN5UHJvcGVydGllcztcbiAgICAgIG5vZGUuX3JlYWN0SW50ZXJuYWxDb21wb25lbnQgPSBudWxsO1xuICAgICAgdGhpcy5fbm9kZVdpdGhMZWdhY3lQcm9wZXJ0aWVzID0gbnVsbDtcbiAgICB9XG4gIH0sXG5cbiAgZ2V0UHVibGljSW5zdGFuY2U6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuX25vZGVXaXRoTGVnYWN5UHJvcGVydGllcykge1xuICAgICAgdmFyIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUodGhpcy5fcm9vdE5vZGVJRCk7XG5cbiAgICAgIG5vZGUuX3JlYWN0SW50ZXJuYWxDb21wb25lbnQgPSB0aGlzO1xuICAgICAgbm9kZS5nZXRET01Ob2RlID0gbGVnYWN5R2V0RE9NTm9kZTtcbiAgICAgIG5vZGUuaXNNb3VudGVkID0gbGVnYWN5SXNNb3VudGVkO1xuICAgICAgbm9kZS5zZXRTdGF0ZSA9IGxlZ2FjeVNldFN0YXRlRXRjO1xuICAgICAgbm9kZS5yZXBsYWNlU3RhdGUgPSBsZWdhY3lTZXRTdGF0ZUV0YztcbiAgICAgIG5vZGUuZm9yY2VVcGRhdGUgPSBsZWdhY3lTZXRTdGF0ZUV0YztcbiAgICAgIG5vZGUuc2V0UHJvcHMgPSBsZWdhY3lTZXRQcm9wcztcbiAgICAgIG5vZGUucmVwbGFjZVByb3BzID0gbGVnYWN5UmVwbGFjZVByb3BzO1xuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoY2FuRGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhub2RlLCBsZWdhY3lQcm9wc0Rlc2NyaXB0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHVwZGF0ZUNvbXBvbmVudCB3aWxsIHVwZGF0ZSB0aGlzIHByb3BlcnR5IG9uIHN1YnNlcXVlbnQgcmVuZGVyc1xuICAgICAgICAgIG5vZGUucHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdXBkYXRlQ29tcG9uZW50IHdpbGwgdXBkYXRlIHRoaXMgcHJvcGVydHkgb24gc3Vic2VxdWVudCByZW5kZXJzXG4gICAgICAgIG5vZGUucHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fbm9kZVdpdGhMZWdhY3lQcm9wZXJ0aWVzID0gbm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX25vZGVXaXRoTGVnYWN5UHJvcGVydGllcztcbiAgfVxuXG59O1xuXG5SZWFjdFBlcmYubWVhc3VyZU1ldGhvZHMoUmVhY3RET01Db21wb25lbnQsICdSZWFjdERPTUNvbXBvbmVudCcsIHtcbiAgbW91bnRDb21wb25lbnQ6ICdtb3VudENvbXBvbmVudCcsXG4gIHVwZGF0ZUNvbXBvbmVudDogJ3VwZGF0ZUNvbXBvbmVudCdcbn0pO1xuXG5hc3NpZ24oUmVhY3RET01Db21wb25lbnQucHJvdG90eXBlLCBSZWFjdERPTUNvbXBvbmVudC5NaXhpbiwgUmVhY3RNdWx0aUNoaWxkLk1peGluKTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTUNvbXBvbmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01Db21wb25lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 94 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule AutoFocusUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactMount = __webpack_require__(28);\n\nvar findDOMNode = __webpack_require__(91);\nvar focusNode = __webpack_require__(95);\n\nvar Mixin = {\n componentDidMount: function componentDidMount() {\n if (this.props.autoFocus) {\n focusNode(findDOMNode(this));\n }\n }\n};\n\nvar AutoFocusUtils = {\n Mixin: Mixin,\n\n focusDOMComponent: function focusDOMComponent() {\n focusNode(ReactMount.getNode(this._rootNodeID));\n }\n};\n\nmodule.exports = AutoFocusUtils;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQXV0b0ZvY3VzVXRpbHMuanM/OWRiOSJdLCJuYW1lcyI6WyJSZWFjdE1vdW50IiwicmVxdWlyZSIsImZpbmRET01Ob2RlIiwiZm9jdXNOb2RlIiwiTWl4aW4iLCJjb21wb25lbnREaWRNb3VudCIsInByb3BzIiwiYXV0b0ZvY3VzIiwiQXV0b0ZvY3VzVXRpbHMiLCJmb2N1c0RPTUNvbXBvbmVudCIsImdldE5vZGUiLCJfcm9vdE5vZGVJRCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxhQUFhLG1CQUFBQyxDQUFRLEVBQVIsQ0FBakI7O0FBRUEsSUFBSUMsY0FBYyxtQkFBQUQsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUUsWUFBWSxtQkFBQUYsQ0FBUSxFQUFSLENBQWhCOztBQUVBLElBQUlHLFFBQVE7QUFDVkMscUJBQW1CLDZCQUFZO0FBQzdCLFFBQUksS0FBS0MsS0FBTCxDQUFXQyxTQUFmLEVBQTBCO0FBQ3hCSixnQkFBVUQsWUFBWSxJQUFaLENBQVY7QUFDRDtBQUNGO0FBTFMsQ0FBWjs7QUFRQSxJQUFJTSxpQkFBaUI7QUFDbkJKLFNBQU9BLEtBRFk7O0FBR25CSyxxQkFBbUIsNkJBQVk7QUFDN0JOLGNBQVVILFdBQVdVLE9BQVgsQ0FBbUIsS0FBS0MsV0FBeEIsQ0FBVjtBQUNEO0FBTGtCLENBQXJCOztBQVFBQyxPQUFPQyxPQUFQLEdBQWlCTCxjQUFqQiIsImZpbGUiOiI5NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBBdXRvRm9jdXNVdGlsc1xuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdE1vdW50ID0gcmVxdWlyZSgnLi9SZWFjdE1vdW50Jyk7XG5cbnZhciBmaW5kRE9NTm9kZSA9IHJlcXVpcmUoJy4vZmluZERPTU5vZGUnKTtcbnZhciBmb2N1c05vZGUgPSByZXF1aXJlKCdmYmpzL2xpYi9mb2N1c05vZGUnKTtcblxudmFyIE1peGluID0ge1xuICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgZm9jdXNOb2RlKGZpbmRET01Ob2RlKHRoaXMpKTtcbiAgICB9XG4gIH1cbn07XG5cbnZhciBBdXRvRm9jdXNVdGlscyA9IHtcbiAgTWl4aW46IE1peGluLFxuXG4gIGZvY3VzRE9NQ29tcG9uZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgZm9jdXNOb2RlKFJlYWN0TW91bnQuZ2V0Tm9kZSh0aGlzLl9yb290Tm9kZUlEKSk7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gQXV0b0ZvY3VzVXRpbHM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0F1dG9Gb2N1c1V0aWxzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 95 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule focusNode\n */\n\n'use strict';\n\n/**\n * @param {DOMElement} node input/textarea to focus\n */\n\nfunction focusNode(node) {\n // IE8 can throw \"Can't move focus to the control because it is invisible,\n // not enabled, or of a type that does not accept the focus.\" for all kinds of\n // reasons that are too expensive and fragile to test.\n try {\n node.focus();\n } catch (e) {}\n}\n\nmodule.exports = focusNode;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9mb2N1c05vZGUuanM/OTZjZCJdLCJuYW1lcyI6WyJmb2N1c05vZGUiLCJub2RlIiwiZm9jdXMiLCJlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUE7Ozs7QUFHQSxTQUFTQSxTQUFULENBQW1CQyxJQUFuQixFQUF5QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQSxNQUFJO0FBQ0ZBLFNBQUtDLEtBQUw7QUFDRCxHQUZELENBRUUsT0FBT0MsQ0FBUCxFQUFVLENBQUU7QUFDZjs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQkwsU0FBakIiLCJmaWxlIjoiOTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgZm9jdXNOb2RlXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZSBpbnB1dC90ZXh0YXJlYSB0byBmb2N1c1xuICovXG5mdW5jdGlvbiBmb2N1c05vZGUobm9kZSkge1xuICAvLyBJRTggY2FuIHRocm93IFwiQ2FuJ3QgbW92ZSBmb2N1cyB0byB0aGUgY29udHJvbCBiZWNhdXNlIGl0IGlzIGludmlzaWJsZSxcbiAgLy8gbm90IGVuYWJsZWQsIG9yIG9mIGEgdHlwZSB0aGF0IGRvZXMgbm90IGFjY2VwdCB0aGUgZm9jdXMuXCIgZm9yIGFsbCBraW5kcyBvZlxuICAvLyByZWFzb25zIHRoYXQgYXJlIHRvbyBleHBlbnNpdmUgYW5kIGZyYWdpbGUgdG8gdGVzdC5cbiAgdHJ5IHtcbiAgICBub2RlLmZvY3VzKCk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZm9jdXNOb2RlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2ZvY3VzTm9kZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 96 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSPropertyOperations\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = __webpack_require__(97);\nvar ExecutionEnvironment = __webpack_require__(9);\nvar ReactPerf = __webpack_require__(18);\n\nvar camelizeStyleName = __webpack_require__(98);\nvar dangerousStyleValue = __webpack_require__(100);\nvar hyphenateStyleName = __webpack_require__(101);\nvar memoizeStringOnly = __webpack_require__(103);\nvar warning = __webpack_require__(25);\n\nvar processStyleName = memoizeStringOnly(function (styleName) {\n return hyphenateStyleName(styleName);\n});\n\nvar hasShorthandPropertyBug = false;\nvar styleFloatAccessor = 'cssFloat';\nif (ExecutionEnvironment.canUseDOM) {\n var tempStyle = document.createElement('div').style;\n try {\n // IE8 throws \"Invalid argument.\" if resetting shorthand style properties.\n tempStyle.font = '';\n } catch (e) {\n hasShorthandPropertyBug = true;\n }\n // IE8 only supports accessing cssFloat (standard) as styleFloat\n if (document.documentElement.style.cssFloat === undefined) {\n styleFloatAccessor = 'styleFloat';\n }\n}\n\nif (process.env.NODE_ENV !== 'production') {\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n\n var warnHyphenatedStyleName = function warnHyphenatedStyleName(name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name)) : undefined;\n };\n\n var warnBadVendoredStyleName = function warnBadVendoredStyleName(name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1)) : undefined;\n };\n\n var warnStyleValueWithSemicolon = function warnStyleValueWithSemicolon(name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'Style property values shouldn\\'t contain a semicolon. ' + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined;\n };\n\n /**\n * @param {string} name\n * @param {*} value\n */\n var warnValidStyle = function warnValidStyle(name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n };\n}\n\n/**\n * Operations for dealing with CSS properties.\n */\nvar CSSPropertyOperations = {\n\n /**\n * Serializes a mapping of style properties for use as inline styles:\n *\n * > createMarkupForStyles({width: '200px', height: 0})\n * \"width:200px;height:0;\"\n *\n * Undefined values are ignored so that declarative programming is easier.\n * The result should be HTML-escaped before insertion into the DOM.\n *\n * @param {object} styles\n * @return {?string}\n */\n createMarkupForStyles: function createMarkupForStyles(styles) {\n var serialized = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var styleValue = styles[styleName];\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styleValue);\n }\n if (styleValue != null) {\n serialized += processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue) + ';';\n }\n }\n return serialized || null;\n },\n\n /**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n setValueForStyles: function setValueForStyles(node, styles) {\n var style = node.style;\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n if (process.env.NODE_ENV !== 'production') {\n warnValidStyle(styleName, styles[styleName]);\n }\n var styleValue = dangerousStyleValue(styleName, styles[styleName]);\n if (styleName === 'float') {\n styleName = styleFloatAccessor;\n }\n if (styleValue) {\n style[styleName] = styleValue;\n } else {\n var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];\n if (expansion) {\n // Shorthand property that IE8 won't like unsetting, so unset each\n // component to placate it\n for (var individualStyleName in expansion) {\n style[individualStyleName] = '';\n }\n } else {\n style[styleName] = '';\n }\n }\n }\n }\n\n};\n\nReactPerf.measureMethods(CSSPropertyOperations, 'CSSPropertyOperations', {\n setValueForStyles: 'setValueForStyles'\n});\n\nmodule.exports = CSSPropertyOperations;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ1NTUHJvcGVydHlPcGVyYXRpb25zLmpzP2M5YmIiXSwibmFtZXMiOlsiQ1NTUHJvcGVydHkiLCJyZXF1aXJlIiwiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCJSZWFjdFBlcmYiLCJjYW1lbGl6ZVN0eWxlTmFtZSIsImRhbmdlcm91c1N0eWxlVmFsdWUiLCJoeXBoZW5hdGVTdHlsZU5hbWUiLCJtZW1vaXplU3RyaW5nT25seSIsIndhcm5pbmciLCJwcm9jZXNzU3R5bGVOYW1lIiwic3R5bGVOYW1lIiwiaGFzU2hvcnRoYW5kUHJvcGVydHlCdWciLCJzdHlsZUZsb2F0QWNjZXNzb3IiLCJjYW5Vc2VET00iLCJ0ZW1wU3R5bGUiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImZvbnQiLCJlIiwiZG9jdW1lbnRFbGVtZW50IiwiY3NzRmxvYXQiLCJ1bmRlZmluZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4iLCJiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4iLCJ3YXJuZWRTdHlsZU5hbWVzIiwid2FybmVkU3R5bGVWYWx1ZXMiLCJ3YXJuSHlwaGVuYXRlZFN0eWxlTmFtZSIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIndhcm5CYWRWZW5kb3JlZFN0eWxlTmFtZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJ3YXJuU3R5bGVWYWx1ZVdpdGhTZW1pY29sb24iLCJ2YWx1ZSIsInJlcGxhY2UiLCJ3YXJuVmFsaWRTdHlsZSIsImluZGV4T2YiLCJ0ZXN0IiwiQ1NTUHJvcGVydHlPcGVyYXRpb25zIiwiY3JlYXRlTWFya3VwRm9yU3R5bGVzIiwic3R5bGVzIiwic2VyaWFsaXplZCIsInN0eWxlVmFsdWUiLCJzZXRWYWx1ZUZvclN0eWxlcyIsIm5vZGUiLCJleHBhbnNpb24iLCJzaG9ydGhhbmRQcm9wZXJ0eUV4cGFuc2lvbnMiLCJpbmRpdmlkdWFsU3R5bGVOYW1lIiwibWVhc3VyZU1ldGhvZHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsY0FBYyxtQkFBQUMsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUMsdUJBQXVCLG1CQUFBRCxDQUFRLENBQVIsQ0FBM0I7QUFDQSxJQUFJRSxZQUFZLG1CQUFBRixDQUFRLEVBQVIsQ0FBaEI7O0FBRUEsSUFBSUcsb0JBQW9CLG1CQUFBSCxDQUFRLEVBQVIsQ0FBeEI7QUFDQSxJQUFJSSxzQkFBc0IsbUJBQUFKLENBQVEsR0FBUixDQUExQjtBQUNBLElBQUlLLHFCQUFxQixtQkFBQUwsQ0FBUSxHQUFSLENBQXpCO0FBQ0EsSUFBSU0sb0JBQW9CLG1CQUFBTixDQUFRLEdBQVIsQ0FBeEI7QUFDQSxJQUFJTyxVQUFVLG1CQUFBUCxDQUFRLEVBQVIsQ0FBZDs7QUFFQSxJQUFJUSxtQkFBbUJGLGtCQUFrQixVQUFVRyxTQUFWLEVBQXFCO0FBQzVELFNBQU9KLG1CQUFtQkksU0FBbkIsQ0FBUDtBQUNELENBRnNCLENBQXZCOztBQUlBLElBQUlDLDBCQUEwQixLQUE5QjtBQUNBLElBQUlDLHFCQUFxQixVQUF6QjtBQUNBLElBQUlWLHFCQUFxQlcsU0FBekIsRUFBb0M7QUFDbEMsTUFBSUMsWUFBWUMsU0FBU0MsYUFBVCxDQUF1QixLQUF2QixFQUE4QkMsS0FBOUM7QUFDQSxNQUFJO0FBQ0Y7QUFDQUgsY0FBVUksSUFBVixHQUFpQixFQUFqQjtBQUNELEdBSEQsQ0FHRSxPQUFPQyxDQUFQLEVBQVU7QUFDVlIsOEJBQTBCLElBQTFCO0FBQ0Q7QUFDRDtBQUNBLE1BQUlJLFNBQVNLLGVBQVQsQ0FBeUJILEtBQXpCLENBQStCSSxRQUEvQixLQUE0Q0MsU0FBaEQsRUFBMkQ7QUFDekRWLHlCQUFxQixZQUFyQjtBQUNEO0FBQ0Y7O0FBRUQs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QW5CO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBbkV5QixDQUE1Qjs7QUF1RUFQLFVBQVVrRCxjQUFWLENBQXlCVixxQkFBekIsRUFBZ0QsdUJBQWhELEVBQXlFO0FBQ3ZFSyxxQkFBbUI7QUFEb0QsQ0FBekU7O0FBSUFNLE9BQU9DLE9BQVAsR0FBaUJaLHFCQUFqQixDIiwiZmlsZSI6Ijk2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIENTU1Byb3BlcnR5T3BlcmF0aW9uc1xuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBDU1NQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vQ1NTUHJvcGVydHknKTtcbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG52YXIgUmVhY3RQZXJmID0gcmVxdWlyZSgnLi9SZWFjdFBlcmYnKTtcblxudmFyIGNhbWVsaXplU3R5bGVOYW1lID0gcmVxdWlyZSgnZmJqcy9saWIvY2FtZWxpemVTdHlsZU5hbWUnKTtcbnZhciBkYW5nZXJvdXNTdHlsZVZhbHVlID0gcmVxdWlyZSgnLi9kYW5nZXJvdXNTdHlsZVZhbHVlJyk7XG52YXIgaHlwaGVuYXRlU3R5bGVOYW1lID0gcmVxdWlyZSgnZmJqcy9saWIvaHlwaGVuYXRlU3R5bGVOYW1lJyk7XG52YXIgbWVtb2l6ZVN0cmluZ09ubHkgPSByZXF1aXJlKCdmYmpzL2xpYi9tZW1vaXplU3RyaW5nT25seScpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBwcm9jZXNzU3R5bGVOYW1lID0gbWVtb2l6ZVN0cmluZ09ubHkoZnVuY3Rpb24gKHN0eWxlTmFtZSkge1xuICByZXR1cm4gaHlwaGVuYXRlU3R5bGVOYW1lKHN0eWxlTmFtZSk7XG59KTtcblxudmFyIGhhc1Nob3J0aGFuZFByb3BlcnR5QnVnID0gZmFsc2U7XG52YXIgc3R5bGVGbG9hdEFjY2Vzc29yID0gJ2Nzc0Zsb2F0JztcbmlmIChFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00pIHtcbiAgdmFyIHRlbXBTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLnN0eWxlO1xuICB0cnkge1xuICAgIC8vIElFOCB0aHJvd3MgXCJJbnZhbGlkIGFyZ3VtZW50LlwiIGlmIHJlc2V0dGluZyBzaG9ydGhhbmQgc3R5bGUgcHJvcGVydGllcy5cbiAgICB0ZW1wU3R5bGUuZm9udCA9ICcnO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaGFzU2hvcnRoYW5kUHJvcGVydHlCdWcgPSB0cnVlO1xuICB9XG4gIC8vIElFOCBvbmx5IHN1cHBvcnRzIGFjY2Vzc2luZyBjc3NGbG9hdCAoc3RhbmRhcmQpIGFzIHN0eWxlRmxvYXRcbiAgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jc3NGbG9hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc3R5bGVGbG9hdEFjY2Vzc29yID0gJ3N0eWxlRmxvYXQnO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vICdtc1RyYW5zZm9ybScgaXMgY29ycmVjdCwgYnV0IHRoZSBvdGhlciBwcmVmaXhlcyBzaG91bGQgYmUgY2FwaXRhbGl6ZWRcbiAgdmFyIGJhZFZlbmRvcmVkU3R5bGVOYW1lUGF0dGVybiA9IC9eKD86d2Via2l0fG1venxvKVtBLVpdLztcblxuICAvLyBzdHlsZSB2YWx1ZXMgc2hvdWxkbid0IGNvbnRhaW4gYSBzZW1pY29sb25cbiAgdmFyIGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiA9IC87XFxzKiQvO1xuXG4gIHZhciB3YXJuZWRTdHlsZU5hbWVzID0ge307XG4gIHZhciB3YXJuZWRTdHlsZVZhbHVlcyA9IHt9O1xuXG4gIHZhciB3YXJuSHlwaGVuYXRlZFN0eWxlTmFtZSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKHdhcm5lZFN0eWxlTmFtZXMuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0gPSB0cnVlO1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnVW5zdXBwb3J0ZWQgc3R5bGUgcHJvcGVydHkgJXMuIERpZCB5b3UgbWVhbiAlcz8nLCBuYW1lLCBjYW1lbGl6ZVN0eWxlTmFtZShuYW1lKSkgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgdmFyIHdhcm5CYWRWZW5kb3JlZFN0eWxlTmFtZSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKHdhcm5lZFN0eWxlTmFtZXMuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0gPSB0cnVlO1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnVW5zdXBwb3J0ZWQgdmVuZG9yLXByZWZpeGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4gJXM/JywgbmFtZSwgbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSkpIDogdW5kZWZpbmVkO1xuICB9O1xuXG4gIHZhciB3YXJuU3R5bGVWYWx1ZVdpdGhTZW1pY29sb24gPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAod2FybmVkU3R5bGVWYWx1ZXMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSA9IHRydWU7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdTdHlsZSBwcm9wZXJ0eSB2YWx1ZXMgc2hvdWxkblxcJ3QgY29udGFpbiBhIHNlbWljb2xvbi4gJyArICdUcnkgXCIlczogJXNcIiBpbnN0ZWFkLicsIG5hbWUsIHZhbHVlLnJlcGxhY2UoYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLCAnJykpIDogdW5kZWZpbmVkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0geyp9IHZhbHVlXG4gICAqL1xuICB2YXIgd2FyblZhbGlkU3R5bGUgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAobmFtZS5pbmRleE9mKCctJykgPiAtMSkge1xuICAgICAgd2Fybkh5cGhlbmF0ZWRTdHlsZU5hbWUobmFtZSk7XG4gICAgfSBlbHNlIGlmIChiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4udGVzdChuYW1lKSkge1xuICAgICAgd2FybkJhZFZlbmRvcmVkU3R5bGVOYW1lKG5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICB3YXJuU3R5bGVWYWx1ZVdpdGhTZW1pY29sb24obmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBPcGVyYXRpb25zIGZvciBkZWFsaW5nIHdpdGggQ1NTIHByb3BlcnRpZXMuXG4gKi9cbnZhciBDU1NQcm9wZXJ0eU9wZXJhdGlvbnMgPSB7XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgYSBtYXBwaW5nIG9mIHN0eWxlIHByb3BlcnRpZXMgZm9yIHVzZSBhcyBpbmxpbmUgc3R5bGVzOlxuICAgKlxuICAgKiAgID4gY3JlYXRlTWFya3VwRm9yU3R5bGVzKHt3aWR0aDogJzIwMHB4JywgaGVpZ2h0OiAwfSlcbiAgICogICBcIndpZHRoOjIwMHB4O2hlaWdodDowO1wiXG4gICAqXG4gICAqIFVuZGVmaW5lZCB2YWx1ZXMgYXJlIGlnbm9yZWQgc28gdGhhdCBkZWNsYXJhdGl2ZSBwcm9ncmFtbWluZyBpcyBlYXNpZXIuXG4gICAqIFRoZSByZXN1bHQgc2hvdWxkIGJlIEhUTUwtZXNjYXBlZCBiZWZvcmUgaW5zZXJ0aW9uIGludG8gdGhlIERPTS5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHN0eWxlc1xuICAgKiBAcmV0dXJuIHs/c3RyaW5nfVxuICAgKi9cbiAgY3JlYXRlTWFya3VwRm9yU3R5bGVzOiBmdW5jdGlvbiAoc3R5bGVzKSB7XG4gICAgdmFyIHNlcmlhbGl6ZWQgPSAnJztcbiAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoIXN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgdmFyIHN0eWxlVmFsdWUgPSBzdHlsZXNbc3R5bGVOYW1lXTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHdhcm5WYWxpZFN0eWxlKHN0eWxlTmFtZSwgc3R5bGVWYWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoc3R5bGVWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHNlcmlhbGl6ZWQgKz0gcHJvY2Vzc1N0eWxlTmFtZShzdHlsZU5hbWUpICsgJzonO1xuICAgICAgICBzZXJpYWxpemVkICs9IGRhbmdlcm91c1N0eWxlVmFsdWUoc3R5bGVOYW1lLCBzdHlsZVZhbHVlKSArICc7JztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHNlcmlhbGl6ZWQgfHwgbnVsbDtcbiAgfSxcblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgZm9yIG11bHRpcGxlIHN0eWxlcyBvbiBhIG5vZGUuICBJZiBhIHZhbHVlIGlzIHNwZWNpZmllZCBhc1xuICAgKiAnJyAoZW1wdHkgc3RyaW5nKSwgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGUgcHJvcGVydHkgd2lsbCBiZSB1bnNldC5cbiAgICpcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzdHlsZXNcbiAgICovXG4gIHNldFZhbHVlRm9yU3R5bGVzOiBmdW5jdGlvbiAobm9kZSwgc3R5bGVzKSB7XG4gICAgdmFyIHN0eWxlID0gbm9kZS5zdHlsZTtcbiAgICBmb3IgKHZhciBzdHlsZU5hbWUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoIXN0eWxlcy5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgd2FyblZhbGlkU3R5bGUoc3R5bGVOYW1lLCBzdHlsZXNbc3R5bGVOYW1lXSk7XG4gICAgICB9XG4gICAgICB2YXIgc3R5bGVWYWx1ZSA9IGRhbmdlcm91c1N0eWxlVmFsdWUoc3R5bGVOYW1lLCBzdHlsZXNbc3R5bGVOYW1lXSk7XG4gICAgICBpZiAoc3R5bGVOYW1lID09PSAnZmxvYXQnKSB7XG4gICAgICAgIHN0eWxlTmFtZSA9IHN0eWxlRmxvYXRBY2Nlc3NvcjtcbiAgICAgIH1cbiAgICAgIGlmIChzdHlsZVZhbHVlKSB7XG4gICAgICAgIHN0eWxlW3N0eWxlTmFtZV0gPSBzdHlsZVZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGV4cGFuc2lvbiA9IGhhc1Nob3J0aGFuZFByb3BlcnR5QnVnICYmIENTU1Byb3BlcnR5LnNob3J0aGFuZFByb3BlcnR5RXhwYW5zaW9uc1tzdHlsZU5hbWVdO1xuICAgICAgICBpZiAoZXhwYW5zaW9uKSB7XG4gICAgICAgICAgLy8gU2hvcnRoYW5kIHByb3BlcnR5IHRoYXQgSUU4IHdvbid0IGxpa2UgdW5zZXR0aW5nLCBzbyB1bnNldCBlYWNoXG4gICAgICAgICAgLy8gY29tcG9uZW50IHRvIHBsYWNhdGUgaXRcbiAgICAgICAgICBmb3IgKHZhciBpbmRpdmlkdWFsU3R5bGVOYW1lIGluIGV4cGFuc2lvbikge1xuICAgICAgICAgICAgc3R5bGVbaW5kaXZpZHVhbFN0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3R5bGVbc3R5bGVOYW1lXSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn07XG5cblJlYWN0UGVyZi5tZWFzdXJlTWV0aG9kcyhDU1NQcm9wZXJ0eU9wZXJhdGlvbnMsICdDU1NQcm9wZXJ0eU9wZXJhdGlvbnMnLCB7XG4gIHNldFZhbHVlRm9yU3R5bGVzOiAnc2V0VmFsdWVGb3JTdHlsZXMnXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBDU1NQcm9wZXJ0eU9wZXJhdGlvbnM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL0NTU1Byb3BlcnR5T3BlcmF0aW9ucy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 97 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule CSSProperty\n */\n\n'use strict';\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\n\nvar isUnitlessNumber = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Most style properties can be unset by doing .style[prop] = '' but IE8\n * doesn't like doing that with shorthand properties so for the properties that\n * IE8 breaks on, which are listed here, we instead unset each of the\n * individual properties. See http://bugs.jquery.com/ticket/12385.\n * The 4-value 'clock' properties like margin, padding, border-width seem to\n * behave without any problems. Curiously, list-style works too without any\n * special prodding.\n */\nvar shorthandPropertyExpansions = {\n background: {\n backgroundAttachment: true,\n backgroundColor: true,\n backgroundImage: true,\n backgroundPositionX: true,\n backgroundPositionY: true,\n backgroundRepeat: true\n },\n backgroundPosition: {\n backgroundPositionX: true,\n backgroundPositionY: true\n },\n border: {\n borderWidth: true,\n borderStyle: true,\n borderColor: true\n },\n borderBottom: {\n borderBottomWidth: true,\n borderBottomStyle: true,\n borderBottomColor: true\n },\n borderLeft: {\n borderLeftWidth: true,\n borderLeftStyle: true,\n borderLeftColor: true\n },\n borderRight: {\n borderRightWidth: true,\n borderRightStyle: true,\n borderRightColor: true\n },\n borderTop: {\n borderTopWidth: true,\n borderTopStyle: true,\n borderTopColor: true\n },\n font: {\n fontStyle: true,\n fontVariant: true,\n fontWeight: true,\n fontSize: true,\n lineHeight: true,\n fontFamily: true\n },\n outline: {\n outlineWidth: true,\n outlineStyle: true,\n outlineColor: true\n }\n};\n\nvar CSSProperty = {\n isUnitlessNumber: isUnitlessNumber,\n shorthandPropertyExpansions: shorthandPropertyExpansions\n};\n\nmodule.exports = CSSProperty;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvQ1NTUHJvcGVydHkuanM/YzlkZSJdLCJuYW1lcyI6WyJpc1VuaXRsZXNzTnVtYmVyIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiLCJib3hGbGV4IiwiYm94RmxleEdyb3VwIiwiYm94T3JkaW5hbEdyb3VwIiwiY29sdW1uQ291bnQiLCJmbGV4IiwiZmxleEdyb3ciLCJmbGV4UG9zaXRpdmUiLCJmbGV4U2hyaW5rIiwiZmxleE5lZ2F0aXZlIiwiZmxleE9yZGVyIiwiZm9udFdlaWdodCIsImxpbmVDbGFtcCIsImxpbmVIZWlnaHQiLCJvcGFjaXR5Iiwib3JkZXIiLCJvcnBoYW5zIiwidGFiU2l6ZSIsIndpZG93cyIsInpJbmRleCIsInpvb20iLCJmaWxsT3BhY2l0eSIsInN0b3BPcGFjaXR5Iiwic3Ryb2tlRGFzaG9mZnNldCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInByZWZpeEtleSIsInByZWZpeCIsImtleSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyaW5nIiwicHJlZml4ZXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInByb3AiLCJzaG9ydGhhbmRQcm9wZXJ0eUV4cGFuc2lvbnMiLCJiYWNrZ3JvdW5kIiwiYmFja2dyb3VuZEF0dGFjaG1lbnQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJiYWNrZ3JvdW5kUG9zaXRpb25YIiwiYmFja2dyb3VuZFBvc2l0aW9uWSIsImJhY2tncm91bmRSZXBlYXQiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJib3JkZXIiLCJib3JkZXJXaWR0aCIsImJvcmRlclN0eWxlIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJCb3R0b20iLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyQm90dG9tQ29sb3IiLCJib3JkZXJMZWZ0IiwiYm9yZGVyTGVmdFdpZHRoIiwiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyTGVmdENvbG9yIiwiYm9yZGVyUmlnaHQiLCJib3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0Q29sb3IiLCJib3JkZXJUb3AiLCJib3JkZXJUb3BXaWR0aCIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wQ29sb3IiLCJmb250IiwiZm9udFN0eWxlIiwiZm9udFZhcmlhbnQiLCJmb250U2l6ZSIsImZvbnRGYW1pbHkiLCJvdXRsaW5lIiwib3V0bGluZVdpZHRoIiwib3V0bGluZVN0eWxlIiwib3V0bGluZUNvbG9yIiwiQ1NTUHJvcGVydHkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQTs7OztBQUdBLElBQUlBLG1CQUFtQjtBQUNyQkMsMkJBQXlCLElBREo7QUFFckJDLFdBQVMsSUFGWTtBQUdyQkMsZ0JBQWMsSUFITztBQUlyQkMsbUJBQWlCLElBSkk7QUFLckJDLGVBQWEsSUFMUTtBQU1yQkMsUUFBTSxJQU5lO0FBT3JCQyxZQUFVLElBUFc7QUFRckJDLGdCQUFjLElBUk87QUFTckJDLGNBQVksSUFUUztBQVVyQkMsZ0JBQWMsSUFWTztBQVdyQkMsYUFBVyxJQVhVO0FBWXJCQyxjQUFZLElBWlM7QUFhckJDLGFBQVcsSUFiVTtBQWNyQkMsY0FBWSxJQWRTO0FBZXJCQyxXQUFTLElBZlk7QUFnQnJCQyxTQUFPLElBaEJjO0FBaUJyQkMsV0FBUyxJQWpCWTtBQWtCckJDLFdBQVMsSUFsQlk7QUFtQnJCQyxVQUFRLElBbkJhO0FBb0JyQkMsVUFBUSxJQXBCYTtBQXFCckJDLFFBQU0sSUFyQmU7O0FBdUJyQjtBQUNBQyxlQUFhLElBeEJRO0FBeUJyQkMsZUFBYSxJQXpCUTtBQTBCckJDLG9CQUFrQixJQTFCRztBQTJCckJDLGlCQUFlLElBM0JNO0FBNEJyQkMsZUFBYTtBQTVCUSxDQUF2Qjs7QUErQkE7Ozs7OztBQU1BLFNBQVNDLFNBQVQsQ0FBbUJDLE1BQW5CLEVBQTJCQyxHQUEzQixFQUFnQztBQUM5QixTQUFPRCxTQUFTQyxJQUFJQyxNQUFKLENBQVcsQ0FBWCxFQUFjQyxXQUFkLEVBQVQsR0FBdUNGLElBQUlHLFNBQUosQ0FBYyxDQUFkLENBQTlDO0FBQ0Q7O0FBRUQ7Ozs7QUFJQSxJQUFJQyxXQUFXLENBQUMsUUFBRCxFQUFXLElBQVgsRUFBaUIsS0FBakIsRUFBd0IsR0FBeEIsQ0FBZjs7QUFFQTtBQUNBO0FBQ0FDLE9BQU9DLElBQVAsQ0FBWW5DLGdCQUFaLEVBQThCb0MsT0FBOUIsQ0FBc0MsVUFBVUMsSUFBVixFQUFnQjtBQUNwREosV0FBU0csT0FBVCxDQUFpQixVQUFVUixNQUFWLEVBQWtCO0FBQ2pDNUIscUJBQWlCMkIsVUFBVUMsTUFBVixFQUFrQlMsSUFBbEIsQ0FBakIsSUFBNENyQyxpQkFBaUJxQyxJQUFqQixDQUE1QztBQUNELEdBRkQ7QUFHRCxDQUpEOztBQU1BOzs7Ozs7Ozs7QUFTQSxJQUFJQyw4QkFBOEI7QUFDaENDLGNBQVk7QUFDVkMsMEJBQXNCLElBRFo7QUFFVkMscUJBQWlCLElBRlA7QUFHVkMscUJBQWlCLElBSFA7QUFJVkMseUJBQXFCLElBSlg7QUFLVkMseUJBQXFCLElBTFg7QUFNVkMsc0JBQWtCO0FBTlIsR0FEb0I7QUFTaENDLHNCQUFvQjtBQUNsQkgseUJBQXFCLElBREg7QUFFbEJDLHlCQUFxQjtBQUZILEdBVFk7QUFhaENHLFVBQVE7QUFDTkMsaUJBQWEsSUFEUDtBQUVOQyxpQkFBYSxJQUZQO0FBR05DLGlCQUFhO0FBSFAsR0Fid0I7QUFrQmhDQyxnQkFBYztBQUNaQyx1QkFBbUIsSUFEUDtBQUVaQyx1QkFBbUIsSUFGUDtBQUdaQyx1QkFBbUI7QUFIUCxHQWxCa0I7QUF1QmhDQyxjQUFZO0FBQ1ZDLHFCQUFpQixJQURQO0FBRVZDLHFCQUFpQixJQUZQO0FBR1ZDLHFCQUFpQjtBQUhQLEdBdkJvQjtBQTRCaENDLGVBQWE7QUFDWEMsc0JBQWtCLElBRFA7QUFFWEMsc0JBQWtCLElBRlA7QUFHWEMsc0JBQWtCO0FBSFAsR0E1Qm1CO0FBaUNoQ0MsYUFBVztBQUNUQyxvQkFBZ0IsSUFEUDtBQUVUQyxvQkFBZ0IsSUFGUDtBQUdUQyxvQkFBZ0I7QUFIUCxHQWpDcUI7QUFzQ2hDQyxRQUFNO0FBQ0pDLGVBQVcsSUFEUDtBQUVKQyxpQkFBYSxJQUZUO0FBR0p6RCxnQkFBWSxJQUhSO0FBSUowRCxjQUFVLElBSk47QUFLSnhELGdCQUFZLElBTFI7QUFNSnlELGdCQUFZO0FBTlIsR0F0QzBCO0FBOENoQ0MsV0FBUztBQUNQQyxrQkFBYyxJQURQO0FBRVBDLGtCQUFjLElBRlA7QUFHUEMsa0JBQWM7QUFIUDtBQTlDdUIsQ0FBbEM7O0FBcURBLElBQUlDLGNBQWM7QUFDaEI1RSxvQkFBa0JBLGdCQURGO0FBRWhCc0MsK0JBQTZCQTtBQUZiLENBQWxCOztBQUtBdUMsT0FBT0MsT0FBUCxHQUFpQkYsV0FBakIiLCJmaWxlIjoiOTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgQ1NTUHJvcGVydHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogQ1NTIHByb3BlcnRpZXMgd2hpY2ggYWNjZXB0IG51bWJlcnMgYnV0IGFyZSBub3QgaW4gdW5pdHMgb2YgXCJweFwiLlxuICovXG52YXIgaXNVbml0bGVzc051bWJlciA9IHtcbiAgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6IHRydWUsXG4gIGJveEZsZXg6IHRydWUsXG4gIGJveEZsZXhHcm91cDogdHJ1ZSxcbiAgYm94T3JkaW5hbEdyb3VwOiB0cnVlLFxuICBjb2x1bW5Db3VudDogdHJ1ZSxcbiAgZmxleDogdHJ1ZSxcbiAgZmxleEdyb3c6IHRydWUsXG4gIGZsZXhQb3NpdGl2ZTogdHJ1ZSxcbiAgZmxleFNocmluazogdHJ1ZSxcbiAgZmxleE5lZ2F0aXZlOiB0cnVlLFxuICBmbGV4T3JkZXI6IHRydWUsXG4gIGZvbnRXZWlnaHQ6IHRydWUsXG4gIGxpbmVDbGFtcDogdHJ1ZSxcbiAgbGluZUhlaWdodDogdHJ1ZSxcbiAgb3BhY2l0eTogdHJ1ZSxcbiAgb3JkZXI6IHRydWUsXG4gIG9ycGhhbnM6IHRydWUsXG4gIHRhYlNpemU6IHRydWUsXG4gIHdpZG93czogdHJ1ZSxcbiAgekluZGV4OiB0cnVlLFxuICB6b29tOiB0cnVlLFxuXG4gIC8vIFNWRy1yZWxhdGVkIHByb3BlcnRpZXNcbiAgZmlsbE9wYWNpdHk6IHRydWUsXG4gIHN0b3BPcGFjaXR5OiB0cnVlLFxuICBzdHJva2VEYXNob2Zmc2V0OiB0cnVlLFxuICBzdHJva2VPcGFjaXR5OiB0cnVlLFxuICBzdHJva2VXaWR0aDogdHJ1ZVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4IHZlbmRvci1zcGVjaWZpYyBwcmVmaXgsIGVnOiBXZWJraXRcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgc3R5bGUgbmFtZSwgZWc6IHRyYW5zaXRpb25EdXJhdGlvblxuICogQHJldHVybiB7c3RyaW5nfSBzdHlsZSBuYW1lIHByZWZpeGVkIHdpdGggYHByZWZpeGAsIHByb3Blcmx5IGNhbWVsQ2FzZWQsIGVnOlxuICogV2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uXG4gKi9cbmZ1bmN0aW9uIHByZWZpeEtleShwcmVmaXgsIGtleSkge1xuICByZXR1cm4gcHJlZml4ICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnN1YnN0cmluZygxKTtcbn1cblxuLyoqXG4gKiBTdXBwb3J0IHN0eWxlIG5hbWVzIHRoYXQgbWF5IGNvbWUgcGFzc2VkIGluIHByZWZpeGVkIGJ5IGFkZGluZyBwZXJtdXRhdGlvbnNcbiAqIG9mIHZlbmRvciBwcmVmaXhlcy5cbiAqL1xudmFyIHByZWZpeGVzID0gWydXZWJraXQnLCAnbXMnLCAnTW96JywgJ08nXTtcblxuLy8gVXNpbmcgT2JqZWN0LmtleXMgaGVyZSwgb3IgZWxzZSB0aGUgdmFuaWxsYSBmb3ItaW4gbG9vcCBtYWtlcyBJRTggZ28gaW50byBhblxuLy8gaW5maW5pdGUgbG9vcCwgYmVjYXVzZSBpdCBpdGVyYXRlcyBvdmVyIHRoZSBuZXdseSBhZGRlZCBwcm9wcyB0b28uXG5PYmplY3Qua2V5cyhpc1VuaXRsZXNzTnVtYmVyKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gIHByZWZpeGVzLmZvckVhY2goZnVuY3Rpb24gKHByZWZpeCkge1xuICAgIGlzVW5pdGxlc3NOdW1iZXJbcHJlZml4S2V5KHByZWZpeCwgcHJvcCldID0gaXNVbml0bGVzc051bWJlcltwcm9wXTtcbiAgfSk7XG59KTtcblxuLyoqXG4gKiBNb3N0IHN0eWxlIHByb3BlcnRpZXMgY2FuIGJlIHVuc2V0IGJ5IGRvaW5nIC5zdHlsZVtwcm9wXSA9ICcnIGJ1dCBJRThcbiAqIGRvZXNuJ3QgbGlrZSBkb2luZyB0aGF0IHdpdGggc2hvcnRoYW5kIHByb3BlcnRpZXMgc28gZm9yIHRoZSBwcm9wZXJ0aWVzIHRoYXRcbiAqIElFOCBicmVha3Mgb24sIHdoaWNoIGFyZSBsaXN0ZWQgaGVyZSwgd2UgaW5zdGVhZCB1bnNldCBlYWNoIG9mIHRoZVxuICogaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLiBTZWUgaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIzODUuXG4gKiBUaGUgNC12YWx1ZSAnY2xvY2snIHByb3BlcnRpZXMgbGlrZSBtYXJnaW4sIHBhZGRpbmcsIGJvcmRlci13aWR0aCBzZWVtIHRvXG4gKiBiZWhhdmUgd2l0aG91dCBhbnkgcHJvYmxlbXMuIEN1cmlvdXNseSwgbGlzdC1zdHlsZSB3b3JrcyB0b28gd2l0aG91dCBhbnlcbiAqIHNwZWNpYWwgcHJvZGRpbmcuXG4gKi9cbnZhciBzaG9ydGhhbmRQcm9wZXJ0eUV4cGFuc2lvbnMgPSB7XG4gIGJhY2tncm91bmQ6IHtcbiAgICBiYWNrZ3JvdW5kQXR0YWNobWVudDogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRydWUsXG4gICAgYmFja2dyb3VuZEltYWdlOiB0cnVlLFxuICAgIGJhY2tncm91bmRQb3NpdGlvblg6IHRydWUsXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kUmVwZWF0OiB0cnVlXG4gIH0sXG4gIGJhY2tncm91bmRQb3NpdGlvbjoge1xuICAgIGJhY2tncm91bmRQb3NpdGlvblg6IHRydWUsXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWTogdHJ1ZVxuICB9LFxuICBib3JkZXI6IHtcbiAgICBib3JkZXJXaWR0aDogdHJ1ZSxcbiAgICBib3JkZXJTdHlsZTogdHJ1ZSxcbiAgICBib3JkZXJDb2xvcjogdHJ1ZVxuICB9LFxuICBib3JkZXJCb3R0b206IHtcbiAgICBib3JkZXJCb3R0b21XaWR0aDogdHJ1ZSxcbiAgICBib3JkZXJCb3R0b21TdHlsZTogdHJ1ZSxcbiAgICBib3JkZXJCb3R0b21Db2xvcjogdHJ1ZVxuICB9LFxuICBib3JkZXJMZWZ0OiB7XG4gICAgYm9yZGVyTGVmdFdpZHRoOiB0cnVlLFxuICAgIGJvcmRlckxlZnRTdHlsZTogdHJ1ZSxcbiAgICBib3JkZXJMZWZ0Q29sb3I6IHRydWVcbiAgfSxcbiAgYm9yZGVyUmlnaHQ6IHtcbiAgICBib3JkZXJSaWdodFdpZHRoOiB0cnVlLFxuICAgIGJvcmRlclJpZ2h0U3R5bGU6IHRydWUsXG4gICAgYm9yZGVyUmlnaHRDb2xvcjogdHJ1ZVxuICB9LFxuICBib3JkZXJUb3A6IHtcbiAgICBib3JkZXJUb3BXaWR0aDogdHJ1ZSxcbiAgICBib3JkZXJUb3BTdHlsZTogdHJ1ZSxcbiAgICBib3JkZXJUb3BDb2xvcjogdHJ1ZVxuICB9LFxuICBmb250OiB7XG4gICAgZm9udFN0eWxlOiB0cnVlLFxuICAgIGZvbnRWYXJpYW50OiB0cnVlLFxuICAgIGZvbnRXZWlnaHQ6IHRydWUsXG4gICAgZm9udFNpemU6IHRydWUsXG4gICAgbGluZUhlaWdodDogdHJ1ZSxcbiAgICBmb250RmFtaWx5OiB0cnVlXG4gIH0sXG4gIG91dGxpbmU6IHtcbiAgICBvdXRsaW5lV2lkdGg6IHRydWUsXG4gICAgb3V0bGluZVN0eWxlOiB0cnVlLFxuICAgIG91dGxpbmVDb2xvcjogdHJ1ZVxuICB9XG59O1xuXG52YXIgQ1NTUHJvcGVydHkgPSB7XG4gIGlzVW5pdGxlc3NOdW1iZXI6IGlzVW5pdGxlc3NOdW1iZXIsXG4gIHNob3J0aGFuZFByb3BlcnR5RXhwYW5zaW9uczogc2hvcnRoYW5kUHJvcGVydHlFeHBhbnNpb25zXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IENTU1Byb3BlcnR5O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9DU1NQcm9wZXJ0eS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 98 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelizeStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar camelize = __webpack_require__(99);\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9jYW1lbGl6ZVN0eWxlTmFtZS5qcz85OGM2Il0sIm5hbWVzIjpbImNhbWVsaXplIiwicmVxdWlyZSIsIm1zUGF0dGVybiIsImNhbWVsaXplU3R5bGVOYW1lIiwic3RyaW5nIiwicmVwbGFjZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxXQUFXLG1CQUFBQyxDQUFRLEVBQVIsQ0FBZjs7QUFFQSxJQUFJQyxZQUFZLE9BQWhCOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxTQUFTQyxpQkFBVCxDQUEyQkMsTUFBM0IsRUFBbUM7QUFDakMsU0FBT0osU0FBU0ksT0FBT0MsT0FBUCxDQUFlSCxTQUFmLEVBQTBCLEtBQTFCLENBQVQsQ0FBUDtBQUNEOztBQUVESSxPQUFPQyxPQUFQLEdBQWlCSixpQkFBakIiLCJmaWxlIjoiOTguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgY2FtZWxpemVTdHlsZU5hbWVcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgY2FtZWxpemUgPSByZXF1aXJlKCcuL2NhbWVsaXplJyk7XG5cbnZhciBtc1BhdHRlcm4gPSAvXi1tcy0vO1xuXG4vKipcbiAqIENhbWVsY2FzZXMgYSBoeXBoZW5hdGVkIENTUyBwcm9wZXJ0eSBuYW1lLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgID4gY2FtZWxpemVTdHlsZU5hbWUoJ2JhY2tncm91bmQtY29sb3InKVxuICogICA8IFwiYmFja2dyb3VuZENvbG9yXCJcbiAqICAgPiBjYW1lbGl6ZVN0eWxlTmFtZSgnLW1vei10cmFuc2l0aW9uJylcbiAqICAgPCBcIk1velRyYW5zaXRpb25cIlxuICogICA+IGNhbWVsaXplU3R5bGVOYW1lKCctbXMtdHJhbnNpdGlvbicpXG4gKiAgIDwgXCJtc1RyYW5zaXRpb25cIlxuICpcbiAqIEFzIEFuZGkgU21pdGggc3VnZ2VzdHNcbiAqIChodHRwOi8vd3d3LmFuZGlzbWl0aC5jb20vYmxvZy8yMDEyLzAyL21vZGVybml6ci1wcmVmaXhlZC8pLCBhbiBgLW1zYCBwcmVmaXhcbiAqIGlzIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNhbWVsaXplU3R5bGVOYW1lKHN0cmluZykge1xuICByZXR1cm4gY2FtZWxpemUoc3RyaW5nLnJlcGxhY2UobXNQYXR0ZXJuLCAnbXMtJykpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhbWVsaXplU3R5bGVOYW1lO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2NhbWVsaXplU3R5bGVOYW1lLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 99 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule camelize\n * @typechecks\n */\n\n\"use strict\";\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9jYW1lbGl6ZS5qcz9iMTc1Il0sIm5hbWVzIjpbIl9oeXBoZW5QYXR0ZXJuIiwiY2FtZWxpemUiLCJzdHJpbmciLCJyZXBsYWNlIiwiXyIsImNoYXJhY3RlciIsInRvVXBwZXJDYXNlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGlCQUFpQixPQUFyQjs7QUFFQTs7Ozs7Ozs7O0FBU0EsU0FBU0MsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEI7QUFDeEIsU0FBT0EsT0FBT0MsT0FBUCxDQUFlSCxjQUFmLEVBQStCLFVBQVVJLENBQVYsRUFBYUMsU0FBYixFQUF3QjtBQUM1RCxXQUFPQSxVQUFVQyxXQUFWLEVBQVA7QUFDRCxHQUZNLENBQVA7QUFHRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQlAsUUFBakIiLCJmaWxlIjoiOTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgY2FtZWxpemVcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaHlwaGVuUGF0dGVybiA9IC8tKC4pL2c7XG5cbi8qKlxuICogQ2FtZWxjYXNlcyBhIGh5cGhlbmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgID4gY2FtZWxpemUoJ2JhY2tncm91bmQtY29sb3InKVxuICogICA8IFwiYmFja2dyb3VuZENvbG9yXCJcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNhbWVsaXplKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoX2h5cGhlblBhdHRlcm4sIGZ1bmN0aW9uIChfLCBjaGFyYWN0ZXIpIHtcbiAgICByZXR1cm4gY2hhcmFjdGVyLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhbWVsaXplO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2NhbWVsaXplLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 100 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule dangerousStyleValue\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CSSProperty = __webpack_require__(97);\n\nvar isUnitlessNumber = CSSProperty.isUnitlessNumber;\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n var isNonNumeric = isNaN(value);\n if (isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {\n return '' + value; // cast to string\n }\n\n if (typeof value === 'string') {\n value = value.trim();\n }\n return value + 'px';\n}\n\nmodule.exports = dangerousStyleValue;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZGFuZ2Vyb3VzU3R5bGVWYWx1ZS5qcz8zNjBjIl0sIm5hbWVzIjpbIkNTU1Byb3BlcnR5IiwicmVxdWlyZSIsImlzVW5pdGxlc3NOdW1iZXIiLCJkYW5nZXJvdXNTdHlsZVZhbHVlIiwibmFtZSIsInZhbHVlIiwiaXNFbXB0eSIsImlzTm9uTnVtZXJpYyIsImlzTmFOIiwiaGFzT3duUHJvcGVydHkiLCJ0cmltIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGNBQWMsbUJBQUFDLENBQVEsRUFBUixDQUFsQjs7QUFFQSxJQUFJQyxtQkFBbUJGLFlBQVlFLGdCQUFuQzs7QUFFQTs7Ozs7Ozs7O0FBU0EsU0FBU0MsbUJBQVQsQ0FBNkJDLElBQTdCLEVBQW1DQyxLQUFuQyxFQUEwQztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBSUMsVUFBVUQsU0FBUyxJQUFULElBQWlCLE9BQU9BLEtBQVAsS0FBaUIsU0FBbEMsSUFBK0NBLFVBQVUsRUFBdkU7QUFDQSxNQUFJQyxPQUFKLEVBQWE7QUFDWCxXQUFPLEVBQVA7QUFDRDs7QUFFRCxNQUFJQyxlQUFlQyxNQUFNSCxLQUFOLENBQW5CO0FBQ0EsTUFBSUUsZ0JBQWdCRixVQUFVLENBQTFCLElBQStCSCxpQkFBaUJPLGNBQWpCLENBQWdDTCxJQUFoQyxLQUF5Q0YsaUJBQWlCRSxJQUFqQixDQUE1RSxFQUFvRztBQUNsRyxXQUFPLEtBQUtDLEtBQVosQ0FEa0csQ0FDL0U7QUFDcEI7O0FBRUQsTUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCQSxZQUFRQSxNQUFNSyxJQUFOLEVBQVI7QUFDRDtBQUNELFNBQU9MLFFBQVEsSUFBZjtBQUNEOztBQUVETSxPQUFPQyxPQUFQLEdBQWlCVCxtQkFBakIiLCJmaWxlIjoiMTAwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGRhbmdlcm91c1N0eWxlVmFsdWVcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgQ1NTUHJvcGVydHkgPSByZXF1aXJlKCcuL0NTU1Byb3BlcnR5Jyk7XG5cbnZhciBpc1VuaXRsZXNzTnVtYmVyID0gQ1NTUHJvcGVydHkuaXNVbml0bGVzc051bWJlcjtcblxuLyoqXG4gKiBDb252ZXJ0IGEgdmFsdWUgaW50byB0aGUgcHJvcGVyIGNzcyB3cml0YWJsZSB2YWx1ZS4gVGhlIHN0eWxlIG5hbWUgYG5hbWVgXG4gKiBzaG91bGQgYmUgbG9naWNhbCAobm8gaHlwaGVucyksIGFzIHNwZWNpZmllZFxuICogaW4gYENTU1Byb3BlcnR5LmlzVW5pdGxlc3NOdW1iZXJgLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIENTUyBwcm9wZXJ0eSBuYW1lIHN1Y2ggYXMgYHRvcE1hcmdpbmAuXG4gKiBAcGFyYW0geyp9IHZhbHVlIENTUyBwcm9wZXJ0eSB2YWx1ZSBzdWNoIGFzIGAxMHB4YC5cbiAqIEByZXR1cm4ge3N0cmluZ30gTm9ybWFsaXplZCBzdHlsZSB2YWx1ZSB3aXRoIGRpbWVuc2lvbnMgYXBwbGllZC5cbiAqL1xuZnVuY3Rpb24gZGFuZ2Vyb3VzU3R5bGVWYWx1ZShuYW1lLCB2YWx1ZSkge1xuICAvLyBOb3RlIHRoYXQgd2UndmUgcmVtb3ZlZCBlc2NhcGVUZXh0Rm9yQnJvd3NlcigpIGNhbGxzIGhlcmUgc2luY2UgdGhlXG4gIC8vIHdob2xlIHN0cmluZyB3aWxsIGJlIGVzY2FwZWQgd2hlbiB0aGUgYXR0cmlidXRlIGlzIGluamVjdGVkIGludG9cbiAgLy8gdGhlIG1hcmt1cC4gSWYgeW91IHByb3ZpZGUgdW5zYWZlIHVzZXIgZGF0YSBoZXJlIHRoZXkgY2FuIGluamVjdFxuICAvLyBhcmJpdHJhcnkgQ1NTIHdoaWNoIG1heSBiZSBwcm9ibGVtYXRpYyAoSSBjb3VsZG4ndCByZXBybyB0aGlzKTpcbiAgLy8gaHR0cHM6Ly93d3cub3dhc3Aub3JnL2luZGV4LnBocC9YU1NfRmlsdGVyX0V2YXNpb25fQ2hlYXRfU2hlZXRcbiAgLy8gaHR0cDovL3d3dy50aGVzcGFubmVyLmNvLnVrLzIwMDcvMTEvMjYvdWx0aW1hdGUteHNzLWNzcy1pbmplY3Rpb24vXG4gIC8vIFRoaXMgaXMgbm90IGFuIFhTUyBob2xlIGJ1dCBpbnN0ZWFkIGEgcG90ZW50aWFsIENTUyBpbmplY3Rpb24gaXNzdWVcbiAgLy8gd2hpY2ggaGFzIGxlYWQgdG8gYSBncmVhdGVyIGRpc2N1c3Npb24gYWJvdXQgaG93IHdlJ3JlIGdvaW5nIHRvXG4gIC8vIHRydXN0IFVSTHMgbW92aW5nIGZvcndhcmQuIFNlZSAjMjExNTkwMVxuXG4gIHZhciBpc0VtcHR5ID0gdmFsdWUgPT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB2YWx1ZSA9PT0gJyc7XG4gIGlmIChpc0VtcHR5KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgdmFyIGlzTm9uTnVtZXJpYyA9IGlzTmFOKHZhbHVlKTtcbiAgaWYgKGlzTm9uTnVtZXJpYyB8fCB2YWx1ZSA9PT0gMCB8fCBpc1VuaXRsZXNzTnVtYmVyLmhhc093blByb3BlcnR5KG5hbWUpICYmIGlzVW5pdGxlc3NOdW1iZXJbbmFtZV0pIHtcbiAgICByZXR1cm4gJycgKyB2YWx1ZTsgLy8gY2FzdCB0byBzdHJpbmdcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsdWUgPSB2YWx1ZS50cmltKCk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlICsgJ3B4Jztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkYW5nZXJvdXNTdHlsZVZhbHVlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9kYW5nZXJvdXNTdHlsZVZhbHVlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 101 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenateStyleName\n * @typechecks\n */\n\n'use strict';\n\nvar hyphenate = __webpack_require__(102);\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9oeXBoZW5hdGVTdHlsZU5hbWUuanM/MGFjNyJdLCJuYW1lcyI6WyJoeXBoZW5hdGUiLCJyZXF1aXJlIiwibXNQYXR0ZXJuIiwiaHlwaGVuYXRlU3R5bGVOYW1lIiwic3RyaW5nIiwicmVwbGFjZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxZQUFZLG1CQUFBQyxDQUFRLEdBQVIsQ0FBaEI7O0FBRUEsSUFBSUMsWUFBWSxNQUFoQjs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxTQUFTQyxrQkFBVCxDQUE0QkMsTUFBNUIsRUFBb0M7QUFDbEMsU0FBT0osVUFBVUksTUFBVixFQUFrQkMsT0FBbEIsQ0FBMEJILFNBQTFCLEVBQXFDLE1BQXJDLENBQVA7QUFDRDs7QUFFREksT0FBT0MsT0FBUCxHQUFpQkosa0JBQWpCIiwiZmlsZSI6IjEwMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBoeXBoZW5hdGVTdHlsZU5hbWVcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgaHlwaGVuYXRlID0gcmVxdWlyZSgnLi9oeXBoZW5hdGUnKTtcblxudmFyIG1zUGF0dGVybiA9IC9ebXMtLztcblxuLyoqXG4gKiBIeXBoZW5hdGVzIGEgY2FtZWxjYXNlZCBDU1MgcHJvcGVydHkgbmFtZSwgZm9yIGV4YW1wbGU6XG4gKlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnYmFja2dyb3VuZENvbG9yJylcbiAqICAgPCBcImJhY2tncm91bmQtY29sb3JcIlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnTW96VHJhbnNpdGlvbicpXG4gKiAgIDwgXCItbW96LXRyYW5zaXRpb25cIlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnbXNUcmFuc2l0aW9uJylcbiAqICAgPCBcIi1tcy10cmFuc2l0aW9uXCJcbiAqXG4gKiBBcyBNb2Rlcm5penIgc3VnZ2VzdHMgKGh0dHA6Ly9tb2Rlcm5penIuY29tL2RvY3MvI3ByZWZpeGVkKSwgYW4gYG1zYCBwcmVmaXhcbiAqIGlzIGNvbnZlcnRlZCB0byBgLW1zLWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBoeXBoZW5hdGVTdHlsZU5hbWUoc3RyaW5nKSB7XG4gIHJldHVybiBoeXBoZW5hdGUoc3RyaW5nKS5yZXBsYWNlKG1zUGF0dGVybiwgJy1tcy0nKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoeXBoZW5hdGVTdHlsZU5hbWU7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvaHlwaGVuYXRlU3R5bGVOYW1lLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 102 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule hyphenate\n * @typechecks\n */\n\n'use strict';\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9oeXBoZW5hdGUuanM/OTNhZCJdLCJuYW1lcyI6WyJfdXBwZXJjYXNlUGF0dGVybiIsImh5cGhlbmF0ZSIsInN0cmluZyIsInJlcGxhY2UiLCJ0b0xvd2VyQ2FzZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxvQkFBb0IsVUFBeEI7O0FBRUE7Ozs7Ozs7Ozs7OztBQVlBLFNBQVNDLFNBQVQsQ0FBbUJDLE1BQW5CLEVBQTJCO0FBQ3pCLFNBQU9BLE9BQU9DLE9BQVAsQ0FBZUgsaUJBQWYsRUFBa0MsS0FBbEMsRUFBeUNJLFdBQXpDLEVBQVA7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQkwsU0FBakIiLCJmaWxlIjoiMTAyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGh5cGhlbmF0ZVxuICogQHR5cGVjaGVja3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfdXBwZXJjYXNlUGF0dGVybiA9IC8oW0EtWl0pL2c7XG5cbi8qKlxuICogSHlwaGVuYXRlcyBhIGNhbWVsY2FzZWQgc3RyaW5nLCBmb3IgZXhhbXBsZTpcbiAqXG4gKiAgID4gaHlwaGVuYXRlKCdiYWNrZ3JvdW5kQ29sb3InKVxuICogICA8IFwiYmFja2dyb3VuZC1jb2xvclwiXG4gKlxuICogRm9yIENTUyBzdHlsZSBuYW1lcywgdXNlIGBoeXBoZW5hdGVTdHlsZU5hbWVgIGluc3RlYWQgd2hpY2ggd29ya3MgcHJvcGVybHlcbiAqIHdpdGggYWxsIHZlbmRvciBwcmVmaXhlcywgaW5jbHVkaW5nIGBtc2AuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBoeXBoZW5hdGUoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZShfdXBwZXJjYXNlUGF0dGVybiwgJy0kMScpLnRvTG93ZXJDYXNlKCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaHlwaGVuYXRlO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2h5cGhlbmF0ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 103 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule memoizeStringOnly\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * Memoizes the return value of a function that accepts one string argument.\n *\n * @param {function} callback\n * @return {function}\n */\n\nfunction memoizeStringOnly(callback) {\n var cache = {};\n return function (string) {\n if (!cache.hasOwnProperty(string)) {\n cache[string] = callback.call(this, string);\n }\n return cache[string];\n };\n}\n\nmodule.exports = memoizeStringOnly;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9tZW1vaXplU3RyaW5nT25seS5qcz84ODdkIl0sIm5hbWVzIjpbIm1lbW9pemVTdHJpbmdPbmx5IiwiY2FsbGJhY2siLCJjYWNoZSIsInN0cmluZyIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7Ozs7OztBQU1BLFNBQVNBLGlCQUFULENBQTJCQyxRQUEzQixFQUFxQztBQUNuQyxNQUFJQyxRQUFRLEVBQVo7QUFDQSxTQUFPLFVBQVVDLE1BQVYsRUFBa0I7QUFDdkIsUUFBSSxDQUFDRCxNQUFNRSxjQUFOLENBQXFCRCxNQUFyQixDQUFMLEVBQW1DO0FBQ2pDRCxZQUFNQyxNQUFOLElBQWdCRixTQUFTSSxJQUFULENBQWMsSUFBZCxFQUFvQkYsTUFBcEIsQ0FBaEI7QUFDRDtBQUNELFdBQU9ELE1BQU1DLE1BQU4sQ0FBUDtBQUNELEdBTEQ7QUFNRDs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQlAsaUJBQWpCIiwiZmlsZSI6IjEwMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBtZW1vaXplU3RyaW5nT25seVxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogTWVtb2l6ZXMgdGhlIHJldHVybiB2YWx1ZSBvZiBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBvbmUgc3RyaW5nIGFyZ3VtZW50LlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrXG4gKiBAcmV0dXJuIHtmdW5jdGlvbn1cbiAqL1xuZnVuY3Rpb24gbWVtb2l6ZVN0cmluZ09ubHkoY2FsbGJhY2spIHtcbiAgdmFyIGNhY2hlID0ge307XG4gIHJldHVybiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgaWYgKCFjYWNoZS5oYXNPd25Qcm9wZXJ0eShzdHJpbmcpKSB7XG4gICAgICBjYWNoZVtzdHJpbmddID0gY2FsbGJhY2suY2FsbCh0aGlzLCBzdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gY2FjaGVbc3RyaW5nXTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZW1vaXplU3RyaW5nT25seTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9tZW1vaXplU3RyaW5nT25seS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 104 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMButton\n */\n\n'use strict';\n\nvar mouseListenerNames = {\n onClick: true,\n onDoubleClick: true,\n onMouseDown: true,\n onMouseMove: true,\n onMouseUp: true,\n\n onClickCapture: true,\n onDoubleClickCapture: true,\n onMouseDownCapture: true,\n onMouseMoveCapture: true,\n onMouseUpCapture: true\n};\n\n/**\n * Implements a <button> native component that does not receive mouse events\n * when `disabled` is set.\n */\nvar ReactDOMButton = {\n getNativeProps: function getNativeProps(inst, props, context) {\n if (!props.disabled) {\n return props;\n }\n\n // Copy the props, except the mouse listeners\n var nativeProps = {};\n for (var key in props) {\n if (props.hasOwnProperty(key) && !mouseListenerNames[key]) {\n nativeProps[key] = props[key];\n }\n }\n\n return nativeProps;\n }\n};\n\nmodule.exports = ReactDOMButton;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01CdXR0b24uanM/MzcyYiJdLCJuYW1lcyI6WyJtb3VzZUxpc3RlbmVyTmFtZXMiLCJvbkNsaWNrIiwib25Eb3VibGVDbGljayIsIm9uTW91c2VEb3duIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlVXAiLCJvbkNsaWNrQ2FwdHVyZSIsIm9uRG91YmxlQ2xpY2tDYXB0dXJlIiwib25Nb3VzZURvd25DYXB0dXJlIiwib25Nb3VzZU1vdmVDYXB0dXJlIiwib25Nb3VzZVVwQ2FwdHVyZSIsIlJlYWN0RE9NQnV0dG9uIiwiZ2V0TmF0aXZlUHJvcHMiLCJpbnN0IiwicHJvcHMiLCJjb250ZXh0IiwiZGlzYWJsZWQiLCJuYXRpdmVQcm9wcyIsImtleSIsImhhc093blByb3BlcnR5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEscUJBQXFCO0FBQ3ZCQyxXQUFTLElBRGM7QUFFdkJDLGlCQUFlLElBRlE7QUFHdkJDLGVBQWEsSUFIVTtBQUl2QkMsZUFBYSxJQUpVO0FBS3ZCQyxhQUFXLElBTFk7O0FBT3ZCQyxrQkFBZ0IsSUFQTztBQVF2QkMsd0JBQXNCLElBUkM7QUFTdkJDLHNCQUFvQixJQVRHO0FBVXZCQyxzQkFBb0IsSUFWRztBQVd2QkMsb0JBQWtCO0FBWEssQ0FBekI7O0FBY0E7Ozs7QUFJQSxJQUFJQyxpQkFBaUI7QUFDbkJDLGtCQUFnQix3QkFBVUMsSUFBVixFQUFnQkMsS0FBaEIsRUFBdUJDLE9BQXZCLEVBQWdDO0FBQzlDLFFBQUksQ0FBQ0QsTUFBTUUsUUFBWCxFQUFxQjtBQUNuQixhQUFPRixLQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxRQUFJRyxjQUFjLEVBQWxCO0FBQ0EsU0FBSyxJQUFJQyxHQUFULElBQWdCSixLQUFoQixFQUF1QjtBQUNyQixVQUFJQSxNQUFNSyxjQUFOLENBQXFCRCxHQUFyQixLQUE2QixDQUFDbEIsbUJBQW1Ca0IsR0FBbkIsQ0FBbEMsRUFBMkQ7QUFDekRELG9CQUFZQyxHQUFaLElBQW1CSixNQUFNSSxHQUFOLENBQW5CO0FBQ0Q7QUFDRjs7QUFFRCxXQUFPRCxXQUFQO0FBQ0Q7QUFma0IsQ0FBckI7O0FBa0JBRyxPQUFPQyxPQUFQLEdBQWlCVixjQUFqQiIsImZpbGUiOiIxMDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RET01CdXR0b25cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBtb3VzZUxpc3RlbmVyTmFtZXMgPSB7XG4gIG9uQ2xpY2s6IHRydWUsXG4gIG9uRG91YmxlQ2xpY2s6IHRydWUsXG4gIG9uTW91c2VEb3duOiB0cnVlLFxuICBvbk1vdXNlTW92ZTogdHJ1ZSxcbiAgb25Nb3VzZVVwOiB0cnVlLFxuXG4gIG9uQ2xpY2tDYXB0dXJlOiB0cnVlLFxuICBvbkRvdWJsZUNsaWNrQ2FwdHVyZTogdHJ1ZSxcbiAgb25Nb3VzZURvd25DYXB0dXJlOiB0cnVlLFxuICBvbk1vdXNlTW92ZUNhcHR1cmU6IHRydWUsXG4gIG9uTW91c2VVcENhcHR1cmU6IHRydWVcbn07XG5cbi8qKlxuICogSW1wbGVtZW50cyBhIDxidXR0b24+IG5hdGl2ZSBjb21wb25lbnQgdGhhdCBkb2VzIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50c1xuICogd2hlbiBgZGlzYWJsZWRgIGlzIHNldC5cbiAqL1xudmFyIFJlYWN0RE9NQnV0dG9uID0ge1xuICBnZXROYXRpdmVQcm9wczogZnVuY3Rpb24gKGluc3QsIHByb3BzLCBjb250ZXh0KSB7XG4gICAgaWYgKCFwcm9wcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHByb3BzO1xuICAgIH1cblxuICAgIC8vIENvcHkgdGhlIHByb3BzLCBleGNlcHQgdGhlIG1vdXNlIGxpc3RlbmVyc1xuICAgIHZhciBuYXRpdmVQcm9wcyA9IHt9O1xuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KGtleSkgJiYgIW1vdXNlTGlzdGVuZXJOYW1lc1trZXldKSB7XG4gICAgICAgIG5hdGl2ZVByb3BzW2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuYXRpdmVQcm9wcztcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTUJ1dHRvbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01CdXR0b24uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 105 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMInput\n */\n\n'use strict';\n\nvar ReactDOMIDOperations = __webpack_require__(27);\nvar LinkedValueUtils = __webpack_require__(106);\nvar ReactMount = __webpack_require__(28);\nvar ReactUpdates = __webpack_require__(54);\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\n\nvar instancesByReactID = {};\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMInput.updateWrapper(this);\n }\n}\n\n/**\n * Implements an <input> native component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\nvar ReactDOMInput = {\n getNativeProps: function getNativeProps(inst, props, context) {\n var value = LinkedValueUtils.getValue(props);\n var checked = LinkedValueUtils.getChecked(props);\n\n var nativeProps = assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: value != null ? value : inst._wrapperState.initialValue,\n checked: checked != null ? checked : inst._wrapperState.initialChecked,\n onChange: inst._wrapperState.onChange\n });\n\n return nativeProps;\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);\n }\n\n var defaultValue = props.defaultValue;\n inst._wrapperState = {\n initialChecked: props.defaultChecked || false,\n initialValue: defaultValue != null ? defaultValue : null,\n onChange: _handleChange.bind(inst)\n };\n },\n\n mountReadyWrapper: function mountReadyWrapper(inst) {\n // Can't be in mountWrapper or else server rendering leaks.\n instancesByReactID[inst._rootNodeID] = inst;\n },\n\n unmountWrapper: function unmountWrapper(inst) {\n delete instancesByReactID[inst._rootNodeID];\n },\n\n updateWrapper: function updateWrapper(inst) {\n var props = inst._currentElement.props;\n\n // TODO: Shouldn't this be getChecked(props)?\n var checked = props.checked;\n if (checked != null) {\n ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'checked', checked || false);\n }\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n // Here we use asap to wait until all updates have propagated, which\n // is important when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n ReactUpdates.asap(forceUpdateIfMounted, this);\n\n var name = props.name;\n if (props.type === 'radio' && name != null) {\n var rootNode = ReactMount.getNode(this._rootNodeID);\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n }\n\n // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form, let's just use the global\n // `querySelectorAll` to ensure we don't miss anything.\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n }\n // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React with non-React.\n var otherID = ReactMount.getID(otherNode);\n !otherID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the ' + 'same `name` is not supported.') : invariant(false) : undefined;\n var otherInstance = instancesByReactID[otherID];\n !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Unknown radio button ID %s.', otherID) : invariant(false) : undefined;\n // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n ReactUpdates.asap(forceUpdateIfMounted, otherInstance);\n }\n }\n\n return returnValue;\n}\n\nmodule.exports = ReactDOMInput;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01JbnB1dC5qcz85NDAwIl0sIm5hbWVzIjpbIlJlYWN0RE9NSURPcGVyYXRpb25zIiwicmVxdWlyZSIsIkxpbmtlZFZhbHVlVXRpbHMiLCJSZWFjdE1vdW50IiwiUmVhY3RVcGRhdGVzIiwiYXNzaWduIiwiaW52YXJpYW50IiwiaW5zdGFuY2VzQnlSZWFjdElEIiwiZm9yY2VVcGRhdGVJZk1vdW50ZWQiLCJfcm9vdE5vZGVJRCIsIlJlYWN0RE9NSW5wdXQiLCJ1cGRhdGVXcmFwcGVyIiwiZ2V0TmF0aXZlUHJvcHMiLCJpbnN0IiwicHJvcHMiLCJjb250ZXh0IiwidmFsdWUiLCJnZXRWYWx1ZSIsImNoZWNrZWQiLCJnZXRDaGVja2VkIiwibmF0aXZlUHJvcHMiLCJkZWZhdWx0Q2hlY2tlZCIsInVuZGVmaW5lZCIsImRlZmF1bHRWYWx1ZSIsIl93cmFwcGVyU3RhdGUiLCJpbml0aWFsVmFsdWUiLCJpbml0aWFsQ2hlY2tlZCIsIm9uQ2hhbmdlIiwibW91bnRXcmFwcGVyIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY2hlY2tQcm9wVHlwZXMiLCJfY3VycmVudEVsZW1lbnQiLCJfb3duZXIiLCJfaGFuZGxlQ2hhbmdlIiwiYmluZCIsIm1vdW50UmVhZHlXcmFwcGVyIiwidW5tb3VudFdyYXBwZXIiLCJ1cGRhdGVQcm9wZXJ0eUJ5SUQiLCJldmVudCIsInJldHVyblZhbHVlIiwiZXhlY3V0ZU9uQ2hhbmdlIiwiYXNhcCIsIm5hbWUiLCJ0eXBlIiwicm9vdE5vZGUiLCJnZXROb2RlIiwicXVlcnlSb290IiwicGFyZW50Tm9kZSIsImdyb3VwIiwicXVlcnlTZWxlY3RvckFsbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJpIiwibGVuZ3RoIiwib3RoZXJOb2RlIiwiZm9ybSIsIm90aGVySUQiLCJnZXRJRCIsIm90aGVySW5z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LENBQWQ7QUFDQSxPQUFDRSxPQUFELEdBQVc3QixRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0N6QixVQUFVLEtBQVYsRUFBaUIscUVBQXFFLCtCQUF0RixDQUF4QyxHQUFpS0EsVUFBVSxLQUFWLENBQTVLLEdBQStMZ0IsU0FBL0w7QUFDQSxVQUFJc0MsZ0JBQWdCckQsbUJBQW1CbUQsT0FBbkIsQ0FBcEI7QUFDQSxPQUFDRSxhQUFELEdBQWlCL0IsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDekIsVUFBVSxLQUFWLEVBQWlCLDRDQUFqQixFQUErRG9ELE9BQS9ELENBQXhDLEdBQWtIcEQsVUFBVSxLQUFWLENBQW5JLEdBQXNKZ0IsU0FBdEo7QUFDQTtBQUNBO0FBQ0E7QUFDQWxCLG1CQUFhdUMsSUFBYixDQUFrQm5DLG9CQUFsQixFQUF3Q29ELGFBQXhDO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPbkIsV0FBUDtBQUNEOztBQUVEb0IsT0FBT0MsT0FBUCxHQUFpQnBELGFBQWpCLEMiLCJmaWxlIjoiMTA1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RE9NSW5wdXRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdERPTUlET3BlcmF0aW9ucyA9IHJlcXVpcmUoJy4vUmVhY3RET01JRE9wZXJhdGlvbnMnKTtcbnZhciBMaW5rZWRWYWx1ZVV0aWxzID0gcmVxdWlyZSgnLi9MaW5rZWRWYWx1ZVV0aWxzJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcblxudmFyIGluc3RhbmNlc0J5UmVhY3RJRCA9IHt9O1xuXG5mdW5jdGlvbiBmb3JjZVVwZGF0ZUlmTW91bnRlZCgpIHtcbiAgaWYgKHRoaXMuX3Jvb3ROb2RlSUQpIHtcbiAgICAvLyBET00gY29tcG9uZW50IGlzIHN0aWxsIG1vdW50ZWQ7IHVwZGF0ZVxuICAgIFJlYWN0RE9NSW5wdXQudXBkYXRlV3JhcHBlcih0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYW4gPGlucHV0PiBuYXRpdmUgY29tcG9uZW50IHRoYXQgYWxsb3dzIHNldHRpbmcgdGhlc2Ugb3B0aW9uYWxcbiAqIHByb3BzOiBgY2hlY2tlZGAsIGB2YWx1ZWAsIGBkZWZhdWx0Q2hlY2tlZGAsIGFuZCBgZGVmYXVsdFZhbHVlYC5cbiAqXG4gKiBJZiBgY2hlY2tlZGAgb3IgYHZhbHVlYCBhcmUgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9uc1xuICogdGhhdCBhZmZlY3QgdGhlIGNoZWNrZWQgc3RhdGUgb3IgdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgdGhleSBhcmUgc3VwcGxpZWQgKGFuZCBub3QgbnVsbC91bmRlZmluZWQpLCB0aGUgcmVuZGVyZWQgZWxlbWVudCB3aWxsIG5vdFxuICogdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSBlbGVtZW50LiBJbnN0ZWFkLCB0aGUgcHJvcHMgbXVzdCBjaGFuZ2UgaW4gb3JkZXIgZm9yXG4gKiB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXMgdW5jaGVja2VkIChvciBgZGVmYXVsdENoZWNrZWRgKVxuICogd2l0aCBhbiBlbXB0eSB2YWx1ZSAob3IgYGRlZmF1bHRWYWx1ZWApLlxuICpcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9XRC1odG1sNS0yMDEyMTAyNS90aGUtaW5wdXQtZWxlbWVudC5odG1sXG4gKi9cbnZhciBSZWFjdERPTUlucHV0ID0ge1xuICBnZXROYXRpdmVQcm9wczogZnVuY3Rpb24gKGluc3QsIHByb3BzLCBjb250ZXh0KSB7XG4gICAgdmFyIHZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5nZXRWYWx1ZShwcm9wcyk7XG4gICAgdmFyIGNoZWNrZWQgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldENoZWNrZWQocHJvcHMpO1xuXG4gICAgdmFyIG5hdGl2ZVByb3BzID0gYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgZGVmYXVsdENoZWNrZWQ6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgdmFsdWU6IHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IGluc3QuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUsXG4gICAgICBjaGVja2VkOiBjaGVja2VkICE9IG51bGwgPyBjaGVja2VkIDogaW5zdC5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkLFxuICAgICAgb25DaGFuZ2U6IGluc3QuX3dyYXBwZXJTdGF0ZS5vbkNoYW5nZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5hdGl2ZVByb3BzO1xuICB9LFxuXG4gIG1vdW50V3JhcHBlcjogZnVuY3Rpb24gKGluc3QsIHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIExpbmtlZFZhbHVlVXRpbHMuY2hlY2tQcm9wVHlwZXMoJ2lucHV0JywgcHJvcHMsIGluc3QuX2N1cnJlbnRFbGVtZW50Ll9vd25lcik7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRWYWx1ZSA9IHByb3BzLmRlZmF1bHRWYWx1ZTtcbiAgICBpbnN0Ll93cmFwcGVyU3RhdGUgPSB7XG4gICAgICBpbml0aWFsQ2hlY2tlZDogcHJvcHMuZGVmYXVsdENoZWNrZWQgfHwgZmFsc2UsXG4gICAgICBpbml0aWFsVmFsdWU6IGRlZmF1bHRWYWx1ZSAhPSBudWxsID8gZGVmYXVsdFZhbHVlIDogbnVsbCxcbiAgICAgIG9uQ2hhbmdlOiBfaGFuZGxlQ2hhbmdlLmJpbmQoaW5zdClcbiAgICB9O1xuICB9LFxuXG4gIG1vdW50UmVhZHlXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIC8vIENhbid0IGJlIGluIG1vdW50V3JhcHBlciBvciBlbHNlIHNlcnZlciByZW5kZXJpbmcgbGVha3MuXG4gICAgaW5zdGFuY2VzQnlSZWFjdElEW2luc3QuX3Jvb3ROb2RlSURdID0gaW5zdDtcbiAgfSxcblxuICB1bm1vdW50V3JhcHBlcjogZnVuY3Rpb24gKGluc3QpIHtcbiAgICBkZWxldGUgaW5zdGFuY2VzQnlSZWFjdElEW2luc3QuX3Jvb3ROb2RlSURdO1xuICB9LFxuXG4gIHVwZGF0ZVdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgdmFyIHByb3BzID0gaW5zdC5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICAvLyBUT0RPOiBTaG91bGRuJ3QgdGhpcyBiZSBnZXRDaGVja2VkKHByb3BzKT9cbiAgICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG4gICAgaWYgKGNoZWNrZWQgIT0gbnVsbCkge1xuICAgICAgUmVhY3RET01JRE9wZXJhdGlvbnMudXBkYXRlUHJvcGVydHlCeUlEKGluc3QuX3Jvb3ROb2RlSUQsICdjaGVja2VkJywgY2hlY2tlZCB8fCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdmFyIHZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5nZXRWYWx1ZShwcm9wcyk7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIC8vIENhc3QgYHZhbHVlYCB0byBhIHN0cmluZyB0byBlbnN1cmUgdGhlIHZhbHVlIGlzIHNldCBjb3JyZWN0bHkuIFdoaWxlXG4gICAgICAvLyBicm93c2VycyB0eXBpY2FsbHkgZG8gdGhpcyBhcyBuZWNlc3NhcnksIGpzZG9tIGRvZXNuJ3QuXG4gICAgICBSZWFjdERPTUlET3BlcmF0aW9ucy51cGRhdGVQcm9wZXJ0eUJ5SUQoaW5zdC5fcm9vdE5vZGVJRCwgJ3ZhbHVlJywgJycgKyB2YWx1ZSk7XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBfaGFuZGxlQ2hhbmdlKGV2ZW50KSB7XG4gIHZhciBwcm9wcyA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuXG4gIHZhciByZXR1cm5WYWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZXhlY3V0ZU9uQ2hhbmdlKHByb3BzLCBldmVudCk7XG5cbiAgLy8gSGVyZSB3ZSB1c2UgYXNhcCB0byB3YWl0IHVudGlsIGFsbCB1cGRhdGVzIGhhdmUgcHJvcGFnYXRlZCwgd2hpY2hcbiAgLy8gaXMgaW1wb3J0YW50IHdoZW4gdXNpbmcgY29udHJvbGxlZCBjb21wb25lbnRzIHdpdGhpbiBsYXllcnM6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTY5OFxuICBSZWFjdFVwZGF0ZXMuYXNhcChmb3JjZVVwZGF0ZUlmTW91bnRlZCwgdGhpcyk7XG5cbiAgdmFyIG5hbWUgPSBwcm9wcy5uYW1lO1xuICBpZiAocHJvcHMudHlwZSA9PT0gJ3JhZGlvJyAmJiBuYW1lICE9IG51bGwpIHtcbiAgICB2YXIgcm9vdE5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUodGhpcy5fcm9vdE5vZGVJRCk7XG4gICAgdmFyIHF1ZXJ5Um9vdCA9IHJvb3ROb2RlO1xuXG4gICAgd2hpbGUgKHF1ZXJ5Um9vdC5wYXJlbnROb2RlKSB7XG4gICAgICBxdWVyeVJvb3QgPSBxdWVyeVJvb3QucGFyZW50Tm9kZTtcbiAgICB9XG5cbiAgICAvLyBJZiBgcm9vdE5vZGUuZm9ybWAgd2FzIG5vbi1udWxsLCB0aGVuIHdlIGNvdWxkIHRyeSBgZm9ybS5lbGVtZW50c2AsXG4gICAgLy8gYnV0IHRoYXQgc29tZXRpbWVzIGJlaGF2ZXMgc3RyYW5nZWx5IGluIElFOC4gV2UgY291bGQgYWxzbyB0cnkgdXNpbmdcbiAgICAvLyBgZm9ybS5nZXRFbGVtZW50c0J5TmFtZWAsIGJ1dCB0aGF0IHdpbGwgb25seSByZXR1cm4gZGlyZWN0IGNoaWxkcmVuXG4gICAgLy8gYW5kIHdvbid0IGluY2x1ZGUgaW5wdXRzIHRoYXQgdXNlIHRoZSBIVE1MNSBgZm9ybT1gIGF0dHJpYnV0ZS4gU2luY2VcbiAgICAvLyB0aGUgaW5wdXQgbWlnaHQgbm90IGV2ZW4gYmUgaW4gYSBmb3JtLCBsZXQncyBqdXN0IHVzZSB0aGUgZ2xvYmFsXG4gICAgLy8gYHF1ZXJ5U2VsZWN0b3JBbGxgIHRvIGVuc3VyZSB3ZSBkb24ndCBtaXNzIGFueXRoaW5nLlxuICAgIHZhciBncm91cCA9IHF1ZXJ5Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPScgKyBKU09OLnN0cmluZ2lmeSgnJyArIG5hbWUpICsgJ11bdHlwZT1cInJhZGlvXCJdJyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdyb3VwLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgb3RoZXJOb2RlID0gZ3JvdXBbaV07XG4gICAgICBpZiAob3RoZXJOb2RlID09PSByb290Tm9kZSB8fCBvdGhlck5vZGUuZm9ybSAhPT0gcm9vdE5vZGUuZm9ybSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBpZiByYWRpbyBidXR0b25zIHJlbmRlcmVkIGJ5IGRpZmZlcmVudCBjb3BpZXMgb2YgUmVhY3RcbiAgICAgIC8vIGFuZCB0aGUgc2FtZSBuYW1lIGFyZSByZW5kZXJlZCBpbnRvIHRoZSBzYW1lIGZvcm0gKHNhbWUgYXMgIzE5MzkpLlxuICAgICAgLy8gVGhhdCdzIHByb2JhYmx5IG9rYXk7IHdlIGRvbid0IHN1cHBvcnQgaXQganVzdCBhcyB3ZSBkb24ndCBzdXBwb3J0XG4gICAgICAvLyBtaXhpbmcgUmVhY3Qgd2l0aCBub24tUmVhY3QuXG4gICAgICB2YXIgb3RoZXJJRCA9IFJlYWN0TW91bnQuZ2V0SUQob3RoZXJOb2RlKTtcbiAgICAgICFvdGhlcklEID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0RE9NSW5wdXQ6IE1peGluZyBSZWFjdCBhbmQgbm9uLVJlYWN0IHJhZGlvIGlucHV0cyB3aXRoIHRoZSAnICsgJ3NhbWUgYG5hbWVgIGlzIG5vdCBzdXBwb3J0ZWQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICAgdmFyIG90aGVySW5zdGFuY2UgPSBpbnN0YW5jZXNCeVJlYWN0SURbb3RoZXJJRF07XG4gICAgICAhb3RoZXJJbnN0YW5jZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdSZWFjdERPTUlucHV0OiBVbmtub3duIHJhZGlvIGJ1dHRvbiBJRCAlcy4nLCBvdGhlcklEKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICAvLyBJZiB0aGlzIGlzIGEgY29udHJvbGxlZCByYWRpbyBidXR0b24gZ3JvdXAsIGZvcmNpbmcgdGhlIGlucHV0IHRoYXRcbiAgICAgIC8vIHdhcyBwcmV2aW91c2x5IGNoZWNrZWQgdG8gdXBkYXRlIHdpbGwgY2F1c2UgaXQgdG8gYmUgY29tZSByZS1jaGVja2VkXG4gICAgICAvLyBhcyBhcHByb3ByaWF0ZS5cbiAgICAgIFJlYWN0VXBkYXRlcy5hc2FwKGZvcmNlVXBkYXRlSWZNb3VudGVkLCBvdGhlckluc3RhbmNlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01JbnB1dDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01JbnB1dC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 106 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule LinkedValueUtils\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactPropTypes = __webpack_require__(107);\nvar ReactPropTypeLocations = __webpack_require__(65);\n\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\nvar hasReadOnlyValue = {\n 'button': true,\n 'checkbox': true,\n 'image': true,\n 'hidden': true,\n 'radio': true,\n 'reset': true,\n 'submit': true\n};\n\nfunction _assertSingleLink(inputProps) {\n !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use ' + 'checkedLink, you probably don\\'t want to use valueLink and vice versa.') : invariant(false) : undefined;\n}\nfunction _assertValueLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want ' + 'to use value or onChange, you probably don\\'t want to use valueLink.') : invariant(false) : undefined;\n}\n\nfunction _assertCheckedLink(inputProps) {\n _assertSingleLink(inputProps);\n !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. ' + 'If you want to use checked or onChange, you probably don\\'t want to ' + 'use checkedLink') : invariant(false) : undefined;\n}\n\nvar propTypes = {\n value: function value(props, propName, componentName) {\n if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function checked(props, propName, componentName) {\n if (!props[propName] || props.onChange || props.readOnly || props.disabled) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n onChange: ReactPropTypes.func\n};\n\nvar loggedTypeFailures = {};\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\nvar LinkedValueUtils = {\n checkPropTypes: function checkPropTypes(tagName, props, owner) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, tagName, ReactPropTypeLocations.prop);\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum(owner);\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined;\n }\n }\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current value of the input either from value prop or link.\n */\n getValue: function getValue(inputProps) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.value;\n }\n return inputProps.value;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @return {*} current checked status of the input either from checked prop\n * or link.\n */\n getChecked: function getChecked(inputProps) {\n if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.value;\n }\n return inputProps.checked;\n },\n\n /**\n * @param {object} inputProps Props for form component\n * @param {SyntheticEvent} event change event to handle\n */\n executeOnChange: function executeOnChange(inputProps, event) {\n if (inputProps.valueLink) {\n _assertValueLink(inputProps);\n return inputProps.valueLink.requestChange(event.target.value);\n } else if (inputProps.checkedLink) {\n _assertCheckedLink(inputProps);\n return inputProps.checkedLink.requestChange(event.target.checked);\n } else if (inputProps.onChange) {\n return inputProps.onChange.call(undefined, event);\n }\n }\n};\n\nmodule.exports = LinkedValueUtils;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvTGlua2VkVmFsdWVVdGlscy5qcz9mNTJlIl0sIm5hbWVzIjpbIlJlYWN0UHJvcFR5cGVzIiwicmVxdWlyZSIsIlJlYWN0UHJvcFR5cGVMb2NhdGlvbnMiLCJpbnZhcmlhbnQiLCJ3YXJuaW5nIiwiaGFzUmVhZE9ubHlWYWx1ZSIsIl9hc3NlcnRTaW5nbGVMaW5rIiwiaW5wdXRQcm9wcyIsImNoZWNrZWRMaW5rIiwidmFsdWVMaW5rIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwiX2Fzc2VydFZhbHVlTGluayIsInZhbHVlIiwib25DaGFuZ2UiLCJfYXNzZXJ0Q2hlY2tlZExpbmsiLCJjaGVja2VkIiwicHJvcFR5cGVzIiwicHJvcHMiLCJwcm9wTmFtZSIsImNvbXBvbmVudE5hbWUiLCJ0eXBlIiwicmVhZE9ubHkiLCJkaXNhYmxlZCIsIkVycm9yIiwiZnVuYyIsImxvZ2dlZFR5cGVGYWlsdXJlcyIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsIm93bmVyIiwibmFtZSIsImdldE5hbWUiLCJMaW5rZWRWYWx1ZVV0aWxzIiwiY2hlY2tQcm9wVHlwZXMiLCJ0YWdOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJlcnJvciIsInByb3AiLCJtZXNzYWdlIiwiYWRkZW5kdW0iLCJnZXRWYWx1ZSIsImdldENoZWNrZWQiLCJleGVjdXRlT25DaGFuZ2UiLCJldmVudCIsInJlcXVlc3RDaGFuZ2UiLCJ0YXJnZXQiLCJjYWxsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGlCQUFpQixtQkFBQUMsQ0FBUSxHQUFSLENBQXJCO0FBQ0EsSUFBSUMseUJBQXlCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBN0I7O0FBRUEsSUFBSUUsWUFBWSxtQkFBQUYs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QyxXQUFXRSxTQUFmLEVBQTBCO0FBQ3hCSyx1QkFBaUJQLFVBQWpCO0FBQ0EsYUFBT0EsV0FBV0UsU0FBWCxDQUFxQm9DLGFBQXJCLENBQW1DRCxNQUFNRSxNQUFOLENBQWEvQixLQUFoRCxDQUFQO0FBQ0QsS0FIRCxNQUdPLElBQUlSLFdBQVdDLFdBQWYsRUFBNEI7QUFDakNTLHlCQUFtQlYsVUFBbkI7QUFDQSxhQUFPQSxXQUFXQyxXQUFYLENBQXVCcUMsYUFBdkIsQ0FBcUNELE1BQU1FLE1BQU4sQ0FBYTVCLE9BQWxELENBQVA7QUFDRCxLQUhNLE1BR0EsSUFBSVgsV0FBV1MsUUFBZixFQUF5QjtBQUM5QixhQUFPVCxXQUFXUyxRQUFYLENBQW9CK0IsSUFBcEIsQ0FBeUJsQyxTQUF6QixFQUFvQytCLEtBQXBDLENBQVA7QUFDRDtBQUNGO0FBeERvQixDQUF2Qjs7QUEyREFJLE9BQU9DLE9BQVAsR0FBaUJoQixnQkFBakIsQyIsImZpbGUiOiIxMDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgTGlua2VkVmFsdWVVdGlsc1xuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlcyA9IHJlcXVpcmUoJy4vUmVhY3RQcm9wVHlwZXMnKTtcbnZhciBSZWFjdFByb3BUeXBlTG9jYXRpb25zID0gcmVxdWlyZSgnLi9SZWFjdFByb3BUeXBlTG9jYXRpb25zJyk7XG5cbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG52YXIgaGFzUmVhZE9ubHlWYWx1ZSA9IHtcbiAgJ2J1dHRvbic6IHRydWUsXG4gICdjaGVja2JveCc6IHRydWUsXG4gICdpbWFnZSc6IHRydWUsXG4gICdoaWRkZW4nOiB0cnVlLFxuICAncmFkaW8nOiB0cnVlLFxuICAncmVzZXQnOiB0cnVlLFxuICAnc3VibWl0JzogdHJ1ZVxufTtcblxuZnVuY3Rpb24gX2Fzc2VydFNpbmdsZUxpbmsoaW5wdXRQcm9wcykge1xuICAhKGlucHV0UHJvcHMuY2hlY2tlZExpbmsgPT0gbnVsbCB8fCBpbnB1dFByb3BzLnZhbHVlTGluayA9PSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdDYW5ub3QgcHJvdmlkZSBhIGNoZWNrZWRMaW5rIGFuZCBhIHZhbHVlTGluay4gSWYgeW91IHdhbnQgdG8gdXNlICcgKyAnY2hlY2tlZExpbmssIHlvdSBwcm9iYWJseSBkb25cXCd0IHdhbnQgdG8gdXNlIHZhbHVlTGluayBhbmQgdmljZSB2ZXJzYS4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBfYXNzZXJ0VmFsdWVMaW5rKGlucHV0UHJvcHMpIHtcbiAgX2Fzc2VydFNpbmdsZUxpbmsoaW5wdXRQcm9wcyk7XG4gICEoaW5wdXRQcm9wcy52YWx1ZSA9PSBudWxsICYmIGlucHV0UHJvcHMub25DaGFuZ2UgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnQ2Fubm90IHByb3ZpZGUgYSB2YWx1ZUxpbmsgYW5kIGEgdmFsdWUgb3Igb25DaGFuZ2UgZXZlbnQuIElmIHlvdSB3YW50ICcgKyAndG8gdXNlIHZhbHVlIG9yIG9uQ2hhbmdlLCB5b3UgcHJvYmFibHkgZG9uXFwndCB3YW50IHRvIHVzZSB2YWx1ZUxpbmsuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBfYXNzZXJ0Q2hlY2tlZExpbmsoaW5wdXRQcm9wcykge1xuICBfYXNzZXJ0U2luZ2xlTGluayhpbnB1dFByb3BzKTtcbiAgIShpbnB1dFByb3BzLmNoZWNrZWQgPT0gbnVsbCAmJiBpbnB1dFByb3BzLm9uQ2hhbmdlID09IG51bGwpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0Nhbm5vdCBwcm92aWRlIGEgY2hlY2tlZExpbmsgYW5kIGEgY2hlY2tlZCBwcm9wZXJ0eSBvciBvbkNoYW5nZSBldmVudC4gJyArICdJZiB5b3Ugd2FudCB0byB1c2UgY2hlY2tlZCBvciBvbkNoYW5nZSwgeW91IHByb2JhYmx5IGRvblxcJ3Qgd2FudCB0byAnICsgJ3VzZSBjaGVja2VkTGluaycpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbn1cblxudmFyIHByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IGZ1bmN0aW9uIChwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgICBpZiAoIXByb3BzW3Byb3BOYW1lXSB8fCBoYXNSZWFkT25seVZhbHVlW3Byb3BzLnR5cGVdIHx8IHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBFcnJvcignWW91IHByb3ZpZGVkIGEgYHZhbHVlYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRob3V0IGFuICcgKyAnYG9uQ2hhbmdlYCBoYW5kbGVyLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBJZiAnICsgJ3RoZSBmaWVsZCBzaG91bGQgYmUgbXV0YWJsZSB1c2UgYGRlZmF1bHRWYWx1ZWAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgfSxcbiAgY2hlY2tlZDogZnVuY3Rpb24gKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgIGlmICghcHJvcHNbcHJvcE5hbWVdIHx8IHByb3BzLm9uQ2hhbmdlIHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBFcnJvcignWW91IHByb3ZpZGVkIGEgYGNoZWNrZWRgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdENoZWNrZWRgLiBPdGhlcndpc2UsICcgKyAnc2V0IGVpdGhlciBgb25DaGFuZ2VgIG9yIGByZWFkT25seWAuJyk7XG4gIH0sXG4gIG9uQ2hhbmdlOiBSZWFjdFByb3BUeXBlcy5mdW5jXG59O1xuXG52YXIgbG9nZ2VkVHlwZUZhaWx1cmVzID0ge307XG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0ob3duZXIpIHtcbiAgaWYgKG93bmVyKSB7XG4gICAgdmFyIG5hbWUgPSBvd25lci5nZXROYW1lKCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBQcm92aWRlIGEgbGlua2VkIGB2YWx1ZWAgYXR0cmlidXRlIGZvciBjb250cm9sbGVkIGZvcm1zLiBZb3Ugc2hvdWxkIG5vdCB1c2VcbiAqIHRoaXMgb3V0c2lkZSBvZiB0aGUgUmVhY3RET00gY29udHJvbGxlZCBmb3JtIGNvbXBvbmVudHMuXG4gKi9cbnZhciBMaW5rZWRWYWx1ZVV0aWxzID0ge1xuICBjaGVja1Byb3BUeXBlczogZnVuY3Rpb24gKHRhZ05hbWUsIHByb3BzLCBvd25lcikge1xuICAgIGZvciAodmFyIHByb3BOYW1lIGluIHByb3BUeXBlcykge1xuICAgICAgaWYgKHByb3BUeXBlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yID0gcHJvcFR5cGVzW3Byb3BOYW1lXShwcm9wcywgcHJvcE5hbWUsIHRhZ05hbWUsIFJlYWN0UHJvcFR5cGVMb2NhdGlvbnMucHJvcCk7XG4gICAgICB9XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAhKGVycm9yLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgLy8gc2FtZSBlcnJvci5cbiAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yLm1lc3NhZ2VdID0gdHJ1ZTtcblxuICAgICAgICB2YXIgYWRkZW5kdW0gPSBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0ob3duZXIpO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ZhaWxlZCBmb3JtIHByb3BUeXBlOiAlcyVzJywgZXJyb3IubWVzc2FnZSwgYWRkZW5kdW0pIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGlucHV0UHJvcHMgUHJvcHMgZm9yIGZvcm0gY29tcG9uZW50XG4gICAqIEByZXR1cm4geyp9IGN1cnJlbnQgdmFsdWUgb2YgdGhlIGlucHV0IGVpdGhlciBmcm9tIHZhbHVlIHByb3Agb3IgbGluay5cbiAgICovXG4gIGdldFZhbHVlOiBmdW5jdGlvbiAoaW5wdXRQcm9wcykge1xuICAgIGlmIChpbnB1dFByb3BzLnZhbHVlTGluaykge1xuICAgICAgX2Fzc2VydFZhbHVlTGluayhpbnB1dFByb3BzKTtcbiAgICAgIHJldHVybiBpbnB1dFByb3BzLnZhbHVlTGluay52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGlucHV0UHJvcHMudmFsdWU7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpbnB1dFByb3BzIFByb3BzIGZvciBmb3JtIGNvbXBvbmVudFxuICAgKiBAcmV0dXJuIHsqfSBjdXJyZW50IGNoZWNrZWQgc3RhdHVzIG9mIHRoZSBpbnB1dCBlaXRoZXIgZnJvbSBjaGVja2VkIHByb3BcbiAgICogICAgICAgICAgICAgb3IgbGluay5cbiAgICovXG4gIGdldENoZWNrZWQ6IGZ1bmN0aW9uIChpbnB1dFByb3BzKSB7XG4gICAgaWYgKGlucHV0UHJvcHMuY2hlY2tlZExpbmspIHtcbiAgICAgIF9hc3NlcnRDaGVja2VkTGluayhpbnB1dFByb3BzKTtcbiAgICAgIHJldHVybiBpbnB1dFByb3BzLmNoZWNrZWRMaW5rLnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gaW5wdXRQcm9wcy5jaGVja2VkO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gaW5wdXRQcm9wcyBQcm9wcyBmb3IgZm9ybSBjb21wb25lbnRcbiAgICogQHBhcmFtIHtTeW50aGV0aWNFdmVudH0gZXZlbnQgY2hhbmdlIGV2ZW50IHRvIGhhbmRsZVxuICAgKi9cbiAgZXhlY3V0ZU9uQ2hhbmdlOiBmdW5jdGlvbiAoaW5wdXRQcm9wcywgZXZlbnQpIHtcbiAgICBpZiAoaW5wdXRQcm9wcy52YWx1ZUxpbmspIHtcbiAgICAgIF9hc3NlcnRWYWx1ZUxpbmsoaW5wdXRQcm9wcyk7XG4gICAgICByZXR1cm4gaW5wdXRQcm9wcy52YWx1ZUxpbmsucmVxdWVzdENoYW5nZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoaW5wdXRQcm9wcy5jaGVja2VkTGluaykge1xuICAgICAgX2Fzc2VydENoZWNrZWRMaW5rKGlucHV0UHJvcHMpO1xuICAgICAgcmV0dXJuIGlucHV0UHJvcHMuY2hlY2tlZExpbmsucmVxdWVzdENoYW5nZShldmVudC50YXJnZXQuY2hlY2tlZCk7XG4gICAgfSBlbHNlIGlmIChpbnB1dFByb3BzLm9uQ2hhbmdlKSB7XG4gICAgICByZXR1cm4gaW5wdXRQcm9wcy5vbkNoYW5nZS5jYWxsKHVuZGVmaW5lZCwgZXZlbnQpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBMaW5rZWRWYWx1ZVV0aWxzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9MaW5rZWRWYWx1ZVV0aWxzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 107 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactPropTypes\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactElement = __webpack_require__(42);\nvar ReactPropTypeLocationNames = __webpack_require__(66);\n\nvar emptyFunction = __webpack_require__(15);\nvar getIteratorFn = __webpack_require__(108);\n\n/**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\nvar ANONYMOUS = '<<anonymous>>';\n\nvar ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n};\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n if (props[propName] == null) {\n var locationName = ReactPropTypeLocationNames[location];\n if (isRequired) {\n return new Error('Required ' + locationName + ' `' + propFullName + '` was not specified in ' + ('`' + componentName + '`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\n\nfunction createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n var locationName = ReactPropTypeLocationNames[location];\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturns(null));\n}\n\nfunction createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var locationName = ReactPropTypeLocationNames[location];\n var propType = getPropType(propValue);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']');\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!ReactElement.isValidElement(props[propName])) {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var locationName = ReactPropTypeLocationNames[location];\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n return createChainableTypeChecker(function () {\n return new Error('Invalid argument supplied to oneOf, expected an instance of array.');\n });\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (propValue === expectedValues[i]) {\n return null;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n var valuesString = JSON.stringify(expectedValues);\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n return createChainableTypeChecker(function () {\n return new Error('Invalid argument supplied to oneOfType, expected an instance of array.');\n });\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName) == null) {\n return null;\n }\n }\n\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n var locationName = ReactPropTypeLocationNames[location];\n return new Error('Invalid ' + locationName + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n}\n\nfunction isNode(propValue) {\n switch (typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue)) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || ReactElement.isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n}\n\n// Equivalent of `typeof` but with special handling for array and regexp.\nfunction getPropType(propValue) {\n var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n return propType;\n}\n\n// This handles more types than `getPropType`. Only used for error messages.\n// See `createPrimitiveTypeChecker`.\nfunction getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n}\n\n// Returns class name of the object, if any.\nfunction getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return '<<anonymous>>';\n }\n return propValue.constructor.name;\n}\n\nmodule.exports = ReactPropTypes;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RQcm9wVHlwZXMuanM/YzhjMSJdLCJuYW1lcyI6WyJSZWFjdEVsZW1lbnQiLCJyZXF1aXJlIiwiUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMiLCJlbXB0eUZ1bmN0aW9uIiwiZ2V0SXRlcmF0b3JGbiIsIkFOT05ZTU9VUyIsIlJlYWN0UHJvcFR5cGVzIiwiYXJyYXkiLCJjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlciIsImJvb2wiLCJmdW5jIiwibnVtYmVyIiwib2JqZWN0Iiwic3RyaW5nIiwiYW55IiwiY3JlYXRlQW55VHlwZUNoZWNrZXIiLCJhcnJheU9mIiwiY3JlYXRlQXJyYXlPZlR5cGVDaGVja2VyIiwiZWxlbWVudCIsImNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlciIsImluc3RhbmNlT2YiLCJjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyIiwibm9kZSIsImNyZWF0ZU5vZGVDaGVja2VyIiwib2JqZWN0T2YiLCJjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyIiwib25lT2YiLCJjcmVhdGVFbnVtVHlwZUNoZWNrZXIiLCJvbmVPZlR5cGUiLCJjcmVhdGVVbmlvblR5cGVDaGVja2VyIiwic2hhcGUiLCJjcmVhdGVTaGFwZVR5cGVDaGVja2VyIiwiY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIiLCJ2YWxpZGF0ZSIsImNoZWNrVHlwZSIsImlzUmVxdWlyZWQiLCJwcm9wcyIsInByb3BOYW1lIiwiY29tcG9uZW50TmFtZSIsImxvY2F0aW9uIiwicHJvcEZ1bGxOYW1lIiwibG9jYXRpb25OYW1lIiwiRXJyb3IiLCJjaGFpbmVkQ2hlY2tUeXBlIiwiYmluZCIsImV4cGVjdGVkVHlwZSIsInByb3BWYWx1ZSIsInByb3BUeXBlIiwiZ2V0UHJvcFR5cGUiLCJwcmVjaXNlVHlwZSIsImdldFByZWNpc2VUeXBlIiwidGhhdFJldHVybnMiLCJ0eXBlQ2hlY2tlciIsIkFycmF5IiwiaXNBcnJheSIsImkiLCJsZW5ndGgiLCJlcnJvciIsImlzVmFsaWRFbGVtZW50IiwiZXhwZWN0ZWRDbGFzcyIsImV4cGVjdGVkQ2xhc3NOYW1lIiwibmFtZSIsImFjdHVhbENsYXNzTmFtZSIsImdldENsYXNzTmFtZSIsImV4cGVjdGVkVmFsdWVzIiwidmFsdWVzU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImtleSIsImhhc093blByb3BlcnR5IiwiYXJyYXlPZlR5cGVDaGVja2VycyIsImNoZWNrZXIiLCJpc05vZGUiLCJzaGFwZVR5cGVzIiwiZXZlcnkiLCJpdGVyYXRvckZuIiwiaXRlcmF0b3IiLCJjYWxsIiwic3RlcCIsImVudHJpZXMiLCJuZXh0IiwiZG9uZSIsInZhbHVlIiwiZW50cnkiLCJSZWdFeHAiLCJEYXRlIiwiY29uc3RydWN0b3IiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7OztBQUVBLElBQUlBLGVBQWUsbUJBQUFDLENBQVEsRUFBUixDQUFuQjtBQUNBLElBQUlDLDZCQUE2QixtQkFBQUQsQ0FBUSxFQUFSLENBQWpDOztBQUVBLElBQUlFLGdCQUFnQixtQkFBQUYsQ0FBUSxFQUFSLENBQXBCO0FBQ0EsSUFBSUcsZ0JBQWdCLG1CQUFBSCxDQUFRLEdBQVIsQ0FBcEI7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0NBLElBQUlJLFlBQVksZUFBaEI7O0FBRUEsSUFBSUMsaUJBQWlCO0FBQ25CQyxTQUFPQywyQkFBMkIsT0FBM0IsQ0FEWTtBQUVuQkMsUUFBTUQsMkJBQTJCLFNBQTNCLENBRmE7QUFHbkJFLFFBQU1GLDJCQUEyQixVQUEzQixDQUhhO0FBSW5CRyxVQUFRSCwyQkFBMkIsUUFBM0IsQ0FKVztBQUtuQkksVUFBUUosMkJBQTJCLFFBQTNCLENBTFc7QUFNbkJLLFVBQVFMLDJCQUEyQixRQUEzQixDQU5XOztBQVFu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cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0UHJvcFR5cGVzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RFbGVtZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVsZW1lbnQnKTtcbnZhciBSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcyA9IHJlcXVpcmUoJy4vUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMnKTtcblxudmFyIGVtcHR5RnVuY3Rpb24gPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eUZ1bmN0aW9uJyk7XG52YXIgZ2V0SXRlcmF0b3JGbiA9IHJlcXVpcmUoJy4vZ2V0SXRlcmF0b3JGbicpO1xuXG4vKipcbiAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyB0aGF0IGFsbG93IGRlY2xhcmF0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIHByb3BzIHRoYXQgYXJlXG4gKiBzdXBwbGllZCB0byBSZWFjdCBjb21wb25lbnRzLiBFeGFtcGxlIHVzYWdlOlxuICpcbiAqICAgdmFyIFByb3BzID0gcmVxdWlyZSgnUmVhY3RQcm9wVHlwZXMnKTtcbiAqICAgdmFyIE15QXJ0aWNsZSA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAqICAgICBwcm9wVHlwZXM6IHtcbiAqICAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBwcm9wIG5hbWVkIFwiZGVzY3JpcHRpb25cIi5cbiAqICAgICAgIGRlc2NyaXB0aW9uOiBQcm9wcy5zdHJpbmcsXG4gKlxuICogICAgICAgLy8gQSByZXF1aXJlZCBlbnVtIHByb3AgbmFtZWQgXCJjYXRlZ29yeVwiLlxuICogICAgICAgY2F0ZWdvcnk6IFByb3BzLm9uZU9mKFsnTmV3cycsJ1Bob3RvcyddKS5pc1JlcXVpcmVkLFxuICpcbiAqICAgICAgIC8vIEEgcHJvcCBuYW1lZCBcImRpYWxvZ1wiIHRoYXQgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nLlxuICogICAgICAgZGlhbG9nOiBQcm9wcy5pbnN0YW5jZU9mKERpYWxvZykuaXNSZXF1aXJlZFxuICogICAgIH0sXG4gKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsgLi4uIH1cbiAqICAgfSk7XG4gKlxuICogQSBtb3JlIGZvcm1hbCBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGVzZSBtZXRob2RzIGFyZSB1c2VkOlxuICpcbiAqICAgdHlwZSA6PSBhcnJheXxib29sfGZ1bmN8b2JqZWN0fG51bWJlcnxzdHJpbmd8b25lT2YoWy4uLl0pfGluc3RhbmNlT2YoLi4uKVxuICogICBkZWNsIDo9IFJlYWN0UHJvcFR5cGVzLnt0eXBlfSguaXNSZXF1aXJlZCk/XG4gKlxuICogRWFjaCBhbmQgZXZlcnkgZGVjbGFyYXRpb24gcHJvZHVjZXMgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHNpZ25hdHVyZS4gVGhpc1xuICogYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbnMuIEZvciBleGFtcGxlOlxuICpcbiAqICB2YXIgTXlMaW5rID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICogICAgcHJvcFR5cGVzOiB7XG4gKiAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBvciBVUkkgcHJvcCBuYW1lZCBcImhyZWZcIi5cbiAqICAgICAgaHJlZjogZnVuY3Rpb24ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lKSB7XG4gKiAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAqICAgICAgICBpZiAocHJvcFZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHByb3BWYWx1ZSAhPT0gJ3N0cmluZycgJiZcbiAqICAgICAgICAgICAgIShwcm9wVmFsdWUgaW5zdGFuY2VvZiBVUkkpKSB7XG4gKiAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICogICAgICAgICAgICAnRXhwZWN0ZWQgYSBzdHJpbmcgb3IgYW4gVVJJIGZvciAnICsgcHJvcE5hbWUgKyAnIGluICcgK1xuICogICAgICAgICAgICBjb21wb25lbnROYW1lXG4gKiAgICAgICAgICApO1xuICogICAgICAgIH1cbiAqICAgICAgfVxuICogICAgfSxcbiAqICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7Li4ufVxuICogIH0pO1xuICpcbiAqIEBpbnRlcm5hbFxuICovXG5cbnZhciBBTk9OWU1PVVMgPSAnPDxhbm9ueW1vdXM+Pic7XG5cbnZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgYXJyYXk6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdhcnJheScpLFxuICBib29sOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignYm9vbGVhbicpLFxuICBmdW5jOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignZnVuY3Rpb24nKSxcbiAgbnVtYmVyOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignbnVtYmVyJyksXG4gIG9iamVjdDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ29iamVjdCcpLFxuICBzdHJpbmc6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzdHJpbmcnKSxcblxuICBhbnk6IGNyZWF0ZUFueVR5cGVDaGVja2VyKCksXG4gIGFycmF5T2Y6IGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcixcbiAgZWxlbWVudDogY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCksXG4gIGluc3RhbmNlT2Y6IGNyZWF0ZUluc3RhbmNlVHlwZUNoZWNrZXIsXG4gIG5vZGU6IGNyZWF0ZU5vZGVDaGVja2VyKCksXG4gIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICBvbmVPZjogY3JlYXRlRW51bVR5cGVDaGVja2VyLFxuICBvbmVPZlR5cGU6IGNyZWF0ZVVuaW9uVHlwZUNoZWNrZXIsXG4gIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSkge1xuICBmdW5jdGlvbiBjaGVja1R5cGUoaXNSZXF1aXJlZCwgcHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgQU5PTllNT1VTO1xuICAgIHByb3BGdWxsTmFtZSA9IHByb3BGdWxsTmFtZSB8fCBwcm9wTmFtZTtcbiAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgIHZhciBsb2NhdGlvbk5hbWUgPSBSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lc1tsb2NhdGlvbl07XG4gICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdSZXF1aXJlZCAnICsgbG9jYXRpb25OYW1lICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHdhcyBub3Qgc3BlY2lmaWVkIGluICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKTtcbiAgICB9XG4gIH1cblxuICB2YXIgY2hhaW5lZENoZWNrVHlwZSA9IGNoZWNrVHlwZS5iaW5kKG51bGwsIGZhbHNlKTtcbiAgY2hhaW5lZENoZWNrVHlwZS5pc1JlcXVpcmVkID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgdHJ1ZSk7XG5cbiAgcmV0dXJuIGNoYWluZWRDaGVja1R5cGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKGV4cGVjdGVkVHlwZSkge1xuICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgaWYgKHByb3BUeXBlICE9PSBleHBlY3RlZFR5cGUpIHtcbiAgICAgIHZhciBsb2NhdGlvbk5hbWUgPSBSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lc1tsb2NhdGlvbl07XG4gICAgICAvLyBgcHJvcFZhbHVlYCBiZWluZyBpbnN0YW5jZSBvZiwgc2F5LCBkYXRlL3JlZ2V4cCwgcGFzcyB0aGUgJ29iamVjdCdcbiAgICAgIC8vIGNoZWNrLCBidXQgd2UgY2FuIG9mZmVyIGEgbW9yZSBwcmVjaXNlIGVycm9yIG1lc3NhZ2UgaGVyZSByYXRoZXIgdGhhblxuICAgICAgLy8gJ29mIHR5cGUgYG9iamVjdGAnLlxuICAgICAgdmFyIHByZWNpc2VUeXBlID0gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKTtcblxuICAgICAgcmV0dXJuIG5ldyBFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb25OYW1lICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcmVjaXNlVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCAnKSArICgnYCcgKyBleHBlY3RlZFR5cGUgKyAnYC4nKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFueVR5cGVDaGVja2VyKCkge1xuICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJucyhudWxsKSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICB2YXIgbG9jYXRpb25OYW1lID0gUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXNbbG9jYXRpb25dO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIHJldHVybiBuZXcgRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uTmFtZSArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gYXJyYXkuJykpO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBpLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJ1snICsgaSArICddJyk7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRUeXBlQ2hlY2tlcigpIHtcbiAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgaWYgKCFSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgdmFyIGxvY2F0aW9uTmFtZSA9IFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzW2xvY2F0aW9uXTtcbiAgICAgIHJldHVybiBuZXcgRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uTmFtZSArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBzdXBwbGllZCB0byAnICsgKCdgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYSBzaW5nbGUgUmVhY3RFbGVtZW50LicpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcihleHBlY3RlZENsYXNzKSB7XG4gIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICB2YXIgbG9jYXRpb25OYW1lID0gUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXNbbG9jYXRpb25dO1xuICAgICAgdmFyIGV4cGVjdGVkQ2xhc3NOYW1lID0gZXhwZWN0ZWRDbGFzcy5uYW1lIHx8IEFOT05ZTU9VUztcbiAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgIHJldHVybiBuZXcgRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uTmFtZSArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGV4cGVjdGVkVmFsdWVzKSkge1xuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcihmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gbmV3IEVycm9yKCdJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRvIG9uZU9mLCBleHBlY3RlZCBhbiBpbnN0YW5jZSBvZiBhcnJheS4nKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wTmFtZV07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHByb3BWYWx1ZSA9PT0gZXhwZWN0ZWRWYWx1ZXNbaV0pIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGxvY2F0aW9uTmFtZSA9IFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzW2xvY2F0aW9uXTtcbiAgICB2YXIgdmFsdWVzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRWYWx1ZXMpO1xuICAgIHJldHVybiBuZXcgRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uTmFtZSArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB2YWx1ZSBgJyArIHByb3BWYWx1ZSArICdgICcgKyAoJ3N1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBvbmUgb2YgJyArIHZhbHVlc1N0cmluZyArICcuJykpO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBsb2NhdGlvbk5hbWUgPSBSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lc1tsb2NhdGlvbl07XG4gICAgICByZXR1cm4gbmV3IEVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbk5hbWUgKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIG9iamVjdC4nKSk7XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB2YXIgZXJyb3IgPSB0eXBlQ2hlY2tlcihwcm9wVmFsdWUsIGtleSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICcuJyArIGtleSk7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVVuaW9uVHlwZUNoZWNrZXIoYXJyYXlPZlR5cGVDaGVja2Vycykge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIoZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG5ldyBFcnJvcignSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdmFsaWRhdGUocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheU9mVHlwZUNoZWNrZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICBpZiAoY2hlY2tlcihwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGxvY2F0aW9uTmFtZSA9IFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzW2xvY2F0aW9uXTtcbiAgICByZXR1cm4gbmV3IEVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbk5hbWUgKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agc3VwcGxpZWQgdG8gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AuJykpO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICBpZiAoIWlzTm9kZShwcm9wc1twcm9wTmFtZV0pKSB7XG4gICAgICB2YXIgbG9jYXRpb25OYW1lID0gUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXNbbG9jYXRpb25dO1xuICAgICAgcmV0dXJuIG5ldyBFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb25OYW1lICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgaWYgKHByb3BUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgdmFyIGxvY2F0aW9uTmFtZSA9IFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzW2xvY2F0aW9uXTtcbiAgICAgIHJldHVybiBuZXcgRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uTmFtZSArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlIGAnICsgcHJvcFR5cGUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYG9iamVjdGAuJykpO1xuICAgIH1cbiAgICBmb3IgKHZhciBrZXkgaW4gc2hhcGVUeXBlcykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBzaGFwZVR5cGVzW2tleV07XG4gICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5KTtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG59XG5cbmZ1bmN0aW9uIGlzTm9kZShwcm9wVmFsdWUpIHtcbiAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wVmFsdWUgPT09IG51bGwgfHwgUmVhY3RFbGVtZW50LmlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgaWYgKGl0ZXJhdG9yRm4pIHtcbiAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKHByb3BWYWx1ZSk7XG4gICAgICAgIHZhciBzdGVwO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gcHJvcFZhbHVlLmVudHJpZXMpIHtcbiAgICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEl0ZXJhdG9yIHdpbGwgcHJvdmlkZSBlbnRyeSBbayx2XSB0dXBsZXMgcmF0aGVyIHRoYW4gdmFsdWVzLlxuICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgIHZhciBlbnRyeSA9IHN0ZXAudmFsdWU7XG4gICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuZnVuY3Rpb24gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKSB7XG4gIHZhciBwcm9wVHlwZSA9IHR5cGVvZiBwcm9wVmFsdWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICByZXR1cm4gJ2FycmF5JztcbiAgfVxuICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgLy8gT2xkIHdlYmtpdHMgKGF0IGxlYXN0IHVudGlsIEFuZHJvaWQgNC4wKSByZXR1cm4gJ2Z1bmN0aW9uJyByYXRoZXIgdGhhblxuICAgIC8vICdvYmplY3QnIGZvciB0eXBlb2YgYSBSZWdFeHAuIFdlJ2xsIG5vcm1hbGl6ZSB0aGlzIGhlcmUgc28gdGhhdCAvYmxhL1xuICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgIHJldHVybiAnb2JqZWN0JztcbiAgfVxuICByZXR1cm4gcHJvcFR5cGU7XG59XG5cbi8vIFRoaXMgaGFuZGxlcyBtb3JlIHR5cGVzIHRoYW4gYGdldFByb3BUeXBlYC4gT25seSB1c2VkIGZvciBlcnJvciBtZXNzYWdlcy5cbi8vIFNlZSBgY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXJgLlxuZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlJztcbiAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuICdyZWdleHAnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcHJvcFR5cGU7XG59XG5cbi8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG5mdW5jdGlvbiBnZXRDbGFzc05hbWUocHJvcFZhbHVlKSB7XG4gIGlmICghcHJvcFZhbHVlLmNvbnN0cnVjdG9yIHx8ICFwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZSkge1xuICAgIHJldHVybiAnPDxhbm9ueW1vdXM+Pic7XG4gIH1cbiAgcmV0dXJuIHByb3BWYWx1ZS5jb25zdHJ1Y3Rvci5uYW1lO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0UHJvcFR5cGVzO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdFByb3BUeXBlcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 108 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getIteratorFn\n * @typechecks static-only\n */\n\n'use strict';\n\n/* global Symbol */\n\nvar ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n/**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\nfunction getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n}\n\nmodule.exports = getIteratorFn;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0SXRlcmF0b3JGbi5qcz80YTBiIl0sIm5hbWVzIjpbIklURVJBVE9SX1NZTUJPTCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiRkFVWF9JVEVSQVRPUl9TWU1CT0wiLCJnZXRJdGVyYXRvckZuIiwibWF5YmVJdGVyYWJsZSIsIml0ZXJhdG9yRm4iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUE7O0FBQ0EsSUFBSUEsa0JBQWtCLE9BQU9DLE1BQVAsS0FBa0IsVUFBbEIsSUFBZ0NBLE9BQU9DLFFBQTdEO0FBQ0EsSUFBSUMsdUJBQXVCLFlBQTNCLEMsQ0FBeUM7O0FBRXpDOzs7Ozs7Ozs7Ozs7OztBQWNBLFNBQVNDLGFBQVQsQ0FBdUJDLGFBQXZCLEVBQXNDO0FBQ3BDLE1BQUlDLGFBQWFELGtCQUFrQkwsbUJBQW1CSyxjQUFjTCxlQUFkLENBQW5CLElBQXFESyxjQUFjRixvQkFBZCxDQUF2RSxDQUFqQjtBQUNBLE1BQUksT0FBT0csVUFBUCxLQUFzQixVQUExQixFQUFzQztBQUNwQyxXQUFPQSxVQUFQO0FBQ0Q7QUFDRjs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQkosYUFBakIiLCJmaWxlIjoiMTA4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGdldEl0ZXJhdG9yRm5cbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKiBnbG9iYWwgU3ltYm9sICovXG52YXIgSVRFUkFUT1JfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7IC8vIEJlZm9yZSBTeW1ib2wgc3BlYy5cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpdGVyYXRvciBtZXRob2QgZnVuY3Rpb24gY29udGFpbmVkIG9uIHRoZSBpdGVyYWJsZSBvYmplY3QuXG4gKlxuICogQmUgc3VyZSB0byBpbnZva2UgdGhlIGZ1bmN0aW9uIHdpdGggdGhlIGl0ZXJhYmxlIGFzIGNvbnRleHQ6XG4gKlxuICogICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihteUl0ZXJhYmxlKTtcbiAqICAgICBpZiAoaXRlcmF0b3JGbikge1xuICogICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG15SXRlcmFibGUpO1xuICogICAgICAgLi4uXG4gKiAgICAgfVxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gbWF5YmVJdGVyYWJsZVxuICogQHJldHVybiB7P2Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgdmFyIGl0ZXJhdG9yRm4gPSBtYXliZUl0ZXJhYmxlICYmIChJVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtJVEVSQVRPUl9TWU1CT0xdIHx8IG1heWJlSXRlcmFibGVbRkFVWF9JVEVSQVRPUl9TWU1CT0xdKTtcbiAgaWYgKHR5cGVvZiBpdGVyYXRvckZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGl0ZXJhdG9yRm47XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRJdGVyYXRvckZuO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9nZXRJdGVyYXRvckZuLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 109 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMOption\n */\n\n'use strict';\n\nvar ReactChildren = __webpack_require__(110);\nvar ReactDOMSelect = __webpack_require__(112);\n\nvar assign = __webpack_require__(39);\nvar warning = __webpack_require__(25);\n\nvar valueContextKey = ReactDOMSelect.valueContextKey;\n\n/**\n * Implements an <option> native component that warns when `selected` is set.\n */\nvar ReactDOMOption = {\n mountWrapper: function mountWrapper(inst, props, context) {\n // TODO (yungsters): Remove support for `selected` in <option>.\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : undefined;\n }\n\n // Look up whether this option is 'selected' via context\n var selectValue = context[valueContextKey];\n\n // If context key is null (e.g., no specified value or after initial mount)\n // or missing (e.g., for <datalist>), we don't change props.selected\n var selected = null;\n if (selectValue != null) {\n selected = false;\n if (Array.isArray(selectValue)) {\n // multiple\n for (var i = 0; i < selectValue.length; i++) {\n if ('' + selectValue[i] === '' + props.value) {\n selected = true;\n break;\n }\n }\n } else {\n selected = '' + selectValue === '' + props.value;\n }\n }\n\n inst._wrapperState = { selected: selected };\n },\n\n getNativeProps: function getNativeProps(inst, props, context) {\n var nativeProps = assign({ selected: undefined, children: undefined }, props);\n\n // Read state only from initial mount because <select> updates value\n // manually; we need the initial state only for server rendering\n if (inst._wrapperState.selected != null) {\n nativeProps.selected = inst._wrapperState.selected;\n }\n\n var content = '';\n\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n ReactChildren.forEach(props.children, function (child) {\n if (child == null) {\n return;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n content += child;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : undefined;\n }\n });\n\n if (content) {\n nativeProps.children = content;\n }\n\n return nativeProps;\n }\n\n};\n\nmodule.exports = ReactDOMOption;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01PcHRpb24uanM/NmJlMyJdLCJuYW1lcyI6WyJSZWFjdENoaWxkcmVuIiwicmVxdWlyZSIsIlJlYWN0RE9NU2VsZWN0IiwiYXNzaWduIiwid2FybmluZyIsInZhbHVlQ29udGV4dEtleSIsIlJlYWN0RE9NT3B0aW9uIiwibW91bnRXcmFwcGVyIiwiaW5zdCIsInByb3BzIiwiY29udGV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInNlbGVjdGVkIiwidW5kZWZpbmVkIiwic2VsZWN0VmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJpIiwibGVuZ3RoIiwidmFsdWUiLCJfd3JhcHBlclN0YXRlIiwiZ2V0TmF0aXZlUHJvcHMiLCJuYXRpdmVQcm9wcyIsImNoaWxkcmVuIiwiY29udGVudCIsImZvckVhY2giLCJjaGlsZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLGdCQUFnQixtQkFBQUMsQ0FBUSxHQUFSLENBQXBCO0FBQ0EsSUFBSUMsaUJBQWlCLG1CQUFBRCxDQUFRLEdBQVIsQ0FBckI7O0FBRUEsSUFBSUUsU0FBUyxtQkFBQUYsQ0FBUSxFQUFSLENBQWI7QUFDQSxJQUFJRyxVQUFVLG1CQUFBSCxDQUFRLEVBQVIsQ0FBZDs7QUFFQSxJQUFJSSxrQkFBa0JILGVBQWVHLGVBQXJDOztBQUVBOzs7QUFHQSxJQUFJQyxpQkFBaUI7QUFDbkJDLGdCQUFjLHNCQUFVQyxJQUFWLEVBQWdCQyxLQUFoQixFQUF1QkMsT0FBdkIsRUFBZ0M7QUFDNUM7QUFDQSxRQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNGLGNBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1QsUUFBUUssTUFBTUssUUFBTixJQUFrQixJQUExQixFQUFnQyxvRUFBb0UsaUNBQXBHLENBQXhDLEdBQWlMQyxTQUFqTDtBQUNEOztBQUVEO0FBQ0EsUUFBSUMsY0FBY04sUUFBUUwsZUFBUixDQUFsQjs7QUFFQTtBQUNBO0FBQ0EsUUFBSVMsV0FBVyxJQUFmO0FBQ0EsUUFBSUUsZUFBZSxJQUFuQixFQUF5QjtBQUN2QkYsaUJBQVcsS0FBWDtBQUNBLFVBQUlHLE1BQU1DLE9BQU4sQ0FBY0YsV0FBZCxDQUFKLEVBQWdDO0FBQzlCO0FBQ0EsYUFBSyxJQUFJRyxJQUFJLENBQWIsRUFBZ0JBLElBQUlILFlBQVlJLE1BQWhDLEVBQXdDRCxHQUF4QyxFQUE2QztBQUMzQyxjQUFJLEtBQUtILFlBQVlHLENBQVosQ0FBTCxLQUF3QixLQUFLVixNQUFNWSxLQUF2QyxFQUE4QztBQUM1Q1AsdUJBQVcsSUFBWDtBQUNBO0FBQ0Q7QUFDRjtBQUNGLE9BUkQsTUFRTztBQUNMQSxtQkFBVyxLQUFLRSxXQUFMLEtBQXFCLEtBQUtQLE1BQU1ZLEtBQTNDO0FBQ0Q7QUFDRjs7QUFFRGIsU0FBS2MsYUFBTCxHQUFxQixFQUFFUixVQUFVQSxRQUFaLEVBQXJCO0FBQ0QsR0E3QmtCOztBQStCbkJTLGtCQUFnQix3QkFBVWYsSUFBVixFQUFnQkMsS0FBaEIsRUFBdUJDLE9BQXZCLEVBQWdDO0FBQzlDLFFBQUljLGNBQWNyQixPQUFPLEVBQUVXLFVBQVVDLFNBQVosRUFBdUJVLFVBQVVWLFNBQWpDLEVBQVAsRUFBcUROLEtBQXJELENBQWxCOztBQUVBO0FBQ0E7QUFDQSxRQUFJRCxLQUFLYyxhQUFMLENBQW1CUixRQUFuQixJQUErQixJQUFuQyxFQUF5QztBQUN2Q1Usa0JBQVlWLFFBQVosR0FBdUJOLEtBQUtjLGFBQUwsQ0FBbUJSLFFBQTFDO0FBQ0Q7O0FBRUQsUUFBSVksVUFBVSxFQUFkOztBQUVBO0FBQ0E7QUFDQTFCLGtCQUFjMkIsT0FBZCxDQUFzQmxCLE1BQU1nQixRQUE1QixFQUFzQyxVQUFVRyxLQUFWLEVBQWlCO0FBQ3JELFVBQUlBLFNBQVMsSUFBYixFQUFtQjtBQUNqQjtBQUNEO0FBQ0QsVUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQWpCLElBQTZCLE9BQU9BLEtBQVAsS0FBaUIsUUFBbEQsRUFBNEQ7QUFDMURGLG1CQUFXRSxLQUFYO0FBQ0QsT0FGRCxNQUVPO0FBQ0xqQixnQkFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDVCxRQUFRLEtBQVIsRUFBZSw4REFBZixDQUF4QyxHQUF5SFcsU0FBekg7QUFDRDtBQUNGLEtBVEQ7O0FBV0EsUUFBSVcsT0FBSixFQUFhO0FBQ1hGLGtCQUFZQyxRQUFaLEdBQXVCQyxPQUF2QjtBQUNEOztBQUVELFdBQU9GLFdBQVA7QUFDRDs7QUE1RGtCLENBQXJCOztBQWdFQUssT0FBT0MsT0FBUCxHQUFpQnhCLGNBQWpCLEMiLCJmaWxlIjoiMTA5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RE9NT3B0aW9uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RDaGlsZHJlbiA9IHJlcXVpcmUoJy4vUmVhY3RDaGlsZHJlbicpO1xudmFyIFJlYWN0RE9NU2VsZWN0ID0gcmVxdWlyZSgnLi9SZWFjdERPTVNlbGVjdCcpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIHZhbHVlQ29udGV4dEtleSA9IFJlYWN0RE9NU2VsZWN0LnZhbHVlQ29udGV4dEtleTtcblxuLyoqXG4gKiBJbXBsZW1lbnRzIGFuIDxvcHRpb24+IG5hdGl2ZSBjb21wb25lbnQgdGhhdCB3YXJucyB3aGVuIGBzZWxlY3RlZGAgaXMgc2V0LlxuICovXG52YXIgUmVhY3RET01PcHRpb24gPSB7XG4gIG1vdW50V3JhcHBlcjogZnVuY3Rpb24gKGluc3QsIHByb3BzLCBjb250ZXh0KSB7XG4gICAgLy8gVE9ETyAoeXVuZ3N0ZXJzKTogUmVtb3ZlIHN1cHBvcnQgZm9yIGBzZWxlY3RlZGAgaW4gPG9wdGlvbj4uXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHByb3BzLnNlbGVjdGVkID09IG51bGwsICdVc2UgdGhlIGBkZWZhdWx0VmFsdWVgIG9yIGB2YWx1ZWAgcHJvcHMgb24gPHNlbGVjdD4gaW5zdGVhZCBvZiAnICsgJ3NldHRpbmcgYHNlbGVjdGVkYCBvbiA8b3B0aW9uPi4nKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBMb29rIHVwIHdoZXRoZXIgdGhpcyBvcHRpb24gaXMgJ3NlbGVjdGVkJyB2aWEgY29udGV4dFxuICAgIHZhciBzZWxlY3RWYWx1ZSA9IGNvbnRleHRbdmFsdWVDb250ZXh0S2V5XTtcblxuICAgIC8vIElmIGNvbnRleHQga2V5IGlzIG51bGwgKGUuZy4sIG5vIHNwZWNpZmllZCB2YWx1ZSBvciBhZnRlciBpbml0aWFsIG1vdW50KVxuICAgIC8vIG9yIG1pc3NpbmcgKGUuZy4sIGZvciA8ZGF0YWxpc3Q+KSwgd2UgZG9uJ3QgY2hhbmdlIHByb3BzLnNlbGVjdGVkXG4gICAgdmFyIHNlbGVjdGVkID0gbnVsbDtcbiAgICBpZiAoc2VsZWN0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdFZhbHVlKSkge1xuICAgICAgICAvLyBtdWx0aXBsZVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKCcnICsgc2VsZWN0VmFsdWVbaV0gPT09ICcnICsgcHJvcHMudmFsdWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWQgPSAnJyArIHNlbGVjdFZhbHVlID09PSAnJyArIHByb3BzLnZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGluc3QuX3dyYXBwZXJTdGF0ZSA9IHsgc2VsZWN0ZWQ6IHNlbGVjdGVkIH07XG4gIH0sXG5cbiAgZ2V0TmF0aXZlUHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcywgY29udGV4dCkge1xuICAgIHZhciBuYXRpdmVQcm9wcyA9IGFzc2lnbih7IHNlbGVjdGVkOiB1bmRlZmluZWQsIGNoaWxkcmVuOiB1bmRlZmluZWQgfSwgcHJvcHMpO1xuXG4gICAgLy8gUmVhZCBzdGF0ZSBvbmx5IGZyb20gaW5pdGlhbCBtb3VudCBiZWNhdXNlIDxzZWxlY3Q+IHVwZGF0ZXMgdmFsdWVcbiAgICAvLyBtYW51YWxseTsgd2UgbmVlZCB0aGUgaW5pdGlhbCBzdGF0ZSBvbmx5IGZvciBzZXJ2ZXIgcmVuZGVyaW5nXG4gICAgaWYgKGluc3QuX3dyYXBwZXJTdGF0ZS5zZWxlY3RlZCAhPSBudWxsKSB7XG4gICAgICBuYXRpdmVQcm9wcy5zZWxlY3RlZCA9IGluc3QuX3dyYXBwZXJTdGF0ZS5zZWxlY3RlZDtcbiAgICB9XG5cbiAgICB2YXIgY29udGVudCA9ICcnO1xuXG4gICAgLy8gRmxhdHRlbiBjaGlsZHJlbiBhbmQgd2FybiBpZiB0aGV5IGFyZW4ndCBzdHJpbmdzIG9yIG51bWJlcnM7XG4gICAgLy8gaW52YWxpZCB0eXBlcyBhcmUgaWdub3JlZC5cbiAgICBSZWFjdENoaWxkcmVuLmZvckVhY2gocHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgaWYgKGNoaWxkID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNoaWxkID09PSAnbnVtYmVyJykge1xuICAgICAgICBjb250ZW50ICs9IGNoaWxkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoZmFsc2UsICdPbmx5IHN0cmluZ3MgYW5kIG51bWJlcnMgYXJlIHN1cHBvcnRlZCBhcyA8b3B0aW9uPiBjaGlsZHJlbi4nKSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChjb250ZW50KSB7XG4gICAgICBuYXRpdmVQcm9wcy5jaGlsZHJlbiA9IGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hdGl2ZVByb3BzO1xuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01PcHRpb247XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RE9NT3B0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 110 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildren\n */\n\n'use strict';\n\nvar PooledClass = __webpack_require__(56);\nvar ReactElement = __webpack_require__(42);\n\nvar emptyFunction = __webpack_require__(15);\nvar traverseAllChildren = __webpack_require__(111);\n\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\nvar fourArgumentPooler = PooledClass.fourArgumentPooler;\n\nvar userProvidedKeyEscapeRegex = /\\/(?!\\/)/g;\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '//');\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * traversal. Allows avoiding binding callbacks.\n *\n * @constructor ForEachBookKeeping\n * @param {!function} forEachFunction Function to perform traversal with.\n * @param {?*} forEachContext Context to perform context with.\n */\nfunction ForEachBookKeeping(forEachFunction, forEachContext) {\n this.func = forEachFunction;\n this.context = forEachContext;\n this.count = 0;\n}\nForEachBookKeeping.prototype.destructor = function () {\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func;\n var context = bookKeeping.context;\n\n func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n ForEachBookKeeping.release(traverseContext);\n}\n\n/**\n * PooledClass representing the bookkeeping associated with performing a child\n * mapping. Allows avoiding binding callbacks.\n *\n * @constructor MapBookKeeping\n * @param {!*} mapResult Object containing the ordered map of results.\n * @param {!function} mapFunction Function to perform mapping with.\n * @param {?*} mapContext Context to perform mapping with.\n */\nfunction MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {\n this.result = mapResult;\n this.keyPrefix = keyPrefix;\n this.func = mapFunction;\n this.context = mapContext;\n this.count = 0;\n}\nMapBookKeeping.prototype.destructor = function () {\n this.result = null;\n this.keyPrefix = null;\n this.func = null;\n this.context = null;\n this.count = 0;\n};\nPooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result;\n var keyPrefix = bookKeeping.keyPrefix;\n var func = bookKeeping.func;\n var context = bookKeeping.context;\n\n var mappedChild = func.call(context, child, bookKeeping.count++);\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);\n } else if (mappedChild != null) {\n if (ReactElement.isValidElement(mappedChild)) {\n mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,\n // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild !== child ? escapeUserProvidedKey(mappedChild.key || '') + '/' : '') + childKey);\n }\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n MapBookKeeping.release(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n\nfunction forEachSingleChildDummy(traverseContext, child, name) {\n return null;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children, context) {\n return traverseAllChildren(children, forEachSingleChildDummy, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n */\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);\n return result;\n}\n\nvar ReactChildren = {\n forEach: forEachChildren,\n map: mapChildren,\n mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,\n count: countChildren,\n toArray: toArray\n};\n\nmodule.exports = ReactChildren;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDaGlsZHJlbi5qcz9lMWQxIl0sIm5hbWVzIjpbIlBvb2xlZENsYXNzIiwicmVxdWlyZSIsIlJlYWN0RWxlbWVudCIsImVtcHR5RnVuY3Rpb24iLCJ0cmF2ZXJzZUFsbENoaWxkcmVuIiwidHdvQXJndW1lbnRQb29sZXIiLCJmb3VyQXJndW1lbnRQb29sZXIiLCJ1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCIsImVzY2FwZVVzZXJQcm92aWRlZEtleSIsInRleHQiLCJyZXBsYWNlIiwiRm9yRWFjaEJvb2tLZWVwaW5nIiwiZm9yRWFjaEZ1bmN0aW9uIiwiZm9yRWFjaENvbnRleHQiLCJmdW5jIiwiY29udGV4dCIsImNvdW50IiwicHJvdG90eXBlIiwiZGVzdHJ1Y3RvciIsImFkZFBvb2xpbmdUbyIsImZvckVhY2hTaW5nbGVDaGlsZCIsImJvb2tLZWVwaW5nIiwiY2hpbGQiLCJuYW1lIiwiY2FsbCIsImZvckVhY2hDaGlsZHJlbiIsImNoaWxkcmVuIiwiZm9yRWFjaEZ1bmMiLCJ0cmF2ZXJzZUNvbnRleHQiLCJnZXRQb29sZWQiLCJyZWxlYXNlIiwiTWFwQm9va0tlZXBpbmciLCJtYXBSZXN1bHQiLCJrZXlQcmVmaXgiLCJtYXBGdW5jdGlvbiIsIm1hcENvbnRleHQiLCJyZXN1bHQiLCJtYXBTaW5nbGVDaGlsZEludG9Db250ZXh0IiwiY2hpbGRLZXkiLCJtYXBwZWRDaGlsZCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWwiLCJ0aGF0UmV0dXJuc0FyZ3VtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJjbG9uZUFuZFJlcGxhY2VLZXkiLCJrZXkiLCJwdXNoIiwiYXJyYXkiLCJwcmVmaXgiLCJlc2NhcGVkUHJlZml4IiwibWFwQ2hpbGRyZW4iLCJmb3JFYWNoU2luZ2xlQ2hpbGREdW1teSIsImNvdW50Q2hpbGRyZW4iLCJ0b0FycmF5IiwiUmVhY3RDaGlsZHJlbiIsImZvckVhY2giLCJtYXAiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxjQUFjLG1CQUFBQyxDQUFRLEVBQVIsQ0FBbEI7QUFDQSxJQUFJQyxlQUFlLG1CQUFBRCxDQUFRLEVBQVIsQ0FBbkI7O0FBRUEsSUFBSUUsZ0JBQWdCLG1CQUFBRixDQUFRLEVBQVIsQ0FBcEI7QUFDQSxJQUFJRyxzQkFBc0IsbUJBQUFILENBQVEsR0FBUixDQUExQjs7QUFFQSxJQUFJSSxvQkFBb0JMLFlBQVlLLGlCQUFwQztBQUNBLElBQUlDLHFCQUFxQk4sWUFBWU0sa0JBQXJDOztBQUVBLElBQUlDLDZCQUE2QixXQUFqQztBQUNBLFNBQVNDLHFCQUFULENBQStCQyxJQUEvQixFQUFxQztBQUNuQyxTQUFPLENBQUMsS0FBS0EsSUFBTixFQUFZQyxPQUFaLENBQW9CSCwwQkFBcEIsRUFBZ0QsSUFBaEQsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7OztBQVFBLFNBQVNJLGtCQUFULENBQTRCQyxlQUE1QixFQUE2Q0MsY0FBN0MsRUFBNkQ7QUFDM0QsT0FBS0MsSUFBTCxHQUFZRixlQUFaO0FBQ0EsT0FBS0csT0FBTCxHQUFlRixjQUFmO0FBQ0EsT0FBS0csS0FBTCxHQUFhLENBQWI7QUFDRDtBQUNETCxtQkFBbUJNLFNBQW5CLENBQTZCQyxVQUE3QixHQUEwQyxZQUFZO0FBQ3BELE9BQUtKLElBQUwsR0FBWSxJQUFaO0FBQ0EsT0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDQSxPQUFLQyxLQUFMLEdBQWEsQ0FBYjtBQUNELENBSkQ7QUFLQWhCLFlBQVltQixZQUFaLENBQXlCUixrQkFBekIsRUFBNkNOLGlCQUE3Qzs7QUFFQSxTQUFTZSxrQkFBVCxDQUE0QkMsV0FBNUIsRUFBeUNDLEtBQXpDLEVBQWdEQyxJQUFoRCxFQUFzRDtBQUNwRCxNQUFJVCxPQUFPTyxZQUFZUCxJQUF2QjtBQUNB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b3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Q2hpbGRyZW5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBQb29sZWRDbGFzcyA9IHJlcXVpcmUoJy4vUG9vbGVkQ2xhc3MnKTtcbnZhciBSZWFjdEVsZW1lbnQgPSByZXF1aXJlKCcuL1JlYWN0RWxlbWVudCcpO1xuXG52YXIgZW1wdHlGdW5jdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2VtcHR5RnVuY3Rpb24nKTtcbnZhciB0cmF2ZXJzZUFsbENoaWxkcmVuID0gcmVxdWlyZSgnLi90cmF2ZXJzZUFsbENoaWxkcmVuJyk7XG5cbnZhciB0d29Bcmd1bWVudFBvb2xlciA9IFBvb2xlZENsYXNzLnR3b0FyZ3VtZW50UG9vbGVyO1xudmFyIGZvdXJBcmd1bWVudFBvb2xlciA9IFBvb2xlZENsYXNzLmZvdXJBcmd1bWVudFBvb2xlcjtcblxudmFyIHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4ID0gL1xcLyg/IVxcLykvZztcbmZ1bmN0aW9uIGVzY2FwZVVzZXJQcm92aWRlZEtleSh0ZXh0KSB7XG4gIHJldHVybiAoJycgKyB0ZXh0KS5yZXBsYWNlKHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4LCAnLy8nKTtcbn1cblxuLyoqXG4gKiBQb29sZWRDbGFzcyByZXByZXNlbnRpbmcgdGhlIGJvb2trZWVwaW5nIGFzc29jaWF0ZWQgd2l0aCBwZXJmb3JtaW5nIGEgY2hpbGRcbiAqIHRyYXZlcnNhbC4gQWxsb3dzIGF2b2lkaW5nIGJpbmRpbmcgY2FsbGJhY2tzLlxuICpcbiAqIEBjb25zdHJ1Y3RvciBGb3JFYWNoQm9va0tlZXBpbmdcbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBmb3JFYWNoRnVuY3Rpb24gRnVuY3Rpb24gdG8gcGVyZm9ybSB0cmF2ZXJzYWwgd2l0aC5cbiAqIEBwYXJhbSB7Pyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgdG8gcGVyZm9ybSBjb250ZXh0IHdpdGguXG4gKi9cbmZ1bmN0aW9uIEZvckVhY2hCb29rS2VlcGluZyhmb3JFYWNoRnVuY3Rpb24sIGZvckVhY2hDb250ZXh0KSB7XG4gIHRoaXMuZnVuYyA9IGZvckVhY2hGdW5jdGlvbjtcbiAgdGhpcy5jb250ZXh0ID0gZm9yRWFjaENvbnRleHQ7XG4gIHRoaXMuY291bnQgPSAwO1xufVxuRm9yRWFjaEJvb2tLZWVwaW5nLnByb3RvdHlwZS5kZXN0cnVjdG9yID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmZ1bmMgPSBudWxsO1xuICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICB0aGlzLmNvdW50ID0gMDtcbn07XG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oRm9yRWFjaEJvb2tLZWVwaW5nLCB0d29Bcmd1bWVudFBvb2xlcik7XG5cbmZ1bmN0aW9uIGZvckVhY2hTaW5nbGVDaGlsZChib29rS2VlcGluZywgY2hpbGQsIG5hbWUpIHtcbiAgdmFyIGZ1bmMgPSBib29rS2VlcGluZy5mdW5jO1xuICB2YXIgY29udGV4dCA9IGJvb2tLZWVwaW5nLmNvbnRleHQ7XG5cbiAgZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBib29rS2VlcGluZy5jb3VudCsrKTtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBUaGUgcHJvdmlkZWQgZm9yRWFjaEZ1bmMoY2hpbGQsIGluZGV4KSB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaFxuICogbGVhZiBjaGlsZC5cbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEBwYXJhbSB7ZnVuY3Rpb24oKiwgaW50KX0gZm9yRWFjaEZ1bmNcbiAqIEBwYXJhbSB7Kn0gZm9yRWFjaENvbnRleHQgQ29udGV4dCBmb3IgZm9yRWFjaENvbnRleHQuXG4gKi9cbmZ1bmN0aW9uIGZvckVhY2hDaGlsZHJlbihjaGlsZHJlbiwgZm9yRWFjaEZ1bmMsIGZvckVhY2hDb250ZXh0KSB7XG4gIGlmIChjaGlsZHJlbiA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHZhciB0cmF2ZXJzZUNvbnRleHQgPSBGb3JFYWNoQm9va0tlZXBpbmcuZ2V0UG9vbGVkKGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCk7XG4gIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hTaW5nbGVDaGlsZCwgdHJhdmVyc2VDb250ZXh0KTtcbiAgRm9yRWFjaEJvb2tLZWVwaW5nLnJlbGVhc2UodHJhdmVyc2VDb250ZXh0KTtcbn1cblxuLyoqXG4gKiBQb29sZWRDbGFzcyByZXByZXNlbnRpbmcgdGhlIGJvb2trZWVwaW5nIGFzc29jaWF0ZWQgd2l0aCBwZXJmb3JtaW5nIGEgY2hpbGRcbiAqIG1hcHBpbmcuIEFsbG93cyBhdm9pZGluZyBiaW5kaW5nIGNhbGxiYWNrcy5cbiAqXG4gKiBAY29uc3RydWN0b3IgTWFwQm9va0tlZXBpbmdcbiAqIEBwYXJhbSB7ISp9IG1hcFJlc3VsdCBPYmplY3QgY29udGFpbmluZyB0aGUgb3JkZXJlZCBtYXAgb2YgcmVzdWx0cy5cbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBtYXBGdW5jdGlvbiBGdW5jdGlvbiB0byBwZXJmb3JtIG1hcHBpbmcgd2l0aC5cbiAqIEBwYXJhbSB7Pyp9IG1hcENvbnRleHQgQ29udGV4dCB0byBwZXJmb3JtIG1hcHBpbmcgd2l0aC5cbiAqL1xuZnVuY3Rpb24gTWFwQm9va0tlZXBpbmcobWFwUmVzdWx0LCBrZXlQcmVmaXgsIG1hcEZ1bmN0aW9uLCBtYXBDb250ZXh0KSB7XG4gIHRoaXMucmVzdWx0ID0gbWFwUmVzdWx0O1xuICB0aGlzLmtleVByZWZpeCA9IGtleVByZWZpeDtcbiAgdGhpcy5mdW5jID0gbWFwRnVuY3Rpb247XG4gIHRoaXMuY29udGV4dCA9IG1hcENvbnRleHQ7XG4gIHRoaXMuY291bnQgPSAwO1xufVxuTWFwQm9va0tlZXBpbmcucHJvdG90eXBlLmRlc3RydWN0b3IgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMucmVzdWx0ID0gbnVsbDtcbiAgdGhpcy5rZXlQcmVmaXggPSBudWxsO1xuICB0aGlzLmZ1bmMgPSBudWxsO1xuICB0aGlzLmNvbnRleHQgPSBudWxsO1xuICB0aGlzLmNvdW50ID0gMDtcbn07XG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oTWFwQm9va0tlZXBpbmcsIGZvdXJBcmd1bWVudFBvb2xlcik7XG5cbmZ1bmN0aW9uIG1hcFNpbmdsZUNoaWxkSW50b0NvbnRleHQoYm9va0tlZXBpbmcsIGNoaWxkLCBjaGlsZEtleSkge1xuICB2YXIgcmVzdWx0ID0gYm9va0tlZXBpbmcucmVzdWx0O1xuICB2YXIga2V5UHJlZml4ID0gYm9va0tlZXBpbmcua2V5UHJlZml4O1xuICB2YXIgZnVuYyA9IGJvb2tLZWVwaW5nLmZ1bmM7XG4gIHZhciBjb250ZXh0ID0gYm9va0tlZXBpbmcuY29udGV4dDtcblxuICB2YXIgbWFwcGVkQ2hpbGQgPSBmdW5jLmNhbGwoY29udGV4dCwgY2hpbGQsIGJvb2tLZWVwaW5nLmNvdW50KyspO1xuICBpZiAoQXJyYXkuaXNBcnJheShtYXBwZWRDaGlsZCkpIHtcbiAgICBtYXBJbnRvV2l0aEtleVByZWZpeEludGVybmFsKG1hcHBlZENoaWxkLCByZXN1bHQsIGNoaWxkS2V5LCBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zQXJndW1lbnQpO1xuICB9IGVsc2UgaWYgKG1hcHBlZENoaWxkICE9IG51bGwpIHtcbiAgICBpZiAoUmVhY3RFbGVtZW50LmlzVmFsaWRFbGVtZW50KG1hcHBlZENoaWxkKSkge1xuICAgICAgbWFwcGVkQ2hpbGQgPSBSZWFjdEVsZW1lbnQuY2xvbmVBbmRSZXBsYWNlS2V5KG1hcHBlZENoaWxkLFxuICAgICAgLy8gS2VlcCBib3RoIHRoZSAobWFwcGVkKSBhbmQgb2xkIGtleXMgaWYgdGhleSBkaWZmZXIsIGp1c3QgYXNcbiAgICAgIC8vIHRyYXZlcnNlQWxsQ2hpbGRyZW4gdXNlZCB0byBkbyBmb3Igb2JqZWN0cyBhcyBjaGlsZHJlblxuICAgICAga2V5UHJlZml4ICsgKG1hcHBlZENoaWxkICE9PSBjaGlsZCA/IGVzY2FwZVVzZXJQcm92aWRlZEtleShtYXBwZWRDaGlsZC5rZXkgfHwgJycpICsgJy8nIDogJycpICsgY2hpbGRLZXkpO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChtYXBwZWRDaGlsZCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwSW50b1dpdGhLZXlQcmVmaXhJbnRlcm5hbChjaGlsZHJlbiwgYXJyYXksIHByZWZpeCwgZnVuYywgY29udGV4dCkge1xuICB2YXIgZXNjYXBlZFByZWZpeCA9ICcnO1xuICBpZiAocHJlZml4ICE9IG51bGwpIHtcbiAgICBlc2NhcGVkUHJlZml4ID0gZXNjYXBlVXNlclByb3ZpZGVkS2V5KHByZWZpeCkgKyAnLyc7XG4gIH1cbiAgdmFyIHRyYXZlcnNlQ29udGV4dCA9IE1hcEJvb2tLZWVwaW5nLmdldFBvb2xlZChhcnJheSwgZXNjYXBlZFByZWZpeCwgZnVuYywgY29udGV4dCk7XG4gIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIG1hcFNpbmdsZUNoaWxkSW50b0NvbnRleHQsIHRyYXZlcnNlQ29udGV4dCk7XG4gIE1hcEJvb2tLZWVwaW5nLnJlbGVhc2UodHJhdmVyc2VDb250ZXh0KTtcbn1cblxuLyoqXG4gKiBNYXBzIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBUaGUgcHJvdmlkZWQgbWFwRnVuY3Rpb24oY2hpbGQsIGtleSwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIG1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWwoY2hpbGRyZW4sIHJlc3VsdCwgbnVsbCwgZnVuYywgY29udGV4dCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZvckVhY2hTaW5nbGVDaGlsZER1bW15KHRyYXZlcnNlQ29udGV4dCwgY2hpbGQsIG5hbWUpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ291bnQgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzXG4gKiBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgbnVtYmVyIG9mIGNoaWxkcmVuLlxuICovXG5mdW5jdGlvbiBjb3VudENoaWxkcmVuKGNoaWxkcmVuLCBjb250ZXh0KSB7XG4gIHJldHVybiB0cmF2ZXJzZUFsbENoaWxkcmVuKGNoaWxkcmVuLCBmb3JFYWNoU2luZ2xlQ2hpbGREdW1teSwgbnVsbCk7XG59XG5cbi8qKlxuICogRmxhdHRlbiBhIGNoaWxkcmVuIG9iamVjdCAodHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gKSBhbmRcbiAqIHJldHVybiBhbiBhcnJheSB3aXRoIGFwcHJvcHJpYXRlbHkgcmUta2V5ZWQgY2hpbGRyZW4uXG4gKi9cbmZ1bmN0aW9uIHRvQXJyYXkoY2hpbGRyZW4pIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBtYXBJbnRvV2l0aEtleVByZWZpeEludGVybmFsKGNoaWxkcmVuLCByZXN1bHQsIG51bGwsIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNBcmd1bWVudCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbnZhciBSZWFjdENoaWxkcmVuID0ge1xuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIG1hcDogbWFwQ2hpbGRyZW4sXG4gIG1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWw6IG1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWwsXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Q2hpbGRyZW47XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0Q2hpbGRyZW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 111 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule traverseAllChildren\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactElement = __webpack_require__(42);\nvar ReactInstanceHandles = __webpack_require__(45);\n\nvar getIteratorFn = __webpack_require__(108);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\nvar SEPARATOR = ReactInstanceHandles.SEPARATOR;\nvar SUBSEPARATOR = ':';\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar userProvidedKeyEscaperLookup = {\n '=': '=0',\n '.': '=1',\n ':': '=2'\n};\n\nvar userProvidedKeyEscapeRegex = /[=.:]/g;\n\nvar didWarnAboutMaps = false;\n\nfunction userProvidedKeyEscaper(match) {\n return userProvidedKeyEscaperLookup[match];\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n if (component && component.key != null) {\n // Explicit key\n return wrapUserProvidedKey(component.key);\n }\n // Implicit key determined by the index in the set\n return index.toString(36);\n}\n\n/**\n * Escape a component key so that it is safe to use in a reactid.\n *\n * @param {*} text Component key to be escaped.\n * @return {string} An escaped string.\n */\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, userProvidedKeyEscaper);\n}\n\n/**\n * Wrap a `key` value explicitly provided by the user to distinguish it from\n * implicitly-generated keys generated by a component's index in its parent.\n *\n * @param {string} key Value of a user-provided `key` attribute\n * @return {string}\n */\nfunction wrapUserProvidedKey(key) {\n return '$' + escapeUserProvidedKey(key);\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children === 'undefined' ? 'undefined' : _typeof(children);\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n if (children === null || type === 'string' || type === 'number' || ReactElement.isValidElement(children)) {\n callback(traverseContext, children,\n // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n if (iteratorFn) {\n var iterator = iteratorFn.call(children);\n var step;\n if (iteratorFn !== children.entries) {\n var ii = 0;\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.') : undefined;\n didWarnAboutMaps = true;\n }\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n child = entry[1];\n nextName = nextNamePrefix + wrapUserProvidedKey(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n }\n }\n } else if (type === 'object') {\n var addendum = '';\n if (process.env.NODE_ENV !== 'production') {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';\n if (children._isReactElement) {\n addendum = ' It looks like you\\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';\n }\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n addendum += ' Check the render method of `' + name + '`.';\n }\n }\n }\n var childrenString = String(children);\n true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : invariant(false) : undefined;\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\nmodule.exports = traverseAllChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvdHJhdmVyc2VBbGxDaGlsZHJlbi5qcz8xNzg0Il0sIm5hbWVzIjpbIlJlYWN0Q3VycmVudE93bmVyIiwicmVxdWlyZSIsIlJlYWN0RWxlbWVudCIsIlJlYWN0SW5zdGFuY2VIYW5kbGVzIiwiZ2V0SXRlcmF0b3JGbiIsImludmFyaWFudCIsIndhcm5pbmciLCJTRVBBUkFUT1IiLCJTVUJTRVBBUkFUT1IiLCJ1c2VyUHJvdmlkZWRLZXlFc2NhcGVyTG9va3VwIiwidXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgiLCJkaWRXYXJuQWJvdXRNYXBzIiwidXNlclByb3ZpZGVkS2V5RXNjYXBlciIsIm1hdGNoIiwiZ2V0Q29tcG9uZW50S2V5IiwiY29tcG9uZW50IiwiaW5kZXgiLCJrZXkiLCJ3cmFwVXNlclByb3ZpZGVkS2V5IiwidG9TdHJpbmciLCJlc2NhcGVVc2VyUHJvdmlkZWRLZXkiLCJ0ZXh0IiwicmVwbGFjZSIsInRyYXZlcnNlQWxsQ2hpbGRyZW5JbXBsIiwiY2hpbGRyZW4iLCJuYW1lU29GYXIiLCJjYWxsYmFjayIsInRyYXZlcnNlQ29udGV4dCIsInR5cGUiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkIiwibmV4dE5hbWUiLCJzdWJ0cmVlQ291bnQiLCJuZXh0TmFtZVByZWZpeCIsIkFycmF5IiwiaXNBcnJheSIsImkiLCJsZW5ndGgiLCJpdGVyYXRvckZuIiwiaXRlcmF0b3IiLCJjYWxsIiwic3RlcCIsImVudHJpZXMiLCJpaSIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJlbnRyeSIsImFkZGVuZHVtIiwiX2lzUmVhY3RFbGVtZW50IiwiY3VycmVudCIsIm5hbWUiLCJnZXROYW1lIiwiY2hpbGRyZW5TdHJpbmciLCJTdHJpbmciLCJPYmplY3QiLCJrZXlz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a0U7QUFDaEUsTUFBSUgsWUFBWSxJQUFoQixFQUFzQjtBQUNwQixXQUFPLENBQVA7QUFDRDs7QUFFRCxTQUFPRCx3QkFBd0JDLFFBQXhCLEVBQWtDLEVBQWxDLEVBQXNDRSxRQUF0QyxFQUFnREMsZUFBaEQsQ0FBUDtBQUNEOztBQUVEb0MsT0FBT0MsT0FBUCxHQUFpQkYsbUJBQWpCLEMiLCJmaWxlIjoiMTExLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIHRyYXZlcnNlQWxsQ2hpbGRyZW5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHJlcXVpcmUoJy4vUmVhY3RDdXJyZW50T3duZXInKTtcbnZhciBSZWFjdEVsZW1lbnQgPSByZXF1aXJlKCcuL1JlYWN0RWxlbWVudCcpO1xudmFyIFJlYWN0SW5zdGFuY2VIYW5kbGVzID0gcmVxdWlyZSgnLi9SZWFjdEluc3RhbmNlSGFuZGxlcycpO1xuXG52YXIgZ2V0SXRlcmF0b3JGbiA9IHJlcXVpcmUoJy4vZ2V0SXRlcmF0b3JGbicpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbnZhciBTRVBBUkFUT1IgPSBSZWFjdEluc3RhbmNlSGFuZGxlcy5TRVBBUkFUT1I7XG52YXIgU1VCU0VQQVJBVE9SID0gJzonO1xuXG4vKipcbiAqIFRPRE86IFRlc3QgdGhhdCBhIHNpbmdsZSBjaGlsZCBhbmQgYW4gYXJyYXkgd2l0aCBvbmUgaXRlbSBoYXZlIHRoZSBzYW1lIGtleVxuICogcGF0dGVybi5cbiAqL1xuXG52YXIgdXNlclByb3ZpZGVkS2V5RXNjYXBlckxvb2t1cCA9IHtcbiAgJz0nOiAnPTAnLFxuICAnLic6ICc9MScsXG4gICc6JzogJz0yJ1xufTtcblxudmFyIHVzZXJQcm92aWRlZEtleUVzY2FwZVJlZ2V4ID0gL1s9LjpdL2c7XG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVzZXJQcm92aWRlZEtleUVzY2FwZXIobWF0Y2gpIHtcbiAgcmV0dXJuIHVzZXJQcm92aWRlZEtleUVzY2FwZXJMb29rdXBbbWF0Y2hdO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEga2V5IHN0cmluZyB0aGF0IGlkZW50aWZpZXMgYSBjb21wb25lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gY29tcG9uZW50IEEgY29tcG9uZW50IHRoYXQgY291bGQgY29udGFpbiBhIG1hbnVhbCBrZXkuXG4gKiBAcGFyYW0ge251bWJlcn0gaW5kZXggSW5kZXggdGhhdCBpcyB1c2VkIGlmIGEgbWFudWFsIGtleSBpcyBub3QgcHJvdmlkZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldENvbXBvbmVudEtleShjb21wb25lbnQsIGluZGV4KSB7XG4gIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50LmtleSAhPSBudWxsKSB7XG4gICAgLy8gRXhwbGljaXQga2V5XG4gICAgcmV0dXJuIHdyYXBVc2VyUHJvdmlkZWRLZXkoY29tcG9uZW50LmtleSk7XG4gIH1cbiAgLy8gSW1wbGljaXQga2V5IGRldGVybWluZWQgYnkgdGhlIGluZGV4IGluIHRoZSBzZXRcbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuLyoqXG4gKiBFc2NhcGUgYSBjb21wb25lbnQga2V5IHNvIHRoYXQgaXQgaXMgc2FmZSB0byB1c2UgaW4gYSByZWFjdGlkLlxuICpcbiAqIEBwYXJhbSB7Kn0gdGV4dCBDb21wb25lbnQga2V5IHRvIGJlIGVzY2FwZWQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEFuIGVzY2FwZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGVVc2VyUHJvdmlkZWRLZXkodGV4dCkge1xuICByZXR1cm4gKCcnICsgdGV4dCkucmVwbGFjZSh1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCwgdXNlclByb3ZpZGVkS2V5RXNjYXBlcik7XG59XG5cbi8qKlxuICogV3JhcCBhIGBrZXlgIHZhbHVlIGV4cGxpY2l0bHkgcHJvdmlkZWQgYnkgdGhlIHVzZXIgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbVxuICogaW1wbGljaXRseS1nZW5lcmF0ZWQga2V5cyBnZW5lcmF0ZWQgYnkgYSBjb21wb25lbnQncyBpbmRleCBpbiBpdHMgcGFyZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVmFsdWUgb2YgYSB1c2VyLXByb3ZpZGVkIGBrZXlgIGF0dHJpYnV0ZVxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiB3cmFwVXNlclByb3ZpZGVkS2V5KGtleSkge1xuICByZXR1cm4gJyQnICsgZXNjYXBlVXNlclByb3ZpZGVkS2V5KGtleSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0geyFzdHJpbmd9IG5hbWVTb0ZhciBOYW1lIG9mIHRoZSBrZXkgcGF0aCBzbyBmYXIuXG4gKiBAcGFyYW0geyFmdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGJhY2sgdG8gaW52b2tlIHdpdGggZWFjaCBjaGlsZCBmb3VuZC5cbiAqIEBwYXJhbSB7Pyp9IHRyYXZlcnNlQ29udGV4dCBVc2VkIHRvIHBhc3MgaW5mb3JtYXRpb24gdGhyb3VnaG91dCB0aGUgdHJhdmVyc2FsXG4gKiBwcm9jZXNzLlxuICogQHJldHVybiB7IW51bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbiBpbiB0aGlzIHN1YnRyZWUuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlQWxsQ2hpbGRyZW5JbXBsKGNoaWxkcmVuLCBuYW1lU29GYXIsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGUgPT09ICd1bmRlZmluZWQnIHx8IHR5cGUgPT09ICdib29sZWFuJykge1xuICAgIC8vIEFsbCBvZiB0aGUgYWJvdmUgYXJlIHBlcmNlaXZlZCBhcyBudWxsLlxuICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgfVxuXG4gIGlmIChjaGlsZHJlbiA9PT0gbnVsbCB8fCB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlID09PSAnbnVtYmVyJyB8fCBSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQoY2hpbGRyZW4pKSB7XG4gICAgY2FsbGJhY2sodHJhdmVyc2VDb250ZXh0LCBjaGlsZHJlbixcbiAgICAvLyBJZiBpdCdzIHRoZSBvbmx5IGNoaWxkLCB0cmVhdCB0aGUgbmFtZSBhcyBpZiBpdCB3YXMgd3JhcHBlZCBpbiBhbiBhcnJheVxuICAgIC8vIHNvIHRoYXQgaXQncyBjb25zaXN0ZW50IGlmIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gZ3Jvd3MuXG4gICAgbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldENvbXBvbmVudEtleShjaGlsZHJlbiwgMCkgOiBuYW1lU29GYXIpO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgdmFyIGNoaWxkO1xuICB2YXIgbmV4dE5hbWU7XG4gIHZhciBzdWJ0cmVlQ291bnQgPSAwOyAvLyBDb3VudCBvZiBjaGlsZHJlbiBmb3VuZCBpbiB0aGUgY3VycmVudCBzdWJ0cmVlLlxuICB2YXIgbmV4dE5hbWVQcmVmaXggPSBuYW1lU29GYXIgPT09ICcnID8gU0VQQVJBVE9SIDogbmFtZVNvRmFyICsgU1VCU0VQQVJBVE9SO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgICBuZXh0TmFtZSA9IG5leHROYW1lUHJlZml4ICsgZ2V0Q29tcG9uZW50S2V5KGNoaWxkLCBpKTtcbiAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICB2YXIgaXRlcmF0b3IgPSBpdGVyYXRvckZuLmNhbGwoY2hpbGRyZW4pO1xuICAgICAgdmFyIHN0ZXA7XG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gY2hpbGRyZW4uZW50cmllcykge1xuICAgICAgICB2YXIgaWkgPSAwO1xuICAgICAgICB3aGlsZSAoIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lKSB7XG4gICAgICAgICAgY2hpbGQgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRDb21wb25lbnRLZXkoY2hpbGQsIGlpKyspO1xuICAgICAgICAgIHN1YnRyZWVDb3VudCArPSB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZCwgbmV4dE5hbWUsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGRpZFdhcm5BYm91dE1hcHMsICdVc2luZyBNYXBzIGFzIGNoaWxkcmVuIGlzIG5vdCB5ZXQgZnVsbHkgc3VwcG9ydGVkLiBJdCBpcyBhbiAnICsgJ2V4cGVyaW1lbnRhbCBmZWF0dXJlIHRoYXQgbWlnaHQgYmUgcmVtb3ZlZC4gQ29udmVydCBpdCB0byBhICcgKyAnc2VxdWVuY2UgLyBpdGVyYWJsZSBvZiBrZXllZCBSZWFjdEVsZW1lbnRzIGluc3RlYWQuJykgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSXRlcmF0b3Igd2lsbCBwcm92aWRlIGVudHJ5IFtrLHZdIHR1cGxlcyByYXRoZXIgdGhhbiB2YWx1ZXMuXG4gICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgY2hpbGQgPSBlbnRyeVsxXTtcbiAgICAgICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyB3cmFwVXNlclByb3ZpZGVkS2V5KGVudHJ5WzBdKSArIFNVQlNFUEFSQVRPUiArIGdldENvbXBvbmVudEtleShjaGlsZCwgMCk7XG4gICAgICAgICAgICBzdWJ0cmVlQ291bnQgKz0gdHJhdmVyc2VBbGxDaGlsZHJlbkltcGwoY2hpbGQsIG5leHROYW1lLCBjYWxsYmFjaywgdHJhdmVyc2VDb250ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICB2YXIgYWRkZW5kdW0gPSAnJztcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGFkZGVuZHVtID0gJyBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5ICcgKyAnaW5zdGVhZCBvciB3cmFwIHRoZSBvYmplY3QgdXNpbmcgY3JlYXRlRnJhZ21lbnQob2JqZWN0KSBmcm9tIHRoZSAnICsgJ1JlYWN0IGFkZC1vbnMuJztcbiAgICAgICAgaWYgKGNoaWxkcmVuLl9pc1JlYWN0RWxlbWVudCkge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBJdCBsb29rcyBsaWtlIHlvdVxcJ3JlIHVzaW5nIGFuIGVsZW1lbnQgY3JlYXRlZCBieSBhIGRpZmZlcmVudCAnICsgJ3ZlcnNpb24gb2YgUmVhY3QuIE1ha2Ugc3VyZSB0byB1c2Ugb25seSBvbmUgY29weSBvZiBSZWFjdC4nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgICAgICAgdmFyIG5hbWUgPSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LmdldE5hbWUoKTtcbiAgICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgYWRkZW5kdW0gKz0gJyBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmFyIGNoaWxkcmVuU3RyaW5nID0gU3RyaW5nKGNoaWxkcmVuKTtcbiAgICAgICFmYWxzZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICVzKS4lcycsIGNoaWxkcmVuU3RyaW5nID09PSAnW29iamVjdCBPYmplY3RdJyA/ICdvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMoY2hpbGRyZW4pLmpvaW4oJywgJykgKyAnfScgOiBjaGlsZHJlblN0cmluZywgYWRkZW5kdW0pIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIFRyYXZlcnNlcyBjaGlsZHJlbiB0aGF0IGFyZSB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmAsIGJ1dFxuICogbWlnaHQgYWxzbyBiZSBzcGVjaWZpZWQgdGhyb3VnaCBhdHRyaWJ1dGVzOlxuICpcbiAqIC0gYHRyYXZlcnNlQWxsQ2hpbGRyZW4odGhpcy5wcm9wcy5jaGlsZHJlbiwgLi4uKWBcbiAqIC0gYHRyYXZlcnNlQWxsQ2hpbGRyZW4odGhpcy5wcm9wcy5sZWZ0UGFuZWxDaGlsZHJlbiwgLi4uKWBcbiAqXG4gKiBUaGUgYHRyYXZlcnNlQ29udGV4dGAgaXMgYW4gb3B0aW9uYWwgYXJndW1lbnQgdGhhdCBpcyBwYXNzZWQgdGhyb3VnaCB0aGVcbiAqIGVudGlyZSB0cmF2ZXJzYWwuIEl0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFjY3VtdWxhdGlvbnMgb3IgYW55dGhpbmcgZWxzZSB0aGF0XG4gKiB0aGUgY2FsbGJhY2sgbWlnaHQgZmluZCByZWxldmFudC5cbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIG9iamVjdC5cbiAqIEBwYXJhbSB7IWZ1bmN0aW9ufSBjYWxsYmFjayBUbyBpbnZva2UgdXBvbiB0cmF2ZXJzaW5nIGVhY2ggY2hpbGQuXG4gKiBAcGFyYW0gez8qfSB0cmF2ZXJzZUNvbnRleHQgQ29udGV4dCBmb3IgdHJhdmVyc2FsLlxuICogQHJldHVybiB7IW51bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbiBpbiB0aGlzIHN1YnRyZWUuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpIHtcbiAgaWYgKGNoaWxkcmVuID09IG51bGwpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB0cmF2ZXJzZUFsbENoaWxkcmVuSW1wbChjaGlsZHJlbiwgJycsIGNhbGxiYWNrLCB0cmF2ZXJzZUNvbnRleHQpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRyYXZlcnNlQWxsQ2hpbGRyZW47XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL3RyYXZlcnNlQWxsQ2hpbGRyZW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 112 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelect\n */\n\n'use strict';\n\nvar LinkedValueUtils = __webpack_require__(106);\nvar ReactMount = __webpack_require__(28);\nvar ReactUpdates = __webpack_require__(54);\n\nvar assign = __webpack_require__(39);\nvar warning = __webpack_require__(25);\n\nvar valueContextKey = '__ReactDOMSelect_value$' + Math.random().toString(36).slice(2);\n\nfunction updateOptionsIfPendingUpdateAndMounted() {\n if (this._rootNodeID && this._wrapperState.pendingUpdate) {\n this._wrapperState.pendingUpdate = false;\n\n var props = this._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n\n if (value != null) {\n updateOptions(this, Boolean(props.multiple), value);\n }\n }\n}\n\nfunction getDeclarationErrorAddendum(owner) {\n if (owner) {\n var name = owner.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n * @private\n */\nfunction checkSelectPropTypes(inst, props) {\n var owner = inst._currentElement._owner;\n LinkedValueUtils.checkPropTypes('select', props, owner);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n if (props[propName] == null) {\n continue;\n }\n if (props.multiple) {\n process.env.NODE_ENV !== 'production' ? warning(Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n } else {\n process.env.NODE_ENV !== 'production' ? warning(!Array.isArray(props[propName]), 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : undefined;\n }\n }\n}\n\n/**\n * @param {ReactDOMComponent} inst\n * @param {boolean} multiple\n * @param {*} propValue A stringable (with `multiple`, a list of stringables).\n * @private\n */\nfunction updateOptions(inst, multiple, propValue) {\n var selectedValue, i;\n var options = ReactMount.getNode(inst._rootNodeID).options;\n\n if (multiple) {\n selectedValue = {};\n for (i = 0; i < propValue.length; i++) {\n selectedValue['' + propValue[i]] = true;\n }\n for (i = 0; i < options.length; i++) {\n var selected = selectedValue.hasOwnProperty(options[i].value);\n if (options[i].selected !== selected) {\n options[i].selected = selected;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n selectedValue = '' + propValue;\n for (i = 0; i < options.length; i++) {\n if (options[i].value === selectedValue) {\n options[i].selected = true;\n return;\n }\n }\n if (options.length) {\n options[0].selected = true;\n }\n }\n}\n\n/**\n * Implements a <select> native component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\nvar ReactDOMSelect = {\n valueContextKey: valueContextKey,\n\n getNativeProps: function getNativeProps(inst, props, context) {\n return assign({}, props, {\n onChange: inst._wrapperState.onChange,\n value: undefined\n });\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n checkSelectPropTypes(inst, props);\n }\n\n var value = LinkedValueUtils.getValue(props);\n inst._wrapperState = {\n pendingUpdate: false,\n initialValue: value != null ? value : props.defaultValue,\n onChange: _handleChange.bind(inst),\n wasMultiple: Boolean(props.multiple)\n };\n },\n\n processChildContext: function processChildContext(inst, props, context) {\n // Pass down initial value so initial generated markup has correct\n // `selected` attributes\n var childContext = assign({}, context);\n childContext[valueContextKey] = inst._wrapperState.initialValue;\n return childContext;\n },\n\n postUpdateWrapper: function postUpdateWrapper(inst) {\n var props = inst._currentElement.props;\n\n // After the initial mount, we control selected-ness manually so don't pass\n // the context value down\n inst._wrapperState.initialValue = undefined;\n\n var wasMultiple = inst._wrapperState.wasMultiple;\n inst._wrapperState.wasMultiple = Boolean(props.multiple);\n\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n inst._wrapperState.pendingUpdate = false;\n updateOptions(inst, Boolean(props.multiple), value);\n } else if (wasMultiple !== Boolean(props.multiple)) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(inst, Boolean(props.multiple), props.defaultValue);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');\n }\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n\n this._wrapperState.pendingUpdate = true;\n ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMSelect;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01TZWxlY3QuanM/ZGJiZCJdLCJuYW1lcyI6WyJMaW5rZWRWYWx1ZVV0aWxzIiwicmVxdWlyZSIsIlJlYWN0TW91bnQiLCJSZWFjdFVwZGF0ZXMiLCJhc3NpZ24iLCJ3YXJuaW5nIiwidmFsdWVDb250ZXh0S2V5IiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic2xpY2UiLCJ1cGRhdGVPcHRpb25zSWZQZW5kaW5nVXBkYXRlQW5kTW91bnRlZCIsIl9yb290Tm9kZUlEIiwiX3dyYXBwZXJTdGF0ZSIsInBlbmRpbmdVcGRhdGUiLCJwcm9wcyIsIl9jdXJyZW50RWxlbWVudCIsInZhbHVlIiwiZ2V0VmFsdWUiLCJ1cGRhdGVPcHRpb25zIiwiQm9vbGVhbiIsIm11bHRpcGxlIiwiZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtIiwib3duZXIiLCJuYW1lIiwiZ2V0TmFtZSIsInZhbHVlUHJvcE5hbWVzIiwiY2hlY2tTZWxlY3RQcm9wVHlwZXMiLCJpbnN0IiwiX293bmVyIiwiY2hlY2tQcm9wVHlwZXMiLCJpIiwibGVuZ3RoIiwicHJvcE5hbWUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJBcnJheSIsImlzQXJyYXkiLCJ1bmRlZmluZWQiLCJwcm9wVmFsdWUiLCJzZWxlY3RlZFZhbHVlIiwib3B0aW9ucyIsImdldE5vZGUiLCJzZWxlY3RlZCIsImhhc093blByb3BlcnR5IiwiUmVhY3RET01TZWxlY3QiLCJnZXROYXRpdmVQcm9wcyIsImNvbnRleHQiLCJvbkNoYW5nZSIsIm1vdW50V3JhcHBlciIsImluaXRpYWxWYWx1ZSIsImRlZmF1bHRWYWx1ZSIsIl9oYW5kbGVDaGFuZ2UiLCJiaW5kIiwid2FzTXVsdGlwbGUiLCJwcm9jZXNzQ2hpbGRDb250ZXh0IiwiY2hpbGRDb250ZXh0IiwicG9zdFVwZGF0ZVdyYXBwZXIiLCJldmVudCIsInJldHVyblZhbHVlIiwiZXhlY3V0ZU9uQ2hhbmdlIiwiYXNhcCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLG1CQUFtQixtQkFBQUMsQ0FBUSxHQUFSLENBQXZCO0FBQ0EsSUFBSUMsYUFBYSxtQkFBQUQsQ0FBUSxFQUFSLENBQWpCO0FBQ0EsSUFBSUUsZUFBZSxtQkFBQUYsQ0FBUSxFQUFSLENBQW5COztBQUVBLElBQUlHLFNBQVMsbUJBQUFILENBQVEsRUFBUixDQUFiO0FBQ0EsSUFBSUksVUFBVSxtQkFBQUosQ0FBUSxFQUFSLENBQWQ7O0FBRUEsSUFBSUssa0JBQWtCLDRCQUE0QkMsS0FBS0MsTUFBTCxHQUFjQyxRQUFkLENBQXVCLEVBQXZCLEVBQTJCQyxLQUEzQixDQUFpQyxDQUFqQyxDQUFsRDs7QUFFQSxTQUFTQyxzQ0FBVCxHQUFrRDtBQUNoRCxNQUFJLEtBQUtDLFdBQUwsSUFBb0IsS0FBS0MsYUFBTCxDQUFtQkMsYUFBM0MsRUFBMEQ7QUFDeEQsU0FBS0QsYUFBTCxDQUFtQkMsYUFBbkIsR0FBbUMsS0FBbkM7O0FBRUEsUUFBSUMsUUFBUSxLQUFLQyxlQUFMLENBQXFCRCxLQUFqQztBQUNBLFFBQUlFLFFBQVFqQixpQkFBaUJrQixRQUFqQixDQUEwQkgsS0FBMUIsQ0FBWjs7QUFFQSxRQUFJRSxTQUFTLElBQWIsRUFBbUI7QUFDakJFLG9CQUFjLElBQWQsRUFBb0JDLFFBQVFMLE1BQU1NLFFBQWQsQ0FBcEIsRUFBNkNKLEtBQTdDO0FBQ0Q7QUFDRjtBQUNGOztBQUVELFNBQVNLLDJCQUFULENBQXFDQyxLQUFyQyxFQUE0QztBQUMxQyxNQUFJQSxLQUFKLEVBQVc7QUFDVCxRQUFJQyxPQUFPRCxNQUFNRSxPQUFOLEVBQVg7QUFDQSxRQUFJRCxJQUFKLEVBQVU7QUFDUixhQUFPLGtDQUFrQ0EsSUFBbEMsR0FBeUMsSUFBaEQ7QUFDRDtBQUNGO0FBQ0QsU0FBTyxFQUFQO0FBQ0Q7O0FBRUQs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QUFNTSxRQUFkLENBQWpDOztBQUVBLFFBQUlKLFFBQVFqQixpQkFBaUJrQixRQUFqQixDQUEwQkgsS0FBMUIsQ0FBWjtBQUNBLFFBQUlFLFNBQVMsSUFBYixFQUFtQjtBQUNqQlcsV0FBS2YsYUFBTCxDQUFtQkMsYUFBbkIsR0FBbUMsS0FBbkM7QUFDQUssb0JBQWNTLElBQWQsRUFBb0JSLFFBQVFMLE1BQU1NLFFBQWQsQ0FBcEIsRUFBNkNKLEtBQTdDO0FBQ0QsS0FIRCxNQUdPLElBQUlzQyxnQkFBZ0JuQyxRQUFRTCxNQUFNTSxRQUFkLENBQXBCLEVBQTZDO0FBQ2xEO0FBQ0EsVUFBSU4sTUFBTXFDLFlBQU4sSUFBc0IsSUFBMUIsRUFBZ0M7QUFDOUJqQyxzQkFBY1MsSUFBZCxFQUFvQlIsUUFBUUwsTUFBTU0sUUFBZCxDQUFwQixFQUE2Q04sTUFBTXFDLFlBQW5EO0FBQ0QsT0FGRCxNQUVPO0FBQ0w7QUFDQWpDLHNCQUFjUyxJQUFkLEVBQW9CUixRQUFRTCxNQUFNTSxRQUFkLENBQXBCLEVBQTZDTixNQUFNTSxRQUFOLEdBQWlCLEVBQWpCLEdBQXNCLEVBQW5FO0FBQ0Q7QUFDRjtBQUNGO0FBdkRrQixDQUFyQjs7QUEwREEsU0FBU2dDLGFBQVQsQ0FBdUJNLEtBQXZCLEVBQThCO0FBQzVCLE1BQUk1QyxRQUFRLEtBQUtDLGVBQUwsQ0FBcUJELEtBQWpDO0FBQ0EsTUFBSTZDLGNBQWM1RCxpQkFBaUI2RCxlQUFqQixDQUFpQzlDLEtBQWpDLEVBQXdDNEMsS0FBeEMsQ0FBbEI7O0FBRUEsT0FBSzlDLGFBQUwsQ0FBbUJDLGFBQW5CLEdBQW1DLElBQW5DO0FBQ0FYLGVBQWEyRCxJQUFiLENBQWtCbkQsc0NBQWxCLEVBQTBELElBQTFEO0FBQ0EsU0FBT2lELFdBQVA7QUFDRDs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQmxCLGNBQWpCLEMiLCJmaWxlIjoiMTEyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RE9NU2VsZWN0XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgTGlua2VkVmFsdWVVdGlscyA9IHJlcXVpcmUoJy4vTGlua2VkVmFsdWVVdGlscycpO1xudmFyIFJlYWN0TW91bnQgPSByZXF1aXJlKCcuL1JlYWN0TW91bnQnKTtcbnZhciBSZWFjdFVwZGF0ZXMgPSByZXF1aXJlKCcuL1JlYWN0VXBkYXRlcycpO1xuXG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi9PYmplY3QuYXNzaWduJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIHZhbHVlQ29udGV4dEtleSA9ICdfX1JlYWN0RE9NU2VsZWN0X3ZhbHVlJCcgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtcblxuZnVuY3Rpb24gdXBkYXRlT3B0aW9uc0lmUGVuZGluZ1VwZGF0ZUFuZE1vdW50ZWQoKSB7XG4gIGlmICh0aGlzLl9yb290Tm9kZUlEICYmIHRoaXMuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlKSB7XG4gICAgdGhpcy5fd3JhcHBlclN0YXRlLnBlbmRpbmdVcGRhdGUgPSBmYWxzZTtcblxuICAgIHZhciBwcm9wcyA9IHRoaXMuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHVwZGF0ZU9wdGlvbnModGhpcywgQm9vbGVhbihwcm9wcy5tdWx0aXBsZSksIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKG93bmVyKSB7XG4gIGlmIChvd25lcikge1xuICAgIHZhciBuYW1lID0gb3duZXIuZ2V0TmFtZSgpO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gJyBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgIH1cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbnZhciB2YWx1ZVByb3BOYW1lcyA9IFsndmFsdWUnLCAnZGVmYXVsdFZhbHVlJ107XG5cbi8qKlxuICogVmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgYHZhbHVlYCBhbmQgYGRlZmF1bHRWYWx1ZWAuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjaGVja1NlbGVjdFByb3BUeXBlcyhpbnN0LCBwcm9wcykge1xuICB2YXIgb3duZXIgPSBpbnN0Ll9jdXJyZW50RWxlbWVudC5fb3duZXI7XG4gIExpbmtlZFZhbHVlVXRpbHMuY2hlY2tQcm9wVHlwZXMoJ3NlbGVjdCcsIHByb3BzLCBvd25lcik7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZVByb3BOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwcm9wTmFtZSA9IHZhbHVlUHJvcE5hbWVzW2ldO1xuICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwcm9wcy5tdWx0aXBsZSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0pLCAnVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGFuIGFycmF5IGlmICcgKyAnYG11bHRpcGxlYCBpcyB0cnVlLiVzJywgcHJvcE5hbWUsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bShvd25lcikpIDogdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghQXJyYXkuaXNBcnJheShwcm9wc1twcm9wTmFtZV0pLCAnVGhlIGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGEgc2NhbGFyICcgKyAndmFsdWUgaWYgYG11bHRpcGxlYCBpcyBmYWxzZS4lcycsIHByb3BOYW1lLCBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0ob3duZXIpKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlYWN0RE9NQ29tcG9uZW50fSBpbnN0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IG11bHRpcGxlXG4gKiBAcGFyYW0geyp9IHByb3BWYWx1ZSBBIHN0cmluZ2FibGUgKHdpdGggYG11bHRpcGxlYCwgYSBsaXN0IG9mIHN0cmluZ2FibGVzKS5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZU9wdGlvbnMoaW5zdCwgbXVsdGlwbGUsIHByb3BWYWx1ZSkge1xuICB2YXIgc2VsZWN0ZWRWYWx1ZSwgaTtcbiAgdmFyIG9wdGlvbnMgPSBSZWFjdE1vdW50LmdldE5vZGUoaW5zdC5fcm9vdE5vZGVJRCkub3B0aW9ucztcblxuICBpZiAobXVsdGlwbGUpIHtcbiAgICBzZWxlY3RlZFZhbHVlID0ge307XG4gICAgZm9yIChpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgc2VsZWN0ZWRWYWx1ZVsnJyArIHByb3BWYWx1ZVtpXV0gPSB0cnVlO1xuICAgIH1cbiAgICBmb3IgKGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlbGVjdGVkID0gc2VsZWN0ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShvcHRpb25zW2ldLnZhbHVlKTtcbiAgICAgIGlmIChvcHRpb25zW2ldLnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgICBvcHRpb25zW2ldLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIERvIG5vdCBzZXQgYHNlbGVjdC52YWx1ZWAgYXMgZXhhY3QgYmVoYXZpb3IgaXNuJ3QgY29uc2lzdGVudCBhY3Jvc3MgYWxsXG4gICAgLy8gYnJvd3NlcnMgZm9yIGFsbCBjYXNlcy5cbiAgICBzZWxlY3RlZFZhbHVlID0gJycgKyBwcm9wVmFsdWU7XG4gICAgZm9yIChpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChvcHRpb25zW2ldLnZhbHVlID09PSBzZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIG9wdGlvbnNbaV0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxlbmd0aCkge1xuICAgICAgb3B0aW9uc1swXS5zZWxlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBhIDxzZWxlY3Q+IG5hdGl2ZSBjb21wb25lbnQgdGhhdCBhbGxvd3Mgb3B0aW9uYWxseSBzZXR0aW5nIHRoZVxuICogcHJvcHMgYHZhbHVlYCBhbmQgYGRlZmF1bHRWYWx1ZWAuIElmIGBtdWx0aXBsZWAgaXMgZmFsc2UsIHRoZSBwcm9wIG11c3QgYmUgYVxuICogc3RyaW5nYWJsZS4gSWYgYG11bHRpcGxlYCBpcyB0cnVlLCB0aGUgcHJvcCBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ2FibGVzLlxuICpcbiAqIElmIGB2YWx1ZWAgaXMgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9ucyB0aGF0IGNoYW5nZSB0aGVcbiAqIHNlbGVjdGVkIG9wdGlvbiB3aWxsIHRyaWdnZXIgdXBkYXRlcyB0byB0aGUgcmVuZGVyZWQgb3B0aW9ucy5cbiAqXG4gKiBJZiBpdCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBvcHRpb25zIHdpbGwgbm90XG4gKiB1cGRhdGUgaW4gcmVzcG9uc2UgdG8gdXNlciBhY3Rpb25zLiBJbnN0ZWFkLCB0aGUgYHZhbHVlYCBwcm9wIG11c3QgY2hhbmdlIGluXG4gKiBvcmRlciBmb3IgdGhlIHJlbmRlcmVkIG9wdGlvbnMgdG8gdXBkYXRlLlxuICpcbiAqIElmIGBkZWZhdWx0VmFsdWVgIGlzIHByb3ZpZGVkLCBhbnkgb3B0aW9ucyB3aXRoIHRoZSBzdXBwbGllZCB2YWx1ZXMgd2lsbCBiZVxuICogc2VsZWN0ZWQuXG4gKi9cbnZhciBSZWFjdERPTVNlbGVjdCA9IHtcbiAgdmFsdWVDb250ZXh0S2V5OiB2YWx1ZUNvbnRleHRLZXksXG5cbiAgZ2V0TmF0aXZlUHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcywgY29udGV4dCkge1xuICAgIHJldHVybiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICBvbkNoYW5nZTogaW5zdC5fd3JhcHBlclN0YXRlLm9uQ2hhbmdlLFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZFxuICAgIH0pO1xuICB9LFxuXG4gIG1vdW50V3JhcHBlcjogZnVuY3Rpb24gKGluc3QsIHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNoZWNrU2VsZWN0UHJvcFR5cGVzKGluc3QsIHByb3BzKTtcbiAgICB9XG5cbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcbiAgICBpbnN0Ll93cmFwcGVyU3RhdGUgPSB7XG4gICAgICBwZW5kaW5nVXBkYXRlOiBmYWxzZSxcbiAgICAgIGluaXRpYWxWYWx1ZTogdmFsdWUgIT0gbnVsbCA/IHZhbHVlIDogcHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgb25DaGFuZ2U6IF9oYW5kbGVDaGFuZ2UuYmluZChpbnN0KSxcbiAgICAgIHdhc011bHRpcGxlOiBCb29sZWFuKHByb3BzLm11bHRpcGxlKVxuICAgIH07XG4gIH0sXG5cbiAgcHJvY2Vzc0NoaWxkQ29udGV4dDogZnVuY3Rpb24gKGluc3QsIHByb3BzLCBjb250ZXh0KSB7XG4gICAgLy8gUGFzcyBkb3duIGluaXRpYWwgdmFsdWUgc28gaW5pdGlhbCBnZW5lcmF0ZWQgbWFya3VwIGhhcyBjb3JyZWN0XG4gICAgLy8gYHNlbGVjdGVkYCBhdHRyaWJ1dGVzXG4gICAgdmFyIGNoaWxkQ29udGV4dCA9IGFzc2lnbih7fSwgY29udGV4dCk7XG4gICAgY2hpbGRDb250ZXh0W3ZhbHVlQ29udGV4dEtleV0gPSBpbnN0Ll93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlO1xuICAgIHJldHVybiBjaGlsZENvbnRleHQ7XG4gIH0sXG5cbiAgcG9zdFVwZGF0ZVdyYXBwZXI6IGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgdmFyIHByb3BzID0gaW5zdC5fY3VycmVudEVsZW1lbnQucHJvcHM7XG5cbiAgICAvLyBBZnRlciB0aGUgaW5pdGlhbCBtb3VudCwgd2UgY29udHJvbCBzZWxlY3RlZC1uZXNzIG1hbnVhbGx5IHNvIGRvbid0IHBhc3NcbiAgICAvLyB0aGUgY29udGV4dCB2YWx1ZSBkb3duXG4gICAgaW5zdC5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSA9IHVuZGVmaW5lZDtcblxuICAgIHZhciB3YXNNdWx0aXBsZSA9IGluc3QuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZTtcbiAgICBpbnN0Ll93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGUgPSBCb29sZWFuKHByb3BzLm11bHRpcGxlKTtcblxuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpbnN0Ll93cmFwcGVyU3RhdGUucGVuZGluZ1VwZGF0ZSA9IGZhbHNlO1xuICAgICAgdXBkYXRlT3B0aW9ucyhpbnN0LCBCb29sZWFuKHByb3BzLm11bHRpcGxlKSwgdmFsdWUpO1xuICAgIH0gZWxzZSBpZiAod2FzTXVsdGlwbGUgIT09IEJvb2xlYW4ocHJvcHMubXVsdGlwbGUpKSB7XG4gICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgcmVhcHBseSBgZGVmYXVsdFZhbHVlYCBpZiBgbXVsdGlwbGVgIGlzIHRvZ2dsZWQuXG4gICAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgdXBkYXRlT3B0aW9ucyhpbnN0LCBCb29sZWFuKHByb3BzLm11bHRpcGxlKSwgcHJvcHMuZGVmYXVsdFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJldmVydCB0aGUgc2VsZWN0IGJhY2sgdG8gaXRzIGRlZmF1bHQgdW5zZWxlY3RlZCBzdGF0ZS5cbiAgICAgICAgdXBkYXRlT3B0aW9ucyhpbnN0LCBCb29sZWFuKHByb3BzLm11bHRpcGxlKSwgcHJvcHMubXVsdGlwbGUgPyBbXSA6ICcnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIF9oYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgdmFyIHByb3BzID0gdGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHM7XG4gIHZhciByZXR1cm5WYWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZXhlY3V0ZU9uQ2hhbmdlKHByb3BzLCBldmVudCk7XG5cbiAgdGhpcy5fd3JhcHBlclN0YXRlLnBlbmRpbmdVcGRhdGUgPSB0cnVlO1xuICBSZWFjdFVwZGF0ZXMuYXNhcCh1cGRhdGVPcHRpb25zSWZQZW5kaW5nVXBkYXRlQW5kTW91bnRlZCwgdGhpcyk7XG4gIHJldHVybiByZXR1cm5WYWx1ZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTVNlbGVjdDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01TZWxlY3QuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 113 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMTextarea\n */\n\n'use strict';\n\nvar LinkedValueUtils = __webpack_require__(106);\nvar ReactDOMIDOperations = __webpack_require__(27);\nvar ReactUpdates = __webpack_require__(54);\n\nvar assign = __webpack_require__(39);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\nfunction forceUpdateIfMounted() {\n if (this._rootNodeID) {\n // DOM component is still mounted; update\n ReactDOMTextarea.updateWrapper(this);\n }\n}\n\n/**\n * Implements a <textarea> native component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nvar ReactDOMTextarea = {\n getNativeProps: function getNativeProps(inst, props, context) {\n !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : invariant(false) : undefined;\n\n // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated.\n var nativeProps = assign({}, props, {\n defaultValue: undefined,\n value: undefined,\n children: inst._wrapperState.initialValue,\n onChange: inst._wrapperState.onChange\n });\n\n return nativeProps;\n },\n\n mountWrapper: function mountWrapper(inst, props) {\n if (process.env.NODE_ENV !== 'production') {\n LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);\n }\n\n var defaultValue = props.defaultValue;\n // TODO (yungsters): Remove support for children content in <textarea>.\n var children = props.children;\n if (children != null) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : undefined;\n }\n !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : invariant(false) : undefined;\n if (Array.isArray(children)) {\n !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : invariant(false) : undefined;\n children = children[0];\n }\n\n defaultValue = '' + children;\n }\n if (defaultValue == null) {\n defaultValue = '';\n }\n var value = LinkedValueUtils.getValue(props);\n\n inst._wrapperState = {\n // We save the initial value so that `ReactDOMComponent` doesn't update\n // `textContent` (unnecessary since we update value).\n // The initial value can be a boolean or object so that's why it's\n // forced to be a string.\n initialValue: '' + (value != null ? value : defaultValue),\n onChange: _handleChange.bind(inst)\n };\n },\n\n updateWrapper: function updateWrapper(inst) {\n var props = inst._currentElement.props;\n var value = LinkedValueUtils.getValue(props);\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n ReactDOMIDOperations.updatePropertyByID(inst._rootNodeID, 'value', '' + value);\n }\n }\n};\n\nfunction _handleChange(event) {\n var props = this._currentElement.props;\n var returnValue = LinkedValueUtils.executeOnChange(props, event);\n ReactUpdates.asap(forceUpdateIfMounted, this);\n return returnValue;\n}\n\nmodule.exports = ReactDOMTextarea;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01UZXh0YXJlYS5qcz8zZDk5Il0sIm5hbWVzIjpbIkxpbmtlZFZhbHVlVXRpbHMiLCJyZXF1aXJlIiwiUmVhY3RET01JRE9wZXJhdGlvbnMiLCJSZWFjdFVwZGF0ZXMiLCJhc3NpZ24iLCJpbnZhcmlhbnQiLCJ3YXJuaW5nIiwiZm9yY2VVcGRhdGVJZk1vdW50ZWQiLCJfcm9vdE5vZGVJRCIsIlJlYWN0RE9NVGV4dGFyZWEiLCJ1cGRhdGVXcmFwcGVyIiwiZ2V0TmF0aXZlUHJvcHMiLCJpbnN0IiwicHJvcHMiLCJjb250ZXh0IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJuYXRpdmVQcm9wcyIsImRlZmF1bHRWYWx1ZSIsInZhbHVlIiwiY2hpbGRyZW4iLCJfd3JhcHBlclN0YXRlIiwiaW5pdGlhbFZhbHVlIiwib25DaGFuZ2UiLCJtb3VudFdyYXBwZXIiLCJjaGVja1Byb3BUeXBlcyIsIl9jdXJyZW50RWxlbWVudCIsIl9vd25lciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImdldFZhbHVlIiwiX2hhbmRsZUNoYW5nZSIsImJpbmQiLCJ1cGRhdGVQcm9wZXJ0eUJ5SUQiLCJldmVudCIsInJldHVyblZhbHVlIiwiZXhlY3V0ZU9uQ2hhbmdlIiwiYXNhcCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLG1CQUFtQixtQkFBQUMsQ0FBUSxHQUFSLENBQXZCO0FBQ0EsSUFBSUMsdUJBQXVCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBM0I7QUFDQSxJQUFJRSxlQUFlLG1CQUFBRixDQUFRLEVBQVIsQ0FBbkI7O0FBRUEsSUFBSUcsU0FBUyxtQkFBQUgsQ0FBUSxFQUFSLENBQWI7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O0FBQ0EsUUFBSVMsUUFBUXRCLGlCQUFpQmtDLFFBQWpCLENBQTBCckIsS0FBMUIsQ0FBWjtBQUNBLFFBQUlTLFNBQVMsSUFBYixFQUFtQjtBQUNqQjtBQUNBO0FBQ0FwQiwyQkFBcUJtQyxrQkFBckIsQ0FBd0N6QixLQUFLSixXQUE3QyxFQUEwRCxPQUExRCxFQUFtRSxLQUFLYyxLQUF4RTtBQUNEO0FBQ0Y7QUEzRG9CLENBQXZCOztBQThEQSxTQUFTYSxhQUFULENBQXVCRyxLQUF2QixFQUE4QjtBQUM1QixNQUFJekIsUUFBUSxLQUFLZ0IsZUFBTCxDQUFxQmhCLEtBQWpDO0FBQ0EsTUFBSTBCLGNBQWN2QyxpQkFBaUJ3QyxlQUFqQixDQUFpQzNCLEtBQWpDLEVBQXdDeUIsS0FBeEMsQ0FBbEI7QUFDQW5DLGVBQWFzQyxJQUFiLENBQWtCbEMsb0JBQWxCLEVBQXdDLElBQXhDO0FBQ0EsU0FBT2dDLFdBQVA7QUFDRDs7QUFFREcsT0FBT0MsT0FBUCxHQUFpQmxDLGdCQUFqQixDIiwiZmlsZSI6IjExMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdERPTVRleHRhcmVhXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgTGlua2VkVmFsdWVVdGlscyA9IHJlcXVpcmUoJy4vTGlua2VkVmFsdWVVdGlscycpO1xudmFyIFJlYWN0RE9NSURPcGVyYXRpb25zID0gcmVxdWlyZSgnLi9SZWFjdERPTUlET3BlcmF0aW9ucycpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG5mdW5jdGlvbiBmb3JjZVVwZGF0ZUlmTW91bnRlZCgpIHtcbiAgaWYgKHRoaXMuX3Jvb3ROb2RlSUQpIHtcbiAgICAvLyBET00gY29tcG9uZW50IGlzIHN0aWxsIG1vdW50ZWQ7IHVwZGF0ZVxuICAgIFJlYWN0RE9NVGV4dGFyZWEudXBkYXRlV3JhcHBlcih0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgYSA8dGV4dGFyZWE+IG5hdGl2ZSBjb21wb25lbnQgdGhhdCBhbGxvd3Mgc2V0dGluZyBgdmFsdWVgLCBhbmRcbiAqIGBkZWZhdWx0VmFsdWVgLiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgdHJhZGl0aW9uYWwgRE9NIEFQSSBiZWNhdXNlIHZhbHVlIGlzXG4gKiB1c3VhbGx5IHNldCBhcyBQQ0RBVEEgY2hpbGRyZW4uXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgYWZmZWN0IHRoZVxuICogdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGxcbiAqIG5vdCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgd2l0aCBhbiBlbXB0eSB2YWx1ZSwgdGhlIHByb3BcbiAqIGBkZWZhdWx0VmFsdWVgIGlmIHNwZWNpZmllZCwgb3IgdGhlIGNoaWxkcmVuIGNvbnRlbnQgKGRlcHJlY2F0ZWQpLlxuICovXG52YXIgUmVhY3RET01UZXh0YXJlYSA9IHtcbiAgZ2V0TmF0aXZlUHJvcHM6IGZ1bmN0aW9uIChpbnN0LCBwcm9wcywgY29udGV4dCkge1xuICAgICEocHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBkb2VzIG5vdCBtYWtlIHNlbnNlIG9uIDx0ZXh0YXJlYT4uJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQWx3YXlzIHNldCBjaGlsZHJlbiB0byB0aGUgc2FtZSB0aGluZy4gSW4gSUU5LCB0aGUgc2VsZWN0aW9uIHJhbmdlIHdpbGxcbiAgICAvLyBnZXQgcmVzZXQgaWYgYHRleHRDb250ZW50YCBpcyBtdXRhdGVkLlxuICAgIHZhciBuYXRpdmVQcm9wcyA9IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGNoaWxkcmVuOiBpbnN0Ll93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlLFxuICAgICAgb25DaGFuZ2U6IGluc3QuX3dyYXBwZXJTdGF0ZS5vbkNoYW5nZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5hdGl2ZVByb3BzO1xuICB9LFxuXG4gIG1vdW50V3JhcHBlcjogZnVuY3Rpb24gKGluc3QsIHByb3BzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIExpbmtlZFZhbHVlVXRpbHMuY2hlY2tQcm9wVHlwZXMoJ3RleHRhcmVhJywgcHJvcHMsIGluc3QuX2N1cnJlbnRFbGVtZW50Ll9vd25lcik7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRWYWx1ZSA9IHByb3BzLmRlZmF1bHRWYWx1ZTtcbiAgICAvLyBUT0RPICh5dW5nc3RlcnMpOiBSZW1vdmUgc3VwcG9ydCBmb3IgY2hpbGRyZW4gY29udGVudCBpbiA8dGV4dGFyZWE+LlxuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICAgIGlmIChjaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ1VzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBpbnN0ZWFkIG9mIHNldHRpbmcgJyArICdjaGlsZHJlbiBvbiA8dGV4dGFyZWE+LicpIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgIShkZWZhdWx0VmFsdWUgPT0gbnVsbCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICAhKGNoaWxkcmVuLmxlbmd0aCA8PSAxKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICc8dGV4dGFyZWE+IGNhbiBvbmx5IGhhdmUgYXQgbW9zdCBvbmUgY2hpbGQuJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuWzBdO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0VmFsdWUgPSAnJyArIGNoaWxkcmVuO1xuICAgIH1cbiAgICBpZiAoZGVmYXVsdFZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgIH1cbiAgICB2YXIgdmFsdWUgPSBMaW5rZWRWYWx1ZVV0aWxzLmdldFZhbHVlKHByb3BzKTtcblxuICAgIGluc3QuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICAgIC8vIFdlIHNhdmUgdGhlIGluaXRpYWwgdmFsdWUgc28gdGhhdCBgUmVhY3RET01Db21wb25lbnRgIGRvZXNuJ3QgdXBkYXRlXG4gICAgICAvLyBgdGV4dENvbnRlbnRgICh1bm5lY2Vzc2FyeSBzaW5jZSB3ZSB1cGRhdGUgdmFsdWUpLlxuICAgICAgLy8gVGhlIGluaXRpYWwgdmFsdWUgY2FuIGJlIGEgYm9vbGVhbiBvciBvYmplY3Qgc28gdGhhdCdzIHdoeSBpdCdzXG4gICAgICAvLyBmb3JjZWQgdG8gYmUgYSBzdHJpbmcuXG4gICAgICBpbml0aWFsVmFsdWU6ICcnICsgKHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IGRlZmF1bHRWYWx1ZSksXG4gICAgICBvbkNoYW5nZTogX2hhbmRsZUNoYW5nZS5iaW5kKGluc3QpXG4gICAgfTtcbiAgfSxcblxuICB1cGRhdGVXcmFwcGVyOiBmdW5jdGlvbiAoaW5zdCkge1xuICAgIHZhciBwcm9wcyA9IGluc3QuX2N1cnJlbnRFbGVtZW50LnByb3BzO1xuICAgIHZhciB2YWx1ZSA9IExpbmtlZFZhbHVlVXRpbHMuZ2V0VmFsdWUocHJvcHMpO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAvLyBDYXN0IGB2YWx1ZWAgdG8gYSBzdHJpbmcgdG8gZW5zdXJlIHRoZSB2YWx1ZSBpcyBzZXQgY29ycmVjdGx5LiBXaGlsZVxuICAgICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGRvIHRoaXMgYXMgbmVjZXNzYXJ5LCBqc2RvbSBkb2Vzbid0LlxuICAgICAgUmVhY3RET01JRE9wZXJhdGlvbnMudXBkYXRlUHJvcGVydHlCeUlEKGluc3QuX3Jvb3ROb2RlSUQsICd2YWx1ZScsICcnICsgdmFsdWUpO1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gX2hhbmRsZUNoYW5nZShldmVudCkge1xuICB2YXIgcHJvcHMgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcztcbiAgdmFyIHJldHVyblZhbHVlID0gTGlua2VkVmFsdWVVdGlscy5leGVjdXRlT25DaGFuZ2UocHJvcHMsIGV2ZW50KTtcbiAgUmVhY3RVcGRhdGVzLmFzYXAoZm9yY2VVcGRhdGVJZk1vdW50ZWQsIHRoaXMpO1xuICByZXR1cm4gcmV0dXJuVmFsdWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01UZXh0YXJlYTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01UZXh0YXJlYS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 114 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactMultiChild\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactComponentEnvironment = __webpack_require__(64);\nvar ReactMultiChildUpdateTypes = __webpack_require__(16);\n\nvar ReactCurrentOwner = __webpack_require__(5);\nvar ReactReconciler = __webpack_require__(50);\nvar ReactChildReconciler = __webpack_require__(115);\n\nvar flattenChildren = __webpack_require__(116);\n\n/**\n * Updating children of a component may trigger recursive updates. The depth is\n * used to batch recursive updates to render markup more efficiently.\n *\n * @type {number}\n * @private\n */\nvar updateDepth = 0;\n\n/**\n * Queue of update configuration objects.\n *\n * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`.\n *\n * @type {array<object>}\n * @private\n */\nvar updateQueue = [];\n\n/**\n * Queue of markup to be rendered.\n *\n * @type {array<string>}\n * @private\n */\nvar markupQueue = [];\n\n/**\n * Enqueues markup to be rendered and inserted at a supplied index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @param {number} toIndex Destination index.\n * @private\n */\nfunction enqueueInsertMarkup(parentID, markup, toIndex) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.INSERT_MARKUP,\n markupIndex: markupQueue.push(markup) - 1,\n content: null,\n fromIndex: null,\n toIndex: toIndex\n });\n}\n\n/**\n * Enqueues moving an existing element to another index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Source index of the existing element.\n * @param {number} toIndex Destination index of the element.\n * @private\n */\nfunction enqueueMove(parentID, fromIndex, toIndex) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.MOVE_EXISTING,\n markupIndex: null,\n content: null,\n fromIndex: fromIndex,\n toIndex: toIndex\n });\n}\n\n/**\n * Enqueues removing an element at an index.\n *\n * @param {string} parentID ID of the parent component.\n * @param {number} fromIndex Index of the element to remove.\n * @private\n */\nfunction enqueueRemove(parentID, fromIndex) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.REMOVE_NODE,\n markupIndex: null,\n content: null,\n fromIndex: fromIndex,\n toIndex: null\n });\n}\n\n/**\n * Enqueues setting the markup of a node.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} markup Markup that renders into an element.\n * @private\n */\nfunction enqueueSetMarkup(parentID, markup) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.SET_MARKUP,\n markupIndex: null,\n content: markup,\n fromIndex: null,\n toIndex: null\n });\n}\n\n/**\n * Enqueues setting the text content.\n *\n * @param {string} parentID ID of the parent component.\n * @param {string} textContent Text content to set.\n * @private\n */\nfunction enqueueTextContent(parentID, textContent) {\n // NOTE: Null values reduce hidden classes.\n updateQueue.push({\n parentID: parentID,\n parentNode: null,\n type: ReactMultiChildUpdateTypes.TEXT_CONTENT,\n markupIndex: null,\n content: textContent,\n fromIndex: null,\n toIndex: null\n });\n}\n\n/**\n * Processes any enqueued updates.\n *\n * @private\n */\nfunction processQueue() {\n if (updateQueue.length) {\n ReactComponentEnvironment.processChildrenUpdates(updateQueue, markupQueue);\n clearQueue();\n }\n}\n\n/**\n * Clears any enqueued updates.\n *\n * @private\n */\nfunction clearQueue() {\n updateQueue.length = 0;\n markupQueue.length = 0;\n}\n\n/**\n * ReactMultiChild are capable of reconciling multiple children.\n *\n * @class ReactMultiChild\n * @internal\n */\nvar ReactMultiChild = {\n\n /**\n * Provides common functionality for components that must reconcile multiple\n * children. This is used by `ReactDOMComponent` to mount, update, and\n * unmount child components.\n *\n * @lends {ReactMultiChild.prototype}\n */\n Mixin: {\n\n _reconcilerInstantiateChildren: function _reconcilerInstantiateChildren(nestedChildren, transaction, context) {\n if (process.env.NODE_ENV !== 'production') {\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n } finally {\n ReactCurrentOwner.current = null;\n }\n }\n }\n return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);\n },\n\n _reconcilerUpdateChildren: function _reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context) {\n var nextChildren;\n if (process.env.NODE_ENV !== 'production') {\n if (this._currentElement) {\n try {\n ReactCurrentOwner.current = this._currentElement._owner;\n nextChildren = flattenChildren(nextNestedChildrenElements);\n } finally {\n ReactCurrentOwner.current = null;\n }\n return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n }\n }\n nextChildren = flattenChildren(nextNestedChildrenElements);\n return ReactChildReconciler.updateChildren(prevChildren, nextChildren, transaction, context);\n },\n\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildren Nested child maps.\n * @return {array} An array of mounted representations.\n * @internal\n */\n mountChildren: function mountChildren(nestedChildren, transaction, context) {\n var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);\n this._renderedChildren = children;\n var mountImages = [];\n var index = 0;\n for (var name in children) {\n if (children.hasOwnProperty(name)) {\n var child = children[name];\n // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n var rootID = this._rootNodeID + name;\n var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n child._mountIndex = index++;\n mountImages.push(mountImage);\n }\n }\n return mountImages;\n },\n\n /**\n * Replaces any rendered children with a text content string.\n *\n * @param {string} nextContent String of content.\n * @internal\n */\n updateTextContent: function updateTextContent(nextContent) {\n updateDepth++;\n var errorThrown = true;\n try {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren);\n // TODO: The setTextContent operation should be enough\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n this._unmountChild(prevChildren[name]);\n }\n }\n // Set new text content.\n this.setTextContent(nextContent);\n errorThrown = false;\n } finally {\n updateDepth--;\n if (!updateDepth) {\n if (errorThrown) {\n clearQueue();\n } else {\n processQueue();\n }\n }\n }\n },\n\n /**\n * Replaces any rendered children with a markup string.\n *\n * @param {string} nextMarkup String of markup.\n * @internal\n */\n updateMarkup: function updateMarkup(nextMarkup) {\n updateDepth++;\n var errorThrown = true;\n try {\n var prevChildren = this._renderedChildren;\n // Remove any rendered children.\n ReactChildReconciler.unmountChildren(prevChildren);\n for (var name in prevChildren) {\n if (prevChildren.hasOwnProperty(name)) {\n this._unmountChildByName(prevChildren[name], name);\n }\n }\n this.setMarkup(nextMarkup);\n errorThrown = false;\n } finally {\n updateDepth--;\n if (!updateDepth) {\n if (errorThrown) {\n clearQueue();\n } else {\n processQueue();\n }\n }\n }\n },\n\n /**\n * Updates the rendered children with new children.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @internal\n */\n updateChildren: function updateChildren(nextNestedChildrenElements, transaction, context) {\n updateDepth++;\n var errorThrown = true;\n try {\n this._updateChildren(nextNestedChildrenElements, transaction, context);\n errorThrown = false;\n } finally {\n updateDepth--;\n if (!updateDepth) {\n if (errorThrown) {\n clearQueue();\n } else {\n processQueue();\n }\n }\n }\n },\n\n /**\n * Improve performance by isolating this hot code path from the try/catch\n * block in `updateChildren`.\n *\n * @param {?object} nextNestedChildrenElements Nested child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @final\n * @protected\n */\n _updateChildren: function _updateChildren(nextNestedChildrenElements, transaction, context) {\n var prevChildren = this._renderedChildren;\n var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, transaction, context);\n this._renderedChildren = nextChildren;\n if (!nextChildren && !prevChildren) {\n return;\n }\n var name;\n // `nextIndex` will increment for each child in `nextChildren`, but\n // `lastIndex` will be the last index visited in `prevChildren`.\n var lastIndex = 0;\n var nextIndex = 0;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var nextChild = nextChildren[name];\n if (prevChild === nextChild) {\n this.moveChild(prevChild, nextIndex, lastIndex);\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n prevChild._mountIndex = nextIndex;\n } else {\n if (prevChild) {\n // Update `lastIndex` before `_mountIndex` gets unset by unmounting.\n lastIndex = Math.max(prevChild._mountIndex, lastIndex);\n this._unmountChild(prevChild);\n }\n // The child must be instantiated before it's mounted.\n this._mountChildByNameAtIndex(nextChild, name, nextIndex, transaction, context);\n }\n nextIndex++;\n }\n // Remove children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n this._unmountChild(prevChildren[name]);\n }\n }\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @internal\n */\n unmountChildren: function unmountChildren() {\n var renderedChildren = this._renderedChildren;\n ReactChildReconciler.unmountChildren(renderedChildren);\n this._renderedChildren = null;\n },\n\n /**\n * Moves a child component to the supplied index.\n *\n * @param {ReactComponent} child Component to move.\n * @param {number} toIndex Destination index of the element.\n * @param {number} lastIndex Last index visited of the siblings of `child`.\n * @protected\n */\n moveChild: function moveChild(child, toIndex, lastIndex) {\n // If the index of `child` is less than `lastIndex`, then it needs to\n // be moved. Otherwise, we do not need to move it because a child will be\n // inserted or moved before `child`.\n if (child._mountIndex < lastIndex) {\n enqueueMove(this._rootNodeID, child._mountIndex, toIndex);\n }\n },\n\n /**\n * Creates a child component.\n *\n * @param {ReactComponent} child Component to create.\n * @param {string} mountImage Markup to insert.\n * @protected\n */\n createChild: function createChild(child, mountImage) {\n enqueueInsertMarkup(this._rootNodeID, mountImage, child._mountIndex);\n },\n\n /**\n * Removes a child component.\n *\n * @param {ReactComponent} child Child to remove.\n * @protected\n */\n removeChild: function removeChild(child) {\n enqueueRemove(this._rootNodeID, child._mountIndex);\n },\n\n /**\n * Sets this text content string.\n *\n * @param {string} textContent Text content to set.\n * @protected\n */\n setTextContent: function setTextContent(textContent) {\n enqueueTextContent(this._rootNodeID, textContent);\n },\n\n /**\n * Sets this markup string.\n *\n * @param {string} markup Markup to set.\n * @protected\n */\n setMarkup: function setMarkup(markup) {\n enqueueSetMarkup(this._rootNodeID, markup);\n },\n\n /**\n * Mounts a child with the supplied name.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to mount.\n * @param {string} name Name of the child.\n * @param {number} index Index at which to insert the child.\n * @param {ReactReconcileTransaction} transaction\n * @private\n */\n _mountChildByNameAtIndex: function _mountChildByNameAtIndex(child, name, index, transaction, context) {\n // Inlined for performance, see `ReactInstanceHandles.createReactID`.\n var rootID = this._rootNodeID + name;\n var mountImage = ReactReconciler.mountComponent(child, rootID, transaction, context);\n child._mountIndex = index;\n this.createChild(child, mountImage);\n },\n\n /**\n * Unmounts a rendered child.\n *\n * NOTE: This is part of `updateChildren` and is here for readability.\n *\n * @param {ReactComponent} child Component to unmount.\n * @private\n */\n _unmountChild: function _unmountChild(child) {\n this.removeChild(child);\n child._mountIndex = null;\n }\n\n }\n\n};\n\nmodule.exports = ReactMultiChild;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RNdWx0aUNoaWxkLmpzPzM5MDIiXSwibmFtZXMiOlsiUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudCIsInJlcXVpcmUiLCJSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcyIsIlJlYWN0Q3VycmVudE93bmVyIiwiUmVhY3RSZWNvbmNpbGVyIiwiUmVhY3RDaGlsZFJlY29uY2lsZXIiLCJmbGF0dGVuQ2hpbGRyZW4iLCJ1cGRhdGVEZXB0aCIsInVwZGF0ZVF1ZXVlIiwibWFya3VwUXVldWUiLCJlbnF1ZXVlSW5zZXJ0TWFya3VwIiwicGFyZW50SUQiLCJtYXJrdXAiLCJ0b0luZGV4IiwicHVzaCIsInBhcmVudE5vZGUiLCJ0eXBlIiwiSU5TRVJUX01BUktVUCIsIm1hcmt1cEluZGV4IiwiY29udGVudCIsImZyb21JbmRleCIsImVucXVldWVNb3ZlIiwiTU9WRV9FWElTVElORyIsImVucXVldWVSZW1vdmUiLCJSRU1PVkVfTk9ERSIsImVucXVldWVTZXRNYXJrdXAiLCJTRVRfTUFSS1VQIiwiZW5xdWV1ZVRleHRDb250ZW50IiwidGV4dENvbnRlbnQiLCJURVhUX0NPTlRFTlQiLCJwcm9jZXNzUXVldWUiLCJsZW5ndGgiLCJwcm9jZXNzQ2hpbGRyZW5VcGRhdGVzIiwiY2xlYXJRdWV1ZSIsIlJlYWN0TXVsdGlDaGlsZCIsIk1peGluIiwiX3JlY29uY2lsZXJJbnN0YW50aWF0ZUNoaWxkcmVuIiwibmVzdGVkQ2hpbGRyZW4iLCJ0cmFuc2FjdGlvbiIsImNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfY3VycmVudEVsZW1lbnQiLCJjdXJyZW50IiwiX293bmVyIiwiaW5zdGFudGlhdGVDaGlsZHJlbiIsIl9yZWNvbmNpbGVyVXBkYXRlQ2hpbGRyZW4iLCJwcmV2Q2hpbGRyZW4iLCJuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cyIsIm5leHRDaGlsZHJlbiIsInVwZGF0ZUNoaWxkcmVuIiwibW91bnRDaGlsZHJlbiIsImNoaWxkcmVuIiwiX3JlbmRlcmVkQ2hpbGRyZW4iLCJtb3VudEltYWdlcyIsImluZGV4IiwibmFtZSIsImhhc093blByb3BlcnR5IiwiY2hpbGQiLCJyb290SUQiLCJfcm9vdE5vZGVJRCIsIm1vdW50SW1hZ2UiLCJtb3VudENvbXBvbmVudCIsIl9tb3VudEluZGV4IiwidXBkYXRlVGV4dENvbnRlbnQiLCJuZXh0Q29udGVudCIsImVycm9yVGhyb3duIiwidW5tb3VudENoaWxkcmVuIiwiX3VubW91bnRDaGlsZCIsInNldFRleHRDb250ZW50IiwidXBkYXRlTWFya3VwIiwibmV4dE1hcmt1cCIsIl91bm1vdW50Q2hpbGRCeU5hbWUiLCJzZXRNYXJrdXAiLCJfdXBkYXRlQ2hpbGRyZW4iLCJsYXN0SW5kZXgiLCJuZXh0SW5kZXgiLCJwcmV2Q2hpbGQiLCJuZXh0Q2hpbGQiLCJtb3ZlQ2hpbGQiLCJNYXRoIiwibWF4IiwiX21vdW50Q2hpbGRCeU5hbWVBdEluZGV4IiwicmVuZGVyZWRDaGlsZHJlbiIsImNyZWF0ZUNoaWxkIiwicmVtb3ZlQ2hpbGQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsNEJBQTRCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBaEM7QUFDQSxJQUFJQyw2QkFBNkIsbUJBQUFELENBQVEsRUFBUixDQUFqQzs7QUFFQSxJQUFJRSxvQkFBb0IsbUJBQUFGLENBQVEsQ0FBUixDQUF4QjtBQUNBLElBQUlHLGtCQUFrQixtQkFBQUgsQ0FBUSxFQUFSLENBQXRCO0FBQ0EsSUFBSUksdUJBQXVCLG1CQUFBSixDQUFRLEdBQVIsQ0FBM0I7O0FBRUEsSUFBSUssa0JBQWtCLG1CQUFBTCxDQUFRLEdBQVIsQ0FBdEI7O0FBRUE7Ozs7Ozs7QUFPQSxJQUFJTSxjQUFjLENBQWxCOztBQUVBOzs7Ozs7OztBQVFBLElBQUlDLGNB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LEtBQVYsRUFBaUJGLElBQWpCLEVBQXVCRCxLQUF2QixFQUE4QmxCLFdBQTlCLEVBQTJDQyxPQUEzQyxFQUFvRDtBQUM1RTtBQUNBLFVBQUlxQixTQUFTLEtBQUtDLFdBQUwsR0FBbUJKLElBQWhDO0FBQ0EsVUFBSUssYUFBYTFELGdCQUFnQjJELGNBQWhCLENBQStCSixLQUEvQixFQUFzQ0MsTUFBdEMsRUFBOEN0QixXQUE5QyxFQUEyREMsT0FBM0QsQ0FBakI7QUFDQW9CLFlBQU1LLFdBQU4sR0FBb0JSLEtBQXBCO0FBQ0EsV0FBSzZCLFdBQUwsQ0FBaUIxQixLQUFqQixFQUF3QkcsVUFBeEI7QUFDRCxLQS9SSTs7QUFpU0w7Ozs7Ozs7O0FBUUFPLG1CQUFlLHVCQUFVVixLQUFWLEVBQWlCO0FBQzlCLFdBQUsyQixXQUFMLENBQWlCM0IsS0FBakI7QUFDQUEsWUFBTUssV0FBTixHQUFvQixJQUFwQjtBQUNEOztBQTVTSTs7QUFUYSxDQUF0Qjs7QUEyVEF1QixPQUFPQyxPQUFQLEdBQWlCdEQsZUFBakIsQyIsImZpbGUiOiIxMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RNdWx0aUNoaWxkXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL1JlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcyA9IHJlcXVpcmUoJy4vUmVhY3RNdWx0aUNoaWxkVXBkYXRlVHlwZXMnKTtcblxudmFyIFJlYWN0Q3VycmVudE93bmVyID0gcmVxdWlyZSgnLi9SZWFjdEN1cnJlbnRPd25lcicpO1xudmFyIFJlYWN0UmVjb25jaWxlciA9IHJlcXVpcmUoJy4vUmVhY3RSZWNvbmNpbGVyJyk7XG52YXIgUmVhY3RDaGlsZFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0Q2hpbGRSZWNvbmNpbGVyJyk7XG5cbnZhciBmbGF0dGVuQ2hpbGRyZW4gPSByZXF1aXJlKCcuL2ZsYXR0ZW5DaGlsZHJlbicpO1xuXG4vKipcbiAqIFVwZGF0aW5nIGNoaWxkcmVuIG9mIGEgY29tcG9uZW50IG1heSB0cmlnZ2VyIHJlY3Vyc2l2ZSB1cGRhdGVzLiBUaGUgZGVwdGggaXNcbiAqIHVzZWQgdG8gYmF0Y2ggcmVjdXJzaXZlIHVwZGF0ZXMgdG8gcmVuZGVyIG1hcmt1cCBtb3JlIGVmZmljaWVudGx5LlxuICpcbiAqIEB0eXBlIHtudW1iZXJ9XG4gKiBAcHJpdmF0ZVxuICovXG52YXIgdXBkYXRlRGVwdGggPSAwO1xuXG4vKipcbiAqIFF1ZXVlIG9mIHVwZGF0ZSBjb25maWd1cmF0aW9uIG9iamVjdHMuXG4gKlxuICogRWFjaCBvYmplY3QgaGFzIGEgYHR5cGVgIHByb3BlcnR5IHRoYXQgaXMgaW4gYFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzYC5cbiAqXG4gKiBAdHlwZSB7YXJyYXk8b2JqZWN0Pn1cbiAqIEBwcml2YXRlXG4gKi9cbnZhciB1cGRhdGVRdWV1ZSA9IFtdO1xuXG4vKipcbiAqIFF1ZXVlIG9mIG1hcmt1cCB0byBiZSByZW5kZXJlZC5cbiAqXG4gKiBAdHlwZSB7YXJyYXk8c3RyaW5nPn1cbiAqIEBwcml2YXRlXG4gKi9cbnZhciBtYXJrdXBRdWV1ZSA9IFtdO1xuXG4vKipcbiAqIEVucXVldWVzIG1hcmt1cCB0byBiZSByZW5kZXJlZCBhbmQgaW5zZXJ0ZWQgYXQgYSBzdXBwbGllZCBpbmRleC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50SUQgSUQgb2YgdGhlIHBhcmVudCBjb21wb25lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0aGF0IHJlbmRlcnMgaW50byBhbiBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IHRvSW5kZXggRGVzdGluYXRpb24gaW5kZXguXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBlbnF1ZXVlSW5zZXJ0TWFya3VwKHBhcmVudElELCBtYXJrdXAsIHRvSW5kZXgpIHtcbiAgLy8gTk9URTogTnVsbCB2YWx1ZXMgcmVkdWNlIGhpZGRlbiBjbGFzc2VzLlxuICB1cGRhdGVRdWV1ZS5wdXNoKHtcbiAgICBwYXJlbnRJRDogcGFyZW50SUQsXG4gICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICB0eXBlOiBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcy5JTlNFUlRfTUFSS1VQLFxuICAgIG1hcmt1cEluZGV4OiBtYXJrdXBRdWV1ZS5wdXNoKG1hcmt1cCkgLSAxLFxuICAgIGNvbnRlbnQ6IG51bGwsXG4gICAgZnJvbUluZGV4OiBudWxsLFxuICAgIHRvSW5kZXg6IHRvSW5kZXhcbiAgfSk7XG59XG5cbi8qKlxuICogRW5xdWV1ZXMgbW92aW5nIGFuIGV4aXN0aW5nIGVsZW1lbnQgdG8gYW5vdGhlciBpbmRleC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50SUQgSUQgb2YgdGhlIHBhcmVudCBjb21wb25lbnQuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFNvdXJjZSBpbmRleCBvZiB0aGUgZXhpc3RpbmcgZWxlbWVudC5cbiAqIEBwYXJhbSB7bnVtYmVyfSB0b0luZGV4IERlc3RpbmF0aW9uIGluZGV4IG9mIHRoZSBlbGVtZW50LlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZW5xdWV1ZU1vdmUocGFyZW50SUQsIGZyb21JbmRleCwgdG9JbmRleCkge1xuICAvLyBOT1RFOiBOdWxsIHZhbHVlcyByZWR1Y2UgaGlkZGVuIGNsYXNzZXMuXG4gIHVwZGF0ZVF1ZXVlLnB1c2goe1xuICAgIHBhcmVudElEOiBwYXJlbnRJRCxcbiAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgIHR5cGU6IFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzLk1PVkVfRVhJU1RJTkcsXG4gICAgbWFya3VwSW5kZXg6IG51bGwsXG4gICAgY29udGVudDogbnVsbCxcbiAgICBmcm9tSW5kZXg6IGZyb21JbmRleCxcbiAgICB0b0luZGV4OiB0b0luZGV4XG4gIH0pO1xufVxuXG4vKipcbiAqIEVucXVldWVzIHJlbW92aW5nIGFuIGVsZW1lbnQgYXQgYW4gaW5kZXguXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhcmVudElEIElEIG9mIHRoZSBwYXJlbnQgY29tcG9uZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IGZyb21JbmRleCBJbmRleCBvZiB0aGUgZWxlbWVudCB0byByZW1vdmUuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBlbnF1ZXVlUmVtb3ZlKHBhcmVudElELCBmcm9tSW5kZXgpIHtcbiAgLy8gTk9URTogTnVsbCB2YWx1ZXMgcmVkdWNlIGhpZGRlbiBjbGFzc2VzLlxuICB1cGRhdGVRdWV1ZS5wdXNoKHtcbiAgICBwYXJlbnRJRDogcGFyZW50SUQsXG4gICAgcGFyZW50Tm9kZTogbnVsbCxcbiAgICB0eXBlOiBSZWFjdE11bHRpQ2hpbGRVcGRhdGVUeXBlcy5SRU1PVkVfTk9ERSxcbiAgICBtYXJrdXBJbmRleDogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGZyb21JbmRleDogZnJvbUluZGV4LFxuICAgIHRvSW5kZXg6IG51bGxcbiAgfSk7XG59XG5cbi8qKlxuICogRW5xdWV1ZXMgc2V0dGluZyB0aGUgbWFya3VwIG9mIGEgbm9kZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50SUQgSUQgb2YgdGhlIHBhcmVudCBjb21wb25lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0aGF0IHJlbmRlcnMgaW50byBhbiBlbGVtZW50LlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZW5xdWV1ZVNldE1hcmt1cChwYXJlbnRJRCwgbWFya3VwKSB7XG4gIC8vIE5PVEU6IE51bGwgdmFsdWVzIHJlZHVjZSBoaWRkZW4gY2xhc3Nlcy5cbiAgdXBkYXRlUXVldWUucHVzaCh7XG4gICAgcGFyZW50SUQ6IHBhcmVudElELFxuICAgIHBhcmVudE5vZGU6IG51bGwsXG4gICAgdHlwZTogUmVhY3RNdWx0aUNoaWxkVXBkYXRlVHlwZXMuU0VUX01BUktVUCxcbiAgICBtYXJrdXBJbmRleDogbnVsbCxcbiAgICBjb250ZW50OiBtYXJrdXAsXG4gICAgZnJvbUluZGV4OiBudWxsLFxuICAgIHRvSW5kZXg6IG51bGxcbiAgfSk7XG59XG5cbi8qKlxuICogRW5xdWV1ZXMgc2V0dGluZyB0aGUgdGV4dCBjb250ZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXJlbnRJRCBJRCBvZiB0aGUgcGFyZW50IGNvbXBvbmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0Q29udGVudCBUZXh0IGNvbnRlbnQgdG8gc2V0LlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gZW5xdWV1ZVRleHRDb250ZW50KHBhcmVudElELCB0ZXh0Q29udGVudCkge1xuICAvLyBOT1RFOiBOdWxsIHZhbHVlcyByZWR1Y2UgaGlkZGVuIGNsYXNzZXMuXG4gIHVwZGF0ZVF1ZXVlLnB1c2goe1xuICAgIHBhcmVudElEOiBwYXJlbnRJRCxcbiAgICBwYXJlbnROb2RlOiBudWxsLFxuICAgIHR5cGU6IFJlYWN0TXVsdGlDaGlsZFVwZGF0ZVR5cGVzLlRFWFRfQ09OVEVOVCxcbiAgICBtYXJrdXBJbmRleDogbnVsbCxcbiAgICBjb250ZW50OiB0ZXh0Q29udGVudCxcbiAgICBmcm9tSW5kZXg6IG51bGwsXG4gICAgdG9JbmRleDogbnVsbFxuICB9KTtcbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgYW55IGVucXVldWVkIHVwZGF0ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc1F1ZXVlKCkge1xuICBpZiAodXBkYXRlUXVldWUubGVuZ3RoKSB7XG4gICAgUmVhY3RDb21wb25lbnRFbnZpcm9ubWVudC5wcm9jZXNzQ2hpbGRyZW5VcGRhdGVzKHVwZGF0ZVF1ZXVlLCBtYXJrdXBRdWV1ZSk7XG4gICAgY2xlYXJRdWV1ZSgpO1xuICB9XG59XG5cbi8qKlxuICogQ2xlYXJzIGFueSBlbnF1ZXVlZCB1cGRhdGVzLlxuICpcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNsZWFyUXVldWUoKSB7XG4gIHVwZGF0ZVF1ZXVlLmxlbmd0aCA9IDA7XG4gIG1hcmt1cFF1ZXVlLmxlbmd0aCA9IDA7XG59XG5cbi8qKlxuICogUmVhY3RNdWx0aUNoaWxkIGFyZSBjYXBhYmxlIG9mIHJlY29uY2lsaW5nIG11bHRpcGxlIGNoaWxkcmVuLlxuICpcbiAqIEBjbGFzcyBSZWFjdE11bHRpQ2hpbGRcbiAqIEBpbnRlcm5hbFxuICovXG52YXIgUmVhY3RNdWx0aUNoaWxkID0ge1xuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eSBmb3IgY29tcG9uZW50cyB0aGF0IG11c3QgcmVjb25jaWxlIG11bHRpcGxlXG4gICAqIGNoaWxkcmVuLiBUaGlzIGlzIHVzZWQgYnkgYFJlYWN0RE9NQ29tcG9uZW50YCB0byBtb3VudCwgdXBkYXRlLCBhbmRcbiAgICogdW5tb3VudCBjaGlsZCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAbGVuZHMge1JlYWN0TXVsdGlDaGlsZC5wcm90b3R5cGV9XG4gICAqL1xuICBNaXhpbjoge1xuXG4gICAgX3JlY29uY2lsZXJJbnN0YW50aWF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAobmVzdGVkQ2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudEVsZW1lbnQpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCA9IHRoaXMuX2N1cnJlbnRFbGVtZW50Ll9vd25lcjtcbiAgICAgICAgICAgIHJldHVybiBSZWFjdENoaWxkUmVjb25jaWxlci5pbnN0YW50aWF0ZUNoaWxkcmVuKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0Q2hpbGRSZWNvbmNpbGVyLmluc3RhbnRpYXRlQ2hpbGRyZW4obmVzdGVkQ2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9LFxuXG4gICAgX3JlY29uY2lsZXJVcGRhdGVDaGlsZHJlbjogZnVuY3Rpb24gKHByZXZDaGlsZHJlbiwgbmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICB2YXIgbmV4dENoaWxkcmVuO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgPSB0aGlzLl9jdXJyZW50RWxlbWVudC5fb3duZXI7XG4gICAgICAgICAgICBuZXh0Q2hpbGRyZW4gPSBmbGF0dGVuQ2hpbGRyZW4obmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFJlYWN0Q2hpbGRSZWNvbmNpbGVyLnVwZGF0ZUNoaWxkcmVuKHByZXZDaGlsZHJlbiwgbmV4dENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5leHRDaGlsZHJlbiA9IGZsYXR0ZW5DaGlsZHJlbihuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cyk7XG4gICAgICByZXR1cm4gUmVhY3RDaGlsZFJlY29uY2lsZXIudXBkYXRlQ2hpbGRyZW4ocHJldkNoaWxkcmVuLCBuZXh0Q2hpbGRyZW4sIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgXCJtb3VudCBpbWFnZVwiIGZvciBlYWNoIG9mIHRoZSBzdXBwbGllZCBjaGlsZHJlbi4gSW4gdGhlIGNhc2VcbiAgICAgKiBvZiBgUmVhY3RET01Db21wb25lbnRgLCBhIG1vdW50IGltYWdlIGlzIGEgc3RyaW5nIG9mIG1hcmt1cC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7P29iamVjdH0gbmVzdGVkQ2hpbGRyZW4gTmVzdGVkIGNoaWxkIG1hcHMuXG4gICAgICogQHJldHVybiB7YXJyYXl9IEFuIGFycmF5IG9mIG1vdW50ZWQgcmVwcmVzZW50YXRpb25zLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIG1vdW50Q2hpbGRyZW46IGZ1bmN0aW9uIChuZXN0ZWRDaGlsZHJlbiwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuX3JlY29uY2lsZXJJbnN0YW50aWF0ZUNoaWxkcmVuKG5lc3RlZENoaWxkcmVuLCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICB0aGlzLl9yZW5kZXJlZENoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICB2YXIgbW91bnRJbWFnZXMgPSBbXTtcbiAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICBmb3IgKHZhciBuYW1lIGluIGNoaWxkcmVuKSB7XG4gICAgICAgIGlmIChjaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICAgIHZhciBjaGlsZCA9IGNoaWxkcmVuW25hbWVdO1xuICAgICAgICAgIC8vIElubGluZWQgZm9yIHBlcmZvcm1hbmNlLCBzZWUgYFJlYWN0SW5zdGFuY2VIYW5kbGVzLmNyZWF0ZVJlYWN0SURgLlxuICAgICAgICAgIHZhciByb290SUQgPSB0aGlzLl9yb290Tm9kZUlEICsgbmFtZTtcbiAgICAgICAgICB2YXIgbW91bnRJbWFnZSA9IFJlYWN0UmVjb25jaWxlci5tb3VudENvbXBvbmVudChjaGlsZCwgcm9vdElELCB0cmFuc2FjdGlvbiwgY29udGV4dCk7XG4gICAgICAgICAgY2hpbGQuX21vdW50SW5kZXggPSBpbmRleCsrO1xuICAgICAgICAgIG1vdW50SW1hZ2VzLnB1c2gobW91bnRJbWFnZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBtb3VudEltYWdlcztcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYW55IHJlbmRlcmVkIGNoaWxkcmVuIHdpdGggYSB0ZXh0IGNvbnRlbnQgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5leHRDb250ZW50IFN0cmluZyBvZiBjb250ZW50LlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHVwZGF0ZVRleHRDb250ZW50OiBmdW5jdGlvbiAobmV4dENvbnRlbnQpIHtcbiAgICAgIHVwZGF0ZURlcHRoKys7XG4gICAgICB2YXIgZXJyb3JUaHJvd24gPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHByZXZDaGlsZHJlbiA9IHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW47XG4gICAgICAgIC8vIFJlbW92ZSBhbnkgcmVuZGVyZWQgY2hpbGRyZW4uXG4gICAgICAgIFJlYWN0Q2hpbGRSZWNvbmNpbGVyLnVubW91bnRDaGlsZHJlbihwcmV2Q2hpbGRyZW4pO1xuICAgICAgICAvLyBUT0RPOiBUaGUgc2V0VGV4dENvbnRlbnQgb3BlcmF0aW9uIHNob3VsZCBiZSBlbm91Z2hcbiAgICAgICAgZm9yICh2YXIgbmFtZSBpbiBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAocHJldkNoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLl91bm1vdW50Q2hpbGQocHJldkNoaWxkcmVuW25hbWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2V0IG5ldyB0ZXh0IGNvbnRlbnQuXG4gICAgICAgIHRoaXMuc2V0VGV4dENvbnRlbnQobmV4dENvbnRlbnQpO1xuICAgICAgICBlcnJvclRocm93biA9IGZhbHNlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdXBkYXRlRGVwdGgtLTtcbiAgICAgICAgaWYgKCF1cGRhdGVEZXB0aCkge1xuICAgICAgICAgIGlmIChlcnJvclRocm93bikge1xuICAgICAgICAgICAgY2xlYXJRdWV1ZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzUXVldWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYW55IHJlbmRlcmVkIGNoaWxkcmVuIHdpdGggYSBtYXJrdXAgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5leHRNYXJrdXAgU3RyaW5nIG9mIG1hcmt1cC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICB1cGRhdGVNYXJrdXA6IGZ1bmN0aW9uIChuZXh0TWFya3VwKSB7XG4gICAgICB1cGRhdGVEZXB0aCsrO1xuICAgICAgdmFyIGVycm9yVGhyb3duID0gdHJ1ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBwcmV2Q2hpbGRyZW4gPSB0aGlzLl9yZW5kZXJlZENoaWxkcmVuO1xuICAgICAgICAvLyBSZW1vdmUgYW55IHJlbmRlcmVkIGNoaWxkcmVuLlxuICAgICAgICBSZWFjdENoaWxkUmVjb25jaWxlci51bm1vdW50Q2hpbGRyZW4ocHJldkNoaWxkcmVuKTtcbiAgICAgICAgZm9yICh2YXIgbmFtZSBpbiBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAocHJldkNoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICB0aGlzLl91bm1vdW50Q2hpbGRCeU5hbWUocHJldkNoaWxkcmVuW25hbWVdLCBuYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRNYXJrdXAobmV4dE1hcmt1cCk7XG4gICAgICAgIGVycm9yVGhyb3duID0gZmFsc2U7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB1cGRhdGVEZXB0aC0tO1xuICAgICAgICBpZiAoIXVwZGF0ZURlcHRoKSB7XG4gICAgICAgICAgaWYgKGVycm9yVGhyb3duKSB7XG4gICAgICAgICAgICBjbGVhclF1ZXVlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb2Nlc3NRdWV1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSByZW5kZXJlZCBjaGlsZHJlbiB3aXRoIG5ldyBjaGlsZHJlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7P29iamVjdH0gbmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMgTmVzdGVkIGNoaWxkIGVsZW1lbnQgbWFwcy5cbiAgICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgdXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cywgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICAgIHVwZGF0ZURlcHRoKys7XG4gICAgICB2YXIgZXJyb3JUaHJvd24gPSB0cnVlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4obmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgICAgZXJyb3JUaHJvd24gPSBmYWxzZTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHVwZGF0ZURlcHRoLS07XG4gICAgICAgIGlmICghdXBkYXRlRGVwdGgpIHtcbiAgICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHtcbiAgICAgICAgICAgIGNsZWFyUXVldWUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvY2Vzc1F1ZXVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEltcHJvdmUgcGVyZm9ybWFuY2UgYnkgaXNvbGF0aW5nIHRoaXMgaG90IGNvZGUgcGF0aCBmcm9tIHRoZSB0cnkvY2F0Y2hcbiAgICAgKiBibG9jayBpbiBgdXBkYXRlQ2hpbGRyZW5gLlxuICAgICAqXG4gICAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cyBOZXN0ZWQgY2hpbGQgZWxlbWVudCBtYXBzLlxuICAgICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICAgKiBAZmluYWxcbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgX3VwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAobmV4dE5lc3RlZENoaWxkcmVuRWxlbWVudHMsIHRyYW5zYWN0aW9uLCBjb250ZXh0KSB7XG4gICAgICB2YXIgcHJldkNoaWxkcmVuID0gdGhpcy5fcmVuZGVyZWRDaGlsZHJlbjtcbiAgICAgIHZhciBuZXh0Q2hpbGRyZW4gPSB0aGlzLl9yZWNvbmNpbGVyVXBkYXRlQ2hpbGRyZW4ocHJldkNoaWxkcmVuLCBuZXh0TmVzdGVkQ2hpbGRyZW5FbGVtZW50cywgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgICAgdGhpcy5fcmVuZGVyZWRDaGlsZHJlbiA9IG5leHRDaGlsZHJlbjtcbiAgICAgIGlmICghbmV4dENoaWxkcmVuICYmICFwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIG5hbWU7XG4gICAgICAvLyBgbmV4dEluZGV4YCB3aWxsIGluY3JlbWVudCBmb3IgZWFjaCBjaGlsZCBpbiBgbmV4dENoaWxkcmVuYCwgYnV0XG4gICAgICAvLyBgbGFzdEluZGV4YCB3aWxsIGJlIHRoZSBsYXN0IGluZGV4IHZpc2l0ZWQgaW4gYHByZXZDaGlsZHJlbmAuXG4gICAgICB2YXIgbGFzdEluZGV4ID0gMDtcbiAgICAgIHZhciBuZXh0SW5kZXggPSAwO1xuICAgICAgZm9yIChuYW1lIGluIG5leHRDaGlsZHJlbikge1xuICAgICAgICBpZiAoIW5leHRDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHZhciBwcmV2Q2hpbGQgPSBwcmV2Q2hpbGRyZW4gJiYgcHJldkNoaWxkcmVuW25hbWVdO1xuICAgICAgICB2YXIgbmV4dENoaWxkID0gbmV4dENoaWxkcmVuW25hbWVdO1xuICAgICAgICBpZiAocHJldkNoaWxkID09PSBuZXh0Q2hpbGQpIHtcbiAgICAgICAgICB0aGlzLm1vdmVDaGlsZChwcmV2Q2hpbGQsIG5leHRJbmRleCwgbGFzdEluZGV4KTtcbiAgICAgICAgICBsYXN0SW5kZXggPSBNYXRoLm1heChwcmV2Q2hpbGQuX21vdW50SW5kZXgsIGxhc3RJbmRleCk7XG4gICAgICAgICAgcHJldkNoaWxkLl9tb3VudEluZGV4ID0gbmV4dEluZGV4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChwcmV2Q2hpbGQpIHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBgbGFzdEluZGV4YCBiZWZvcmUgYF9tb3VudEluZGV4YCBnZXRzIHVuc2V0IGJ5IHVubW91bnRpbmcuXG4gICAgICAgICAgICBsYXN0SW5kZXggPSBNYXRoLm1heChwcmV2Q2hpbGQuX21vdW50SW5kZXgsIGxhc3RJbmRleCk7XG4gICAgICAgICAgICB0aGlzLl91bm1vdW50Q2hpbGQocHJldkNoaWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gVGhlIGNoaWxkIG11c3QgYmUgaW5zdGFudGlhdGVkIGJlZm9yZSBpdCdzIG1vdW50ZWQuXG4gICAgICAgICAgdGhpcy5fbW91bnRDaGlsZEJ5TmFtZUF0SW5kZXgobmV4dENoaWxkLCBuYW1lLCBuZXh0SW5kZXgsIHRyYW5zYWN0aW9uLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBuZXh0SW5kZXgrKztcbiAgICAgIH1cbiAgICAgIC8vIFJlbW92ZSBjaGlsZHJlbiB0aGF0IGFyZSBubyBsb25nZXIgcHJlc2VudC5cbiAgICAgIGZvciAobmFtZSBpbiBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKHByZXZDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiAhKG5leHRDaGlsZHJlbiAmJiBuZXh0Q2hpbGRyZW4uaGFzT3duUHJvcGVydHkobmFtZSkpKSB7XG4gICAgICAgICAgdGhpcy5fdW5tb3VudENoaWxkKHByZXZDaGlsZHJlbltuYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogVW5tb3VudHMgYWxsIHJlbmRlcmVkIGNoaWxkcmVuLiBUaGlzIHNob3VsZCBiZSB1c2VkIHRvIGNsZWFuIHVwIGNoaWxkcmVuXG4gICAgICogd2hlbiB0aGlzIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICB1bm1vdW50Q2hpbGRyZW46IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciByZW5kZXJlZENoaWxkcmVuID0gdGhpcy5fcmVuZGVyZWRDaGlsZHJlbjtcbiAgICAgIFJlYWN0Q2hpbGRSZWNvbmNpbGVyLnVubW91bnRDaGlsZHJlbihyZW5kZXJlZENoaWxkcmVuKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW4gPSBudWxsO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgc3VwcGxpZWQgaW5kZXguXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjaGlsZCBDb21wb25lbnQgdG8gbW92ZS5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdG9JbmRleCBEZXN0aW5hdGlvbiBpbmRleCBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGFzdEluZGV4IExhc3QgaW5kZXggdmlzaXRlZCBvZiB0aGUgc2libGluZ3Mgb2YgYGNoaWxkYC5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgbW92ZUNoaWxkOiBmdW5jdGlvbiAoY2hpbGQsIHRvSW5kZXgsIGxhc3RJbmRleCkge1xuICAgICAgLy8gSWYgdGhlIGluZGV4IG9mIGBjaGlsZGAgaXMgbGVzcyB0aGFuIGBsYXN0SW5kZXhgLCB0aGVuIGl0IG5lZWRzIHRvXG4gICAgICAvLyBiZSBtb3ZlZC4gT3RoZXJ3aXNlLCB3ZSBkbyBub3QgbmVlZCB0byBtb3ZlIGl0IGJlY2F1c2UgYSBjaGlsZCB3aWxsIGJlXG4gICAgICAvLyBpbnNlcnRlZCBvciBtb3ZlZCBiZWZvcmUgYGNoaWxkYC5cbiAgICAgIGlmIChjaGlsZC5fbW91bnRJbmRleCA8IGxhc3RJbmRleCkge1xuICAgICAgICBlbnF1ZXVlTW92ZSh0aGlzLl9yb290Tm9kZUlELCBjaGlsZC5fbW91bnRJbmRleCwgdG9JbmRleCk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjaGlsZCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1JlYWN0Q29tcG9uZW50fSBjaGlsZCBDb21wb25lbnQgdG8gY3JlYXRlLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtb3VudEltYWdlIE1hcmt1cCB0byBpbnNlcnQuXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIGNyZWF0ZUNoaWxkOiBmdW5jdGlvbiAoY2hpbGQsIG1vdW50SW1hZ2UpIHtcbiAgICAgIGVucXVldWVJbnNlcnRNYXJrdXAodGhpcy5fcm9vdE5vZGVJRCwgbW91bnRJbWFnZSwgY2hpbGQuX21vdW50SW5kZXgpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ2hpbGQgdG8gcmVtb3ZlLlxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICByZW1vdmVDaGlsZDogZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICBlbnF1ZXVlUmVtb3ZlKHRoaXMuX3Jvb3ROb2RlSUQsIGNoaWxkLl9tb3VudEluZGV4KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGlzIHRleHQgY29udGVudCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dENvbnRlbnQgVGV4dCBjb250ZW50IHRvIHNldC5cbiAgICAgKiBAcHJvdGVjdGVkXG4gICAgICovXG4gICAgc2V0VGV4dENvbnRlbnQ6IGZ1bmN0aW9uICh0ZXh0Q29udGVudCkge1xuICAgICAgZW5xdWV1ZVRleHRDb250ZW50KHRoaXMuX3Jvb3ROb2RlSUQsIHRleHRDb250ZW50KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGlzIG1hcmt1cCBzdHJpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWFya3VwIE1hcmt1cCB0byBzZXQuXG4gICAgICogQHByb3RlY3RlZFxuICAgICAqL1xuICAgIHNldE1hcmt1cDogZnVuY3Rpb24gKG1hcmt1cCkge1xuICAgICAgZW5xdWV1ZVNldE1hcmt1cCh0aGlzLl9yb290Tm9kZUlELCBtYXJrdXApO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBNb3VudHMgYSBjaGlsZCB3aXRoIHRoZSBzdXBwbGllZCBuYW1lLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBpcyBwYXJ0IG9mIGB1cGRhdGVDaGlsZHJlbmAgYW5kIGlzIGhlcmUgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ29tcG9uZW50IHRvIG1vdW50LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgdGhlIGNoaWxkLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGNoaWxkLlxuICAgICAqIEBwYXJhbSB7UmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbn0gdHJhbnNhY3Rpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIF9tb3VudENoaWxkQnlOYW1lQXRJbmRleDogZnVuY3Rpb24gKGNoaWxkLCBuYW1lLCBpbmRleCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICAgIC8vIElubGluZWQgZm9yIHBlcmZvcm1hbmNlLCBzZWUgYFJlYWN0SW5zdGFuY2VIYW5kbGVzLmNyZWF0ZVJlYWN0SURgLlxuICAgICAgdmFyIHJvb3RJRCA9IHRoaXMuX3Jvb3ROb2RlSUQgKyBuYW1lO1xuICAgICAgdmFyIG1vdW50SW1hZ2UgPSBSZWFjdFJlY29uY2lsZXIubW91bnRDb21wb25lbnQoY2hpbGQsIHJvb3RJRCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgICAgY2hpbGQuX21vdW50SW5kZXggPSBpbmRleDtcbiAgICAgIHRoaXMuY3JlYXRlQ2hpbGQoY2hpbGQsIG1vdW50SW1hZ2UpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBVbm1vdW50cyBhIHJlbmRlcmVkIGNoaWxkLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBpcyBwYXJ0IG9mIGB1cGRhdGVDaGlsZHJlbmAgYW5kIGlzIGhlcmUgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWFjdENvbXBvbmVudH0gY2hpbGQgQ29tcG9uZW50IHRvIHVubW91bnQuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBfdW5tb3VudENoaWxkOiBmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICAgICAgY2hpbGQuX21vdW50SW5kZXggPSBudWxsO1xuICAgIH1cblxuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RNdWx0aUNoaWxkO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdE11bHRpQ2hpbGQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 115 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactChildReconciler\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactReconciler = __webpack_require__(50);\n\nvar instantiateReactComponent = __webpack_require__(62);\nvar shouldUpdateReactComponent = __webpack_require__(67);\nvar traverseAllChildren = __webpack_require__(111);\nvar warning = __webpack_require__(25);\n\nfunction instantiateChild(childInstances, child, name) {\n // We found a component instance.\n var keyUnique = childInstances[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n }\n if (child != null && keyUnique) {\n childInstances[name] = instantiateReactComponent(child, null);\n }\n}\n\n/**\n * ReactChildReconciler provides helpers for initializing or updating a set of\n * children. Its output is suitable for passing it onto ReactMultiChild which\n * does diffed reordering and insertion.\n */\nvar ReactChildReconciler = {\n /**\n * Generates a \"mount image\" for each of the supplied children. In the case\n * of `ReactDOMComponent`, a mount image is a string of markup.\n *\n * @param {?object} nestedChildNodes Nested child maps.\n * @return {?object} A set of child instances.\n * @internal\n */\n instantiateChildren: function instantiateChildren(nestedChildNodes, transaction, context) {\n if (nestedChildNodes == null) {\n return null;\n }\n var childInstances = {};\n traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);\n return childInstances;\n },\n\n /**\n * Updates the rendered children and returns a new set of children.\n *\n * @param {?object} prevChildren Previously initialized set of children.\n * @param {?object} nextChildren Flat child element maps.\n * @param {ReactReconcileTransaction} transaction\n * @param {object} context\n * @return {?object} A new set of child instances.\n * @internal\n */\n updateChildren: function updateChildren(prevChildren, nextChildren, transaction, context) {\n // We currently don't have a way to track moves here but if we use iterators\n // instead of for..in we can zip the iterators and check if an item has\n // moved.\n // TODO: If nothing has changed, return the prevChildren object so that we\n // can quickly bailout if nothing has changed.\n if (!nextChildren && !prevChildren) {\n return null;\n }\n var name;\n for (name in nextChildren) {\n if (!nextChildren.hasOwnProperty(name)) {\n continue;\n }\n var prevChild = prevChildren && prevChildren[name];\n var prevElement = prevChild && prevChild._currentElement;\n var nextElement = nextChildren[name];\n if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {\n ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);\n nextChildren[name] = prevChild;\n } else {\n if (prevChild) {\n ReactReconciler.unmountComponent(prevChild, name);\n }\n // The child must be instantiated before it's mounted.\n var nextChildInstance = instantiateReactComponent(nextElement, null);\n nextChildren[name] = nextChildInstance;\n }\n }\n // Unmount children that are no longer present.\n for (name in prevChildren) {\n if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {\n ReactReconciler.unmountComponent(prevChildren[name]);\n }\n }\n return nextChildren;\n },\n\n /**\n * Unmounts all rendered children. This should be used to clean up children\n * when this component is unmounted.\n *\n * @param {?object} renderedChildren Previously initialized set of children.\n * @internal\n */\n unmountChildren: function unmountChildren(renderedChildren) {\n for (var name in renderedChildren) {\n if (renderedChildren.hasOwnProperty(name)) {\n var renderedChild = renderedChildren[name];\n ReactReconciler.unmountComponent(renderedChild);\n }\n }\n }\n\n};\n\nmodule.exports = ReactChildReconciler;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDaGlsZFJlY29uY2lsZXIuanM/YWI3OCJdLCJuYW1lcyI6WyJSZWFjdFJlY29uY2lsZXIiLCJyZXF1aXJlIiwiaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCIsInNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50IiwidHJhdmVyc2VBbGxDaGlsZHJlbiIsIndhcm5pbmciLCJpbnN0YW50aWF0ZUNoaWxkIiwiY2hpbGRJbnN0YW5jZXMiLCJjaGlsZCIsIm5hbWUiLCJrZXlVbmlxdWUiLCJ1bmRlZmluZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJSZWFjdENoaWxkUmVjb25jaWxlciIsImluc3RhbnRpYXRlQ2hpbGRyZW4iLCJuZXN0ZWRDaGlsZE5vZGVzIiwidHJhbnNhY3Rpb24iLCJjb250ZXh0IiwidXBkYXRlQ2hpbGRyZW4iLCJwcmV2Q2hpbGRyZW4iLCJuZXh0Q2hpbGRyZW4iLCJoYXNPd25Qcm9wZXJ0eSIsInByZXZDaGlsZCIsInByZXZFbGVtZW50IiwiX2N1cnJlbnRFbGVtZW50IiwibmV4dEVsZW1lbnQiLCJyZWNlaXZlQ29tcG9uZW50IiwidW5tb3VudENvbXBvbmVudCIsIm5leHRDaGlsZEluc3RhbmNlIiwidW5tb3VudENoaWxkcmVuIiwicmVuZGVyZWRDaGlsZHJlbiIsInJlbmRlcmVkQ2hpbGQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsa0JBQWtCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBdEI7O0FBRUEsSUFBSUMsNEJBQTRCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBaEM7QUFDQSxJQUFJRSw2QkFBNkIsbUJBQUFGLENBQVEsRUFBUixDQUFqQztBQUNBLElBQUlHLHNCQUFzQixtQkFBQUgsQ0FBUSxHQUFSLENBQTFCO0FBQ0Es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QWhDLENBQUosRUFBMkM7QUFDekMsWUFBSXdCLGdCQUFnQkQsaUJBQWlCdkIsSUFBakIsQ0FBcEI7QUFDQVQsd0JBQWdCNkIsZ0JBQWhCLENBQWlDSSxhQUFqQztBQUNEO0FBQ0Y7QUFDRjs7QUFoRndCLENBQTNCOztBQW9GQUMsT0FBT0MsT0FBUCxHQUFpQnBCLG9CQUFqQixDIiwiZmlsZSI6IjExNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdENoaWxkUmVjb25jaWxlclxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFJlY29uY2lsZXIgPSByZXF1aXJlKCcuL1JlYWN0UmVjb25jaWxlcicpO1xuXG52YXIgaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCA9IHJlcXVpcmUoJy4vaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9zaG91bGRVcGRhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIHRyYXZlcnNlQWxsQ2hpbGRyZW4gPSByZXF1aXJlKCcuL3RyYXZlcnNlQWxsQ2hpbGRyZW4nKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZUNoaWxkKGNoaWxkSW5zdGFuY2VzLCBjaGlsZCwgbmFtZSkge1xuICAvLyBXZSBmb3VuZCBhIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgdmFyIGtleVVuaXF1ZSA9IGNoaWxkSW5zdGFuY2VzW25hbWVdID09PSB1bmRlZmluZWQ7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoa2V5VW5pcXVlLCAnZmxhdHRlbkNoaWxkcmVuKC4uLik6IEVuY291bnRlcmVkIHR3byBjaGlsZHJlbiB3aXRoIHRoZSBzYW1lIGtleSwgJyArICdgJXNgLiBDaGlsZCBrZXlzIG11c3QgYmUgdW5pcXVlOyB3aGVuIHR3byBjaGlsZHJlbiBzaGFyZSBhIGtleSwgb25seSAnICsgJ3RoZSBmaXJzdCBjaGlsZCB3aWxsIGJlIHVzZWQuJywgbmFtZSkgOiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKGNoaWxkICE9IG51bGwgJiYga2V5VW5pcXVlKSB7XG4gICAgY2hpbGRJbnN0YW5jZXNbbmFtZV0gPSBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50KGNoaWxkLCBudWxsKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlYWN0Q2hpbGRSZWNvbmNpbGVyIHByb3ZpZGVzIGhlbHBlcnMgZm9yIGluaXRpYWxpemluZyBvciB1cGRhdGluZyBhIHNldCBvZlxuICogY2hpbGRyZW4uIEl0cyBvdXRwdXQgaXMgc3VpdGFibGUgZm9yIHBhc3NpbmcgaXQgb250byBSZWFjdE11bHRpQ2hpbGQgd2hpY2hcbiAqIGRvZXMgZGlmZmVkIHJlb3JkZXJpbmcgYW5kIGluc2VydGlvbi5cbiAqL1xudmFyIFJlYWN0Q2hpbGRSZWNvbmNpbGVyID0ge1xuICAvKipcbiAgICogR2VuZXJhdGVzIGEgXCJtb3VudCBpbWFnZVwiIGZvciBlYWNoIG9mIHRoZSBzdXBwbGllZCBjaGlsZHJlbi4gSW4gdGhlIGNhc2VcbiAgICogb2YgYFJlYWN0RE9NQ29tcG9uZW50YCwgYSBtb3VudCBpbWFnZSBpcyBhIHN0cmluZyBvZiBtYXJrdXAuXG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbmVzdGVkQ2hpbGROb2RlcyBOZXN0ZWQgY2hpbGQgbWFwcy5cbiAgICogQHJldHVybiB7P29iamVjdH0gQSBzZXQgb2YgY2hpbGQgaW5zdGFuY2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGluc3RhbnRpYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChuZXN0ZWRDaGlsZE5vZGVzLCB0cmFuc2FjdGlvbiwgY29udGV4dCkge1xuICAgIGlmIChuZXN0ZWRDaGlsZE5vZGVzID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB2YXIgY2hpbGRJbnN0YW5jZXMgPSB7fTtcbiAgICB0cmF2ZXJzZUFsbENoaWxkcmVuKG5lc3RlZENoaWxkTm9kZXMsIGluc3RhbnRpYXRlQ2hpbGQsIGNoaWxkSW5zdGFuY2VzKTtcbiAgICByZXR1cm4gY2hpbGRJbnN0YW5jZXM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHJlbmRlcmVkIGNoaWxkcmVuIGFuZCByZXR1cm5zIGEgbmV3IHNldCBvZiBjaGlsZHJlbi5cbiAgICpcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBwcmV2Q2hpbGRyZW4gUHJldmlvdXNseSBpbml0aWFsaXplZCBzZXQgb2YgY2hpbGRyZW4uXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbmV4dENoaWxkcmVuIEZsYXQgY2hpbGQgZWxlbWVudCBtYXBzLlxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZXh0XG4gICAqIEByZXR1cm4gez9vYmplY3R9IEEgbmV3IHNldCBvZiBjaGlsZCBpbnN0YW5jZXMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uIChwcmV2Q2hpbGRyZW4sIG5leHRDaGlsZHJlbiwgdHJhbnNhY3Rpb24sIGNvbnRleHQpIHtcbiAgICAvLyBXZSBjdXJyZW50bHkgZG9uJ3QgaGF2ZSBhIHdheSB0byB0cmFjayBtb3ZlcyBoZXJlIGJ1dCBpZiB3ZSB1c2UgaXRlcmF0b3JzXG4gICAgLy8gaW5zdGVhZCBvZiBmb3IuLmluIHdlIGNhbiB6aXAgdGhlIGl0ZXJhdG9ycyBhbmQgY2hlY2sgaWYgYW4gaXRlbSBoYXNcbiAgICAvLyBtb3ZlZC5cbiAgICAvLyBUT0RPOiBJZiBub3RoaW5nIGhhcyBjaGFuZ2VkLCByZXR1cm4gdGhlIHByZXZDaGlsZHJlbiBvYmplY3Qgc28gdGhhdCB3ZVxuICAgIC8vIGNhbiBxdWlja2x5IGJhaWxvdXQgaWYgbm90aGluZyBoYXMgY2hhbmdlZC5cbiAgICBpZiAoIW5leHRDaGlsZHJlbiAmJiAhcHJldkNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFyIG5hbWU7XG4gICAgZm9yIChuYW1lIGluIG5leHRDaGlsZHJlbikge1xuICAgICAgaWYgKCFuZXh0Q2hpbGRyZW4uaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB2YXIgcHJldkNoaWxkID0gcHJldkNoaWxkcmVuICYmIHByZXZDaGlsZHJlbltuYW1lXTtcbiAgICAgIHZhciBwcmV2RWxlbWVudCA9IHByZXZDaGlsZCAmJiBwcmV2Q2hpbGQuX2N1cnJlbnRFbGVtZW50O1xuICAgICAgdmFyIG5leHRFbGVtZW50ID0gbmV4dENoaWxkcmVuW25hbWVdO1xuICAgICAgaWYgKHByZXZDaGlsZCAhPSBudWxsICYmIHNob3VsZFVwZGF0ZVJlYWN0Q29tcG9uZW50KHByZXZFbGVtZW50LCBuZXh0RWxlbWVudCkpIHtcbiAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnJlY2VpdmVDb21wb25lbnQocHJldkNoaWxkLCBuZXh0RWxlbWVudCwgdHJhbnNhY3Rpb24sIGNvbnRleHQpO1xuICAgICAgICBuZXh0Q2hpbGRyZW5bbmFtZV0gPSBwcmV2Q2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJldkNoaWxkKSB7XG4gICAgICAgICAgUmVhY3RSZWNvbmNpbGVyLnVubW91bnRDb21wb25lbnQocHJldkNoaWxkLCBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGUgY2hpbGQgbXVzdCBiZSBpbnN0YW50aWF0ZWQgYmVmb3JlIGl0J3MgbW91bnRlZC5cbiAgICAgICAgdmFyIG5leHRDaGlsZEluc3RhbmNlID0gaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudChuZXh0RWxlbWVudCwgbnVsbCk7XG4gICAgICAgIG5leHRDaGlsZHJlbltuYW1lXSA9IG5leHRDaGlsZEluc3RhbmNlO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBVbm1vdW50IGNoaWxkcmVuIHRoYXQgYXJlIG5vIGxvbmdlciBwcmVzZW50LlxuICAgIGZvciAobmFtZSBpbiBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgIGlmIChwcmV2Q2hpbGRyZW4uaGFzT3duUHJvcGVydHkobmFtZSkgJiYgIShuZXh0Q2hpbGRyZW4gJiYgbmV4dENoaWxkcmVuLmhhc093blByb3BlcnR5KG5hbWUpKSkge1xuICAgICAgICBSZWFjdFJlY29uY2lsZXIudW5tb3VudENvbXBvbmVudChwcmV2Q2hpbGRyZW5bbmFtZV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dENoaWxkcmVuO1xuICB9LFxuXG4gIC8qKlxuICAgKiBVbm1vdW50cyBhbGwgcmVuZGVyZWQgY2hpbGRyZW4uIFRoaXMgc2hvdWxkIGJlIHVzZWQgdG8gY2xlYW4gdXAgY2hpbGRyZW5cbiAgICogd2hlbiB0aGlzIGNvbXBvbmVudCBpcyB1bm1vdW50ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gcmVuZGVyZWRDaGlsZHJlbiBQcmV2aW91c2x5IGluaXRpYWxpemVkIHNldCBvZiBjaGlsZHJlbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bm1vdW50Q2hpbGRyZW46IGZ1bmN0aW9uIChyZW5kZXJlZENoaWxkcmVuKSB7XG4gICAgZm9yICh2YXIgbmFtZSBpbiByZW5kZXJlZENoaWxkcmVuKSB7XG4gICAgICBpZiAocmVuZGVyZWRDaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xuICAgICAgICB2YXIgcmVuZGVyZWRDaGlsZCA9IHJlbmRlcmVkQ2hpbGRyZW5bbmFtZV07XG4gICAgICAgIFJlYWN0UmVjb25jaWxlci51bm1vdW50Q29tcG9uZW50KHJlbmRlcmVkQ2hpbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0Q2hpbGRSZWNvbmNpbGVyO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdENoaWxkUmVjb25jaWxlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 116 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule flattenChildren\n */\n\n'use strict';\n\nvar traverseAllChildren = __webpack_require__(111);\nvar warning = __webpack_require__(25);\n\n/**\n * @param {function} traverseContext Context passed through traversal.\n * @param {?ReactComponent} child React child component.\n * @param {!string} name String name of key path to child.\n */\nfunction flattenSingleChildIntoContext(traverseContext, child, name) {\n // We found a component instance.\n var result = traverseContext;\n var keyUnique = result[name] === undefined;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(keyUnique, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.', name) : undefined;\n }\n if (keyUnique && child != null) {\n result[name] = child;\n }\n}\n\n/**\n * Flattens children that are typically specified as `props.children`. Any null\n * children will not be included in the resulting object.\n * @return {!object} flattened children keyed by name.\n */\nfunction flattenChildren(children) {\n if (children == null) {\n return children;\n }\n var result = {};\n traverseAllChildren(children, flattenSingleChildIntoContext, result);\n return result;\n}\n\nmodule.exports = flattenChildren;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZmxhdHRlbkNoaWxkcmVuLmpzPzZhOWMiXSwibmFtZXMiOlsidHJhdmVyc2VBbGxDaGlsZHJlbiIsInJlcXVpcmUiLCJ3YXJuaW5nIiwiZmxhdHRlblNpbmdsZUNoaWxkSW50b0NvbnRleHQiLCJ0cmF2ZXJzZUNvbnRleHQiLCJjaGlsZCIsIm5hbWUiLCJyZXN1bHQiLCJrZXlVbmlxdWUiLCJ1bmRlZmluZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmbGF0dGVuQ2hpbGRyZW4iLCJjaGlsZHJlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLHNCQUFzQixtQkFBQUMsQ0FBUSxHQUFSLENBQTFCO0FBQ0EsSUFBSUMsVUFBVSxtQkFBQUQsQ0FBUSxFQUFSLENBQWQ7O0FBRUE7Ozs7O0FBS0EsU0FBU0UsNkJBQVQsQ0FBdUNDLGVBQXZDLEVBQXdEQyxLQUF4RCxFQUErREMsSUFBL0QsRUFBcUU7QUFDbkU7QUFDQSxNQUFJQyxTQUFTSCxlQUFiO0FBQ0EsTUFBSUksWUFBWUQsT0FBT0QsSUFBUCxNQUFpQkcsU0FBakM7QUFDQSxNQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNGLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1YsUUFBUU0sU0FBUixFQUFtQix1RUFBdUUsdUVBQXZFLEdBQWlKLCtCQUFwSyxFQUFxTUYsSUFBck0sQ0FBeEMsR0FBcVBHLFNBQXJQO0FBQ0Q7QUFDRCxNQUFJRCxhQUFhSCxTQUFTLElBQTFCLEVBQWdDO0FBQzlCRSxXQUFPRCxJQUFQLElBQWVELEtBQWY7QUFDRDtBQUNGOztBQUVEOzs7OztBQUtBLFNBQVNRLGVBQVQsQ0FBeUJDLFFBQXpCLEVBQW1DO0FBQ2pDLE1BQUlBLFlBQVksSUFBaEIsRUFBc0I7QUFDcEIsV0FBT0EsUUFBUDtBQUNEO0FBQ0QsTUFBSVAsU0FBUyxFQUFiO0FBQ0FQLHNCQUFvQmMsUUFBcEIsRUFBOEJYLDZCQUE5QixFQUE2REksTUFBN0Q7QUFDQSxTQUFPQSxNQUFQO0FBQ0Q7O0FBRURRLE9BQU9DLE9BQVAsR0FBaUJILGVBQWpCLEMiLCJmaWxlIjoiMTE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGZsYXR0ZW5DaGlsZHJlblxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHRyYXZlcnNlQWxsQ2hpbGRyZW4gPSByZXF1aXJlKCcuL3RyYXZlcnNlQWxsQ2hpbGRyZW4nKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG4vKipcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IHRyYXZlcnNlQ29udGV4dCBDb250ZXh0IHBhc3NlZCB0aHJvdWdoIHRyYXZlcnNhbC5cbiAqIEBwYXJhbSB7P1JlYWN0Q29tcG9uZW50fSBjaGlsZCBSZWFjdCBjaGlsZCBjb21wb25lbnQuXG4gKiBAcGFyYW0geyFzdHJpbmd9IG5hbWUgU3RyaW5nIG5hbWUgb2Yga2V5IHBhdGggdG8gY2hpbGQuXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW5TaW5nbGVDaGlsZEludG9Db250ZXh0KHRyYXZlcnNlQ29udGV4dCwgY2hpbGQsIG5hbWUpIHtcbiAgLy8gV2UgZm91bmQgYSBjb21wb25lbnQgaW5zdGFuY2UuXG4gIHZhciByZXN1bHQgPSB0cmF2ZXJzZUNvbnRleHQ7XG4gIHZhciBrZXlVbmlxdWUgPSByZXN1bHRbbmFtZV0gPT09IHVuZGVmaW5lZDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhrZXlVbmlxdWUsICdmbGF0dGVuQ2hpbGRyZW4oLi4uKTogRW5jb3VudGVyZWQgdHdvIGNoaWxkcmVuIHdpdGggdGhlIHNhbWUga2V5LCAnICsgJ2Alc2AuIENoaWxkIGtleXMgbXVzdCBiZSB1bmlxdWU7IHdoZW4gdHdvIGNoaWxkcmVuIHNoYXJlIGEga2V5LCBvbmx5ICcgKyAndGhlIGZpcnN0IGNoaWxkIHdpbGwgYmUgdXNlZC4nLCBuYW1lKSA6IHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoa2V5VW5pcXVlICYmIGNoaWxkICE9IG51bGwpIHtcbiAgICByZXN1bHRbbmFtZV0gPSBjaGlsZDtcbiAgfVxufVxuXG4vKipcbiAqIEZsYXR0ZW5zIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC4gQW55IG51bGxcbiAqIGNoaWxkcmVuIHdpbGwgbm90IGJlIGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgb2JqZWN0LlxuICogQHJldHVybiB7IW9iamVjdH0gZmxhdHRlbmVkIGNoaWxkcmVuIGtleWVkIGJ5IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGZsYXR0ZW5DaGlsZHJlbihjaGlsZHJlbikge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICB2YXIgcmVzdWx0ID0ge307XG4gIHRyYXZlcnNlQWxsQ2hpbGRyZW4oY2hpbGRyZW4sIGZsYXR0ZW5TaW5nbGVDaGlsZEludG9Db250ZXh0LCByZXN1bHQpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZsYXR0ZW5DaGlsZHJlbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZmxhdHRlbkNoaWxkcmVuLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 117 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule shallowEqual\n * @typechecks\n * \n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqual;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9zaGFsbG93RXF1YWwuanM/Y2FmOSJdLCJuYW1lcyI6WyJoYXNPd25Qcm9wZXJ0eSIsIk9iamVjdCIsInByb3RvdHlwZSIsInNoYWxsb3dFcXVhbCIsIm9iakEiLCJvYmpCIiwia2V5c0EiLCJrZXlzIiwia2V5c0IiLCJsZW5ndGgiLCJiSGFzT3duUHJvcGVydHkiLCJiaW5kIiwiaSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0FBYUE7Ozs7QUFFQSxJQUFJQSxpQkFBaUJDLE9BQU9DLFNBQVAsQ0FBaUJGLGNBQXRDOztBQUVBOzs7OztBQUtBLFNBQVNHLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCQyxJQUE1QixFQUFrQztBQUNoQyxNQUFJRCxTQUFTQyxJQUFiLEVBQW1CO0FBQ2pCLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUksUUFBT0QsSUFBUCx5Q0FBT0EsSUFBUCxPQUFnQixRQUFoQixJQUE0QkEsU0FBUyxJQUFyQyxJQUE2QyxRQUFPQyxJQUFQLHlDQUFPQSxJQUFQLE9BQWdCLFFBQTdELElBQXlFQSxTQUFTLElBQXRGLEVBQTRGO0FBQzFGLFdBQU8sS0FBUDtBQUNEOztBQUVELE1BQUlDLFFBQVFMLE9BQU9NLElBQVAsQ0FBWUgsSUFBWixDQUFaO0FBQ0EsTUFBSUksUUFBUVAsT0FBT00sSUFBUCxDQUFZRixJQUFaLENBQVo7O0FBRUEsTUFBSUMsTUFBTUcsTUFBTixLQUFpQkQsTUFBTUMsTUFBM0IsRUFBbUM7QUFDakMsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxNQUFJQyxrQkFBa0JWLGVBQWVXLElBQWYsQ0FBb0JOLElBQXBCLENBQXRCO0FBQ0EsT0FBSyxJQUFJTyxJQUFJLENBQWIsRUFBZ0JBLElBQUlOLE1BQU1HLE1BQTFCLEVBQWtDRyxHQUFsQyxFQUF1QztBQUNyQyxRQUFJLENBQUNGLGdCQUFnQkosTUFBTU0sQ0FBTixDQUFoQixDQUFELElBQThCUixLQUFLRSxNQUFNTSxDQUFOLENBQUwsTUFBbUJQLEtBQUtDLE1BQU1NLENBQU4sQ0FBTCxDQUFyRCxFQUFxRTtBQUNuRSxhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sSUFBUDtBQUNEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCWCxZQUFqQiIsImZpbGUiOiIxMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgc2hhbGxvd0VxdWFsXG4gKiBAdHlwZWNoZWNrc1xuICogXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFBlcmZvcm1zIGVxdWFsaXR5IGJ5IGl0ZXJhdGluZyB0aHJvdWdoIGtleXMgb24gYW4gb2JqZWN0IGFuZCByZXR1cm5pbmcgZmFsc2VcbiAqIHdoZW4gYW55IGtleSBoYXMgdmFsdWVzIHdoaWNoIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYmV0d2VlbiB0aGUgYXJndW1lbnRzLlxuICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZhbHVlcyBvZiBhbGwga2V5cyBhcmUgc3RyaWN0bHkgZXF1YWwuXG4gKi9cbmZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBLCBvYmpCKSB7XG4gIGlmIChvYmpBID09PSBvYmpCKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8IG9iakEgPT09IG51bGwgfHwgdHlwZW9mIG9iakIgIT09ICdvYmplY3QnIHx8IG9iakIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgdmFyIGtleXNCID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gVGVzdCBmb3IgQSdzIGtleXMgZGlmZmVyZW50IGZyb20gQi5cbiAgdmFyIGJIYXNPd25Qcm9wZXJ0eSA9IGhhc093blByb3BlcnR5LmJpbmQob2JqQik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5c0EubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIWJIYXNPd25Qcm9wZXJ0eShrZXlzQVtpXSkgfHwgb2JqQVtrZXlzQVtpXV0gIT09IG9iakJba2V5c0FbaV1dKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hhbGxvd0VxdWFsO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL3NoYWxsb3dFcXVhbC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 118 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactEventListener\n * @typechecks static-only\n */\n\n'use strict';\n\nvar EventListener = __webpack_require__(119);\nvar ExecutionEnvironment = __webpack_require__(9);\nvar PooledClass = __webpack_require__(56);\nvar ReactInstanceHandles = __webpack_require__(45);\nvar ReactMount = __webpack_require__(28);\nvar ReactUpdates = __webpack_require__(54);\n\nvar assign = __webpack_require__(39);\nvar getEventTarget = __webpack_require__(81);\nvar getUnboundedScrollPosition = __webpack_require__(120);\n\nvar DOCUMENT_FRAGMENT_NODE_TYPE = 11;\n\n/**\n * Finds the parent React component of `node`.\n *\n * @param {*} node\n * @return {?DOMEventTarget} Parent container, or `null` if the specified node\n * is not nested.\n */\nfunction findParent(node) {\n // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n // traversal, but caching is difficult to do correctly without using a\n // mutation observer to listen for all DOM changes.\n var nodeID = ReactMount.getID(node);\n var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);\n var container = ReactMount.findReactContainerForID(rootID);\n var parent = ReactMount.getFirstReactDOM(container);\n return parent;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {\n this.topLevelType = topLevelType;\n this.nativeEvent = nativeEvent;\n this.ancestors = [];\n}\nassign(TopLevelCallbackBookKeeping.prototype, {\n destructor: function destructor() {\n this.topLevelType = null;\n this.nativeEvent = null;\n this.ancestors.length = 0;\n }\n});\nPooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);\n\nfunction handleTopLevelImpl(bookKeeping) {\n // TODO: Re-enable event.path handling\n //\n // if (bookKeeping.nativeEvent.path && bookKeeping.nativeEvent.path.length > 1) {\n // // New browsers have a path attribute on native events\n // handleTopLevelWithPath(bookKeeping);\n // } else {\n // // Legacy browsers don't have a path attribute on native events\n // handleTopLevelWithoutPath(bookKeeping);\n // }\n\n void handleTopLevelWithPath; // temporarily unused\n handleTopLevelWithoutPath(bookKeeping);\n}\n\n// Legacy browsers don't have a path attribute on native events\nfunction handleTopLevelWithoutPath(bookKeeping) {\n var topLevelTarget = ReactMount.getFirstReactDOM(getEventTarget(bookKeeping.nativeEvent)) || window;\n\n // Loop through the hierarchy, in case there's any nested components.\n // It's important that we build the array of ancestors before calling any\n // event handlers, because event handlers can modify the DOM, leading to\n // inconsistencies with ReactMount's node cache. See #1105.\n var ancestor = topLevelTarget;\n while (ancestor) {\n bookKeeping.ancestors.push(ancestor);\n ancestor = findParent(ancestor);\n }\n\n for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n topLevelTarget = bookKeeping.ancestors[i];\n var topLevelTargetID = ReactMount.getID(topLevelTarget) || '';\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, topLevelTarget, topLevelTargetID, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\n// New browsers have a path attribute on native events\nfunction handleTopLevelWithPath(bookKeeping) {\n var path = bookKeeping.nativeEvent.path;\n var currentNativeTarget = path[0];\n var eventsFired = 0;\n for (var i = 0; i < path.length; i++) {\n var currentPathElement = path[i];\n if (currentPathElement.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE) {\n currentNativeTarget = path[i + 1];\n }\n // TODO: slow\n var reactParent = ReactMount.getFirstReactDOM(currentPathElement);\n if (reactParent === currentPathElement) {\n var currentPathElementID = ReactMount.getID(currentPathElement);\n var newRootID = ReactInstanceHandles.getReactRootIDFromNodeID(currentPathElementID);\n bookKeeping.ancestors.push(currentPathElement);\n\n var topLevelTargetID = ReactMount.getID(currentPathElement) || '';\n eventsFired++;\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, currentPathElement, topLevelTargetID, bookKeeping.nativeEvent, currentNativeTarget);\n\n // Jump to the root of this React render tree\n while (currentPathElementID !== newRootID) {\n i++;\n currentPathElement = path[i];\n currentPathElementID = ReactMount.getID(currentPathElement);\n }\n }\n }\n if (eventsFired === 0) {\n ReactEventListener._handleTopLevel(bookKeeping.topLevelType, window, '', bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));\n }\n}\n\nfunction scrollValueMonitor(cb) {\n var scrollPosition = getUnboundedScrollPosition(window);\n cb(scrollPosition);\n}\n\nvar ReactEventListener = {\n _enabled: true,\n _handleTopLevel: null,\n\n WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,\n\n setHandleTopLevel: function setHandleTopLevel(handleTopLevel) {\n ReactEventListener._handleTopLevel = handleTopLevel;\n },\n\n setEnabled: function setEnabled(enabled) {\n ReactEventListener._enabled = !!enabled;\n },\n\n isEnabled: function isEnabled() {\n return ReactEventListener._enabled;\n },\n\n /**\n * Traps top-level events by using event bubbling.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapBubbledEvent: function trapBubbledEvent(topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return null;\n }\n return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n /**\n * Traps a top-level event by using event capturing.\n *\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {string} handlerBaseName Event name (e.g. \"click\").\n * @param {object} handle Element on which to attach listener.\n * @return {?object} An object with a remove function which will forcefully\n * remove the listener.\n * @internal\n */\n trapCapturedEvent: function trapCapturedEvent(topLevelType, handlerBaseName, handle) {\n var element = handle;\n if (!element) {\n return null;\n }\n return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));\n },\n\n monitorScrollValue: function monitorScrollValue(refresh) {\n var callback = scrollValueMonitor.bind(null, refresh);\n EventListener.listen(window, 'scroll', callback);\n },\n\n dispatchEvent: function dispatchEvent(topLevelType, nativeEvent) {\n if (!ReactEventListener._enabled) {\n return;\n }\n\n var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);\n try {\n // Event queue being processed in the same cycle allows\n // `preventDefault`.\n ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);\n } finally {\n TopLevelCallbackBookKeeping.release(bookKeeping);\n }\n }\n};\n\nmodule.exports = ReactEventListener;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFdmVudExpc3RlbmVyLmpzPzMxZGIiXSwibmFtZXMiOlsiRXZlbnRMaXN0ZW5lciIsInJlcXVpcmUiLCJFeGVjdXRpb25FbnZpcm9ubWVudCIsIlBvb2xlZENsYXNzIiwiUmVhY3RJbnN0YW5jZUhhbmRsZXMiLCJSZWFjdE1vdW50IiwiUmVhY3RVcGRhdGVzIiwiYXNzaWduIiwiZ2V0RXZlbnRUYXJnZXQiLCJnZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbiIsIkRPQ1VNRU5UX0ZSQUdNRU5UX05PREVfVFlQRSIsImZpbmRQYXJlbnQiLCJub2RlIiwibm9kZUlEIiwiZ2V0SUQiLCJyb290SUQiLCJnZXRSZWFjdFJvb3RJREZyb21Ob2RlSUQiLCJjb250YWluZXIiLCJmaW5kUmVhY3RDb250YWluZXJGb3JJRCIsInBhcmVudCIsImdldEZpcnN0UmVhY3RET00iLCJUb3BMZXZlbENhbGxiYWNrQm9va0tlZXBpbmciLCJ0b3BMZXZlbFR5cGUiLCJuYXRpdmVFdmVudCIsImFuY2VzdG9ycyIsInByb3RvdHlwZSIsImRlc3RydWN0b3IiLCJsZW5ndGgiLCJhZGRQb29saW5nVG8iLCJ0d29Bcmd1bWVudFBvb2xlciIsImhhbmRsZVRvcExldmVsSW1wbCIsImJvb2tLZWVwaW5nIiwiaGFuZGxlVG9wTGV2ZWxXaXRoUGF0aCIsImhhbmRsZVRvcExldmVsV2l0aG91dFBhdGgiLCJ0b3BMZXZlbFRhcmdldCIsIndpbmRvdyIsImFuY2VzdG9yIiwicHVzaCIsImkiLCJ0b3BMZXZlbFRhcmdldElEIiwiUmVhY3RFdmVudExpc3RlbmVyIiwiX2hhbmRsZVRvcExldmVsIiwicGF0aCIsImN1cnJlbnROYXRpdmVUYXJnZXQiLCJldmVudHNGaXJlZCIsImN1cnJlbnRQYXRoRWxlbWVudCIsIm5vZGVUeXBlIiwicmVhY3RQYXJlbnQiLCJjdXJyZW50UGF0aEVsZW1lbnRJRCIsIm5ld1Jvb3RJRCIsInNjcm9sbFZhbHVlTW9uaXRvciIsImNiIiwic2Nyb2xsUG9zaXRpb24iLCJfZW5hYmxlZCIsIldJTkRPV19IQU5ETEUiLCJjYW5Vc2VET00iLCJzZXRIYW5kbGVUb3BMZXZlbCIsImhhbmRsZVRvcExldmVsIiwic2V0RW5hYmxlZCIsImVuYWJsZWQiLCJpc0VuYWJsZWQiLCJ0cmFwQnViYmxlZEV2ZW50IiwiaGFuZGxlckJhc2VOYW1lIiwiaGFuZGxlIiwiZWxlbWVudCIsImxpc3RlbiIsImRpc3BhdGNoRXZlbnQiLCJiaW5kIiwidHJhcENhcHR1cmVkRXZlbnQiLCJjYXB0dXJlIiwibW9uaXRvclNjcm9sbFZhbHVlIiwicmVmcmVzaCIsImNhbGxiYWNrIiwiZ2V0UG9vbGVkIiwiYmF0Y2hlZFVwZGF0ZXMiLCJyZWxlYXNlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGdCQUFnQixtQkFBQUMsQ0FBUSxHQUFSLENBQXBCO0FBQ0EsSUFBSUMsdUJBQXVCLG1CQUFBRCxDQUFRLENBQVIsQ0FBM0I7QUFDQSxJQUFJRSxjQUFjLG1CQUFBRixDQUFRLEVBQVIsQ0FBbEI7QUFDQSxJQUFJRyx1QkFBdUIsbUJBQUFILENBQVEsRUFBUixDQUEzQjtBQUNBLElBQUlJLGFBQWEsbUJBQUFKLENBQVEsRUFBUixDQUFqQjtBQUNBLElBQUlLLGVBQWUsbUJBQUFMLENBQVEsRUFBUixDQUFuQjs7QUFFQSxJQUFJTSxTQUFTLG1CQUFBTixDQUFRLEVBQVIsQ0FBYjtBQUNBLElBQUlPLGlCQUFpQixtQkFBQVAsQ0FBUSxFQUFSLENBQXJCO0FBQ0EsSUFBSVEsNkJBQTZCLG1CQUFBUixDQUFRLEdBQVIsQ0FBakM7O0FBRUEsSUFBSVMsOEJBQThCLEVBQWxDOztBQUVBOzs7Ozs7O0FBT0EsU0FBU0MsVUFBVCxDQUFvQkMsSUFBcEIsRUFBMEI7QUFDeEI7QUFDQTtBQUNBO0FBQ0EsTUFBSUMsU0FB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QUFjViw0QkFBNEJvRCxTQUE1QixDQUFzQ25ELFlBQXRDLEVBQW9EQyxXQUFwRCxDQUFsQjtBQUNBLFFBQUk7QUFDRjtBQUNBO0FBQ0FqQixtQkFBYW9FLGNBQWIsQ0FBNEI1QyxrQkFBNUIsRUFBZ0RDLFdBQWhEO0FBQ0QsS0FKRCxTQUlVO0FBQ1JWLGtDQUE0QnNELE9BQTVCLENBQW9DNUMsV0FBcEM7QUFDRDtBQUNGO0FBeEVzQixDQUF6Qjs7QUEyRUE2QyxPQUFPQyxPQUFQLEdBQWlCckMsa0JBQWpCIiwiZmlsZSI6IjExOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdEV2ZW50TGlzdGVuZXJcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRMaXN0ZW5lciA9IHJlcXVpcmUoJ2ZianMvbGliL0V2ZW50TGlzdGVuZXInKTtcbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2ZianMvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG52YXIgUG9vbGVkQ2xhc3MgPSByZXF1aXJlKCcuL1Bvb2xlZENsYXNzJyk7XG52YXIgUmVhY3RJbnN0YW5jZUhhbmRsZXMgPSByZXF1aXJlKCcuL1JlYWN0SW5zdGFuY2VIYW5kbGVzJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBnZXRFdmVudFRhcmdldCA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRUYXJnZXQnKTtcbnZhciBnZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVpcmUoJ2ZianMvbGliL2dldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uJyk7XG5cbnZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFX1RZUEUgPSAxMTtcblxuLyoqXG4gKiBGaW5kcyB0aGUgcGFyZW50IFJlYWN0IGNvbXBvbmVudCBvZiBgbm9kZWAuXG4gKlxuICogQHBhcmFtIHsqfSBub2RlXG4gKiBAcmV0dXJuIHs/RE9NRXZlbnRUYXJnZXR9IFBhcmVudCBjb250YWluZXIsIG9yIGBudWxsYCBpZiB0aGUgc3BlY2lmaWVkIG5vZGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgbm90IG5lc3RlZC5cbiAqL1xuZnVuY3Rpb24gZmluZFBhcmVudChub2RlKSB7XG4gIC8vIFRPRE86IEl0IG1heSBiZSBhIGdvb2QgaWRlYSB0byBjYWNoZSB0aGlzIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgRE9NXG4gIC8vIHRyYXZlcnNhbCwgYnV0IGNhY2hpbmcgaXMgZGlmZmljdWx0IHRvIGRvIGNvcnJlY3RseSB3aXRob3V0IHVzaW5nIGFcbiAgLy8gbXV0YXRpb24gb2JzZXJ2ZXIgdG8gbGlzdGVuIGZvciBhbGwgRE9NIGNoYW5nZXMuXG4gIHZhciBub2RlSUQgPSBSZWFjdE1vdW50LmdldElEKG5vZGUpO1xuICB2YXIgcm9vdElEID0gUmVhY3RJbnN0YW5jZUhhbmRsZXMuZ2V0UmVhY3RSb290SURGcm9tTm9kZUlEKG5vZGVJRCk7XG4gIHZhciBjb250YWluZXIgPSBSZWFjdE1vdW50LmZpbmRSZWFjdENvbnRhaW5lckZvcklEKHJvb3RJRCk7XG4gIHZhciBwYXJlbnQgPSBSZWFjdE1vdW50LmdldEZpcnN0UmVhY3RET00oY29udGFpbmVyKTtcbiAgcmV0dXJuIHBhcmVudDtcbn1cblxuLy8gVXNlZCB0byBzdG9yZSBhbmNlc3RvciBoaWVyYXJjaHkgaW4gdG9wIGxldmVsIGNhbGxiYWNrXG5mdW5jdGlvbiBUb3BMZXZlbENhbGxiYWNrQm9va0tlZXBpbmcodG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCkge1xuICB0aGlzLnRvcExldmVsVHlwZSA9IHRvcExldmVsVHlwZTtcbiAgdGhpcy5uYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICB0aGlzLmFuY2VzdG9ycyA9IFtdO1xufVxuYXNzaWduKFRvcExldmVsQ2FsbGJhY2tCb29rS2VlcGluZy5wcm90b3R5cGUsIHtcbiAgZGVzdHJ1Y3RvcjogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudG9wTGV2ZWxUeXBlID0gbnVsbDtcbiAgICB0aGlzLm5hdGl2ZUV2ZW50ID0gbnVsbDtcbiAgICB0aGlzLmFuY2VzdG9ycy5sZW5ndGggPSAwO1xuICB9XG59KTtcblBvb2xlZENsYXNzLmFkZFBvb2xpbmdUbyhUb3BMZXZlbENhbGxiYWNrQm9va0tlZXBpbmcsIFBvb2xlZENsYXNzLnR3b0FyZ3VtZW50UG9vbGVyKTtcblxuZnVuY3Rpb24gaGFuZGxlVG9wTGV2ZWxJbXBsKGJvb2tLZWVwaW5nKSB7XG4gIC8vIFRPRE86IFJlLWVuYWJsZSBldmVudC5wYXRoIGhhbmRsaW5nXG4gIC8vXG4gIC8vIGlmIChib29rS2VlcGluZy5uYXRpdmVFdmVudC5wYXRoICYmIGJvb2tLZWVwaW5nLm5hdGl2ZUV2ZW50LnBhdGgubGVuZ3RoID4gMSkge1xuICAvLyAgIC8vIE5ldyBicm93c2VycyBoYXZlIGEgcGF0aCBhdHRyaWJ1dGUgb24gbmF0aXZlIGV2ZW50c1xuICAvLyAgIGhhbmRsZVRvcExldmVsV2l0aFBhdGgoYm9va0tlZXBpbmcpO1xuICAvLyB9IGVsc2Uge1xuICAvLyAgIC8vIExlZ2FjeSBicm93c2VycyBkb24ndCBoYXZlIGEgcGF0aCBhdHRyaWJ1dGUgb24gbmF0aXZlIGV2ZW50c1xuICAvLyAgIGhhbmRsZVRvcExldmVsV2l0aG91dFBhdGgoYm9va0tlZXBpbmcpO1xuICAvLyB9XG5cbiAgdm9pZCBoYW5kbGVUb3BMZXZlbFdpdGhQYXRoOyAvLyB0ZW1wb3JhcmlseSB1bnVzZWRcbiAgaGFuZGxlVG9wTGV2ZWxXaXRob3V0UGF0aChib29rS2VlcGluZyk7XG59XG5cbi8vIExlZ2FjeSBicm93c2VycyBkb24ndCBoYXZlIGEgcGF0aCBhdHRyaWJ1dGUgb24gbmF0aXZlIGV2ZW50c1xuZnVuY3Rpb24gaGFuZGxlVG9wTGV2ZWxXaXRob3V0UGF0aChib29rS2VlcGluZykge1xuICB2YXIgdG9wTGV2ZWxUYXJnZXQgPSBSZWFjdE1vdW50LmdldEZpcnN0UmVhY3RET00oZ2V0RXZlbnRUYXJnZXQoYm9va0tlZXBpbmcubmF0aXZlRXZlbnQpKSB8fCB3aW5kb3c7XG5cbiAgLy8gTG9vcCB0aHJvdWdoIHRoZSBoaWVyYXJjaHksIGluIGNhc2UgdGhlcmUncyBhbnkgbmVzdGVkIGNvbXBvbmVudHMuXG4gIC8vIEl0J3MgaW1wb3J0YW50IHRoYXQgd2UgYnVpbGQgdGhlIGFycmF5IG9mIGFuY2VzdG9ycyBiZWZvcmUgY2FsbGluZyBhbnlcbiAgLy8gZXZlbnQgaGFuZGxlcnMsIGJlY2F1c2UgZXZlbnQgaGFuZGxlcnMgY2FuIG1vZGlmeSB0aGUgRE9NLCBsZWFkaW5nIHRvXG4gIC8vIGluY29uc2lzdGVuY2llcyB3aXRoIFJlYWN0TW91bnQncyBub2RlIGNhY2hlLiBTZWUgIzExMDUuXG4gIHZhciBhbmNlc3RvciA9IHRvcExldmVsVGFyZ2V0O1xuICB3aGlsZSAoYW5jZXN0b3IpIHtcbiAgICBib29rS2VlcGluZy5hbmNlc3RvcnMucHVzaChhbmNlc3Rvcik7XG4gICAgYW5jZXN0b3IgPSBmaW5kUGFyZW50KGFuY2VzdG9yKTtcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYm9va0tlZXBpbmcuYW5jZXN0b3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgdG9wTGV2ZWxUYXJnZXQgPSBib29rS2VlcGluZy5hbmNlc3RvcnNbaV07XG4gICAgdmFyIHRvcExldmVsVGFyZ2V0SUQgPSBSZWFjdE1vdW50LmdldElEKHRvcExldmVsVGFyZ2V0KSB8fCAnJztcbiAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2hhbmRsZVRvcExldmVsKGJvb2tLZWVwaW5nLnRvcExldmVsVHlwZSwgdG9wTGV2ZWxUYXJnZXQsIHRvcExldmVsVGFyZ2V0SUQsIGJvb2tLZWVwaW5nLm5hdGl2ZUV2ZW50LCBnZXRFdmVudFRhcmdldChib29rS2VlcGluZy5uYXRpdmVFdmVudCkpO1xuICB9XG59XG5cbi8vIE5ldyBicm93c2VycyBoYXZlIGEgcGF0aCBhdHRyaWJ1dGUgb24gbmF0aXZlIGV2ZW50c1xuZnVuY3Rpb24gaGFuZGxlVG9wTGV2ZWxXaXRoUGF0aChib29rS2VlcGluZykge1xuICB2YXIgcGF0aCA9IGJvb2tLZWVwaW5nLm5hdGl2ZUV2ZW50LnBhdGg7XG4gIHZhciBjdXJyZW50TmF0aXZlVGFyZ2V0ID0gcGF0aFswXTtcbiAgdmFyIGV2ZW50c0ZpcmVkID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN1cnJlbnRQYXRoRWxlbWVudCA9IHBhdGhbaV07XG4gICAgaWYgKGN1cnJlbnRQYXRoRWxlbWVudC5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfRlJBR01FTlRfTk9ERV9UWVBFKSB7XG4gICAgICBjdXJyZW50TmF0aXZlVGFyZ2V0ID0gcGF0aFtpICsgMV07XG4gICAgfVxuICAgIC8vIFRPRE86IHNsb3dcbiAgICB2YXIgcmVhY3RQYXJlbnQgPSBSZWFjdE1vdW50LmdldEZpcnN0UmVhY3RET00oY3VycmVudFBhdGhFbGVtZW50KTtcbiAgICBpZiAocmVhY3RQYXJlbnQgPT09IGN1cnJlbnRQYXRoRWxlbWVudCkge1xuICAgICAgdmFyIGN1cnJlbnRQYXRoRWxlbWVudElEID0gUmVhY3RNb3VudC5nZXRJRChjdXJyZW50UGF0aEVsZW1lbnQpO1xuICAgICAgdmFyIG5ld1Jvb3RJRCA9IFJlYWN0SW5zdGFuY2VIYW5kbGVzLmdldFJlYWN0Um9vdElERnJvbU5vZGVJRChjdXJyZW50UGF0aEVsZW1lbnRJRCk7XG4gICAgICBib29rS2VlcGluZy5hbmNlc3RvcnMucHVzaChjdXJyZW50UGF0aEVsZW1lbnQpO1xuXG4gICAgICB2YXIgdG9wTGV2ZWxUYXJnZXRJRCA9IFJlYWN0TW91bnQuZ2V0SUQoY3VycmVudFBhdGhFbGVtZW50KSB8fCAnJztcbiAgICAgIGV2ZW50c0ZpcmVkKys7XG4gICAgICBSZWFjdEV2ZW50TGlzdGVuZXIuX2hhbmRsZVRvcExldmVsKGJvb2tLZWVwaW5nLnRvcExldmVsVHlwZSwgY3VycmVudFBhdGhFbGVtZW50LCB0b3BMZXZlbFRhcmdldElELCBib29rS2VlcGluZy5uYXRpdmVFdmVudCwgY3VycmVudE5hdGl2ZVRhcmdldCk7XG5cbiAgICAgIC8vIEp1bXAgdG8gdGhlIHJvb3Qgb2YgdGhpcyBSZWFjdCByZW5kZXIgdHJlZVxuICAgICAgd2hpbGUgKGN1cnJlbnRQYXRoRWxlbWVudElEICE9PSBuZXdSb290SUQpIHtcbiAgICAgICAgaSsrO1xuICAgICAgICBjdXJyZW50UGF0aEVsZW1lbnQgPSBwYXRoW2ldO1xuICAgICAgICBjdXJyZW50UGF0aEVsZW1lbnRJRCA9IFJlYWN0TW91bnQuZ2V0SUQoY3VycmVudFBhdGhFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGV2ZW50c0ZpcmVkID09PSAwKSB7XG4gICAgUmVhY3RFdmVudExpc3RlbmVyLl9oYW5kbGVUb3BMZXZlbChib29rS2VlcGluZy50b3BMZXZlbFR5cGUsIHdpbmRvdywgJycsIGJvb2tLZWVwaW5nLm5hdGl2ZUV2ZW50LCBnZXRFdmVudFRhcmdldChib29rS2VlcGluZy5uYXRpdmVFdmVudCkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNjcm9sbFZhbHVlTW9uaXRvcihjYikge1xuICB2YXIgc2Nyb2xsUG9zaXRpb24gPSBnZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbih3aW5kb3cpO1xuICBjYihzY3JvbGxQb3NpdGlvbik7XG59XG5cbnZhciBSZWFjdEV2ZW50TGlzdGVuZXIgPSB7XG4gIF9lbmFibGVkOiB0cnVlLFxuICBfaGFuZGxlVG9wTGV2ZWw6IG51bGwsXG5cbiAgV0lORE9XX0hBTkRMRTogRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NID8gd2luZG93IDogbnVsbCxcblxuICBzZXRIYW5kbGVUb3BMZXZlbDogZnVuY3Rpb24gKGhhbmRsZVRvcExldmVsKSB7XG4gICAgUmVhY3RFdmVudExpc3RlbmVyLl9oYW5kbGVUb3BMZXZlbCA9IGhhbmRsZVRvcExldmVsO1xuICB9LFxuXG4gIHNldEVuYWJsZWQ6IGZ1bmN0aW9uIChlbmFibGVkKSB7XG4gICAgUmVhY3RFdmVudExpc3RlbmVyLl9lbmFibGVkID0gISFlbmFibGVkO1xuICB9LFxuXG4gIGlzRW5hYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBSZWFjdEV2ZW50TGlzdGVuZXIuX2VuYWJsZWQ7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFRyYXBzIHRvcC1sZXZlbCBldmVudHMgYnkgdXNpbmcgZXZlbnQgYnViYmxpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFR5cGUgUmVjb3JkIGZyb20gYEV2ZW50Q29uc3RhbnRzYC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJCYXNlTmFtZSBFdmVudCBuYW1lIChlLmcuIFwiY2xpY2tcIikuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBoYW5kbGUgRWxlbWVudCBvbiB3aGljaCB0byBhdHRhY2ggbGlzdGVuZXIuXG4gICAqIEByZXR1cm4gez9vYmplY3R9IEFuIG9iamVjdCB3aXRoIGEgcmVtb3ZlIGZ1bmN0aW9uIHdoaWNoIHdpbGwgZm9yY2VmdWxseVxuICAgKiAgICAgICAgICAgICAgICAgIHJlbW92ZSB0aGUgbGlzdGVuZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdHJhcEJ1YmJsZWRFdmVudDogZnVuY3Rpb24gKHRvcExldmVsVHlwZSwgaGFuZGxlckJhc2VOYW1lLCBoYW5kbGUpIHtcbiAgICB2YXIgZWxlbWVudCA9IGhhbmRsZTtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gRXZlbnRMaXN0ZW5lci5saXN0ZW4oZWxlbWVudCwgaGFuZGxlckJhc2VOYW1lLCBSZWFjdEV2ZW50TGlzdGVuZXIuZGlzcGF0Y2hFdmVudC5iaW5kKG51bGwsIHRvcExldmVsVHlwZSkpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUcmFwcyBhIHRvcC1sZXZlbCBldmVudCBieSB1c2luZyBldmVudCBjYXB0dXJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFR5cGUgUmVjb3JkIGZyb20gYEV2ZW50Q29uc3RhbnRzYC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGhhbmRsZXJCYXNlTmFtZSBFdmVudCBuYW1lIChlLmcuIFwiY2xpY2tcIikuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBoYW5kbGUgRWxlbWVudCBvbiB3aGljaCB0byBhdHRhY2ggbGlzdGVuZXIuXG4gICAqIEByZXR1cm4gez9vYmplY3R9IEFuIG9iamVjdCB3aXRoIGEgcmVtb3ZlIGZ1bmN0aW9uIHdoaWNoIHdpbGwgZm9yY2VmdWxseVxuICAgKiAgICAgICAgICAgICAgICAgIHJlbW92ZSB0aGUgbGlzdGVuZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdHJhcENhcHR1cmVkRXZlbnQ6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIGhhbmRsZXJCYXNlTmFtZSwgaGFuZGxlKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBoYW5kbGU7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIEV2ZW50TGlzdGVuZXIuY2FwdHVyZShlbGVtZW50LCBoYW5kbGVyQmFzZU5hbWUsIFJlYWN0RXZlbnRMaXN0ZW5lci5kaXNwYXRjaEV2ZW50LmJpbmQobnVsbCwgdG9wTGV2ZWxUeXBlKSk7XG4gIH0sXG5cbiAgbW9uaXRvclNjcm9sbFZhbHVlOiBmdW5jdGlvbiAocmVmcmVzaCkge1xuICAgIHZhciBjYWxsYmFjayA9IHNjcm9sbFZhbHVlTW9uaXRvci5iaW5kKG51bGwsIHJlZnJlc2gpO1xuICAgIEV2ZW50TGlzdGVuZXIubGlzdGVuKHdpbmRvdywgJ3Njcm9sbCcsIGNhbGxiYWNrKTtcbiAgfSxcblxuICBkaXNwYXRjaEV2ZW50OiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCBuYXRpdmVFdmVudCkge1xuICAgIGlmICghUmVhY3RFdmVudExpc3RlbmVyLl9lbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGJvb2tLZWVwaW5nID0gVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLmdldFBvb2xlZCh0b3BMZXZlbFR5cGUsIG5hdGl2ZUV2ZW50KTtcbiAgICB0cnkge1xuICAgICAgLy8gRXZlbnQgcXVldWUgYmVpbmcgcHJvY2Vzc2VkIGluIHRoZSBzYW1lIGN5Y2xlIGFsbG93c1xuICAgICAgLy8gYHByZXZlbnREZWZhdWx0YC5cbiAgICAgIFJlYWN0VXBkYXRlcy5iYXRjaGVkVXBkYXRlcyhoYW5kbGVUb3BMZXZlbEltcGwsIGJvb2tLZWVwaW5nKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgVG9wTGV2ZWxDYWxsYmFja0Jvb2tLZWVwaW5nLnJlbGVhc2UoYm9va0tlZXBpbmcpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdEV2ZW50TGlzdGVuZXI7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RXZlbnRMaXN0ZW5lci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 119 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @providesModule EventListener\n * @typechecks\n */\n\n'use strict';\n\nvar emptyFunction = __webpack_require__(15);\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9FdmVudExpc3RlbmVyLmpzPzQ1ODQiXSwibmFtZXMiOlsiZW1wdHlGdW5jdGlvbiIsInJlcXVpcmUiLCJFdmVudExpc3RlbmVyIiwibGlzdGVuIiwidGFyZ2V0IiwiZXZlbnRUeXBlIiwiY2FsbGJhY2siLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImF0dGFjaEV2ZW50IiwiZGV0YWNoRXZlbnQiLCJjYXB0dXJlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uc29sZSIsImVycm9yIiwicmVnaXN0ZXJEZWZhdWx0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkE7O0FBRUEsSUFBSUEsZ0JBQWdCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBcEI7O0FBRUE7Ozs7QUFJQSxJQUFJQyxnQkFBZ0I7QUFDbEI7Ozs7Ozs7O0FBUUFDLFVBQVEsZ0JBQVVDLE1BQVYsRUFBa0JDLFNBQWxCLEVBQTZCQyxRQUE3QixFQUF1QztBQUM3QyxRQUFJRixPQUFPRyxnQkFBWCxFQUE2QjtBQUMzQkgsYUFBT0csZ0JBQVAsQ0FBd0JGLFNBQXhCLEVBQW1DQyxRQUFuQyxFQUE2QyxLQUE3QztBQUNBLGFBQU87QUFDTEUsZ0JBQVEsa0JBQVk7QUFDbEJKLGlCQUFPSyxtQkFBUCxDQUEyQkosU0FBM0IsRUFBc0NDLFFBQXRDLEVBQWdELEtBQWhEO0FBQ0Q7QUFISSxPQUFQO0FBS0QsS0FQRCxNQU9PLElBQUlGLE9BQU9NLFdBQVgsRUFBd0I7QUFDN0JOLGFBQU9NLFdBQVAsQ0FBbUIsT0FBT0wsU0FBMUIsRUFBcUNDLFFBQXJDO0FBQ0EsYUFBTztBQUNMRSxnQkFBUSxrQkFBWTtBQUNsQkosaUJBQU9PLFdBQVAsQ0FBbUIsT0FBT04sU0FBMUIsRUFBcUNDLFFBQXJDO0FBQ0Q7QUFISSxPQUFQO0FBS0Q7QUFDRixHQXpCaUI7O0FBMkJsQjs7Ozs7Ozs7QUFRQU0sV0FBUyxpQkFBVVIsTUFBVixFQUFrQkMsU0FBbEIsRUFBNkJDLFFBQTdCLEVBQXVDO0FBQzlDLFFBQUlGLE9BQU9HLGdCQUFYLEVBQTZCO0FBQzNCSCxhQUFPRyxnQkFBUCxDQUF3QkYsU0FBeEIsRUFBbUNDLFFBQW5DLEVBQTZDLElBQTdDO0FBQ0EsYUFBTztBQUNMRSxnQkFBUSxrQkFBWTtBQUNsQkosaUJBQU9LLG1CQUFQLENBQTJCSixTQUEzQixFQUFzQ0MsUUFBdEMsRUFBZ0QsSUFBaEQ7QUFDRDtBQUhJLE9BQVA7QUFLRCxLQVBELE1BT087QUFDTCxVQUFJTyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNDLGdCQUFRQyxLQUFSLENBQWMsaUVBQWlFLG9FQUFqRSxHQUF3SSwrQkFBdEo7QUFDRDtBQUNELGFBQU87QUFDTFQsZ0JBQVFSO0FBREgsT0FBUDtBQUdEO0FBQ0YsR0FuRGlCOztBQXFEbEJrQixtQkFBaUIsMkJBQVksQ0FBRTtBQXJEYixDQUFwQjs7QUF3REFDLE9BQU9DLE9BQVAsR0FBaUJsQixhQUFqQixDIiwiZmlsZSI6IjExOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgRXZlbnRMaXN0ZW5lclxuICogQHR5cGVjaGVja3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9lbXB0eUZ1bmN0aW9uJyk7XG5cbi8qKlxuICogVXBzdHJlYW0gdmVyc2lvbiBvZiBldmVudCBsaXN0ZW5lci4gRG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgc3BlY2lmaWNcbiAqIG5hdHVyZSBvZiBwbGF0Zm9ybS5cbiAqL1xudmFyIEV2ZW50TGlzdGVuZXIgPSB7XG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRE9NIGV2ZW50cyBkdXJpbmcgdGhlIGJ1YmJsZSBwaGFzZS5cbiAgICpcbiAgICogQHBhcmFtIHtET01FdmVudFRhcmdldH0gdGFyZ2V0IERPTSBlbGVtZW50IHRvIHJlZ2lzdGVyIGxpc3RlbmVyIG9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRUeXBlIEV2ZW50IHR5cGUsIGUuZy4gJ2NsaWNrJyBvciAnbW91c2VvdmVyJy5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGJhY2sgZnVuY3Rpb24uXG4gICAqIEByZXR1cm4ge29iamVjdH0gT2JqZWN0IHdpdGggYSBgcmVtb3ZlYCBtZXRob2QuXG4gICAqL1xuICBsaXN0ZW46IGZ1bmN0aW9uICh0YXJnZXQsIGV2ZW50VHlwZSwgY2FsbGJhY2spIHtcbiAgICBpZiAodGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgY2FsbGJhY2ssIGZhbHNlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgY2FsbGJhY2ssIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRhcmdldC5hdHRhY2hFdmVudCkge1xuICAgICAgdGFyZ2V0LmF0dGFjaEV2ZW50KCdvbicgKyBldmVudFR5cGUsIGNhbGxiYWNrKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlbW92ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRhcmdldC5kZXRhY2hFdmVudCgnb24nICsgZXZlbnRUeXBlLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gRE9NIGV2ZW50cyBkdXJpbmcgdGhlIGNhcHR1cmUgcGhhc2UuXG4gICAqXG4gICAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRhcmdldCBET00gZWxlbWVudCB0byByZWdpc3RlciBsaXN0ZW5lciBvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50VHlwZSBFdmVudCB0eXBlLCBlLmcuICdjbGljaycgb3IgJ21vdXNlb3ZlcicuXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCB3aXRoIGEgYHJlbW92ZWAgbWV0aG9kLlxuICAgKi9cbiAgY2FwdHVyZTogZnVuY3Rpb24gKHRhcmdldCwgZXZlbnRUeXBlLCBjYWxsYmFjaykge1xuICAgIGlmICh0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBjYWxsYmFjaywgdHJ1ZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZW1vdmU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGNhbGxiYWNrLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignQXR0ZW1wdGVkIHRvIGxpc3RlbiB0byBldmVudHMgZHVyaW5nIHRoZSBjYXB0dXJlIHBoYXNlIG9uIGEgJyArICdicm93c2VyIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgY2FwdHVyZSBwaGFzZS4gWW91ciBhcHBsaWNhdGlvbiAnICsgJ3dpbGwgbm90IHJlY2VpdmUgc29tZSBldmVudHMuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZW1vdmU6IGVtcHR5RnVuY3Rpb25cbiAgICAgIH07XG4gICAgfVxuICB9LFxuXG4gIHJlZ2lzdGVyRGVmYXVsdDogZnVuY3Rpb24gKCkge31cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRMaXN0ZW5lcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9FdmVudExpc3RlbmVyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 120 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getUnboundedScrollPosition\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Gets the scroll position of the supplied element or window.\n *\n * The return values are unbounded, unlike `getScrollPosition`. This means they\n * may be negative or exceed the element boundaries (which is possible using\n * inertial scrolling).\n *\n * @param {DOMWindow|DOMElement} scrollable\n * @return {object} Map with `x` and `y` keys.\n */\n\nfunction getUnboundedScrollPosition(scrollable) {\n if (scrollable === window) {\n return {\n x: window.pageXOffset || document.documentElement.scrollLeft,\n y: window.pageYOffset || document.documentElement.scrollTop\n };\n }\n return {\n x: scrollable.scrollLeft,\n y: scrollable.scrollTop\n };\n}\n\nmodule.exports = getUnboundedScrollPosition;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9nZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbi5qcz81NjdmIl0sIm5hbWVzIjpbImdldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uIiwic2Nyb2xsYWJsZSIsIndpbmRvdyIsIngiLCJwYWdlWE9mZnNldCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iiwic2Nyb2xsTGVmdCIsInkiLCJwYWdlWU9mZnNldCIsInNjcm9sbFRvcCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7Ozs7Ozs7Ozs7QUFVQSxTQUFTQSwwQkFBVCxDQUFvQ0MsVUFBcEMsRUFBZ0Q7QUFDOUMsTUFBSUEsZUFBZUMsTUFBbkIsRUFBMkI7QUFDekIsV0FBTztBQUNMQyxTQUFHRCxPQUFPRSxXQUFQLElBQXNCQyxTQUFTQyxlQUFULENBQXlCQyxVQUQ3QztBQUVMQyxTQUFHTixPQUFPTyxXQUFQLElBQXNCSixTQUFTQyxlQUFULENBQXlCSTtBQUY3QyxLQUFQO0FBSUQ7QUFDRCxTQUFPO0FBQ0xQLE9BQUdGLFdBQVdNLFVBRFQ7QUFFTEMsT0FBR1AsV0FBV1M7QUFGVCxHQUFQO0FBSUQ7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUJaLDBCQUFqQiIsImZpbGUiOiIxMjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgZ2V0VW5ib3VuZGVkU2Nyb2xsUG9zaXRpb25cbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEdldHMgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgc3VwcGxpZWQgZWxlbWVudCBvciB3aW5kb3cuXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZXMgYXJlIHVuYm91bmRlZCwgdW5saWtlIGBnZXRTY3JvbGxQb3NpdGlvbmAuIFRoaXMgbWVhbnMgdGhleVxuICogbWF5IGJlIG5lZ2F0aXZlIG9yIGV4Y2VlZCB0aGUgZWxlbWVudCBib3VuZGFyaWVzICh3aGljaCBpcyBwb3NzaWJsZSB1c2luZ1xuICogaW5lcnRpYWwgc2Nyb2xsaW5nKS5cbiAqXG4gKiBAcGFyYW0ge0RPTVdpbmRvd3xET01FbGVtZW50fSBzY3JvbGxhYmxlXG4gKiBAcmV0dXJuIHtvYmplY3R9IE1hcCB3aXRoIGB4YCBhbmQgYHlgIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGdldFVuYm91bmRlZFNjcm9sbFBvc2l0aW9uKHNjcm9sbGFibGUpIHtcbiAgaWYgKHNjcm9sbGFibGUgPT09IHdpbmRvdykge1xuICAgIHJldHVybiB7XG4gICAgICB4OiB3aW5kb3cucGFnZVhPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsXG4gICAgICB5OiB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB4OiBzY3JvbGxhYmxlLnNjcm9sbExlZnQsXG4gICAgeTogc2Nyb2xsYWJsZS5zY3JvbGxUb3BcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9nZXRVbmJvdW5kZWRTY3JvbGxQb3NpdGlvbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 121 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInjection\n */\n\n'use strict';\n\nvar DOMProperty = __webpack_require__(23);\nvar EventPluginHub = __webpack_require__(31);\nvar ReactComponentEnvironment = __webpack_require__(64);\nvar ReactClass = __webpack_require__(122);\nvar ReactEmptyComponent = __webpack_require__(68);\nvar ReactBrowserEventEmitter = __webpack_require__(29);\nvar ReactNativeComponent = __webpack_require__(69);\nvar ReactPerf = __webpack_require__(18);\nvar ReactRootIndex = __webpack_require__(46);\nvar ReactUpdates = __webpack_require__(54);\n\nvar ReactInjection = {\n Component: ReactComponentEnvironment.injection,\n Class: ReactClass.injection,\n DOMProperty: DOMProperty.injection,\n EmptyComponent: ReactEmptyComponent.injection,\n EventPluginHub: EventPluginHub.injection,\n EventEmitter: ReactBrowserEventEmitter.injection,\n NativeComponent: ReactNativeComponent.injection,\n Perf: ReactPerf.injection,\n RootIndex: ReactRootIndex.injection,\n Updates: ReactUpdates.injection\n};\n\nmodule.exports = ReactInjection;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RJbmplY3Rpb24uanM/MDdhNSJdLCJuYW1lcyI6WyJET01Qcm9wZXJ0eSIsInJlcXVpcmUiLCJFdmVudFBsdWdpbkh1YiIsIlJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQiLCJSZWFjdENsYXNzIiwiUmVhY3RFbXB0eUNvbXBvbmVudCIsIlJlYWN0QnJvd3NlckV2ZW50RW1pdHRlciIsIlJlYWN0TmF0aXZlQ29tcG9uZW50IiwiUmVhY3RQZXJmIiwiUmVhY3RSb290SW5kZXgiLCJSZWFjdFVwZGF0ZXMiLCJSZWFjdEluamVjdGlvbiIsIkNvbXBvbmVudCIsImluamVjdGlvbiIsIkNsYXNzIiwiRW1wdHlDb21wb25lbnQiLCJFdmVudEVtaXR0ZXIiLCJOYXRpdmVDb21wb25lbnQiLCJQZXJmIiwiUm9vdEluZGV4IiwiVXBkYXRlcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLGNBQWMsbUJBQUFDLENBQVEsRUFBUixDQUFsQjtBQUNBLElBQUlDLGlCQUFpQixtQkFBQUQsQ0FBUSxFQUFSLENBQXJCO0FBQ0EsSUFBSUUsNEJBQTRCLG1CQUFBRixDQUFRLEVBQVIsQ0FBaEM7QUFDQSxJQUFJRyxhQUFhLG1CQUFBSCxDQUFRLEdBQVIsQ0FBakI7QUFDQSxJQUFJSSxzQkFBc0IsbUJBQUFKLENBQVEsRUFBUixDQUExQjtBQUNBLElBQUlLLDJCQUEyQixtQkFBQUwsQ0FBUSxFQUFSLENBQS9CO0FBQ0EsSUFBSU0sdUJBQXVCLG1CQUFBTixDQUFRLEVBQVIsQ0FBM0I7QUFDQSxJQUFJTyxZQUFZLG1CQUFBUCxDQUFRLEVBQVIsQ0FBaEI7QUFDQSxJQUFJUSxpQkFBaUIsbUJBQUFSLENBQVEsRUFBUixDQUFyQjtBQUNBLElBQUlTLGVBQWUsbUJBQUFULENBQVEsRUFBUixDQUFuQjs7QUFFQSxJQUFJVSxpQkFBaUI7QUFDbkJDLGFBQVdULDBCQUEwQlUsU0FEbEI7QUFFbkJDLFNBQU9WLFdBQVdTLFNBRkM7QUFHbkJiLGVBQWFBLFlBQVlhLFNBSE47QUFJbkJFLGtCQUFnQlYsb0JBQW9CUSxTQUpqQjtBQUtuQlgsa0JBQWdCQSxlQUFlVyxTQUxaO0FBTW5CRyxnQkFBY1YseUJBQXlCTyxTQU5wQjtBQU9uQkksbUJBQWlCVixxQkFBcUJNLFNBUG5CO0FBUW5CSyxRQUFNVixVQUFVSyxTQVJHO0FBU25CTSxhQUFXVixlQUFlSSxTQVRQO0FBVW5CTyxXQUFTVixhQUFhRztBQVZILENBQXJCOztBQWFBUSxPQUFPQyxPQUFQLEdBQWlCWCxjQUFqQiIsImZpbGUiOiIxMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RJbmplY3Rpb25cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBET01Qcm9wZXJ0eSA9IHJlcXVpcmUoJy4vRE9NUHJvcGVydHknKTtcbnZhciBFdmVudFBsdWdpbkh1YiA9IHJlcXVpcmUoJy4vRXZlbnRQbHVnaW5IdWInKTtcbnZhciBSZWFjdENvbXBvbmVudEVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9SZWFjdENvbXBvbmVudEVudmlyb25tZW50Jyk7XG52YXIgUmVhY3RDbGFzcyA9IHJlcXVpcmUoJy4vUmVhY3RDbGFzcycpO1xudmFyIFJlYWN0RW1wdHlDb21wb25lbnQgPSByZXF1aXJlKCcuL1JlYWN0RW1wdHlDb21wb25lbnQnKTtcbnZhciBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCcuL1JlYWN0QnJvd3NlckV2ZW50RW1pdHRlcicpO1xudmFyIFJlYWN0TmF0aXZlQ29tcG9uZW50ID0gcmVxdWlyZSgnLi9SZWFjdE5hdGl2ZUNvbXBvbmVudCcpO1xudmFyIFJlYWN0UGVyZiA9IHJlcXVpcmUoJy4vUmVhY3RQZXJmJyk7XG52YXIgUmVhY3RSb290SW5kZXggPSByZXF1aXJlKCcuL1JlYWN0Um9vdEluZGV4Jyk7XG52YXIgUmVhY3RVcGRhdGVzID0gcmVxdWlyZSgnLi9SZWFjdFVwZGF0ZXMnKTtcblxudmFyIFJlYWN0SW5qZWN0aW9uID0ge1xuICBDb21wb25lbnQ6IFJlYWN0Q29tcG9uZW50RW52aXJvbm1lbnQuaW5qZWN0aW9uLFxuICBDbGFzczogUmVhY3RDbGFzcy5pbmplY3Rpb24sXG4gIERPTVByb3BlcnR5OiBET01Qcm9wZXJ0eS5pbmplY3Rpb24sXG4gIEVtcHR5Q29tcG9uZW50OiBSZWFjdEVtcHR5Q29tcG9uZW50LmluamVjdGlvbixcbiAgRXZlbnRQbHVnaW5IdWI6IEV2ZW50UGx1Z2luSHViLmluamVjdGlvbixcbiAgRXZlbnRFbWl0dGVyOiBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaW5qZWN0aW9uLFxuICBOYXRpdmVDb21wb25lbnQ6IFJlYWN0TmF0aXZlQ29tcG9uZW50LmluamVjdGlvbixcbiAgUGVyZjogUmVhY3RQZXJmLmluamVjdGlvbixcbiAgUm9vdEluZGV4OiBSZWFjdFJvb3RJbmRleC5pbmplY3Rpb24sXG4gIFVwZGF0ZXM6IFJlYWN0VXBkYXRlcy5pbmplY3Rpb25cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RJbmplY3Rpb247XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0SW5qZWN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 122 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactClass\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactComponent = __webpack_require__(123);\nvar ReactElement = __webpack_require__(42);\nvar ReactPropTypeLocations = __webpack_require__(65);\nvar ReactPropTypeLocationNames = __webpack_require__(66);\nvar ReactNoopUpdateQueue = __webpack_require__(124);\n\nvar assign = __webpack_require__(39);\nvar emptyObject = __webpack_require__(58);\nvar invariant = __webpack_require__(13);\nvar keyMirror = __webpack_require__(17);\nvar keyOf = __webpack_require__(79);\nvar warning = __webpack_require__(25);\n\nvar MIXINS_KEY = keyOf({ mixins: null });\n\n/**\n * Policies that describe methods in `ReactClassInterface`.\n */\nvar SpecPolicy = keyMirror({\n /**\n * These methods may be defined only once by the class specification or mixin.\n */\n DEFINE_ONCE: null,\n /**\n * These methods may be defined by both the class specification and mixins.\n * Subsequent definitions will be chained. These methods must return void.\n */\n DEFINE_MANY: null,\n /**\n * These methods are overriding the base class.\n */\n OVERRIDE_BASE: null,\n /**\n * These methods are similar to DEFINE_MANY, except we assume they return\n * objects. We try to merge the keys of the return values of all the mixed in\n * functions. If there is a key conflict we throw.\n */\n DEFINE_MANY_MERGED: null\n});\n\nvar injectedMixins = [];\n\nvar warnedSetProps = false;\nfunction warnSetProps() {\n if (!warnedSetProps) {\n warnedSetProps = true;\n process.env.NODE_ENV !== 'production' ? warning(false, 'setProps(...) and replaceProps(...) are deprecated. ' + 'Instead, call render again at the top level.') : undefined;\n }\n}\n\n/**\n * Composite components are higher-level components that compose other composite\n * or native components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return <div>Hello World</div>;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\nvar ReactClassInterface = {\n\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: SpecPolicy.DEFINE_MANY,\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: SpecPolicy.DEFINE_MANY,\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: SpecPolicy.DEFINE_MANY,\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: SpecPolicy.DEFINE_MANY_MERGED,\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return <div>Hello, {name}!</div>;\n * }\n *\n * @return {ReactComponent}\n * @nosideeffects\n * @required\n */\n render: SpecPolicy.DEFINE_ONCE,\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: SpecPolicy.DEFINE_MANY,\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: SpecPolicy.DEFINE_MANY,\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: SpecPolicy.OVERRIDE_BASE\n\n};\n\n/**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\nvar RESERVED_SPEC_KEYS = {\n displayName: function displayName(Constructor, _displayName) {\n Constructor.displayName = _displayName;\n },\n mixins: function mixins(Constructor, _mixins) {\n if (_mixins) {\n for (var i = 0; i < _mixins.length; i++) {\n mixSpecIntoComponent(Constructor, _mixins[i]);\n }\n }\n },\n childContextTypes: function childContextTypes(Constructor, _childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _childContextTypes, ReactPropTypeLocations.childContext);\n }\n Constructor.childContextTypes = assign({}, Constructor.childContextTypes, _childContextTypes);\n },\n contextTypes: function contextTypes(Constructor, _contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _contextTypes, ReactPropTypeLocations.context);\n }\n Constructor.contextTypes = assign({}, Constructor.contextTypes, _contextTypes);\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function getDefaultProps(Constructor, _getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, _getDefaultProps);\n } else {\n Constructor.getDefaultProps = _getDefaultProps;\n }\n },\n propTypes: function propTypes(Constructor, _propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, _propTypes, ReactPropTypeLocations.prop);\n }\n Constructor.propTypes = assign({}, Constructor.propTypes, _propTypes);\n },\n statics: function statics(Constructor, _statics) {\n mixStaticSpecIntoComponent(Constructor, _statics);\n },\n autobind: function autobind() {} };\n\n// noop\nfunction validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an invariant so components\n // don't show up in prod but not in __DEV__\n process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : undefined;\n }\n }\n}\n\nfunction validateMethodOverride(proto, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n !(specPolicy === SpecPolicy.OVERRIDE_BASE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name) : invariant(false) : undefined;\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (proto.hasOwnProperty(name)) {\n !(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name) : invariant(false) : undefined;\n }\n}\n\n/**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classses.\n */\nfunction mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n return;\n }\n\n !(typeof spec !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n !!ReactElement.isValidElement(spec) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.') : invariant(false) : undefined;\n\n var proto = Constructor.prototype;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n validateMethodOverride(proto, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isAlreadyDefined = proto.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n if (!proto.__reactAutoBindMap) {\n proto.__reactAutoBindMap = {};\n }\n proto.__reactAutoBindMap[name] = property;\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n !(isReactClassMethod && (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name) : invariant(false) : undefined;\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === SpecPolicy.DEFINE_MANY) {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n}\n\nfunction mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n !!isReserved ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name) : invariant(false) : undefined;\n\n var isInherited = name in Constructor;\n !!isInherited ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name) : invariant(false) : undefined;\n Constructor[name] = property;\n }\n}\n\n/**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\nfunction mergeIntoWithNoDuplicateKeys(one, two) {\n !(one && two && (typeof one === 'undefined' ? 'undefined' : _typeof(one)) === 'object' && (typeof two === 'undefined' ? 'undefined' : _typeof(two)) === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : invariant(false) : undefined;\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n !(one[key] === undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key) : invariant(false) : undefined;\n one[key] = two[key];\n }\n }\n return one;\n}\n\n/**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n}\n\n/**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\nfunction createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n}\n\n/**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\nfunction bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n /* eslint-disable block-scoped-var, no-undef */\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : undefined;\n } else if (!args.length) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : undefined;\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n /* eslint-enable */\n };\n }\n return boundMethod;\n}\n\n/**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\nfunction bindAutoBindMethods(component) {\n for (var autoBindKey in component.__reactAutoBindMap) {\n if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {\n var method = component.__reactAutoBindMap[autoBindKey];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n}\n\n/**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\nvar ReactClassMixin = {\n\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function replaceState(newState, callback) {\n this.updater.enqueueReplaceState(this, newState);\n if (callback) {\n this.updater.enqueueCallback(this, callback);\n }\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function isMounted() {\n return this.updater.isMounted(this);\n },\n\n /**\n * Sets a subset of the props.\n *\n * @param {object} partialProps Subset of the next props.\n * @param {?function} callback Called after props are updated.\n * @final\n * @public\n * @deprecated\n */\n setProps: function setProps(partialProps, callback) {\n if (process.env.NODE_ENV !== 'production') {\n warnSetProps();\n }\n this.updater.enqueueSetProps(this, partialProps);\n if (callback) {\n this.updater.enqueueCallback(this, callback);\n }\n },\n\n /**\n * Replace all the props.\n *\n * @param {object} newProps Subset of the next props.\n * @param {?function} callback Called after props are updated.\n * @final\n * @public\n * @deprecated\n */\n replaceProps: function replaceProps(newProps, callback) {\n if (process.env.NODE_ENV !== 'production') {\n warnSetProps();\n }\n this.updater.enqueueReplaceProps(this, newProps);\n if (callback) {\n this.updater.enqueueCallback(this, callback);\n }\n }\n};\n\nvar ReactClassComponent = function ReactClassComponent() {};\nassign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n/**\n * Module for creating composite components.\n *\n * @class ReactClass\n */\nvar ReactClass = {\n\n /**\n * Creates a composite component class given a class specification.\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n createClass: function createClass(spec) {\n var Constructor = function Constructor(props, context, updater) {\n // This constructor is overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : undefined;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindMap) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n !((typeof initialState === 'undefined' ? 'undefined' : _typeof(initialState)) === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : invariant(false) : undefined;\n\n this.state = initialState;\n };\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, spec);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n !Constructor.prototype.render ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : invariant(false) : undefined;\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : undefined;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : undefined;\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n },\n\n injection: {\n injectMixin: function injectMixin(mixin) {\n injectedMixins.push(mixin);\n }\n }\n\n};\n\nmodule.exports = ReactClass;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDbGFzcy5qcz8zMDgyIl0sIm5hbWVzIjpbIlJlYWN0Q29tcG9uZW50IiwicmVxdWlyZSIsIlJlYWN0RWxlbWVudCIsIlJlYWN0UHJvcFR5cGVMb2NhdGlvbnMiLCJSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcyIsIlJlYWN0Tm9vcFVwZGF0ZVF1ZXVlIiwiYXNzaWduIiwiZW1wdHlPYmplY3QiLCJpbnZhcmlhbnQiLCJrZXlNaXJyb3IiLCJrZXlPZiIsIndhcm5pbmciLCJNSVhJTlNfS0VZIiwibWl4aW5zIiwiU3BlY1BvbGljeSIsIkRFRklORV9PTkNFIiwiREVGSU5FX01BTlkiLCJPVkVSUklERV9CQVNFIiwiREVGSU5FX01BTllfTUVSR0VEIiwiaW5qZWN0ZWRNaXhpbnMiLCJ3YXJuZWRTZXRQcm9wcyIsIndhcm5TZXRQcm9wcyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsIlJlYWN0Q2xhc3NJbnRlcmZhY2UiLCJzdGF0aWNzIiwicHJvcFR5cGVzIiwiY29udGV4dFR5cGVzIiwiY2hpbGRDb250ZXh0VHlwZXMiLCJnZXREZWZhdWx0UHJvcHMiLCJnZXRJbml0aWFsU3RhdGUiLCJnZXRDaGlsZENvbnRleHQiLCJyZW5kZXIiLCJjb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnREaWRNb3VudCIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJjb21wb25lbnRXaWxsVXBkYXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ1cGRhdGVDb21wb25lbnQiLCJSRVNFUlZFRF9TUEVDX0tFWVMiLCJkaXNwbGF5TmFtZSIsIkNvbnN0cnVjdG9yIiwiaSIsImxlbmd0aCIsIm1peFNwZWNJbnRvQ29tcG9uZW50IiwidmFsaWRhdGVUeXBlRGVmIiwiY2hpbGRDb250ZXh0IiwiY29udGV4dCIsImNyZWF0ZU1lcmdlZFJlc3VsdEZ1bmN0aW9uIiwicHJvcCIsIm1peFN0YXRpY1NwZWNJbnRvQ29tcG9uZW50IiwiYXV0b2JpbmQiLCJ0eXBlRGVmIiwibG9jYXRpb24iLCJwcm9wTmFtZSIsImhhc093blByb3BlcnR5IiwidmFsaWRhdGVNZXRob2RPdmVycmlkZSIsInByb3RvIiwibmFtZSIsInNwZWNQb2xpY3kiLCJSZWFjdENsYXNzTWl4aW4iLCJzcGVjIiwiaXNWYWxpZEVsZW1lbnQiLCJwcm90b3R5cGUiLCJwcm9wZXJ0eSIsImlzUmVhY3RDbGFzc01ldGhvZCIsImlzQWxyZWFkeURlZmluZWQiLCJpc0Z1bmN0aW9uIiwic2hvdWxkQXV0b0JpbmQiLCJfX3JlYWN0QXV0b0JpbmRNYXAiLCJjcmVhdGVDaGFpbmVkRnVuY3Rpb24iLCJpc1Jlc2VydmVkIiwiaXNJbmhlcml0ZWQiLCJtZXJnZUludG9XaXRoTm9EdXBsaWNhdGVLZXlzIiwib25lIiwidHdvIiwia2V5IiwibWVyZ2VkUmVzdWx0IiwiYSIsImFwcGx5IiwiYXJndW1lbnRzIiwiYiIsImMiLCJjaGFpbmVkRnVuY3Rpb24iLCJiaW5kQXV0b0JpbmRNZXRob2QiLCJjb21wb25lbnQiLCJtZXRob2QiLCJib3VuZE1ldGhvZCIsImJpbmQiLCJfX3JlYWN0Qm91bmRDb250ZXh0IiwiX19yZWFjdEJvdW5kTWV0aG9kIiwiX19yZWFjdEJvdW5kQXJndW1lbnRzIiwiY29tcG9uZW50TmFtZSIsImNvbnN0cnVjdG9yIiwiX2JpbmQiLCJuZXdUaGlzIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJyZWJvdW5kTWV0aG9kIiwiYmluZEF1dG9CaW5kTWV0aG9kcyIsImF1dG9CaW5kS2V5IiwicmVwbGFjZVN0YXRlIiwibmV3U3RhdGUiLCJjYWxsYmFjayIsInVwZGF0ZXIiLCJlbnF1ZXVlUmVwbGFjZVN0YXRlIiwiZW5xdWV1ZUNhbGxiYWNrIiwiaXNNb3VudGVkIiwic2V0UHJvcHMiLCJwYXJ0aWFsUHJvcHMiLCJlbnF1ZXVlU2V0UHJvcHMiLCJyZXBsYWNlUHJvcHMiLCJuZXdQcm9wcyIsImVucXVldWVSZXBsYWNlUHJvcHMiLCJSZWFjdENsYXNzQ29tcG9uZW50IiwiUmVhY3RDbGFzcyIsImNyZWF0ZUNsYXNzIiwicHJvcHMiLCJyZWZzIiwic3RhdGUiLCJpbml0aWFsU3RhdGUiLCJfaXNNb2NrRnVuY3Rpb24iLCJpc0FycmF5IiwiZm9yRWFjaCIsImRlZmF1bHRQcm9wcyIsImlzUmVhY3RDbGFzc0FwcHJvdmVkIiwiY29tcG9uZW50U2hvdWxkVXBkYXRlIiwiY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyIsIm1ldGhvZE5hbWUiLCJpbmplY3Rpb24iLCJpbmplY3RNaXhpbiIsIm1peGluIiwicHVzaCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOzs7O0FBRUEsSUFBSUEsaUJBQWlCLG1CQUFBQyxDQUFRLEdBQVIsQ0FBckI7QUFDQSxJQUFJQyxlQUFlLG1CQUFBRCxDQUFRLEVBQVIsQ0FBbkI7QUFDQSxJQUFJRSx5QkFBeUIsbUJBQUFGLENBQVEsRUFBUixDQUE3QjtBQUNBLElBQUlHLDZCQUE2QixtQkFBQUgsQ0FBUSxFQUFSLENBQWpDO0FBQ0EsSUFBSUksdUJBQXVCLG1CQUFBSixDQUFRLEdBQVIsQ0FBM0I7O0FBRUEsSUFBSUssU0FBUyxtQkFBQUwsQ0FBUSxFQUFSLENBQWI7QUFDQSxJQUFJTSxjQUFjLG1CQUFBTixDQUFRLEVBQVIsQ0FBbEI7QUFDQSxJQUFJTyxZQUFZLG1CQUFBUCxDQUFRLEVBQVIsQ0FBaEI7QUFDQSxJQUFJUSxZQUFZLG1CQUFBUixDQUFRLEVBQVIsQ0FBaEI7QUFDQSxJQUFJUyxRQUFRLG1CQUFBVCxDQUFRLEVBQVIsQ0FBWjtBQUNBLElBQUlVLFVBQVUsbUJBQUFWLENBQVEsRUFBUixDQUFkOztBQUVBLElBQUlXLGFBQWFGLE1BQU0sRUFBRUcsUUFBUSxJQUFWLEVBQU4sQ0FB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LEVBQWlCO0FBQzVCdEgscUJBQWV1SCxJQUFmLENBQW9CRCxLQUFwQjtBQUNEO0FBSFE7O0FBeEZJLENBQWpCOztBQWdHQUUsT0FBT0MsT0FBUCxHQUFpQm5CLFVBQWpCLEMiLCJmaWxlIjoiMTIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Q2xhc3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdENvbXBvbmVudCA9IHJlcXVpcmUoJy4vUmVhY3RDb21wb25lbnQnKTtcbnZhciBSZWFjdEVsZW1lbnQgPSByZXF1aXJlKCcuL1JlYWN0RWxlbWVudCcpO1xudmFyIFJlYWN0UHJvcFR5cGVMb2NhdGlvbnMgPSByZXF1aXJlKCcuL1JlYWN0UHJvcFR5cGVMb2NhdGlvbnMnKTtcbnZhciBSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcyA9IHJlcXVpcmUoJy4vUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMnKTtcbnZhciBSZWFjdE5vb3BVcGRhdGVRdWV1ZSA9IHJlcXVpcmUoJy4vUmVhY3ROb29wVXBkYXRlUXVldWUnKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIGVtcHR5T2JqZWN0ID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlPYmplY3QnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciBrZXlNaXJyb3IgPSByZXF1aXJlKCdmYmpzL2xpYi9rZXlNaXJyb3InKTtcbnZhciBrZXlPZiA9IHJlcXVpcmUoJ2ZianMvbGliL2tleU9mJyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxudmFyIE1JWElOU19LRVkgPSBrZXlPZih7IG1peGluczogbnVsbCB9KTtcblxuLyoqXG4gKiBQb2xpY2llcyB0aGF0IGRlc2NyaWJlIG1ldGhvZHMgaW4gYFJlYWN0Q2xhc3NJbnRlcmZhY2VgLlxuICovXG52YXIgU3BlY1BvbGljeSA9IGtleU1pcnJvcih7XG4gIC8qKlxuICAgKiBUaGVzZSBtZXRob2RzIG1heSBiZSBkZWZpbmVkIG9ubHkgb25jZSBieSB0aGUgY2xhc3Mgc3BlY2lmaWNhdGlvbiBvciBtaXhpbi5cbiAgICovXG4gIERFRklORV9PTkNFOiBudWxsLFxuICAvKipcbiAgICogVGhlc2UgbWV0aG9kcyBtYXkgYmUgZGVmaW5lZCBieSBib3RoIHRoZSBjbGFzcyBzcGVjaWZpY2F0aW9uIGFuZCBtaXhpbnMuXG4gICAqIFN1YnNlcXVlbnQgZGVmaW5pdGlvbnMgd2lsbCBiZSBjaGFpbmVkLiBUaGVzZSBtZXRob2RzIG11c3QgcmV0dXJuIHZvaWQuXG4gICAqL1xuICBERUZJTkVfTUFOWTogbnVsbCxcbiAgLyoqXG4gICAqIFRoZXNlIG1ldGhvZHMgYXJlIG92ZXJyaWRpbmcgdGhlIGJhc2UgY2xhc3MuXG4gICAqL1xuICBPVkVSUklERV9CQVNFOiBudWxsLFxuICAvKipcbiAgICogVGhlc2UgbWV0aG9kcyBhcmUgc2ltaWxhciB0byBERUZJTkVfTUFOWSwgZXhjZXB0IHdlIGFzc3VtZSB0aGV5IHJldHVyblxuICAgKiBvYmplY3RzLiBXZSB0cnkgdG8gbWVyZ2UgdGhlIGtleXMgb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YgYWxsIHRoZSBtaXhlZCBpblxuICAgKiBmdW5jdGlvbnMuIElmIHRoZXJlIGlzIGEga2V5IGNvbmZsaWN0IHdlIHRocm93LlxuICAgKi9cbiAgREVGSU5FX01BTllfTUVSR0VEOiBudWxsXG59KTtcblxudmFyIGluamVjdGVkTWl4aW5zID0gW107XG5cbnZhciB3YXJuZWRTZXRQcm9wcyA9IGZhbHNlO1xuZnVuY3Rpb24gd2FyblNldFByb3BzKCkge1xuICBpZiAoIXdhcm5lZFNldFByb3BzKSB7XG4gICAgd2FybmVkU2V0UHJvcHMgPSB0cnVlO1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnc2V0UHJvcHMoLi4uKSBhbmQgcmVwbGFjZVByb3BzKC4uLikgYXJlIGRlcHJlY2F0ZWQuICcgKyAnSW5zdGVhZCwgY2FsbCByZW5kZXIgYWdhaW4gYXQgdGhlIHRvcCBsZXZlbC4nKSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBvc2l0ZSBjb21wb25lbnRzIGFyZSBoaWdoZXItbGV2ZWwgY29tcG9uZW50cyB0aGF0IGNvbXBvc2Ugb3RoZXIgY29tcG9zaXRlXG4gKiBvciBuYXRpdmUgY29tcG9uZW50cy5cbiAqXG4gKiBUbyBjcmVhdGUgYSBuZXcgdHlwZSBvZiBgUmVhY3RDbGFzc2AsIHBhc3MgYSBzcGVjaWZpY2F0aW9uIG9mXG4gKiB5b3VyIG5ldyBjbGFzcyB0byBgUmVhY3QuY3JlYXRlQ2xhc3NgLiBUaGUgb25seSByZXF1aXJlbWVudCBvZiB5b3VyIGNsYXNzXG4gKiBzcGVjaWZpY2F0aW9uIGlzIHRoYXQgeW91IGltcGxlbWVudCBhIGByZW5kZXJgIG1ldGhvZC5cbiAqXG4gKiAgIHZhciBNeUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAqICAgICByZW5kZXI6IGZ1bmN0aW9uKCkge1xuICogICAgICAgcmV0dXJuIDxkaXY+SGVsbG8gV29ybGQ8L2Rpdj47XG4gKiAgICAgfVxuICogICB9KTtcbiAqXG4gKiBUaGUgY2xhc3Mgc3BlY2lmaWNhdGlvbiBzdXBwb3J0cyBhIHNwZWNpZmljIHByb3RvY29sIG9mIG1ldGhvZHMgdGhhdCBoYXZlXG4gKiBzcGVjaWFsIG1lYW5pbmcgKGUuZy4gYHJlbmRlcmApLiBTZWUgYFJlYWN0Q2xhc3NJbnRlcmZhY2VgIGZvclxuICogbW9yZSB0aGUgY29tcHJlaGVuc2l2ZSBwcm90b2NvbC4gQW55IG90aGVyIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgaW4gdGhlXG4gKiBjbGFzcyBzcGVjaWZpY2F0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIG9uIHRoZSBwcm90b3R5cGUuXG4gKlxuICogQGludGVyZmFjZSBSZWFjdENsYXNzSW50ZXJmYWNlXG4gKiBAaW50ZXJuYWxcbiAqL1xudmFyIFJlYWN0Q2xhc3NJbnRlcmZhY2UgPSB7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIE1peGluIG9iamVjdHMgdG8gaW5jbHVkZSB3aGVuIGRlZmluaW5nIHlvdXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZSB7YXJyYXl9XG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgbWl4aW5zOiBTcGVjUG9saWN5LkRFRklORV9NQU5ZLFxuXG4gIC8qKlxuICAgKiBBbiBvYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIHRoYXQgc2hvdWxkIGJlIGRlZmluZWQgb25cbiAgICogdGhlIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIGluc3RlYWQgb2YgaXRzIHByb3RvdHlwZSAoc3RhdGljIG1ldGhvZHMpLlxuICAgKlxuICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIHN0YXRpY3M6IFNwZWNQb2xpY3kuREVGSU5FX01BTlksXG5cbiAgLyoqXG4gICAqIERlZmluaXRpb24gb2YgcHJvcCB0eXBlcyBmb3IgdGhpcyBjb21wb25lbnQuXG4gICAqXG4gICAqIEB0eXBlIHtvYmplY3R9XG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgcHJvcFR5cGVzOiBTcGVjUG9saWN5LkRFRklORV9NQU5ZLFxuXG4gIC8qKlxuICAgKiBEZWZpbml0aW9uIG9mIGNvbnRleHQgdHlwZXMgZm9yIHRoaXMgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZSB7b2JqZWN0fVxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIGNvbnRleHRUeXBlczogU3BlY1BvbGljeS5ERUZJTkVfTUFOWSxcblxuICAvKipcbiAgICogRGVmaW5pdGlvbiBvZiBjb250ZXh0IHR5cGVzIHRoaXMgY29tcG9uZW50IHNldHMgZm9yIGl0cyBjaGlsZHJlbi5cbiAgICpcbiAgICogQHR5cGUge29iamVjdH1cbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBjaGlsZENvbnRleHRUeXBlczogU3BlY1BvbGljeS5ERUZJTkVfTUFOWSxcblxuICAvLyA9PT09IERlZmluaXRpb24gbWV0aG9kcyA9PT09XG5cbiAgLyoqXG4gICAqIEludm9rZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIG1vdW50ZWQuIFZhbHVlcyBpbiB0aGUgbWFwcGluZyB3aWxsIGJlIHNldCBvblxuICAgKiBgdGhpcy5wcm9wc2AgaWYgdGhhdCBwcm9wIGlzIG5vdCBzcGVjaWZpZWQgKGkuZS4gdXNpbmcgYW4gYGluYCBjaGVjaykuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYmVmb3JlIGBnZXRJbml0aWFsU3RhdGVgIGFuZCB0aGVyZWZvcmUgY2Fubm90IHJlbHlcbiAgICogb24gYHRoaXMuc3RhdGVgIG9yIHVzZSBgdGhpcy5zZXRTdGF0ZWAuXG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH1cbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBnZXREZWZhdWx0UHJvcHM6IFNwZWNQb2xpY3kuREVGSU5FX01BTllfTUVSR0VELFxuXG4gIC8qKlxuICAgKiBJbnZva2VkIG9uY2UgYmVmb3JlIHRoZSBjb21wb25lbnQgaXMgbW91bnRlZC4gVGhlIHJldHVybiB2YWx1ZSB3aWxsIGJlIHVzZWRcbiAgICogYXMgdGhlIGluaXRpYWwgdmFsdWUgb2YgYHRoaXMuc3RhdGVgLlxuICAgKlxuICAgKiAgIGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24oKSB7XG4gICAqICAgICByZXR1cm4ge1xuICAgKiAgICAgICBpc09uOiBmYWxzZSxcbiAgICogICAgICAgZm9vQmF6OiBuZXcgQmF6Rm9vKClcbiAgICogICAgIH1cbiAgICogICB9XG4gICAqXG4gICAqIEByZXR1cm4ge29iamVjdH1cbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBnZXRJbml0aWFsU3RhdGU6IFNwZWNQb2xpY3kuREVGSU5FX01BTllfTUVSR0VELFxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgZ2V0Q2hpbGRDb250ZXh0OiBTcGVjUG9saWN5LkRFRklORV9NQU5ZX01FUkdFRCxcblxuICAvKipcbiAgICogVXNlcyBwcm9wcyBmcm9tIGB0aGlzLnByb3BzYCBhbmQgc3RhdGUgZnJvbSBgdGhpcy5zdGF0ZWAgdG8gcmVuZGVyIHRoZVxuICAgKiBzdHJ1Y3R1cmUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogTm8gZ3VhcmFudGVlcyBhcmUgbWFkZSBhYm91dCB3aGVuIG9yIGhvdyBvZnRlbiB0aGlzIG1ldGhvZCBpcyBpbnZva2VkLCBzb1xuICAgKiBpdCBtdXN0IG5vdCBoYXZlIHNpZGUgZWZmZWN0cy5cbiAgICpcbiAgICogICByZW5kZXI6IGZ1bmN0aW9uKCkge1xuICAgKiAgICAgdmFyIG5hbWUgPSB0aGlzLnByb3BzLm5hbWU7XG4gICAqICAgICByZXR1cm4gPGRpdj5IZWxsbywge25hbWV9ITwvZGl2PjtcbiAgICogICB9XG4gICAqXG4gICAqIEByZXR1cm4ge1JlYWN0Q29tcG9uZW50fVxuICAgKiBAbm9zaWRlZWZmZWN0c1xuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIHJlbmRlcjogU3BlY1BvbGljeS5ERUZJTkVfT05DRSxcblxuICAvLyA9PT09IERlbGVnYXRlIG1ldGhvZHMgPT09PVxuXG4gIC8qKlxuICAgKiBJbnZva2VkIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBpbml0aWFsbHkgY3JlYXRlZCBhbmQgYWJvdXQgdG8gYmUgbW91bnRlZC5cbiAgICogVGhpcyBtYXkgaGF2ZSBzaWRlIGVmZmVjdHMsIGJ1dCBhbnkgZXh0ZXJuYWwgc3Vic2NyaXB0aW9ucyBvciBkYXRhIGNyZWF0ZWRcbiAgICogYnkgdGhpcyBtZXRob2QgbXVzdCBiZSBjbGVhbmVkIHVwIGluIGBjb21wb25lbnRXaWxsVW5tb3VudGAuXG4gICAqXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgY29tcG9uZW50V2lsbE1vdW50OiBTcGVjUG9saWN5LkRFRklORV9NQU5ZLFxuXG4gIC8qKlxuICAgKiBJbnZva2VkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgYmVlbiBtb3VudGVkIGFuZCBoYXMgYSBET00gcmVwcmVzZW50YXRpb24uXG4gICAqIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBET00gbm9kZSBpcyBpbiB0aGUgZG9jdW1lbnQuXG4gICAqXG4gICAqIFVzZSB0aGlzIGFzIGFuIG9wcG9ydHVuaXR5IHRvIG9wZXJhdGUgb24gdGhlIERPTSB3aGVuIHRoZSBjb21wb25lbnQgaGFzXG4gICAqIGJlZW4gbW91bnRlZCAoaW5pdGlhbGl6ZWQgYW5kIHJlbmRlcmVkKSBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqXG4gICAqIEBwYXJhbSB7RE9NRWxlbWVudH0gcm9vdE5vZGUgRE9NIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSBjb21wb25lbnQuXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgY29tcG9uZW50RGlkTW91bnQ6IFNwZWNQb2xpY3kuREVGSU5FX01BTlksXG5cbiAgLyoqXG4gICAqIEludm9rZWQgYmVmb3JlIHRoZSBjb21wb25lbnQgcmVjZWl2ZXMgbmV3IHByb3BzLlxuICAgKlxuICAgKiBVc2UgdGhpcyBhcyBhbiBvcHBvcnR1bml0eSB0byByZWFjdCB0byBhIHByb3AgdHJhbnNpdGlvbiBieSB1cGRhdGluZyB0aGVcbiAgICogc3RhdGUgdXNpbmcgYHRoaXMuc2V0U3RhdGVgLiBDdXJyZW50IHByb3BzIGFyZSBhY2Nlc3NlZCB2aWEgYHRoaXMucHJvcHNgLlxuICAgKlxuICAgKiAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uKG5leHRQcm9wcywgbmV4dENvbnRleHQpIHtcbiAgICogICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgKiAgICAgICBsaWtlc0luY3JlYXNpbmc6IG5leHRQcm9wcy5saWtlQ291bnQgPiB0aGlzLnByb3BzLmxpa2VDb3VudFxuICAgKiAgICAgfSk7XG4gICAqICAgfVxuICAgKlxuICAgKiBOT1RFOiBUaGVyZSBpcyBubyBlcXVpdmFsZW50IGBjb21wb25lbnRXaWxsUmVjZWl2ZVN0YXRlYC4gQW4gaW5jb21pbmcgcHJvcFxuICAgKiB0cmFuc2l0aW9uIG1heSBjYXVzZSBhIHN0YXRlIGNoYW5nZSwgYnV0IHRoZSBvcHBvc2l0ZSBpcyBub3QgdHJ1ZS4gSWYgeW91XG4gICAqIG5lZWQgaXQsIHlvdSBhcmUgcHJvYmFibHkgbG9va2luZyBmb3IgYGNvbXBvbmVudFdpbGxVcGRhdGVgLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gbmV4dFByb3BzXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogU3BlY1BvbGljeS5ERUZJTkVfTUFOWSxcblxuICAvKipcbiAgICogSW52b2tlZCB3aGlsZSBkZWNpZGluZyBpZiB0aGUgY29tcG9uZW50IHNob3VsZCBiZSB1cGRhdGVkIGFzIGEgcmVzdWx0IG9mXG4gICAqIHJlY2VpdmluZyBuZXcgcHJvcHMsIHN0YXRlIGFuZC9vciBjb250ZXh0LlxuICAgKlxuICAgKiBVc2UgdGhpcyBhcyBhbiBvcHBvcnR1bml0eSB0byBgcmV0dXJuIGZhbHNlYCB3aGVuIHlvdSdyZSBjZXJ0YWluIHRoYXQgdGhlXG4gICAqIHRyYW5zaXRpb24gdG8gdGhlIG5ldyBwcm9wcy9zdGF0ZS9jb250ZXh0IHdpbGwgbm90IHJlcXVpcmUgYSBjb21wb25lbnRcbiAgICogdXBkYXRlLlxuICAgKlxuICAgKiAgIHNob3VsZENvbXBvbmVudFVwZGF0ZTogZnVuY3Rpb24obmV4dFByb3BzLCBuZXh0U3RhdGUsIG5leHRDb250ZXh0KSB7XG4gICAqICAgICByZXR1cm4gIWVxdWFsKG5leHRQcm9wcywgdGhpcy5wcm9wcykgfHxcbiAgICogICAgICAgIWVxdWFsKG5leHRTdGF0ZSwgdGhpcy5zdGF0ZSkgfHxcbiAgICogICAgICAgIWVxdWFsKG5leHRDb250ZXh0LCB0aGlzLmNvbnRleHQpO1xuICAgKiAgIH1cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IG5leHRQcm9wc1xuICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHRTdGF0ZVxuICAgKiBAcGFyYW0gez9vYmplY3R9IG5leHRDb250ZXh0XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIGNvbXBvbmVudCBzaG91bGQgdXBkYXRlLlxuICAgKiBAb3B0aW9uYWxcbiAgICovXG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZTogU3BlY1BvbGljeS5ERUZJTkVfT05DRSxcblxuICAvKipcbiAgICogSW52b2tlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgYWJvdXQgdG8gdXBkYXRlIGR1ZSB0byBhIHRyYW5zaXRpb24gZnJvbVxuICAgKiBgdGhpcy5wcm9wc2AsIGB0aGlzLnN0YXRlYCBhbmQgYHRoaXMuY29udGV4dGAgdG8gYG5leHRQcm9wc2AsIGBuZXh0U3RhdGVgXG4gICAqIGFuZCBgbmV4dENvbnRleHRgLlxuICAgKlxuICAgKiBVc2UgdGhpcyBhcyBhbiBvcHBvcnR1bml0eSB0byBwZXJmb3JtIHByZXBhcmF0aW9uIGJlZm9yZSBhbiB1cGRhdGUgb2NjdXJzLlxuICAgKlxuICAgKiBOT1RFOiBZb3UgKipjYW5ub3QqKiB1c2UgYHRoaXMuc2V0U3RhdGUoKWAgaW4gdGhpcyBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXh0UHJvcHNcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXh0U3RhdGVcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBuZXh0Q29udGV4dFxuICAgKiBAcGFyYW0ge1JlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgY29tcG9uZW50V2lsbFVwZGF0ZTogU3BlY1BvbGljeS5ERUZJTkVfTUFOWSxcblxuICAvKipcbiAgICogSW52b2tlZCB3aGVuIHRoZSBjb21wb25lbnQncyBET00gcmVwcmVzZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZC5cbiAgICpcbiAgICogVXNlIHRoaXMgYXMgYW4gb3Bwb3J0dW5pdHkgdG8gb3BlcmF0ZSBvbiB0aGUgRE9NIHdoZW4gdGhlIGNvbXBvbmVudCBoYXNcbiAgICogYmVlbiB1cGRhdGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcHJldlByb3BzXG4gICAqIEBwYXJhbSB7P29iamVjdH0gcHJldlN0YXRlXG4gICAqIEBwYXJhbSB7P29iamVjdH0gcHJldkNvbnRleHRcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSByb290Tm9kZSBET00gZWxlbWVudCByZXByZXNlbnRpbmcgdGhlIGNvbXBvbmVudC5cbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBjb21wb25lbnREaWRVcGRhdGU6IFNwZWNQb2xpY3kuREVGSU5FX01BTlksXG5cbiAgLyoqXG4gICAqIEludm9rZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGFib3V0IHRvIGJlIHJlbW92ZWQgZnJvbSBpdHMgcGFyZW50IGFuZCBoYXZlXG4gICAqIGl0cyBET00gcmVwcmVzZW50YXRpb24gZGVzdHJveWVkLlxuICAgKlxuICAgKiBVc2UgdGhpcyBhcyBhbiBvcHBvcnR1bml0eSB0byBkZWFsbG9jYXRlIGFueSBleHRlcm5hbCByZXNvdXJjZXMuXG4gICAqXG4gICAqIE5PVEU6IFRoZXJlIGlzIG5vIGBjb21wb25lbnREaWRVbm1vdW50YCBzaW5jZSB5b3VyIGNvbXBvbmVudCB3aWxsIGhhdmUgYmVlblxuICAgKiBkZXN0cm95ZWQgYnkgdGhhdCBwb2ludC5cbiAgICpcbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBjb21wb25lbnRXaWxsVW5tb3VudDogU3BlY1BvbGljeS5ERUZJTkVfTUFOWSxcblxuICAvLyA9PT09IEFkdmFuY2VkIG1ldGhvZHMgPT09PVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjb21wb25lbnQncyBjdXJyZW50bHkgbW91bnRlZCBET00gcmVwcmVzZW50YXRpb24uXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaW1wbGVtZW50cyBSZWFjdCdzIHJlbmRlcmluZyBhbmQgcmVjb25jaWxpYXRpb24gYWxnb3JpdGhtLlxuICAgKiBTb3BoaXN0aWNhdGVkIGNsaWVudHMgbWF5IHdpc2ggdG8gb3ZlcnJpZGUgdGhpcy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICogQG92ZXJyaWRhYmxlXG4gICAqL1xuICB1cGRhdGVDb21wb25lbnQ6IFNwZWNQb2xpY3kuT1ZFUlJJREVfQkFTRVxuXG59O1xuXG4vKipcbiAqIE1hcHBpbmcgZnJvbSBjbGFzcyBzcGVjaWZpY2F0aW9uIGtleXMgdG8gc3BlY2lhbCBwcm9jZXNzaW5nIGZ1bmN0aW9ucy5cbiAqXG4gKiBBbHRob3VnaCB0aGVzZSBhcmUgZGVjbGFyZWQgbGlrZSBpbnN0YW5jZSBwcm9wZXJ0aWVzIGluIHRoZSBzcGVjaWZpY2F0aW9uXG4gKiB3aGVuIGRlZmluaW5nIGNsYXNzZXMgdXNpbmcgYFJlYWN0LmNyZWF0ZUNsYXNzYCwgdGhleSBhcmUgYWN0dWFsbHkgc3RhdGljXG4gKiBhbmQgYXJlIGFjY2Vzc2libGUgb24gdGhlIGNvbnN0cnVjdG9yIGluc3RlYWQgb2YgdGhlIHByb3RvdHlwZS4gRGVzcGl0ZVxuICogYmVpbmcgc3RhdGljLCB0aGV5IG11c3QgYmUgZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBcInN0YXRpY3NcIiBrZXkgdW5kZXJcbiAqIHdoaWNoIGFsbCBvdGhlciBzdGF0aWMgbWV0aG9kcyBhcmUgZGVmaW5lZC5cbiAqL1xudmFyIFJFU0VSVkVEX1NQRUNfS0VZUyA9IHtcbiAgZGlzcGxheU5hbWU6IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgZGlzcGxheU5hbWUpIHtcbiAgICBDb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lO1xuICB9LFxuICBtaXhpbnM6IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgbWl4aW5zKSB7XG4gICAgaWYgKG1peGlucykge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtaXhpbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbWl4U3BlY0ludG9Db21wb25lbnQoQ29uc3RydWN0b3IsIG1peGluc1tpXSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBjaGlsZENvbnRleHRUeXBlczogZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBjaGlsZENvbnRleHRUeXBlcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YWxpZGF0ZVR5cGVEZWYoQ29uc3RydWN0b3IsIGNoaWxkQ29udGV4dFR5cGVzLCBSZWFjdFByb3BUeXBlTG9jYXRpb25zLmNoaWxkQ29udGV4dCk7XG4gICAgfVxuICAgIENvbnN0cnVjdG9yLmNoaWxkQ29udGV4dFR5cGVzID0gYXNzaWduKHt9LCBDb25zdHJ1Y3Rvci5jaGlsZENvbnRleHRUeXBlcywgY2hpbGRDb250ZXh0VHlwZXMpO1xuICB9LFxuICBjb250ZXh0VHlwZXM6IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgY29udGV4dFR5cGVzKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhbGlkYXRlVHlwZURlZihDb25zdHJ1Y3RvciwgY29udGV4dFR5cGVzLCBSZWFjdFByb3BUeXBlTG9jYXRpb25zLmNvbnRleHQpO1xuICAgIH1cbiAgICBDb25zdHJ1Y3Rvci5jb250ZXh0VHlwZXMgPSBhc3NpZ24oe30sIENvbnN0cnVjdG9yLmNvbnRleHRUeXBlcywgY29udGV4dFR5cGVzKTtcbiAgfSxcbiAgLyoqXG4gICAqIFNwZWNpYWwgY2FzZSBnZXREZWZhdWx0UHJvcHMgd2hpY2ggc2hvdWxkIG1vdmUgaW50byBzdGF0aWNzIGJ1dCByZXF1aXJlc1xuICAgKiBhdXRvbWF0aWMgbWVyZ2luZy5cbiAgICovXG4gIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBnZXREZWZhdWx0UHJvcHMpIHtcbiAgICBpZiAoQ29uc3RydWN0b3IuZ2V0RGVmYXVsdFByb3BzKSB7XG4gICAgICBDb25zdHJ1Y3Rvci5nZXREZWZhdWx0UHJvcHMgPSBjcmVhdGVNZXJnZWRSZXN1bHRGdW5jdGlvbihDb25zdHJ1Y3Rvci5nZXREZWZhdWx0UHJvcHMsIGdldERlZmF1bHRQcm9wcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIENvbnN0cnVjdG9yLmdldERlZmF1bHRQcm9wcyA9IGdldERlZmF1bHRQcm9wcztcbiAgICB9XG4gIH0sXG4gIHByb3BUeXBlczogZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm9wVHlwZXMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFsaWRhdGVUeXBlRGVmKENvbnN0cnVjdG9yLCBwcm9wVHlwZXMsIFJlYWN0UHJvcFR5cGVMb2NhdGlvbnMucHJvcCk7XG4gICAgfVxuICAgIENvbnN0cnVjdG9yLnByb3BUeXBlcyA9IGFzc2lnbih7fSwgQ29uc3RydWN0b3IucHJvcFR5cGVzLCBwcm9wVHlwZXMpO1xuICB9LFxuICBzdGF0aWNzOiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHN0YXRpY3MpIHtcbiAgICBtaXhTdGF0aWNTcGVjSW50b0NvbXBvbmVudChDb25zdHJ1Y3Rvciwgc3RhdGljcyk7XG4gIH0sXG4gIGF1dG9iaW5kOiBmdW5jdGlvbiAoKSB7fSB9O1xuXG4vLyBub29wXG5mdW5jdGlvbiB2YWxpZGF0ZVR5cGVEZWYoQ29uc3RydWN0b3IsIHR5cGVEZWYsIGxvY2F0aW9uKSB7XG4gIGZvciAodmFyIHByb3BOYW1lIGluIHR5cGVEZWYpIHtcbiAgICBpZiAodHlwZURlZi5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcbiAgICAgIC8vIHVzZSBhIHdhcm5pbmcgaW5zdGVhZCBvZiBhbiBpbnZhcmlhbnQgc28gY29tcG9uZW50c1xuICAgICAgLy8gZG9uJ3Qgc2hvdyB1cCBpbiBwcm9kIGJ1dCBub3QgaW4gX19ERVZfX1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodHlwZW9mIHR5cGVEZWZbcHJvcE5hbWVdID09PSAnZnVuY3Rpb24nLCAnJXM6ICVzIHR5cGUgYCVzYCBpcyBpbnZhbGlkOyBpdCBtdXN0IGJlIGEgZnVuY3Rpb24sIHVzdWFsbHkgZnJvbSAnICsgJ1JlYWN0LlByb3BUeXBlcy4nLCBDb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCAnUmVhY3RDbGFzcycsIFJlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzW2xvY2F0aW9uXSwgcHJvcE5hbWUpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZU1ldGhvZE92ZXJyaWRlKHByb3RvLCBuYW1lKSB7XG4gIHZhciBzcGVjUG9saWN5ID0gUmVhY3RDbGFzc0ludGVyZmFjZS5oYXNPd25Qcm9wZXJ0eShuYW1lKSA/IFJlYWN0Q2xhc3NJbnRlcmZhY2VbbmFtZV0gOiBudWxsO1xuXG4gIC8vIERpc2FsbG93IG92ZXJyaWRpbmcgb2YgYmFzZSBjbGFzcyBtZXRob2RzIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQuXG4gIGlmIChSZWFjdENsYXNzTWl4aW4uaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAhKHNwZWNQb2xpY3kgPT09IFNwZWNQb2xpY3kuT1ZFUlJJREVfQkFTRSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RDbGFzc0ludGVyZmFjZTogWW91IGFyZSBhdHRlbXB0aW5nIHRvIG92ZXJyaWRlICcgKyAnYCVzYCBmcm9tIHlvdXIgY2xhc3Mgc3BlY2lmaWNhdGlvbi4gRW5zdXJlIHRoYXQgeW91ciBtZXRob2QgbmFtZXMgJyArICdkbyBub3Qgb3ZlcmxhcCB3aXRoIFJlYWN0IG1ldGhvZHMuJywgbmFtZSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gRGlzYWxsb3cgZGVmaW5pbmcgbWV0aG9kcyBtb3JlIHRoYW4gb25jZSB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkLlxuICBpZiAocHJvdG8uaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAhKHNwZWNQb2xpY3kgPT09IFNwZWNQb2xpY3kuREVGSU5FX01BTlkgfHwgc3BlY1BvbGljeSA9PT0gU3BlY1BvbGljeS5ERUZJTkVfTUFOWV9NRVJHRUQpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0Q2xhc3NJbnRlcmZhY2U6IFlvdSBhcmUgYXR0ZW1wdGluZyB0byBkZWZpbmUgJyArICdgJXNgIG9uIHlvdXIgY29tcG9uZW50IG1vcmUgdGhhbiBvbmNlLiBUaGlzIGNvbmZsaWN0IG1heSBiZSBkdWUgJyArICd0byBhIG1peGluLicsIG5hbWUpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIE1peGluIGhlbHBlciB3aGljaCBoYW5kbGVzIHBvbGljeSB2YWxpZGF0aW9uIGFuZCByZXNlcnZlZFxuICogc3BlY2lmaWNhdGlvbiBrZXlzIHdoZW4gYnVpbGRpbmcgUmVhY3QgY2xhc3NzZXMuXG4gKi9cbmZ1bmN0aW9uIG1peFNwZWNJbnRvQ29tcG9uZW50KENvbnN0cnVjdG9yLCBzcGVjKSB7XG4gIGlmICghc3BlYykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gICEodHlwZW9mIHNwZWMgIT09ICdmdW5jdGlvbicpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0Q2xhc3M6IFlvdVxcJ3JlIGF0dGVtcHRpbmcgdG8gJyArICd1c2UgYSBjb21wb25lbnQgY2xhc3MgYXMgYSBtaXhpbi4gSW5zdGVhZCwganVzdCB1c2UgYSByZWd1bGFyIG9iamVjdC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICEhUmVhY3RFbGVtZW50LmlzVmFsaWRFbGVtZW50KHNwZWMpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0Q2xhc3M6IFlvdVxcJ3JlIGF0dGVtcHRpbmcgdG8gJyArICd1c2UgYSBjb21wb25lbnQgYXMgYSBtaXhpbi4gSW5zdGVhZCwganVzdCB1c2UgYSByZWd1bGFyIG9iamVjdC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgdmFyIHByb3RvID0gQ29uc3RydWN0b3IucHJvdG90eXBlO1xuXG4gIC8vIEJ5IGhhbmRsaW5nIG1peGlucyBiZWZvcmUgYW55IG90aGVyIHByb3BlcnRpZXMsIHdlIGVuc3VyZSB0aGUgc2FtZVxuICAvLyBjaGFpbmluZyBvcmRlciBpcyBhcHBsaWVkIHRvIG1ldGhvZHMgd2l0aCBERUZJTkVfTUFOWSBwb2xpY3ksIHdoZXRoZXJcbiAgLy8gbWl4aW5zIGFyZSBsaXN0ZWQgYmVmb3JlIG9yIGFmdGVyIHRoZXNlIG1ldGhvZHMgaW4gdGhlIHNwZWMuXG4gIGlmIChzcGVjLmhhc093blByb3BlcnR5KE1JWElOU19LRVkpKSB7XG4gICAgUkVTRVJWRURfU1BFQ19LRVlTLm1peGlucyhDb25zdHJ1Y3Rvciwgc3BlYy5taXhpbnMpO1xuICB9XG5cbiAgZm9yICh2YXIgbmFtZSBpbiBzcGVjKSB7XG4gICAgaWYgKCFzcGVjLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobmFtZSA9PT0gTUlYSU5TX0tFWSkge1xuICAgICAgLy8gV2UgaGF2ZSBhbHJlYWR5IGhhbmRsZWQgbWl4aW5zIGluIGEgc3BlY2lhbCBjYXNlIGFib3ZlLlxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIHByb3BlcnR5ID0gc3BlY1tuYW1lXTtcbiAgICB2YWxpZGF0ZU1ldGhvZE92ZXJyaWRlKHByb3RvLCBuYW1lKTtcblxuICAgIGlmIChSRVNFUlZFRF9TUEVDX0tFWVMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIFJFU0VSVkVEX1NQRUNfS0VZU1tuYW1lXShDb25zdHJ1Y3RvciwgcHJvcGVydHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZXR1cCBtZXRob2RzIG9uIHByb3RvdHlwZTpcbiAgICAgIC8vIFRoZSBmb2xsb3dpbmcgbWVtYmVyIG1ldGhvZHMgc2hvdWxkIG5vdCBiZSBhdXRvbWF0aWNhbGx5IGJvdW5kOlxuICAgICAgLy8gMS4gRXhwZWN0ZWQgUmVhY3RDbGFzcyBtZXRob2RzIChpbiB0aGUgXCJpbnRlcmZhY2VcIikuXG4gICAgICAvLyAyLiBPdmVycmlkZGVuIG1ldGhvZHMgKHRoYXQgd2VyZSBtaXhlZCBpbikuXG4gICAgICB2YXIgaXNSZWFjdENsYXNzTWV0aG9kID0gUmVhY3RDbGFzc0ludGVyZmFjZS5oYXNPd25Qcm9wZXJ0eShuYW1lKTtcbiAgICAgIHZhciBpc0FscmVhZHlEZWZpbmVkID0gcHJvdG8uaGFzT3duUHJvcGVydHkobmFtZSk7XG4gICAgICB2YXIgaXNGdW5jdGlvbiA9IHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgIHZhciBzaG91bGRBdXRvQmluZCA9IGlzRnVuY3Rpb24gJiYgIWlzUmVhY3RDbGFzc01ldGhvZCAmJiAhaXNBbHJlYWR5RGVmaW5lZCAmJiBzcGVjLmF1dG9iaW5kICE9PSBmYWxzZTtcblxuICAgICAgaWYgKHNob3VsZEF1dG9CaW5kKSB7XG4gICAgICAgIGlmICghcHJvdG8uX19yZWFjdEF1dG9CaW5kTWFwKSB7XG4gICAgICAgICAgcHJvdG8uX19yZWFjdEF1dG9CaW5kTWFwID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcHJvdG8uX19yZWFjdEF1dG9CaW5kTWFwW25hbWVdID0gcHJvcGVydHk7XG4gICAgICAgIHByb3RvW25hbWVdID0gcHJvcGVydHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNBbHJlYWR5RGVmaW5lZCkge1xuICAgICAgICAgIHZhciBzcGVjUG9saWN5ID0gUmVhY3RDbGFzc0ludGVyZmFjZVtuYW1lXTtcblxuICAgICAgICAgIC8vIFRoZXNlIGNhc2VzIHNob3VsZCBhbHJlYWR5IGJlIGNhdWdodCBieSB2YWxpZGF0ZU1ldGhvZE92ZXJyaWRlLlxuICAgICAgICAgICEoaXNSZWFjdENsYXNzTWV0aG9kICYmIChzcGVjUG9saWN5ID09PSBTcGVjUG9saWN5LkRFRklORV9NQU5ZX01FUkdFRCB8fCBzcGVjUG9saWN5ID09PSBTcGVjUG9saWN5LkRFRklORV9NQU5ZKSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnUmVhY3RDbGFzczogVW5leHBlY3RlZCBzcGVjIHBvbGljeSAlcyBmb3Iga2V5ICVzICcgKyAnd2hlbiBtaXhpbmcgaW4gY29tcG9uZW50IHNwZWNzLicsIHNwZWNQb2xpY3ksIG5hbWUpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIC8vIEZvciBtZXRob2RzIHdoaWNoIGFyZSBkZWZpbmVkIG1vcmUgdGhhbiBvbmNlLCBjYWxsIHRoZSBleGlzdGluZ1xuICAgICAgICAgIC8vIG1ldGhvZHMgYmVmb3JlIGNhbGxpbmcgdGhlIG5ldyBwcm9wZXJ0eSwgbWVyZ2luZyBpZiBhcHByb3ByaWF0ZS5cbiAgICAgICAgICBpZiAoc3BlY1BvbGljeSA9PT0gU3BlY1BvbGljeS5ERUZJTkVfTUFOWV9NRVJHRUQpIHtcbiAgICAgICAgICAgIHByb3RvW25hbWVdID0gY3JlYXRlTWVyZ2VkUmVzdWx0RnVuY3Rpb24ocHJvdG9bbmFtZV0sIHByb3BlcnR5KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHNwZWNQb2xpY3kgPT09IFNwZWNQb2xpY3kuREVGSU5FX01BTlkpIHtcbiAgICAgICAgICAgIHByb3RvW25hbWVdID0gY3JlYXRlQ2hhaW5lZEZ1bmN0aW9uKHByb3RvW25hbWVdLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb3RvW25hbWVdID0gcHJvcGVydHk7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIC8vIEFkZCB2ZXJib3NlIGRpc3BsYXlOYW1lIHRvIHRoZSBmdW5jdGlvbiwgd2hpY2ggaGVscHMgd2hlbiBsb29raW5nXG4gICAgICAgICAgICAvLyBhdCBwcm9maWxpbmcgdG9vbHMuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnZnVuY3Rpb24nICYmIHNwZWMuZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgcHJvdG9bbmFtZV0uZGlzcGxheU5hbWUgPSBzcGVjLmRpc3BsYXlOYW1lICsgJ18nICsgbmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbWl4U3RhdGljU3BlY0ludG9Db21wb25lbnQoQ29uc3RydWN0b3IsIHN0YXRpY3MpIHtcbiAgaWYgKCFzdGF0aWNzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAodmFyIG5hbWUgaW4gc3RhdGljcykge1xuICAgIHZhciBwcm9wZXJ0eSA9IHN0YXRpY3NbbmFtZV07XG4gICAgaWYgKCFzdGF0aWNzLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB2YXIgaXNSZXNlcnZlZCA9IChuYW1lIGluIFJFU0VSVkVEX1NQRUNfS0VZUyk7XG4gICAgISFpc1Jlc2VydmVkID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1JlYWN0Q2xhc3M6IFlvdSBhcmUgYXR0ZW1wdGluZyB0byBkZWZpbmUgYSByZXNlcnZlZCAnICsgJ3Byb3BlcnR5LCBgJXNgLCB0aGF0IHNob3VsZG5cXCd0IGJlIG9uIHRoZSBcInN0YXRpY3NcIiBrZXkuIERlZmluZSBpdCAnICsgJ2FzIGFuIGluc3RhbmNlIHByb3BlcnR5IGluc3RlYWQ7IGl0IHdpbGwgc3RpbGwgYmUgYWNjZXNzaWJsZSBvbiB0aGUgJyArICdjb25zdHJ1Y3Rvci4nLCBuYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICB2YXIgaXNJbmhlcml0ZWQgPSAobmFtZSBpbiBDb25zdHJ1Y3Rvcik7XG4gICAgISFpc0luaGVyaXRlZCA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdSZWFjdENsYXNzOiBZb3UgYXJlIGF0dGVtcHRpbmcgdG8gZGVmaW5lICcgKyAnYCVzYCBvbiB5b3VyIGNvbXBvbmVudCBtb3JlIHRoYW4gb25jZS4gVGhpcyBjb25mbGljdCBtYXkgYmUgJyArICdkdWUgdG8gYSBtaXhpbi4nLCBuYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgQ29uc3RydWN0b3JbbmFtZV0gPSBwcm9wZXJ0eTtcbiAgfVxufVxuXG4vKipcbiAqIE1lcmdlIHR3byBvYmplY3RzLCBidXQgdGhyb3cgaWYgYm90aCBjb250YWluIHRoZSBzYW1lIGtleS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb25lIFRoZSBmaXJzdCBvYmplY3QsIHdoaWNoIGlzIG11dGF0ZWQuXG4gKiBAcGFyYW0ge29iamVjdH0gdHdvIFRoZSBzZWNvbmQgb2JqZWN0XG4gKiBAcmV0dXJuIHtvYmplY3R9IG9uZSBhZnRlciBpdCBoYXMgYmVlbiBtdXRhdGVkIHRvIGNvbnRhaW4gZXZlcnl0aGluZyBpbiB0d28uXG4gKi9cbmZ1bmN0aW9uIG1lcmdlSW50b1dpdGhOb0R1cGxpY2F0ZUtleXMob25lLCB0d28pIHtcbiAgIShvbmUgJiYgdHdvICYmIHR5cGVvZiBvbmUgPT09ICdvYmplY3QnICYmIHR5cGVvZiB0d28gPT09ICdvYmplY3QnKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdtZXJnZUludG9XaXRoTm9EdXBsaWNhdGVLZXlzKCk6IENhbm5vdCBtZXJnZSBub24tb2JqZWN0cy4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgZm9yICh2YXIga2V5IGluIHR3bykge1xuICAgIGlmICh0d28uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgIShvbmVba2V5XSA9PT0gdW5kZWZpbmVkKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdtZXJnZUludG9XaXRoTm9EdXBsaWNhdGVLZXlzKCk6ICcgKyAnVHJpZWQgdG8gbWVyZ2UgdHdvIG9iamVjdHMgd2l0aCB0aGUgc2FtZSBrZXk6IGAlc2AuIFRoaXMgY29uZmxpY3QgJyArICdtYXkgYmUgZHVlIHRvIGEgbWl4aW47IGluIHBhcnRpY3VsYXIsIHRoaXMgbWF5IGJlIGNhdXNlZCBieSB0d28gJyArICdnZXRJbml0aWFsU3RhdGUoKSBvciBnZXREZWZhdWx0UHJvcHMoKSBtZXRob2RzIHJldHVybmluZyBvYmplY3RzICcgKyAnd2l0aCBjbGFzaGluZyBrZXlzLicsIGtleSkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICAgb25lW2tleV0gPSB0d29ba2V5XTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9uZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIHR3byBmdW5jdGlvbnMgYW5kIG1lcmdlcyB0aGVpciByZXR1cm4gdmFsdWVzLlxuICpcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IG9uZSBGdW5jdGlvbiB0byBpbnZva2UgZmlyc3QuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSB0d28gRnVuY3Rpb24gdG8gaW52b2tlIHNlY29uZC5cbiAqIEByZXR1cm4ge2Z1bmN0aW9ufSBGdW5jdGlvbiB0aGF0IGludm9rZXMgdGhlIHR3byBhcmd1bWVudCBmdW5jdGlvbnMuXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjcmVhdGVNZXJnZWRSZXN1bHRGdW5jdGlvbihvbmUsIHR3bykge1xuICByZXR1cm4gZnVuY3Rpb24gbWVyZ2VkUmVzdWx0KCkge1xuICAgIHZhciBhID0gb25lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgdmFyIGIgPSB0d28uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBpZiAoYSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gYjtcbiAgICB9IGVsc2UgaWYgKGIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGE7XG4gICAgfVxuICAgIHZhciBjID0ge307XG4gICAgbWVyZ2VJbnRvV2l0aE5vRHVwbGljYXRlS2V5cyhjLCBhKTtcbiAgICBtZXJnZUludG9XaXRoTm9EdXBsaWNhdGVLZXlzKGMsIGIpO1xuICAgIHJldHVybiBjO1xuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGludm9rZXMgdHdvIGZ1bmN0aW9ucyBhbmQgaWdub3JlcyB0aGVpciByZXR1cm4gdmFsZXMuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbn0gb25lIEZ1bmN0aW9uIHRvIGludm9rZSBmaXJzdC5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IHR3byBGdW5jdGlvbiB0byBpbnZva2Ugc2Vjb25kLlxuICogQHJldHVybiB7ZnVuY3Rpb259IEZ1bmN0aW9uIHRoYXQgaW52b2tlcyB0aGUgdHdvIGFyZ3VtZW50IGZ1bmN0aW9ucy5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNoYWluZWRGdW5jdGlvbihvbmUsIHR3bykge1xuICByZXR1cm4gZnVuY3Rpb24gY2hhaW5lZEZ1bmN0aW9uKCkge1xuICAgIG9uZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIHR3by5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG4vKipcbiAqIEJpbmRzIGEgbWV0aG9kIHRvIHRoZSBjb21wb25lbnQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGNvbXBvbmVudCBDb21wb25lbnQgd2hvc2UgbWV0aG9kIGlzIGdvaW5nIHRvIGJlIGJvdW5kLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gbWV0aG9kIE1ldGhvZCB0byBiZSBib3VuZC5cbiAqIEByZXR1cm4ge2Z1bmN0aW9ufSBUaGUgYm91bmQgbWV0aG9kLlxuICovXG5mdW5jdGlvbiBiaW5kQXV0b0JpbmRNZXRob2QoY29tcG9uZW50LCBtZXRob2QpIHtcbiAgdmFyIGJvdW5kTWV0aG9kID0gbWV0aG9kLmJpbmQoY29tcG9uZW50KTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBib3VuZE1ldGhvZC5fX3JlYWN0Qm91bmRDb250ZXh0ID0gY29tcG9uZW50O1xuICAgIGJvdW5kTWV0aG9kLl9fcmVhY3RCb3VuZE1ldGhvZCA9IG1ldGhvZDtcbiAgICBib3VuZE1ldGhvZC5fX3JlYWN0Qm91bmRBcmd1bWVudHMgPSBudWxsO1xuICAgIHZhciBjb21wb25lbnROYW1lID0gY29tcG9uZW50LmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lO1xuICAgIHZhciBfYmluZCA9IGJvdW5kTWV0aG9kLmJpbmQ7XG4gICAgLyogZXNsaW50LWRpc2FibGUgYmxvY2stc2NvcGVkLXZhciwgbm8tdW5kZWYgKi9cbiAgICBib3VuZE1ldGhvZC5iaW5kID0gZnVuY3Rpb24gKG5ld1RoaXMpIHtcbiAgICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgLy8gVXNlciBpcyB0cnlpbmcgdG8gYmluZCgpIGFuIGF1dG9ib3VuZCBtZXRob2Q7IHdlIGVmZmVjdGl2ZWx5IHdpbGxcbiAgICAgIC8vIGlnbm9yZSB0aGUgdmFsdWUgb2YgXCJ0aGlzXCIgdGhhdCB0aGUgdXNlciBpcyB0cnlpbmcgdG8gdXNlLCBzb1xuICAgICAgLy8gbGV0J3Mgd2Fybi5cbiAgICAgIGlmIChuZXdUaGlzICE9PSBjb21wb25lbnQgJiYgbmV3VGhpcyAhPT0gbnVsbCkge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ2JpbmQoKTogUmVhY3QgY29tcG9uZW50IG1ldGhvZHMgbWF5IG9ubHkgYmUgYm91bmQgdG8gdGhlICcgKyAnY29tcG9uZW50IGluc3RhbmNlLiBTZWUgJXMnLCBjb21wb25lbnROYW1lKSA6IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoIWFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnYmluZCgpOiBZb3UgYXJlIGJpbmRpbmcgYSBjb21wb25lbnQgbWV0aG9kIHRvIHRoZSBjb21wb25lbnQuICcgKyAnUmVhY3QgZG9lcyB0aGlzIGZvciB5b3UgYXV0b21hdGljYWxseSBpbiBhIGhpZ2gtcGVyZm9ybWFuY2UgJyArICd3YXksIHNvIHlvdSBjYW4gc2FmZWx5IHJlbW92ZSB0aGlzIGNhbGwuIFNlZSAlcycsIGNvbXBvbmVudE5hbWUpIDogdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gYm91bmRNZXRob2Q7XG4gICAgICB9XG4gICAgICB2YXIgcmVib3VuZE1ldGhvZCA9IF9iaW5kLmFwcGx5KGJvdW5kTWV0aG9kLCBhcmd1bWVudHMpO1xuICAgICAgcmVib3VuZE1ldGhvZC5fX3JlYWN0Qm91bmRDb250ZXh0ID0gY29tcG9uZW50O1xuICAgICAgcmVib3VuZE1ldGhvZC5fX3JlYWN0Qm91bmRNZXRob2QgPSBtZXRob2Q7XG4gICAgICByZWJvdW5kTWV0aG9kLl9fcmVhY3RCb3VuZEFyZ3VtZW50cyA9IGFyZ3M7XG4gICAgICByZXR1cm4gcmVib3VuZE1ldGhvZDtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgKi9cbiAgICB9O1xuICB9XG4gIHJldHVybiBib3VuZE1ldGhvZDtcbn1cblxuLyoqXG4gKiBCaW5kcyBhbGwgYXV0by1ib3VuZCBtZXRob2RzIGluIGEgY29tcG9uZW50LlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb21wb25lbnQgQ29tcG9uZW50IHdob3NlIG1ldGhvZCBpcyBnb2luZyB0byBiZSBib3VuZC5cbiAqL1xuZnVuY3Rpb24gYmluZEF1dG9CaW5kTWV0aG9kcyhjb21wb25lbnQpIHtcbiAgZm9yICh2YXIgYXV0b0JpbmRLZXkgaW4gY29tcG9uZW50Ll9fcmVhY3RBdXRvQmluZE1hcCkge1xuICAgIGlmIChjb21wb25lbnQuX19yZWFjdEF1dG9CaW5kTWFwLmhhc093blByb3BlcnR5KGF1dG9CaW5kS2V5KSkge1xuICAgICAgdmFyIG1ldGhvZCA9IGNvbXBvbmVudC5fX3JlYWN0QXV0b0JpbmRNYXBbYXV0b0JpbmRLZXldO1xuICAgICAgY29tcG9uZW50W2F1dG9CaW5kS2V5XSA9IGJpbmRBdXRvQmluZE1ldGhvZChjb21wb25lbnQsIG1ldGhvZCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWRkIG1vcmUgdG8gdGhlIFJlYWN0Q2xhc3MgYmFzZSBjbGFzcy4gVGhlc2UgYXJlIGFsbCBsZWdhY3kgZmVhdHVyZXMgYW5kXG4gKiB0aGVyZWZvcmUgbm90IGFscmVhZHkgcGFydCBvZiB0aGUgbW9kZXJuIFJlYWN0Q29tcG9uZW50LlxuICovXG52YXIgUmVhY3RDbGFzc01peGluID0ge1xuXG4gIC8qKlxuICAgKiBUT0RPOiBUaGlzIHdpbGwgYmUgZGVwcmVjYXRlZCBiZWNhdXNlIHN0YXRlIHNob3VsZCBhbHdheXMga2VlcCBhIGNvbnNpc3RlbnRcbiAgICogdHlwZSBzaWduYXR1cmUgYW5kIHRoZSBvbmx5IHVzZSBjYXNlIGZvciB0aGlzLCBpcyB0byBhdm9pZCB0aGF0LlxuICAgKi9cbiAgcmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAobmV3U3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgdGhpcy51cGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUodGhpcywgbmV3U3RhdGUpO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgdGhpcy51cGRhdGVyLmVucXVldWVDYWxsYmFjayh0aGlzLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBvciBub3QgdGhpcyBjb21wb3NpdGUgY29tcG9uZW50IGlzIG1vdW50ZWQuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgbW91bnRlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBmaW5hbFxuICAgKi9cbiAgaXNNb3VudGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlci5pc01vdW50ZWQodGhpcyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHByb3BzLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFByb3BzIFN1YnNldCBvZiB0aGUgbmV4dCBwcm9wcy5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBwcm9wcyBhcmUgdXBkYXRlZC5cbiAgICogQGZpbmFsXG4gICAqIEBwdWJsaWNcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHNldFByb3BzOiBmdW5jdGlvbiAocGFydGlhbFByb3BzLCBjYWxsYmFjaykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB3YXJuU2V0UHJvcHMoKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVyLmVucXVldWVTZXRQcm9wcyh0aGlzLCBwYXJ0aWFsUHJvcHMpO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgdGhpcy51cGRhdGVyLmVucXVldWVDYWxsYmFjayh0aGlzLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIGFsbCB0aGUgcHJvcHMuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuZXdQcm9wcyBTdWJzZXQgb2YgdGhlIG5leHQgcHJvcHMuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgcHJvcHMgYXJlIHVwZGF0ZWQuXG4gICAqIEBmaW5hbFxuICAgKiBAcHVibGljXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICByZXBsYWNlUHJvcHM6IGZ1bmN0aW9uIChuZXdQcm9wcywgY2FsbGJhY2spIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgd2FyblNldFByb3BzKCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlci5lbnF1ZXVlUmVwbGFjZVByb3BzKHRoaXMsIG5ld1Byb3BzKTtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHRoaXMudXBkYXRlci5lbnF1ZXVlQ2FsbGJhY2sodGhpcywgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufTtcblxudmFyIFJlYWN0Q2xhc3NDb21wb25lbnQgPSBmdW5jdGlvbiAoKSB7fTtcbmFzc2lnbihSZWFjdENsYXNzQ29tcG9uZW50LnByb3RvdHlwZSwgUmVhY3RDb21wb25lbnQucHJvdG90eXBlLCBSZWFjdENsYXNzTWl4aW4pO1xuXG4vKipcbiAqIE1vZHVsZSBmb3IgY3JlYXRpbmcgY29tcG9zaXRlIGNvbXBvbmVudHMuXG4gKlxuICogQGNsYXNzIFJlYWN0Q2xhc3NcbiAqL1xudmFyIFJlYWN0Q2xhc3MgPSB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb21wb3NpdGUgY29tcG9uZW50IGNsYXNzIGdpdmVuIGEgY2xhc3Mgc3BlY2lmaWNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHNwZWMgQ2xhc3Mgc3BlY2lmaWNhdGlvbiAod2hpY2ggbXVzdCBkZWZpbmUgYHJlbmRlcmApLlxuICAgKiBAcmV0dXJuIHtmdW5jdGlvbn0gQ29tcG9uZW50IGNvbnN0cnVjdG9yIGZ1bmN0aW9uLlxuICAgKiBAcHVibGljXG4gICAqL1xuICBjcmVhdGVDbGFzczogZnVuY3Rpb24gKHNwZWMpIHtcbiAgICB2YXIgQ29uc3RydWN0b3IgPSBmdW5jdGlvbiAocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgICAgIC8vIFRoaXMgY29uc3RydWN0b3IgaXMgb3ZlcnJpZGRlbiBieSBtb2Nrcy4gVGhlIGFyZ3VtZW50IGlzIHVzZWRcbiAgICAgIC8vIGJ5IG1vY2tzIHRvIGFzc2VydCBvbiB3aGF0IGdldHMgbW91bnRlZC5cblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcodGhpcyBpbnN0YW5jZW9mIENvbnN0cnVjdG9yLCAnU29tZXRoaW5nIGlzIGNhbGxpbmcgYSBSZWFjdCBjb21wb25lbnQgZGlyZWN0bHkuIFVzZSBhIGZhY3Rvcnkgb3IgJyArICdKU1ggaW5zdGVhZC4gU2VlOiBodHRwczovL2ZiLm1lL3JlYWN0LWxlZ2FjeWZhY3RvcnknKSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgLy8gV2lyZSB1cCBhdXRvLWJpbmRpbmdcbiAgICAgIGlmICh0aGlzLl9fcmVhY3RBdXRvQmluZE1hcCkge1xuICAgICAgICBiaW5kQXV0b0JpbmRNZXRob2RzKHRoaXMpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gICAgICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xuXG4gICAgICB0aGlzLnN0YXRlID0gbnVsbDtcblxuICAgICAgLy8gUmVhY3RDbGFzc2VzIGRvZXNuJ3QgaGF2ZSBjb25zdHJ1Y3RvcnMuIEluc3RlYWQsIHRoZXkgdXNlIHRoZVxuICAgICAgLy8gZ2V0SW5pdGlhbFN0YXRlIGFuZCBjb21wb25lbnRXaWxsTW91bnQgbWV0aG9kcyBmb3IgaW5pdGlhbGl6YXRpb24uXG5cbiAgICAgIHZhciBpbml0aWFsU3RhdGUgPSB0aGlzLmdldEluaXRpYWxTdGF0ZSA/IHRoaXMuZ2V0SW5pdGlhbFN0YXRlKCkgOiBudWxsO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gV2UgYWxsb3cgYXV0by1tb2NrcyB0byBwcm9jZWVkIGFzIGlmIHRoZXkncmUgcmV0dXJuaW5nIG51bGwuXG4gICAgICAgIGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAndW5kZWZpbmVkJyAmJiB0aGlzLmdldEluaXRpYWxTdGF0ZS5faXNNb2NrRnVuY3Rpb24pIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIHByb2JhYmx5IGJhZCBwcmFjdGljZS4gQ29uc2lkZXIgd2FybmluZyBoZXJlIGFuZFxuICAgICAgICAgIC8vIGRlcHJlY2F0aW5nIHRoaXMgY29udmVuaWVuY2UuXG4gICAgICAgICAgaW5pdGlhbFN0YXRlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgISh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpbml0aWFsU3RhdGUpKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICclcy5nZXRJbml0aWFsU3RhdGUoKTogbXVzdCByZXR1cm4gYW4gb2JqZWN0IG9yIG51bGwnLCBDb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSB8fCAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuc3RhdGUgPSBpbml0aWFsU3RhdGU7XG4gICAgfTtcbiAgICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBuZXcgUmVhY3RDbGFzc0NvbXBvbmVudCgpO1xuICAgIENvbnN0cnVjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yO1xuXG4gICAgaW5qZWN0ZWRNaXhpbnMuZm9yRWFjaChtaXhTcGVjSW50b0NvbXBvbmVudC5iaW5kKG51bGwsIENvbnN0cnVjdG9yKSk7XG5cbiAgICBtaXhTcGVjSW50b0NvbXBvbmVudChDb25zdHJ1Y3Rvciwgc3BlYyk7XG5cbiAgICAvLyBJbml0aWFsaXplIHRoZSBkZWZhdWx0UHJvcHMgcHJvcGVydHkgYWZ0ZXIgYWxsIG1peGlucyBoYXZlIGJlZW4gbWVyZ2VkLlxuICAgIGlmIChDb25zdHJ1Y3Rvci5nZXREZWZhdWx0UHJvcHMpIHtcbiAgICAgIENvbnN0cnVjdG9yLmRlZmF1bHRQcm9wcyA9IENvbnN0cnVjdG9yLmdldERlZmF1bHRQcm9wcygpO1xuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvLyBUaGlzIGlzIGEgdGFnIHRvIGluZGljYXRlIHRoYXQgdGhlIHVzZSBvZiB0aGVzZSBtZXRob2QgbmFtZXMgaXMgb2ssXG4gICAgICAvLyBzaW5jZSBpdCdzIHVzZWQgd2l0aCBjcmVhdGVDbGFzcy4gSWYgaXQncyBub3QsIHRoZW4gaXQncyBsaWtlbHkgYVxuICAgICAgLy8gbWlzdGFrZSBzbyB3ZSdsbCB3YXJuIHlvdSB0byB1c2UgdGhlIHN0YXRpYyBwcm9wZXJ0eSwgcHJvcGVydHlcbiAgICAgIC8vIGluaXRpYWxpemVyIG9yIGNvbnN0cnVjdG9yIHJlc3BlY3RpdmVseS5cbiAgICAgIGlmIChDb25zdHJ1Y3Rvci5nZXREZWZhdWx0UHJvcHMpIHtcbiAgICAgICAgQ29uc3RydWN0b3IuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkID0ge307XG4gICAgICB9XG4gICAgICBpZiAoQ29uc3RydWN0b3IucHJvdG90eXBlLmdldEluaXRpYWxTdGF0ZSkge1xuICAgICAgICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUuZ2V0SW5pdGlhbFN0YXRlLmlzUmVhY3RDbGFzc0FwcHJvdmVkID0ge307XG4gICAgICB9XG4gICAgfVxuXG4gICAgIUNvbnN0cnVjdG9yLnByb3RvdHlwZS5yZW5kZXIgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAnY3JlYXRlQ2xhc3MoLi4uKTogQ2xhc3Mgc3BlY2lmaWNhdGlvbiBtdXN0IGltcGxlbWVudCBhIGByZW5kZXJgIG1ldGhvZC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIUNvbnN0cnVjdG9yLnByb3RvdHlwZS5jb21wb25lbnRTaG91bGRVcGRhdGUsICclcyBoYXMgYSBtZXRob2QgY2FsbGVkICcgKyAnY29tcG9uZW50U2hvdWxkVXBkYXRlKCkuIERpZCB5b3UgbWVhbiBzaG91bGRDb21wb25lbnRVcGRhdGUoKT8gJyArICdUaGUgbmFtZSBpcyBwaHJhc2VkIGFzIGEgcXVlc3Rpb24gYmVjYXVzZSB0aGUgZnVuY3Rpb24gaXMgJyArICdleHBlY3RlZCB0byByZXR1cm4gYSB2YWx1ZS4nLCBzcGVjLmRpc3BsYXlOYW1lIHx8ICdBIGNvbXBvbmVudCcpIDogdW5kZWZpbmVkO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoIUNvbnN0cnVjdG9yLnByb3RvdHlwZS5jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzLCAnJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKT8nLCBzcGVjLmRpc3BsYXlOYW1lIHx8ICdBIGNvbXBvbmVudCcpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFJlZHVjZSB0aW1lIHNwZW50IGRvaW5nIGxvb2t1cHMgYnkgc2V0dGluZyB0aGVzZSBvbiB0aGUgcHJvdG90eXBlLlxuICAgIGZvciAodmFyIG1ldGhvZE5hbWUgaW4gUmVhY3RDbGFzc0ludGVyZmFjZSkge1xuICAgICAgaWYgKCFDb25zdHJ1Y3Rvci5wcm90b3R5cGVbbWV0aG9kTmFtZV0pIHtcbiAgICAgICAgQ29uc3RydWN0b3IucHJvdG90eXBlW21ldGhvZE5hbWVdID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uOiB7XG4gICAgaW5qZWN0TWl4aW46IGZ1bmN0aW9uIChtaXhpbikge1xuICAgICAgaW5qZWN0ZWRNaXhpbnMucHVzaChtaXhpbik7XG4gICAgfVxuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RDbGFzcztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDbGFzcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 123 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactComponent\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactNoopUpdateQueue = __webpack_require__(124);\n\nvar canDefineProperty = __webpack_require__(43);\nvar emptyObject = __webpack_require__(58);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction ReactComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n // We initialize the default updater but the real one gets injected by the\n // renderer.\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nReactComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nReactComponent.prototype.setState = function (partialState, callback) {\n !((typeof partialState === 'undefined' ? 'undefined' : _typeof(partialState)) === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.') : invariant(false) : undefined;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : undefined;\n }\n this.updater.enqueueSetState(this, partialState);\n if (callback) {\n this.updater.enqueueCallback(this, callback);\n }\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nReactComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this);\n if (callback) {\n this.updater.enqueueCallback(this, callback);\n }\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\nif (process.env.NODE_ENV !== 'production') {\n var deprecatedAPIs = {\n getDOMNode: ['getDOMNode', 'Use ReactDOM.findDOMNode(component) instead.'],\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceProps: ['replaceProps', 'Instead, call render again at the top level.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'],\n setProps: ['setProps', 'Instead, call render again at the top level.']\n };\n var defineDeprecationWarning = function defineDeprecationWarning(methodName, info) {\n if (canDefineProperty) {\n Object.defineProperty(ReactComponent.prototype, methodName, {\n get: function get() {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : undefined;\n return undefined;\n }\n });\n }\n };\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nmodule.exports = ReactComponent;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RDb21wb25lbnQuanM/MjBlYyJdLCJuYW1lcyI6WyJSZWFjdE5vb3BVcGRhdGVRdWV1ZSIsInJlcXVpcmUiLCJjYW5EZWZpbmVQcm9wZXJ0eSIsImVtcHR5T2JqZWN0IiwiaW52YXJpYW50Iiwid2FybmluZyIsIlJlYWN0Q29tcG9uZW50IiwicHJvcHMiLCJjb250ZXh0IiwidXBkYXRlciIsInJlZnMiLCJwcm90b3R5cGUiLCJpc1JlYWN0Q29tcG9uZW50Iiwic2V0U3RhdGUiLCJwYXJ0aWFsU3RhdGUiLCJjYWxsYmFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImVucXVldWVTZXRTdGF0ZSIsImVucXVldWVDYWxsYmFjayIsImZvcmNlVXBkYXRlIiwiZW5xdWV1ZUZvcmNlVXBkYXRlIiwiZGVwcmVjYXRlZEFQSXMiLCJnZXRET01Ob2RlIiwiaXNNb3VudGVkIiwicmVwbGFjZVByb3BzIiwicmVwbGFjZVN0YXRlIiwic2V0UHJvcHMiLCJkZWZpbmVEZXByZWNhdGlvbldhcm5pbmciLCJtZXRob2ROYW1lIiwiaW5mbyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0IiwiZm5OYW1lIiwiaGFzT3duUHJvcGVydHkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7OztBQUVBLElBQUlBLHVCQUF1QixtQkFBQUMsQ0FBUSxHQUFSLENBQTNCOztBQUVBLElBQUlDLG9CQUFvQixtQkFBQUQsQ0FBUSxFQUFSLENBQXhCO0FBQ0EsSUFBSUUsY0FBYyxtQkFBQUYsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUcsWUFBWSxtQkFBQUgsQ0FBUSxFQUFSLENBQWhCO0FBQ0EsSUFBSUksVUFBVSxtQkFBQUosQ0FBUSxFQUFSLENBQWQ7O0FBRUE7OztB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TUFBekIsRUFBaUNaLGVBQWVZLE1BQWYsQ0FBakM7QUFDRDtBQUNGO0FBQ0Y7O0FBRURFLE9BQU9DLE9BQVAsR0FBaUJqQyxjQUFqQixDIiwiZmlsZSI6IjEyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdENvbXBvbmVudFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlID0gcmVxdWlyZSgnLi9SZWFjdE5vb3BVcGRhdGVRdWV1ZScpO1xuXG52YXIgY2FuRGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuL2NhbkRlZmluZVByb3BlcnR5Jyk7XG52YXIgZW1wdHlPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9lbXB0eU9iamVjdCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xudmFyIHdhcm5pbmcgPSByZXF1aXJlKCdmYmpzL2xpYi93YXJuaW5nJyk7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBoZWxwZXJzIGZvciB0aGUgdXBkYXRpbmcgc3RhdGUgb2YgYSBjb21wb25lbnQuXG4gKi9cbmZ1bmN0aW9uIFJlYWN0Q29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gIC8vIFdlIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgdXBkYXRlciBidXQgdGhlIHJlYWwgb25lIGdldHMgaW5qZWN0ZWQgYnkgdGhlXG4gIC8vIHJlbmRlcmVyLlxuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG5SZWFjdENvbXBvbmVudC5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudCA9IHt9O1xuXG4vKipcbiAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgdG8gbXV0YXRlXG4gKiBzdGF0ZS4gWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGB0aGlzLnN0YXRlYCB3aWxsIGJlIGltbWVkaWF0ZWx5IHVwZGF0ZWQsIHNvXG4gKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICpcbiAqIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IGNhbGxzIHRvIGBzZXRTdGF0ZWAgd2lsbCBydW4gc3luY2hyb25vdXNseSxcbiAqIGFzIHRoZXkgbWF5IGV2ZW50dWFsbHkgYmUgYmF0Y2hlZCB0b2dldGhlci4gIFlvdSBjYW4gcHJvdmlkZSBhbiBvcHRpb25hbFxuICogY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIGNhbGwgdG8gc2V0U3RhdGUgaXMgYWN0dWFsbHlcbiAqIGNvbXBsZXRlZC5cbiAqXG4gKiBXaGVuIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdG8gc2V0U3RhdGUsIGl0IHdpbGwgYmUgY2FsbGVkIGF0IHNvbWUgcG9pbnQgaW5cbiAqIHRoZSBmdXR1cmUgKG5vdCBzeW5jaHJvbm91c2x5KS4gSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgdXAgdG8gZGF0ZVxuICogY29tcG9uZW50IGFyZ3VtZW50cyAoc3RhdGUsIHByb3BzLCBjb250ZXh0KS4gVGhlc2UgdmFsdWVzIGNhbiBiZSBkaWZmZXJlbnRcbiAqIGZyb20gdGhpcy4qIGJlY2F1c2UgeW91ciBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIGFmdGVyIHJlY2VpdmVQcm9wcyBidXQgYmVmb3JlXG4gKiBzaG91bGRDb21wb25lbnRVcGRhdGUsIGFuZCB0aGlzIG5ldyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHdpbGwgbm90IHlldCBiZVxuICogYXNzaWduZWQgdG8gdGhpcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdHxmdW5jdGlvbn0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSBvciBmdW5jdGlvbiB0b1xuICogICAgICAgIHByb2R1Y2UgbmV4dCBwYXJ0aWFsIHN0YXRlIHRvIGJlIG1lcmdlZCB3aXRoIGN1cnJlbnQgc3RhdGUuXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gKiBAZmluYWxcbiAqIEBwcm90ZWN0ZWRcbiAqL1xuUmVhY3RDb21wb25lbnQucHJvdG90eXBlLnNldFN0YXRlID0gZnVuY3Rpb24gKHBhcnRpYWxTdGF0ZSwgY2FsbGJhY2spIHtcbiAgISh0eXBlb2YgcGFydGlhbFN0YXRlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgcGFydGlhbFN0YXRlID09PSAnZnVuY3Rpb24nIHx8IHBhcnRpYWxTdGF0ZSA9PSBudWxsKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdzZXRTdGF0ZSguLi4pOiB0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhICcgKyAnZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhwYXJ0aWFsU3RhdGUgIT0gbnVsbCwgJ3NldFN0YXRlKC4uLik6IFlvdSBwYXNzZWQgYW4gdW5kZWZpbmVkIG9yIG51bGwgc3RhdGUgb2JqZWN0OyAnICsgJ2luc3RlYWQsIHVzZSBmb3JjZVVwZGF0ZSgpLicpIDogdW5kZWZpbmVkO1xuICB9XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlKTtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgdGhpcy51cGRhdGVyLmVucXVldWVDYWxsYmFjayh0aGlzLCBjYWxsYmFjayk7XG4gIH1cbn07XG5cbi8qKlxuICogRm9yY2VzIGFuIHVwZGF0ZS4gVGhpcyBzaG91bGQgb25seSBiZSBpbnZva2VkIHdoZW4gaXQgaXMga25vd24gd2l0aFxuICogY2VydGFpbnR5IHRoYXQgd2UgYXJlICoqbm90KiogaW4gYSBET00gdHJhbnNhY3Rpb24uXG4gKlxuICogWW91IG1heSB3YW50IHRvIGNhbGwgdGhpcyB3aGVuIHlvdSBrbm93IHRoYXQgc29tZSBkZWVwZXIgYXNwZWN0IG9mIHRoZVxuICogY29tcG9uZW50J3Mgc3RhdGUgaGFzIGNoYW5nZWQgYnV0IGBzZXRTdGF0ZWAgd2FzIG5vdCBjYWxsZWQuXG4gKlxuICogVGhpcyB3aWxsIG5vdCBpbnZva2UgYHNob3VsZENvbXBvbmVudFVwZGF0ZWAsIGJ1dCBpdCB3aWxsIGludm9rZVxuICogYGNvbXBvbmVudFdpbGxVcGRhdGVgIGFuZCBgY29tcG9uZW50RGlkVXBkYXRlYC5cbiAqXG4gKiBAcGFyYW0gez9mdW5jdGlvbn0gY2FsbGJhY2sgQ2FsbGVkIGFmdGVyIHVwZGF0ZSBpcyBjb21wbGV0ZS5cbiAqIEBmaW5hbFxuICogQHByb3RlY3RlZFxuICovXG5SZWFjdENvbXBvbmVudC5wcm90b3R5cGUuZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgdGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzKTtcbiAgaWYgKGNhbGxiYWNrKSB7XG4gICAgdGhpcy51cGRhdGVyLmVucXVldWVDYWxsYmFjayh0aGlzLCBjYWxsYmFjayk7XG4gIH1cbn07XG5cbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgZ2V0RE9NTm9kZTogWydnZXRET01Ob2RlJywgJ1VzZSBSZWFjdERPTS5maW5kRE9NTm9kZShjb21wb25lbnQpIGluc3RlYWQuJ10sXG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VQcm9wczogWydyZXBsYWNlUHJvcHMnLCAnSW5zdGVhZCwgY2FsbCByZW5kZXIgYWdhaW4gYXQgdGhlIHRvcCBsZXZlbC4nXSxcbiAgICByZXBsYWNlU3RhdGU6IFsncmVwbGFjZVN0YXRlJywgJ1JlZmFjdG9yIHlvdXIgY29kZSB0byB1c2Ugc2V0U3RhdGUgaW5zdGVhZCAoc2VlICcgKyAnaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8zMjM2KS4nXSxcbiAgICBzZXRQcm9wczogWydzZXRQcm9wcycsICdJbnN0ZWFkLCBjYWxsIHJlbmRlciBhZ2FpbiBhdCB0aGUgdG9wIGxldmVsLiddXG4gIH07XG4gIHZhciBkZWZpbmVEZXByZWNhdGlvbldhcm5pbmcgPSBmdW5jdGlvbiAobWV0aG9kTmFtZSwgaW5mbykge1xuICAgIGlmIChjYW5EZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWN0Q29tcG9uZW50LnByb3RvdHlwZSwgbWV0aG9kTmFtZSwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJyVzKC4uLikgaXMgZGVwcmVjYXRlZCBpbiBwbGFpbiBKYXZhU2NyaXB0IFJlYWN0IGNsYXNzZXMuICVzJywgaW5mb1swXSwgaW5mb1sxXSkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBmb3IgKHZhciBmbk5hbWUgaW4gZGVwcmVjYXRlZEFQSXMpIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFQSXMuaGFzT3duUHJvcGVydHkoZm5OYW1lKSkge1xuICAgICAgZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKGZuTmFtZSwgZGVwcmVjYXRlZEFQSXNbZm5OYW1lXSk7XG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RDb21wb25lbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0Q29tcG9uZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 124 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactNoopUpdateQueue\n */\n\n'use strict';\n\nvar warning = __webpack_require__(25);\n\nfunction warnTDZ(publicInstance, callerName) {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, publicInstance.constructor && publicInstance.constructor.displayName || '') : undefined;\n }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function isMounted(publicInstance) {\n return false;\n },\n\n /**\n * Enqueue a callback that will be executed after all the pending updates\n * have processed.\n *\n * @param {ReactClass} publicInstance The instance to use as `this` context.\n * @param {?function} callback Called after state is updated.\n * @internal\n */\n enqueueCallback: function enqueueCallback(publicInstance, callback) {},\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @internal\n */\n enqueueForceUpdate: function enqueueForceUpdate(publicInstance) {\n warnTDZ(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @internal\n */\n enqueueReplaceState: function enqueueReplaceState(publicInstance, completeState) {\n warnTDZ(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @internal\n */\n enqueueSetState: function enqueueSetState(publicInstance, partialState) {\n warnTDZ(publicInstance, 'setState');\n },\n\n /**\n * Sets a subset of the props.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialProps Subset of the next props.\n * @internal\n */\n enqueueSetProps: function enqueueSetProps(publicInstance, partialProps) {\n warnTDZ(publicInstance, 'setProps');\n },\n\n /**\n * Replaces all of the props.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} props New props.\n * @internal\n */\n enqueueReplaceProps: function enqueueReplaceProps(publicInstance, props) {\n warnTDZ(publicInstance, 'replaceProps');\n }\n\n};\n\nmodule.exports = ReactNoopUpdateQueue;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3ROb29wVXBkYXRlUXVldWUuanM/OWY5MiJdLCJuYW1lcyI6WyJ3YXJuaW5nIiwicmVxdWlyZSIsIndhcm5URFoiLCJwdWJsaWNJbnN0YW5jZSIsImNhbGxlck5hbWUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zdHJ1Y3RvciIsImRpc3BsYXlOYW1lIiwidW5kZWZpbmVkIiwiUmVhY3ROb29wVXBkYXRlUXVldWUiLCJpc01vdW50ZWQiLCJlbnF1ZXVlQ2FsbGJhY2siLCJjYWxsYmFjayIsImVucXVldWVGb3JjZVVwZGF0ZSIsImVucXVldWVSZXBsYWNlU3RhdGUiLCJjb21wbGV0ZVN0YXRlIiwiZW5xdWV1ZVNldFN0YXRlIiwicGFydGlhbFN0YXRlIiwiZW5xdWV1ZVNldFByb3BzIiwicGFydGlhbFByb3BzIiwiZW5xdWV1ZVJlcGxhY2VQcm9wcyIsInByb3BzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsVUFBVSxtQkFBQUMsQ0FBUSxFQUFSLENBQWQ7O0FBRUEsU0FBU0MsT0FBVCxDQUFpQkMsY0FBakIsRUFBaUNDLFVBQWpDLEVBQTZDO0FBQzNDLE1BQUlDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6Q0YsWUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDUCxRQUFRLEtBQVIsRUFBZSwrREFBK0QsZ0VBQS9ELEdBQWtJLDhEQUFqSixFQUFpTkksVUFBak4sRUFBNk5BLFVBQTdOLEVBQXlPRCxlQUFlSyxXQUFmLElBQThCTCxlQUFlSyxXQUFmLENBQTJCQyxXQUF6RCxJQUF3RSxFQUFqVCxDQUF4QyxHQUErVkMsU0FBL1Y7QUFDRDtBQUNGOztBQUVEOzs7QUFHQSxJQUFJQyx1QkFBdUI7O0FBRXpCOzs7Ozs7O0FBT0FDLGFBQVcsbUJBQVVULGNBQVYsRUFBMEI7QUFDbkMsV0FBTyxLQUFQO0FBQ0QsR0FYd0I7O0FBYXpCOzs7Ozs7OztBQVFBVSxtQkFBaUIseUJBQVVWLGNBQVYsRUFBMEJXLFFBQTFCLEVBQW9DLENBQUUsQ0FyQjlCOztBQXVCekI7Ozs7Ozs7Ozs7Ozs7QUFhQUMsc0JBQW9CLDRCQUFVWixjQUFWLEVBQTBCO0FBQzVDRCxZQUFRQyxjQUFSLEVBQXdCLGFBQXhCO0FBQ0QsR0F0Q3dCOztBQXdDekI7Ozs7Ozs7Ozs7O0FBV0FhLHVCQUFxQiw2QkFBVWIsY0FBVixFQUEwQmMsYUFBMUIsRUFBeUM7QUFDNURmLFlBQVFDLGNBQVIsRUFBd0IsY0FBeEI7QUFDRCxHQXJEd0I7O0FBdUR6Qjs7Ozs7Ozs7OztBQVVBZSxtQkFBaUIseUJBQVVmLGNBQVYsRUFBMEJnQixZQUExQixFQUF3QztBQUN2RGpCLFlBQVFDLGNBQVIsRUFBd0IsVUFBeEI7QUFDRCxHQW5Fd0I7O0FBcUV6Qjs7Ozs7OztBQU9BaUIsbUJBQWlCLHlCQUFVakIsY0FBVixFQUEwQmtCLFlBQTFCLEVBQXdDO0FBQ3ZEbkIsWUFBUUMsY0FBUixFQUF3QixVQUF4QjtBQUNELEdBOUV3Qjs7QUFnRnpCOzs7Ozs7O0FBT0FtQix1QkFBcUIsNkJBQVVuQixjQUFWLEVBQTBCb0IsS0FBMUIsRUFBaUM7QUFDcERyQixZQUFRQyxjQUFSLEVBQXdCLGNBQXhCO0FBQ0Q7O0FBekZ3QixDQUEzQjs7QUE2RkFxQixPQUFPQyxPQUFQLEdBQWlCZCxvQkFBakIsQyIsImZpbGUiOiIxMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxuZnVuY3Rpb24gd2FyblREWihwdWJsaWNJbnN0YW5jZSwgY2FsbGVyTmFtZSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnJXMoLi4uKTogQ2FuIG9ubHkgdXBkYXRlIGEgbW91bnRlZCBvciBtb3VudGluZyBjb21wb25lbnQuICcgKyAnVGhpcyB1c3VhbGx5IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvbiBhbiB1bm1vdW50ZWQgY29tcG9uZW50LiAnICsgJ1RoaXMgaXMgYSBuby1vcC4gUGxlYXNlIGNoZWNrIHRoZSBjb2RlIGZvciB0aGUgJXMgY29tcG9uZW50LicsIGNhbGxlck5hbWUsIGNhbGxlck5hbWUsIHB1YmxpY0luc3RhbmNlLmNvbnN0cnVjdG9yICYmIHB1YmxpY0luc3RhbmNlLmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lIHx8ICcnKSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGFic3RyYWN0IEFQSSBmb3IgYW4gdXBkYXRlIHF1ZXVlLlxuICovXG52YXIgUmVhY3ROb29wVXBkYXRlUXVldWUgPSB7XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvc2l0ZSBjb21wb25lbnQgaXMgbW91bnRlZC5cbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2Ugd2Ugd2FudCB0byB0ZXN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIG1vdW50ZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAgICogQHByb3RlY3RlZFxuICAgKiBAZmluYWxcbiAgICovXG4gIGlzTW91bnRlZDogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFbnF1ZXVlIGEgY2FsbGJhY2sgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCB0aGUgcGVuZGluZyB1cGRhdGVzXG4gICAqIGhhdmUgcHJvY2Vzc2VkLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0byB1c2UgYXMgYHRoaXNgIGNvbnRleHQuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgc3RhdGUgaXMgdXBkYXRlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlQ2FsbGJhY2s6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY2FsbGJhY2spIHt9LFxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gICAqIGNlcnRhaW50eSB0aGF0IHdlIGFyZSAqKm5vdCoqIGluIGEgRE9NIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gICAqIGNvbXBvbmVudCdzIHN0YXRlIGhhcyBjaGFuZ2VkIGJ1dCBgc2V0U3RhdGVgIHdhcyBub3QgY2FsbGVkLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gICAqIGBjb21wb25lbnRXaWxsVXBkYXRlYCBhbmQgYGNvbXBvbmVudERpZFVwZGF0ZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVGb3JjZVVwZGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgd2FyblREWihwdWJsaWNJbnN0YW5jZSwgJ2ZvcmNlVXBkYXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyBvciBgc2V0U3RhdGVgIHRvIG11dGF0ZSBzdGF0ZS5cbiAgICogWW91IHNob3VsZCB0cmVhdCBgdGhpcy5zdGF0ZWAgYXMgaW1tdXRhYmxlLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBgdGhpcy5zdGF0ZWAgd2lsbCBiZSBpbW1lZGlhdGVseSB1cGRhdGVkLCBzb1xuICAgKiBhY2Nlc3NpbmcgYHRoaXMuc3RhdGVgIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QgbWF5IHJldHVybiB0aGUgb2xkIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbXBsZXRlU3RhdGUgTmV4dCBzdGF0ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVN0YXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNvbXBsZXRlU3RhdGUpIHtcbiAgICB3YXJuVERaKHB1YmxpY0luc3RhbmNlLCAncmVwbGFjZVN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHN0YXRlLiBUaGlzIG9ubHkgZXhpc3RzIGJlY2F1c2UgX3BlbmRpbmdTdGF0ZSBpc1xuICAgKiBpbnRlcm5hbC4gVGhpcyBwcm92aWRlcyBhIG1lcmdpbmcgc3RyYXRlZ3kgdGhhdCBpcyBub3QgYXZhaWxhYmxlIHRvIGRlZXBcbiAgICogcHJvcGVydGllcyB3aGljaCBpcyBjb25mdXNpbmcuIFRPRE86IEV4cG9zZSBwZW5kaW5nU3RhdGUgb3IgZG9uJ3QgdXNlIGl0XG4gICAqIGR1cmluZyB0aGUgbWVyZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHRoYXQgc2hvdWxkIHJlcmVuZGVyLlxuICAgKiBAcGFyYW0ge29iamVjdH0gcGFydGlhbFN0YXRlIE5leHQgcGFydGlhbCBzdGF0ZSB0byBiZSBtZXJnZWQgd2l0aCBzdGF0ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgcGFydGlhbFN0YXRlKSB7XG4gICAgd2FyblREWihwdWJsaWNJbnN0YW5jZSwgJ3NldFN0YXRlJyk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNldHMgYSBzdWJzZXQgb2YgdGhlIHByb3BzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpYWxQcm9wcyBTdWJzZXQgb2YgdGhlIG5leHQgcHJvcHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZVNldFByb3BzOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIHBhcnRpYWxQcm9wcykge1xuICAgIHdhcm5URFoocHVibGljSW5zdGFuY2UsICdzZXRQcm9wcycpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgb2YgdGhlIHByb3BzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IHByb3BzIE5ldyBwcm9wcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlUmVwbGFjZVByb3BzOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIHByb3BzKSB7XG4gICAgd2FyblREWihwdWJsaWNJbnN0YW5jZSwgJ3JlcGxhY2VQcm9wcycpO1xuICB9XG5cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3ROb29wVXBkYXRlUXVldWU7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0Tm9vcFVwZGF0ZVF1ZXVlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 125 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactReconcileTransaction\n * @typechecks static-only\n */\n\n'use strict';\n\nvar CallbackQueue = __webpack_require__(55);\nvar PooledClass = __webpack_require__(56);\nvar ReactBrowserEventEmitter = __webpack_require__(29);\nvar ReactDOMFeatureFlags = __webpack_require__(41);\nvar ReactInputSelection = __webpack_require__(126);\nvar Transaction = __webpack_require__(57);\n\nvar assign = __webpack_require__(39);\n\n/**\n * Ensures that, when possible, the selection range (currently selected text\n * input) is not disturbed by performing the transaction.\n */\nvar SELECTION_RESTORATION = {\n /**\n * @return {Selection} Selection information.\n */\n initialize: ReactInputSelection.getSelectionInformation,\n /**\n * @param {Selection} sel Selection information returned from `initialize`.\n */\n close: ReactInputSelection.restoreSelection\n};\n\n/**\n * Suppresses events (blur/focus) that could be inadvertently dispatched due to\n * high level DOM manipulations (like temporarily removing a text input from the\n * DOM).\n */\nvar EVENT_SUPPRESSION = {\n /**\n * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before\n * the reconciliation.\n */\n initialize: function initialize() {\n var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();\n ReactBrowserEventEmitter.setEnabled(false);\n return currentlyEnabled;\n },\n\n /**\n * @param {boolean} previouslyEnabled Enabled status of\n * `ReactBrowserEventEmitter` before the reconciliation occurred. `close`\n * restores the previous value.\n */\n close: function close(previouslyEnabled) {\n ReactBrowserEventEmitter.setEnabled(previouslyEnabled);\n }\n};\n\n/**\n * Provides a queue for collecting `componentDidMount` and\n * `componentDidUpdate` callbacks during the the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function initialize() {\n this.reactMountReady.reset();\n },\n\n /**\n * After DOM is flushed, invoke all registered `onDOMReady` callbacks.\n */\n close: function close() {\n this.reactMountReady.notifyAll();\n }\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];\n\n/**\n * Currently:\n * - The order that these are listed in the transaction is critical:\n * - Suppresses events.\n * - Restores selection range.\n *\n * Future:\n * - Restore document/overflow scroll positions that were unintentionally\n * modified via DOM insertions above the top viewport boundary.\n * - Implement/integrate with customized constraint based layout system and keep\n * track of which dimensions must be remeasured.\n *\n * @class ReactReconcileTransaction\n */\nfunction ReactReconcileTransaction(forceHTML) {\n this.reinitializeTransaction();\n // Only server-side rendering really needs this option (see\n // `ReactServerRendering`), but server-side uses\n // `ReactServerRenderingTransaction` instead. This option is here so that it's\n // accessible and defaults to false when `ReactDOMComponent` and\n // `ReactTextComponent` checks it in `mountComponent`.`\n this.renderToStaticMarkup = false;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = !forceHTML && ReactDOMFeatureFlags.useCreateElement;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array<object>} List of operation wrap procedures.\n * TODO: convert to array<TransactionWrapper>\n */\n getTransactionWrappers: function getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function getReactMountReady() {\n return this.reactMountReady;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function destructor() {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\nassign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactReconcileTransaction);\n\nmodule.exports = ReactReconcileTransaction;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5qcz9jOWNiIl0sIm5hbWVzIjpbIkNhbGxiYWNrUXVldWUiLCJyZXF1aXJlIiwiUG9vbGVkQ2xhc3MiLCJSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIiLCJSZWFjdERPTUZlYXR1cmVGbGFncyIsIlJlYWN0SW5wdXRTZWxlY3Rpb24iLCJUcmFuc2FjdGlvbiIsImFzc2lnbiIsIlNFTEVDVElPTl9SRVNUT1JBVElPTiIsImluaXRpYWxpemUiLCJnZXRTZWxlY3Rpb25JbmZvcm1hdGlvbiIsImNsb3NlIiwicmVzdG9yZVNlbGVjdGlvbiIsIkVWRU5UX1NVUFBSRVNTSU9OIiwiY3VycmVudGx5RW5hYmxlZCIsImlzRW5hYmxlZCIsInNldEVuYWJsZWQiLCJwcmV2aW91c2x5RW5hYmxlZCIsIk9OX0RPTV9SRUFEWV9RVUVVRUlORyIsInJlYWN0TW91bnRSZWFkeSIsInJlc2V0Iiwibm90aWZ5QWxsIiwiVFJBTlNBQ1RJT05fV1JBUFBFUlMiLCJSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uIiwiZm9yY2VIVE1MIiwicmVpbml0aWFsaXplVHJhbnNhY3Rpb24iLCJyZW5kZXJUb1N0YXRpY01hcmt1cCIsImdldFBvb2xlZCIsInVzZUNyZWF0ZUVsZW1lbnQiLCJNaXhpbiIsImdldFRyYW5zYWN0aW9uV3JhcHBlcnMiLCJnZXRSZWFjdE1vdW50UmVhZHkiLCJkZXN0cnVjdG9yIiwicmVsZWFzZSIsInByb3RvdHlwZSIsImFkZFBvb2xpbmdUbyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxnQkFBZ0IsbUJBQUFDLENBQVEsRUFBUixDQUFwQjtBQUNBLElBQUlDLGNBQWMsbUJBQUFELENBQVEsRUFBUixDQUFsQjtBQUNBLElBQUlFLDJCQUEyQixtQkFBQUYsQ0FBUSxFQUFSLENBQS9CO0FBQ0EsSUFBSUcsdUJBQXVCLG1CQUFBSCxDQUFRLEVBQVIsQ0FBM0I7QUFDQSxJQUFJSSxzQkFBc0IsbUJBQUFKLENBQVEsR0FBUixDQUExQjtBQUNBLElBQUlLLGNBQWMsbUJBQUFMLENBQVEsRUFBUixDQUFsQjs7QUFFQSxJQUFJTSxTQUFTLG1CQUFBTixDQUFRLEVBQVIsQ0FBYjs7QUFFQTs7OztBQUlBLElBQUlPLHdCQUF3QjtBQUMxQjs7O0FBR0FDLGNBQVlKLG9CQUFvQkssdUJBSk47QUFLMUI7OztBQUdBQyxTQUFPTixvQkFBb0JPO0FBUkQsQ0FBNUI7O0FBV0E7Ozs7O0FBS0EsSUFBSUMsb0JBQW9CO0FBQ3RCOzs7O0FBSUFKLGNBQVksc0JBQVk7QUFDdEIsUUFBSUssbUJBQW1CWCx5QkFBeUJZLFNBQXpCLEVBQXZCO0FBQ0FaLDZCQUF5QmEsVUFBekIsQ0FBb0MsS0FBcEM7QUFDQSxXQUFPRixnQkFBUDtBQUNELEdBVHFCOztBQVd0Qjs7Ozs7QUFLQUgsU0FBTyxlQUFVTSxpQkFBVixFQUE2QjtBQUNsQ2QsNkJBQXlCYSxVQUF6QixDQUFvQ0MsaUJBQXBDO0FBQ0Q7QUFsQnFCLENBQXhCOztBQXFCQTs7OztBQUlBLElBQUlDLHdCQUF3QjtBQUMxQjs7O0FBR0FULGNBQVksc0JBQVk7QUFDdEIsU0FBS1UsZUFBTCxDQUFxQkMsS0FBckI7QUFDRCxHQU55Qjs7QUFRMUI7OztBQUdBVCxTQUFPLGlCQUFZO0FBQ2pCLFNBQUtRLGVBQUwsQ0FBcUJFLFNBQXJCO0FBQ0Q7QUFieUIsQ0FBNUI7O0FBZ0JBOzs7OztBQUtBLElBQUlDLHVCQUF1QixDQUFDZCxxQkFBRCxFQUF3QkssaUJBQXhCLEVBQTJDSyxxQkFBM0MsQ0FBM0I7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBU0sseUJBQVQsQ0FBbUNDLFNBQW5DLEVBQThDO0FBQzVDLE9BQUtDLHVCQUFMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQUtDLG9CQUFMLEdBQTRCLEtBQTVCO0FBQ0EsT0FBS1AsZUFBTCxHQUF1Qm5CLGNBQWMyQixTQUFkLENBQXdCLElBQXhCLENBQXZCO0FBQ0EsT0FBS0MsZ0JBQUwsR0FBd0IsQ0FBQ0osU0FBRCxJQUFjcEIscUJBQXFCd0IsZ0JBQTNEO0FBQ0Q7O0FBRUQsSUFBSUMsUUFBUTtBQUNWOzs7Ozs7O0FBT0FDLDBCQUF3QixrQ0FBWTtBQUNsQyxXQUFPUixvQkFBUDtBQUNELEdBVlM7O0FBWVY7OztBQUdBUyxzQkFBb0IsOEJBQVk7QUFDOUIsV0FBTyxLQUFLWixlQUFaO0FBQ0QsR0FqQlM7O0FBbUJWOzs7O0FBSUFhLGNBQVksc0JBQVk7QUFDdEJoQyxrQkFBY2lDLE9BQWQsQ0FBc0IsS0FBS2QsZUFBM0I7QUFDQSxTQUFLQSxlQUFMLEdBQXVCLElBQXZCO0FBQ0Q7QUExQlMsQ0FBWjs7QUE2QkFaLE9BQU9nQiwwQkFBMEJXLFNBQWpDLEVBQTRDNUIsWUFBWXVCLEtBQXhELEVBQStEQSxLQUEvRDs7QUFFQTNCLFlBQVlpQyxZQUFaLENBQXlCWix5QkFBekI7O0FBRUFhLE9BQU9DLE9BQVAsR0FBaUJkLHlCQUFqQiIsImZpbGUiOiIxMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvblxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBDYWxsYmFja1F1ZXVlID0gcmVxdWlyZSgnLi9DYWxsYmFja1F1ZXVlJyk7XG52YXIgUG9vbGVkQ2xhc3MgPSByZXF1aXJlKCcuL1Bvb2xlZENsYXNzJyk7XG52YXIgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnLi9SZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXInKTtcbnZhciBSZWFjdERPTUZlYXR1cmVGbGFncyA9IHJlcXVpcmUoJy4vUmVhY3RET01GZWF0dXJlRmxhZ3MnKTtcbnZhciBSZWFjdElucHV0U2VsZWN0aW9uID0gcmVxdWlyZSgnLi9SZWFjdElucHV0U2VsZWN0aW9uJyk7XG52YXIgVHJhbnNhY3Rpb24gPSByZXF1aXJlKCcuL1RyYW5zYWN0aW9uJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQsIHdoZW4gcG9zc2libGUsIHRoZSBzZWxlY3Rpb24gcmFuZ2UgKGN1cnJlbnRseSBzZWxlY3RlZCB0ZXh0XG4gKiBpbnB1dCkgaXMgbm90IGRpc3R1cmJlZCBieSBwZXJmb3JtaW5nIHRoZSB0cmFuc2FjdGlvbi5cbiAqL1xudmFyIFNFTEVDVElPTl9SRVNUT1JBVElPTiA9IHtcbiAgLyoqXG4gICAqIEByZXR1cm4ge1NlbGVjdGlvbn0gU2VsZWN0aW9uIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgaW5pdGlhbGl6ZTogUmVhY3RJbnB1dFNlbGVjdGlvbi5nZXRTZWxlY3Rpb25JbmZvcm1hdGlvbixcbiAgLyoqXG4gICAqIEBwYXJhbSB7U2VsZWN0aW9ufSBzZWwgU2VsZWN0aW9uIGluZm9ybWF0aW9uIHJldHVybmVkIGZyb20gYGluaXRpYWxpemVgLlxuICAgKi9cbiAgY2xvc2U6IFJlYWN0SW5wdXRTZWxlY3Rpb24ucmVzdG9yZVNlbGVjdGlvblxufTtcblxuLyoqXG4gKiBTdXBwcmVzc2VzIGV2ZW50cyAoYmx1ci9mb2N1cykgdGhhdCBjb3VsZCBiZSBpbmFkdmVydGVudGx5IGRpc3BhdGNoZWQgZHVlIHRvXG4gKiBoaWdoIGxldmVsIERPTSBtYW5pcHVsYXRpb25zIChsaWtlIHRlbXBvcmFyaWx5IHJlbW92aW5nIGEgdGV4dCBpbnB1dCBmcm9tIHRoZVxuICogRE9NKS5cbiAqL1xudmFyIEVWRU5UX1NVUFBSRVNTSU9OID0ge1xuICAvKipcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVGhlIGVuYWJsZWQgc3RhdHVzIG9mIGBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXJgIGJlZm9yZVxuICAgKiB0aGUgcmVjb25jaWxpYXRpb24uXG4gICAqL1xuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGN1cnJlbnRseUVuYWJsZWQgPSBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuaXNFbmFibGVkKCk7XG4gICAgUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLnNldEVuYWJsZWQoZmFsc2UpO1xuICAgIHJldHVybiBjdXJyZW50bHlFbmFibGVkO1xuICB9LFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHByZXZpb3VzbHlFbmFibGVkIEVuYWJsZWQgc3RhdHVzIG9mXG4gICAqICAgYFJlYWN0QnJvd3NlckV2ZW50RW1pdHRlcmAgYmVmb3JlIHRoZSByZWNvbmNpbGlhdGlvbiBvY2N1cnJlZC4gYGNsb3NlYFxuICAgKiAgIHJlc3RvcmVzIHRoZSBwcmV2aW91cyB2YWx1ZS5cbiAgICovXG4gIGNsb3NlOiBmdW5jdGlvbiAocHJldmlvdXNseUVuYWJsZWQpIHtcbiAgICBSZWFjdEJyb3dzZXJFdmVudEVtaXR0ZXIuc2V0RW5hYmxlZChwcmV2aW91c2x5RW5hYmxlZCk7XG4gIH1cbn07XG5cbi8qKlxuICogUHJvdmlkZXMgYSBxdWV1ZSBmb3IgY29sbGVjdGluZyBgY29tcG9uZW50RGlkTW91bnRgIGFuZFxuICogYGNvbXBvbmVudERpZFVwZGF0ZWAgY2FsbGJhY2tzIGR1cmluZyB0aGUgdGhlIHRyYW5zYWN0aW9uLlxuICovXG52YXIgT05fRE9NX1JFQURZX1FVRVVFSU5HID0ge1xuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGludGVybmFsIGBvbkRPTVJlYWR5YCBxdWV1ZS5cbiAgICovXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnJlYWN0TW91bnRSZWFkeS5yZXNldCgpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBZnRlciBET00gaXMgZmx1c2hlZCwgaW52b2tlIGFsbCByZWdpc3RlcmVkIGBvbkRPTVJlYWR5YCBjYWxsYmFja3MuXG4gICAqL1xuICBjbG9zZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5Lm5vdGlmeUFsbCgpO1xuICB9XG59O1xuXG4vKipcbiAqIEV4ZWN1dGVkIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIGBUcmFuc2FjdGlvbmAgaW5zdGFuY2UuIENvbnNpZGVyIHRoZXNlIGFzXG4gKiBiZWluZyBtZW1iZXIgbWV0aG9kcywgYnV0IHdpdGggYW4gaW1wbGllZCBvcmRlcmluZyB3aGlsZSBiZWluZyBpc29sYXRlZCBmcm9tXG4gKiBlYWNoIG90aGVyLlxuICovXG52YXIgVFJBTlNBQ1RJT05fV1JBUFBFUlMgPSBbU0VMRUNUSU9OX1JFU1RPUkFUSU9OLCBFVkVOVF9TVVBQUkVTU0lPTiwgT05fRE9NX1JFQURZX1FVRVVFSU5HXTtcblxuLyoqXG4gKiBDdXJyZW50bHk6XG4gKiAtIFRoZSBvcmRlciB0aGF0IHRoZXNlIGFyZSBsaXN0ZWQgaW4gdGhlIHRyYW5zYWN0aW9uIGlzIGNyaXRpY2FsOlxuICogLSBTdXBwcmVzc2VzIGV2ZW50cy5cbiAqIC0gUmVzdG9yZXMgc2VsZWN0aW9uIHJhbmdlLlxuICpcbiAqIEZ1dHVyZTpcbiAqIC0gUmVzdG9yZSBkb2N1bWVudC9vdmVyZmxvdyBzY3JvbGwgcG9zaXRpb25zIHRoYXQgd2VyZSB1bmludGVudGlvbmFsbHlcbiAqICAgbW9kaWZpZWQgdmlhIERPTSBpbnNlcnRpb25zIGFib3ZlIHRoZSB0b3Agdmlld3BvcnQgYm91bmRhcnkuXG4gKiAtIEltcGxlbWVudC9pbnRlZ3JhdGUgd2l0aCBjdXN0b21pemVkIGNvbnN0cmFpbnQgYmFzZWQgbGF5b3V0IHN5c3RlbSBhbmQga2VlcFxuICogICB0cmFjayBvZiB3aGljaCBkaW1lbnNpb25zIG11c3QgYmUgcmVtZWFzdXJlZC5cbiAqXG4gKiBAY2xhc3MgUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvblxuICovXG5mdW5jdGlvbiBSZWFjdFJlY29uY2lsZVRyYW5zYWN0aW9uKGZvcmNlSFRNTCkge1xuICB0aGlzLnJlaW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XG4gIC8vIE9ubHkgc2VydmVyLXNpZGUgcmVuZGVyaW5nIHJlYWxseSBuZWVkcyB0aGlzIG9wdGlvbiAoc2VlXG4gIC8vIGBSZWFjdFNlcnZlclJlbmRlcmluZ2ApLCBidXQgc2VydmVyLXNpZGUgdXNlc1xuICAvLyBgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbmAgaW5zdGVhZC4gVGhpcyBvcHRpb24gaXMgaGVyZSBzbyB0aGF0IGl0J3NcbiAgLy8gYWNjZXNzaWJsZSBhbmQgZGVmYXVsdHMgdG8gZmFsc2Ugd2hlbiBgUmVhY3RET01Db21wb25lbnRgIGFuZFxuICAvLyBgUmVhY3RUZXh0Q29tcG9uZW50YCBjaGVja3MgaXQgaW4gYG1vdW50Q29tcG9uZW50YC5gXG4gIHRoaXMucmVuZGVyVG9TdGF0aWNNYXJrdXAgPSBmYWxzZTtcbiAgdGhpcy5yZWFjdE1vdW50UmVhZHkgPSBDYWxsYmFja1F1ZXVlLmdldFBvb2xlZChudWxsKTtcbiAgdGhpcy51c2VDcmVhdGVFbGVtZW50ID0gIWZvcmNlSFRNTCAmJiBSZWFjdERPTUZlYXR1cmVGbGFncy51c2VDcmVhdGVFbGVtZW50O1xufVxuXG52YXIgTWl4aW4gPSB7XG4gIC8qKlxuICAgKiBAc2VlIFRyYW5zYWN0aW9uXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAZmluYWxcbiAgICogQHJldHVybiB7YXJyYXk8b2JqZWN0Pn0gTGlzdCBvZiBvcGVyYXRpb24gd3JhcCBwcm9jZWR1cmVzLlxuICAgKiAgIFRPRE86IGNvbnZlcnQgdG8gYXJyYXk8VHJhbnNhY3Rpb25XcmFwcGVyPlxuICAgKi9cbiAgZ2V0VHJhbnNhY3Rpb25XcmFwcGVyczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBUUkFOU0FDVElPTl9XUkFQUEVSUztcbiAgfSxcblxuICAvKipcbiAgICogQHJldHVybiB7b2JqZWN0fSBUaGUgcXVldWUgdG8gY29sbGVjdCBgb25ET01SZWFkeWAgY2FsbGJhY2tzIHdpdGguXG4gICAqL1xuICBnZXRSZWFjdE1vdW50UmVhZHk6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWFjdE1vdW50UmVhZHk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIGBQb29sZWRDbGFzc2AgbG9va3MgZm9yIHRoaXMsIGFuZCB3aWxsIGludm9rZSB0aGlzIGJlZm9yZSBhbGxvd2luZyB0aGlzXG4gICAqIGluc3RhbmNlIHRvIGJlIHJldXNlZC5cbiAgICovXG4gIGRlc3RydWN0b3I6IGZ1bmN0aW9uICgpIHtcbiAgICBDYWxsYmFja1F1ZXVlLnJlbGVhc2UodGhpcy5yZWFjdE1vdW50UmVhZHkpO1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5ID0gbnVsbDtcbiAgfVxufTtcblxuYXNzaWduKFJlYWN0UmVjb25jaWxlVHJhbnNhY3Rpb24ucHJvdG90eXBlLCBUcmFuc2FjdGlvbi5NaXhpbiwgTWl4aW4pO1xuXG5Qb29sZWRDbGFzcy5hZGRQb29saW5nVG8oUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbik7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 126 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactInputSelection\n */\n\n'use strict';\n\nvar ReactDOMSelection = __webpack_require__(127);\n\nvar containsNode = __webpack_require__(59);\nvar focusNode = __webpack_require__(95);\nvar getActiveElement = __webpack_require__(129);\n\nfunction isInDocument(node) {\n return containsNode(document.documentElement, node);\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\nvar ReactInputSelection = {\n\n hasSelectionCapabilities: function hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');\n },\n\n getSelectionInformation: function getSelectionInformation() {\n var focusedElem = getActiveElement();\n return {\n focusedElem: focusedElem,\n selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null\n };\n },\n\n /**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n restoreSelection: function restoreSelection(priorSelectionInformation) {\n var curFocusedElem = getActiveElement();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {\n ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);\n }\n focusNode(priorFocusedElem);\n }\n },\n\n /**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n getSelection: function getSelection(input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n // IE8 input.\n var range = document.selection.createRange();\n // There can only be one selection per document in IE, so it must\n // be in our element.\n if (range.parentElement() === input) {\n selection = {\n start: -range.moveStart('character', -input.value.length),\n end: -range.moveEnd('character', -input.value.length)\n };\n }\n } else {\n // Content editable or old IE textarea.\n selection = ReactDOMSelection.getOffsets(input);\n }\n\n return selection || { start: 0, end: 0 };\n },\n\n /**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n setSelection: function setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n if (typeof end === 'undefined') {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {\n var range = input.createTextRange();\n range.collapse(true);\n range.moveStart('character', start);\n range.moveEnd('character', end - start);\n range.select();\n } else {\n ReactDOMSelection.setOffsets(input, offsets);\n }\n }\n};\n\nmodule.exports = ReactInputSelection;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RJbnB1dFNlbGVjdGlvbi5qcz9iYThmIl0sIm5hbWVzIjpbIlJlYWN0RE9NU2VsZWN0aW9uIiwicmVxdWlyZSIsImNvbnRhaW5zTm9kZSIsImZvY3VzTm9kZSIsImdldEFjdGl2ZUVsZW1lbnQiLCJpc0luRG9jdW1lbnQiLCJub2RlIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJSZWFjdElucHV0U2VsZWN0aW9uIiwiaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzIiwiZWxlbSIsIm5vZGVOYW1lIiwidG9Mb3dlckNhc2UiLCJ0eXBlIiwiY29udGVudEVkaXRhYmxlIiwiZ2V0U2VsZWN0aW9uSW5mb3JtYXRpb24iLCJmb2N1c2VkRWxlbSIsInNlbGVjdGlvblJhbmdlIiwiZ2V0U2VsZWN0aW9uIiwicmVzdG9yZVNlbGVjdGlvbiIsInByaW9yU2VsZWN0aW9uSW5mb3JtYXRpb24iLCJjdXJGb2N1c2VkRWxlbSIsInByaW9yRm9jdXNlZEVsZW0iLCJwcmlvclNlbGVjdGlvblJhbmdlIiwic2V0U2VsZWN0aW9uIiwiaW5wdXQiLCJzZWxlY3Rpb24iLCJzdGFydCIsInNlbGVjdGlvblN0YXJ0IiwiZW5kIiwic2VsZWN0aW9uRW5kIiwicmFuZ2UiLCJjcmVhdGVSYW5nZSIsInBhcmVudEVsZW1lbnQiLCJtb3ZlU3RhcnQiLCJ2YWx1ZSIsImxlbmd0aCIsIm1vdmVFbmQiLCJnZXRPZmZzZXRzIiwib2Zmc2V0cyIsIk1hdGgiLCJtaW4iLCJjcmVhdGVUZXh0UmFuZ2UiLCJjb2xsYXBzZSIsInNlbGVjdCIsInNldE9mZnNldHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxvQkFBb0IsbUJBQUFDLENBQVEsR0FBUixDQUF4Qjs7QUFFQSxJQUFJQyxlQUFl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QUFuQixFQUFnQztBQUM5QkEsWUFBTUYsS0FBTjtBQUNEOztBQUVELFFBQUksb0JBQW9CRixLQUF4QixFQUErQjtBQUM3QkEsWUFBTUcsY0FBTixHQUF1QkQsS0FBdkI7QUFDQUYsWUFBTUssWUFBTixHQUFxQlUsS0FBS0MsR0FBTCxDQUFTWixHQUFULEVBQWNKLE1BQU1VLEtBQU4sQ0FBWUMsTUFBMUIsQ0FBckI7QUFDRCxLQUhELE1BR08sSUFBSTlCLFNBQVNvQixTQUFULElBQXVCRCxNQUFNZCxRQUFOLElBQWtCYyxNQUFNZCxRQUFOLENBQWVDLFdBQWYsT0FBaUMsT0FBOUUsRUFBd0Y7QUFDN0YsVUFBSW1CLFFBQVFOLE1BQU1pQixlQUFOLEVBQVo7QUFDQVgsWUFBTVksUUFBTixDQUFlLElBQWY7QUFDQVosWUFBTUcsU0FBTixDQUFnQixXQUFoQixFQUE2QlAsS0FBN0I7QUFDQUksWUFBTU0sT0FBTixDQUFjLFdBQWQsRUFBMkJSLE1BQU1GLEtBQWpDO0FBQ0FJLFlBQU1hLE1BQU47QUFDRCxLQU5NLE1BTUE7QUFDTDdDLHdCQUFrQjhDLFVBQWxCLENBQTZCcEIsS0FBN0IsRUFBb0NjLE9BQXBDO0FBQ0Q7QUFDRjtBQTNGdUIsQ0FBMUI7O0FBOEZBTyxPQUFPQyxPQUFQLEdBQWlCdkMsbUJBQWpCIiwiZmlsZSI6IjEyNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdElucHV0U2VsZWN0aW9uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RET01TZWxlY3Rpb24gPSByZXF1aXJlKCcuL1JlYWN0RE9NU2VsZWN0aW9uJyk7XG5cbnZhciBjb250YWluc05vZGUgPSByZXF1aXJlKCdmYmpzL2xpYi9jb250YWluc05vZGUnKTtcbnZhciBmb2N1c05vZGUgPSByZXF1aXJlKCdmYmpzL2xpYi9mb2N1c05vZGUnKTtcbnZhciBnZXRBY3RpdmVFbGVtZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvZ2V0QWN0aXZlRWxlbWVudCcpO1xuXG5mdW5jdGlvbiBpc0luRG9jdW1lbnQobm9kZSkge1xuICByZXR1cm4gY29udGFpbnNOb2RlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbm9kZSk7XG59XG5cbi8qKlxuICogQFJlYWN0SW5wdXRTZWxlY3Rpb246IFJlYWN0IGlucHV0IHNlbGVjdGlvbiBtb2R1bGUuIEJhc2VkIG9uIFNlbGVjdGlvbi5qcyxcbiAqIGJ1dCBtb2RpZmllZCB0byBiZSBzdWl0YWJsZSBmb3IgcmVhY3QgYW5kIGhhcyBhIGNvdXBsZSBvZiBidWcgZml4ZXMgKGRvZXNuJ3RcbiAqIGFzc3VtZSBidXR0b25zIGhhdmUgcmFuZ2Ugc2VsZWN0aW9ucyBhbGxvd2VkKS5cbiAqIElucHV0IHNlbGVjdGlvbiBtb2R1bGUgZm9yIFJlYWN0LlxuICovXG52YXIgUmVhY3RJbnB1dFNlbGVjdGlvbiA9IHtcblxuICBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXM6IGZ1bmN0aW9uIChlbGVtKSB7XG4gICAgdmFyIG5vZGVOYW1lID0gZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gbm9kZU5hbWUgJiYgKG5vZGVOYW1lID09PSAnaW5wdXQnICYmIGVsZW0udHlwZSA9PT0gJ3RleHQnIHx8IG5vZGVOYW1lID09PSAndGV4dGFyZWEnIHx8IGVsZW0uY29udGVudEVkaXRhYmxlID09PSAndHJ1ZScpO1xuICB9LFxuXG4gIGdldFNlbGVjdGlvbkluZm9ybWF0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGZvY3VzZWRFbGVtID0gZ2V0QWN0aXZlRWxlbWVudCgpO1xuICAgIHJldHVybiB7XG4gICAgICBmb2N1c2VkRWxlbTogZm9jdXNlZEVsZW0sXG4gICAgICBzZWxlY3Rpb25SYW5nZTogUmVhY3RJbnB1dFNlbGVjdGlvbi5oYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMoZm9jdXNlZEVsZW0pID8gUmVhY3RJbnB1dFNlbGVjdGlvbi5nZXRTZWxlY3Rpb24oZm9jdXNlZEVsZW0pIDogbnVsbFxuICAgIH07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXN0b3JlU2VsZWN0aW9uOiBJZiBhbnkgc2VsZWN0aW9uIGluZm9ybWF0aW9uIHdhcyBwb3RlbnRpYWxseSBsb3N0LFxuICAgKiByZXN0b3JlIGl0LiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHBlcmZvcm1pbmcgb3BlcmF0aW9ucyB0aGF0IGNvdWxkIHJlbW92ZSBkb21cbiAgICogbm9kZXMgYW5kIHBsYWNlIHRoZW0gYmFjayBpbiwgcmVzdWx0aW5nIGluIGZvY3VzIGJlaW5nIGxvc3QuXG4gICAqL1xuICByZXN0b3JlU2VsZWN0aW9uOiBmdW5jdGlvbiAocHJpb3JTZWxlY3Rpb25JbmZvcm1hdGlvbikge1xuICAgIHZhciBjdXJGb2N1c2VkRWxlbSA9IGdldEFjdGl2ZUVsZW1lbnQoKTtcbiAgICB2YXIgcHJpb3JGb2N1c2VkRWxlbSA9IHByaW9yU2VsZWN0aW9uSW5mb3JtYXRpb24uZm9jdXNlZEVsZW07XG4gICAgdmFyIHByaW9yU2VsZWN0aW9uUmFuZ2UgPSBwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uLnNlbGVjdGlvblJhbmdlO1xuICAgIGlmIChjdXJGb2N1c2VkRWxlbSAhPT0gcHJpb3JGb2N1c2VkRWxlbSAmJiBpc0luRG9jdW1lbnQocHJpb3JGb2N1c2VkRWxlbSkpIHtcbiAgICAgIGlmIChSZWFjdElucHV0U2VsZWN0aW9uLmhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhwcmlvckZvY3VzZWRFbGVtKSkge1xuICAgICAgICBSZWFjdElucHV0U2VsZWN0aW9uLnNldFNlbGVjdGlvbihwcmlvckZvY3VzZWRFbGVtLCBwcmlvclNlbGVjdGlvblJhbmdlKTtcbiAgICAgIH1cbiAgICAgIGZvY3VzTm9kZShwcmlvckZvY3VzZWRFbGVtKTtcbiAgICB9XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBnZXRTZWxlY3Rpb246IEdldHMgdGhlIHNlbGVjdGlvbiBib3VuZHMgb2YgYSBmb2N1c2VkIHRleHRhcmVhLCBpbnB1dCBvclxuICAgKiBjb250ZW50RWRpdGFibGUgbm9kZS5cbiAgICogLUBpbnB1dDogTG9vayB1cCBzZWxlY3Rpb24gYm91bmRzIG9mIHRoaXMgaW5wdXRcbiAgICogLUByZXR1cm4ge3N0YXJ0OiBzZWxlY3Rpb25TdGFydCwgZW5kOiBzZWxlY3Rpb25FbmR9XG4gICAqL1xuICBnZXRTZWxlY3Rpb246IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgIHZhciBzZWxlY3Rpb247XG5cbiAgICBpZiAoJ3NlbGVjdGlvblN0YXJ0JyBpbiBpbnB1dCkge1xuICAgICAgLy8gTW9kZXJuIGJyb3dzZXIgd2l0aCBpbnB1dCBvciB0ZXh0YXJlYS5cbiAgICAgIHNlbGVjdGlvbiA9IHtcbiAgICAgICAgc3RhcnQ6IGlucHV0LnNlbGVjdGlvblN0YXJ0LFxuICAgICAgICBlbmQ6IGlucHV0LnNlbGVjdGlvbkVuZFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbiAmJiAoaW5wdXQubm9kZU5hbWUgJiYgaW5wdXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lucHV0JykpIHtcbiAgICAgIC8vIElFOCBpbnB1dC5cbiAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO1xuICAgICAgLy8gVGhlcmUgY2FuIG9ubHkgYmUgb25lIHNlbGVjdGlvbiBwZXIgZG9jdW1lbnQgaW4gSUUsIHNvIGl0IG11c3RcbiAgICAgIC8vIGJlIGluIG91ciBlbGVtZW50LlxuICAgICAgaWYgKHJhbmdlLnBhcmVudEVsZW1lbnQoKSA9PT0gaW5wdXQpIHtcbiAgICAgICAgc2VsZWN0aW9uID0ge1xuICAgICAgICAgIHN0YXJ0OiAtcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCAtaW5wdXQudmFsdWUubGVuZ3RoKSxcbiAgICAgICAgICBlbmQ6IC1yYW5nZS5tb3ZlRW5kKCdjaGFyYWN0ZXInLCAtaW5wdXQudmFsdWUubGVuZ3RoKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250ZW50IGVkaXRhYmxlIG9yIG9sZCBJRSB0ZXh0YXJlYS5cbiAgICAgIHNlbGVjdGlvbiA9IFJlYWN0RE9NU2VsZWN0aW9uLmdldE9mZnNldHMoaW5wdXQpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWxlY3Rpb24gfHwgeyBzdGFydDogMCwgZW5kOiAwIH07XG4gIH0sXG5cbiAgLyoqXG4gICAqIEBzZXRTZWxlY3Rpb246IFNldHMgdGhlIHNlbGVjdGlvbiBib3VuZHMgb2YgYSB0ZXh0YXJlYSBvciBpbnB1dCBhbmQgZm9jdXNlc1xuICAgKiB0aGUgaW5wdXQuXG4gICAqIC1AaW5wdXQgICAgIFNldCBzZWxlY3Rpb24gYm91bmRzIG9mIHRoaXMgaW5wdXQgb3IgdGV4dGFyZWFcbiAgICogLUBvZmZzZXRzICAgT2JqZWN0IG9mIHNhbWUgZm9ybSB0aGF0IGlzIHJldHVybmVkIGZyb20gZ2V0KlxuICAgKi9cbiAgc2V0U2VsZWN0aW9uOiBmdW5jdGlvbiAoaW5wdXQsIG9mZnNldHMpIHtcbiAgICB2YXIgc3RhcnQgPSBvZmZzZXRzLnN0YXJ0O1xuICAgIHZhciBlbmQgPSBvZmZzZXRzLmVuZDtcbiAgICBpZiAodHlwZW9mIGVuZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGVuZCA9IHN0YXJ0O1xuICAgIH1cblxuICAgIGlmICgnc2VsZWN0aW9uU3RhcnQnIGluIGlucHV0KSB7XG4gICAgICBpbnB1dC5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0O1xuICAgICAgaW5wdXQuc2VsZWN0aW9uRW5kID0gTWF0aC5taW4oZW5kLCBpbnB1dC52YWx1ZS5sZW5ndGgpO1xuICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuc2VsZWN0aW9uICYmIChpbnB1dC5ub2RlTmFtZSAmJiBpbnB1dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnKSkge1xuICAgICAgdmFyIHJhbmdlID0gaW5wdXQuY3JlYXRlVGV4dFJhbmdlKCk7XG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgc3RhcnQpO1xuICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgZW5kIC0gc3RhcnQpO1xuICAgICAgcmFuZ2Uuc2VsZWN0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RE9NU2VsZWN0aW9uLnNldE9mZnNldHMoaW5wdXQsIG9mZnNldHMpO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdElucHV0U2VsZWN0aW9uO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdElucHV0U2VsZWN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 127 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMSelection\n */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar getNodeForCharacterOffset = __webpack_require__(128);\nvar getTextContentAccessor = __webpack_require__(75);\n\n/**\n * While `isCollapsed` is available on the Selection object and `collapsed`\n * is available on the Range object, IE11 sometimes gets them wrong.\n * If the anchor/focus nodes and offsets are the same, the range is collapsed.\n */\nfunction isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {\n return anchorNode === focusNode && anchorOffset === focusOffset;\n}\n\n/**\n * Get the appropriate anchor and focus node/offset pairs for IE.\n *\n * The catch here is that IE's selection API doesn't provide information\n * about whether the selection is forward or backward, so we have to\n * behave as though it's always forward.\n *\n * IE text differs from modern selection in that it behaves as though\n * block elements end with a new line. This means character offsets will\n * differ between the two APIs.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getIEOffsets(node) {\n var selection = document.selection;\n var selectedRange = selection.createRange();\n var selectedLength = selectedRange.text.length;\n\n // Duplicate selection so we can move range without breaking user selection.\n var fromStart = selectedRange.duplicate();\n fromStart.moveToElementText(node);\n fromStart.setEndPoint('EndToStart', selectedRange);\n\n var startOffset = fromStart.text.length;\n var endOffset = startOffset + selectedLength;\n\n return {\n start: startOffset,\n end: endOffset\n };\n}\n\n/**\n * @param {DOMElement} node\n * @return {?object}\n */\nfunction getModernOffsets(node) {\n var selection = window.getSelection && window.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode;\n var anchorOffset = selection.anchorOffset;\n var focusNode = selection.focusNode;\n var focusOffset = selection.focusOffset;\n\n var currentRange = selection.getRangeAt(0);\n\n // In Firefox, range.startContainer and range.endContainer can be \"anonymous\n // divs\", e.g. the up/down buttons on an <input type=\"number\">. Anonymous\n // divs do not seem to expose properties, triggering a \"Permission denied\n // error\" if any of its properties are accessed. The only seemingly possible\n // way to avoid erroring is to access a property that typically works for\n // non-anonymous divs and catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n try {\n /* eslint-disable no-unused-expressions */\n currentRange.startContainer.nodeType;\n currentRange.endContainer.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n // If the node and offset values are the same, the selection is collapsed.\n // `Selection.isCollapsed` is available natively, but IE sometimes gets\n // this value wrong.\n var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);\n\n var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;\n\n var tempRange = currentRange.cloneRange();\n tempRange.selectNodeContents(node);\n tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);\n\n var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);\n\n var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;\n var end = start + rangeLength;\n\n // Detect whether the selection is backward.\n var detectionRange = document.createRange();\n detectionRange.setStart(anchorNode, anchorOffset);\n detectionRange.setEnd(focusNode, focusOffset);\n var isBackward = detectionRange.collapsed;\n\n return {\n start: isBackward ? end : start,\n end: isBackward ? start : end\n };\n}\n\n/**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setIEOffsets(node, offsets) {\n var range = document.selection.createRange().duplicate();\n var start, end;\n\n if (typeof offsets.end === 'undefined') {\n start = offsets.start;\n end = start;\n } else if (offsets.start > offsets.end) {\n start = offsets.end;\n end = offsets.start;\n } else {\n start = offsets.start;\n end = offsets.end;\n }\n\n range.moveToElementText(node);\n range.moveStart('character', start);\n range.setEndPoint('EndToStart', range);\n range.moveEnd('character', end - start);\n range.select();\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setModernOffsets(node, offsets) {\n if (!window.getSelection) {\n return;\n }\n\n var selection = window.getSelection();\n var length = node[getTextContentAccessor()].length;\n var start = Math.min(offsets.start, length);\n var end = typeof offsets.end === 'undefined' ? start : Math.min(offsets.end, length);\n\n // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n var range = document.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nvar useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);\n\nvar ReactDOMSelection = {\n /**\n * @param {DOMElement} node\n */\n getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,\n\n /**\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets\n};\n\nmodule.exports = ReactDOMSelection;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01TZWxlY3Rpb24uanM/NGYxYSJdLCJuYW1lcyI6WyJFeGVjdXRpb25FbnZpcm9ubWVudCIsInJlcXVpcmUiLCJnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0IiwiZ2V0VGV4dENvbnRlbnRBY2Nlc3NvciIsImlzQ29sbGFwc2VkIiwiYW5jaG9yTm9kZSIsImFuY2hvck9mZnNldCIsImZvY3VzTm9kZSIsImZvY3VzT2Zmc2V0IiwiZ2V0SUVPZmZzZXRzIiwibm9kZSIsInNlbGVjdGlvbiIsImRvY3VtZW50Iiwic2VsZWN0ZWRSYW5nZSIsImNyZWF0ZVJhbmdlIiwic2VsZWN0ZWRMZW5ndGgiLCJ0ZXh0IiwibGVuZ3RoIiwiZnJvbVN0YXJ0IiwiZHVwbGljYXRlIiwibW92ZVRvRWxlbWVudFRleHQiLCJzZXRFbmRQb2ludCIsInN0YXJ0T2Zmc2V0IiwiZW5kT2Zmc2V0Iiwic3RhcnQiLCJlbmQiLCJnZXRNb2Rlcm5PZmZzZXRzIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwicmFuZ2VDb3VudCIsImN1cnJlbnRSYW5nZSIsImdldFJhbmdlQXQiLCJzdGFydENvbnRhaW5lciIsIm5vZGVUeXBlIiwiZW5kQ29udGFpbmVyIiwiZSIsImlzU2VsZWN0aW9uQ29sbGFwc2VkIiwicmFuZ2VMZW5ndGgiLCJ0b1N0cmluZyIsInRlbXBSYW5nZSIsImNsb25lUmFuZ2UiLCJzZWxlY3ROb2RlQ29udGVudHMiLCJzZXRFbmQiLCJpc1RlbXBSYW5nZUNvbGxhcHNlZCIsImRldGVjdGlvblJhbmdlIiwic2V0U3RhcnQiLCJpc0JhY2t3YXJkIiwiY29sbGFwc2VkIiwic2V0SUVPZmZzZXRzIiwib2Zmc2V0cyIsInJhbmdlIiwibW92ZVN0YXJ0IiwibW92ZUVuZCIsInNlbGVjdCIsInNldE1vZGVybk9mZnNldHMiLCJNYXRoIiwibWluIiwiZXh0ZW5kIiwidGVtcCIsInN0YXJ0TWFya2VyIiwiZW5kTWFya2VyIiwib2Zmc2V0IiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJ1c2VJRU9mZnNldHMiLCJjYW5Vc2VET00iLCJSZWFjdERPTVNlbGVjdGlvbiIsImdldE9mZnNldHMiLCJzZXRPZmZzZXRzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsdUJBQXVCLG1CQUFBQyxDQUFRLENBQVIsQ0FBM0I7O0FBRUEsSUFBSUMsNEJBQTRCLG1CQUFBRCxDQUFRLEdBQVIsQ0FBaEM7QUFDQSxJQUFJRSx5QkFBeUIsbUJBQUFGLENBQVEsRUFBUixDQUE3Qjs7QUFFQTs7Ozs7QUFLQSxTQUFTRyxXQUFULENBQXFCQyxVQUFyQixFQUFpQ0MsWUFBakMsRUFBK0NDLFNBQS9DLEVBQTBEQyxXQUExRCxFQUF1RTtBQUNyRSxTQUFPSCxlQUFlRSxTQUFmLElBQTRCRCxpQkFBaUJFLFdBQXBEO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBU0MsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDMUIsTUFBSUMsWUFBWUMsU0FBU0QsU0FBekI7QUFDQSxNQUFJRSxnQkFBZ0JGLFVBQVVHLFdBQVYsRUFBcEI7QUFDQSxNQUFJQyxpQkFBaUJGLGNBQWNHLElBQWQsQ0FBbUJDLE1BQXhDOztBQUVBO0FBQ0EsTUFBSUMsWUFBWUwsY0FBY00sU0FBZCxFQUFoQjtBQUNBRCxZQUFVRSxpQkFBVixDQUE0QlYsSUFBNUI7QUFDQVEsWUFBVUcsV0FBVixDQUFzQixZQUF0QixFQUFvQ1IsYUFBcEM7O0FBRUEsTUFBSVMsY0FBY0osVUFBVUYsSUFBVixDQUFlQyxNQUFqQztBQUNBLE1BQUlNLFlBQVlELGNBQWNQLGNBQTlCOztBQUVBLFNBQU87QUFDTFMsV0FBT0YsV0FERjtBQUVMRyxTQUFLRjtBQUZBLEdBQVA7QUFJRDs7QUFFRDs7OztBQUlBLFNBQVNHLGdCQUFULENBQTBCaEIsSUFB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QUFpQkcsVUFBVWxELElBQTNCLEVBQWlDa0QsVUFBVUMsTUFBM0M7QUFDRCxLQUhELE1BR087QUFDTFgsWUFBTVIsTUFBTixDQUFha0IsVUFBVWxELElBQXZCLEVBQTZCa0QsVUFBVUMsTUFBdkM7QUFDQWxELGdCQUFVb0QsUUFBVixDQUFtQmIsS0FBbkI7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsSUFBSWMsZUFBZWhFLHFCQUFxQmlFLFNBQXJCLElBQWtDLGVBQWVyRCxRQUFqRCxJQUE2RCxFQUFFLGtCQUFrQmUsTUFBcEIsQ0FBaEY7O0FBRUEsSUFBSXVDLG9CQUFvQjtBQUN0Qjs7O0FBR0FDLGNBQVlILGVBQWV2RCxZQUFmLEdBQThCaUIsZ0JBSnBCOztBQU10Qjs7OztBQUlBMEMsY0FBWUosZUFBZWhCLFlBQWYsR0FBOEJNO0FBVnBCLENBQXhCOztBQWFBZSxPQUFPQyxPQUFQLEdBQWlCSixpQkFBakIiLCJmaWxlIjoiMTI3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RE9NU2VsZWN0aW9uXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xuXG52YXIgZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldCA9IHJlcXVpcmUoJy4vZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldCcpO1xudmFyIGdldFRleHRDb250ZW50QWNjZXNzb3IgPSByZXF1aXJlKCcuL2dldFRleHRDb250ZW50QWNjZXNzb3InKTtcblxuLyoqXG4gKiBXaGlsZSBgaXNDb2xsYXBzZWRgIGlzIGF2YWlsYWJsZSBvbiB0aGUgU2VsZWN0aW9uIG9iamVjdCBhbmQgYGNvbGxhcHNlZGBcbiAqIGlzIGF2YWlsYWJsZSBvbiB0aGUgUmFuZ2Ugb2JqZWN0LCBJRTExIHNvbWV0aW1lcyBnZXRzIHRoZW0gd3JvbmcuXG4gKiBJZiB0aGUgYW5jaG9yL2ZvY3VzIG5vZGVzIGFuZCBvZmZzZXRzIGFyZSB0aGUgc2FtZSwgdGhlIHJhbmdlIGlzIGNvbGxhcHNlZC5cbiAqL1xuZnVuY3Rpb24gaXNDb2xsYXBzZWQoYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0LCBmb2N1c05vZGUsIGZvY3VzT2Zmc2V0KSB7XG4gIHJldHVybiBhbmNob3JOb2RlID09PSBmb2N1c05vZGUgJiYgYW5jaG9yT2Zmc2V0ID09PSBmb2N1c09mZnNldDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGFwcHJvcHJpYXRlIGFuY2hvciBhbmQgZm9jdXMgbm9kZS9vZmZzZXQgcGFpcnMgZm9yIElFLlxuICpcbiAqIFRoZSBjYXRjaCBoZXJlIGlzIHRoYXQgSUUncyBzZWxlY3Rpb24gQVBJIGRvZXNuJ3QgcHJvdmlkZSBpbmZvcm1hdGlvblxuICogYWJvdXQgd2hldGhlciB0aGUgc2VsZWN0aW9uIGlzIGZvcndhcmQgb3IgYmFja3dhcmQsIHNvIHdlIGhhdmUgdG9cbiAqIGJlaGF2ZSBhcyB0aG91Z2ggaXQncyBhbHdheXMgZm9yd2FyZC5cbiAqXG4gKiBJRSB0ZXh0IGRpZmZlcnMgZnJvbSBtb2Rlcm4gc2VsZWN0aW9uIGluIHRoYXQgaXQgYmVoYXZlcyBhcyB0aG91Z2hcbiAqIGJsb2NrIGVsZW1lbnRzIGVuZCB3aXRoIGEgbmV3IGxpbmUuIFRoaXMgbWVhbnMgY2hhcmFjdGVyIG9mZnNldHMgd2lsbFxuICogZGlmZmVyIGJldHdlZW4gdGhlIHR3byBBUElzLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICogQHJldHVybiB7b2JqZWN0fVxuICovXG5mdW5jdGlvbiBnZXRJRU9mZnNldHMobm9kZSkge1xuICB2YXIgc2VsZWN0aW9uID0gZG9jdW1lbnQuc2VsZWN0aW9uO1xuICB2YXIgc2VsZWN0ZWRSYW5nZSA9IHNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO1xuICB2YXIgc2VsZWN0ZWRMZW5ndGggPSBzZWxlY3RlZFJhbmdlLnRleHQubGVuZ3RoO1xuXG4gIC8vIER1cGxpY2F0ZSBzZWxlY3Rpb24gc28gd2UgY2FuIG1vdmUgcmFuZ2Ugd2l0aG91dCBicmVha2luZyB1c2VyIHNlbGVjdGlvbi5cbiAgdmFyIGZyb21TdGFydCA9IHNlbGVjdGVkUmFuZ2UuZHVwbGljYXRlKCk7XG4gIGZyb21TdGFydC5tb3ZlVG9FbGVtZW50VGV4dChub2RlKTtcbiAgZnJvbVN0YXJ0LnNldEVuZFBvaW50KCdFbmRUb1N0YXJ0Jywgc2VsZWN0ZWRSYW5nZSk7XG5cbiAgdmFyIHN0YXJ0T2Zmc2V0ID0gZnJvbVN0YXJ0LnRleHQubGVuZ3RoO1xuICB2YXIgZW5kT2Zmc2V0ID0gc3RhcnRPZmZzZXQgKyBzZWxlY3RlZExlbmd0aDtcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBzdGFydE9mZnNldCxcbiAgICBlbmQ6IGVuZE9mZnNldFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSB7RE9NRWxlbWVudH0gbm9kZVxuICogQHJldHVybiB7P29iamVjdH1cbiAqL1xuZnVuY3Rpb24gZ2V0TW9kZXJuT2Zmc2V0cyhub2RlKSB7XG4gIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uICYmIHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcblxuICBpZiAoIXNlbGVjdGlvbiB8fCBzZWxlY3Rpb24ucmFuZ2VDb3VudCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGFuY2hvck5vZGUgPSBzZWxlY3Rpb24uYW5jaG9yTm9kZTtcbiAgdmFyIGFuY2hvck9mZnNldCA9IHNlbGVjdGlvbi5hbmNob3JPZmZzZXQ7XG4gIHZhciBmb2N1c05vZGUgPSBzZWxlY3Rpb24uZm9jdXNOb2RlO1xuICB2YXIgZm9jdXNPZmZzZXQgPSBzZWxlY3Rpb24uZm9jdXNPZmZzZXQ7XG5cbiAgdmFyIGN1cnJlbnRSYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuXG4gIC8vIEluIEZpcmVmb3gsIHJhbmdlLnN0YXJ0Q29udGFpbmVyIGFuZCByYW5nZS5lbmRDb250YWluZXIgY2FuIGJlIFwiYW5vbnltb3VzXG4gIC8vIGRpdnNcIiwgZS5nLiB0aGUgdXAvZG93biBidXR0b25zIG9uIGFuIDxpbnB1dCB0eXBlPVwibnVtYmVyXCI+LiBBbm9ueW1vdXNcbiAgLy8gZGl2cyBkbyBub3Qgc2VlbSB0byBleHBvc2UgcHJvcGVydGllcywgdHJpZ2dlcmluZyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcbiAgLy8gZXJyb3JcIiBpZiBhbnkgb2YgaXRzIHByb3BlcnRpZXMgYXJlIGFjY2Vzc2VkLiBUaGUgb25seSBzZWVtaW5nbHkgcG9zc2libGVcbiAgLy8gd2F5IHRvIGF2b2lkIGVycm9yaW5nIGlzIHRvIGFjY2VzcyBhIHByb3BlcnR5IHRoYXQgdHlwaWNhbGx5IHdvcmtzIGZvclxuICAvLyBub24tYW5vbnltb3VzIGRpdnMgYW5kIGNhdGNoIGFueSBlcnJvciB0aGF0IG1heSBvdGhlcndpc2UgYXJpc2UuIFNlZVxuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg0MjdcbiAgdHJ5IHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICBjdXJyZW50UmFuZ2Uuc3RhcnRDb250YWluZXIubm9kZVR5cGU7XG4gICAgY3VycmVudFJhbmdlLmVuZENvbnRhaW5lci5ub2RlVHlwZTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBJZiB0aGUgbm9kZSBhbmQgb2Zmc2V0IHZhbHVlcyBhcmUgdGhlIHNhbWUsIHRoZSBzZWxlY3Rpb24gaXMgY29sbGFwc2VkLlxuICAvLyBgU2VsZWN0aW9uLmlzQ29sbGFwc2VkYCBpcyBhdmFpbGFibGUgbmF0aXZlbHksIGJ1dCBJRSBzb21ldGltZXMgZ2V0c1xuICAvLyB0aGlzIHZhbHVlIHdyb25nLlxuICB2YXIgaXNTZWxlY3Rpb25Db2xsYXBzZWQgPSBpc0NvbGxhcHNlZChzZWxlY3Rpb24uYW5jaG9yTm9kZSwgc2VsZWN0aW9uLmFuY2hvck9mZnNldCwgc2VsZWN0aW9uLmZvY3VzTm9kZSwgc2VsZWN0aW9uLmZvY3VzT2Zmc2V0KTtcblxuICB2YXIgcmFuZ2VMZW5ndGggPSBpc1NlbGVjdGlvbkNvbGxhcHNlZCA/IDAgOiBjdXJyZW50UmFuZ2UudG9TdHJpbmcoKS5sZW5ndGg7XG5cbiAgdmFyIHRlbXBSYW5nZSA9IGN1cnJlbnRSYW5nZS5jbG9uZVJhbmdlKCk7XG4gIHRlbXBSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMobm9kZSk7XG4gIHRlbXBSYW5nZS5zZXRFbmQoY3VycmVudFJhbmdlLnN0YXJ0Q29udGFpbmVyLCBjdXJyZW50UmFuZ2Uuc3RhcnRPZmZzZXQpO1xuXG4gIHZhciBpc1RlbXBSYW5nZUNvbGxhcHNlZCA9IGlzQ29sbGFwc2VkKHRlbXBSYW5nZS5zdGFydENvbnRhaW5lciwgdGVtcFJhbmdlLnN0YXJ0T2Zmc2V0LCB0ZW1wUmFuZ2UuZW5kQ29udGFpbmVyLCB0ZW1wUmFuZ2UuZW5kT2Zmc2V0KTtcblxuICB2YXIgc3RhcnQgPSBpc1RlbXBSYW5nZUNvbGxhcHNlZCA/IDAgOiB0ZW1wUmFuZ2UudG9TdHJpbmcoKS5sZW5ndGg7XG4gIHZhciBlbmQgPSBzdGFydCArIHJhbmdlTGVuZ3RoO1xuXG4gIC8vIERldGVjdCB3aGV0aGVyIHRoZSBzZWxlY3Rpb24gaXMgYmFja3dhcmQuXG4gIHZhciBkZXRlY3Rpb25SYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gIGRldGVjdGlvblJhbmdlLnNldFN0YXJ0KGFuY2hvck5vZGUsIGFuY2hvck9mZnNldCk7XG4gIGRldGVjdGlvblJhbmdlLnNldEVuZChmb2N1c05vZGUsIGZvY3VzT2Zmc2V0KTtcbiAgdmFyIGlzQmFja3dhcmQgPSBkZXRlY3Rpb25SYW5nZS5jb2xsYXBzZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogaXNCYWNrd2FyZCA/IGVuZCA6IHN0YXJ0LFxuICAgIGVuZDogaXNCYWNrd2FyZCA/IHN0YXJ0IDogZW5kXG4gIH07XG59XG5cbi8qKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcGFyYW0ge29iamVjdH0gb2Zmc2V0c1xuICovXG5mdW5jdGlvbiBzZXRJRU9mZnNldHMobm9kZSwgb2Zmc2V0cykge1xuICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS5kdXBsaWNhdGUoKTtcbiAgdmFyIHN0YXJ0LCBlbmQ7XG5cbiAgaWYgKHR5cGVvZiBvZmZzZXRzLmVuZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdGFydCA9IG9mZnNldHMuc3RhcnQ7XG4gICAgZW5kID0gc3RhcnQ7XG4gIH0gZWxzZSBpZiAob2Zmc2V0cy5zdGFydCA+IG9mZnNldHMuZW5kKSB7XG4gICAgc3RhcnQgPSBvZmZzZXRzLmVuZDtcbiAgICBlbmQgPSBvZmZzZXRzLnN0YXJ0O1xuICB9IGVsc2Uge1xuICAgIHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDtcbiAgICBlbmQgPSBvZmZzZXRzLmVuZDtcbiAgfVxuXG4gIHJhbmdlLm1vdmVUb0VsZW1lbnRUZXh0KG5vZGUpO1xuICByYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsIHN0YXJ0KTtcbiAgcmFuZ2Uuc2V0RW5kUG9pbnQoJ0VuZFRvU3RhcnQnLCByYW5nZSk7XG4gIHJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIGVuZCAtIHN0YXJ0KTtcbiAgcmFuZ2Uuc2VsZWN0KCk7XG59XG5cbi8qKlxuICogSW4gbW9kZXJuIG5vbi1JRSBicm93c2Vycywgd2UgY2FuIHN1cHBvcnQgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZFxuICogc2VsZWN0aW9ucy5cbiAqXG4gKiBOb3RlOiBJRTEwKyBzdXBwb3J0cyB0aGUgU2VsZWN0aW9uIG9iamVjdCwgYnV0IGl0IGRvZXMgbm90IHN1cHBvcnRcbiAqIHRoZSBgZXh0ZW5kYCBtZXRob2QsIHdoaWNoIG1lYW5zIHRoYXQgZXZlbiBpbiBtb2Rlcm4gSUUsIGl0J3Mgbm90IHBvc3NpYmxlXG4gKiB0byBwcm9ncmFtYXRpY2FsbHkgY3JlYXRlIGEgYmFja3dhcmQgc2VsZWN0aW9uLiBUaHVzLCBmb3IgYWxsIElFXG4gKiB2ZXJzaW9ucywgd2UgdXNlIHRoZSBvbGQgSUUgQVBJIHRvIGNyZWF0ZSBvdXIgc2VsZWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9IG5vZGVcbiAqIEBwYXJhbSB7b2JqZWN0fSBvZmZzZXRzXG4gKi9cbmZ1bmN0aW9uIHNldE1vZGVybk9mZnNldHMobm9kZSwgb2Zmc2V0cykge1xuICBpZiAoIXdpbmRvdy5nZXRTZWxlY3Rpb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICB2YXIgbGVuZ3RoID0gbm9kZVtnZXRUZXh0Q29udGVudEFjY2Vzc29yKCldLmxlbmd0aDtcbiAgdmFyIHN0YXJ0ID0gTWF0aC5taW4ob2Zmc2V0cy5zdGFydCwgbGVuZ3RoKTtcbiAgdmFyIGVuZCA9IHR5cGVvZiBvZmZzZXRzLmVuZCA9PT0gJ3VuZGVmaW5lZCcgPyBzdGFydCA6IE1hdGgubWluKG9mZnNldHMuZW5kLCBsZW5ndGgpO1xuXG4gIC8vIElFIDExIHVzZXMgbW9kZXJuIHNlbGVjdGlvbiwgYnV0IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZXh0ZW5kIG1ldGhvZC5cbiAgLy8gRmxpcCBiYWNrd2FyZCBzZWxlY3Rpb25zLCBzbyB3ZSBjYW4gc2V0IHdpdGggYSBzaW5nbGUgcmFuZ2UuXG4gIGlmICghc2VsZWN0aW9uLmV4dGVuZCAmJiBzdGFydCA+IGVuZCkge1xuICAgIHZhciB0ZW1wID0gZW5kO1xuICAgIGVuZCA9IHN0YXJ0O1xuICAgIHN0YXJ0ID0gdGVtcDtcbiAgfVxuXG4gIHZhciBzdGFydE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQobm9kZSwgc3RhcnQpO1xuICB2YXIgZW5kTWFya2VyID0gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChub2RlLCBlbmQpO1xuXG4gIGlmIChzdGFydE1hcmtlciAmJiBlbmRNYXJrZXIpIHtcbiAgICB2YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNldFN0YXJ0KHN0YXJ0TWFya2VyLm5vZGUsIHN0YXJ0TWFya2VyLm9mZnNldCk7XG4gICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuXG4gICAgaWYgKHN0YXJ0ID4gZW5kKSB7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgc2VsZWN0aW9uLmV4dGVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhbmdlLnNldEVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgdXNlSUVPZmZzZXRzID0gRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NICYmICdzZWxlY3Rpb24nIGluIGRvY3VtZW50ICYmICEoJ2dldFNlbGVjdGlvbicgaW4gd2luZG93KTtcblxudmFyIFJlYWN0RE9NU2VsZWN0aW9uID0ge1xuICAvKipcbiAgICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gICAqL1xuICBnZXRPZmZzZXRzOiB1c2VJRU9mZnNldHMgPyBnZXRJRU9mZnNldHMgOiBnZXRNb2Rlcm5PZmZzZXRzLFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9IG5vZGVcbiAgICogQHBhcmFtIHtvYmplY3R9IG9mZnNldHNcbiAgICovXG4gIHNldE9mZnNldHM6IHVzZUlFT2Zmc2V0cyA/IHNldElFT2Zmc2V0cyA6IHNldE1vZGVybk9mZnNldHNcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01TZWxlY3Rpb247XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RE9NU2VsZWN0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 128 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getNodeForCharacterOffset\n */\n\n'use strict';\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n node = node.parentNode;\n }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === 3) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\nmodule.exports = getNodeForCharacterOffset;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldC5qcz8xMmY1Il0sIm5hbWVzIjpbImdldExlYWZOb2RlIiwibm9kZSIsImZpcnN0Q2hpbGQiLCJnZXRTaWJsaW5nTm9kZSIsIm5leHRTaWJsaW5nIiwicGFyZW50Tm9kZSIsImdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQiLCJyb290Iiwib2Zmc2V0Iiwibm9kZVN0YXJ0Iiwibm9kZUVuZCIsIm5vZGVUeXBlIiwidGV4dENvbnRlbnQiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQTs7Ozs7OztBQU1BLFNBQVNBLFdBQVQsQ0FBcUJDLElBQXJCLEVBQTJCO0FBQ3pCLFNBQU9BLFFBQVFBLEtBQUtDLFVBQXBCLEVBQWdDO0FBQzlCRCxXQUFPQSxLQUFLQyxVQUFaO0FBQ0Q7QUFDRCxTQUFPRCxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTRSxjQUFULENBQXdCRixJQUF4QixFQUE4QjtBQUM1QixTQUFPQSxJQUFQLEVBQWE7QUFDWCxRQUFJQSxLQUFLRyxXQUFULEVBQXNCO0FBQ3BCLGFBQU9ILEtBQUtHLFdBQVo7QUFDRDtBQUNESCxXQUFPQSxLQUFLSSxVQUFaO0FBQ0Q7QUFDRjs7QUFFRDs7Ozs7OztBQU9BLFNBQVNDLHlCQUFULENBQW1DQyxJQUFuQyxFQUF5Q0MsTUFBekMsRUFBaUQ7QUFDL0MsTUFBSVAsT0FBT0QsWUFBWU8sSUFBWixDQUFYO0FBQ0EsTUFBSUUsWUFBWSxDQUFoQjtBQUNBLE1BQUlDLFVBQVUsQ0FBZDs7QUFFQSxTQUFPVCxJQUFQLEVBQWE7QUFDWCxRQUFJQSxLQUFLVSxRQUFMLEtBQWtCLENBQXRCLEVBQXlCO0FBQ3ZCRCxnQkFBVUQsWUFBWVIsS0FBS1csV0FBTCxDQUFpQkMsTUFBdkM7O0FBRUEsVUFBSUosYUFBYUQsTUFBYixJQUF1QkUsV0FBV0YsTUFBdEMsRUFBOEM7QUFDNUMsZUFBTztBQUNMUCxnQkFBTUEsSUFERDtBQUVMTyxrQkFBUUEsU0FBU0M7QUFGWixTQUFQO0FBSUQ7O0FBRURBLGtCQUFZQyxPQUFaO0FBQ0Q7O0FBRURULFdBQU9ELFlBQVlHLGVBQWVGLElBQWYsQ0FBWixDQUFQO0FBQ0Q7QUFDRjs7QUFFRGEsT0FBT0MsT0FBUCxHQUFpQlQseUJBQWpCIiwiZmlsZSI6IjEyOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKipcbiAqIEdpdmVuIGFueSBub2RlIHJldHVybiB0aGUgZmlyc3QgbGVhZiBub2RlIHdpdGhvdXQgY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcmV0dXJuIHtET01FbGVtZW50fERPTVRleHROb2RlfVxuICovXG5mdW5jdGlvbiBnZXRMZWFmTm9kZShub2RlKSB7XG4gIHdoaWxlIChub2RlICYmIG5vZGUuZmlyc3RDaGlsZCkge1xuICAgIG5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59XG5cbi8qKlxuICogR2V0IHRoZSBuZXh0IHNpYmxpbmcgd2l0aGluIGEgY29udGFpbmVyLiBUaGlzIHdpbGwgd2FsayB1cCB0aGVcbiAqIERPTSBpZiBhIG5vZGUncyBzaWJsaW5ncyBoYXZlIGJlZW4gZXhoYXVzdGVkLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gbm9kZVxuICogQHJldHVybiB7P0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9XG4gKi9cbmZ1bmN0aW9uIGdldFNpYmxpbmdOb2RlKG5vZGUpIHtcbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5uZXh0U2libGluZykge1xuICAgICAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmc7XG4gICAgfVxuICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgb2JqZWN0IGRlc2NyaWJpbmcgdGhlIG5vZGVzIHdoaWNoIGNvbnRhaW4gY2hhcmFjdGVycyBhdCBvZmZzZXQuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSByb290XG4gKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0XG4gKiBAcmV0dXJuIHs/b2JqZWN0fVxuICovXG5mdW5jdGlvbiBnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0KHJvb3QsIG9mZnNldCkge1xuICB2YXIgbm9kZSA9IGdldExlYWZOb2RlKHJvb3QpO1xuICB2YXIgbm9kZVN0YXJ0ID0gMDtcbiAgdmFyIG5vZGVFbmQgPSAwO1xuXG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDMpIHtcbiAgICAgIG5vZGVFbmQgPSBub2RlU3RhcnQgKyBub2RlLnRleHRDb250ZW50Lmxlbmd0aDtcblxuICAgICAgaWYgKG5vZGVTdGFydCA8PSBvZmZzZXQgJiYgbm9kZUVuZCA+PSBvZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0IC0gbm9kZVN0YXJ0XG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIG5vZGVTdGFydCA9IG5vZGVFbmQ7XG4gICAgfVxuXG4gICAgbm9kZSA9IGdldExlYWZOb2RlKGdldFNpYmxpbmdOb2RlKG5vZGUpKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL2dldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 129 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getActiveElement\n * @typechecks\n */\n\n/* eslint-disable fb-www/typeof-undefined */\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n */\n'use strict';\n\nfunction getActiveElement() /*?DOMElement*/{\n if (typeof document === 'undefined') {\n return null;\n }\n try {\n return document.activeElement || document.body;\n } catch (e) {\n return document.body;\n }\n}\n\nmodule.exports = getActiveElement;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9nZXRBY3RpdmVFbGVtZW50LmpzP2I4MjUiXSwibmFtZXMiOlsiZ2V0QWN0aXZlRWxlbWVudCIsImRvY3VtZW50IiwiYWN0aXZlRWxlbWVudCIsImJvZHkiLCJlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBOzs7Ozs7O0FBT0E7O0FBRUEsU0FBU0EsZ0JBQVQsR0FBNEIsZUFBZTtBQUN6QyxNQUFJLE9BQU9DLFFBQVAsS0FBb0IsV0FBeEIsRUFBcUM7QUFDbkMsV0FBTyxJQUFQO0FBQ0Q7QUFDRCxNQUFJO0FBQ0YsV0FBT0EsU0FBU0MsYUFBVCxJQUEwQkQsU0FBU0UsSUFBMUM7QUFDRCxHQUZELENBRUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsV0FBT0gsU0FBU0UsSUFBaEI7QUFDRDtBQUNGOztBQUVERSxPQUFPQyxPQUFQLEdBQWlCTixnQkFBakIiLCJmaWxlIjoiMTI5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGdldEFjdGl2ZUVsZW1lbnRcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgZmItd3d3L3R5cGVvZi11bmRlZmluZWQgKi9cblxuLyoqXG4gKiBTYW1lIGFzIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYnV0IHdyYXBzIGluIGEgdHJ5LWNhdGNoIGJsb2NrLiBJbiBJRSBpdCBpc1xuICogbm90IHNhZmUgdG8gY2FsbCBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlmIHRoZXJlIGlzIG5vdGhpbmcgZm9jdXNlZC5cbiAqXG4gKiBUaGUgYWN0aXZlRWxlbWVudCB3aWxsIGJlIG51bGwgb25seSBpZiB0aGUgZG9jdW1lbnQgb3IgZG9jdW1lbnQgYm9keSBpcyBub3RcbiAqIHlldCBkZWZpbmVkLlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnQoKSAvKj9ET01FbGVtZW50Ki97XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCB8fCBkb2N1bWVudC5ib2R5O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmJvZHk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRBY3RpdmVFbGVtZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL2dldEFjdGl2ZUVsZW1lbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 130 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SelectEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar EventPropagators = __webpack_require__(73);\nvar ExecutionEnvironment = __webpack_require__(9);\nvar ReactInputSelection = __webpack_require__(126);\nvar SyntheticEvent = __webpack_require__(77);\n\nvar getActiveElement = __webpack_require__(129);\nvar isTextInputElement = __webpack_require__(82);\nvar keyOf = __webpack_require__(79);\nvar shallowEqual = __webpack_require__(117);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes = {\n select: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSelect: null }),\n captured: keyOf({ onSelectCapture: null })\n },\n dependencies: [topLevelTypes.topBlur, topLevelTypes.topContextMenu, topLevelTypes.topFocus, topLevelTypes.topKeyDown, topLevelTypes.topMouseDown, topLevelTypes.topMouseUp, topLevelTypes.topSelectionChange]\n }\n};\n\nvar activeElement = null;\nvar activeElementID = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n// Track whether a listener exists for this plugin. If none exist, we do\n// not extract events.\nvar hasListener = false;\nvar ON_SELECT_KEY = keyOf({ onSelect: null });\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else if (window.getSelection) {\n var selection = window.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n } else if (document.selection) {\n var range = document.selection.createRange();\n return {\n parentElement: range.parentElement(),\n text: range.text,\n top: range.boundingTop,\n left: range.boundingLeft\n };\n }\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {\n return null;\n }\n\n // Only fire when selection has actually changed.\n var currentSelection = getSelection(activeElement);\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n\n var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementID, nativeEvent, nativeEventTarget);\n\n syntheticEvent.type = 'select';\n syntheticEvent.target = activeElement;\n\n EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);\n\n return syntheticEvent;\n }\n\n return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n if (!hasListener) {\n return null;\n }\n\n switch (topLevelType) {\n // Track the input node that has focus.\n case topLevelTypes.topFocus:\n if (isTextInputElement(topLevelTarget) || topLevelTarget.contentEditable === 'true') {\n activeElement = topLevelTarget;\n activeElementID = topLevelTargetID;\n lastSelection = null;\n }\n break;\n case topLevelTypes.topBlur:\n activeElement = null;\n activeElementID = null;\n lastSelection = null;\n break;\n\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n case topLevelTypes.topMouseDown:\n mouseDown = true;\n break;\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topMouseUp:\n mouseDown = false;\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n case topLevelTypes.topSelectionChange:\n if (skipSelectionChangeEvent) {\n break;\n }\n // falls through\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n return constructSelectEvent(nativeEvent, nativeEventTarget);\n }\n\n return null;\n },\n\n didPutListener: function didPutListener(id, registrationName, listener) {\n if (registrationName === ON_SELECT_KEY) {\n hasListener = true;\n }\n }\n};\n\nmodule.exports = SelectEventPlugin;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU2VsZWN0RXZlbnRQbHVnaW4uanM/NTZmMSJdLCJuYW1lcyI6WyJFdmVudENvbnN0YW50cyIsInJlcXVpcmUiLCJFdmVudFByb3BhZ2F0b3JzIiwiRXhlY3V0aW9uRW52aXJvbm1lbnQiLCJSZWFjdElucHV0U2VsZWN0aW9uIiwiU3ludGhldGljRXZlbnQiLCJnZXRBY3RpdmVFbGVtZW50IiwiaXNUZXh0SW5wdXRFbGVtZW50Iiwia2V5T2YiLCJzaGFsbG93RXF1YWwiLCJ0b3BMZXZlbFR5cGVzIiwic2tpcFNlbGVjdGlvbkNoYW5nZUV2ZW50IiwiY2FuVXNlRE9NIiwiZG9jdW1lbnQiLCJkb2N1bWVudE1vZGUiLCJldmVudFR5cGVzIiwic2VsZWN0IiwicGhhc2VkUmVnaXN0cmF0aW9uTmFtZXMiLCJidWJibGVkIiwib25TZWxlY3QiLCJjYXB0dXJlZCIsIm9uU2VsZWN0Q2FwdHVyZSIsImRlcGVuZGVuY2llcyIsInRvcEJsdXIiLCJ0b3BDb250ZXh0TWVudSIsInRvcEZvY3VzIiwidG9wS2V5RG93biIsInRvcE1vdXNlRG93biIsInRvcE1vdXNlVXAiLCJ0b3BTZWxlY3Rpb25DaGFuZ2UiLCJhY3RpdmVFbGVtZW50IiwiYWN0aXZlRWxlbWVudElEIiwibGFzdFNlbGVjdGlvbiIsIm1vdXNlRG93biIsImhhc0xpc3RlbmVyIiwiT05fU0VMRUNUX0tFWSIsImdldFNlbGVjdGlvbiIsIm5vZGUiLCJoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMiLCJzdGFydCIsInNlbGVjdGlvblN0YXJ0IiwiZW5kIiwic2VsZWN0aW9uRW5kIiwid2luZG93Iiwic2VsZWN0aW9uIiwiYW5jaG9yTm9kZSIsImFuY2hvck9mZnNldCIsImZvY3VzTm9kZSIsImZvY3VzT2Zmc2V0IiwicmFuZ2UiLCJjcmVhdGVSYW5nZSIsInBhcmVudEVsZW1lbnQiLCJ0ZXh0IiwidG9wIiwiYm91bmRpbmdUb3AiLCJsZWZ0IiwiYm91bmRpbmdMZWZ0IiwiY29uc3RydWN0U2VsZWN0RXZlbnQiLCJuYXRpdmVFdmVudCIsIm5hdGl2ZUV2ZW50VGFyZ2V0IiwiY3VycmVudFNlbGVjdGlvbiIsInN5bnRoZXRpY0V2ZW50IiwiZ2V0UG9vbGVkIiwidHlwZSIsInRhcmdldCIsImFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMiLCJTZWxlY3RFdmVudFBsdWdpbiIsImV4dHJhY3RFdmVudHMiLCJ0b3BMZXZlbFR5cGUiLCJ0b3BMZXZlbFRhcmdldCIsInRvcExldmVsVGFyZ2V0SUQiLCJjb250ZW50RWRpdGFibGUiLCJ0b3BLZXlVcCIsImRpZFB1dExpc3RlbmVyIiwiaWQiLCJyZWdpc3RyYXRpb25OYW1lIiwibGlzdGVuZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjtBQUNBLElBQUlDLG1CQUFtQixtQkFBQUQsQ0FBUSxFQUFSLENBQXZCO0FBQ0EsSUFBSUUsdUJBQXVCLG1CQUFBRixDQUFRLENBQVIsQ0FBM0I7QUFDQSxJQUFJRyxzQkFBc0IsbUJBQUFILENBQVEsR0FBUixDQUExQjtBQUNBLElBQUlJLGlCQUFpQixtQkFBQUosQ0FBUSxFQUFSLENBQXJCOztBQUVBLElBQUlLLG1CQUFtQixtQkFBQUwsQ0FBUSxHQUFSLENBQXZCO0FBQ0EsSUFBSU0scUJBQXFCLG1CQUFBTixDQUFRLEVBQVIsQ0FBekI7QUFDQSxJQUFJTyxRQUFRLG1CQUFBUCxDQUFRLEVBQVIsQ0FBWjtBQUNBLElBQUlRLGVBQWUsbUJBQUFSLENBQVEsR0FBUixDQUFuQjs7QUFFQSxJQUFJUyxnQkFBZ0JWLGVBQWVVLGFBQW5DOztBQUVBLElBQUlDLDJCQUEyQlIscUJBQXFCUyxTQUFyQixJQUFrQyxrQkFBa0JDLFFBQXBELElBQWdFQSxTQUFTQyxZQUFULElBQXlCLEVBQXhI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bnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFNlbGVjdEV2ZW50UGx1Z2luXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRDb25zdGFudHMgPSByZXF1aXJlKCcuL0V2ZW50Q29uc3RhbnRzJyk7XG52YXIgRXZlbnRQcm9wYWdhdG9ycyA9IHJlcXVpcmUoJy4vRXZlbnRQcm9wYWdhdG9ycycpO1xudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcbnZhciBSZWFjdElucHV0U2VsZWN0aW9uID0gcmVxdWlyZSgnLi9SZWFjdElucHV0U2VsZWN0aW9uJyk7XG52YXIgU3ludGhldGljRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0V2ZW50Jyk7XG5cbnZhciBnZXRBY3RpdmVFbGVtZW50ID0gcmVxdWlyZSgnZmJqcy9saWIvZ2V0QWN0aXZlRWxlbWVudCcpO1xudmFyIGlzVGV4dElucHV0RWxlbWVudCA9IHJlcXVpcmUoJy4vaXNUZXh0SW5wdXRFbGVtZW50Jyk7XG52YXIga2V5T2YgPSByZXF1aXJlKCdmYmpzL2xpYi9rZXlPZicpO1xudmFyIHNoYWxsb3dFcXVhbCA9IHJlcXVpcmUoJ2ZianMvbGliL3NoYWxsb3dFcXVhbCcpO1xuXG52YXIgdG9wTGV2ZWxUeXBlcyA9IEV2ZW50Q29uc3RhbnRzLnRvcExldmVsVHlwZXM7XG5cbnZhciBza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQgPSBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gJiYgJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRNb2RlIDw9IDExO1xuXG52YXIgZXZlbnRUeXBlcyA9IHtcbiAgc2VsZWN0OiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25TZWxlY3Q6IG51bGwgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblNlbGVjdENhcHR1cmU6IG51bGwgfSlcbiAgICB9LFxuICAgIGRlcGVuZGVuY2llczogW3RvcExldmVsVHlwZXMudG9wQmx1ciwgdG9wTGV2ZWxUeXBlcy50b3BDb250ZXh0TWVudSwgdG9wTGV2ZWxUeXBlcy50b3BGb2N1cywgdG9wTGV2ZWxUeXBlcy50b3BLZXlEb3duLCB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlRG93biwgdG9wTGV2ZWxUeXBlcy50b3BNb3VzZVVwLCB0b3BMZXZlbFR5cGVzLnRvcFNlbGVjdGlvbkNoYW5nZV1cbiAgfVxufTtcblxudmFyIGFjdGl2ZUVsZW1lbnQgPSBudWxsO1xudmFyIGFjdGl2ZUVsZW1lbnRJRCA9IG51bGw7XG52YXIgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG52YXIgbW91c2VEb3duID0gZmFsc2U7XG5cbi8vIFRyYWNrIHdoZXRoZXIgYSBsaXN0ZW5lciBleGlzdHMgZm9yIHRoaXMgcGx1Z2luLiBJZiBub25lIGV4aXN0LCB3ZSBkb1xuLy8gbm90IGV4dHJhY3QgZXZlbnRzLlxudmFyIGhhc0xpc3RlbmVyID0gZmFsc2U7XG52YXIgT05fU0VMRUNUX0tFWSA9IGtleU9mKHsgb25TZWxlY3Q6IG51bGwgfSk7XG5cbi8qKlxuICogR2V0IGFuIG9iamVjdCB3aGljaCBpcyBhIHVuaXF1ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSB3aWxsIG5vdCBiZSBjb25zaXN0ZW50IGFjcm9zcyBub2RlcyBvciBicm93c2VycywgYnV0XG4gKiB0d28gaWRlbnRpY2FsIHNlbGVjdGlvbnMgb24gdGhlIHNhbWUgbm9kZSB3aWxsIHJldHVybiBpZGVudGljYWwgb2JqZWN0cy5cbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xuZnVuY3Rpb24gZ2V0U2VsZWN0aW9uKG5vZGUpIHtcbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gbm9kZSAmJiBSZWFjdElucHV0U2VsZWN0aW9uLmhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhub2RlKSkge1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogbm9kZS5zZWxlY3Rpb25TdGFydCxcbiAgICAgIGVuZDogbm9kZS5zZWxlY3Rpb25FbmRcbiAgICB9O1xuICB9IGVsc2UgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24pIHtcbiAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIHJldHVybiB7XG4gICAgICBhbmNob3JOb2RlOiBzZWxlY3Rpb24uYW5jaG9yTm9kZSxcbiAgICAgIGFuY2hvck9mZnNldDogc2VsZWN0aW9uLmFuY2hvck9mZnNldCxcbiAgICAgIGZvY3VzTm9kZTogc2VsZWN0aW9uLmZvY3VzTm9kZSxcbiAgICAgIGZvY3VzT2Zmc2V0OiBzZWxlY3Rpb24uZm9jdXNPZmZzZXRcbiAgICB9O1xuICB9IGVsc2UgaWYgKGRvY3VtZW50LnNlbGVjdGlvbikge1xuICAgIHZhciByYW5nZSA9IGRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwYXJlbnRFbGVtZW50OiByYW5nZS5wYXJlbnRFbGVtZW50KCksXG4gICAgICB0ZXh0OiByYW5nZS50ZXh0LFxuICAgICAgdG9wOiByYW5nZS5ib3VuZGluZ1RvcCxcbiAgICAgIGxlZnQ6IHJhbmdlLmJvdW5kaW5nTGVmdFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBQb2xsIHNlbGVjdGlvbiB0byBzZWUgd2hldGhlciBpdCdzIGNoYW5nZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHs/U3ludGhldGljRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIGNvbnN0cnVjdFNlbGVjdEV2ZW50KG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAvLyBFbnN1cmUgd2UgaGF2ZSB0aGUgcmlnaHQgZWxlbWVudCwgYW5kIHRoYXQgdGhlIHVzZXIgaXMgbm90IGRyYWdnaW5nIGFcbiAgLy8gc2VsZWN0aW9uICh0aGlzIG1hdGNoZXMgbmF0aXZlIGBzZWxlY3RgIGV2ZW50IGJlaGF2aW9yKS4gSW4gSFRNTDUsIHNlbGVjdFxuICAvLyBmaXJlcyBvbmx5IG9uIGlucHV0IGFuZCB0ZXh0YXJlYSB0aHVzIGlmIHRoZXJlJ3Mgbm8gZm9jdXNlZCBlbGVtZW50IHdlXG4gIC8vIHdvbid0IGRpc3BhdGNoLlxuICBpZiAobW91c2VEb3duIHx8IGFjdGl2ZUVsZW1lbnQgPT0gbnVsbCB8fCBhY3RpdmVFbGVtZW50ICE9PSBnZXRBY3RpdmVFbGVtZW50KCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgZmlyZSB3aGVuIHNlbGVjdGlvbiBoYXMgYWN0dWFsbHkgY2hhbmdlZC5cbiAgdmFyIGN1cnJlbnRTZWxlY3Rpb24gPSBnZXRTZWxlY3Rpb24oYWN0aXZlRWxlbWVudCk7XG4gIGlmICghbGFzdFNlbGVjdGlvbiB8fCAhc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGN1cnJlbnRTZWxlY3Rpb24pKSB7XG4gICAgbGFzdFNlbGVjdGlvbiA9IGN1cnJlbnRTZWxlY3Rpb247XG5cbiAgICB2YXIgc3ludGhldGljRXZlbnQgPSBTeW50aGV0aWNFdmVudC5nZXRQb29sZWQoZXZlbnRUeXBlcy5zZWxlY3QsIGFjdGl2ZUVsZW1lbnRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICAgIHN5bnRoZXRpY0V2ZW50LnR5cGUgPSAnc2VsZWN0JztcbiAgICBzeW50aGV0aWNFdmVudC50YXJnZXQgPSBhY3RpdmVFbGVtZW50O1xuXG4gICAgRXZlbnRQcm9wYWdhdG9ycy5hY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzKHN5bnRoZXRpY0V2ZW50KTtcblxuICAgIHJldHVybiBzeW50aGV0aWNFdmVudDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uU2VsZWN0YCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgc2VsZWN0IGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuXG4gKlxuICogU3VwcG9ydGVkIGVsZW1lbnRzIGFyZTpcbiAqIC0gaW5wdXQgKHNlZSBgaXNUZXh0SW5wdXRFbGVtZW50YClcbiAqIC0gdGV4dGFyZWFcbiAqIC0gY29udGVudEVkaXRhYmxlXG4gKlxuICogVGhpcyBkaWZmZXJzIGZyb20gbmF0aXZlIGJyb3dzZXIgaW1wbGVtZW50YXRpb25zIGluIHRoZSBmb2xsb3dpbmcgd2F5czpcbiAqIC0gRmlyZXMgb24gY29udGVudEVkaXRhYmxlIGZpZWxkcyBhcyB3ZWxsIGFzIGlucHV0cy5cbiAqIC0gRmlyZXMgZm9yIGNvbGxhcHNlZCBzZWxlY3Rpb24uXG4gKiAtIEZpcmVzIGFmdGVyIHVzZXIgaW5wdXQuXG4gKi9cbnZhciBTZWxlY3RFdmVudFBsdWdpbiA9IHtcblxuICBldmVudFR5cGVzOiBldmVudFR5cGVzLFxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9wTGV2ZWxUeXBlIFJlY29yZCBmcm9tIGBFdmVudENvbnN0YW50c2AuXG4gICAqIEBwYXJhbSB7RE9NRXZlbnRUYXJnZXR9IHRvcExldmVsVGFyZ2V0IFRoZSBsaXN0ZW5pbmcgY29tcG9uZW50IHJvb3Qgbm9kZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVGFyZ2V0SUQgSUQgb2YgYHRvcExldmVsVGFyZ2V0YC5cbiAgICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICAgKiBAcmV0dXJuIHsqfSBBbiBhY2N1bXVsYXRpb24gb2Ygc3ludGhldGljIGV2ZW50cy5cbiAgICogQHNlZSB7RXZlbnRQbHVnaW5IdWIuZXh0cmFjdEV2ZW50c31cbiAgICovXG4gIGV4dHJhY3RFdmVudHM6IGZ1bmN0aW9uICh0b3BMZXZlbFR5cGUsIHRvcExldmVsVGFyZ2V0LCB0b3BMZXZlbFRhcmdldElELCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgICBpZiAoIWhhc0xpc3RlbmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRvcExldmVsVHlwZSkge1xuICAgICAgLy8gVHJhY2sgdGhlIGlucHV0IG5vZGUgdGhhdCBoYXMgZm9jdXMuXG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wRm9jdXM6XG4gICAgICAgIGlmIChpc1RleHRJbnB1dEVsZW1lbnQodG9wTGV2ZWxUYXJnZXQpIHx8IHRvcExldmVsVGFyZ2V0LmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgYWN0aXZlRWxlbWVudCA9IHRvcExldmVsVGFyZ2V0O1xuICAgICAgICAgIGFjdGl2ZUVsZW1lbnRJRCA9IHRvcExldmVsVGFyZ2V0SUQ7XG4gICAgICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQmx1cjpcbiAgICAgICAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnRJRCA9IG51bGw7XG4gICAgICAgIGxhc3RTZWxlY3Rpb24gPSBudWxsO1xuICAgICAgICBicmVhaztcblxuICAgICAgLy8gRG9uJ3QgZmlyZSB0aGUgZXZlbnQgd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcuIFRoaXMgbWF0Y2hlcyB0aGVcbiAgICAgIC8vIHNlbWFudGljcyBvZiB0aGUgbmF0aXZlIHNlbGVjdCBldmVudC5cbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BNb3VzZURvd246XG4gICAgICAgIG1vdXNlRG93biA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcENvbnRleHRNZW51OlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlVXA6XG4gICAgICAgIG1vdXNlRG93biA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gY29uc3RydWN0U2VsZWN0RXZlbnQobmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICAgICAgLy8gQ2hyb21lIGFuZCBJRSBmaXJlIG5vbi1zdGFuZGFyZCBldmVudCB3aGVuIHNlbGVjdGlvbiBpcyBjaGFuZ2VkIChhbmRcbiAgICAgIC8vIHNvbWV0aW1lcyB3aGVuIGl0IGhhc24ndCkuIElFJ3MgZXZlbnQgZmlyZXMgb3V0IG9mIG9yZGVyIHdpdGggcmVzcGVjdFxuICAgICAgLy8gdG8ga2V5IGFuZCBpbnB1dCBldmVudHMgb24gZGVsZXRpb24sIHNvIHdlIGRpc2NhcmQgaXQuXG4gICAgICAvL1xuICAgICAgLy8gRmlyZWZveCBkb2Vzbid0IHN1cHBvcnQgc2VsZWN0aW9uY2hhbmdlLCBzbyBjaGVjayBzZWxlY3Rpb24gc3RhdHVzXG4gICAgICAvLyBhZnRlciBlYWNoIGtleSBlbnRyeS4gVGhlIHNlbGVjdGlvbiBjaGFuZ2VzIGFmdGVyIGtleWRvd24gYW5kIGJlZm9yZVxuICAgICAgLy8ga2V5dXAsIGJ1dCB3ZSBjaGVjayBvbiBrZXlkb3duIGFzIHdlbGwgaW4gdGhlIGNhc2Ugb2YgaG9sZGluZyBkb3duIGFcbiAgICAgIC8vIGtleSwgd2hlbiBtdWx0aXBsZSBrZXlkb3duIGV2ZW50cyBhcmUgZmlyZWQgYnV0IG9ubHkgb25lIGtleXVwIGlzLlxuICAgICAgLy8gVGhpcyBpcyBhbHNvIG91ciBhcHByb2FjaCBmb3IgSUUgaGFuZGxpbmcsIGZvciB0aGUgcmVhc29uIGFib3ZlLlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFNlbGVjdGlvbkNoYW5nZTpcbiAgICAgICAgaWYgKHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wS2V5RG93bjpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BLZXlVcDpcbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdFNlbGVjdEV2ZW50KG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0sXG5cbiAgZGlkUHV0TGlzdGVuZXI6IGZ1bmN0aW9uIChpZCwgcmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIpIHtcbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZSA9PT0gT05fU0VMRUNUX0tFWSkge1xuICAgICAgaGFzTGlzdGVuZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZWxlY3RFdmVudFBsdWdpbjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU2VsZWN0RXZlbnRQbHVnaW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 131 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ServerReactRootIndex\n * @typechecks\n */\n\n'use strict';\n\n/**\n * Size of the reactRoot ID space. We generate random numbers for React root\n * IDs and if there's a collision the events and DOM update system will\n * get confused. In the future we need a way to generate GUIDs but for\n * now this will work on a smaller scale.\n */\n\nvar GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53);\n\nvar ServerReactRootIndex = {\n createReactRootIndex: function createReactRootIndex() {\n return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX);\n }\n};\n\nmodule.exports = ServerReactRootIndex;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU2VydmVyUmVhY3RSb290SW5kZXguanM/MDNmNiJdLCJuYW1lcyI6WyJHTE9CQUxfTU9VTlRfUE9JTlRfTUFYIiwiTWF0aCIsInBvdyIsIlNlcnZlclJlYWN0Um9vdEluZGV4IiwiY3JlYXRlUmVhY3RSb290SW5kZXgiLCJjZWlsIiwicmFuZG9tIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBOzs7Ozs7O0FBTUEsSUFBSUEseUJBQXlCQyxLQUFLQyxHQUFMLENBQVMsQ0FBVCxFQUFZLEVBQVosQ0FBN0I7O0FBRUEsSUFBSUMsdUJBQXVCO0FBQ3pCQyx3QkFBc0IsZ0NBQVk7QUFDaEMsV0FBT0gsS0FBS0ksSUFBTCxDQUFVSixLQUFLSyxNQUFMLEtBQWdCTixzQkFBMUIsQ0FBUDtBQUNEO0FBSHdCLENBQTNCOztBQU1BTyxPQUFPQyxPQUFQLEdBQWlCTCxvQkFBakIiLCJmaWxlIjoiMTMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFNlcnZlclJlYWN0Um9vdEluZGV4XG4gKiBAdHlwZWNoZWNrc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBTaXplIG9mIHRoZSByZWFjdFJvb3QgSUQgc3BhY2UuIFdlIGdlbmVyYXRlIHJhbmRvbSBudW1iZXJzIGZvciBSZWFjdCByb290XG4gKiBJRHMgYW5kIGlmIHRoZXJlJ3MgYSBjb2xsaXNpb24gdGhlIGV2ZW50cyBhbmQgRE9NIHVwZGF0ZSBzeXN0ZW0gd2lsbFxuICogZ2V0IGNvbmZ1c2VkLiBJbiB0aGUgZnV0dXJlIHdlIG5lZWQgYSB3YXkgdG8gZ2VuZXJhdGUgR1VJRHMgYnV0IGZvclxuICogbm93IHRoaXMgd2lsbCB3b3JrIG9uIGEgc21hbGxlciBzY2FsZS5cbiAqL1xudmFyIEdMT0JBTF9NT1VOVF9QT0lOVF9NQVggPSBNYXRoLnBvdygyLCA1Myk7XG5cbnZhciBTZXJ2ZXJSZWFjdFJvb3RJbmRleCA9IHtcbiAgY3JlYXRlUmVhY3RSb290SW5kZXg6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiBHTE9CQUxfTU9VTlRfUE9JTlRfTUFYKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZXJ2ZXJSZWFjdFJvb3RJbmRleDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU2VydmVyUmVhY3RSb290SW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 132 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SimpleEventPlugin\n */\n\n'use strict';\n\nvar EventConstants = __webpack_require__(30);\nvar EventListener = __webpack_require__(119);\nvar EventPropagators = __webpack_require__(73);\nvar ReactMount = __webpack_require__(28);\nvar SyntheticClipboardEvent = __webpack_require__(133);\nvar SyntheticEvent = __webpack_require__(77);\nvar SyntheticFocusEvent = __webpack_require__(134);\nvar SyntheticKeyboardEvent = __webpack_require__(135);\nvar SyntheticMouseEvent = __webpack_require__(86);\nvar SyntheticDragEvent = __webpack_require__(138);\nvar SyntheticTouchEvent = __webpack_require__(139);\nvar SyntheticUIEvent = __webpack_require__(87);\nvar SyntheticWheelEvent = __webpack_require__(140);\n\nvar emptyFunction = __webpack_require__(15);\nvar getEventCharCode = __webpack_require__(136);\nvar invariant = __webpack_require__(13);\nvar keyOf = __webpack_require__(79);\n\nvar topLevelTypes = EventConstants.topLevelTypes;\n\nvar eventTypes = {\n abort: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onAbort: true }),\n captured: keyOf({ onAbortCapture: true })\n }\n },\n blur: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onBlur: true }),\n captured: keyOf({ onBlurCapture: true })\n }\n },\n canPlay: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCanPlay: true }),\n captured: keyOf({ onCanPlayCapture: true })\n }\n },\n canPlayThrough: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCanPlayThrough: true }),\n captured: keyOf({ onCanPlayThroughCapture: true })\n }\n },\n click: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onClick: true }),\n captured: keyOf({ onClickCapture: true })\n }\n },\n contextMenu: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onContextMenu: true }),\n captured: keyOf({ onContextMenuCapture: true })\n }\n },\n copy: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCopy: true }),\n captured: keyOf({ onCopyCapture: true })\n }\n },\n cut: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onCut: true }),\n captured: keyOf({ onCutCapture: true })\n }\n },\n doubleClick: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDoubleClick: true }),\n captured: keyOf({ onDoubleClickCapture: true })\n }\n },\n drag: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDrag: true }),\n captured: keyOf({ onDragCapture: true })\n }\n },\n dragEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragEnd: true }),\n captured: keyOf({ onDragEndCapture: true })\n }\n },\n dragEnter: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragEnter: true }),\n captured: keyOf({ onDragEnterCapture: true })\n }\n },\n dragExit: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragExit: true }),\n captured: keyOf({ onDragExitCapture: true })\n }\n },\n dragLeave: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragLeave: true }),\n captured: keyOf({ onDragLeaveCapture: true })\n }\n },\n dragOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragOver: true }),\n captured: keyOf({ onDragOverCapture: true })\n }\n },\n dragStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDragStart: true }),\n captured: keyOf({ onDragStartCapture: true })\n }\n },\n drop: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDrop: true }),\n captured: keyOf({ onDropCapture: true })\n }\n },\n durationChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onDurationChange: true }),\n captured: keyOf({ onDurationChangeCapture: true })\n }\n },\n emptied: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEmptied: true }),\n captured: keyOf({ onEmptiedCapture: true })\n }\n },\n encrypted: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEncrypted: true }),\n captured: keyOf({ onEncryptedCapture: true })\n }\n },\n ended: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onEnded: true }),\n captured: keyOf({ onEndedCapture: true })\n }\n },\n error: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onError: true }),\n captured: keyOf({ onErrorCapture: true })\n }\n },\n focus: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onFocus: true }),\n captured: keyOf({ onFocusCapture: true })\n }\n },\n input: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onInput: true }),\n captured: keyOf({ onInputCapture: true })\n }\n },\n keyDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyDown: true }),\n captured: keyOf({ onKeyDownCapture: true })\n }\n },\n keyPress: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyPress: true }),\n captured: keyOf({ onKeyPressCapture: true })\n }\n },\n keyUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onKeyUp: true }),\n captured: keyOf({ onKeyUpCapture: true })\n }\n },\n load: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoad: true }),\n captured: keyOf({ onLoadCapture: true })\n }\n },\n loadedData: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadedData: true }),\n captured: keyOf({ onLoadedDataCapture: true })\n }\n },\n loadedMetadata: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadedMetadata: true }),\n captured: keyOf({ onLoadedMetadataCapture: true })\n }\n },\n loadStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onLoadStart: true }),\n captured: keyOf({ onLoadStartCapture: true })\n }\n },\n // Note: We do not allow listening to mouseOver events. Instead, use the\n // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.\n mouseDown: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseDown: true }),\n captured: keyOf({ onMouseDownCapture: true })\n }\n },\n mouseMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseMove: true }),\n captured: keyOf({ onMouseMoveCapture: true })\n }\n },\n mouseOut: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseOut: true }),\n captured: keyOf({ onMouseOutCapture: true })\n }\n },\n mouseOver: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseOver: true }),\n captured: keyOf({ onMouseOverCapture: true })\n }\n },\n mouseUp: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onMouseUp: true }),\n captured: keyOf({ onMouseUpCapture: true })\n }\n },\n paste: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPaste: true }),\n captured: keyOf({ onPasteCapture: true })\n }\n },\n pause: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPause: true }),\n captured: keyOf({ onPauseCapture: true })\n }\n },\n play: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPlay: true }),\n captured: keyOf({ onPlayCapture: true })\n }\n },\n playing: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onPlaying: true }),\n captured: keyOf({ onPlayingCapture: true })\n }\n },\n progress: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onProgress: true }),\n captured: keyOf({ onProgressCapture: true })\n }\n },\n rateChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onRateChange: true }),\n captured: keyOf({ onRateChangeCapture: true })\n }\n },\n reset: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onReset: true }),\n captured: keyOf({ onResetCapture: true })\n }\n },\n scroll: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onScroll: true }),\n captured: keyOf({ onScrollCapture: true })\n }\n },\n seeked: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSeeked: true }),\n captured: keyOf({ onSeekedCapture: true })\n }\n },\n seeking: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSeeking: true }),\n captured: keyOf({ onSeekingCapture: true })\n }\n },\n stalled: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onStalled: true }),\n captured: keyOf({ onStalledCapture: true })\n }\n },\n submit: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSubmit: true }),\n captured: keyOf({ onSubmitCapture: true })\n }\n },\n suspend: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onSuspend: true }),\n captured: keyOf({ onSuspendCapture: true })\n }\n },\n timeUpdate: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTimeUpdate: true }),\n captured: keyOf({ onTimeUpdateCapture: true })\n }\n },\n touchCancel: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchCancel: true }),\n captured: keyOf({ onTouchCancelCapture: true })\n }\n },\n touchEnd: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchEnd: true }),\n captured: keyOf({ onTouchEndCapture: true })\n }\n },\n touchMove: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchMove: true }),\n captured: keyOf({ onTouchMoveCapture: true })\n }\n },\n touchStart: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onTouchStart: true }),\n captured: keyOf({ onTouchStartCapture: true })\n }\n },\n volumeChange: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onVolumeChange: true }),\n captured: keyOf({ onVolumeChangeCapture: true })\n }\n },\n waiting: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onWaiting: true }),\n captured: keyOf({ onWaitingCapture: true })\n }\n },\n wheel: {\n phasedRegistrationNames: {\n bubbled: keyOf({ onWheel: true }),\n captured: keyOf({ onWheelCapture: true })\n }\n }\n};\n\nvar topLevelEventsToDispatchConfig = {\n topAbort: eventTypes.abort,\n topBlur: eventTypes.blur,\n topCanPlay: eventTypes.canPlay,\n topCanPlayThrough: eventTypes.canPlayThrough,\n topClick: eventTypes.click,\n topContextMenu: eventTypes.contextMenu,\n topCopy: eventTypes.copy,\n topCut: eventTypes.cut,\n topDoubleClick: eventTypes.doubleClick,\n topDrag: eventTypes.drag,\n topDragEnd: eventTypes.dragEnd,\n topDragEnter: eventTypes.dragEnter,\n topDragExit: eventTypes.dragExit,\n topDragLeave: eventTypes.dragLeave,\n topDragOver: eventTypes.dragOver,\n topDragStart: eventTypes.dragStart,\n topDrop: eventTypes.drop,\n topDurationChange: eventTypes.durationChange,\n topEmptied: eventTypes.emptied,\n topEncrypted: eventTypes.encrypted,\n topEnded: eventTypes.ended,\n topError: eventTypes.error,\n topFocus: eventTypes.focus,\n topInput: eventTypes.input,\n topKeyDown: eventTypes.keyDown,\n topKeyPress: eventTypes.keyPress,\n topKeyUp: eventTypes.keyUp,\n topLoad: eventTypes.load,\n topLoadedData: eventTypes.loadedData,\n topLoadedMetadata: eventTypes.loadedMetadata,\n topLoadStart: eventTypes.loadStart,\n topMouseDown: eventTypes.mouseDown,\n topMouseMove: eventTypes.mouseMove,\n topMouseOut: eventTypes.mouseOut,\n topMouseOver: eventTypes.mouseOver,\n topMouseUp: eventTypes.mouseUp,\n topPaste: eventTypes.paste,\n topPause: eventTypes.pause,\n topPlay: eventTypes.play,\n topPlaying: eventTypes.playing,\n topProgress: eventTypes.progress,\n topRateChange: eventTypes.rateChange,\n topReset: eventTypes.reset,\n topScroll: eventTypes.scroll,\n topSeeked: eventTypes.seeked,\n topSeeking: eventTypes.seeking,\n topStalled: eventTypes.stalled,\n topSubmit: eventTypes.submit,\n topSuspend: eventTypes.suspend,\n topTimeUpdate: eventTypes.timeUpdate,\n topTouchCancel: eventTypes.touchCancel,\n topTouchEnd: eventTypes.touchEnd,\n topTouchMove: eventTypes.touchMove,\n topTouchStart: eventTypes.touchStart,\n topVolumeChange: eventTypes.volumeChange,\n topWaiting: eventTypes.waiting,\n topWheel: eventTypes.wheel\n};\n\nfor (var type in topLevelEventsToDispatchConfig) {\n topLevelEventsToDispatchConfig[type].dependencies = [type];\n}\n\nvar ON_CLICK_KEY = keyOf({ onClick: null });\nvar onClickListeners = {};\n\nvar SimpleEventPlugin = {\n\n eventTypes: eventTypes,\n\n /**\n * @param {string} topLevelType Record from `EventConstants`.\n * @param {DOMEventTarget} topLevelTarget The listening component root node.\n * @param {string} topLevelTargetID ID of `topLevelTarget`.\n * @param {object} nativeEvent Native browser event.\n * @return {*} An accumulation of synthetic events.\n * @see {EventPluginHub.extractEvents}\n */\n extractEvents: function extractEvents(topLevelType, topLevelTarget, topLevelTargetID, nativeEvent, nativeEventTarget) {\n var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n if (!dispatchConfig) {\n return null;\n }\n var EventConstructor;\n switch (topLevelType) {\n case topLevelTypes.topAbort:\n case topLevelTypes.topCanPlay:\n case topLevelTypes.topCanPlayThrough:\n case topLevelTypes.topDurationChange:\n case topLevelTypes.topEmptied:\n case topLevelTypes.topEncrypted:\n case topLevelTypes.topEnded:\n case topLevelTypes.topError:\n case topLevelTypes.topInput:\n case topLevelTypes.topLoad:\n case topLevelTypes.topLoadedData:\n case topLevelTypes.topLoadedMetadata:\n case topLevelTypes.topLoadStart:\n case topLevelTypes.topPause:\n case topLevelTypes.topPlay:\n case topLevelTypes.topPlaying:\n case topLevelTypes.topProgress:\n case topLevelTypes.topRateChange:\n case topLevelTypes.topReset:\n case topLevelTypes.topSeeked:\n case topLevelTypes.topSeeking:\n case topLevelTypes.topStalled:\n case topLevelTypes.topSubmit:\n case topLevelTypes.topSuspend:\n case topLevelTypes.topTimeUpdate:\n case topLevelTypes.topVolumeChange:\n case topLevelTypes.topWaiting:\n // HTML Events\n // @see http://www.w3.org/TR/html5/index.html#events-0\n EventConstructor = SyntheticEvent;\n break;\n case topLevelTypes.topKeyPress:\n // FireFox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topKeyDown:\n case topLevelTypes.topKeyUp:\n EventConstructor = SyntheticKeyboardEvent;\n break;\n case topLevelTypes.topBlur:\n case topLevelTypes.topFocus:\n EventConstructor = SyntheticFocusEvent;\n break;\n case topLevelTypes.topClick:\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return null;\n }\n /* falls through */\n case topLevelTypes.topContextMenu:\n case topLevelTypes.topDoubleClick:\n case topLevelTypes.topMouseDown:\n case topLevelTypes.topMouseMove:\n case topLevelTypes.topMouseOut:\n case topLevelTypes.topMouseOver:\n case topLevelTypes.topMouseUp:\n EventConstructor = SyntheticMouseEvent;\n break;\n case topLevelTypes.topDrag:\n case topLevelTypes.topDragEnd:\n case topLevelTypes.topDragEnter:\n case topLevelTypes.topDragExit:\n case topLevelTypes.topDragLeave:\n case topLevelTypes.topDragOver:\n case topLevelTypes.topDragStart:\n case topLevelTypes.topDrop:\n EventConstructor = SyntheticDragEvent;\n break;\n case topLevelTypes.topTouchCancel:\n case topLevelTypes.topTouchEnd:\n case topLevelTypes.topTouchMove:\n case topLevelTypes.topTouchStart:\n EventConstructor = SyntheticTouchEvent;\n break;\n case topLevelTypes.topScroll:\n EventConstructor = SyntheticUIEvent;\n break;\n case topLevelTypes.topWheel:\n EventConstructor = SyntheticWheelEvent;\n break;\n case topLevelTypes.topCopy:\n case topLevelTypes.topCut:\n case topLevelTypes.topPaste:\n EventConstructor = SyntheticClipboardEvent;\n break;\n }\n !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : invariant(false) : undefined;\n var event = EventConstructor.getPooled(dispatchConfig, topLevelTargetID, nativeEvent, nativeEventTarget);\n EventPropagators.accumulateTwoPhaseDispatches(event);\n return event;\n },\n\n didPutListener: function didPutListener(id, registrationName, listener) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n if (registrationName === ON_CLICK_KEY) {\n var node = ReactMount.getNode(id);\n if (!onClickListeners[id]) {\n onClickListeners[id] = EventListener.listen(node, 'click', emptyFunction);\n }\n }\n },\n\n willDeleteListener: function willDeleteListener(id, registrationName) {\n if (registrationName === ON_CLICK_KEY) {\n onClickListeners[id].remove();\n delete onClickListeners[id];\n }\n }\n\n};\n\nmodule.exports = SimpleEventPlugin;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU2ltcGxlRXZlbnRQbHVnaW4uanM/NWQ2ZiJdLCJuYW1lcyI6WyJFdmVudENvbnN0YW50cyIsInJlcXVpcmUiLCJFdmVudExpc3RlbmVyIiwiRXZlbnRQcm9wYWdhdG9ycyIsIlJlYWN0TW91bnQiLCJTeW50aGV0aWNDbGlwYm9hcmRFdmVudCIsIlN5bnRoZXRpY0V2ZW50IiwiU3ludGhldGljRm9jdXNFdmVudCIsIlN5bnRoZXRpY0tleWJvYXJkRXZlbnQiLCJTeW50aGV0aWNNb3VzZUV2ZW50IiwiU3ludGhldGljRHJhZ0V2ZW50IiwiU3ludGhldGljVG91Y2hFdmVudCIsIlN5bnRoZXRpY1VJRXZlbnQiLCJTeW50aGV0aWNXaGVlbEV2ZW50IiwiZW1wdHlGdW5jdGlvbiIsImdldEV2ZW50Q2hhckNvZGUiLCJpbnZhcmlhbnQiLCJrZXlPZiIsInRvcExldmVsVHlwZXMiLCJldmVudFR5cGVzIiwiYWJvcnQiLCJwaGFzZWRSZWdpc3RyYXRpb25OYW1lcyIsImJ1YmJsZWQiLCJvbkFib3J0IiwiY2FwdHVyZWQiLCJvbkFib3J0Q2FwdHVyZSIsImJsdXIiLCJvbkJsdXIiLCJvbkJsdXJDYXB0dXJlIiwiY2FuUGxheSIsIm9uQ2FuUGxheSIsIm9uQ2FuUGxheUNhcHR1cmUiLCJjYW5QbGF5VGhyb3VnaCIsIm9uQ2FuUGxheVRocm91Z2giLCJvbkNhblBsYXlUaHJvdWdoQ2FwdHVyZSIsImNsaWNrIiwib25DbGljayIsIm9uQ2xpY2tDYXB0dXJlIiwiY29udGV4dE1lbnUiLCJvbkNvbnRleHRNZW51Iiwib25Db250ZXh0TWVudUNhcHR1cmUiLCJjb3B5Iiwib25Db3B5Iiwib25Db3B5Q2FwdHVyZSIsImN1dCIsIm9uQ3V0Iiwib25DdXRDYXB0dXJlIiwiZG91YmxlQ2xpY2siLCJvbkRvdWJsZUNsaWNrIiwib25Eb3VibGVDbGlja0NhcHR1cmUiLCJkcmFnIiwib25EcmFnIiwib25EcmFnQ2FwdHVyZSIsImRyYWdFbmQiLCJvbkRyYWdFbmQiLCJvbkRyYWdFbmRDYXB0dXJlIiwiZHJhZ0VudGVyIiwib25EcmFnRW50ZXIiLCJvbkRyYWdFbnRlckNhcHR1cmUiLCJkcmFnRXhpdCIsIm9uRHJhZ0V4aXQiLCJvbkRyYWdFeGl0Q2FwdHVyZSIsImRyYWdMZWF2ZSIsIm9uRHJhZ0xlYXZlIiwib25EcmFnTGVhdmVDYXB0dXJlIiwiZHJhZ092ZXIiLCJvbkRyYWdPdmVyIiwib25EcmFnT3ZlckNhcHR1cmUiLCJkcmFnU3RhcnQiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ1N0YXJ0Q2FwdHVyZSIsImRyb3AiLCJvbkRyb3AiLCJvbkRyb3BDYXB0dXJlIiwiZHVyYXRpb25DaGFuZ2UiLCJvbkR1cmF0aW9uQ2hhbmdlIiwib25EdXJhdGlvbkNoYW5nZUNhcHR1cmUiLCJlbXB0aWVkIiwib25FbXB0aWVkIiwib25FbXB0aWVkQ2FwdHVyZSIsImVuY3J5cHRlZCIsIm9uRW5jcnlwdGVkIiwib25FbmNyeXB0ZWRDYXB0dXJlIiwiZW5kZWQiLCJvbkVuZGVkIiwib25FbmRlZENhcHR1cmUiLCJlcnJvciIsIm9uRXJyb3IiLCJvbkVycm9yQ2FwdHVyZSIsImZvY3VzIiwib25Gb2N1cyIsIm9uRm9jdXNDYXB0dXJlIiwiaW5wdXQiLCJvbklucHV0Iiwib25JbnB1dENhcHR1cmUiLCJrZXlEb3duIiwib25LZXlEb3duIiwib25LZXlEb3duQ2FwdHVyZSIsImtleVByZXNzIiwib25LZXlQcmVzcyIsIm9uS2V5UHJlc3NDYXB0dXJlIiwia2V5VXAiLCJvbktleVVwIiwib25LZXlVcENhcHR1cmUiLCJsb2FkIiwib25Mb2FkIiwib25Mb2FkQ2FwdHVyZSIsImxvYWRlZERhdGEiLCJvbkxvYWRlZERhdGEiLCJvbkxvYWRlZERhdGFDYXB0dXJlIiwibG9hZGVkTWV0YWRhdGEiLCJvbkxvYWRlZE1ldGFkYXRhIiwib25Mb2FkZWRNZXRhZGF0YUNhcHR1cmUiLCJsb2FkU3RhcnQiLCJvbkxvYWRTdGFydCIsIm9uTG9hZFN0YXJ0Q2FwdHVyZSIsIm1vdXNlRG93biIsIm9uTW91c2VEb3duIiwib25Nb3VzZURvd25DYXB0dXJlIiwibW91c2VNb3ZlIiwib25Nb3VzZU1vdmUiLCJvbk1vdXNlTW92ZUNhcHR1cmUiLCJtb3VzZU91dCIsIm9uTW91c2VPdXQiLCJvbk1vdXNlT3V0Q2FwdHVyZSIsIm1vdXNlT3ZlciIsIm9uTW91c2VPdmVyIiwib25Nb3VzZU92ZXJDYXB0dXJlIiwibW91c2VVcCIsIm9uTW91c2VVcCIsIm9uTW91c2VVcENhcHR1cmUiLCJwYXN0ZSIsIm9uUGFzdGUiLCJvblBhc3RlQ2FwdHVyZSIsInBhdXNlIiwib25QYXVzZSIsIm9uUGF1c2VDYXB0dXJlIiwicGxheSIsIm9uUGxheSIsIm9uUGxheUNhcHR1cmUiLCJwbGF5aW5nIiwib25QbGF5aW5nIiwib25QbGF5aW5nQ2FwdHVyZSIsInByb2dyZXNzIiwib25Qcm9ncmVzcyIsIm9uUHJvZ3Jlc3NDYXB0dXJlIiwicmF0ZUNoYW5nZSIsIm9uUmF0ZUNoYW5nZSIsIm9uUmF0ZUNoYW5nZUNhcHR1cmUiLCJyZXNldCIsIm9uUmVzZXQiLCJvblJlc2V0Q2FwdHVyZSIsInNjcm9sbCIsIm9uU2Nyb2xsIiwib25TY3JvbGxDYXB0dXJlIiwic2Vla2VkIiwib25TZWVrZWQiLCJvblNlZWtlZENhcHR1cmUiLCJzZWVraW5nIiwib25TZWVraW5nIiwib25TZWVraW5nQ2FwdHVyZSIsInN0YWxsZWQiLCJvblN0YWxsZWQiLCJvblN0YWxsZWRDYXB0dXJlIiwic3VibWl0Iiwib25TdWJtaXQiLCJvblN1Ym1pdENhcHR1cmUiLCJzdXNwZW5kIiwib25TdXNwZW5kIiwib25TdXNwZW5kQ2FwdHVyZSIsInRpbWVVcGRhdGUiLCJvblRpbWVVcGRhdGUiLCJvblRpbWVVcGRhdGVDYXB0dXJlIiwidG91Y2hDYW5jZWwiLCJvblRvdWNoQ2FuY2VsIiwib25Ub3VjaENhbmNlbENhcHR1cmUiLCJ0b3VjaEVuZCIsIm9uVG91Y2hFbmQiLCJvblRvdWNoRW5kQ2FwdHVyZSIsInRvdWNoTW92ZSIsIm9uVG91Y2hNb3ZlIiwib25Ub3VjaE1vdmVDYXB0dXJlIiwidG91Y2hTdGFydCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hTdGFydENhcHR1cmUiLCJ2b2x1bWVDaGFuZ2UiLCJvblZvbHVtZUNoYW5nZSIsIm9uVm9sdW1lQ2hhbmdlQ2FwdHVyZSIsIndhaXRpbmciLCJvbldhaXRpbmciLCJvbldhaXRpbmdDYXB0dXJlIiwid2hlZWwiLCJvbldoZWVsIiwib25XaGVlbENhcHR1cmUiLCJ0b3BMZXZlbEV2ZW50c1RvRGlzcGF0Y2hDb25maWciLCJ0b3BBYm9ydCIsInRvcEJsdXIiLCJ0b3BDYW5QbGF5IiwidG9wQ2FuUGxheVRocm91Z2giLCJ0b3BDbGljayIsInRvcENvbnRleHRNZW51IiwidG9wQ29weSIsInRvcEN1dCIsInRvcERvdWJsZUNsaWNrIiwidG9wRHJhZyIsInRvcERyYWdFbmQiLCJ0b3BEcmFnRW50ZXIiLCJ0b3BEcmFnRXhpdCIsInRvcERyYWdMZWF2ZSIsInRvcERyYWdPdmVyIiwidG9wRHJhZ1N0YXJ0IiwidG9wRHJvcCIsInRvcER1cmF0aW9uQ2hhbmdlIiwidG9wRW1wdGllZCIsInRvcEVuY3J5cHRlZCIsInRvcEVuZGVkIiwidG9wRXJyb3IiLCJ0b3BGb2N1cyIsInRvcElucHV0IiwidG9wS2V5RG93biIsInRvcEtleVByZXNzIiwidG9wS2V5VXAiLCJ0b3BMb2FkIiwidG9wTG9hZGVkRGF0YSIsInRvcExvYWRlZE1ldGFkYXRhIiwidG9wTG9hZFN0YXJ0IiwidG9wTW91c2VEb3duIiwidG9wTW91c2VNb3ZlIiwidG9wTW91c2VPdXQiLCJ0b3BNb3VzZU92ZXIiLCJ0b3BNb3VzZVVwIiwidG9wUGFzdGUiLCJ0b3BQYXVzZSIsInRvcFBsYXkiLCJ0b3BQbGF5aW5nIiwidG9wUHJvZ3Jlc3MiLCJ0b3BSYXRlQ2hhbmdlIiwidG9wUmVzZXQiLCJ0b3BTY3JvbGwiLCJ0b3BTZWVrZWQiLCJ0b3BTZWVraW5nIiwidG9wU3RhbGxlZCIsInRvcFN1Ym1pdCIsInRvcFN1c3BlbmQiLCJ0b3BUaW1lVXBkYXRlIiwidG9wVG91Y2hDYW5jZWwiLCJ0b3BUb3VjaEVuZCIsInRvcFRvdWNoTW92ZSIsInRvcFRvdWNoU3RhcnQiLCJ0b3BWb2x1bWVDaGFuZ2UiLCJ0b3BXYWl0aW5nIiwidG9wV2hlZWwiLCJ0eXBlIiwiZGVwZW5kZW5jaWVzIiwiT05fQ0xJQ0tfS0VZIiwib25DbGlja0xpc3RlbmVycyIsIlNpbXBsZUV2ZW50UGx1Z2luIiwiZXh0cmFjdEV2ZW50cyIsInRvcExldmVsVHlwZSIsInRvcExldmVsVGFyZ2V0IiwidG9wTGV2ZWxUYXJnZXRJRCIsIm5hdGl2ZUV2ZW50IiwibmF0aXZlRXZlbnRUYXJnZXQiLCJkaXNwYXRjaENvbmZpZyIsIkV2ZW50Q29uc3RydWN0b3IiLCJidXR0b24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJldmVudCIsImdldFBvb2xlZCIsImFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMiLCJkaWRQdXRMaXN0ZW5lciIsImlkIiwicmVnaXN0cmF0aW9uTmFtZSIsImxpc3RlbmVyIiwibm9kZSIsImdldE5vZGUiLCJsaXN0ZW4iLCJ3aWxsRGVsZXRlTGlzdGVuZXIiLCJyZW1vdmUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxpQkFBaUIsbUJBQUFDLENBQVEsRUFBUixDQUFyQjtBQUNBLElBQUlDLGdCQUFnQixtQkFBQUQsQ0FBUSxHQUFSLENBQXBCO0FBQ0EsSUFBSUUsbUJBQW1CLG1CQUFBRixDQUFRLEVBQVIsQ0FBdkI7QUFDQSxJQUFJRyxhQUFhLG1CQUFBSCxDQUFRLEVBQVIsQ0FBakI7QUFDQSxJQUFJSSwwQkFBMEIsbUJBQUFKLENBQVEsR0FBUixDQUE5QjtBQUNBLElBQUlLLGlCQUFpQixtQkFBQUwsQ0FBUSxFQUFSLENBQXJCO0FBQ0EsSUFBSU0sc0JBQXNCLG1CQUFBTixDQUFRLEdBQVIsQ0FBMUI7QUFDQSxJQUFJTyx5QkFBeUIsbUJBQUFQLENBQVEsR0FBUixDQUE3QjtBQUNBLElBQUlRLHNCQUFzQixtQkFBQVIsQ0FBUSxFQUFSLENBQTFCO0FBQ0EsSUFBSVMscUJBQXFCLG1CQUFBVCxDQUFRLEdBQVIsQ0FBekI7QUFDQSxJQUFJVSxzQkFBc0IsbUJBQUFWLENBQVEsR0FBUixDQUExQjtBQUNBLElBQUlXLG1CQUFtQixtQkFBQVgsQ0FBUSxFQUFSLENBQXZCO0FBQ0EsSUFBSVksc0JBQXNCLG1CQUFBWixDQUFRLEdBQVIsQ0FBMUI7O0FBRUEsSUFBSWEsZ0JBQWdCLG1CQUFBYixDQUFRLEVBQVIsQ0FBcEI7QUFDQSxJQUFJYyxtQkFBbUIsbUJBQUFkLENBQVEsR0FBUixDQUF2QjtBQUNBLElBQUllLFlBQVksbUJBQUFmLENBQVEsRUFBUixDQUFoQjtBQUNBLElBQUlnQixRQUFRLG1CQUFBaEIsQ0FBUSxFQUFSLENBQVo7O0FBRUEsSUFBSWlCLGdCQUFnQmxCLGVBQWVrQixhQUFuQzs7QUFFQSxJQUFJQyxhQUFhO0FBQ2ZDLFNBQU87QUFDTEMsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVNLFNBQVMsSUFBWCxFQUFOLENBRGM7QUFFdkJDLGdCQUFVUCxNQUFNLEVBQUVRLGdCQUFnQixJQUFsQixFQUFOO0FBRmE7QUFEcEIsR0FEUTtBQU9mQyxRQUFNO0FBQ0pMLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFVSxRQUFRLElBQVYsRUFBTixDQURjO0FBRXZCSCxnQkFBVVAsTUFBTSxFQUFFVyxlQUFlLElBQWpCLEVBQU47QUFGYTtBQURyQixHQVBTO0FBYWZDLFdBQVM7QUFDUFIsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVhLFdBQVcsSUFBYixFQUFOLENBRGM7QUFFdkJOLGdCQUFVUCxNQUFNLEVBQUVjLGtCQUFrQixJQUFwQixFQUFOO0FBRmE7QUFEbEIsR0FiTTtBQW1CZkMsa0JBQWdCO0FBQ2RYLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFZ0Isa0JBQWtCLElBQXBCLEVBQU4sQ0FEYztBQUV2QlQsZ0JBQVVQLE1BQU0sRUFBRWlCLHlCQUF5QixJQUEzQixFQUFOO0FBRmE7QUFEWCxHQW5CRDtBQXlCZkMsU0FBTztBQUNMZCw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRW1CLFNBQVMsSUFBWCxFQUFOLENBRGM7QUFFdkJaLGdCQUFVUCxNQUFNLEVBQUVvQixnQkFBZ0IsSUFBbEIsRUFBTjtBQUZhO0FBRHBCLEdBekJRO0FBK0JmQyxlQUFhO0FBQ1hqQiw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRXNCLGVBQWUsSUFBakIsRUFBTixDQURjO0FBRXZCZixnQkFBVVAsTUFBTSxFQUFFdUIsc0JBQXNCLElBQXhCLEVBQU47QUFGYTtBQURkLEdBL0JFO0FBcUNmQyxRQUFNO0FBQ0pwQiw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRXlCLFFBQVEsSUFBVixFQUFOLENBRGM7QUFFdkJsQixnQkFBVVAsTUFBTSxFQUFFMEIsZUFBZSxJQUFqQixFQUFOO0FBRmE7QUFEckIsR0FyQ1M7QUEyQ2ZDLE9BQUs7QUFDSHZCLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFNEIsT0FBTyxJQUFULEVBQU4sQ0FEYztBQUV2QnJCLGdCQUFVUCxNQUFNLEVBQUU2QixjQUFjLElBQWhCLEVBQU47QUFGYTtBQUR0QixHQTNDVTtBQWlEZkMsZUFBYTtBQUNYMUIsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUUrQixlQUFlLElBQWpCLEVBQU4sQ0FEYztBQUV2QnhCLGdCQUFVUCxNQUFNLEVBQUVnQyxzQkFBc0IsSUFBeEIsRUFBTjtBQUZhO0FBRGQsR0FqREU7QUF1RGZDLFFBQU07QUFDSjdCLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFa0MsUUFBUSxJQUFWLEVBQU4sQ0FEYztBQUV2QjNCLGdCQUFVUCxNQUFNLEVBQUVtQyxlQUFlLElBQWpCLEVBQU47QUFGYTtBQURyQixHQXZEUztBQTZEZkMsV0FBUztBQUNQaEMsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVxQyxXQUFXLElBQWIsRUFBTixDQURjO0FBRXZCOUIsZ0JBQVVQLE1BQU0sRUFBRXNDLGtCQUFrQixJQUFwQixFQUFOO0FBRmE7QUFEbEIsR0E3RE07QUFtRWZDLGFBQVc7QUFDVG5DLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFd0MsYUFBYSxJQUFmLEVBQU4sQ0FEYztBQUV2QmpDLGdCQUFVUCxNQUFNLEVBQUV5QyxvQkFBb0IsSUFBdEIsRUFBTjtBQUZhO0FBRGhCLEdBbkVJO0FBeUVmQyxZQUFVO0FBQ1J0Qyw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRTJDLFlBQVksSUFBZCxFQUFOLENBRGM7QUFFdkJwQyxnQkFBVVAsTUFBTSxFQUFFNEMsbUJBQW1CLElBQXJCLEVBQU47QUFGYTtBQURqQixHQXpFSztBQStFZkMsYUFBVztBQUNUekMsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUU4QyxhQUFhLElBQWYsRUFBTixDQURjO0FBRXZCdkMsZ0JBQVVQLE1BQU0sRUFBRStDLG9CQUFvQixJQUF0QixFQUFOO0FBRmE7QUFEaEIsR0EvRUk7QUFxRmZDLFlBQVU7QUFDUjVDLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFaUQsWUFBWSxJQUFkLEVBQU4sQ0FEYztBQUV2QjFDLGdCQUFVUCxNQUFNLEVBQUVrRCxtQkFBbUIsSUFBckIsRUFBTjtBQUZhO0FBRGpCLEdBckZLO0FBMkZmQyxhQUFXO0FBQ1QvQyw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRW9ELGFBQWEsSUFBZixFQUFOLENBRGM7QUFFdkI3QyxnQkFBVVAsTUFBTSxFQUFFcUQsb0JBQW9CLElBQXRCLEVBQU47QUFGYTtBQURoQixHQTNGSTtBQWlHZkMsUUFBTTtBQUNKbEQsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUV1RCxRQUFRLElBQVYsRUFBTixDQURjO0FBRXZCaEQsZ0JBQVVQLE1BQU0sRUFBRXdELGVBQWUsSUFBakIsRUFBTjtBQUZhO0FBRHJCLEdBakdTO0FBdUdmQyxrQkFBZ0I7QUFDZHJELDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFMEQsa0JBQWtCLElBQXBCLEVBQU4sQ0FEYztBQUV2Qm5ELGdCQUFVUCxNQUFNLEVBQUUyRCx5QkFBeUIsSUFBM0IsRUFBTjtBQUZhO0FBRFgsR0F2R0Q7QUE2R2ZDLFdBQVM7QUFDUHhELDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFNkQsV0FBVyxJQUFiLEVBQU4sQ0FEYztBQUV2QnRELGdCQUFVUCxNQUFNLEVBQUU4RCxrQkFBa0IsSUFBcEIsRUFBTjtBQUZhO0FBRGxCLEdBN0dNO0FBbUhmQyxhQUFXO0FBQ1QzRCw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRWdFLGFBQWEsSUFBZixFQUFOLENBRGM7QUFFdkJ6RCxnQkFBVVAsTUFBTSxFQUFFaUUsb0JBQW9CLElBQXRCLEVBQU47QUFGYTtBQURoQixHQW5ISTtBQXlIZkMsU0FBTztBQUNMOUQsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVtRSxTQUFTLElBQVgsRUFBTixDQURjO0FBRXZCNUQsZ0JBQVVQLE1BQU0sRUFBRW9FLGdCQUFnQixJQUFsQixFQUFOO0FBRmE7QUFEcEIsR0F6SFE7QUErSGZDLFNBQU87QUFDTGpFLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFc0UsU0FBUyxJQUFYLEVBQU4sQ0FEYztBQUV2Qi9ELGdCQUFVUCxNQUFNLEVBQUV1RSxnQkFBZ0IsSUFBbEIsRUFBTjtBQUZhO0FBRHBCLEdBL0hRO0FBcUlmQyxTQUFPO0FBQ0xwRSw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRXlFLFNBQVMsSUFBWCxFQUFOLENBRGM7QUFFdkJsRSxnQkFBVVAsTUFBTSxFQUFFMEUsZ0JBQWdCLElBQWxCLEVBQU47QUFGYTtBQURwQixHQXJJUTtBQTJJZkMsU0FBTztBQUNMdkUsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUU0RSxTQUFTLElBQVgsRUFBTixDQURjO0FBRXZCckUsZ0JBQVVQLE1BQU0sRUFBRTZFLGdCQUFnQixJQUFsQixFQUFOO0FBRmE7QUFEcEIsR0EzSVE7QUFpSmZDLFdBQVM7QUFDUDFFLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFK0UsV0FBVyxJQUFiLEVBQU4sQ0FEYztBQUV2QnhFLGdCQUFVUCxNQUFNLEVBQUVnRixrQkFBa0IsSUFBcEIsRUFBTjtBQUZhO0FBRGxCLEdBakpNO0FBdUpmQyxZQUFVO0FBQ1I3RSw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRWtGLFlBQVksSUFBZCxFQUFOLENBRGM7QUFFdkIzRSxnQkFBVVAsTUFBTSxFQUFFbUYsbUJBQW1CLElBQXJCLEVBQU47QUFGYTtBQURqQixHQXZKSztBQTZKZkMsU0FBTztBQUNMaEYsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVxRixTQUFTLElBQVgsRUFBTixDQURjO0FBRXZCOUUsZ0JBQVVQLE1BQU0sRUFBRXNGLGdCQUFnQixJQUFsQixFQUFOO0FBRmE7QUFEcEIsR0E3SlE7QUFtS2ZDLFFBQU07QUFDSm5GLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFd0YsUUFBUSxJQUFWLEVBQU4sQ0FEYztBQUV2QmpGLGdCQUFVUCxNQUFNLEVBQUV5RixlQUFlLElBQWpCLEVBQU47QUFGYTtBQURyQixHQW5LUztBQXlLZkMsY0FBWTtBQUNWdEYsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUUyRixjQUFjLElBQWhCLEVBQU4sQ0FEYztBQUV2QnBGLGdCQUFVUCxNQUFNLEVBQUU0RixxQkFBcUIsSUFBdkIsRUFBTjtBQUZhO0FBRGYsR0F6S0c7QUErS2ZDLGtCQUFnQjtBQUNkekYsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUU4RixrQkFBa0IsSUFBcEIsRUFBTixDQURjO0FBRXZCdkYsZ0JBQVVQLE1BQU0sRUFBRStGLHlCQUF5QixJQUEzQixFQUFOO0FBRmE7QUFEWCxHQS9LRDtBQXFMZkMsYUFBVztBQUNUNUYsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVpRyxhQUFhLElBQWYsRUFBTixDQURjO0FBRXZCMUYsZ0JBQVVQLE1BQU0sRUFBRWtHLG9CQUFvQixJQUF0QixFQUFOO0FBRmE7QUFEaEIsR0FyTEk7QUEyTGY7QUFDQTtBQUNBQyxhQUFXO0FBQ1QvRiw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRW9HLGFBQWEsSUFBZixFQUFOLENBRGM7QUFFdkI3RixnQkFBVVAsTUFBTSxFQUFFcUcsb0JBQW9CLElBQXRCLEVBQU47QUFGYTtBQURoQixHQTdMSTtBQW1NZkMsYUFBVztBQUNUbEcsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUV1RyxhQUFhLElBQWYsRUFBTixDQURjO0FBRXZCaEcsZ0JBQVVQLE1BQU0sRUFBRXdHLG9CQUFvQixJQUF0QixFQUFOO0FBRmE7QUFEaEIsR0FuTUk7QUF5TWZDLFlBQVU7QUFDUnJHLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFMEcsWUFBWSxJQUFkLEVBQU4sQ0FEYztBQUV2Qm5HLGdCQUFVUCxNQUFNLEVBQUUyRyxtQkFBbUIsSUFBckIsRUFBTjtBQUZhO0FBRGpCLEdBek1LO0FBK01mQyxhQUFXO0FBQ1R4Ryw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRTZHLGFBQWEsSUFBZixFQUFOLENBRGM7QUFFdkJ0RyxnQkFBVVAsTUFBTSxFQUFFOEcsb0JBQW9CLElBQXRCLEVBQU47QUFGYTtBQURoQixHQS9NSTtBQXFOZkMsV0FBUztBQUNQM0csNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVnSCxXQUFXLElBQWIsRUFBTixDQURjO0FBRXZCekcsZ0JBQVVQLE1BQU0sRUFBRWlILGtCQUFrQixJQUFwQixFQUFOO0FBRmE7QUFEbEIsR0FyTk07QUEyTmZDLFNBQU87QUFDTDlHLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFbUgsU0FBUyxJQUFYLEVBQU4sQ0FEYztBQUV2QjVHLGdCQUFVUCxNQUFNLEVBQUVvSCxnQkFBZ0IsSUFBbEIsRUFBTjtBQUZhO0FBRHBCLEdBM05RO0FBaU9mQyxTQUFPO0FBQ0xqSCw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRXNILFNBQVMsSUFBWCxFQUFOLENBRGM7QUFFdkIvRyxnQkFBVVAsTUFBTSxFQUFFdUgsZ0JBQWdCLElBQWxCLEVBQU47QUFGYTtBQURwQixHQWpPUTtBQXVPZkMsUUFBTTtBQUNKcEgsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUV5SCxRQUFRLElBQVYsRUFBTixDQURjO0FBRXZCbEgsZ0JBQVVQLE1BQU0sRUFBRTBILGVBQWUsSUFBakIsRUFBTjtBQUZhO0FBRHJCLEdBdk9TO0FBNk9mQyxXQUFTO0FBQ1B2SCw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRTRILFdBQVcsSUFBYixFQUFOLENBRGM7QUFFdkJySCxnQkFBVVAsTUFBTSxFQUFFNkgsa0JBQWtCLElBQXBCLEVBQU47QUFGYTtBQURsQixHQTdPTTtBQW1QZkMsWUFBVTtBQUNSMUgsNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUUrSCxZQUFZLElBQWQsRUFBTixDQURjO0FBRXZCeEgsZ0JBQVVQLE1BQU0sRUFBRWdJLG1CQUFtQixJQUFyQixFQUFOO0FBRmE7QUFEakIsR0FuUEs7QUF5UGZDLGNBQVk7QUFDVjdILDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFa0ksY0FBYyxJQUFoQixFQUFOLENBRGM7QUFFdkIzSCxnQkFBVVAsTUFBTSxFQUFFbUkscUJBQXFCLElBQXZCLEVBQU47QUFGYTtBQURmLEdBelBHO0FBK1BmQyxTQUFPO0FBQ0xoSSw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRXFJLFNBQVMsSUFBWCxFQUFOLENBRGM7QUFFdkI5SCxnQkFBVVAsTUFBTSxFQUFFc0ksZ0JBQWdCLElBQWxCLEVBQU47QUFGYTtBQURwQixHQS9QUTtBQXFRZkMsVUFBUTtBQUNObkksNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUV3SSxVQUFVLElBQVosRUFBTixDQURjO0FBRXZCakksZ0JBQVVQLE1BQU0sRUFBRXlJLGlCQUFpQixJQUFuQixFQUFOO0FBRmE7QUFEbkIsR0FyUU87QUEyUWZDLFVBQVE7QUFDTnRJLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFMkksVUFBVSxJQUFaLEVBQU4sQ0FEYztBQUV2QnBJLGdCQUFVUCxNQUFNLEVBQUU0SSxpQkFBaUIsSUFBbkIsRUFBTjtBQUZhO0FBRG5CLEdBM1FPO0FBaVJmQyxXQUFTO0FBQ1B6SSw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRThJLFdBQVcsSUFBYixFQUFOLENBRGM7QUFFdkJ2SSxnQkFBVVAsTUFBTSxFQUFFK0ksa0JBQWtCLElBQXBCLEVBQU47QUFGYTtBQURsQixHQWpSTTtBQXVSZkMsV0FBUztBQUNQNUksNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVpSixXQUFXLElBQWIsRUFBTixDQURjO0FBRXZCMUksZ0JBQVVQLE1BQU0sRUFBRWtKLGtCQUFrQixJQUFwQixFQUFOO0FBRmE7QUFEbEIsR0F2Uk07QUE2UmZDLFVBQVE7QUFDTi9JLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFb0osVUFBVSxJQUFaLEVBQU4sQ0FEYztBQUV2QjdJLGdCQUFVUCxNQUFNLEVBQUVxSixpQkFBaUIsSUFBbkIsRUFBTjtBQUZhO0FBRG5CLEdBN1JPO0FBbVNmQyxXQUFTO0FBQ1BsSiw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRXVKLFdBQVcsSUFBYixFQUFOLENBRGM7QUFFdkJoSixnQkFBVVAsTUFBTSxFQUFFd0osa0JBQWtCLElBQXBCLEVBQU47QUFGYTtBQURsQixHQW5TTTtBQXlTZkMsY0FBWTtBQUNWckosNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUUwSixjQUFjLElBQWhCLEVBQU4sQ0FEYztBQUV2Qm5KLGdCQUFVUCxNQUFNLEVBQUUySixxQkFBcUIsSUFBdkIsRUFBTjtBQUZhO0FBRGYsR0F6U0c7QUErU2ZDLGVBQWE7QUFDWHhKLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFNkosZUFBZSxJQUFqQixFQUFOLENBRGM7QUFFdkJ0SixnQkFBVVAsTUFBTSxFQUFFOEosc0JBQXNCLElBQXhCLEVBQU47QUFGYTtBQURkLEdBL1NFO0FBcVRmQyxZQUFVO0FBQ1IzSiw2QkFBeUI7QUFDdkJDLGVBQVNMLE1BQU0sRUFBRWdLLFlBQVksSUFBZCxFQUFOLENBRGM7QUFFdkJ6SixnQkFBVVAsTUFBTSxFQUFFaUssbUJBQW1CLElBQXJCLEVBQU47QUFGYTtBQURqQixHQXJUSztBQTJUZkMsYUFBVztBQUNUOUosNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUVtSyxhQUFhLElBQWYsRUFBTixDQURjO0FBRXZCNUosZ0JBQVVQLE1BQU0sRUFBRW9LLG9CQUFvQixJQUF0QixFQUFOO0FBRmE7QUFEaEIsR0EzVEk7QUFpVWZDLGNBQVk7QUFDVmpLLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFc0ssY0FBYyxJQUFoQixFQUFOLENBRGM7QUFFdkIvSixnQkFBVVAsTUFBTSxFQUFFdUsscUJBQXFCLElBQXZCLEVBQU47QUFGYTtBQURmLEdBalVHO0FBdVVmQyxnQkFBYztBQUNacEssNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUV5SyxnQkFBZ0IsSUFBbEIsRUFBTixDQURjO0FBRXZCbEssZ0JBQVVQLE1BQU0sRUFBRTBLLHVCQUF1QixJQUF6QixFQUFOO0FBRmE7QUFEYixHQXZVQztBQTZVZkMsV0FBUztBQUNQdkssNkJBQXlCO0FBQ3ZCQyxlQUFTTCxNQUFNLEVBQUU0SyxXQUFXLElBQWIsRUFBTixDQURjO0FBRXZCckssZ0JBQVVQLE1BQU0sRUFBRTZLLGtCQUFrQixJQUFwQixFQUFOO0FBRmE7QUFEbEIsR0E3VU07QUFtVmZDLFNBQU87QUFDTDFLLDZCQUF5QjtBQUN2QkMsZUFBU0wsTUFBTSxFQUFFK0ssU0FBUyxJQUFYLEVBQU4sQ0FEYztBQUV2QnhLLGdCQUFVUCxNQUFNLEVBQUVnTCxnQkFBZ0IsSUFBbEIsRUFBTjtBQUZhO0FBRHBCO0FBblZRLENBQWpCOztBQTJWQSxJQUFJQyxpQ0FBaUM7QUFDbkNDLFlBQVVoTCxXQUFXQyxLQURjO0FBRW5DZ0wsV0FBU2pMLFdBQVdPLElBRmU7QUFHbkMySyxjQUFZbEwsV0FBV1UsT0FIWTtBQUluQ3lLLHFCQUFtQm5MLFdBQVdhLGNBSks7QUFLbkN1SyxZQUFVcEwsV0FBV2dCLEtBTGM7QUFNbkNxSyxrQkFBZ0JyTCxXQUFXbUIsV0FOUTtBQU9uQ21LLFdBQVN0TCxXQUFXc0IsSUFQZTtBQVFuQ2lLLFVBQVF2TCxXQUFXeUIsR0FSZ0I7QUFTbkMrSixrQkFBZ0J4TCxXQUFXNEIsV0FUUTtBQVVuQzZKLFdBQVN6TCxXQUFXK0IsSUFWZTtBQVduQzJKLGNBQVkxTCxXQUFXa0MsT0FYWTtBQVluQ3lKLGdCQUFjM0wsV0FBV3FDLFNBWlU7QUFhbkN1SixlQUFhNUwsV0FBV3dDLFFBYlc7QUFjbkNxSixnQkFBYzdMLFdBQVcyQyxTQWRVO0FBZW5DbUosZUFBYTlMLFdBQVc4QyxRQWZXO0FBZ0JuQ2lKLGdCQUFjL0wsV0FBV2lELFNBaEJVO0FBaUJuQytJLFdBQVNoTSxXQUFXb0QsSUFqQmU7QUFrQm5DNkkscUJBQW1Cak0sV0FBV3VELGNBbEJLO0FBbUJuQzJJLGNBQVlsTSxXQUFXMEQsT0FuQlk7QUFvQm5DeUksZ0JBQWNuTSxXQUFXNkQsU0FwQlU7QUFxQm5DdUksWUFBVXBNLFdBQVdnRSxLQXJCYztBQXNCbkNxSSxZQUFVck0sV0FBV21FLEtBdEJjO0FBdUJuQ21JLFlBQVV0TSxXQUFXc0UsS0F2QmM7QUF3Qm5DaUksWUFBVXZNLFdBQVd5RSxLQXhCYztBQXlCbkMrSCxjQUFZeE0sV0FBVzRFLE9BekJZO0FBMEJuQzZILGVBQWF6TSxXQUFXK0UsUUExQlc7QUEyQm5DMkgsWUFBVTFNLFdBQVdrRixLQTNCYztBQTRCbkN5SCxXQUFTM00sV0FBV3FGLElBNUJlO0FBNkJuQ3VILGlCQUFlNU0sV0FBV3dGLFVBN0JTO0FBOEJuQ3FILHFCQUFtQjdNLFdBQVcyRixjQTlCSztBQStCbkNtSCxnQkFBYzlNLFdBQVc4RixTQS9CVTtBQWdDbkNpSCxnQkFBYy9NLFdBQVdpRyxTQWhDVTtBQWlDbkMrRyxnQkFBY2hOLFdBQVdvRyxTQWpDVTtBQWtDbkM2RyxlQUFhak4sV0FBV3VHLFFBbENXO0FBbUNuQzJHLGdCQUFjbE4sV0FBVzBHLFNBbkNVO0FBb0NuQ3lHLGNBQVluTixXQUFXNkcsT0FwQ1k7QUFxQ25DdUcsWUFBVXBOLFdBQVdnSCxLQXJDYztBQXNDbkNxRyxZQUFVck4sV0FBV21ILEtBdENjO0FBdUNuQ21HLFdBQVN0TixXQUFXc0gsSUF2Q2U7QUF3Q25DaUcsY0FBWXZOLFdBQVd5SCxPQXhDWTtBQXlDbkMrRixlQUFheE4sV0FBVzRILFFBekNXO0FBMENuQzZGLGlCQUFlek4sV0FBVytILFVBMUNTO0FBMkNuQzJGLFlBQVUxTixXQUFXa0ksS0EzQ2M7QUE0Q25DeUYsYUFBVzNOLFdBQVdxSSxNQTVDYTtBQTZDbkN1RixhQUFXNU4sV0FBV3dJLE1BN0NhO0FBOENuQ3FGLGNBQVk3TixXQUFXMkksT0E5Q1k7QUErQ25DbUYsY0FBWTlOLFdBQVc4SSxPQS9DWTtBQWdEbkNpRixhQUFXL04sV0FBV2lKLE1BaERhO0FBaURuQytFLGNBQVloTyxXQUFXb0osT0FqRFk7QUFrRG5DNkUsaUJBQWVqTyxXQUFXdUosVUFsRFM7QUFtRG5DMkUsa0JBQWdCbE8sV0FBVzBKLFdBbkRRO0FBb0RuQ3lFLGVBQWFuTyxXQUFXNkosUUFwRFc7QUFxRG5DdUUsZ0JBQWNwTyxXQUFXZ0ssU0FyRFU7QUFzRG5DcUUsaUJBQWVyTyxXQUFXbUssVUF0RFM7QUF1RG5DbUUsbUJBQWlCdE8sV0FBV3NLLFlBdkRPO0FBd0RuQ2lFLGNBQVl2TyxXQUFXeUssT0F4RFk7QUF5RG5DK0QsWUFBVXhPLFdBQVc0SztBQXpEYyxDQUFyQzs7QUE0REEsS0FBSyxJQUFJNkQsSUFBVCxJQUFpQjFELDhCQUFqQixFQUFpRDtBQUMvQ0EsaUNBQStCMEQsSUFBL0IsRUFBcUNDLFlBQXJDLEdBQW9ELENBQUNELElBQUQsQ0FBcEQ7QUFDRDs7QUFFRCxJQUFJRSxlQUFlN08sTUFBTSxFQUFFbUIsU0FBUyxJQUFYLEVBQU4sQ0FBbkI7QUFDQSxJQUFJMk4sbUJBQW1CLEVBQXZCOztBQUVBLElBQUlDLG9CQUFvQjs7QUFFdEI3TyxjQUFZQSxVQUZVOztBQUl0Qjs7Ozs7Ozs7QUFRQThPLGlCQUFlLHVCQUFVQyxZQUFWLEVBQXdCQyxjQUF4QixFQUF3Q0MsZ0JBQXhDLEVBQTBEQyxXQUExRCxFQUF1RUMsaUJBQXZFLEVBQTBGO0FBQ3ZHLFFBQUlDLGlCQUFpQnJFLCtCQUErQmdFLFlBQS9CLENBQXJCO0FBQ0EsUUFBSSxDQUFDSyxjQUFMLEVBQXFCO0FBQ25CLGFBQU8sSUFBUDtBQUNEO0FBQ0QsUUFBSUMsZ0JBQUo7QUFDQSxZQUFRTixZQUFSO0FBQ0UsV0FBS2hQLGNBQWNpTCxRQUFuQjtBQUNBLFdBQUtqTCxjQUFjbUwsVUFBbkI7QUFDQSxXQUFLbkwsY0FBY29MLGlCQUFuQjtBQUNBLFdBQUtwTCxjQUFja00saUJBQW5CO0FBQ0EsV0FBS2xNLGNBQWNtTSxVQUFuQjtBQUNBLFdBQUtuTSxjQUFjb00sWUFBbkI7QUFDQSxXQUFLcE0sY0FBY3FNLFFBQW5CO0FBQ0EsV0FBS3JNLGNBQWNzTSxRQUFuQjtBQUNBLFdBQUt0TSxjQUFjd00sUUFBbkI7QUFDQSxXQUFLeE0sY0FBYzRNLE9BQW5CO0FBQ0EsV0FBSzVNLGNBQWM2TSxhQUFuQjtBQUNBLFdBQUs3TSxjQUFjOE0saUJBQW5CO0FBQ0EsV0FBSzlNLGNBQWMrTSxZQUFuQjtBQUNBLFdBQUsvTSxjQUFjc04sUUFBbkI7QUFDQSxXQUFLdE4sY0FBY3VOLE9BQW5CO0FBQ0EsV0FBS3ZOLGNBQWN3TixVQUFuQjtBQUNBLFdBQUt4TixjQUFjeU4sV0FBbkI7QUFDQSxXQUFLek4sY0FBYzBOLGFBQW5CO0FBQ0EsV0FBSzFOLGNBQWMyTixRQUFuQjtBQUNBLFdBQUszTixjQUFjNk4sU0FBbkI7QUFDQSxXQUFLN04sY0FBYzhOLFVBQW5CO0FBQ0EsV0FBSzlOLGNBQWMrTixVQUFuQjtBQUNBLFdBQUsvTixjQUFjZ08sU0FBbkI7QUFDQSxXQUFLaE8sY0FBY2lPLFVBQW5CO0FBQ0EsV0FBS2pPLGNBQWNrTyxhQUFuQjtBQUNBLFdBQUtsTyxjQUFjdU8sZUFBbkI7QUFDQSxXQUFLdk8sY0FBY3dPLFVBQW5CO0FBQ0U7QUFDQTtBQUNBYywyQkFBbUJsUSxjQUFuQjtBQUNBO0FBQ0YsV0FBS1ksY0FBYzBNLFdBQW5CO0FBQ0U7QUFDQTtBQUNBO0FBQ0EsWUFBSTdNLGlCQUFpQnNQLFdBQWpCLE1BQWtDLENBQXRDLEVBQXlDO0FBQ3ZDLGlCQUFPLElBQVA7QUFDRDtBQUNIO0FBQ0EsV0FBS25QLGNBQWN5TSxVQUFuQjtBQUNBLFdBQUt6TSxjQUFjMk0sUUFBbkI7QUFDRTJDLDJCQUFtQmhRLHNCQUFuQjtBQUNBO0FBQ0YsV0FBS1UsY0FBY2tMLE9BQW5CO0FBQ0EsV0FBS2xMLGNBQWN1TSxRQUFuQjtBQUNFK0MsMkJBQW1CalEsbUJBQW5CO0FBQ0E7QUFDRixXQUFLVyxjQUFjcUwsUUFBbkI7QUFDRTtBQUNBO0FBQ0EsWUFBSThELFlBQVlJLE1BQVosS0FBdUIsQ0FBM0IsRUFBOEI7QUFDNUIsaUJBQU8sSUFBUDtBQUNEO0FBQ0g7QUFDQSxXQUFLdlAsY0FBY3NMLGNBQW5CO0FBQ0EsV0FBS3RMLGNBQWN5TCxjQUFuQjtBQUNBLFdBQUt6TCxjQUFjZ04sWUFBbkI7QUFDQSxXQUFLaE4sY0FBY2lOLFlBQW5CO0FBQ0EsV0FBS2pOLGNBQWNrTixXQUFuQjtBQUNBLFdBQUtsTixjQUFjbU4sWUFBbkI7QUFDQSxXQUFLbk4sY0FBY29OLFVBQW5CO0FBQ0VrQywyQkFBbUIvUCxtQkFBbkI7QUFDQTtBQUNGLFdBQUtTLGNBQWMwTCxPQUFuQjtBQUNBLFdBQUsxTCxjQUFjMkwsVUFBbkI7QUFDQSxXQUFLM0wsY0FBYzRMLFlBQW5CO0FBQ0EsV0FBSzVMLGNBQWM2TCxXQUFuQjtBQUNBLFdBQUs3TCxjQUFjOEwsWUFBbkI7QUFDQSxXQUFLOUwsY0FBYytMLFdBQW5CO0FBQ0EsV0FBSy9MLGNBQWNnTSxZQUFuQjtBQUNBLFdBQUtoTSxjQUFjaU0sT0FBbkI7QUFDRXFELDJCQUFtQjlQLGtCQUFuQjtBQUNBO0FBQ0YsV0FBS1EsY0FBY21PLGNBQW5CO0FBQ0EsV0FBS25PLGNBQWNvTyxXQUFuQjtBQUNBLFdBQUtwTyxjQUFjcU8sWUFBbkI7QUFDQSxXQUFLck8sY0FBY3NPLGFBQW5CO0FBQ0VnQiwyQkFBbUI3UCxtQkFBbkI7QUFDQTtBQUNGLFdBQUtPLGNBQWM0TixTQUFuQjtBQUNFMEIsMkJBQW1CNVAsZ0JBQW5CO0FBQ0E7QUFDRixXQUFLTSxjQUFjeU8sUUFBbkI7QUFDRWEsMkJBQW1CM1AsbUJBQW5CO0FBQ0E7QUFDRixXQUFLSyxjQUFjdUwsT0FBbkI7QUFDQSxXQUFLdkwsY0FBY3dMLE1BQW5CO0FBQ0EsV0FBS3hMLGNBQWNxTixRQUFuQjtBQUNFaUMsMkJBQW1CblEsdUJBQW5CO0FBQ0E7QUExRko7QUE0RkEsS0FBQ21RLGdCQUFELEdBQW9CRSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0M1UCxVQUFVLEtBQVYsRUFBaUIsZ0RBQWpCLEVBQW1Fa1AsWUFBbkUsQ0FBeEMsR0FBMkhsUCxVQUFVLEtBQVYsQ0FBL0ksR0FBa0s2UCxTQUFsSztBQUNBLFFBQUlDLFFBQVFOLGlCQUFpQk8sU0FBakIsQ0FBMkJSLGNBQTNCLEVBQTJDSCxnQkFBM0MsRUFBNkRDLFdBQTdELEVBQTBFQyxpQkFBMUUsQ0FBWjtBQUNBblEscUJBQWlCNlEsNEJBQWpCLENBQThDRixLQUE5QztBQUNBLFdBQU9BLEtBQVA7QUFDRCxHQWxIcUI7O0FBb0h0Qkcsa0JBQWdCLHdCQUFVQyxFQUFWLEVBQWNDLGdCQUFkLEVBQWdDQyxRQUFoQyxFQUEwQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQUlELHFCQUFxQnJCLFlBQXpCLEVBQXVDO0FBQ3JDLFVBQUl1QixPQUFPalIsV0FBV2tSLE9BQVgsQ0FBbUJKLEVBQW5CLENBQVg7QUFDQSxVQUFJLENBQUNuQixpQkFBaUJtQixFQUFqQixDQUFMLEVBQTJCO0FBQ3pCbkIseUJBQWlCbUIsRUFBakIsSUFBdUJoUixjQUFjcVIsTUFBZCxDQUFxQkYsSUFBckIsRUFBMkIsT0FBM0IsRUFBb0N2USxhQUFwQyxDQUF2QjtBQUNEO0FBQ0Y7QUFDRixHQS9IcUI7O0FBaUl0QjBRLHNCQUFvQiw0QkFBVU4sRUFBVixFQUFjQyxnQkFBZCxFQUFnQztBQUNsRCxRQUFJQSxxQkFBcUJyQixZQUF6QixFQUF1QztBQUNyQ0MsdUJBQWlCbUIsRUFBakIsRUFBcUJPLE1BQXJCO0FBQ0EsYUFBTzFCLGlCQUFpQm1CLEVBQWpCLENBQVA7QUFDRDtBQUNGOztBQXRJcUIsQ0FBeEI7O0FBMElBUSxPQUFPQyxPQUFQLEdBQWlCM0IsaUJBQWpCLEMiLCJmaWxlIjoiMTMyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFNpbXBsZUV2ZW50UGx1Z2luXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXZlbnRDb25zdGFudHMgPSByZXF1aXJlKCcuL0V2ZW50Q29uc3RhbnRzJyk7XG52YXIgRXZlbnRMaXN0ZW5lciA9IHJlcXVpcmUoJ2ZianMvbGliL0V2ZW50TGlzdGVuZXInKTtcbnZhciBFdmVudFByb3BhZ2F0b3JzID0gcmVxdWlyZSgnLi9FdmVudFByb3BhZ2F0b3JzJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xudmFyIFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNDbGlwYm9hcmRFdmVudCcpO1xudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xudmFyIFN5bnRoZXRpY0ZvY3VzRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY0ZvY3VzRXZlbnQnKTtcbnZhciBTeW50aGV0aWNLZXlib2FyZEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNLZXlib2FyZEV2ZW50Jyk7XG52YXIgU3ludGhldGljTW91c2VFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljTW91c2VFdmVudCcpO1xudmFyIFN5bnRoZXRpY0RyYWdFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljRHJhZ0V2ZW50Jyk7XG52YXIgU3ludGhldGljVG91Y2hFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljVG91Y2hFdmVudCcpO1xudmFyIFN5bnRoZXRpY1VJRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1VJRXZlbnQnKTtcbnZhciBTeW50aGV0aWNXaGVlbEV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNXaGVlbEV2ZW50Jyk7XG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xudmFyIGdldEV2ZW50Q2hhckNvZGUgPSByZXF1aXJlKCcuL2dldEV2ZW50Q2hhckNvZGUnKTtcbnZhciBpbnZhcmlhbnQgPSByZXF1aXJlKCdmYmpzL2xpYi9pbnZhcmlhbnQnKTtcbnZhciBrZXlPZiA9IHJlcXVpcmUoJ2ZianMvbGliL2tleU9mJyk7XG5cbnZhciB0b3BMZXZlbFR5cGVzID0gRXZlbnRDb25zdGFudHMudG9wTGV2ZWxUeXBlcztcblxudmFyIGV2ZW50VHlwZXMgPSB7XG4gIGFib3J0OiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25BYm9ydDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uQWJvcnRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBibHVyOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25CbHVyOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25CbHVyQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgY2FuUGxheToge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uQ2FuUGxheTogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uQ2FuUGxheUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGNhblBsYXlUaHJvdWdoOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25DYW5QbGF5VGhyb3VnaDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uQ2FuUGxheVRocm91Z2hDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBjbGljazoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uQ2xpY2s6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkNsaWNrQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgY29udGV4dE1lbnU6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkNvbnRleHRNZW51OiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Db250ZXh0TWVudUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGNvcHk6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkNvcHk6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkNvcHlDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBjdXQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkN1dDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uQ3V0Q2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgZG91YmxlQ2xpY2s6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkRvdWJsZUNsaWNrOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Eb3VibGVDbGlja0NhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGRyYWc6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkRyYWc6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkRyYWdDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBkcmFnRW5kOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25EcmFnRW5kOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25EcmFnRW5kQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgZHJhZ0VudGVyOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25EcmFnRW50ZXI6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkRyYWdFbnRlckNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGRyYWdFeGl0OiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25EcmFnRXhpdDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uRHJhZ0V4aXRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBkcmFnTGVhdmU6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkRyYWdMZWF2ZTogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uRHJhZ0xlYXZlQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgZHJhZ092ZXI6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkRyYWdPdmVyOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25EcmFnT3ZlckNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGRyYWdTdGFydDoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uRHJhZ1N0YXJ0OiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25EcmFnU3RhcnRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBkcm9wOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25Ecm9wOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Ecm9wQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgZHVyYXRpb25DaGFuZ2U6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkR1cmF0aW9uQ2hhbmdlOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25EdXJhdGlvbkNoYW5nZUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGVtcHRpZWQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkVtcHRpZWQ6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkVtcHRpZWRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBlbmNyeXB0ZWQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkVuY3J5cHRlZDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uRW5jcnlwdGVkQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgZW5kZWQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkVuZGVkOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25FbmRlZENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGVycm9yOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25FcnJvcjogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uRXJyb3JDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBmb2N1czoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uRm9jdXM6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkZvY3VzQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgaW5wdXQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbklucHV0OiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25JbnB1dENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGtleURvd246IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbktleURvd246IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbktleURvd25DYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBrZXlQcmVzczoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uS2V5UHJlc3M6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbktleVByZXNzQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAga2V5VXA6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbktleVVwOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25LZXlVcENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGxvYWQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkxvYWQ6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbkxvYWRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBsb2FkZWREYXRhOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25Mb2FkZWREYXRhOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Mb2FkZWREYXRhQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgbG9hZGVkTWV0YWRhdGE6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbkxvYWRlZE1ldGFkYXRhOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Mb2FkZWRNZXRhZGF0YUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIGxvYWRTdGFydDoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uTG9hZFN0YXJ0OiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Mb2FkU3RhcnRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICAvLyBOb3RlOiBXZSBkbyBub3QgYWxsb3cgbGlzdGVuaW5nIHRvIG1vdXNlT3ZlciBldmVudHMuIEluc3RlYWQsIHVzZSB0aGVcbiAgLy8gb25Nb3VzZUVudGVyL29uTW91c2VMZWF2ZSBjcmVhdGVkIGJ5IGBFbnRlckxlYXZlRXZlbnRQbHVnaW5gLlxuICBtb3VzZURvd246IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbk1vdXNlRG93bjogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uTW91c2VEb3duQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgbW91c2VNb3ZlOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25Nb3VzZU1vdmU6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvbk1vdXNlTW92ZUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIG1vdXNlT3V0OiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25Nb3VzZU91dDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uTW91c2VPdXRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBtb3VzZU92ZXI6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbk1vdXNlT3ZlcjogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uTW91c2VPdmVyQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgbW91c2VVcDoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uTW91c2VVcDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uTW91c2VVcENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHBhc3RlOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25QYXN0ZTogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uUGFzdGVDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBwYXVzZToge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uUGF1c2U6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblBhdXNlQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgcGxheToge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uUGxheTogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uUGxheUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHBsYXlpbmc6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvblBsYXlpbmc6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblBsYXlpbmdDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBwcm9ncmVzczoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uUHJvZ3Jlc3M6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblByb2dyZXNzQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgcmF0ZUNoYW5nZToge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uUmF0ZUNoYW5nZTogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uUmF0ZUNoYW5nZUNhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHJlc2V0OiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25SZXNldDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uUmVzZXRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBzY3JvbGw6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvblNjcm9sbDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uU2Nyb2xsQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgc2Vla2VkOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25TZWVrZWQ6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblNlZWtlZENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHNlZWtpbmc6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvblNlZWtpbmc6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblNlZWtpbmdDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICBzdGFsbGVkOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25TdGFsbGVkOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25TdGFsbGVkQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgc3VibWl0OiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25TdWJtaXQ6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblN1Ym1pdENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHN1c3BlbmQ6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvblN1c3BlbmQ6IHRydWUgfSksXG4gICAgICBjYXB0dXJlZDoga2V5T2YoeyBvblN1c3BlbmRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICB0aW1lVXBkYXRlOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25UaW1lVXBkYXRlOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25UaW1lVXBkYXRlQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgdG91Y2hDYW5jZWw6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvblRvdWNoQ2FuY2VsOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Ub3VjaENhbmNlbENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHRvdWNoRW5kOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25Ub3VjaEVuZDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uVG91Y2hFbmRDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICB0b3VjaE1vdmU6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvblRvdWNoTW92ZTogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uVG91Y2hNb3ZlQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgdG91Y2hTdGFydDoge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uVG91Y2hTdGFydDogdHJ1ZSB9KSxcbiAgICAgIGNhcHR1cmVkOiBrZXlPZih7IG9uVG91Y2hTdGFydENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH0sXG4gIHZvbHVtZUNoYW5nZToge1xuICAgIHBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOiB7XG4gICAgICBidWJibGVkOiBrZXlPZih7IG9uVm9sdW1lQ2hhbmdlOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25Wb2x1bWVDaGFuZ2VDYXB0dXJlOiB0cnVlIH0pXG4gICAgfVxuICB9LFxuICB3YWl0aW5nOiB7XG4gICAgcGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM6IHtcbiAgICAgIGJ1YmJsZWQ6IGtleU9mKHsgb25XYWl0aW5nOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25XYWl0aW5nQ2FwdHVyZTogdHJ1ZSB9KVxuICAgIH1cbiAgfSxcbiAgd2hlZWw6IHtcbiAgICBwaGFzZWRSZWdpc3RyYXRpb25OYW1lczoge1xuICAgICAgYnViYmxlZDoga2V5T2YoeyBvbldoZWVsOiB0cnVlIH0pLFxuICAgICAgY2FwdHVyZWQ6IGtleU9mKHsgb25XaGVlbENhcHR1cmU6IHRydWUgfSlcbiAgICB9XG4gIH1cbn07XG5cbnZhciB0b3BMZXZlbEV2ZW50c1RvRGlzcGF0Y2hDb25maWcgPSB7XG4gIHRvcEFib3J0OiBldmVudFR5cGVzLmFib3J0LFxuICB0b3BCbHVyOiBldmVudFR5cGVzLmJsdXIsXG4gIHRvcENhblBsYXk6IGV2ZW50VHlwZXMuY2FuUGxheSxcbiAgdG9wQ2FuUGxheVRocm91Z2g6IGV2ZW50VHlwZXMuY2FuUGxheVRocm91Z2gsXG4gIHRvcENsaWNrOiBldmVudFR5cGVzLmNsaWNrLFxuICB0b3BDb250ZXh0TWVudTogZXZlbnRUeXBlcy5jb250ZXh0TWVudSxcbiAgdG9wQ29weTogZXZlbnRUeXBlcy5jb3B5LFxuICB0b3BDdXQ6IGV2ZW50VHlwZXMuY3V0LFxuICB0b3BEb3VibGVDbGljazogZXZlbnRUeXBlcy5kb3VibGVDbGljayxcbiAgdG9wRHJhZzogZXZlbnRUeXBlcy5kcmFnLFxuICB0b3BEcmFnRW5kOiBldmVudFR5cGVzLmRyYWdFbmQsXG4gIHRvcERyYWdFbnRlcjogZXZlbnRUeXBlcy5kcmFnRW50ZXIsXG4gIHRvcERyYWdFeGl0OiBldmVudFR5cGVzLmRyYWdFeGl0LFxuICB0b3BEcmFnTGVhdmU6IGV2ZW50VHlwZXMuZHJhZ0xlYXZlLFxuICB0b3BEcmFnT3ZlcjogZXZlbnRUeXBlcy5kcmFnT3ZlcixcbiAgdG9wRHJhZ1N0YXJ0OiBldmVudFR5cGVzLmRyYWdTdGFydCxcbiAgdG9wRHJvcDogZXZlbnRUeXBlcy5kcm9wLFxuICB0b3BEdXJhdGlvbkNoYW5nZTogZXZlbnRUeXBlcy5kdXJhdGlvbkNoYW5nZSxcbiAgdG9wRW1wdGllZDogZXZlbnRUeXBlcy5lbXB0aWVkLFxuICB0b3BFbmNyeXB0ZWQ6IGV2ZW50VHlwZXMuZW5jcnlwdGVkLFxuICB0b3BFbmRlZDogZXZlbnRUeXBlcy5lbmRlZCxcbiAgdG9wRXJyb3I6IGV2ZW50VHlwZXMuZXJyb3IsXG4gIHRvcEZvY3VzOiBldmVudFR5cGVzLmZvY3VzLFxuICB0b3BJbnB1dDogZXZlbnRUeXBlcy5pbnB1dCxcbiAgdG9wS2V5RG93bjogZXZlbnRUeXBlcy5rZXlEb3duLFxuICB0b3BLZXlQcmVzczogZXZlbnRUeXBlcy5rZXlQcmVzcyxcbiAgdG9wS2V5VXA6IGV2ZW50VHlwZXMua2V5VXAsXG4gIHRvcExvYWQ6IGV2ZW50VHlwZXMubG9hZCxcbiAgdG9wTG9hZGVkRGF0YTogZXZlbnRUeXBlcy5sb2FkZWREYXRhLFxuICB0b3BMb2FkZWRNZXRhZGF0YTogZXZlbnRUeXBlcy5sb2FkZWRNZXRhZGF0YSxcbiAgdG9wTG9hZFN0YXJ0OiBldmVudFR5cGVzLmxvYWRTdGFydCxcbiAgdG9wTW91c2VEb3duOiBldmVudFR5cGVzLm1vdXNlRG93bixcbiAgdG9wTW91c2VNb3ZlOiBldmVudFR5cGVzLm1vdXNlTW92ZSxcbiAgdG9wTW91c2VPdXQ6IGV2ZW50VHlwZXMubW91c2VPdXQsXG4gIHRvcE1vdXNlT3ZlcjogZXZlbnRUeXBlcy5tb3VzZU92ZXIsXG4gIHRvcE1vdXNlVXA6IGV2ZW50VHlwZXMubW91c2VVcCxcbiAgdG9wUGFzdGU6IGV2ZW50VHlwZXMucGFzdGUsXG4gIHRvcFBhdXNlOiBldmVudFR5cGVzLnBhdXNlLFxuICB0b3BQbGF5OiBldmVudFR5cGVzLnBsYXksXG4gIHRvcFBsYXlpbmc6IGV2ZW50VHlwZXMucGxheWluZyxcbiAgdG9wUHJvZ3Jlc3M6IGV2ZW50VHlwZXMucHJvZ3Jlc3MsXG4gIHRvcFJhdGVDaGFuZ2U6IGV2ZW50VHlwZXMucmF0ZUNoYW5nZSxcbiAgdG9wUmVzZXQ6IGV2ZW50VHlwZXMucmVzZXQsXG4gIHRvcFNjcm9sbDogZXZlbnRUeXBlcy5zY3JvbGwsXG4gIHRvcFNlZWtlZDogZXZlbnRUeXBlcy5zZWVrZWQsXG4gIHRvcFNlZWtpbmc6IGV2ZW50VHlwZXMuc2Vla2luZyxcbiAgdG9wU3RhbGxlZDogZXZlbnRUeXBlcy5zdGFsbGVkLFxuICB0b3BTdWJtaXQ6IGV2ZW50VHlwZXMuc3VibWl0LFxuICB0b3BTdXNwZW5kOiBldmVudFR5cGVzLnN1c3BlbmQsXG4gIHRvcFRpbWVVcGRhdGU6IGV2ZW50VHlwZXMudGltZVVwZGF0ZSxcbiAgdG9wVG91Y2hDYW5jZWw6IGV2ZW50VHlwZXMudG91Y2hDYW5jZWwsXG4gIHRvcFRvdWNoRW5kOiBldmVudFR5cGVzLnRvdWNoRW5kLFxuICB0b3BUb3VjaE1vdmU6IGV2ZW50VHlwZXMudG91Y2hNb3ZlLFxuICB0b3BUb3VjaFN0YXJ0OiBldmVudFR5cGVzLnRvdWNoU3RhcnQsXG4gIHRvcFZvbHVtZUNoYW5nZTogZXZlbnRUeXBlcy52b2x1bWVDaGFuZ2UsXG4gIHRvcFdhaXRpbmc6IGV2ZW50VHlwZXMud2FpdGluZyxcbiAgdG9wV2hlZWw6IGV2ZW50VHlwZXMud2hlZWxcbn07XG5cbmZvciAodmFyIHR5cGUgaW4gdG9wTGV2ZWxFdmVudHNUb0Rpc3BhdGNoQ29uZmlnKSB7XG4gIHRvcExldmVsRXZlbnRzVG9EaXNwYXRjaENvbmZpZ1t0eXBlXS5kZXBlbmRlbmNpZXMgPSBbdHlwZV07XG59XG5cbnZhciBPTl9DTElDS19LRVkgPSBrZXlPZih7IG9uQ2xpY2s6IG51bGwgfSk7XG52YXIgb25DbGlja0xpc3RlbmVycyA9IHt9O1xuXG52YXIgU2ltcGxlRXZlbnRQbHVnaW4gPSB7XG5cbiAgZXZlbnRUeXBlczogZXZlbnRUeXBlcyxcblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRvcExldmVsVHlwZSBSZWNvcmQgZnJvbSBgRXZlbnRDb25zdGFudHNgLlxuICAgKiBAcGFyYW0ge0RPTUV2ZW50VGFyZ2V0fSB0b3BMZXZlbFRhcmdldCBUaGUgbGlzdGVuaW5nIGNvbXBvbmVudCByb290IG5vZGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0b3BMZXZlbFRhcmdldElEIElEIG9mIGB0b3BMZXZlbFRhcmdldGAuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAgICogQHJldHVybiB7Kn0gQW4gYWNjdW11bGF0aW9uIG9mIHN5bnRoZXRpYyBldmVudHMuXG4gICAqIEBzZWUge0V2ZW50UGx1Z2luSHViLmV4dHJhY3RFdmVudHN9XG4gICAqL1xuICBleHRyYWN0RXZlbnRzOiBmdW5jdGlvbiAodG9wTGV2ZWxUeXBlLCB0b3BMZXZlbFRhcmdldCwgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgdmFyIGRpc3BhdGNoQ29uZmlnID0gdG9wTGV2ZWxFdmVudHNUb0Rpc3BhdGNoQ29uZmlnW3RvcExldmVsVHlwZV07XG4gICAgaWYgKCFkaXNwYXRjaENvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHZhciBFdmVudENvbnN0cnVjdG9yO1xuICAgIHN3aXRjaCAodG9wTGV2ZWxUeXBlKSB7XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQWJvcnQ6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQ2FuUGxheTpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BDYW5QbGF5VGhyb3VnaDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BEdXJhdGlvbkNoYW5nZTpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BFbXB0aWVkOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcEVuY3J5cHRlZDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BFbmRlZDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BFcnJvcjpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BJbnB1dDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BMb2FkOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcExvYWRlZERhdGE6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wTG9hZGVkTWV0YWRhdGE6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wTG9hZFN0YXJ0OlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFBhdXNlOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFBsYXk6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wUGxheWluZzpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BQcm9ncmVzczpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BSYXRlQ2hhbmdlOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFJlc2V0OlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFNlZWtlZDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BTZWVraW5nOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFN0YWxsZWQ6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wU3VibWl0OlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFN1c3BlbmQ6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wVGltZVVwZGF0ZTpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BWb2x1bWVDaGFuZ2U6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wV2FpdGluZzpcbiAgICAgICAgLy8gSFRNTCBFdmVudHNcbiAgICAgICAgLy8gQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9pbmRleC5odG1sI2V2ZW50cy0wXG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wS2V5UHJlc3M6XG4gICAgICAgIC8vIEZpcmVGb3ggY3JlYXRlcyBhIGtleXByZXNzIGV2ZW50IGZvciBmdW5jdGlvbiBrZXlzIHRvby4gVGhpcyByZW1vdmVzXG4gICAgICAgIC8vIHRoZSB1bndhbnRlZCBrZXlwcmVzcyBldmVudHMuIEVudGVyIGlzIGhvd2V2ZXIgYm90aCBwcmludGFibGUgYW5kXG4gICAgICAgIC8vIG5vbi1wcmludGFibGUuIE9uZSB3b3VsZCBleHBlY3QgVGFiIHRvIGJlIGFzIHdlbGwgKGJ1dCBpdCBpc24ndCkuXG4gICAgICAgIGlmIChnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wS2V5RG93bjpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BLZXlVcDpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY0tleWJvYXJkRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcEJsdXI6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wRm9jdXM6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNGb2N1c0V2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BDbGljazpcbiAgICAgICAgLy8gRmlyZWZveCBjcmVhdGVzIGEgY2xpY2sgZXZlbnQgb24gcmlnaHQgbW91c2UgY2xpY2tzLiBUaGlzIHJlbW92ZXMgdGhlXG4gICAgICAgIC8vIHVud2FudGVkIGNsaWNrIGV2ZW50cy5cbiAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmJ1dHRvbiA9PT0gMikge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQ29udGV4dE1lbnU6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wRG91YmxlQ2xpY2s6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wTW91c2VEb3duOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcE1vdXNlTW92ZTpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BNb3VzZU91dDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BNb3VzZU92ZXI6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wTW91c2VVcDpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcERyYWc6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wRHJhZ0VuZDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BEcmFnRW50ZXI6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wRHJhZ0V4aXQ6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wRHJhZ0xlYXZlOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcERyYWdPdmVyOlxuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcERyYWdTdGFydDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BEcm9wOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljRHJhZ0V2ZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BUb3VjaENhbmNlbDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BUb3VjaEVuZDpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BUb3VjaE1vdmU6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wVG91Y2hTdGFydDpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY1RvdWNoRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFNjcm9sbDpcbiAgICAgICAgRXZlbnRDb25zdHJ1Y3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0b3BMZXZlbFR5cGVzLnRvcFdoZWVsOlxuICAgICAgICBFdmVudENvbnN0cnVjdG9yID0gU3ludGhldGljV2hlZWxFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wQ29weTpcbiAgICAgIGNhc2UgdG9wTGV2ZWxUeXBlcy50b3BDdXQ6XG4gICAgICBjYXNlIHRvcExldmVsVHlwZXMudG9wUGFzdGU6XG4gICAgICAgIEV2ZW50Q29uc3RydWN0b3IgPSBTeW50aGV0aWNDbGlwYm9hcmRFdmVudDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgICFFdmVudENvbnN0cnVjdG9yID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ1NpbXBsZUV2ZW50UGx1Z2luOiBVbmhhbmRsZWQgZXZlbnQgdHlwZSwgYCVzYC4nLCB0b3BMZXZlbFR5cGUpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgZXZlbnQgPSBFdmVudENvbnN0cnVjdG9yLmdldFBvb2xlZChkaXNwYXRjaENvbmZpZywgdG9wTGV2ZWxUYXJnZXRJRCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBFdmVudFByb3BhZ2F0b3JzLmFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoZXZlbnQpO1xuICAgIHJldHVybiBldmVudDtcbiAgfSxcblxuICBkaWRQdXRMaXN0ZW5lcjogZnVuY3Rpb24gKGlkLCByZWdpc3RyYXRpb25OYW1lLCBsaXN0ZW5lcikge1xuICAgIC8vIE1vYmlsZSBTYWZhcmkgZG9lcyBub3QgZmlyZSBwcm9wZXJseSBidWJibGUgY2xpY2sgZXZlbnRzIG9uXG4gICAgLy8gbm9uLWludGVyYWN0aXZlIGVsZW1lbnRzLCB3aGljaCBtZWFucyBkZWxlZ2F0ZWQgY2xpY2sgbGlzdGVuZXJzIGRvIG5vdFxuICAgIC8vIGZpcmUuIFRoZSB3b3JrYXJvdW5kIGZvciB0aGlzIGJ1ZyBpbnZvbHZlcyBhdHRhY2hpbmcgYW4gZW1wdHkgY2xpY2tcbiAgICAvLyBsaXN0ZW5lciBvbiB0aGUgdGFyZ2V0IG5vZGUuXG4gICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWUgPT09IE9OX0NMSUNLX0tFWSkge1xuICAgICAgdmFyIG5vZGUgPSBSZWFjdE1vdW50LmdldE5vZGUoaWQpO1xuICAgICAgaWYgKCFvbkNsaWNrTGlzdGVuZXJzW2lkXSkge1xuICAgICAgICBvbkNsaWNrTGlzdGVuZXJzW2lkXSA9IEV2ZW50TGlzdGVuZXIubGlzdGVuKG5vZGUsICdjbGljaycsIGVtcHR5RnVuY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB3aWxsRGVsZXRlTGlzdGVuZXI6IGZ1bmN0aW9uIChpZCwgcmVnaXN0cmF0aW9uTmFtZSkge1xuICAgIGlmIChyZWdpc3RyYXRpb25OYW1lID09PSBPTl9DTElDS19LRVkpIHtcbiAgICAgIG9uQ2xpY2tMaXN0ZW5lcnNbaWRdLnJlbW92ZSgpO1xuICAgICAgZGVsZXRlIG9uQ2xpY2tMaXN0ZW5lcnNbaWRdO1xuICAgIH1cbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNpbXBsZUV2ZW50UGx1Z2luO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9TaW1wbGVFdmVudFBsdWdpbi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 133 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticClipboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticEvent = __webpack_require__(77);\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar ClipboardEventInterface = {\n clipboardData: function clipboardData(event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);\n\nmodule.exports = SyntheticClipboardEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljQ2xpcGJvYXJkRXZlbnQuanM/ZmYxMCJdLCJuYW1lcyI6WyJTeW50aGV0aWNFdmVudCIsInJlcXVpcmUiLCJDbGlwYm9hcmRFdmVudEludGVyZmFjZSIsImNsaXBib2FyZERhdGEiLCJldmVudCIsIndpbmRvdyIsIlN5bnRoZXRpY0NsaXBib2FyZEV2ZW50IiwiZGlzcGF0Y2hDb25maWciLCJkaXNwYXRjaE1hcmtlciIsIm5hdGl2ZUV2ZW50IiwibmF0aXZlRXZlbnRUYXJnZXQiLCJjYWxsIiwiYXVnbWVudENsYXNzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGlCQUFpQixtQkFBQUMsQ0FBUSxFQUFSLENBQXJCOztBQUVBOzs7O0FBSUEsSUFBSUMsMEJBQTBCO0FBQzVCQyxpQkFBZSx1QkFBVUMsS0FBVixFQUFpQjtBQUM5QixXQUFPLG1CQUFtQkEsS0FBbkIsR0FBMkJBLE1BQU1ELGFBQWpDLEdBQWlERSxPQUFPRixhQUEvRDtBQUNEO0FBSDJCLENBQTlCOztBQU1BOzs7Ozs7QUFNQSxTQUFTRyx1QkFBVCxDQUFpQ0MsY0FBakMsRUFBaURDLGNBQWpELEVBQWlFQyxXQUFqRSxFQUE4RUMsaUJBQTlFLEVBQWlHO0FBQy9GVixpQkFBZVcsSUFBZixDQUFvQixJQUFwQixFQUEwQkosY0FBMUIsRUFBMENDLGNBQTFDLEVBQTBEQyxXQUExRCxFQUF1RUMsaUJBQXZFO0FBQ0Q7O0FBRURWLGVBQWVZLFlBQWYsQ0FBNEJOLHVCQUE1QixFQUFxREosdUJBQXJEOztBQUVBVyxPQUFPQyxPQUFQLEdBQWlCUix1QkFBakIiLCJmaWxlIjoiMTMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY0V2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNFdmVudCcpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvY2xpcGJvYXJkLWFwaXMvXG4gKi9cbnZhciBDbGlwYm9hcmRFdmVudEludGVyZmFjZSA9IHtcbiAgY2xpcGJvYXJkRGF0YTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdjbGlwYm9hcmREYXRhJyBpbiBldmVudCA/IGV2ZW50LmNsaXBib2FyZERhdGEgOiB3aW5kb3cuY2xpcGJvYXJkRGF0YTtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljVUlFdmVudH1cbiAqL1xuZnVuY3Rpb24gU3ludGhldGljQ2xpcGJvYXJkRXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgU3ludGhldGljRXZlbnQuY2FsbCh0aGlzLCBkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG59XG5cblN5bnRoZXRpY0V2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNDbGlwYm9hcmRFdmVudCwgQ2xpcGJvYXJkRXZlbnRJbnRlcmZhY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9TeW50aGV0aWNDbGlwYm9hcmRFdmVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 134 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticFocusEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = __webpack_require__(87);\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar FocusEventInterface = {\n relatedTarget: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);\n\nmodule.exports = SyntheticFocusEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljRm9jdXNFdmVudC5qcz9mZDNjIl0sIm5hbWVzIjpbIlN5bnRoZXRpY1VJRXZlbnQiLCJyZXF1aXJlIiwiRm9jdXNFdmVudEludGVyZmFjZSIsInJlbGF0ZWRUYXJnZXQiLCJTeW50aGV0aWNGb2N1c0V2ZW50IiwiZGlzcGF0Y2hDb25maWciLCJkaXNwYXRjaE1hcmtlciIsIm5hdGl2ZUV2ZW50IiwibmF0aXZlRXZlbnRUYXJnZXQiLCJjYWxsIiwiYXVnbWVudENsYXNzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLG1CQUFtQixtQkFBQUMsQ0FBUSxFQUFSLENBQXZCOztBQUVBOzs7O0FBSUEsSUFBSUMsc0JBQXNCO0FBQ3hCQyxpQkFBZTtBQURTLENBQTFCOztBQUlBOzs7Ozs7QUFNQSxTQUFTQyxtQkFBVCxDQUE2QkMsY0FBN0IsRUFBNkNDLGNBQTdDLEVBQTZEQyxXQUE3RCxFQUEwRUMsaUJBQTFFLEVBQTZGO0FBQzNGUixtQkFBaUJTLElBQWpCLENBQXNCLElBQXRCLEVBQTRCSixjQUE1QixFQUE0Q0MsY0FBNUMsRUFBNERDLFdBQTVELEVBQXlFQyxpQkFBekU7QUFDRDs7QUFFRFIsaUJBQWlCVSxZQUFqQixDQUE4Qk4sbUJBQTlCLEVBQW1ERixtQkFBbkQ7O0FBRUFTLE9BQU9DLE9BQVAsR0FBaUJSLG1CQUFqQiIsImZpbGUiOiIxMzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgU3ludGhldGljRm9jdXNFdmVudFxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNVSUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNVSUV2ZW50Jyk7XG5cbi8qKlxuICogQGludGVyZmFjZSBGb2N1c0V2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xudmFyIEZvY3VzRXZlbnRJbnRlcmZhY2UgPSB7XG4gIHJlbGF0ZWRUYXJnZXQ6IG51bGxcbn07XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGRpc3BhdGNoQ29uZmlnIENvbmZpZ3VyYXRpb24gdXNlZCB0byBkaXNwYXRjaCB0aGlzIGV2ZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGRpc3BhdGNoTWFya2VyIE1hcmtlciBpZGVudGlmeWluZyB0aGUgZXZlbnQgdGFyZ2V0LlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICogQGV4dGVuZHMge1N5bnRoZXRpY1VJRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIFN5bnRoZXRpY0ZvY3VzRXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgU3ludGhldGljVUlFdmVudC5jYWxsKHRoaXMsIGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbn1cblxuU3ludGhldGljVUlFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljRm9jdXNFdmVudCwgRm9jdXNFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljRm9jdXNFdmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljRm9jdXNFdmVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 135 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticKeyboardEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = __webpack_require__(87);\n\nvar getEventCharCode = __webpack_require__(136);\nvar getEventKey = __webpack_require__(137);\nvar getEventModifierState = __webpack_require__(88);\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar KeyboardEventInterface = {\n key: getEventKey,\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function charCode(event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n return 0;\n },\n keyCode: function keyCode(event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n },\n which: function which(event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n return 0;\n }\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);\n\nmodule.exports = SyntheticKeyboardEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljS2V5Ym9hcmRFdmVudC5qcz8xZmQ2Il0sIm5hbWVzIjpbIlN5bnRoZXRpY1VJRXZlbnQiLCJyZXF1aXJlIiwiZ2V0RXZlbnRDaGFyQ29kZSIsImdldEV2ZW50S2V5IiwiZ2V0RXZlbnRNb2RpZmllclN0YXRlIiwiS2V5Ym9hcmRFdmVudEludGVyZmFjZSIsImtleSIsImxvY2F0aW9uIiwiY3RybEtleSIsInNoaWZ0S2V5IiwiYWx0S2V5IiwibWV0YUtleSIsInJlcGVhdCIsImxvY2FsZSIsImdldE1vZGlmaWVyU3RhdGUiLCJjaGFyQ29kZSIsImV2ZW50IiwidHlwZSIsImtleUNvZGUiLCJ3aGljaCIsIlN5bnRoZXRpY0tleWJvYXJkRXZlbnQiLCJkaXNwYXRjaENvbmZpZyIsImRpc3BhdGNoTWFya2VyIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsImNhbGwiLCJhdWdtZW50Q2xhc3MiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsbUJBQW1CLG1CQUFBQyxDQUFRLEVBQVIsQ0FBdkI7O0FBRUEsSUFBSUMsbUJBQW1CLG1CQUFBRCxDQUFRLEdBQVIsQ0FBdkI7QUFDQSxJQUFJRSxjQUFjLG1CQUFBRixDQUFRLEdBQVIsQ0FBbEI7QUFDQSxJQUFJRyx3QkFBd0IsbUJBQUFILENBQVEsRUFBUixDQUE1Qjs7QUFFQTs7OztBQUlBLElBQUlJLHlCQUF5QjtBQUMzQkMsT0FBS0gsV0FEc0I7QUFFM0JJLFlBQVUsSUFGaUI7QUFHM0JDLFdBQVMsSUFIa0I7QUFJM0JDLFlBQVUsSUFKaUI7QUFLM0JDLFVBQVEsSUFMbUI7QUFNM0JDLFdBQVMsSUFOa0I7QUFPM0JDLFVBQVEsSUFQbUI7QUFRM0JDLFVBQVEsSUFSbUI7QUFTM0JDLG9CQUFrQlYscUJBVFM7QUFVM0I7QUFDQVcsWUFBVSxrQkFBVUMsS0FBVixFQUFpQjtBQUN6QjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFJQSxNQUFNQyxJQUFOLEtBQWUsVUFBbkIsRUFBK0I7QUFDN0IsYUFBT2YsaUJBQWlCYyxLQUFqQixDQUFQO0FBQ0Q7QUFDRCxXQUFPLENBQVA7QUFDRCxHQXJCMEI7QUFzQjNCRSxXQUFTLGlCQUFVRixLQUFWLEVBQWlCO0FBQ3hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFJQSxNQUFNQyxJQUFOLEtBQWUsU0FBZixJQUE0QkQsTUFBTUMsSUFBTixLQUFlLE9BQS9DLEVBQXdEO0FBQ3RELGFBQU9ELE1BQU1FLE9BQWI7QUFDRDtBQUNELFdBQU8sQ0FBUDtBQUNELEdBbEMwQjtBQW1DM0JDLFNBQU8sZUFBVUgsS0FBVixFQUFpQjtBQUN0QjtBQUNBO0FBQ0EsUUFBSUEsTUFBTUMsSUFBTixLQUFlLFVBQW5CLEVBQStCO0FBQzdCLGFBQU9mLGlCQUFpQmMsS0FBakIsQ0FBUDtBQUNEO0FBQ0QsUUFBSUEsTUFBTUMsSUFBTixLQUFlLFNBQWYsSUFBNEJELE1BQU1DLElBQU4sS0FBZSxPQUEvQyxFQUF3RDtBQUN0RCxhQUFPRCxNQUFNRSxPQUFiO0FBQ0Q7QUFDRCxXQUFPLENBQVA7QUFDRDtBQTdDMEIsQ0FBN0I7O0FBZ0RBOzs7Ozs7QUFNQSxTQUFTRSxzQkFBVCxDQUFnQ0MsY0FBaEMsRUFBZ0RDLGNBQWhELEVBQWdFQyxXQUFoRSxFQUE2RUMsaUJBQTdFLEVBQWdHO0FBQzlGeEIsbUJBQWlCeUIsSUFBakIsQ0FBc0IsSUFBdEIsRUFBNEJKLGNBQTVCLEVBQTRDQyxjQUE1QyxFQUE0REMsV0FBNUQsRUFBeUVDLGlCQUF6RTtBQUNEOztBQUVEeEIsaUJBQWlCMEIsWUFBakIsQ0FBOEJOLHNCQUE5QixFQUFzRGYsc0JBQXREOztBQUVBc0IsT0FBT0MsT0FBUCxHQUFpQlIsc0JBQWpCIiwiZmlsZSI6IjEzNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBTeW50aGV0aWNLZXlib2FyZEV2ZW50XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFN5bnRoZXRpY1VJRXZlbnQgPSByZXF1aXJlKCcuL1N5bnRoZXRpY1VJRXZlbnQnKTtcblxudmFyIGdldEV2ZW50Q2hhckNvZGUgPSByZXF1aXJlKCcuL2dldEV2ZW50Q2hhckNvZGUnKTtcbnZhciBnZXRFdmVudEtleSA9IHJlcXVpcmUoJy4vZ2V0RXZlbnRLZXknKTtcbnZhciBnZXRFdmVudE1vZGlmaWVyU3RhdGUgPSByZXF1aXJlKCcuL2dldEV2ZW50TW9kaWZpZXJTdGF0ZScpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgS2V5Ym9hcmRFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cbnZhciBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0ge1xuICBrZXk6IGdldEV2ZW50S2V5LFxuICBsb2NhdGlvbjogbnVsbCxcbiAgY3RybEtleTogbnVsbCxcbiAgc2hpZnRLZXk6IG51bGwsXG4gIGFsdEtleTogbnVsbCxcbiAgbWV0YUtleTogbnVsbCxcbiAgcmVwZWF0OiBudWxsLFxuICBsb2NhbGU6IG51bGwsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgLy8gTGVnYWN5IEludGVyZmFjZVxuICBjaGFyQ29kZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYGNoYXJDb2RlYCBpcyB0aGUgcmVzdWx0IG9mIGEgS2V5UHJlc3MgZXZlbnQgYW5kIHJlcHJlc2VudHMgdGhlIHZhbHVlIG9mXG4gICAgLy8gdGhlIGFjdHVhbCBwcmludGFibGUgY2hhcmFjdGVyLlxuXG4gICAgLy8gS2V5UHJlc3MgaXMgZGVwcmVjYXRlZCwgYnV0IGl0cyByZXBsYWNlbWVudCBpcyBub3QgeWV0IGZpbmFsIGFuZCBub3RcbiAgICAvLyBpbXBsZW1lbnRlZCBpbiBhbnkgbWFqb3IgYnJvd3Nlci4gT25seSBLZXlQcmVzcyBoYXMgY2hhckNvZGUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgIHJldHVybiBnZXRFdmVudENoYXJDb2RlKGV2ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0sXG4gIGtleUNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGBrZXlDb2RlYCBpcyB0aGUgcmVzdWx0IG9mIGEgS2V5RG93bi9VcCBldmVudCBhbmQgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2ZcbiAgICAvLyBwaHlzaWNhbCBrZXlib2FyZCBrZXkuXG5cbiAgICAvLyBUaGUgYWN0dWFsIG1lYW5pbmcgb2YgdGhlIHZhbHVlIGRlcGVuZHMgb24gdGhlIHVzZXJzJyBrZXlib2FyZCBsYXlvdXRcbiAgICAvLyB3aGljaCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIEFzc3VtaW5nIHRoYXQgaXQgaXMgYSBVUyBrZXlib2FyZCBsYXlvdXRcbiAgICAvLyBwcm92aWRlcyBhIHN1cnByaXNpbmdseSBhY2N1cmF0ZSBtYXBwaW5nIGZvciBVUyBhbmQgRXVyb3BlYW4gdXNlcnMuXG4gICAgLy8gRHVlIHRvIHRoaXMsIGl0IGlzIGxlZnQgdG8gdGhlIHVzZXIgdG8gaW1wbGVtZW50IGF0IHRoaXMgdGltZS5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAgIHJldHVybiBldmVudC5rZXlDb2RlO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfSxcbiAgd2hpY2g6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIC8vIGB3aGljaGAgaXMgYW4gYWxpYXMgZm9yIGVpdGhlciBga2V5Q29kZWAgb3IgYGNoYXJDb2RlYCBkZXBlbmRpbmcgb24gdGhlXG4gICAgLy8gdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgIHJldHVybiBnZXRFdmVudENoYXJDb2RlKGV2ZW50KTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBldmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICByZXR1cm4gZXZlbnQua2V5Q29kZTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cbn07XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IGRpc3BhdGNoQ29uZmlnIENvbmZpZ3VyYXRpb24gdXNlZCB0byBkaXNwYXRjaCB0aGlzIGV2ZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGRpc3BhdGNoTWFya2VyIE1hcmtlciBpZGVudGlmeWluZyB0aGUgZXZlbnQgdGFyZ2V0LlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICogQGV4dGVuZHMge1N5bnRoZXRpY1VJRXZlbnR9XG4gKi9cbmZ1bmN0aW9uIFN5bnRoZXRpY0tleWJvYXJkRXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgU3ludGhldGljVUlFdmVudC5jYWxsKHRoaXMsIGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbn1cblxuU3ludGhldGljVUlFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljS2V5Ym9hcmRFdmVudCwgS2V5Ym9hcmRFdmVudEludGVyZmFjZSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ludGhldGljS2V5Ym9hcmRFdmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljS2V5Ym9hcmRFdmVudC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 136 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventCharCode\n * @typechecks static-only\n */\n\n'use strict';\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\n\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode;\n\n // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n }\n\n // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nmodule.exports = getEventCharCode;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0RXZlbnRDaGFyQ29kZS5qcz84NGE5Il0sIm5hbWVzIjpbImdldEV2ZW50Q2hhckNvZGUiLCJuYXRpdmVFdmVudCIsImNoYXJDb2RlIiwia2V5Q29kZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQTs7Ozs7Ozs7Ozs7QUFVQSxTQUFTQSxnQkFBVCxDQUEwQkMsV0FBMUIsRUFBdUM7QUFDckMsTUFBSUMsUUFBSjtBQUNBLE1BQUlDLFVBQVVGLFlBQVlFLE9BQTFCOztBQUVBLE1BQUksY0FBY0YsV0FBbEIsRUFBK0I7QUFDN0JDLGVBQVdELFlBQVlDLFFBQXZCOztBQUVBO0FBQ0EsUUFBSUEsYUFBYSxDQUFiLElBQWtCQyxZQUFZLEVBQWxDLEVBQXNDO0FBQ3BDRCxpQkFBVyxFQUFYO0FBQ0Q7QUFDRixHQVBELE1BT087QUFDTDtBQUNBQSxlQUFXQyxPQUFYO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBLE1BQUlELFlBQVksRUFBWixJQUFrQkEsYUFBYSxFQUFuQyxFQUF1QztBQUNyQyxXQUFPQSxRQUFQO0FBQ0Q7O0FBRUQsU0FBTyxDQUFQO0FBQ0Q7O0FBRURFLE9BQU9DLE9BQVAsR0FBaUJMLGdCQUFqQiIsImZpbGUiOiIxMzYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgZ2V0RXZlbnRDaGFyQ29kZVxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogYGNoYXJDb2RlYCByZXByZXNlbnRzIHRoZSBhY3R1YWwgXCJjaGFyYWN0ZXIgY29kZVwiIGFuZCBpcyBzYWZlIHRvIHVzZSB3aXRoXG4gKiBgU3RyaW5nLmZyb21DaGFyQ29kZWAuIEFzIHN1Y2gsIG9ubHkga2V5cyB0aGF0IGNvcnJlc3BvbmQgdG8gcHJpbnRhYmxlXG4gKiBjaGFyYWN0ZXJzIHByb2R1Y2UgYSB2YWxpZCBgY2hhckNvZGVgLCB0aGUgb25seSBleGNlcHRpb24gdG8gdGhpcyBpcyBFbnRlci5cbiAqIFRoZSBUYWIta2V5IGlzIGNvbnNpZGVyZWQgbm9uLXByaW50YWJsZSBhbmQgZG9lcyBub3QgaGF2ZSBhIGBjaGFyQ29kZWAsXG4gKiBwcmVzdW1hYmx5IGJlY2F1c2UgaXQgZG9lcyBub3QgcHJvZHVjZSBhIHRhYi1jaGFyYWN0ZXIgaW4gYnJvd3NlcnMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICogQHJldHVybiB7bnVtYmVyfSBOb3JtYWxpemVkIGBjaGFyQ29kZWAgcHJvcGVydHkuXG4gKi9cbmZ1bmN0aW9uIGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpIHtcbiAgdmFyIGNoYXJDb2RlO1xuICB2YXIga2V5Q29kZSA9IG5hdGl2ZUV2ZW50LmtleUNvZGU7XG5cbiAgaWYgKCdjaGFyQ29kZScgaW4gbmF0aXZlRXZlbnQpIHtcbiAgICBjaGFyQ29kZSA9IG5hdGl2ZUV2ZW50LmNoYXJDb2RlO1xuXG4gICAgLy8gRkYgZG9lcyBub3Qgc2V0IGBjaGFyQ29kZWAgZm9yIHRoZSBFbnRlci1rZXksIGNoZWNrIGFnYWluc3QgYGtleUNvZGVgLlxuICAgIGlmIChjaGFyQ29kZSA9PT0gMCAmJiBrZXlDb2RlID09PSAxMykge1xuICAgICAgY2hhckNvZGUgPSAxMztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gSUU4IGRvZXMgbm90IGltcGxlbWVudCBgY2hhckNvZGVgLCBidXQgYGtleUNvZGVgIGhhcyB0aGUgY29ycmVjdCB2YWx1ZS5cbiAgICBjaGFyQ29kZSA9IGtleUNvZGU7XG4gIH1cblxuICAvLyBTb21lIG5vbi1wcmludGFibGUga2V5cyBhcmUgcmVwb3J0ZWQgaW4gYGNoYXJDb2RlYC9ga2V5Q29kZWAsIGRpc2NhcmQgdGhlbS5cbiAgLy8gTXVzdCBub3QgZGlzY2FyZCB0aGUgKG5vbi0pcHJpbnRhYmxlIEVudGVyLWtleS5cbiAgaWYgKGNoYXJDb2RlID49IDMyIHx8IGNoYXJDb2RlID09PSAxMykge1xuICAgIHJldHVybiBjaGFyQ29kZTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEV2ZW50Q2hhckNvZGU7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL2dldEV2ZW50Q2hhckNvZGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 137 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule getEventKey\n * @typechecks static-only\n */\n\n'use strict';\n\nvar getEventCharCode = __webpack_require__(136);\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n 'Esc': 'Escape',\n 'Spacebar': ' ',\n 'Left': 'ArrowLeft',\n 'Up': 'ArrowUp',\n 'Right': 'ArrowRight',\n 'Down': 'ArrowDown',\n 'Del': 'Delete',\n 'Win': 'OS',\n 'Menu': 'ContextMenu',\n 'Apps': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'MozPrintableKey': 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',\n 118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 224: 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (key !== 'Unidentified') {\n return key;\n }\n }\n\n // Browser does not implement `key`, polyfill as much of it as we can.\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent);\n\n // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n return '';\n}\n\nmodule.exports = getEventKey;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0RXZlbnRLZXkuanM/MDA3ZSJdLCJuYW1lcyI6WyJnZXRFdmVudENoYXJDb2RlIiwicmVxdWlyZSIsIm5vcm1hbGl6ZUtleSIsInRyYW5zbGF0ZVRvS2V5IiwiZ2V0RXZlbnRLZXkiLCJuYXRpdmVFdmVudCIsImtleSIsInR5cGUiLCJjaGFyQ29kZSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImtleUNvZGUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsbUJBQW1CLG1CQUFBQyxDQUFRLEdBQVIsQ0FBdkI7O0FBRUE7Ozs7QUFJQSxJQUFJQyxlQUFlO0FBQ2pCLFNBQU8sUUFEVTtBQUVqQixjQUFZLEdBRks7QUFHakIsVUFBUSxXQUhTO0FBSWpCLFFBQU0sU0FKVztBQUtqQixXQUFTLFlBTFE7QUFNakIsVUFBUSxXQU5TO0FBT2pCLFNBQU8sUUFQVTtBQVFqQixTQUFPLElBUlU7QUFTakIsVUFBUSxhQVRTO0FBVWpCLFVBQVEsYUFWUztBQVdqQixZQUFVLFlBWE87QUFZakIscUJBQW1CO0FBWkYsQ0FBbkI7O0FBZUE7Ozs7O0FBS0EsSUFBSUMsaUJBQWlCO0FBQ25CLEtBQUcsV0FEZ0I7QUFFbkIsS0FBRyxLQUZnQjtBQUduQixNQUFJLE9BSGU7QUFJbkIsTUFBSSxPQUplO0FBS25CLE1BQUksT0FMZTtBQU1uQixNQUFJLFNBTmU7QUFPbkIsTUFBSSxLQVBlO0FBUW5CLE1BQUksT0FSZTtBQVNuQixNQUFJLFVBVGU7QUFVbkIsTUFBSSxRQVZlO0FBV25CLE1BQUksR0FYZTtBQVluQixNQUFJLFFBWmU7QUFhbkIsTUFBSSxVQWJlO0FBY25CLE1BQUksS0FkZTtBQWVuQixNQUFJLE1BZmU7QUFnQm5CLE1BQUksV0FoQmU7QUFpQm5CLE1BQUksU0FqQmU7QUFrQm5CLE1BQUksWUFsQmU7QUFtQm5CLE1BQUksV0FuQmU7QUFvQm5CLE1BQUksUUFwQmU7QUFxQm5CLE1BQUksUUFyQmU7QUFzQm5CLE9BQUssSUF0QmMsRUFzQlIsS0FBSyxJQXRCRyxFQXNCRyxLQUFLLElBdEJSLEVBc0JjLEtBQUssSUF0Qm5CLEVBc0J5QixLQUFLLElBdEI5QixFQXNCb0MsS0FBSyxJQXRCekM7QUF1Qm5CLE9BQUssSUF2QmMsRUF1QlIsS0FBSyxJQXZCRyxFQXVCRyxLQUFLLElBdkJSLEVBdUJjLEtBQUssS0F2Qm5CLEVBdUIwQixLQUFLLEtBdkIvQixFQXVCc0MsS0FBSyxLQXZCM0M7QUF3Qm5CLE9BQUssU0F4QmM7QUF5Qm5CLE9BQUssWUF6QmM7QUEwQm5CLE9BQUs7QUExQmMsQ0FBckI7O0FBNkJBOzs7O0FBSUEsU0FBU0MsV0FBVCxDQUFxQkMsV0FBckIsRUFBa0M7QUFDaEMsTUFBSUEsWUFBWUMsR0FBaEIsRUFBcUI7QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBSUEsTUFBTUosYUFBYUcsWUFBWUMsR0FBekIsS0FBaUNELFlBQVlDLEdBQXZEO0FBQ0EsUUFBSUEsUUFBUSxjQUFaLEVBQTRCO0FBQzFCLGFBQU9BLEdBQVA7QUFDRDtBQUNGOztBQUVEO0FBQ0EsTUFBSUQsWUFBWUUsSUFBWixLQUFxQixVQUF6QixFQUFxQztBQUNuQyxRQUFJQyxXQUFXUixpQkFBaUJLLFdBQWpCLENBQWY7O0FBRUE7QUFDQTtBQUNBLFdBQU9HLGFBQWEsRUFBYixHQUFrQixPQUFsQixHQUE0QkMsT0FBT0MsWUFBUCxDQUFvQkYsUUFBcEIsQ0FBbkM7QUFDRDtBQUNELE1BQUlILFlBQVlFLElBQVosS0FBcUIsU0FBckIsSUFBa0NGLFlBQVlFLElBQVosS0FBcUIsT0FBM0QsRUFBb0U7QUFDbEU7QUFDQTtBQUNBLFdBQU9KLGVBQWVFLFlBQVlNLE9BQTNCLEtBQXVDLGNBQTlDO0FBQ0Q7QUFDRCxTQUFPLEVBQVA7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQlQsV0FBakIiLCJmaWxlIjoiMTM3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGdldEV2ZW50S2V5XG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGdldEV2ZW50Q2hhckNvZGUgPSByZXF1aXJlKCcuL2dldEV2ZW50Q2hhckNvZGUnKTtcblxuLyoqXG4gKiBOb3JtYWxpemF0aW9uIG9mIGRlcHJlY2F0ZWQgSFRNTDUgYGtleWAgdmFsdWVzXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9LZXlib2FyZEV2ZW50I0tleV9uYW1lc1xuICovXG52YXIgbm9ybWFsaXplS2V5ID0ge1xuICAnRXNjJzogJ0VzY2FwZScsXG4gICdTcGFjZWJhcic6ICcgJyxcbiAgJ0xlZnQnOiAnQXJyb3dMZWZ0JyxcbiAgJ1VwJzogJ0Fycm93VXAnLFxuICAnUmlnaHQnOiAnQXJyb3dSaWdodCcsXG4gICdEb3duJzogJ0Fycm93RG93bicsXG4gICdEZWwnOiAnRGVsZXRlJyxcbiAgJ1dpbic6ICdPUycsXG4gICdNZW51JzogJ0NvbnRleHRNZW51JyxcbiAgJ0FwcHMnOiAnQ29udGV4dE1lbnUnLFxuICAnU2Nyb2xsJzogJ1Njcm9sbExvY2snLFxuICAnTW96UHJpbnRhYmxlS2V5JzogJ1VuaWRlbnRpZmllZCdcbn07XG5cbi8qKlxuICogVHJhbnNsYXRpb24gZnJvbSBsZWdhY3kgYGtleUNvZGVgIHRvIEhUTUw1IGBrZXlgXG4gKiBPbmx5IHNwZWNpYWwga2V5cyBzdXBwb3J0ZWQsIGFsbCBvdGhlcnMgZGVwZW5kIG9uIGtleWJvYXJkIGxheW91dCBvciBicm93c2VyXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9LZXlib2FyZEV2ZW50I0tleV9uYW1lc1xuICovXG52YXIgdHJhbnNsYXRlVG9LZXkgPSB7XG4gIDg6ICdCYWNrc3BhY2UnLFxuICA5OiAnVGFiJyxcbiAgMTI6ICdDbGVhcicsXG4gIDEzOiAnRW50ZXInLFxuICAxNjogJ1NoaWZ0JyxcbiAgMTc6ICdDb250cm9sJyxcbiAgMTg6ICdBbHQnLFxuICAxOTogJ1BhdXNlJyxcbiAgMjA6ICdDYXBzTG9jaycsXG4gIDI3OiAnRXNjYXBlJyxcbiAgMzI6ICcgJyxcbiAgMzM6ICdQYWdlVXAnLFxuICAzNDogJ1BhZ2VEb3duJyxcbiAgMzU6ICdFbmQnLFxuICAzNjogJ0hvbWUnLFxuICAzNzogJ0Fycm93TGVmdCcsXG4gIDM4OiAnQXJyb3dVcCcsXG4gIDM5OiAnQXJyb3dSaWdodCcsXG4gIDQwOiAnQXJyb3dEb3duJyxcbiAgNDU6ICdJbnNlcnQnLFxuICA0NjogJ0RlbGV0ZScsXG4gIDExMjogJ0YxJywgMTEzOiAnRjInLCAxMTQ6ICdGMycsIDExNTogJ0Y0JywgMTE2OiAnRjUnLCAxMTc6ICdGNicsXG4gIDExODogJ0Y3JywgMTE5OiAnRjgnLCAxMjA6ICdGOScsIDEyMTogJ0YxMCcsIDEyMjogJ0YxMScsIDEyMzogJ0YxMicsXG4gIDE0NDogJ051bUxvY2snLFxuICAxNDU6ICdTY3JvbGxMb2NrJyxcbiAgMjI0OiAnTWV0YSdcbn07XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50IE5hdGl2ZSBicm93c2VyIGV2ZW50LlxuICogQHJldHVybiB7c3RyaW5nfSBOb3JtYWxpemVkIGBrZXlgIHByb3BlcnR5LlxuICovXG5mdW5jdGlvbiBnZXRFdmVudEtleShuYXRpdmVFdmVudCkge1xuICBpZiAobmF0aXZlRXZlbnQua2V5KSB7XG4gICAgLy8gTm9ybWFsaXplIGluY29uc2lzdGVudCB2YWx1ZXMgcmVwb3J0ZWQgYnkgYnJvd3NlcnMgZHVlIHRvXG4gICAgLy8gaW1wbGVtZW50YXRpb25zIG9mIGEgd29ya2luZyBkcmFmdCBzcGVjaWZpY2F0aW9uLlxuXG4gICAgLy8gRmlyZUZveCBpbXBsZW1lbnRzIGBrZXlgIGJ1dCByZXR1cm5zIGBNb3pQcmludGFibGVLZXlgIGZvciBhbGxcbiAgICAvLyBwcmludGFibGUgY2hhcmFjdGVycyAobm9ybWFsaXplZCB0byBgVW5pZGVudGlmaWVkYCksIGlnbm9yZSBpdC5cbiAgICB2YXIga2V5ID0gbm9ybWFsaXplS2V5W25hdGl2ZUV2ZW50LmtleV0gfHwgbmF0aXZlRXZlbnQua2V5O1xuICAgIGlmIChrZXkgIT09ICdVbmlkZW50aWZpZWQnKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJyb3dzZXIgZG9lcyBub3QgaW1wbGVtZW50IGBrZXlgLCBwb2x5ZmlsbCBhcyBtdWNoIG9mIGl0IGFzIHdlIGNhbi5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICB2YXIgY2hhckNvZGUgPSBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KTtcblxuICAgIC8vIFRoZSBlbnRlci1rZXkgaXMgdGVjaG5pY2FsbHkgYm90aCBwcmludGFibGUgYW5kIG5vbi1wcmludGFibGUgYW5kIGNhblxuICAgIC8vIHRodXMgYmUgY2FwdHVyZWQgYnkgYGtleXByZXNzYCwgbm8gb3RoZXIgbm9uLXByaW50YWJsZSBrZXkgc2hvdWxkLlxuICAgIHJldHVybiBjaGFyQ29kZSA9PT0gMTMgPyAnRW50ZXInIDogU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyQ29kZSk7XG4gIH1cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBuYXRpdmVFdmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgLy8gV2hpbGUgdXNlciBrZXlib2FyZCBsYXlvdXQgZGV0ZXJtaW5lcyB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgZWFjaFxuICAgIC8vIGBrZXlDb2RlYCB2YWx1ZSwgYWxtb3N0IGFsbCBmdW5jdGlvbiBrZXlzIGhhdmUgYSB1bml2ZXJzYWwgdmFsdWUuXG4gICAgcmV0dXJuIHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8ICdVbmlkZW50aWZpZWQnO1xuICB9XG4gIHJldHVybiAnJztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRFdmVudEtleTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZ2V0RXZlbnRLZXkuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 138 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticDragEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = __webpack_require__(86);\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar DragEventInterface = {\n dataTransfer: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);\n\nmodule.exports = SyntheticDragEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljRHJhZ0V2ZW50LmpzPzE2YzUiXSwibmFtZXMiOlsiU3ludGhldGljTW91c2VFdmVudCIsInJlcXVpcmUiLCJEcmFnRXZlbnRJbnRlcmZhY2UiLCJkYXRhVHJhbnNmZXIiLCJTeW50aGV0aWNEcmFnRXZlbnQiLCJkaXNwYXRjaENvbmZpZyIsImRpc3BhdGNoTWFya2VyIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsImNhbGwiLCJhdWdtZW50Q2xhc3MiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsc0JBQXNCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBMUI7O0FBRUE7Ozs7QUFJQSxJQUFJQyxxQkFBcUI7QUFDdkJDLGdCQUFjO0FBRFMsQ0FBekI7O0FBSUE7Ozs7OztBQU1BLFNBQVNDLGtCQUFULENBQTRCQyxjQUE1QixFQUE0Q0MsY0FBNUMsRUFBNERDLFdBQTVELEVBQXlFQyxpQkFBekUsRUFBNEY7QUFDMUZSLHNCQUFvQlMsSUFBcEIsQ0FBeUIsSUFBekIsRUFBK0JKLGNBQS9CLEVBQStDQyxjQUEvQyxFQUErREMsV0FBL0QsRUFBNEVDLGlCQUE1RTtBQUNEOztBQUVEUixvQkFBb0JVLFlBQXBCLENBQWlDTixrQkFBakMsRUFBcURGLGtCQUFyRDs7QUFFQVMsT0FBT0MsT0FBUCxHQUFpQlIsa0JBQWpCIiwiZmlsZSI6IjEzOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBTeW50aGV0aWNEcmFnRXZlbnRcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgU3ludGhldGljTW91c2VFdmVudCA9IHJlcXVpcmUoJy4vU3ludGhldGljTW91c2VFdmVudCcpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgRHJhZ0V2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xudmFyIERyYWdFdmVudEludGVyZmFjZSA9IHtcbiAgZGF0YVRyYW5zZmVyOiBudWxsXG59O1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkaXNwYXRjaENvbmZpZyBDb25maWd1cmF0aW9uIHVzZWQgdG8gZGlzcGF0Y2ggdGhpcyBldmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwYXRjaE1hcmtlciBNYXJrZXIgaWRlbnRpZnlpbmcgdGhlIGV2ZW50IHRhcmdldC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEBleHRlbmRzIHtTeW50aGV0aWNVSUV2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNEcmFnRXZlbnQoZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgU3ludGhldGljTW91c2VFdmVudC5jYWxsKHRoaXMsIGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbn1cblxuU3ludGhldGljTW91c2VFdmVudC5hdWdtZW50Q2xhc3MoU3ludGhldGljRHJhZ0V2ZW50LCBEcmFnRXZlbnRJbnRlcmZhY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bnRoZXRpY0RyYWdFdmVudDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljRHJhZ0V2ZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 139 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticTouchEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticUIEvent = __webpack_require__(87);\n\nvar getEventModifierState = __webpack_require__(88);\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar TouchEventInterface = {\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: getEventModifierState\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticUIEvent}\n */\nfunction SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);\n\nmodule.exports = SyntheticTouchEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljVG91Y2hFdmVudC5qcz84NGYxIl0sIm5hbWVzIjpbIlN5bnRoZXRpY1VJRXZlbnQiLCJyZXF1aXJlIiwiZ2V0RXZlbnRNb2RpZmllclN0YXRlIiwiVG91Y2hFdmVudEludGVyZmFjZSIsInRvdWNoZXMiLCJ0YXJnZXRUb3VjaGVzIiwiY2hhbmdlZFRvdWNoZXMiLCJhbHRLZXkiLCJtZXRhS2V5IiwiY3RybEtleSIsInNoaWZ0S2V5IiwiZ2V0TW9kaWZpZXJTdGF0ZSIsIlN5bnRoZXRpY1RvdWNoRXZlbnQiLCJkaXNwYXRjaENvbmZpZyIsImRpc3BhdGNoTWFya2VyIiwibmF0aXZlRXZlbnQiLCJuYXRpdmVFdmVudFRhcmdldCIsImNhbGwiLCJhdWdtZW50Q2xhc3MiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsbUJBQW1CLG1CQUFBQyxDQUFRLEVBQVIsQ0FBdkI7O0FBRUEsSUFBSUMsd0JBQXdCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBNUI7O0FBRUE7Ozs7QUFJQSxJQUFJRSxzQkFBc0I7QUFDeEJDLFdBQVMsSUFEZTtBQUV4QkMsaUJBQWUsSUFGUztBQUd4QkMsa0JBQWdCLElBSFE7QUFJeEJDLFVBQVEsSUFKZ0I7QUFLeEJDLFdBQVMsSUFMZTtBQU14QkMsV0FBUyxJQU5lO0FBT3hCQyxZQUFVLElBUGM7QUFReEJDLG9CQUFrQlQ7QUFSTSxDQUExQjs7QUFXQTs7Ozs7O0FBTUEsU0FBU1UsbUJBQVQsQ0FBNkJDLGNBQTdCLEVBQTZDQyxjQUE3QyxFQUE2REMsV0FBN0QsRUFBMEVDLGlCQUExRSxFQUE2RjtBQUMzRmhCLG1CQUFpQmlCLElBQWpCLENBQXNCLElBQXRCLEVBQTRCSixjQUE1QixFQUE0Q0MsY0FBNUMsRUFBNERDLFdBQTVELEVBQXlFQyxpQkFBekU7QUFDRDs7QUFFRGhCLGlCQUFpQmtCLFlBQWpCLENBQThCTixtQkFBOUIsRUFBbURULG1CQUFuRDs7QUFFQWdCLE9BQU9DLE9BQVAsR0FBaUJSLG1CQUFqQiIsImZpbGUiOiIxMzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgU3ludGhldGljVG91Y2hFdmVudFxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNVSUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNVSUV2ZW50Jyk7XG5cbnZhciBnZXRFdmVudE1vZGlmaWVyU3RhdGUgPSByZXF1aXJlKCcuL2dldEV2ZW50TW9kaWZpZXJTdGF0ZScpO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgVG91Y2hFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi90b3VjaC1ldmVudHMvXG4gKi9cbnZhciBUb3VjaEV2ZW50SW50ZXJmYWNlID0ge1xuICB0b3VjaGVzOiBudWxsLFxuICB0YXJnZXRUb3VjaGVzOiBudWxsLFxuICBjaGFuZ2VkVG91Y2hlczogbnVsbCxcbiAgYWx0S2V5OiBudWxsLFxuICBtZXRhS2V5OiBudWxsLFxuICBjdHJsS2V5OiBudWxsLFxuICBzaGlmdEtleTogbnVsbCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlXG59O1xuXG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBkaXNwYXRjaENvbmZpZyBDb25maWd1cmF0aW9uIHVzZWQgdG8gZGlzcGF0Y2ggdGhpcyBldmVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkaXNwYXRjaE1hcmtlciBNYXJrZXIgaWRlbnRpZnlpbmcgdGhlIGV2ZW50IHRhcmdldC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudCBOYXRpdmUgYnJvd3NlciBldmVudC5cbiAqIEBleHRlbmRzIHtTeW50aGV0aWNVSUV2ZW50fVxuICovXG5mdW5jdGlvbiBTeW50aGV0aWNUb3VjaEV2ZW50KGRpc3BhdGNoQ29uZmlnLCBkaXNwYXRjaE1hcmtlciwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIFN5bnRoZXRpY1VJRXZlbnQuY2FsbCh0aGlzLCBkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG59XG5cblN5bnRoZXRpY1VJRXZlbnQuYXVnbWVudENsYXNzKFN5bnRoZXRpY1RvdWNoRXZlbnQsIFRvdWNoRXZlbnRJbnRlcmZhY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN5bnRoZXRpY1RvdWNoRXZlbnQ7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1N5bnRoZXRpY1RvdWNoRXZlbnQuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 140 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SyntheticWheelEvent\n * @typechecks static-only\n */\n\n'use strict';\n\nvar SyntheticMouseEvent = __webpack_require__(86);\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar WheelEventInterface = {\n deltaX: function deltaX(event) {\n return 'deltaX' in event ? event.deltaX :\n // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function deltaY(event) {\n return 'deltaY' in event ? event.deltaY :\n // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY :\n // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: null,\n\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: null\n};\n\n/**\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {string} dispatchMarker Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @extends {SyntheticMouseEvent}\n */\nfunction SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {\n SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);\n}\n\nSyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);\n\nmodule.exports = SyntheticWheelEvent;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU3ludGhldGljV2hlZWxFdmVudC5qcz84ZDVjIl0sIm5hbWVzIjpbIlN5bnRoZXRpY01vdXNlRXZlbnQiLCJyZXF1aXJlIiwiV2hlZWxFdmVudEludGVyZmFjZSIsImRlbHRhWCIsImV2ZW50Iiwid2hlZWxEZWx0YVgiLCJkZWx0YVkiLCJ3aGVlbERlbHRhWSIsIndoZWVsRGVsdGEiLCJkZWx0YVoiLCJkZWx0YU1vZGUiLCJTeW50aGV0aWNXaGVlbEV2ZW50IiwiZGlzcGF0Y2hDb25maWciLCJkaXNwYXRjaE1hcmtlciIsIm5hdGl2ZUV2ZW50IiwibmF0aXZlRXZlbnRUYXJnZXQiLCJjYWxsIiwiYXVnbWVudENsYXNzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLHNCQUFzQixtQkFBQUMsQ0FBUSxFQUFSLENBQTFCOztBQUVBOzs7O0FBSUEsSUFBSUMsc0JBQXNCO0FBQ3hCQyxVQUFRLGdCQUFVQyxLQUFWLEVBQWlCO0FBQ3ZCLFdBQU8sWUFBWUEsS0FBWixHQUFvQkEsTUFBTUQsTUFBMUI7QUFDUDtBQUNBLHFCQUFpQkMsS0FBakIsR0FBeUIsQ0FBQ0EsTUFBTUMsV0FBaEMsR0FBOEMsQ0FGOUM7QUFHRCxHQUx1QjtBQU14QkMsVUFBUSxnQkFBVUYsS0FBVixFQUFpQjtBQUN2QixXQUFPLFlBQVlBLEtBQVosR0FBb0JBLE1BQU1FLE1BQTFCO0FBQ1A7QUFDQSxxQkFBaUJGLEtBQWpCLEdBQXlCLENBQUNBLE1BQU1HLFdBQWhDO0FBQ0E7QUFDQSxvQkFBZ0JILEtBQWhCLEdBQXdCLENBQUNBLE1BQU1JLFVBQS9CLEdBQTRDLENBSjVDO0FBS0QsR0FadUI7QUFheEJDLFVBQVEsSUFiZ0I7O0FBZXhCO0FBQ0E7QUFDQTtBQUNBO0FBQ0FDLGFBQVc7QUFuQmEsQ0FBMUI7O0FBc0JBOzs7Ozs7QUFNQSxTQUFTQyxtQkFBVCxDQUE2QkMsY0FBN0IsRUFBNkNDLGNBQTdDLEVBQTZEQyxXQUE3RCxFQUEwRUMsaUJBQTFFLEVBQTZGO0FBQzNGZixzQkFBb0JnQixJQUFwQixDQUF5QixJQUF6QixFQUErQkosY0FBL0IsRUFBK0NDLGNBQS9DLEVBQStEQyxXQUEvRCxFQUE0RUMsaUJBQTVFO0FBQ0Q7O0FBRURmLG9CQUFvQmlCLFlBQXBCLENBQWlDTixtQkFBakMsRUFBc0RULG1CQUF0RDs7QUFFQWdCLE9BQU9DLE9BQVAsR0FBaUJSLG1CQUFqQiIsImZpbGUiOiIxNDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgU3ludGhldGljV2hlZWxFdmVudFxuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBTeW50aGV0aWNNb3VzZUV2ZW50ID0gcmVxdWlyZSgnLi9TeW50aGV0aWNNb3VzZUV2ZW50Jyk7XG5cbi8qKlxuICogQGludGVyZmFjZSBXaGVlbEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xudmFyIFdoZWVsRXZlbnRJbnRlcmZhY2UgPSB7XG4gIGRlbHRhWDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdkZWx0YVgnIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFYIDpcbiAgICAvLyBGYWxsYmFjayB0byBgd2hlZWxEZWx0YVhgIGZvciBXZWJraXQgYW5kIG5vcm1hbGl6ZSAocmlnaHQgaXMgcG9zaXRpdmUpLlxuICAgICd3aGVlbERlbHRhWCcgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YVggOiAwO1xuICB9LFxuICBkZWx0YVk6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAnZGVsdGFZJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWSA6XG4gICAgLy8gRmFsbGJhY2sgdG8gYHdoZWVsRGVsdGFZYCBmb3IgV2Via2l0IGFuZCBub3JtYWxpemUgKGRvd24gaXMgcG9zaXRpdmUpLlxuICAgICd3aGVlbERlbHRhWScgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YVkgOlxuICAgIC8vIEZhbGxiYWNrIHRvIGB3aGVlbERlbHRhYCBmb3IgSUU8OSBhbmQgbm9ybWFsaXplIChkb3duIGlzIHBvc2l0aXZlKS5cbiAgICAnd2hlZWxEZWx0YScgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YSA6IDA7XG4gIH0sXG4gIGRlbHRhWjogbnVsbCxcblxuICAvLyBCcm93c2VycyB3aXRob3V0IFwiZGVsdGFNb2RlXCIgaXMgcmVwb3J0aW5nIGluIHJhdyB3aGVlbCBkZWx0YSB3aGVyZSBvbmVcbiAgLy8gbm90Y2ggb24gdGhlIHNjcm9sbCBpcyBhbHdheXMgKy8tIDEyMCwgcm91Z2hseSBlcXVpdmFsZW50IHRvIHBpeGVscy5cbiAgLy8gQSBnb29kIGFwcHJveGltYXRpb24gb2YgRE9NX0RFTFRBX0xJTkUgKDEpIGlzIDUlIG9mIHZpZXdwb3J0IHNpemUgb3JcbiAgLy8gfjQwIHBpeGVscywgZm9yIERPTV9ERUxUQV9TQ1JFRU4gKDIpIGl0IGlzIDg3LjUlIG9mIHZpZXdwb3J0IHNpemUuXG4gIGRlbHRhTW9kZTogbnVsbFxufTtcblxuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gZGlzcGF0Y2hDb25maWcgQ29uZmlndXJhdGlvbiB1c2VkIHRvIGRpc3BhdGNoIHRoaXMgZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlzcGF0Y2hNYXJrZXIgTWFya2VyIGlkZW50aWZ5aW5nIHRoZSBldmVudCB0YXJnZXQuXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAZXh0ZW5kcyB7U3ludGhldGljTW91c2VFdmVudH1cbiAqL1xuZnVuY3Rpb24gU3ludGhldGljV2hlZWxFdmVudChkaXNwYXRjaENvbmZpZywgZGlzcGF0Y2hNYXJrZXIsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICBTeW50aGV0aWNNb3VzZUV2ZW50LmNhbGwodGhpcywgZGlzcGF0Y2hDb25maWcsIGRpc3BhdGNoTWFya2VyLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG5TeW50aGV0aWNNb3VzZUV2ZW50LmF1Z21lbnRDbGFzcyhTeW50aGV0aWNXaGVlbEV2ZW50LCBXaGVlbEV2ZW50SW50ZXJmYWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBTeW50aGV0aWNXaGVlbEV2ZW50O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9TeW50aGV0aWNXaGVlbEV2ZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 141 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule SVGDOMPropertyConfig\n */\n\n'use strict';\n\nvar DOMProperty = __webpack_require__(23);\n\nvar MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;\n\nvar NS = {\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace'\n};\n\nvar SVGDOMPropertyConfig = {\n Properties: {\n clipPath: MUST_USE_ATTRIBUTE,\n cx: MUST_USE_ATTRIBUTE,\n cy: MUST_USE_ATTRIBUTE,\n d: MUST_USE_ATTRIBUTE,\n dx: MUST_USE_ATTRIBUTE,\n dy: MUST_USE_ATTRIBUTE,\n fill: MUST_USE_ATTRIBUTE,\n fillOpacity: MUST_USE_ATTRIBUTE,\n fontFamily: MUST_USE_ATTRIBUTE,\n fontSize: MUST_USE_ATTRIBUTE,\n fx: MUST_USE_ATTRIBUTE,\n fy: MUST_USE_ATTRIBUTE,\n gradientTransform: MUST_USE_ATTRIBUTE,\n gradientUnits: MUST_USE_ATTRIBUTE,\n markerEnd: MUST_USE_ATTRIBUTE,\n markerMid: MUST_USE_ATTRIBUTE,\n markerStart: MUST_USE_ATTRIBUTE,\n offset: MUST_USE_ATTRIBUTE,\n opacity: MUST_USE_ATTRIBUTE,\n patternContentUnits: MUST_USE_ATTRIBUTE,\n patternUnits: MUST_USE_ATTRIBUTE,\n points: MUST_USE_ATTRIBUTE,\n preserveAspectRatio: MUST_USE_ATTRIBUTE,\n r: MUST_USE_ATTRIBUTE,\n rx: MUST_USE_ATTRIBUTE,\n ry: MUST_USE_ATTRIBUTE,\n spreadMethod: MUST_USE_ATTRIBUTE,\n stopColor: MUST_USE_ATTRIBUTE,\n stopOpacity: MUST_USE_ATTRIBUTE,\n stroke: MUST_USE_ATTRIBUTE,\n strokeDasharray: MUST_USE_ATTRIBUTE,\n strokeLinecap: MUST_USE_ATTRIBUTE,\n strokeOpacity: MUST_USE_ATTRIBUTE,\n strokeWidth: MUST_USE_ATTRIBUTE,\n textAnchor: MUST_USE_ATTRIBUTE,\n transform: MUST_USE_ATTRIBUTE,\n version: MUST_USE_ATTRIBUTE,\n viewBox: MUST_USE_ATTRIBUTE,\n x1: MUST_USE_ATTRIBUTE,\n x2: MUST_USE_ATTRIBUTE,\n x: MUST_USE_ATTRIBUTE,\n xlinkActuate: MUST_USE_ATTRIBUTE,\n xlinkArcrole: MUST_USE_ATTRIBUTE,\n xlinkHref: MUST_USE_ATTRIBUTE,\n xlinkRole: MUST_USE_ATTRIBUTE,\n xlinkShow: MUST_USE_ATTRIBUTE,\n xlinkTitle: MUST_USE_ATTRIBUTE,\n xlinkType: MUST_USE_ATTRIBUTE,\n xmlBase: MUST_USE_ATTRIBUTE,\n xmlLang: MUST_USE_ATTRIBUTE,\n xmlSpace: MUST_USE_ATTRIBUTE,\n y1: MUST_USE_ATTRIBUTE,\n y2: MUST_USE_ATTRIBUTE,\n y: MUST_USE_ATTRIBUTE\n },\n DOMAttributeNamespaces: {\n xlinkActuate: NS.xlink,\n xlinkArcrole: NS.xlink,\n xlinkHref: NS.xlink,\n xlinkRole: NS.xlink,\n xlinkShow: NS.xlink,\n xlinkTitle: NS.xlink,\n xlinkType: NS.xlink,\n xmlBase: NS.xml,\n xmlLang: NS.xml,\n xmlSpace: NS.xml\n },\n DOMAttributeNames: {\n clipPath: 'clip-path',\n fillOpacity: 'fill-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n gradientTransform: 'gradientTransform',\n gradientUnits: 'gradientUnits',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n patternContentUnits: 'patternContentUnits',\n patternUnits: 'patternUnits',\n preserveAspectRatio: 'preserveAspectRatio',\n spreadMethod: 'spreadMethod',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strokeDasharray: 'stroke-dasharray',\n strokeLinecap: 'stroke-linecap',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n textAnchor: 'text-anchor',\n viewBox: 'viewBox',\n xlinkActuate: 'xlink:actuate',\n xlinkArcrole: 'xlink:arcrole',\n xlinkHref: 'xlink:href',\n xlinkRole: 'xlink:role',\n xlinkShow: 'xlink:show',\n xlinkTitle: 'xlink:title',\n xlinkType: 'xlink:type',\n xmlBase: 'xml:base',\n xmlLang: 'xml:lang',\n xmlSpace: 'xml:space'\n }\n};\n\nmodule.exports = SVGDOMPropertyConfig;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU1ZHRE9NUHJvcGVydHlDb25maWcuanM/MDk2ZCJdLCJuYW1lcyI6WyJET01Qcm9wZXJ0eSIsInJlcXVpcmUiLCJNVVNUX1VTRV9BVFRSSUJVVEUiLCJpbmplY3Rpb24iLCJOUyIsInhsaW5rIiwieG1sIiwiU1ZHRE9NUHJvcGVydHlDb25maWciLCJQcm9wZXJ0aWVzIiwiY2xpcFBhdGgiLCJjeCIsImN5IiwiZCIsImR4IiwiZHkiLCJmaWxsIiwiZmlsbE9wYWNpdHkiLCJmb250RmFtaWx5IiwiZm9udFNpemUiLCJmeCIsImZ5IiwiZ3JhZGllbnRUcmFuc2Zvcm0iLCJncmFkaWVudFVuaXRzIiwibWFya2VyRW5kIiwibWFya2VyTWlkIiwibWFya2VyU3RhcnQiLCJvZmZzZXQiLCJvcGFjaXR5IiwicGF0dGVybkNvbnRlbnRVbml0cyIsInBhdHRlcm5Vbml0cyIsInBvaW50cyIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJyIiwicngiLCJyeSIsInNwcmVhZE1ldGhvZCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5Iiwic3Ryb2tlIiwic3Ryb2tlRGFzaGFycmF5Iiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZU9wYWNpdHkiLCJzdHJva2VXaWR0aCIsInRleHRBbmNob3IiLCJ0cmFuc2Zvcm0iLCJ2ZXJzaW9uIiwidmlld0JveCIsIngxIiwieDIiLCJ4IiwieGxpbmtBY3R1YXRlIiwieGxpbmtBcmNyb2xlIiwieGxpbmtIcmVmIiwieGxpbmtSb2xlIiwieGxpbmtTaG93IiwieGxpbmtUaXRsZSIsInhsaW5rVHlwZSIsInhtbEJhc2UiLCJ4bWxMYW5nIiwieG1sU3BhY2UiLCJ5MSIsInkyIiwieSIsIkRPTUF0dHJpYnV0ZU5hbWVzcGFjZXMiLCJET01BdHRyaWJ1dGVOYW1lcyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJB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QVNqQkMsaUJBQWEsY0FUSTtBQVVqQkcseUJBQXFCLHFCQVZKO0FBV2pCQyxrQkFBYyxjQVhHO0FBWWpCRSx5QkFBcUIscUJBWko7QUFhakJJLGtCQUFjLGNBYkc7QUFjakJDLGVBQVcsWUFkTTtBQWVqQkMsaUJBQWEsY0FmSTtBQWdCakJFLHFCQUFpQixrQkFoQkE7QUFpQmpCQyxtQkFBZSxnQkFqQkU7QUFrQmpCQyxtQkFBZSxnQkFsQkU7QUFtQmpCQyxpQkFBYSxjQW5CSTtBQW9CakJDLGdCQUFZLGFBcEJLO0FBcUJqQkcsYUFBUyxTQXJCUTtBQXNCakJJLGtCQUFjLGVBdEJHO0FBdUJqQkMsa0JBQWMsZUF2Qkc7QUF3QmpCQyxlQUFXLFlBeEJNO0FBeUJqQkMsZUFBVyxZQXpCTTtBQTBCakJDLGVBQVcsWUExQk07QUEyQmpCQyxnQkFBWSxhQTNCSztBQTRCakJDLGVBQVcsWUE1Qk07QUE2QmpCQyxhQUFTLFVBN0JRO0FBOEJqQkMsYUFBUyxVQTlCUTtBQStCakJDLGNBQVU7QUEvQk87QUFyRU0sQ0FBM0I7O0FBd0dBTSxPQUFPQyxPQUFQLEdBQWlCM0Qsb0JBQWpCIiwiZmlsZSI6IjE0MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBTVkdET01Qcm9wZXJ0eUNvbmZpZ1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIERPTVByb3BlcnR5ID0gcmVxdWlyZSgnLi9ET01Qcm9wZXJ0eScpO1xuXG52YXIgTVVTVF9VU0VfQVRUUklCVVRFID0gRE9NUHJvcGVydHkuaW5qZWN0aW9uLk1VU1RfVVNFX0FUVFJJQlVURTtcblxudmFyIE5TID0ge1xuICB4bGluazogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLFxuICB4bWw6ICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnXG59O1xuXG52YXIgU1ZHRE9NUHJvcGVydHlDb25maWcgPSB7XG4gIFByb3BlcnRpZXM6IHtcbiAgICBjbGlwUGF0aDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGN4OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgY3k6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBkOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgZHg6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBkeTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGZpbGw6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBmaWxsT3BhY2l0eTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGZvbnRGYW1pbHk6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBmb250U2l6ZTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGZ4OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgZnk6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBncmFkaWVudFRyYW5zZm9ybTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIGdyYWRpZW50VW5pdHM6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBtYXJrZXJFbmQ6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBtYXJrZXJNaWQ6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBtYXJrZXJTdGFydDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIG9mZnNldDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIG9wYWNpdHk6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBwYXR0ZXJuQ29udGVudFVuaXRzOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgcGF0dGVyblVuaXRzOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgcG9pbnRzOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgcHJlc2VydmVBc3BlY3RSYXRpbzogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHI6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICByeDogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHJ5OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgc3ByZWFkTWV0aG9kOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgc3RvcENvbG9yOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgc3RvcE9wYWNpdHk6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBzdHJva2U6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBzdHJva2VEYXNoYXJyYXk6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICBzdHJva2VMaW5lY2FwOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgc3Ryb2tlT3BhY2l0eTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHN0cm9rZVdpZHRoOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgdGV4dEFuY2hvcjogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHRyYW5zZm9ybTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHZlcnNpb246IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB2aWV3Qm94OiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgeDE6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4MjogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHg6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bGlua0FjdHVhdGU6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bGlua0FyY3JvbGU6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bGlua0hyZWY6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bGlua1JvbGU6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bGlua1Nob3c6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bGlua1RpdGxlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgeGxpbmtUeXBlOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgeG1sQmFzZTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHhtbExhbmc6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB4bWxTcGFjZTogTVVTVF9VU0VfQVRUUklCVVRFLFxuICAgIHkxOiBNVVNUX1VTRV9BVFRSSUJVVEUsXG4gICAgeTI6IE1VU1RfVVNFX0FUVFJJQlVURSxcbiAgICB5OiBNVVNUX1VTRV9BVFRSSUJVVEVcbiAgfSxcbiAgRE9NQXR0cmlidXRlTmFtZXNwYWNlczoge1xuICAgIHhsaW5rQWN0dWF0ZTogTlMueGxpbmssXG4gICAgeGxpbmtBcmNyb2xlOiBOUy54bGluayxcbiAgICB4bGlua0hyZWY6IE5TLnhsaW5rLFxuICAgIHhsaW5rUm9sZTogTlMueGxpbmssXG4gICAgeGxpbmtTaG93OiBOUy54bGluayxcbiAgICB4bGlua1RpdGxlOiBOUy54bGluayxcbiAgICB4bGlua1R5cGU6IE5TLnhsaW5rLFxuICAgIHhtbEJhc2U6IE5TLnhtbCxcbiAgICB4bWxMYW5nOiBOUy54bWwsXG4gICAgeG1sU3BhY2U6IE5TLnhtbFxuICB9LFxuICBET01BdHRyaWJ1dGVOYW1lczoge1xuICAgIGNsaXBQYXRoOiAnY2xpcC1wYXRoJyxcbiAgICBmaWxsT3BhY2l0eTogJ2ZpbGwtb3BhY2l0eScsXG4gICAgZm9udEZhbWlseTogJ2ZvbnQtZmFtaWx5JyxcbiAgICBmb250U2l6ZTogJ2ZvbnQtc2l6ZScsXG4gICAgZ3JhZGllbnRUcmFuc2Zvcm06ICdncmFkaWVudFRyYW5zZm9ybScsXG4gICAgZ3JhZGllbnRVbml0czogJ2dyYWRpZW50VW5pdHMnLFxuICAgIG1hcmtlckVuZDogJ21hcmtlci1lbmQnLFxuICAgIG1hcmtlck1pZDogJ21hcmtlci1taWQnLFxuICAgIG1hcmtlclN0YXJ0OiAnbWFya2VyLXN0YXJ0JyxcbiAgICBwYXR0ZXJuQ29udGVudFVuaXRzOiAncGF0dGVybkNvbnRlbnRVbml0cycsXG4gICAgcGF0dGVyblVuaXRzOiAncGF0dGVyblVuaXRzJyxcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiAncHJlc2VydmVBc3BlY3RSYXRpbycsXG4gICAgc3ByZWFkTWV0aG9kOiAnc3ByZWFkTWV0aG9kJyxcbiAgICBzdG9wQ29sb3I6ICdzdG9wLWNvbG9yJyxcbiAgICBzdG9wT3BhY2l0eTogJ3N0b3Atb3BhY2l0eScsXG4gICAgc3Ryb2tlRGFzaGFycmF5OiAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICAgc3Ryb2tlTGluZWNhcDogJ3N0cm9rZS1saW5lY2FwJyxcbiAgICBzdHJva2VPcGFjaXR5OiAnc3Ryb2tlLW9wYWNpdHknLFxuICAgIHN0cm9rZVdpZHRoOiAnc3Ryb2tlLXdpZHRoJyxcbiAgICB0ZXh0QW5jaG9yOiAndGV4dC1hbmNob3InLFxuICAgIHZpZXdCb3g6ICd2aWV3Qm94JyxcbiAgICB4bGlua0FjdHVhdGU6ICd4bGluazphY3R1YXRlJyxcbiAgICB4bGlua0FyY3JvbGU6ICd4bGluazphcmNyb2xlJyxcbiAgICB4bGlua0hyZWY6ICd4bGluazpocmVmJyxcbiAgICB4bGlua1JvbGU6ICd4bGluazpyb2xlJyxcbiAgICB4bGlua1Nob3c6ICd4bGluazpzaG93JyxcbiAgICB4bGlua1RpdGxlOiAneGxpbms6dGl0bGUnLFxuICAgIHhsaW5rVHlwZTogJ3hsaW5rOnR5cGUnLFxuICAgIHhtbEJhc2U6ICd4bWw6YmFzZScsXG4gICAgeG1sTGFuZzogJ3htbDpsYW5nJyxcbiAgICB4bWxTcGFjZTogJ3htbDpzcGFjZSdcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTVkdET01Qcm9wZXJ0eUNvbmZpZztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvU1ZHRE9NUHJvcGVydHlDb25maWcuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 142 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerf\n * @typechecks static-only\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar DOMProperty = __webpack_require__(23);\nvar ReactDefaultPerfAnalysis = __webpack_require__(143);\nvar ReactMount = __webpack_require__(28);\nvar ReactPerf = __webpack_require__(18);\n\nvar performanceNow = __webpack_require__(144);\n\nfunction roundFloat(val) {\n return Math.floor(val * 100) / 100;\n}\n\nfunction addValue(obj, key, val) {\n obj[key] = (obj[key] || 0) + val;\n}\n\nvar ReactDefaultPerf = {\n _allMeasurements: [], // last item in the list is the current one\n _mountStack: [0],\n _injected: false,\n\n start: function start() {\n if (!ReactDefaultPerf._injected) {\n ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure);\n }\n\n ReactDefaultPerf._allMeasurements.length = 0;\n ReactPerf.enableMeasure = true;\n },\n\n stop: function stop() {\n ReactPerf.enableMeasure = false;\n },\n\n getLastMeasurements: function getLastMeasurements() {\n return ReactDefaultPerf._allMeasurements;\n },\n\n printExclusive: function printExclusive(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements);\n console.table(summary.map(function (item) {\n return {\n 'Component class name': item.componentName,\n 'Total inclusive time (ms)': roundFloat(item.inclusive),\n 'Exclusive mount time (ms)': roundFloat(item.exclusive),\n 'Exclusive render time (ms)': roundFloat(item.render),\n 'Mount time per instance (ms)': roundFloat(item.exclusive / item.count),\n 'Render time per instance (ms)': roundFloat(item.render / item.count),\n 'Instances': item.count\n };\n }));\n // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct\n // number.\n },\n\n printInclusive: function printInclusive(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements);\n console.table(summary.map(function (item) {\n return {\n 'Owner > component': item.componentName,\n 'Inclusive time (ms)': roundFloat(item.time),\n 'Instances': item.count\n };\n }));\n console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n },\n\n getMeasurementsSummaryMap: function getMeasurementsSummaryMap(measurements) {\n var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements, true);\n return summary.map(function (item) {\n return {\n 'Owner > component': item.componentName,\n 'Wasted time (ms)': item.time,\n 'Instances': item.count\n };\n });\n },\n\n printWasted: function printWasted(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));\n console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n },\n\n printDOM: function printDOM(measurements) {\n measurements = measurements || ReactDefaultPerf._allMeasurements;\n var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);\n console.table(summary.map(function (item) {\n var result = {};\n result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id;\n result.type = item.type;\n result.args = JSON.stringify(item.args);\n return result;\n }));\n console.log('Total time:', ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms');\n },\n\n _recordWrite: function _recordWrite(id, fnName, totalTime, args) {\n // TODO: totalTime isn't that useful since it doesn't count paints/reflows\n var writes = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].writes;\n writes[id] = writes[id] || [];\n writes[id].push({\n type: fnName,\n time: totalTime,\n args: args\n });\n },\n\n measure: function measure(moduleName, fnName, func) {\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var totalTime;\n var rv;\n var start;\n\n if (fnName === '_renderNewRootComponent' || fnName === 'flushBatchedUpdates') {\n // A \"measurement\" is a set of metrics recorded for each flush. We want\n // to group the metrics for a given flush together so we can look at the\n // components that rendered and the DOM operations that actually\n // happened to determine the amount of \"wasted work\" performed.\n ReactDefaultPerf._allMeasurements.push({\n exclusive: {},\n inclusive: {},\n render: {},\n counts: {},\n writes: {},\n displayNames: {},\n totalTime: 0,\n created: {}\n });\n start = performanceNow();\n rv = func.apply(this, args);\n ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1].totalTime = performanceNow() - start;\n return rv;\n } else if (fnName === '_mountImageIntoNode' || moduleName === 'ReactBrowserEventEmitter' || moduleName === 'ReactDOMIDOperations' || moduleName === 'CSSPropertyOperations' || moduleName === 'DOMChildrenOperations' || moduleName === 'DOMPropertyOperations') {\n start = performanceNow();\n rv = func.apply(this, args);\n totalTime = performanceNow() - start;\n\n if (fnName === '_mountImageIntoNode') {\n var mountID = ReactMount.getID(args[1]);\n ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]);\n } else if (fnName === 'dangerouslyProcessChildrenUpdates') {\n // special format\n args[0].forEach(function (update) {\n var writeArgs = {};\n if (update.fromIndex !== null) {\n writeArgs.fromIndex = update.fromIndex;\n }\n if (update.toIndex !== null) {\n writeArgs.toIndex = update.toIndex;\n }\n if (update.textContent !== null) {\n writeArgs.textContent = update.textContent;\n }\n if (update.markupIndex !== null) {\n writeArgs.markup = args[1][update.markupIndex];\n }\n ReactDefaultPerf._recordWrite(update.parentID, update.type, totalTime, writeArgs);\n });\n } else {\n // basic format\n var id = args[0];\n if ((typeof id === 'undefined' ? 'undefined' : _typeof(id)) === 'object') {\n id = ReactMount.getID(args[0]);\n }\n ReactDefaultPerf._recordWrite(id, fnName, totalTime, Array.prototype.slice.call(args, 1));\n }\n return rv;\n } else if (moduleName === 'ReactCompositeComponent' && (fnName === 'mountComponent' || fnName === 'updateComponent' || // TODO: receiveComponent()?\n fnName === '_renderValidatedComponent')) {\n\n if (this._currentElement.type === ReactMount.TopLevelWrapper) {\n return func.apply(this, args);\n }\n\n var rootNodeID = fnName === 'mountComponent' ? args[0] : this._rootNodeID;\n var isRender = fnName === '_renderValidatedComponent';\n var isMount = fnName === 'mountComponent';\n\n var mountStack = ReactDefaultPerf._mountStack;\n var entry = ReactDefaultPerf._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1];\n\n if (isRender) {\n addValue(entry.counts, rootNodeID, 1);\n } else if (isMount) {\n entry.created[rootNodeID] = true;\n mountStack.push(0);\n }\n\n start = performanceNow();\n rv = func.apply(this, args);\n totalTime = performanceNow() - start;\n\n if (isRender) {\n addValue(entry.render, rootNodeID, totalTime);\n } else if (isMount) {\n var subMountTime = mountStack.pop();\n mountStack[mountStack.length - 1] += totalTime;\n addValue(entry.exclusive, rootNodeID, totalTime - subMountTime);\n addValue(entry.inclusive, rootNodeID, totalTime);\n } else {\n addValue(entry.inclusive, rootNodeID, totalTime);\n }\n\n entry.displayNames[rootNodeID] = {\n current: this.getName(),\n owner: this._currentElement._owner ? this._currentElement._owner.getName() : '<root>'\n };\n\n return rv;\n } else {\n return func.apply(this, args);\n }\n };\n }\n};\n\nmodule.exports = ReactDefaultPerf;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3REZWZhdWx0UGVyZi5qcz80NGY4Il0sIm5hbWVzIjpbIkRPTVByb3BlcnR5IiwicmVxdWlyZSIsIlJlYWN0RGVmYXVsdFBlcmZBbmFseXNpcyIsIlJlYWN0TW91bnQiLCJSZWFjdFBlcmYiLCJwZXJmb3JtYW5jZU5vdyIsInJvdW5kRmxvYXQiLCJ2YWwiLCJNYXRoIiwiZmxvb3IiLCJhZGRWYWx1ZSIsIm9iaiIsImtleSIsIlJlYWN0RGVmYXVsdFBlcmYiLCJfYWxsTWVhc3VyZW1lbnRzIiwiX21vdW50U3RhY2siLCJfaW5qZWN0ZWQiLCJzdGFydCIsImluamVjdGlvbiIsImluamVjdE1lYXN1cmUiLCJtZWFzdXJlIiwibGVuZ3RoIiwiZW5hYmxlTWVhc3VyZSIsInN0b3AiLCJnZXRMYXN0TWVhc3VyZW1lbnRzIiwicHJpbnRFeGNsdXNpdmUiLCJtZWFzdXJlbWVudHMiLCJzdW1tYXJ5IiwiZ2V0RXhjbHVzaXZlU3VtbWFyeSIsImNvbnNvbGUiLCJ0YWJsZSIsIm1hcCIsIml0ZW0iLCJjb21wb25lbnROYW1lIiwiaW5jbHVzaXZlIiwiZXhjbHVzaXZlIiwicmVuZGVyIiwiY291bnQiLCJwcmludEluY2x1c2l2ZSIsImdldEluY2x1c2l2ZVN1bW1hcnkiLCJ0aW1lIiwibG9nIiwiZ2V0VG90YWxUaW1lIiwidG9GaXhlZCIsImdldE1lYXN1cmVtZW50c1N1bW1hcnlNYXAiLCJwcmludFdhc3RlZCIsInByaW50RE9NIiwiZ2V0RE9NU3VtbWFyeSIsInJlc3VsdCIsIklEX0FUVFJJQlVURV9OQU1FIiwiaWQiLCJ0eXBlIiwiYXJncyIsIkpTT04iLCJzdHJpbmdpZnkiLCJfcmVjb3JkV3JpdGUiLCJmbk5hbWUiLCJ0b3RhbFRpbWUiLCJ3cml0ZXMiLCJwdXNoIiwibW9kdWxlTmFtZSIsImZ1bmMiLCJfbGVuIiwiYXJndW1lbnRzIiwiQXJyYXkiLCJfa2V5IiwicnYiLCJjb3VudHMiLCJkaXNwbGF5TmFtZXMiLCJjcmVhdGVkIiwiYXBwbHkiLCJtb3VudElEIiwiZ2V0SUQiLCJmb3JFYWNoIiwidXBkYXRlIiwid3JpdGVBcmdzIiwiZnJvbUluZGV4IiwidG9JbmRleCIsInRleHRDb250ZW50IiwibWFya3VwSW5kZXgiLCJtYXJrdXAiLCJwYXJlbnRJRCIsInByb3RvdHlwZSIsInNsaWNlIiwiY2FsbCIsIl9jdXJyZW50RWxlbWVudCIsIlRvcExldmVsV3JhcHBlciIsInJvb3ROb2RlSUQiLCJfcm9vdE5vZGVJRCIsImlzUmVuZGVyIiwiaXNNb3VudCIsIm1vdW50U3RhY2siLCJlbnRyeSIsInN1Yk1vdW50VGltZSIsInBvcCIsImN1cnJlbnQiLCJnZXROYW1lIiwib3duZXIiLCJfb3duZXIiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7Ozs7QUFFQSxJQUFJQSxjQUFjLG1CQUFBQyxDQUFRLEVBQVIsQ0FBbEI7QUFDQSxJQUFJQywyQkFBMkIsbUJBQUFELENBQVEsR0FBUixDQUEvQjtBQUNBLElBQUlFLGFBQWEsbUJBQUFGLENBQVEsRUFBUixDQUFqQjtBQUNBLElBQUlHLFlBQVksbUJBQUFILENBQVEsRUFBUixDQUFoQjs7QUFFQSxJQUFJSSxpQkFBaUIsbUJBQUFKLENBQVEsR0FBUixDQUFyQjs7QUFFQSxTQUFTSyxVQUFULENBQW9CQyxHQUFwQixFQUF5QjtBQUN2QixTQUFPQyxLQUFLQyxLQUFMLENBQVdGLE1BQU0sR0FBakIsSUFBd0IsR0FBL0I7QUFDRDs7QUFFRCxTQUFTRyxRQUFULENBQWtCQyxHQUFsQixFQUF1QkMsR0FBdkIsRUFBNEJMLEdBQTVCLEVBQWlDO0FBQy9CSSxNQUFJQyxHQUFKLElBQVcsQ0FBQ0QsSUFBSUMsR0FBSixLQUFZLENBQWIsSUFBa0JMLEdBQTdCO0FBQ0Q7O0FBRUQsSUFBSU0sbUJBQW1CO0FBQ3JCQyxvQkFBa0IsRUFERyxFQUNDO0FBQ3RC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QUFYLEVBQWlCbEIsSUFBakIsQ0FBTDtBQUNBSyxvQkFBWXBELG1CQUFtQlksS0FBL0I7O0FBRUEsWUFBSXdFLFFBQUosRUFBYztBQUNaL0UsbUJBQVNrRixNQUFNeEQsTUFBZixFQUF1Qm1ELFVBQXZCLEVBQW1DOUIsU0FBbkM7QUFDRCxTQUZELE1BRU8sSUFBSWlDLE9BQUosRUFBYTtBQUNsQixjQUFJRyxlQUFlRixXQUFXRyxHQUFYLEVBQW5CO0FBQ0FILHFCQUFXQSxXQUFXdEUsTUFBWCxHQUFvQixDQUEvQixLQUFxQ29DLFNBQXJDO0FBQ0EvQyxtQkFBU2tGLE1BQU16RCxTQUFmLEVBQTBCb0QsVUFBMUIsRUFBc0M5QixZQUFZb0MsWUFBbEQ7QUFDQW5GLG1CQUFTa0YsTUFBTTFELFNBQWYsRUFBMEJxRCxVQUExQixFQUFzQzlCLFNBQXRDO0FBQ0QsU0FMTSxNQUtBO0FBQ0wvQyxtQkFBU2tGLE1BQU0xRCxTQUFmLEVBQTBCcUQsVUFBMUIsRUFBc0M5QixTQUF0QztBQUNEOztBQUVEbUMsY0FBTXhCLFlBQU4sQ0FBbUJtQixVQUFuQixJQUFpQztBQUMvQlEsbUJBQVMsS0FBS0MsT0FBTCxFQURzQjtBQUUvQkMsaUJBQU8sS0FBS1osZUFBTCxDQUFxQmEsTUFBckIsR0FBOEIsS0FBS2IsZUFBTCxDQUFxQmEsTUFBckIsQ0FBNEJGLE9BQTVCLEVBQTlCLEdBQXNFO0FBRjlDLFNBQWpDOztBQUtBLGVBQU85QixFQUFQO0FBQ0QsT0ExQ00sTUEwQ0E7QUFDTCxlQUFPTCxLQUFLUyxLQUFMLENBQVcsSUFBWCxFQUFpQmxCLElBQWpCLENBQVA7QUFDRDtBQUNGLEtBNUdEO0FBNkdEO0FBNU1vQixDQUF2Qjs7QUErTUErQyxPQUFPQyxPQUFQLEdBQWlCdkYsZ0JBQWpCIiwiZmlsZSI6IjE0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdERlZmF1bHRQZXJmXG4gKiBAdHlwZWNoZWNrcyBzdGF0aWMtb25seVxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIERPTVByb3BlcnR5ID0gcmVxdWlyZSgnLi9ET01Qcm9wZXJ0eScpO1xudmFyIFJlYWN0RGVmYXVsdFBlcmZBbmFseXNpcyA9IHJlcXVpcmUoJy4vUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzJyk7XG52YXIgUmVhY3RNb3VudCA9IHJlcXVpcmUoJy4vUmVhY3RNb3VudCcpO1xudmFyIFJlYWN0UGVyZiA9IHJlcXVpcmUoJy4vUmVhY3RQZXJmJyk7XG5cbnZhciBwZXJmb3JtYW5jZU5vdyA9IHJlcXVpcmUoJ2ZianMvbGliL3BlcmZvcm1hbmNlTm93Jyk7XG5cbmZ1bmN0aW9uIHJvdW5kRmxvYXQodmFsKSB7XG4gIHJldHVybiBNYXRoLmZsb29yKHZhbCAqIDEwMCkgLyAxMDA7XG59XG5cbmZ1bmN0aW9uIGFkZFZhbHVlKG9iaiwga2V5LCB2YWwpIHtcbiAgb2JqW2tleV0gPSAob2JqW2tleV0gfHwgMCkgKyB2YWw7XG59XG5cbnZhciBSZWFjdERlZmF1bHRQZXJmID0ge1xuICBfYWxsTWVhc3VyZW1lbnRzOiBbXSwgLy8gbGFzdCBpdGVtIGluIHRoZSBsaXN0IGlzIHRoZSBjdXJyZW50IG9uZVxuICBfbW91bnRTdGFjazogWzBdLFxuICBfaW5qZWN0ZWQ6IGZhbHNlLFxuXG4gIHN0YXJ0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFSZWFjdERlZmF1bHRQZXJmLl9pbmplY3RlZCkge1xuICAgICAgUmVhY3RQZXJmLmluamVjdGlvbi5pbmplY3RNZWFzdXJlKFJlYWN0RGVmYXVsdFBlcmYubWVhc3VyZSk7XG4gICAgfVxuXG4gICAgUmVhY3REZWZhdWx0UGVyZi5fYWxsTWVhc3VyZW1lbnRzLmxlbmd0aCA9IDA7XG4gICAgUmVhY3RQZXJmLmVuYWJsZU1lYXN1cmUgPSB0cnVlO1xuICB9LFxuXG4gIHN0b3A6IGZ1bmN0aW9uICgpIHtcbiAgICBSZWFjdFBlcmYuZW5hYmxlTWVhc3VyZSA9IGZhbHNlO1xuICB9LFxuXG4gIGdldExhc3RNZWFzdXJlbWVudHM6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gUmVhY3REZWZhdWx0UGVyZi5fYWxsTWVhc3VyZW1lbnRzO1xuICB9LFxuXG4gIHByaW50RXhjbHVzaXZlOiBmdW5jdGlvbiAobWVhc3VyZW1lbnRzKSB7XG4gICAgbWVhc3VyZW1lbnRzID0gbWVhc3VyZW1lbnRzIHx8IFJlYWN0RGVmYXVsdFBlcmYuX2FsbE1lYXN1cmVtZW50cztcbiAgICB2YXIgc3VtbWFyeSA9IFJlYWN0RGVmYXVsdFBlcmZBbmFseXNpcy5nZXRFeGNsdXNpdmVTdW1tYXJ5KG1lYXN1cmVtZW50cyk7XG4gICAgY29uc29sZS50YWJsZShzdW1tYXJ5Lm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ0NvbXBvbmVudCBjbGFzcyBuYW1lJzogaXRlbS5jb21wb25lbnROYW1lLFxuICAgICAgICAnVG90YWwgaW5jbHVzaXZlIHRpbWUgKG1zKSc6IHJvdW5kRmxvYXQoaXRlbS5pbmNsdXNpdmUpLFxuICAgICAgICAnRXhjbHVzaXZlIG1vdW50IHRpbWUgKG1zKSc6IHJvdW5kRmxvYXQoaXRlbS5leGNsdXNpdmUpLFxuICAgICAgICAnRXhjbHVzaXZlIHJlbmRlciB0aW1lIChtcyknOiByb3VuZEZsb2F0KGl0ZW0ucmVuZGVyKSxcbiAgICAgICAgJ01vdW50IHRpbWUgcGVyIGluc3RhbmNlIChtcyknOiByb3VuZEZsb2F0KGl0ZW0uZXhjbHVzaXZlIC8gaXRlbS5jb3VudCksXG4gICAgICAgICdSZW5kZXIgdGltZSBwZXIgaW5zdGFuY2UgKG1zKSc6IHJvdW5kRmxvYXQoaXRlbS5yZW5kZXIgLyBpdGVtLmNvdW50KSxcbiAgICAgICAgJ0luc3RhbmNlcyc6IGl0ZW0uY291bnRcbiAgICAgIH07XG4gICAgfSkpO1xuICAgIC8vIFRPRE86IFJlYWN0RGVmYXVsdFBlcmZBbmFseXNpcy5nZXRUb3RhbFRpbWUoKSBkb2VzIG5vdCByZXR1cm4gdGhlIGNvcnJlY3RcbiAgICAvLyBudW1iZXIuXG4gIH0sXG5cbiAgcHJpbnRJbmNsdXNpdmU6IGZ1bmN0aW9uIChtZWFzdXJlbWVudHMpIHtcbiAgICBtZWFzdXJlbWVudHMgPSBtZWFzdXJlbWVudHMgfHwgUmVhY3REZWZhdWx0UGVyZi5fYWxsTWVhc3VyZW1lbnRzO1xuICAgIHZhciBzdW1tYXJ5ID0gUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzLmdldEluY2x1c2l2ZVN1bW1hcnkobWVhc3VyZW1lbnRzKTtcbiAgICBjb25zb2xlLnRhYmxlKHN1bW1hcnkubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnT3duZXIgPiBjb21wb25lbnQnOiBpdGVtLmNvbXBvbmVudE5hbWUsXG4gICAgICAgICdJbmNsdXNpdmUgdGltZSAobXMpJzogcm91bmRGbG9hdChpdGVtLnRpbWUpLFxuICAgICAgICAnSW5zdGFuY2VzJzogaXRlbS5jb3VudFxuICAgICAgfTtcbiAgICB9KSk7XG4gICAgY29uc29sZS5sb2coJ1RvdGFsIHRpbWU6JywgUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzLmdldFRvdGFsVGltZShtZWFzdXJlbWVudHMpLnRvRml4ZWQoMikgKyAnIG1zJyk7XG4gIH0sXG5cbiAgZ2V0TWVhc3VyZW1lbnRzU3VtbWFyeU1hcDogZnVuY3Rpb24gKG1lYXN1cmVtZW50cykge1xuICAgIHZhciBzdW1tYXJ5ID0gUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzLmdldEluY2x1c2l2ZVN1bW1hcnkobWVhc3VyZW1lbnRzLCB0cnVlKTtcbiAgICByZXR1cm4gc3VtbWFyeS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdPd25lciA+IGNvbXBvbmVudCc6IGl0ZW0uY29tcG9uZW50TmFtZSxcbiAgICAgICAgJ1dhc3RlZCB0aW1lIChtcyknOiBpdGVtLnRpbWUsXG4gICAgICAgICdJbnN0YW5jZXMnOiBpdGVtLmNvdW50XG4gICAgICB9O1xuICAgIH0pO1xuICB9LFxuXG4gIHByaW50V2FzdGVkOiBmdW5jdGlvbiAobWVhc3VyZW1lbnRzKSB7XG4gICAgbWVhc3VyZW1lbnRzID0gbWVhc3VyZW1lbnRzIHx8IFJlYWN0RGVmYXVsdFBlcmYuX2FsbE1lYXN1cmVtZW50cztcbiAgICBjb25zb2xlLnRhYmxlKFJlYWN0RGVmYXVsdFBlcmYuZ2V0TWVhc3VyZW1lbnRzU3VtbWFyeU1hcChtZWFzdXJlbWVudHMpKTtcbiAgICBjb25zb2xlLmxvZygnVG90YWwgdGltZTonLCBSZWFjdERlZmF1bHRQZXJmQW5hbHlzaXMuZ2V0VG90YWxUaW1lKG1lYXN1cmVtZW50cykudG9GaXhlZCgyKSArICcgbXMnKTtcbiAgfSxcblxuICBwcmludERPTTogZnVuY3Rpb24gKG1lYXN1cmVtZW50cykge1xuICAgIG1lYXN1cmVtZW50cyA9IG1lYXN1cmVtZW50cyB8fCBSZWFjdERlZmF1bHRQZXJmLl9hbGxNZWFzdXJlbWVudHM7XG4gICAgdmFyIHN1bW1hcnkgPSBSZWFjdERlZmF1bHRQZXJmQW5hbHlzaXMuZ2V0RE9NU3VtbWFyeShtZWFzdXJlbWVudHMpO1xuICAgIGNvbnNvbGUudGFibGUoc3VtbWFyeS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgIHJlc3VsdFtET01Qcm9wZXJ0eS5JRF9BVFRSSUJVVEVfTkFNRV0gPSBpdGVtLmlkO1xuICAgICAgcmVzdWx0LnR5cGUgPSBpdGVtLnR5cGU7XG4gICAgICByZXN1bHQuYXJncyA9IEpTT04uc3RyaW5naWZ5KGl0ZW0uYXJncyk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pKTtcbiAgICBjb25zb2xlLmxvZygnVG90YWwgdGltZTonLCBSZWFjdERlZmF1bHRQZXJmQW5hbHlzaXMuZ2V0VG90YWxUaW1lKG1lYXN1cmVtZW50cykudG9GaXhlZCgyKSArICcgbXMnKTtcbiAgfSxcblxuICBfcmVjb3JkV3JpdGU6IGZ1bmN0aW9uIChpZCwgZm5OYW1lLCB0b3RhbFRpbWUsIGFyZ3MpIHtcbiAgICAvLyBUT0RPOiB0b3RhbFRpbWUgaXNuJ3QgdGhhdCB1c2VmdWwgc2luY2UgaXQgZG9lc24ndCBjb3VudCBwYWludHMvcmVmbG93c1xuICAgIHZhciB3cml0ZXMgPSBSZWFjdERlZmF1bHRQZXJmLl9hbGxNZWFzdXJlbWVudHNbUmVhY3REZWZhdWx0UGVyZi5fYWxsTWVhc3VyZW1lbnRzLmxlbmd0aCAtIDFdLndyaXRlcztcbiAgICB3cml0ZXNbaWRdID0gd3JpdGVzW2lkXSB8fCBbXTtcbiAgICB3cml0ZXNbaWRdLnB1c2goe1xuICAgICAgdHlwZTogZm5OYW1lLFxuICAgICAgdGltZTogdG90YWxUaW1lLFxuICAgICAgYXJnczogYXJnc1xuICAgIH0pO1xuICB9LFxuXG4gIG1lYXN1cmU6IGZ1bmN0aW9uIChtb2R1bGVOYW1lLCBmbk5hbWUsIGZ1bmMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgdmFyIHRvdGFsVGltZTtcbiAgICAgIHZhciBydjtcbiAgICAgIHZhciBzdGFydDtcblxuICAgICAgaWYgKGZuTmFtZSA9PT0gJ19yZW5kZXJOZXdSb290Q29tcG9uZW50JyB8fCBmbk5hbWUgPT09ICdmbHVzaEJhdGNoZWRVcGRhdGVzJykge1xuICAgICAgICAvLyBBIFwibWVhc3VyZW1lbnRcIiBpcyBhIHNldCBvZiBtZXRyaWNzIHJlY29yZGVkIGZvciBlYWNoIGZsdXNoLiBXZSB3YW50XG4gICAgICAgIC8vIHRvIGdyb3VwIHRoZSBtZXRyaWNzIGZvciBhIGdpdmVuIGZsdXNoIHRvZ2V0aGVyIHNvIHdlIGNhbiBsb29rIGF0IHRoZVxuICAgICAgICAvLyBjb21wb25lbnRzIHRoYXQgcmVuZGVyZWQgYW5kIHRoZSBET00gb3BlcmF0aW9ucyB0aGF0IGFjdHVhbGx5XG4gICAgICAgIC8vIGhhcHBlbmVkIHRvIGRldGVybWluZSB0aGUgYW1vdW50IG9mIFwid2FzdGVkIHdvcmtcIiBwZXJmb3JtZWQuXG4gICAgICAgIFJlYWN0RGVmYXVsdFBlcmYuX2FsbE1lYXN1cmVtZW50cy5wdXNoKHtcbiAgICAgICAgICBleGNsdXNpdmU6IHt9LFxuICAgICAgICAgIGluY2x1c2l2ZToge30sXG4gICAgICAgICAgcmVuZGVyOiB7fSxcbiAgICAgICAgICBjb3VudHM6IHt9LFxuICAgICAgICAgIHdyaXRlczoge30sXG4gICAgICAgICAgZGlzcGxheU5hbWVzOiB7fSxcbiAgICAgICAgICB0b3RhbFRpbWU6IDAsXG4gICAgICAgICAgY3JlYXRlZDoge31cbiAgICAgICAgfSk7XG4gICAgICAgIHN0YXJ0ID0gcGVyZm9ybWFuY2VOb3coKTtcbiAgICAgICAgcnYgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICBSZWFjdERlZmF1bHRQZXJmLl9hbGxNZWFzdXJlbWVudHNbUmVhY3REZWZhdWx0UGVyZi5fYWxsTWVhc3VyZW1lbnRzLmxlbmd0aCAtIDFdLnRvdGFsVGltZSA9IHBlcmZvcm1hbmNlTm93KCkgLSBzdGFydDtcbiAgICAgICAgcmV0dXJuIHJ2O1xuICAgICAgfSBlbHNlIGlmIChmbk5hbWUgPT09ICdfbW91bnRJbWFnZUludG9Ob2RlJyB8fCBtb2R1bGVOYW1lID09PSAnUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyJyB8fCBtb2R1bGVOYW1lID09PSAnUmVhY3RET01JRE9wZXJhdGlvbnMnIHx8IG1vZHVsZU5hbWUgPT09ICdDU1NQcm9wZXJ0eU9wZXJhdGlvbnMnIHx8IG1vZHVsZU5hbWUgPT09ICdET01DaGlsZHJlbk9wZXJhdGlvbnMnIHx8IG1vZHVsZU5hbWUgPT09ICdET01Qcm9wZXJ0eU9wZXJhdGlvbnMnKSB7XG4gICAgICAgIHN0YXJ0ID0gcGVyZm9ybWFuY2VOb3coKTtcbiAgICAgICAgcnYgPSBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB0b3RhbFRpbWUgPSBwZXJmb3JtYW5jZU5vdygpIC0gc3RhcnQ7XG5cbiAgICAgICAgaWYgKGZuTmFtZSA9PT0gJ19tb3VudEltYWdlSW50b05vZGUnKSB7XG4gICAgICAgICAgdmFyIG1vdW50SUQgPSBSZWFjdE1vdW50LmdldElEKGFyZ3NbMV0pO1xuICAgICAgICAgIFJlYWN0RGVmYXVsdFBlcmYuX3JlY29yZFdyaXRlKG1vdW50SUQsIGZuTmFtZSwgdG90YWxUaW1lLCBhcmdzWzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChmbk5hbWUgPT09ICdkYW5nZXJvdXNseVByb2Nlc3NDaGlsZHJlblVwZGF0ZXMnKSB7XG4gICAgICAgICAgLy8gc3BlY2lhbCBmb3JtYXRcbiAgICAgICAgICBhcmdzWzBdLmZvckVhY2goZnVuY3Rpb24gKHVwZGF0ZSkge1xuICAgICAgICAgICAgdmFyIHdyaXRlQXJncyA9IHt9O1xuICAgICAgICAgICAgaWYgKHVwZGF0ZS5mcm9tSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgd3JpdGVBcmdzLmZyb21JbmRleCA9IHVwZGF0ZS5mcm9tSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodXBkYXRlLnRvSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgd3JpdGVBcmdzLnRvSW5kZXggPSB1cGRhdGUudG9JbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1cGRhdGUudGV4dENvbnRlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgd3JpdGVBcmdzLnRleHRDb250ZW50ID0gdXBkYXRlLnRleHRDb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVwZGF0ZS5tYXJrdXBJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICB3cml0ZUFyZ3MubWFya3VwID0gYXJnc1sxXVt1cGRhdGUubWFya3VwSW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgUmVhY3REZWZhdWx0UGVyZi5fcmVjb3JkV3JpdGUodXBkYXRlLnBhcmVudElELCB1cGRhdGUudHlwZSwgdG90YWxUaW1lLCB3cml0ZUFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGJhc2ljIGZvcm1hdFxuICAgICAgICAgIHZhciBpZCA9IGFyZ3NbMF07XG4gICAgICAgICAgaWYgKHR5cGVvZiBpZCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGlkID0gUmVhY3RNb3VudC5nZXRJRChhcmdzWzBdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgUmVhY3REZWZhdWx0UGVyZi5fcmVjb3JkV3JpdGUoaWQsIGZuTmFtZSwgdG90YWxUaW1lLCBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzLCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJ2O1xuICAgICAgfSBlbHNlIGlmIChtb2R1bGVOYW1lID09PSAnUmVhY3RDb21wb3NpdGVDb21wb25lbnQnICYmIChmbk5hbWUgPT09ICdtb3VudENvbXBvbmVudCcgfHwgZm5OYW1lID09PSAndXBkYXRlQ29tcG9uZW50JyB8fCAvLyBUT0RPOiByZWNlaXZlQ29tcG9uZW50KCk/XG4gICAgICBmbk5hbWUgPT09ICdfcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50JykpIHtcblxuICAgICAgICBpZiAodGhpcy5fY3VycmVudEVsZW1lbnQudHlwZSA9PT0gUmVhY3RNb3VudC5Ub3BMZXZlbFdyYXBwZXIpIHtcbiAgICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciByb290Tm9kZUlEID0gZm5OYW1lID09PSAnbW91bnRDb21wb25lbnQnID8gYXJnc1swXSA6IHRoaXMuX3Jvb3ROb2RlSUQ7XG4gICAgICAgIHZhciBpc1JlbmRlciA9IGZuTmFtZSA9PT0gJ19yZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQnO1xuICAgICAgICB2YXIgaXNNb3VudCA9IGZuTmFtZSA9PT0gJ21vdW50Q29tcG9uZW50JztcblxuICAgICAgICB2YXIgbW91bnRTdGFjayA9IFJlYWN0RGVmYXVsdFBlcmYuX21vdW50U3RhY2s7XG4gICAgICAgIHZhciBlbnRyeSA9IFJlYWN0RGVmYXVsdFBlcmYuX2FsbE1lYXN1cmVtZW50c1tSZWFjdERlZmF1bHRQZXJmLl9hbGxNZWFzdXJlbWVudHMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgaWYgKGlzUmVuZGVyKSB7XG4gICAgICAgICAgYWRkVmFsdWUoZW50cnkuY291bnRzLCByb290Tm9kZUlELCAxKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc01vdW50KSB7XG4gICAgICAgICAgZW50cnkuY3JlYXRlZFtyb290Tm9kZUlEXSA9IHRydWU7XG4gICAgICAgICAgbW91bnRTdGFjay5wdXNoKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnQgPSBwZXJmb3JtYW5jZU5vdygpO1xuICAgICAgICBydiA9IGZ1bmMuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgIHRvdGFsVGltZSA9IHBlcmZvcm1hbmNlTm93KCkgLSBzdGFydDtcblxuICAgICAgICBpZiAoaXNSZW5kZXIpIHtcbiAgICAgICAgICBhZGRWYWx1ZShlbnRyeS5yZW5kZXIsIHJvb3ROb2RlSUQsIHRvdGFsVGltZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNNb3VudCkge1xuICAgICAgICAgIHZhciBzdWJNb3VudFRpbWUgPSBtb3VudFN0YWNrLnBvcCgpO1xuICAgICAgICAgIG1vdW50U3RhY2tbbW91bnRTdGFjay5sZW5ndGggLSAxXSArPSB0b3RhbFRpbWU7XG4gICAgICAgICAgYWRkVmFsdWUoZW50cnkuZXhjbHVzaXZlLCByb290Tm9kZUlELCB0b3RhbFRpbWUgLSBzdWJNb3VudFRpbWUpO1xuICAgICAgICAgIGFkZFZhbHVlKGVudHJ5LmluY2x1c2l2ZSwgcm9vdE5vZGVJRCwgdG90YWxUaW1lKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRWYWx1ZShlbnRyeS5pbmNsdXNpdmUsIHJvb3ROb2RlSUQsIHRvdGFsVGltZSk7XG4gICAgICAgIH1cblxuICAgICAgICBlbnRyeS5kaXNwbGF5TmFtZXNbcm9vdE5vZGVJRF0gPSB7XG4gICAgICAgICAgY3VycmVudDogdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgb3duZXI6IHRoaXMuX2N1cnJlbnRFbGVtZW50Ll9vd25lciA/IHRoaXMuX2N1cnJlbnRFbGVtZW50Ll9vd25lci5nZXROYW1lKCkgOiAnPHJvb3Q+J1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBydjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmdW5jLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3REZWZhdWx0UGVyZjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3REZWZhdWx0UGVyZi5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 143 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDefaultPerfAnalysis\n */\n\n'use strict';\n\nvar assign = __webpack_require__(39);\n\n// Don't try to save users less than 1.2ms (a number I made up)\nvar DONT_CARE_THRESHOLD = 1.2;\nvar DOM_OPERATION_TYPES = {\n '_mountImageIntoNode': 'set innerHTML',\n INSERT_MARKUP: 'set innerHTML',\n MOVE_EXISTING: 'move',\n REMOVE_NODE: 'remove',\n SET_MARKUP: 'set innerHTML',\n TEXT_CONTENT: 'set textContent',\n 'setValueForProperty': 'update attribute',\n 'setValueForAttribute': 'update attribute',\n 'deleteValueForProperty': 'remove attribute',\n 'setValueForStyles': 'update styles',\n 'replaceNodeWithMarkup': 'replace',\n 'updateTextContent': 'set textContent'\n};\n\nfunction getTotalTime(measurements) {\n // TODO: return number of DOM ops? could be misleading.\n // TODO: measure dropped frames after reconcile?\n // TODO: log total time of each reconcile and the top-level component\n // class that triggered it.\n var totalTime = 0;\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n totalTime += measurement.totalTime;\n }\n return totalTime;\n}\n\nfunction getDOMSummary(measurements) {\n var items = [];\n measurements.forEach(function (measurement) {\n Object.keys(measurement.writes).forEach(function (id) {\n measurement.writes[id].forEach(function (write) {\n items.push({\n id: id,\n type: DOM_OPERATION_TYPES[write.type] || write.type,\n args: write.args\n });\n });\n });\n });\n return items;\n}\n\nfunction getExclusiveSummary(measurements) {\n var candidates = {};\n var displayName;\n\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n for (var id in allIDs) {\n displayName = measurement.displayNames[id].current;\n\n candidates[displayName] = candidates[displayName] || {\n componentName: displayName,\n inclusive: 0,\n exclusive: 0,\n render: 0,\n count: 0\n };\n if (measurement.render[id]) {\n candidates[displayName].render += measurement.render[id];\n }\n if (measurement.exclusive[id]) {\n candidates[displayName].exclusive += measurement.exclusive[id];\n }\n if (measurement.inclusive[id]) {\n candidates[displayName].inclusive += measurement.inclusive[id];\n }\n if (measurement.counts[id]) {\n candidates[displayName].count += measurement.counts[id];\n }\n }\n }\n\n // Now make a sorted array with the results.\n var arr = [];\n for (displayName in candidates) {\n if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) {\n arr.push(candidates[displayName]);\n }\n }\n\n arr.sort(function (a, b) {\n return b.exclusive - a.exclusive;\n });\n\n return arr;\n}\n\nfunction getInclusiveSummary(measurements, onlyClean) {\n var candidates = {};\n var inclusiveKey;\n\n for (var i = 0; i < measurements.length; i++) {\n var measurement = measurements[i];\n var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n var cleanComponents;\n\n if (onlyClean) {\n cleanComponents = getUnchangedComponents(measurement);\n }\n\n for (var id in allIDs) {\n if (onlyClean && !cleanComponents[id]) {\n continue;\n }\n\n var displayName = measurement.displayNames[id];\n\n // Inclusive time is not useful for many components without knowing where\n // they are instantiated. So we aggregate inclusive time with both the\n // owner and current displayName as the key.\n inclusiveKey = displayName.owner + ' > ' + displayName.current;\n\n candidates[inclusiveKey] = candidates[inclusiveKey] || {\n componentName: inclusiveKey,\n time: 0,\n count: 0\n };\n\n if (measurement.inclusive[id]) {\n candidates[inclusiveKey].time += measurement.inclusive[id];\n }\n if (measurement.counts[id]) {\n candidates[inclusiveKey].count += measurement.counts[id];\n }\n }\n }\n\n // Now make a sorted array with the results.\n var arr = [];\n for (inclusiveKey in candidates) {\n if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) {\n arr.push(candidates[inclusiveKey]);\n }\n }\n\n arr.sort(function (a, b) {\n return b.time - a.time;\n });\n\n return arr;\n}\n\nfunction getUnchangedComponents(measurement) {\n // For a given reconcile, look at which components did not actually\n // render anything to the DOM and return a mapping of their ID to\n // the amount of time it took to render the entire subtree.\n var cleanComponents = {};\n var dirtyLeafIDs = Object.keys(measurement.writes);\n var allIDs = assign({}, measurement.exclusive, measurement.inclusive);\n\n for (var id in allIDs) {\n var isDirty = false;\n // For each component that rendered, see if a component that triggered\n // a DOM op is in its subtree.\n for (var i = 0; i < dirtyLeafIDs.length; i++) {\n if (dirtyLeafIDs[i].indexOf(id) === 0) {\n isDirty = true;\n break;\n }\n }\n // check if component newly created\n if (measurement.created[id]) {\n isDirty = true;\n }\n if (!isDirty && measurement.counts[id] > 0) {\n cleanComponents[id] = true;\n }\n }\n return cleanComponents;\n}\n\nvar ReactDefaultPerfAnalysis = {\n getExclusiveSummary: getExclusiveSummary,\n getInclusiveSummary: getInclusiveSummary,\n getDOMSummary: getDOMSummary,\n getTotalTime: getTotalTime\n};\n\nmodule.exports = ReactDefaultPerfAnalysis;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzLmpzPzAwNzUiXSwibmFtZXMiOlsiYXNzaWduIiwicmVxdWlyZSIsIkRPTlRfQ0FSRV9USFJFU0hPTEQiLCJET01fT1BFUkFUSU9OX1RZUEVTIiwiSU5TRVJUX01BUktVUCIsIk1PVkVfRVhJU1RJTkciLCJSRU1PVkVfTk9ERSIsIlNFVF9NQVJLVVAiLCJURVhUX0NPTlRFTlQiLCJnZXRUb3RhbFRpbWUiLCJtZWFzdXJlbWVudHMiLCJ0b3RhbFRpbWUiLCJpIiwibGVuZ3RoIiwibWVhc3VyZW1lbnQiLCJnZXRET01TdW1tYXJ5IiwiaXRlbXMiLCJmb3JFYWNoIiwiT2JqZWN0Iiwia2V5cyIsIndyaXRlcyIsImlkIiwid3JpdGUiLCJwdXNoIiwidHlwZSIsImFyZ3MiLCJnZXRFeGNsdXNpdmVTdW1tYXJ5IiwiY2FuZGlkYXRlcyIsImRpc3BsYXlOYW1lIiwiYWxsSURzIiwiZXhjbHVzaXZlIiwiaW5jbHVzaXZlIiwiZGlzcGxheU5hbWVzIiwiY3VycmVudCIsImNvbXBvbmVudE5hbWUiLCJyZW5kZXIiLCJjb3VudCIsImNvdW50cyIsImFyciIsInNvcnQiLCJhIiwiYiIsImdldEluY2x1c2l2ZVN1bW1hcnkiLCJvbmx5Q2xlYW4iLCJpbmNsdXNpdmVLZXkiLCJjbGVhbkNvbXBvbmVudHMiLCJnZXRVbmNoYW5nZWRDb21wb25lbnRzIiwib3duZXIiLCJ0aW1lIiwiZGlydHlMZWFmSURzIiwiaXNEaXJ0eSIsImluZGV4T2YiLCJjcmVhdGVkIiwiUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsU0FBUyxtQkFBQUMsQ0FBUSxFQUFSLENBQWI7O0FBRUE7QUFDQSxJQUFJQyxzQkFB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LFlBQVlnQixTQUF2QixFQUFrQ2hCLFlBQVlpQixTQUE5QyxDQUFiOztBQUVBLE9BQUssSUFBSVYsRUFBVCxJQUFlUSxNQUFmLEVBQXVCO0FBQ3JCLFFBQUlxQixVQUFVLEtBQWQ7QUFDQTtBQUNBO0FBQ0EsU0FBSyxJQUFJdEMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJcUMsYUFBYXBDLE1BQWpDLEVBQXlDRCxHQUF6QyxFQUE4QztBQUM1QyxVQUFJcUMsYUFBYXJDLENBQWIsRUFBZ0J1QyxPQUFoQixDQUF3QjlCLEVBQXhCLE1BQWdDLENBQXBDLEVBQXVDO0FBQ3JDNkIsa0JBQVUsSUFBVjtBQUNBO0FBQ0Q7QUFDRjtBQUNEO0FBQ0EsUUFBSXBDLFlBQVlzQyxPQUFaLENBQW9CL0IsRUFBcEIsQ0FBSixFQUE2QjtBQUMzQjZCLGdCQUFVLElBQVY7QUFDRDtBQUNELFFBQUksQ0FBQ0EsT0FBRCxJQUFZcEMsWUFBWXVCLE1BQVosQ0FBbUJoQixFQUFuQixJQUF5QixDQUF6QyxFQUE0QztBQUMxQ3dCLHNCQUFnQnhCLEVBQWhCLElBQXNCLElBQXRCO0FBQ0Q7QUFDRjtBQUNELFNBQU93QixlQUFQO0FBQ0Q7O0FBRUQsSUFBSVEsMkJBQTJCO0FBQzdCM0IsdUJBQXFCQSxtQkFEUTtBQUU3QmdCLHVCQUFxQkEsbUJBRlE7QUFHN0IzQixpQkFBZUEsYUFIYztBQUk3Qk4sZ0JBQWNBO0FBSmUsQ0FBL0I7O0FBT0E2QyxPQUFPQyxPQUFQLEdBQWlCRix3QkFBakIiLCJmaWxlIjoiMTQzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RGVmYXVsdFBlcmZBbmFseXNpc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xuXG4vLyBEb24ndCB0cnkgdG8gc2F2ZSB1c2VycyBsZXNzIHRoYW4gMS4ybXMgKGEgbnVtYmVyIEkgbWFkZSB1cClcbnZhciBET05UX0NBUkVfVEhSRVNIT0xEID0gMS4yO1xudmFyIERPTV9PUEVSQVRJT05fVFlQRVMgPSB7XG4gICdfbW91bnRJbWFnZUludG9Ob2RlJzogJ3NldCBpbm5lckhUTUwnLFxuICBJTlNFUlRfTUFSS1VQOiAnc2V0IGlubmVySFRNTCcsXG4gIE1PVkVfRVhJU1RJTkc6ICdtb3ZlJyxcbiAgUkVNT1ZFX05PREU6ICdyZW1vdmUnLFxuICBTRVRfTUFSS1VQOiAnc2V0IGlubmVySFRNTCcsXG4gIFRFWFRfQ09OVEVOVDogJ3NldCB0ZXh0Q29udGVudCcsXG4gICdzZXRWYWx1ZUZvclByb3BlcnR5JzogJ3VwZGF0ZSBhdHRyaWJ1dGUnLFxuICAnc2V0VmFsdWVGb3JBdHRyaWJ1dGUnOiAndXBkYXRlIGF0dHJpYnV0ZScsXG4gICdkZWxldGVWYWx1ZUZvclByb3BlcnR5JzogJ3JlbW92ZSBhdHRyaWJ1dGUnLFxuICAnc2V0VmFsdWVGb3JTdHlsZXMnOiAndXBkYXRlIHN0eWxlcycsXG4gICdyZXBsYWNlTm9kZVdpdGhNYXJrdXAnOiAncmVwbGFjZScsXG4gICd1cGRhdGVUZXh0Q29udGVudCc6ICdzZXQgdGV4dENvbnRlbnQnXG59O1xuXG5mdW5jdGlvbiBnZXRUb3RhbFRpbWUobWVhc3VyZW1lbnRzKSB7XG4gIC8vIFRPRE86IHJldHVybiBudW1iZXIgb2YgRE9NIG9wcz8gY291bGQgYmUgbWlzbGVhZGluZy5cbiAgLy8gVE9ETzogbWVhc3VyZSBkcm9wcGVkIGZyYW1lcyBhZnRlciByZWNvbmNpbGU/XG4gIC8vIFRPRE86IGxvZyB0b3RhbCB0aW1lIG9mIGVhY2ggcmVjb25jaWxlIGFuZCB0aGUgdG9wLWxldmVsIGNvbXBvbmVudFxuICAvLyBjbGFzcyB0aGF0IHRyaWdnZXJlZCBpdC5cbiAgdmFyIHRvdGFsVGltZSA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbWVhc3VyZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG1lYXN1cmVtZW50ID0gbWVhc3VyZW1lbnRzW2ldO1xuICAgIHRvdGFsVGltZSArPSBtZWFzdXJlbWVudC50b3RhbFRpbWU7XG4gIH1cbiAgcmV0dXJuIHRvdGFsVGltZTtcbn1cblxuZnVuY3Rpb24gZ2V0RE9NU3VtbWFyeShtZWFzdXJlbWVudHMpIHtcbiAgdmFyIGl0ZW1zID0gW107XG4gIG1lYXN1cmVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChtZWFzdXJlbWVudCkge1xuICAgIE9iamVjdC5rZXlzKG1lYXN1cmVtZW50LndyaXRlcykuZm9yRWFjaChmdW5jdGlvbiAoaWQpIHtcbiAgICAgIG1lYXN1cmVtZW50LndyaXRlc1tpZF0uZm9yRWFjaChmdW5jdGlvbiAod3JpdGUpIHtcbiAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgIHR5cGU6IERPTV9PUEVSQVRJT05fVFlQRVNbd3JpdGUudHlwZV0gfHwgd3JpdGUudHlwZSxcbiAgICAgICAgICBhcmdzOiB3cml0ZS5hcmdzXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmZ1bmN0aW9uIGdldEV4Y2x1c2l2ZVN1bW1hcnkobWVhc3VyZW1lbnRzKSB7XG4gIHZhciBjYW5kaWRhdGVzID0ge307XG4gIHZhciBkaXNwbGF5TmFtZTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1lYXN1cmVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtZWFzdXJlbWVudCA9IG1lYXN1cmVtZW50c1tpXTtcbiAgICB2YXIgYWxsSURzID0gYXNzaWduKHt9LCBtZWFzdXJlbWVudC5leGNsdXNpdmUsIG1lYXN1cmVtZW50LmluY2x1c2l2ZSk7XG5cbiAgICBmb3IgKHZhciBpZCBpbiBhbGxJRHMpIHtcbiAgICAgIGRpc3BsYXlOYW1lID0gbWVhc3VyZW1lbnQuZGlzcGxheU5hbWVzW2lkXS5jdXJyZW50O1xuXG4gICAgICBjYW5kaWRhdGVzW2Rpc3BsYXlOYW1lXSA9IGNhbmRpZGF0ZXNbZGlzcGxheU5hbWVdIHx8IHtcbiAgICAgICAgY29tcG9uZW50TmFtZTogZGlzcGxheU5hbWUsXG4gICAgICAgIGluY2x1c2l2ZTogMCxcbiAgICAgICAgZXhjbHVzaXZlOiAwLFxuICAgICAgICByZW5kZXI6IDAsXG4gICAgICAgIGNvdW50OiAwXG4gICAgICB9O1xuICAgICAgaWYgKG1lYXN1cmVtZW50LnJlbmRlcltpZF0pIHtcbiAgICAgICAgY2FuZGlkYXRlc1tkaXNwbGF5TmFtZV0ucmVuZGVyICs9IG1lYXN1cmVtZW50LnJlbmRlcltpZF07XG4gICAgICB9XG4gICAgICBpZiAobWVhc3VyZW1lbnQuZXhjbHVzaXZlW2lkXSkge1xuICAgICAgICBjYW5kaWRhdGVzW2Rpc3BsYXlOYW1lXS5leGNsdXNpdmUgKz0gbWVhc3VyZW1lbnQuZXhjbHVzaXZlW2lkXTtcbiAgICAgIH1cbiAgICAgIGlmIChtZWFzdXJlbWVudC5pbmNsdXNpdmVbaWRdKSB7XG4gICAgICAgIGNhbmRpZGF0ZXNbZGlzcGxheU5hbWVdLmluY2x1c2l2ZSArPSBtZWFzdXJlbWVudC5pbmNsdXNpdmVbaWRdO1xuICAgICAgfVxuICAgICAgaWYgKG1lYXN1cmVtZW50LmNvdW50c1tpZF0pIHtcbiAgICAgICAgY2FuZGlkYXRlc1tkaXNwbGF5TmFtZV0uY291bnQgKz0gbWVhc3VyZW1lbnQuY291bnRzW2lkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBOb3cgbWFrZSBhIHNvcnRlZCBhcnJheSB3aXRoIHRoZSByZXN1bHRzLlxuICB2YXIgYXJyID0gW107XG4gIGZvciAoZGlzcGxheU5hbWUgaW4gY2FuZGlkYXRlcykge1xuICAgIGlmIChjYW5kaWRhdGVzW2Rpc3BsYXlOYW1lXS5leGNsdXNpdmUgPj0gRE9OVF9DQVJFX1RIUkVTSE9MRCkge1xuICAgICAgYXJyLnB1c2goY2FuZGlkYXRlc1tkaXNwbGF5TmFtZV0pO1xuICAgIH1cbiAgfVxuXG4gIGFyci5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGIuZXhjbHVzaXZlIC0gYS5leGNsdXNpdmU7XG4gIH0pO1xuXG4gIHJldHVybiBhcnI7XG59XG5cbmZ1bmN0aW9uIGdldEluY2x1c2l2ZVN1bW1hcnkobWVhc3VyZW1lbnRzLCBvbmx5Q2xlYW4pIHtcbiAgdmFyIGNhbmRpZGF0ZXMgPSB7fTtcbiAgdmFyIGluY2x1c2l2ZUtleTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1lYXN1cmVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtZWFzdXJlbWVudCA9IG1lYXN1cmVtZW50c1tpXTtcbiAgICB2YXIgYWxsSURzID0gYXNzaWduKHt9LCBtZWFzdXJlbWVudC5leGNsdXNpdmUsIG1lYXN1cmVtZW50LmluY2x1c2l2ZSk7XG4gICAgdmFyIGNsZWFuQ29tcG9uZW50cztcblxuICAgIGlmIChvbmx5Q2xlYW4pIHtcbiAgICAgIGNsZWFuQ29tcG9uZW50cyA9IGdldFVuY2hhbmdlZENvbXBvbmVudHMobWVhc3VyZW1lbnQpO1xuICAgIH1cblxuICAgIGZvciAodmFyIGlkIGluIGFsbElEcykge1xuICAgICAgaWYgKG9ubHlDbGVhbiAmJiAhY2xlYW5Db21wb25lbnRzW2lkXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGRpc3BsYXlOYW1lID0gbWVhc3VyZW1lbnQuZGlzcGxheU5hbWVzW2lkXTtcblxuICAgICAgLy8gSW5jbHVzaXZlIHRpbWUgaXMgbm90IHVzZWZ1bCBmb3IgbWFueSBjb21wb25lbnRzIHdpdGhvdXQga25vd2luZyB3aGVyZVxuICAgICAgLy8gdGhleSBhcmUgaW5zdGFudGlhdGVkLiBTbyB3ZSBhZ2dyZWdhdGUgaW5jbHVzaXZlIHRpbWUgd2l0aCBib3RoIHRoZVxuICAgICAgLy8gb3duZXIgYW5kIGN1cnJlbnQgZGlzcGxheU5hbWUgYXMgdGhlIGtleS5cbiAgICAgIGluY2x1c2l2ZUtleSA9IGRpc3BsYXlOYW1lLm93bmVyICsgJyA+ICcgKyBkaXNwbGF5TmFtZS5jdXJyZW50O1xuXG4gICAgICBjYW5kaWRhdGVzW2luY2x1c2l2ZUtleV0gPSBjYW5kaWRhdGVzW2luY2x1c2l2ZUtleV0gfHwge1xuICAgICAgICBjb21wb25lbnROYW1lOiBpbmNsdXNpdmVLZXksXG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGNvdW50OiAwXG4gICAgICB9O1xuXG4gICAgICBpZiAobWVhc3VyZW1lbnQuaW5jbHVzaXZlW2lkXSkge1xuICAgICAgICBjYW5kaWRhdGVzW2luY2x1c2l2ZUtleV0udGltZSArPSBtZWFzdXJlbWVudC5pbmNsdXNpdmVbaWRdO1xuICAgICAgfVxuICAgICAgaWYgKG1lYXN1cmVtZW50LmNvdW50c1tpZF0pIHtcbiAgICAgICAgY2FuZGlkYXRlc1tpbmNsdXNpdmVLZXldLmNvdW50ICs9IG1lYXN1cmVtZW50LmNvdW50c1tpZF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTm93IG1ha2UgYSBzb3J0ZWQgYXJyYXkgd2l0aCB0aGUgcmVzdWx0cy5cbiAgdmFyIGFyciA9IFtdO1xuICBmb3IgKGluY2x1c2l2ZUtleSBpbiBjYW5kaWRhdGVzKSB7XG4gICAgaWYgKGNhbmRpZGF0ZXNbaW5jbHVzaXZlS2V5XS50aW1lID49IERPTlRfQ0FSRV9USFJFU0hPTEQpIHtcbiAgICAgIGFyci5wdXNoKGNhbmRpZGF0ZXNbaW5jbHVzaXZlS2V5XSk7XG4gICAgfVxuICB9XG5cbiAgYXJyLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gYi50aW1lIC0gYS50aW1lO1xuICB9KTtcblxuICByZXR1cm4gYXJyO1xufVxuXG5mdW5jdGlvbiBnZXRVbmNoYW5nZWRDb21wb25lbnRzKG1lYXN1cmVtZW50KSB7XG4gIC8vIEZvciBhIGdpdmVuIHJlY29uY2lsZSwgbG9vayBhdCB3aGljaCBjb21wb25lbnRzIGRpZCBub3QgYWN0dWFsbHlcbiAgLy8gcmVuZGVyIGFueXRoaW5nIHRvIHRoZSBET00gYW5kIHJldHVybiBhIG1hcHBpbmcgb2YgdGhlaXIgSUQgdG9cbiAgLy8gdGhlIGFtb3VudCBvZiB0aW1lIGl0IHRvb2sgdG8gcmVuZGVyIHRoZSBlbnRpcmUgc3VidHJlZS5cbiAgdmFyIGNsZWFuQ29tcG9uZW50cyA9IHt9O1xuICB2YXIgZGlydHlMZWFmSURzID0gT2JqZWN0LmtleXMobWVhc3VyZW1lbnQud3JpdGVzKTtcbiAgdmFyIGFsbElEcyA9IGFzc2lnbih7fSwgbWVhc3VyZW1lbnQuZXhjbHVzaXZlLCBtZWFzdXJlbWVudC5pbmNsdXNpdmUpO1xuXG4gIGZvciAodmFyIGlkIGluIGFsbElEcykge1xuICAgIHZhciBpc0RpcnR5ID0gZmFsc2U7XG4gICAgLy8gRm9yIGVhY2ggY29tcG9uZW50IHRoYXQgcmVuZGVyZWQsIHNlZSBpZiBhIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZFxuICAgIC8vIGEgRE9NIG9wIGlzIGluIGl0cyBzdWJ0cmVlLlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlydHlMZWFmSURzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZGlydHlMZWFmSURzW2ldLmluZGV4T2YoaWQpID09PSAwKSB7XG4gICAgICAgIGlzRGlydHkgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gY2hlY2sgaWYgY29tcG9uZW50IG5ld2x5IGNyZWF0ZWRcbiAgICBpZiAobWVhc3VyZW1lbnQuY3JlYXRlZFtpZF0pIHtcbiAgICAgIGlzRGlydHkgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWlzRGlydHkgJiYgbWVhc3VyZW1lbnQuY291bnRzW2lkXSA+IDApIHtcbiAgICAgIGNsZWFuQ29tcG9uZW50c1tpZF0gPSB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2xlYW5Db21wb25lbnRzO1xufVxuXG52YXIgUmVhY3REZWZhdWx0UGVyZkFuYWx5c2lzID0ge1xuICBnZXRFeGNsdXNpdmVTdW1tYXJ5OiBnZXRFeGNsdXNpdmVTdW1tYXJ5LFxuICBnZXRJbmNsdXNpdmVTdW1tYXJ5OiBnZXRJbmNsdXNpdmVTdW1tYXJ5LFxuICBnZXRET01TdW1tYXJ5OiBnZXRET01TdW1tYXJ5LFxuICBnZXRUb3RhbFRpbWU6IGdldFRvdGFsVGltZVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERlZmF1bHRQZXJmQW5hbHlzaXM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RGVmYXVsdFBlcmZBbmFseXNpcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 144 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performanceNow\n * @typechecks\n */\n\n'use strict';\n\nvar performance = __webpack_require__(145);\n\nvar performanceNow;\n\n/**\n * Detect if we can use `window.performance.now()` and gracefully fallback to\n * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now\n * because of Facebook's testing infrastructure.\n */\nif (performance.now) {\n performanceNow = function performanceNow() {\n return performance.now();\n };\n} else {\n performanceNow = function performanceNow() {\n return Date.now();\n };\n}\n\nmodule.exports = performanceNow;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9wZXJmb3JtYW5jZU5vdy5qcz9mODczIl0sIm5hbWVzIjpbInBlcmZvcm1hbmNlIiwicmVxdWlyZSIsInBlcmZvcm1hbmNlTm93Iiwibm93IiwiRGF0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7QUFZQTs7QUFFQSxJQUFJQSxjQUFjLG1CQUFBQyxDQUFRLEdBQVIsQ0FBbEI7O0FBRUEsSUFBSUMsY0FBSjs7QUFFQTs7Ozs7QUFLQSxJQUFJRixZQUFZRyxHQUFoQixFQUFxQjtBQUNuQkQsbUJBQWlCLDBCQUFZO0FBQzNCLFdBQU9GLFlBQVlHLEdBQVosRUFBUDtBQUNELEdBRkQ7QUFHRCxDQUpELE1BSU87QUFDTEQsbUJBQWlCLDBCQUFZO0FBQzNCLFdBQU9FLEtBQUtELEdBQUwsRUFBUDtBQUNELEdBRkQ7QUFHRDs7QUFFREUsT0FBT0MsT0FBUCxHQUFpQkosY0FBakIiLCJmaWxlIjoiMTQ0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIHBlcmZvcm1hbmNlTm93XG4gKiBAdHlwZWNoZWNrc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIHBlcmZvcm1hbmNlID0gcmVxdWlyZSgnLi9wZXJmb3JtYW5jZScpO1xuXG52YXIgcGVyZm9ybWFuY2VOb3c7XG5cbi8qKlxuICogRGV0ZWN0IGlmIHdlIGNhbiB1c2UgYHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKWAgYW5kIGdyYWNlZnVsbHkgZmFsbGJhY2sgdG9cbiAqIGBEYXRlLm5vdygpYCBpZiBpdCBkb2Vzbid0IGV4aXN0LiBXZSBuZWVkIHRvIHN1cHBvcnQgRmlyZWZveCA8IDE1IGZvciBub3dcbiAqIGJlY2F1c2Ugb2YgRmFjZWJvb2sncyB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLlxuICovXG5pZiAocGVyZm9ybWFuY2Uubm93KSB7XG4gIHBlcmZvcm1hbmNlTm93ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBwZXJmb3JtYW5jZS5ub3coKTtcbiAgfTtcbn0gZWxzZSB7XG4gIHBlcmZvcm1hbmNlTm93ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBEYXRlLm5vdygpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBlcmZvcm1hbmNlTm93O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2ZianMvbGliL3BlcmZvcm1hbmNlTm93LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 145 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule performance\n * @typechecks\n */\n\n'use strict';\n\nvar ExecutionEnvironment = __webpack_require__(9);\n\nvar performance;\n\nif (ExecutionEnvironment.canUseDOM) {\n performance = window.performance || window.msPerformance || window.webkitPerformance;\n}\n\nmodule.exports = performance || {};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9wZXJmb3JtYW5jZS5qcz85ZDhjIl0sIm5hbWVzIjpbIkV4ZWN1dGlvbkVudmlyb25tZW50IiwicmVxdWlyZSIsInBlcmZvcm1hbmNlIiwiY2FuVXNlRE9NIiwid2luZG93IiwibXNQZXJmb3JtYW5jZSIsIndlYmtpdFBlcmZvcm1hbmNlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLHVCQUF1QixtQkFBQUMsQ0FBUSxDQUFSLENBQTNCOztBQUVBLElBQUlDLFdBQUo7O0FBRUEsSUFBSUYscUJBQXFCRyxTQUF6QixFQUFvQztBQUNsQ0QsZ0JBQWNFLE9BQU9GLFdBQVAsSUFBc0JFLE9BQU9DLGFBQTdCLElBQThDRCxPQUFPRSxpQkFBbkU7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQk4sZUFBZSxFQUFoQyIsImZpbGUiOiIxNDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgcGVyZm9ybWFuY2VcbiAqIEB0eXBlY2hlY2tzXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCcuL0V4ZWN1dGlvbkVudmlyb25tZW50Jyk7XG5cbnZhciBwZXJmb3JtYW5jZTtcblxuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICBwZXJmb3JtYW5jZSA9IHdpbmRvdy5wZXJmb3JtYW5jZSB8fCB3aW5kb3cubXNQZXJmb3JtYW5jZSB8fCB3aW5kb3cud2Via2l0UGVyZm9ybWFuY2U7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGVyZm9ybWFuY2UgfHwge307XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvcGVyZm9ybWFuY2UuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 146 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactVersion\n */\n\n'use strict';\n\nmodule.exports = '0.14.8';//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RWZXJzaW9uLmpzPzdiNjYiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUIsUUFBakIiLCJmaWxlIjoiMTQ2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0VmVyc2lvblxuICovXG5cbid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSAnMC4xNC44JztcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RWZXJzaW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 147 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n* @providesModule renderSubtreeIntoContainer\n*/\n\n'use strict';\n\nvar ReactMount = __webpack_require__(28);\n\nmodule.exports = ReactMount.renderSubtreeIntoContainer;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvcmVuZGVyU3VidHJlZUludG9Db250YWluZXIuanM/ZTk0MCJdLCJuYW1lcyI6WyJSZWFjdE1vdW50IiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsYUFBYSxtQkFBQUMsQ0FBUSxFQUFSLENBQWpCOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCSCxXQUFXSSwwQkFBNUIiLCJmaWxlIjoiMTQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuKiBAcHJvdmlkZXNNb2R1bGUgcmVuZGVyU3VidHJlZUludG9Db250YWluZXJcbiovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0TW91bnQgPSByZXF1aXJlKCcuL1JlYWN0TW91bnQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdE1vdW50LnJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 148 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMServer\n */\n\n'use strict';\n\nvar ReactDefaultInjection = __webpack_require__(71);\nvar ReactServerRendering = __webpack_require__(149);\nvar ReactVersion = __webpack_require__(146);\n\nReactDefaultInjection.inject();\n\nvar ReactDOMServer = {\n renderToString: ReactServerRendering.renderToString,\n renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,\n version: ReactVersion\n};\n\nmodule.exports = ReactDOMServer;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01TZXJ2ZXIuanM/MTRhOCJdLCJuYW1lcyI6WyJSZWFjdERlZmF1bHRJbmplY3Rpb24iLCJyZXF1aXJlIiwiUmVhY3RTZXJ2ZXJSZW5kZXJpbmciLCJSZWFjdFZlcnNpb24iLCJpbmplY3QiLCJSZWFjdERPTVNlcnZlciIsInJlbmRlclRvU3RyaW5nIiwicmVuZGVyVG9TdGF0aWNNYXJrdXAiLCJ2ZXJzaW9uIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsd0JBQXdCLG1CQUFBQyxDQUFRLEVBQVIsQ0FBNUI7QUFDQSxJQUFJQyx1QkFBdUIsbUJBQUFELENBQVEsR0FBUixDQUEzQjtBQUNBLElBQUlFLGVBQWUsbUJBQUFGLENBQVEsR0FBUixDQUFuQjs7QUFFQUQsc0JBQXNCSSxNQUF0Qjs7QUFFQSxJQUFJQyxpQkFBaUI7QUFDbkJDLGtCQUFnQkoscUJBQXFCSSxjQURsQjtBQUVuQkMsd0JBQXNCTCxxQkFBcUJLLG9CQUZ4QjtBQUduQkMsV0FBU0w7QUFIVSxDQUFyQjs7QUFNQU0sT0FBT0MsT0FBUCxHQUFpQkwsY0FBakIiLCJmaWxlIjoiMTQ4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIFJlYWN0RE9NU2VydmVyXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3REZWZhdWx0SW5qZWN0aW9uID0gcmVxdWlyZSgnLi9SZWFjdERlZmF1bHRJbmplY3Rpb24nKTtcbnZhciBSZWFjdFNlcnZlclJlbmRlcmluZyA9IHJlcXVpcmUoJy4vUmVhY3RTZXJ2ZXJSZW5kZXJpbmcnKTtcbnZhciBSZWFjdFZlcnNpb24gPSByZXF1aXJlKCcuL1JlYWN0VmVyc2lvbicpO1xuXG5SZWFjdERlZmF1bHRJbmplY3Rpb24uaW5qZWN0KCk7XG5cbnZhciBSZWFjdERPTVNlcnZlciA9IHtcbiAgcmVuZGVyVG9TdHJpbmc6IFJlYWN0U2VydmVyUmVuZGVyaW5nLnJlbmRlclRvU3RyaW5nLFxuICByZW5kZXJUb1N0YXRpY01hcmt1cDogUmVhY3RTZXJ2ZXJSZW5kZXJpbmcucmVuZGVyVG9TdGF0aWNNYXJrdXAsXG4gIHZlcnNpb246IFJlYWN0VmVyc2lvblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdERPTVNlcnZlcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01TZXJ2ZXIuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 149 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @typechecks static-only\n * @providesModule ReactServerRendering\n */\n'use strict';\n\nvar ReactDefaultBatchingStrategy = __webpack_require__(92);\nvar ReactElement = __webpack_require__(42);\nvar ReactInstanceHandles = __webpack_require__(45);\nvar ReactMarkupChecksum = __webpack_require__(48);\nvar ReactServerBatchingStrategy = __webpack_require__(150);\nvar ReactServerRenderingTransaction = __webpack_require__(151);\nvar ReactUpdates = __webpack_require__(54);\n\nvar emptyObject = __webpack_require__(58);\nvar instantiateReactComponent = __webpack_require__(62);\nvar invariant = __webpack_require__(13);\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup\n */\nfunction renderToString(element) {\n !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToString(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n var transaction;\n try {\n ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n var id = ReactInstanceHandles.createReactRootID();\n transaction = ReactServerRenderingTransaction.getPooled(false);\n\n return transaction.perform(function () {\n var componentInstance = instantiateReactComponent(element, null);\n var markup = componentInstance.mountComponent(id, transaction, emptyObject);\n return ReactMarkupChecksum.addChecksumToMarkup(markup);\n }, null);\n } finally {\n ReactServerRenderingTransaction.release(transaction);\n // Revert to the DOM batching strategy since these two renderers\n // currently share these stateful modules.\n ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n }\n}\n\n/**\n * @param {ReactElement} element\n * @return {string} the HTML markup, without the extra React ID and checksum\n * (for generating static pages)\n */\nfunction renderToStaticMarkup(element) {\n !ReactElement.isValidElement(element) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'renderToStaticMarkup(): You must pass a valid ReactElement.') : invariant(false) : undefined;\n\n var transaction;\n try {\n ReactUpdates.injection.injectBatchingStrategy(ReactServerBatchingStrategy);\n\n var id = ReactInstanceHandles.createReactRootID();\n transaction = ReactServerRenderingTransaction.getPooled(true);\n\n return transaction.perform(function () {\n var componentInstance = instantiateReactComponent(element, null);\n return componentInstance.mountComponent(id, transaction, emptyObject);\n }, null);\n } finally {\n ReactServerRenderingTransaction.release(transaction);\n // Revert to the DOM batching strategy since these two renderers\n // currently share these stateful modules.\n ReactUpdates.injection.injectBatchingStrategy(ReactDefaultBatchingStrategy);\n }\n}\n\nmodule.exports = {\n renderToString: renderToString,\n renderToStaticMarkup: renderToStaticMarkup\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RTZXJ2ZXJSZW5kZXJpbmcuanM/YjUyYyJdLCJuYW1lcyI6WyJSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5IiwicmVxdWlyZSIsIlJlYWN0RWxlbWVudCIsIlJlYWN0SW5zdGFuY2VIYW5kbGVzIiwiUmVhY3RNYXJrdXBDaGVja3N1bSIsIlJlYWN0U2VydmVyQmF0Y2hpbmdTdHJhdGVneSIsIlJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb24iLCJSZWFjdFVwZGF0ZXMiLCJlbXB0eU9iamVjdCIsImluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQiLCJpbnZhcmlhbnQiLCJyZW5kZXJUb1N0cmluZyIsImVsZW1lbnQiLCJpc1ZhbGlkRWxlbWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsInRyYW5zYWN0aW9uIiwiaW5qZWN0aW9uIiwiaW5qZWN0QmF0Y2hpbmdTdHJhdGVneSIsImlkIiwiY3JlYXRlUmVhY3RSb290SUQiLCJnZXRQb29sZWQiLCJwZXJmb3JtIiwiY29tcG9uZW50SW5zdGFuY2UiLCJtYXJrdXAiLCJtb3VudENvbXBvbmVudCIsImFkZENoZWNrc3VtVG9NYXJrdXAiLCJyZWxlYXNlIiwicmVuZGVyVG9TdGF0aWNNYXJrdXAiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSwrQkFBK0IsbUJBQUFDLENBQVEsRUFBUixDQUFuQztBQUNBLElBQUlDLGVBQWUsbUJBQUFELENBQVEsRUFBUixDQUFuQjtBQUNBLElBQUlFLHVCQUF1QixtQkFBQUYsQ0FBUSxFQUFSLENBQTNCO0FBQ0EsSUFBSUcsc0JBQXNCLG1CQUFBSCxDQUFRLEVBQVIsQ0FBMUI7QUFDQSxJQUFJSSw4QkFBOEIsbUJBQUFKLENBQVEsR0FBUixDQUFsQztBQUNBLElBQUlLLGtDQUFrQyxtQkFBQUwsQ0FBUSxHQUFSLENBQXRDO0FBQ0EsSUFBSU0sZUFBZSxtQkFBQU4sQ0FBUSxFQUFSLENBQW5COztBQUVBLElBQUlPLGNBQWMsbUJBQUFQLENBQVEsRUFBUixDQUFsQjtBQUNBLElBQUlRLDRCQUE0QixtQkFBQVIsQ0FBUSxFQUFSLENBQWhDO0FBQ0EsSUFBSVMsWUFBWSxtQkFBQVQsQ0FBUSxFQUFSLENBQWhCOztBQUVBOzs7O0FBSUEsU0FBU1UsY0FBVCxDQUF3QkMsT0FBeEIsRUFBaUM7QUFDL0IsR0FBQ1YsYUFBYVcsY0FBYixDQUE0QkQsT0FBNUIsQ0FBRCxHQUF3Q0UsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDTixVQUFVLEtBQVYsRUFBaUIsdURBQWpCLENBQXhDLEdBQW9IQSxVQUFVLEtBQVYsQ0FBNUosR0FBK0tPLFNBQS9LOztBQUVBLE1BQUlDLFdBQUo7QUFDQSxNQUFJO0FBQ0ZYLGlCQUFhWSxTQUFiLENBQXVCQyxzQkFBdkIsQ0FBOENmLDJCQUE5Qzs7QUFFQSxRQUFJZ0IsS0FBS2xCLHFCQUFxQm1CLGlCQUFyQixFQUFUO0FBQ0FKLGtCQUFjWixnQ0FBZ0NpQixTQUFoQyxDQUEwQyxLQUExQyxDQUFkOztBQUVBLFdBQU9MLFlBQVlNLE9BQVosQ0FBb0IsWUFBWTtBQUNyQyxVQUFJQyxvQkFBb0JoQiwwQkFBMEJHLE9BQTFCLEVBQW1DLElBQW5DLENBQXhCO0FBQ0EsVUFBSWMsU0FBU0Qsa0JBQWtCRSxjQUFsQixDQUFpQ04sRUFBakMsRUFBcUNILFdBQXJDLEVBQWtEVixXQUFsRCxDQUFiO0FBQ0EsYUFBT0osb0JBQW9Cd0IsbUJBQXBCLENBQXdDRixNQUF4QyxDQUFQO0FBQ0QsS0FKTSxFQUlKLElBSkksQ0FBUDtBQUtELEdBWEQsU0FXVTtBQUNScEIsb0NBQWdDdUIsT0FBaEMsQ0FBd0NYLFdBQXhDO0FBQ0E7QUFDQTtBQUNBWCxpQkFBYVksU0FBYixDQUF1QkMsc0JBQXZCLENBQThDcEIsNEJBQTlDO0FBQ0Q7QUFDRjs7QUFFRDs7Ozs7QUFLQSxTQUFTOEIsb0JBQVQsQ0FBOEJsQixPQUE5QixFQUF1QztBQUNyQyxHQUFDVixhQUFhVyxjQUFiLENBQTRCRCxPQUE1QixDQUFELEdBQXdDRSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NOLFVBQVUsS0FBVixFQUFpQiw2REFBakIsQ0FBeEMsR0FBMEhBLFVBQVUsS0FBVixDQUFsSyxHQUFxTE8sU0FBckw7O0FBRUEsTUFBSUMsV0FBSjtBQUNBLE1BQUk7QUFDRlgsaUJBQWFZLFNBQWIsQ0FBdUJDLHNCQUF2QixDQUE4Q2YsMkJBQTlDOztBQUVBLFFBQUlnQixLQUFLbEIscUJBQXFCbUIsaUJBQXJCLEVBQVQ7QUFDQUosa0JBQWNaLGdDQUFnQ2lCLFNBQWhDLENBQTBDLElBQTFDLENBQWQ7O0FBRUEsV0FBT0wsWUFBWU0sT0FBWixDQUFvQixZQUFZO0FBQ3JDLFVBQUlDLG9CQUFvQmhCLDBCQUEwQkcsT0FBMUIsRUFBbUMsSUFBbkMsQ0FBeEI7QUFDQSxhQUFPYSxrQkFBa0JFLGNBQWxCLENBQWlDTixFQUFqQyxFQUFxQ0gsV0FBckMsRUFBa0RWLFdBQWxELENBQVA7QUFDRCxLQUhNLEVBR0osSUFISSxDQUFQO0FBSUQsR0FWRCxTQVVVO0FBQ1JGLG9DQUFnQ3VCLE9BQWhDLENBQXdDWCxXQUF4QztBQUNBO0FBQ0E7QUFDQVgsaUJBQWFZLFNBQWIsQ0FBdUJDLHNCQUF2QixDQUE4Q3BCLDRCQUE5QztBQUNEO0FBQ0Y7O0FBRUQrQixPQUFPQyxPQUFQLEdBQWlCO0FBQ2ZyQixrQkFBZ0JBLGNBREQ7QUFFZm1CLHdCQUFzQkE7QUFGUCxDQUFqQixDIiwiZmlsZSI6IjE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEB0eXBlY2hlY2tzIHN0YXRpYy1vbmx5XG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneSA9IHJlcXVpcmUoJy4vUmVhY3REZWZhdWx0QmF0Y2hpbmdTdHJhdGVneScpO1xudmFyIFJlYWN0RWxlbWVudCA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50Jyk7XG52YXIgUmVhY3RJbnN0YW5jZUhhbmRsZXMgPSByZXF1aXJlKCcuL1JlYWN0SW5zdGFuY2VIYW5kbGVzJyk7XG52YXIgUmVhY3RNYXJrdXBDaGVja3N1bSA9IHJlcXVpcmUoJy4vUmVhY3RNYXJrdXBDaGVja3N1bScpO1xudmFyIFJlYWN0U2VydmVyQmF0Y2hpbmdTdHJhdGVneSA9IHJlcXVpcmUoJy4vUmVhY3RTZXJ2ZXJCYXRjaGluZ1N0cmF0ZWd5Jyk7XG52YXIgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbiA9IHJlcXVpcmUoJy4vUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbicpO1xudmFyIFJlYWN0VXBkYXRlcyA9IHJlcXVpcmUoJy4vUmVhY3RVcGRhdGVzJyk7XG5cbnZhciBlbXB0eU9iamVjdCA9IHJlcXVpcmUoJ2ZianMvbGliL2VtcHR5T2JqZWN0Jyk7XG52YXIgaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCA9IHJlcXVpcmUoJy4vaW5zdGFudGlhdGVSZWFjdENvbXBvbmVudCcpO1xudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBIVE1MIG1hcmt1cFxuICovXG5mdW5jdGlvbiByZW5kZXJUb1N0cmluZyhlbGVtZW50KSB7XG4gICFSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQoZWxlbWVudCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gaW52YXJpYW50KGZhbHNlLCAncmVuZGVyVG9TdHJpbmcoKTogWW91IG11c3QgcGFzcyBhIHZhbGlkIFJlYWN0RWxlbWVudC4nKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgdmFyIHRyYW5zYWN0aW9uO1xuICB0cnkge1xuICAgIFJlYWN0VXBkYXRlcy5pbmplY3Rpb24uaW5qZWN0QmF0Y2hpbmdTdHJhdGVneShSZWFjdFNlcnZlckJhdGNoaW5nU3RyYXRlZ3kpO1xuXG4gICAgdmFyIGlkID0gUmVhY3RJbnN0YW5jZUhhbmRsZXMuY3JlYXRlUmVhY3RSb290SUQoKTtcbiAgICB0cmFuc2FjdGlvbiA9IFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb24uZ2V0UG9vbGVkKGZhbHNlKTtcblxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5wZXJmb3JtKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IGluc3RhbnRpYXRlUmVhY3RDb21wb25lbnQoZWxlbWVudCwgbnVsbCk7XG4gICAgICB2YXIgbWFya3VwID0gY29tcG9uZW50SW5zdGFuY2UubW91bnRDb21wb25lbnQoaWQsIHRyYW5zYWN0aW9uLCBlbXB0eU9iamVjdCk7XG4gICAgICByZXR1cm4gUmVhY3RNYXJrdXBDaGVja3N1bS5hZGRDaGVja3N1bVRvTWFya3VwKG1hcmt1cCk7XG4gICAgfSwgbnVsbCk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbi5yZWxlYXNlKHRyYW5zYWN0aW9uKTtcbiAgICAvLyBSZXZlcnQgdG8gdGhlIERPTSBiYXRjaGluZyBzdHJhdGVneSBzaW5jZSB0aGVzZSB0d28gcmVuZGVyZXJzXG4gICAgLy8gY3VycmVudGx5IHNoYXJlIHRoZXNlIHN0YXRlZnVsIG1vZHVsZXMuXG4gICAgUmVhY3RVcGRhdGVzLmluamVjdGlvbi5pbmplY3RCYXRjaGluZ1N0cmF0ZWd5KFJlYWN0RGVmYXVsdEJhdGNoaW5nU3RyYXRlZ3kpO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIEhUTUwgbWFya3VwLCB3aXRob3V0IHRoZSBleHRyYSBSZWFjdCBJRCBhbmQgY2hlY2tzdW1cbiAqIChmb3IgZ2VuZXJhdGluZyBzdGF0aWMgcGFnZXMpXG4gKi9cbmZ1bmN0aW9uIHJlbmRlclRvU3RhdGljTWFya3VwKGVsZW1lbnQpIHtcbiAgIVJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudChlbGVtZW50KSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdyZW5kZXJUb1N0YXRpY01hcmt1cCgpOiBZb3UgbXVzdCBwYXNzIGEgdmFsaWQgUmVhY3RFbGVtZW50LicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICB2YXIgdHJhbnNhY3Rpb247XG4gIHRyeSB7XG4gICAgUmVhY3RVcGRhdGVzLmluamVjdGlvbi5pbmplY3RCYXRjaGluZ1N0cmF0ZWd5KFJlYWN0U2VydmVyQmF0Y2hpbmdTdHJhdGVneSk7XG5cbiAgICB2YXIgaWQgPSBSZWFjdEluc3RhbmNlSGFuZGxlcy5jcmVhdGVSZWFjdFJvb3RJRCgpO1xuICAgIHRyYW5zYWN0aW9uID0gUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbi5nZXRQb29sZWQodHJ1ZSk7XG5cbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ucGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY29tcG9uZW50SW5zdGFuY2UgPSBpbnN0YW50aWF0ZVJlYWN0Q29tcG9uZW50KGVsZW1lbnQsIG51bGwpO1xuICAgICAgcmV0dXJuIGNvbXBvbmVudEluc3RhbmNlLm1vdW50Q29tcG9uZW50KGlkLCB0cmFuc2FjdGlvbiwgZW1wdHlPYmplY3QpO1xuICAgIH0sIG51bGwpO1xuICB9IGZpbmFsbHkge1xuICAgIFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb24ucmVsZWFzZSh0cmFuc2FjdGlvbik7XG4gICAgLy8gUmV2ZXJ0IHRvIHRoZSBET00gYmF0Y2hpbmcgc3RyYXRlZ3kgc2luY2UgdGhlc2UgdHdvIHJlbmRlcmVyc1xuICAgIC8vIGN1cnJlbnRseSBzaGFyZSB0aGVzZSBzdGF0ZWZ1bCBtb2R1bGVzLlxuICAgIFJlYWN0VXBkYXRlcy5pbmplY3Rpb24uaW5qZWN0QmF0Y2hpbmdTdHJhdGVneShSZWFjdERlZmF1bHRCYXRjaGluZ1N0cmF0ZWd5KTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcmVuZGVyVG9TdHJpbmc6IHJlbmRlclRvU3RyaW5nLFxuICByZW5kZXJUb1N0YXRpY01hcmt1cDogcmVuZGVyVG9TdGF0aWNNYXJrdXBcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0U2VydmVyUmVuZGVyaW5nLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 150 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerBatchingStrategy\n * @typechecks\n */\n\n'use strict';\n\nvar ReactServerBatchingStrategy = {\n isBatchingUpdates: false,\n batchedUpdates: function batchedUpdates(callback) {\n // Don't do anything here. During the server rendering we don't want to\n // schedule any updates. We will simply ignore them.\n }\n};\n\nmodule.exports = ReactServerBatchingStrategy;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RTZXJ2ZXJCYXRjaGluZ1N0cmF0ZWd5LmpzPzFkZjAiXSwibmFtZXMiOlsiUmVhY3RTZXJ2ZXJCYXRjaGluZ1N0cmF0ZWd5IiwiaXNCYXRjaGluZ1VwZGF0ZXMiLCJiYXRjaGVkVXBkYXRlcyIsImNhbGxiYWNrIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLDhCQUE4QjtBQUNoQ0MscUJBQW1CLEtBRGE7QUFFaENDLGtCQUFnQix3QkFBVUMsUUFBVixFQUFvQjtBQUNsQztBQUNBO0FBQ0Q7QUFMK0IsQ0FBbEM7O0FBUUFDLE9BQU9DLE9BQVAsR0FBaUJMLDJCQUFqQiIsImZpbGUiOiIxNTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RTZXJ2ZXJCYXRjaGluZ1N0cmF0ZWd5XG4gKiBAdHlwZWNoZWNrc1xuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0U2VydmVyQmF0Y2hpbmdTdHJhdGVneSA9IHtcbiAgaXNCYXRjaGluZ1VwZGF0ZXM6IGZhbHNlLFxuICBiYXRjaGVkVXBkYXRlczogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaGVyZS4gRHVyaW5nIHRoZSBzZXJ2ZXIgcmVuZGVyaW5nIHdlIGRvbid0IHdhbnQgdG9cbiAgICAvLyBzY2hlZHVsZSBhbnkgdXBkYXRlcy4gV2Ugd2lsbCBzaW1wbHkgaWdub3JlIHRoZW0uXG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RTZXJ2ZXJCYXRjaGluZ1N0cmF0ZWd5O1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0L2xpYi9SZWFjdFNlcnZlckJhdGNoaW5nU3RyYXRlZ3kuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 151 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactServerRenderingTransaction\n * @typechecks\n */\n\n'use strict';\n\nvar PooledClass = __webpack_require__(56);\nvar CallbackQueue = __webpack_require__(55);\nvar Transaction = __webpack_require__(57);\n\nvar assign = __webpack_require__(39);\nvar emptyFunction = __webpack_require__(15);\n\n/**\n * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks\n * during the performing of the transaction.\n */\nvar ON_DOM_READY_QUEUEING = {\n /**\n * Initializes the internal `onDOMReady` queue.\n */\n initialize: function initialize() {\n this.reactMountReady.reset();\n },\n\n close: emptyFunction\n};\n\n/**\n * Executed within the scope of the `Transaction` instance. Consider these as\n * being member methods, but with an implied ordering while being isolated from\n * each other.\n */\nvar TRANSACTION_WRAPPERS = [ON_DOM_READY_QUEUEING];\n\n/**\n * @class ReactServerRenderingTransaction\n * @param {boolean} renderToStaticMarkup\n */\nfunction ReactServerRenderingTransaction(renderToStaticMarkup) {\n this.reinitializeTransaction();\n this.renderToStaticMarkup = renderToStaticMarkup;\n this.reactMountReady = CallbackQueue.getPooled(null);\n this.useCreateElement = false;\n}\n\nvar Mixin = {\n /**\n * @see Transaction\n * @abstract\n * @final\n * @return {array} Empty list of operation wrap procedures.\n */\n getTransactionWrappers: function getTransactionWrappers() {\n return TRANSACTION_WRAPPERS;\n },\n\n /**\n * @return {object} The queue to collect `onDOMReady` callbacks with.\n */\n getReactMountReady: function getReactMountReady() {\n return this.reactMountReady;\n },\n\n /**\n * `PooledClass` looks for this, and will invoke this before allowing this\n * instance to be reused.\n */\n destructor: function destructor() {\n CallbackQueue.release(this.reactMountReady);\n this.reactMountReady = null;\n }\n};\n\nassign(ReactServerRenderingTransaction.prototype, Transaction.Mixin, Mixin);\n\nPooledClass.addPoolingTo(ReactServerRenderingTransaction);\n\nmodule.exports = ReactServerRenderingTransaction;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbi5qcz9mZWYzIl0sIm5hbWVzIjpbIlBvb2xlZENsYXNzIiwicmVxdWlyZSIsIkNhbGxiYWNrUXVldWUiLCJUcmFuc2FjdGlvbiIsImFzc2lnbiIsImVtcHR5RnVuY3Rpb24iLCJPTl9ET01fUkVBRFlfUVVFVUVJTkciLCJpbml0aWFsaXplIiwicmVhY3RNb3VudFJlYWR5IiwicmVzZXQiLCJjbG9zZSIsIlRSQU5TQUNUSU9OX1dSQVBQRVJTIiwiUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvbiIsInJlbmRlclRvU3RhdGljTWFya3VwIiwicmVpbml0aWFsaXplVHJhbnNhY3Rpb24iLCJnZXRQb29sZWQiLCJ1c2VDcmVhdGVFbGVtZW50IiwiTWl4aW4iLCJnZXRUcmFuc2FjdGlvbldyYXBwZXJzIiwiZ2V0UmVhY3RNb3VudFJlYWR5IiwiZGVzdHJ1Y3RvciIsInJlbGVhc2UiLCJwcm90b3R5cGUiLCJhZGRQb29saW5nVG8iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0FBWUE7O0FBRUEsSUFBSUEsY0FBYyxtQkFBQUMsQ0FBUSxFQUFSLENBQWxCO0FBQ0EsSUFBSUMsZ0JBQWdCLG1CQUFBRCxDQUFRLEVBQVIsQ0FBcEI7QUFDQSxJQUFJRSxjQUFjLG1CQUFBRixDQUFRLEVBQVIsQ0FBbEI7O0FBRUEsSUFBSUcsU0FBUyxtQkFBQUgsQ0FBUSxFQUFSLENBQWI7QUFDQSxJQUFJSSxnQkFBZ0IsbUJBQUFKLENBQVEsRUFBUixDQUFwQjs7QUFFQTs7OztBQUlBLElBQUlLLHdCQUF3QjtBQUMxQjs7O0FBR0FDLGNBQVksc0JBQVk7QUFDdEIsU0FBS0MsZUFBTCxDQUFxQkMsS0FBckI7QUFDRCxHQU55Qjs7QUFRMUJDLFNBQU9MO0FBUm1CLENBQTVCOztBQVdBOzs7OztBQUtBLElBQUlNLHVCQUF1QixDQUFDTCxxQkFBRCxDQUEzQjs7QUFFQTs7OztBQUlBLFNBQVNNLCtCQUFULENBQXlDQyxvQkFBekMsRUFBK0Q7QUFDN0QsT0FBS0MsdUJBQUw7QUFDQSxPQUFLRCxvQkFBTCxHQUE0QkEsb0JBQTVCO0FBQ0EsT0FBS0wsZUFBTCxHQUF1Qk4sY0FBY2EsU0FBZCxDQUF3QixJQUF4QixDQUF2QjtBQUNBLE9BQUtDLGdCQUFMLEdBQXdCLEtBQXhCO0FBQ0Q7O0FBRUQsSUFBSUMsUUFBUTtBQUNWOzs7Ozs7QUFNQUMsMEJBQXdCLGtDQUFZO0FBQ2xDLFdBQU9QLG9CQUFQO0FBQ0QsR0FUUzs7QUFXVjs7O0FBR0FRLHNCQUFvQiw4QkFBWTtBQUM5QixXQUFPLEtBQUtYLGVBQVo7QUFDRCxHQWhCUzs7QUFrQlY7Ozs7QUFJQVksY0FBWSxzQkFBWTtBQUN0QmxCLGtCQUFjbUIsT0FBZCxDQUFzQixLQUFLYixlQUEzQjtBQUNBLFNBQUtBLGVBQUwsR0FBdUIsSUFBdkI7QUFDRDtBQXpCUyxDQUFaOztBQTRCQUosT0FBT1EsZ0NBQWdDVSxTQUF2QyxFQUFrRG5CLFlBQVljLEtBQTlELEVBQXFFQSxLQUFyRTs7QUFFQWpCLFlBQVl1QixZQUFaLENBQXlCWCwrQkFBekI7O0FBRUFZLE9BQU9DLE9BQVAsR0FBaUJiLCtCQUFqQiIsImZpbGUiOiIxNTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RTZXJ2ZXJSZW5kZXJpbmdUcmFuc2FjdGlvblxuICogQHR5cGVjaGVja3NcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBQb29sZWRDbGFzcyA9IHJlcXVpcmUoJy4vUG9vbGVkQ2xhc3MnKTtcbnZhciBDYWxsYmFja1F1ZXVlID0gcmVxdWlyZSgnLi9DYWxsYmFja1F1ZXVlJyk7XG52YXIgVHJhbnNhY3Rpb24gPSByZXF1aXJlKCcuL1RyYW5zYWN0aW9uJyk7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciBlbXB0eUZ1bmN0aW9uID0gcmVxdWlyZSgnZmJqcy9saWIvZW1wdHlGdW5jdGlvbicpO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgYENhbGxiYWNrUXVldWVgIHF1ZXVlIGZvciBjb2xsZWN0aW5nIGBvbkRPTVJlYWR5YCBjYWxsYmFja3NcbiAqIGR1cmluZyB0aGUgcGVyZm9ybWluZyBvZiB0aGUgdHJhbnNhY3Rpb24uXG4gKi9cbnZhciBPTl9ET01fUkVBRFlfUVVFVUVJTkcgPSB7XG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgaW50ZXJuYWwgYG9uRE9NUmVhZHlgIHF1ZXVlLlxuICAgKi9cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucmVhY3RNb3VudFJlYWR5LnJlc2V0KCk7XG4gIH0sXG5cbiAgY2xvc2U6IGVtcHR5RnVuY3Rpb25cbn07XG5cbi8qKlxuICogRXhlY3V0ZWQgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgYFRyYW5zYWN0aW9uYCBpbnN0YW5jZS4gQ29uc2lkZXIgdGhlc2UgYXNcbiAqIGJlaW5nIG1lbWJlciBtZXRob2RzLCBidXQgd2l0aCBhbiBpbXBsaWVkIG9yZGVyaW5nIHdoaWxlIGJlaW5nIGlzb2xhdGVkIGZyb21cbiAqIGVhY2ggb3RoZXIuXG4gKi9cbnZhciBUUkFOU0FDVElPTl9XUkFQUEVSUyA9IFtPTl9ET01fUkVBRFlfUVVFVUVJTkddO1xuXG4vKipcbiAqIEBjbGFzcyBSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHJlbmRlclRvU3RhdGljTWFya3VwXG4gKi9cbmZ1bmN0aW9uIFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb24ocmVuZGVyVG9TdGF0aWNNYXJrdXApIHtcbiAgdGhpcy5yZWluaXRpYWxpemVUcmFuc2FjdGlvbigpO1xuICB0aGlzLnJlbmRlclRvU3RhdGljTWFya3VwID0gcmVuZGVyVG9TdGF0aWNNYXJrdXA7XG4gIHRoaXMucmVhY3RNb3VudFJlYWR5ID0gQ2FsbGJhY2tRdWV1ZS5nZXRQb29sZWQobnVsbCk7XG4gIHRoaXMudXNlQ3JlYXRlRWxlbWVudCA9IGZhbHNlO1xufVxuXG52YXIgTWl4aW4gPSB7XG4gIC8qKlxuICAgKiBAc2VlIFRyYW5zYWN0aW9uXG4gICAqIEBhYnN0cmFjdFxuICAgKiBAZmluYWxcbiAgICogQHJldHVybiB7YXJyYXl9IEVtcHR5IGxpc3Qgb2Ygb3BlcmF0aW9uIHdyYXAgcHJvY2VkdXJlcy5cbiAgICovXG4gIGdldFRyYW5zYWN0aW9uV3JhcHBlcnM6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gVFJBTlNBQ1RJT05fV1JBUFBFUlM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEByZXR1cm4ge29iamVjdH0gVGhlIHF1ZXVlIHRvIGNvbGxlY3QgYG9uRE9NUmVhZHlgIGNhbGxiYWNrcyB3aXRoLlxuICAgKi9cbiAgZ2V0UmVhY3RNb3VudFJlYWR5OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVhY3RNb3VudFJlYWR5O1xuICB9LFxuXG4gIC8qKlxuICAgKiBgUG9vbGVkQ2xhc3NgIGxvb2tzIGZvciB0aGlzLCBhbmQgd2lsbCBpbnZva2UgdGhpcyBiZWZvcmUgYWxsb3dpbmcgdGhpc1xuICAgKiBpbnN0YW5jZSB0byBiZSByZXVzZWQuXG4gICAqL1xuICBkZXN0cnVjdG9yOiBmdW5jdGlvbiAoKSB7XG4gICAgQ2FsbGJhY2tRdWV1ZS5yZWxlYXNlKHRoaXMucmVhY3RNb3VudFJlYWR5KTtcbiAgICB0aGlzLnJlYWN0TW91bnRSZWFkeSA9IG51bGw7XG4gIH1cbn07XG5cbmFzc2lnbihSZWFjdFNlcnZlclJlbmRlcmluZ1RyYW5zYWN0aW9uLnByb3RvdHlwZSwgVHJhbnNhY3Rpb24uTWl4aW4sIE1peGluKTtcblxuUG9vbGVkQ2xhc3MuYWRkUG9vbGluZ1RvKFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb24pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb247XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0U2VydmVyUmVuZGVyaW5nVHJhbnNhY3Rpb24uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 152 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactIsomorphic\n */\n\n'use strict';\n\nvar ReactChildren = __webpack_require__(110);\nvar ReactComponent = __webpack_require__(123);\nvar ReactClass = __webpack_require__(122);\nvar ReactDOMFactories = __webpack_require__(153);\nvar ReactElement = __webpack_require__(42);\nvar ReactElementValidator = __webpack_require__(154);\nvar ReactPropTypes = __webpack_require__(107);\nvar ReactVersion = __webpack_require__(146);\n\nvar assign = __webpack_require__(39);\nvar onlyChild = __webpack_require__(156);\n\nvar createElement = ReactElement.createElement;\nvar createFactory = ReactElement.createFactory;\nvar cloneElement = ReactElement.cloneElement;\n\nif (process.env.NODE_ENV !== 'production') {\n createElement = ReactElementValidator.createElement;\n createFactory = ReactElementValidator.createFactory;\n cloneElement = ReactElementValidator.cloneElement;\n}\n\nvar React = {\n\n // Modern\n\n Children: {\n map: ReactChildren.map,\n forEach: ReactChildren.forEach,\n count: ReactChildren.count,\n toArray: ReactChildren.toArray,\n only: onlyChild\n },\n\n Component: ReactComponent,\n\n createElement: createElement,\n cloneElement: cloneElement,\n isValidElement: ReactElement.isValidElement,\n\n // Classic\n\n PropTypes: ReactPropTypes,\n createClass: ReactClass.createClass,\n createFactory: createFactory,\n createMixin: function createMixin(mixin) {\n // Currently a noop. Will be used to validate and trace mixins.\n return mixin;\n },\n\n // This looks DOM specific but these are actually isomorphic helpers\n // since they are just generating DOM strings.\n DOM: ReactDOMFactories,\n\n version: ReactVersion,\n\n // Hook for JSX spread, don't use this for anything else.\n __spread: assign\n};\n\nmodule.exports = React;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RJc29tb3JwaGljLmpzP2U4ODAiXSwibmFtZXMiOlsiUmVhY3RDaGlsZHJlbiIsInJlcXVpcmUiLCJSZWFjdENvbXBvbmVudCIsIlJlYWN0Q2xhc3MiLCJSZWFjdERPTUZhY3RvcmllcyIsIlJlYWN0RWxlbWVudCIsIlJlYWN0RWxlbWVudFZhbGlkYXRvciIsIlJlYWN0UHJvcFR5cGVzIiwiUmVhY3RWZXJzaW9uIiwiYXNzaWduIiwib25seUNoaWxkIiwiY3JlYXRlRWxlbWVudCIsImNyZWF0ZUZhY3RvcnkiLCJjbG9uZUVsZW1lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJSZWFjdCIsIkNoaWxkcmVuIiwibWFwIiwiZm9yRWFjaCIsImNvdW50IiwidG9BcnJheSIsIm9ubHkiLCJDb21wb25lbnQiLCJpc1ZhbGlkRWxlbWVudCIsIlByb3BUeXBlcyIsImNyZWF0ZUNsYXNzIiwiY3JlYXRlTWl4aW4iLCJtaXhpbiIsIkRPTSIsInZlcnNpb24iLCJfX3NwcmVhZCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOztBQUVBLElBQUlBLGdCQUFnQixtQkFBQUMsQ0FBUSxHQUFSLENBQXBCO0FBQ0EsSUFBSUMsaUJBQWlCLG1CQUFBRCxDQUFRLEdBQVIsQ0FBckI7QUFDQSxJQUFJRSxhQUFhLG1CQUFBRixDQUFRLEdBQVIsQ0FBakI7QUFDQSxJQUFJRyxvQkFBb0IsbUJBQUFILENBQVEsR0FBUixDQUF4QjtBQUNBLElBQUlJLGVBQWUsbUJBQUFKLENBQVEsRUFBUixDQUFuQjtBQUNBLElBQUlLLHdCQUF3QixtQkFBQUwsQ0FBUSxHQUFSLENBQTVCO0FBQ0EsSUFBSU0saUJBQWlCLG1CQUFBTixDQUFRLEdBQVIsQ0FBckI7QUFDQSxJQUFJTyxlQUFlLG1CQUFBUCxDQUFRLEdBQVIsQ0FBbkI7O0FBRUEsSUFBSVEsU0FBUyxtQkFBQVIsQ0FBUSxFQUFSLENBQWI7QUFDQSxJQUFJUyxZQUFZLG1CQUFBVCxDQUFRLEdBQVIsQ0FBaEI7O0FBRUEsSUFBSVUsZ0JBQWdCTixhQUFhTSxhQUFqQztBQUNBLElBQUlDLGdCQUFnQlAsYUFBYU8sYUFBakM7QUFDQSxJQUFJQyxlQUFlUixhQUFhUSxZQUFoQzs7QUFFQSxJQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNMLGtCQUFnQkwsc0JBQXNCSyxhQUF0QztBQUNBQyxrQkFBZ0JOLHNCQUFzQk0sYUFBdEM7QUFDQUMsaUJBQWVQLHNCQUFzQk8sWUFBckM7QUFDRDs7QUFFRCxJQUFJSSxRQUFROztBQUVWOztBQUVBQyxZQUFVO0FBQ1JDLFNBQUtuQixjQUFjbUIsR0FEWDtBQUVSQyxhQUFTcEIsY0FBY29CLE9BRmY7QUFHUkMsV0FBT3JCLGNBQWNxQixLQUhiO0FBSVJDLGFBQVN0QixjQUFjc0IsT0FKZjtBQUtSQyxVQUFNYjtBQUxFLEdBSkE7O0FBWVZjLGFBQVd0QixjQVpEOztBQWNWUyxpQkFBZUEsYUFkTDtBQWVWRSxnQkFBY0EsWUFmSjtBQWdCVlksa0JBQWdCcEIsYUFBYW9CLGNBaEJuQjs7QUFrQlY7O0FBRUFDLGFBQVduQixjQXBCRDtBQXFCVm9CLGVBQWF4QixXQUFXd0IsV0FyQmQ7QUFzQlZmLGlCQUFlQSxhQXRCTDtBQXVCVmdCLGVBQWEscUJBQVVDLEtBQVYsRUFBaUI7QUFDNUI7QUFDQSxXQUFPQSxLQUFQO0FBQ0QsR0ExQlM7O0FBNEJWO0FBQ0E7QUFDQUMsT0FBSzFCLGlCQTlCSzs7QUFnQ1YyQixXQUFTdkIsWUFoQ0M7O0FBa0NWO0FBQ0F3QixZQUFVdkI7QUFuQ0EsQ0FBWjs7QUFzQ0F3QixPQUFPQyxPQUFQLEdBQWlCakIsS0FBakIsQyIsImZpbGUiOiIxNTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RJc29tb3JwaGljXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RDaGlsZHJlbiA9IHJlcXVpcmUoJy4vUmVhY3RDaGlsZHJlbicpO1xudmFyIFJlYWN0Q29tcG9uZW50ID0gcmVxdWlyZSgnLi9SZWFjdENvbXBvbmVudCcpO1xudmFyIFJlYWN0Q2xhc3MgPSByZXF1aXJlKCcuL1JlYWN0Q2xhc3MnKTtcbnZhciBSZWFjdERPTUZhY3RvcmllcyA9IHJlcXVpcmUoJy4vUmVhY3RET01GYWN0b3JpZXMnKTtcbnZhciBSZWFjdEVsZW1lbnQgPSByZXF1aXJlKCcuL1JlYWN0RWxlbWVudCcpO1xudmFyIFJlYWN0RWxlbWVudFZhbGlkYXRvciA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50VmFsaWRhdG9yJyk7XG52YXIgUmVhY3RQcm9wVHlwZXMgPSByZXF1aXJlKCcuL1JlYWN0UHJvcFR5cGVzJyk7XG52YXIgUmVhY3RWZXJzaW9uID0gcmVxdWlyZSgnLi9SZWFjdFZlcnNpb24nKTtcblxudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4vT2JqZWN0LmFzc2lnbicpO1xudmFyIG9ubHlDaGlsZCA9IHJlcXVpcmUoJy4vb25seUNoaWxkJyk7XG5cbnZhciBjcmVhdGVFbGVtZW50ID0gUmVhY3RFbGVtZW50LmNyZWF0ZUVsZW1lbnQ7XG52YXIgY3JlYXRlRmFjdG9yeSA9IFJlYWN0RWxlbWVudC5jcmVhdGVGYWN0b3J5O1xudmFyIGNsb25lRWxlbWVudCA9IFJlYWN0RWxlbWVudC5jbG9uZUVsZW1lbnQ7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIGNyZWF0ZUVsZW1lbnQgPSBSZWFjdEVsZW1lbnRWYWxpZGF0b3IuY3JlYXRlRWxlbWVudDtcbiAgY3JlYXRlRmFjdG9yeSA9IFJlYWN0RWxlbWVudFZhbGlkYXRvci5jcmVhdGVGYWN0b3J5O1xuICBjbG9uZUVsZW1lbnQgPSBSZWFjdEVsZW1lbnRWYWxpZGF0b3IuY2xvbmVFbGVtZW50O1xufVxuXG52YXIgUmVhY3QgPSB7XG5cbiAgLy8gTW9kZXJuXG5cbiAgQ2hpbGRyZW46IHtcbiAgICBtYXA6IFJlYWN0Q2hpbGRyZW4ubWFwLFxuICAgIGZvckVhY2g6IFJlYWN0Q2hpbGRyZW4uZm9yRWFjaCxcbiAgICBjb3VudDogUmVhY3RDaGlsZHJlbi5jb3VudCxcbiAgICB0b0FycmF5OiBSZWFjdENoaWxkcmVuLnRvQXJyYXksXG4gICAgb25seTogb25seUNoaWxkXG4gIH0sXG5cbiAgQ29tcG9uZW50OiBSZWFjdENvbXBvbmVudCxcblxuICBjcmVhdGVFbGVtZW50OiBjcmVhdGVFbGVtZW50LFxuICBjbG9uZUVsZW1lbnQ6IGNsb25lRWxlbWVudCxcbiAgaXNWYWxpZEVsZW1lbnQ6IFJlYWN0RWxlbWVudC5pc1ZhbGlkRWxlbWVudCxcblxuICAvLyBDbGFzc2ljXG5cbiAgUHJvcFR5cGVzOiBSZWFjdFByb3BUeXBlcyxcbiAgY3JlYXRlQ2xhc3M6IFJlYWN0Q2xhc3MuY3JlYXRlQ2xhc3MsXG4gIGNyZWF0ZUZhY3Rvcnk6IGNyZWF0ZUZhY3RvcnksXG4gIGNyZWF0ZU1peGluOiBmdW5jdGlvbiAobWl4aW4pIHtcbiAgICAvLyBDdXJyZW50bHkgYSBub29wLiBXaWxsIGJlIHVzZWQgdG8gdmFsaWRhdGUgYW5kIHRyYWNlIG1peGlucy5cbiAgICByZXR1cm4gbWl4aW47XG4gIH0sXG5cbiAgLy8gVGhpcyBsb29rcyBET00gc3BlY2lmaWMgYnV0IHRoZXNlIGFyZSBhY3R1YWxseSBpc29tb3JwaGljIGhlbHBlcnNcbiAgLy8gc2luY2UgdGhleSBhcmUganVzdCBnZW5lcmF0aW5nIERPTSBzdHJpbmdzLlxuICBET006IFJlYWN0RE9NRmFjdG9yaWVzLFxuXG4gIHZlcnNpb246IFJlYWN0VmVyc2lvbixcblxuICAvLyBIb29rIGZvciBKU1ggc3ByZWFkLCBkb24ndCB1c2UgdGhpcyBmb3IgYW55dGhpbmcgZWxzZS5cbiAgX19zcHJlYWQ6IGFzc2lnblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBSZWFjdDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RJc29tb3JwaGljLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 153 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactDOMFactories\n * @typechecks static-only\n */\n\n'use strict';\n\nvar ReactElement = __webpack_require__(42);\nvar ReactElementValidator = __webpack_require__(154);\n\nvar mapObject = __webpack_require__(155);\n\n/**\n * Create a factory that creates HTML tag elements.\n *\n * @param {string} tag Tag name (e.g. `div`).\n * @private\n */\nfunction createDOMFactory(tag) {\n if (process.env.NODE_ENV !== 'production') {\n return ReactElementValidator.createFactory(tag);\n }\n return ReactElement.createFactory(tag);\n}\n\n/**\n * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.\n * This is also accessible via `React.DOM`.\n *\n * @public\n */\nvar ReactDOMFactories = mapObject({\n a: 'a',\n abbr: 'abbr',\n address: 'address',\n area: 'area',\n article: 'article',\n aside: 'aside',\n audio: 'audio',\n b: 'b',\n base: 'base',\n bdi: 'bdi',\n bdo: 'bdo',\n big: 'big',\n blockquote: 'blockquote',\n body: 'body',\n br: 'br',\n button: 'button',\n canvas: 'canvas',\n caption: 'caption',\n cite: 'cite',\n code: 'code',\n col: 'col',\n colgroup: 'colgroup',\n data: 'data',\n datalist: 'datalist',\n dd: 'dd',\n del: 'del',\n details: 'details',\n dfn: 'dfn',\n dialog: 'dialog',\n div: 'div',\n dl: 'dl',\n dt: 'dt',\n em: 'em',\n embed: 'embed',\n fieldset: 'fieldset',\n figcaption: 'figcaption',\n figure: 'figure',\n footer: 'footer',\n form: 'form',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n head: 'head',\n header: 'header',\n hgroup: 'hgroup',\n hr: 'hr',\n html: 'html',\n i: 'i',\n iframe: 'iframe',\n img: 'img',\n input: 'input',\n ins: 'ins',\n kbd: 'kbd',\n keygen: 'keygen',\n label: 'label',\n legend: 'legend',\n li: 'li',\n link: 'link',\n main: 'main',\n map: 'map',\n mark: 'mark',\n menu: 'menu',\n menuitem: 'menuitem',\n meta: 'meta',\n meter: 'meter',\n nav: 'nav',\n noscript: 'noscript',\n object: 'object',\n ol: 'ol',\n optgroup: 'optgroup',\n option: 'option',\n output: 'output',\n p: 'p',\n param: 'param',\n picture: 'picture',\n pre: 'pre',\n progress: 'progress',\n q: 'q',\n rp: 'rp',\n rt: 'rt',\n ruby: 'ruby',\n s: 's',\n samp: 'samp',\n script: 'script',\n section: 'section',\n select: 'select',\n small: 'small',\n source: 'source',\n span: 'span',\n strong: 'strong',\n style: 'style',\n sub: 'sub',\n summary: 'summary',\n sup: 'sup',\n table: 'table',\n tbody: 'tbody',\n td: 'td',\n textarea: 'textarea',\n tfoot: 'tfoot',\n th: 'th',\n thead: 'thead',\n time: 'time',\n title: 'title',\n tr: 'tr',\n track: 'track',\n u: 'u',\n ul: 'ul',\n 'var': 'var',\n video: 'video',\n wbr: 'wbr',\n\n // SVG\n circle: 'circle',\n clipPath: 'clipPath',\n defs: 'defs',\n ellipse: 'ellipse',\n g: 'g',\n image: 'image',\n line: 'line',\n linearGradient: 'linearGradient',\n mask: 'mask',\n path: 'path',\n pattern: 'pattern',\n polygon: 'polygon',\n polyline: 'polyline',\n radialGradient: 'radialGradient',\n rect: 'rect',\n stop: 'stop',\n svg: 'svg',\n text: 'text',\n tspan: 'tspan'\n\n}, createDOMFactory);\n\nmodule.exports = ReactDOMFactories;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RET01GYWN0b3JpZXMuanM/ZDdiZSJdLCJuYW1lcyI6WyJSZWFjdEVsZW1lbnQiLCJyZXF1aXJlIiwiUmVhY3RFbGVtZW50VmFsaWRhdG9yIiwibWFwT2JqZWN0IiwiY3JlYXRlRE9NRmFjdG9yeSIsInRhZyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNyZWF0ZUZhY3RvcnkiLCJSZWFjdERPTUZhY3RvcmllcyIsImEiLCJhYmJyIiwiYWRkcmVzcyIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJiYXNlIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1dHRvbiIsImNhbnZhcyIsImNhcHRpb24iLCJjaXRlIiwiY29kZSIsImNvbCIsImNvbGdyb3VwIiwiZGF0YSIsImRhdGFsaXN0IiwiZGQiLCJkZWwiLCJkZXRhaWxzIiwiZGZuIiwiZGlhbG9nIiwiZGl2IiwiZGwiLCJkdCIsImVtIiwiZW1iZWQiLCJmaWVsZHNldCIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb290ZXIiLCJmb3JtIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImkiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCIsImlucyIsImtiZCIsImtleWdlbiIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFpbiIsIm1hcCIsIm1hcmsiLCJtZW51IiwibWVudWl0ZW0iLCJtZXRhIiwibWV0ZXIiLCJuYXYiLCJub3NjcmlwdCIsIm9iamVjdCIsIm9sIiwib3B0Z3JvdXAiLCJvcHRpb24iLCJvdXRwdXQiLCJwIiwicGFyYW0iLCJwaWN0dXJlIiwicHJlIiwicHJvZ3Jlc3MiLCJxIiwicnAiLCJydCIsInJ1YnkiLCJzIiwic2FtcCIsInNjcmlwdCIsInNlY3Rpb24iLCJzZWxlY3QiLCJzbWFsbCIsInNvdXJjZSIsInNwYW4iLCJzdHJvbmciLCJzdHlsZSIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0ZXh0YXJlYSIsInRmb290IiwidGgiLCJ0aGVhZCIsInRpbWUiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1IiwidWwiLCJ2aWRlbyIsIndiciIsImNpcmNsZSIsImNsaXBQYXRoIiwiZGVmcyIsImVsbGlwc2UiLCJnIiwiaW1hZ2UiLCJsaW5lIiwibGluZWFyR3JhZGllbnQiLCJtYXNrIiwicGF0aCIsInBhdHRlcm4iLCJwb2x5Z29uIiwicG9seWxpbmUiLCJyYWRpYWxHcmFkaWVudCIsInJlY3QiLCJzdG9wIiwic3ZnIiwidGV4dCIsInRzcGFuIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztBQVlBOztBQUVBLElBQUlBLGVBQWUsbUJBQUFDLENBQVEsRUFBUixDQUFuQjtBQUNBLElBQUlDLHdCQUF3QixtQkFBQUQsQ0FBUSxHQUFSLENBQTVCOztBQUVBLElBQUlFLFlBQVksbUJBQUFGLENBQVEsR0FBUixDQUFoQjs7QUFFQTs7Ozs7O0FBTUEsU0FBU0csZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCO0FBQzdCLE1BQUlDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxXQUFPTixzQkFBc0JPLGFBQXRCLENBQW9DSixHQUFwQyxDQUFQO0FBQ0Q7QUFDRCxTQUFPTCxhQUFhUyxhQUFiLENBQTJCSixHQUEzQixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7OztBQU1BLElBQUlLLG9CQUFvQlAsVUFBVTtBQUNoQ1EsS0FBRyxHQUQ2QjtBQUVoQ0MsUUFBTSxNQUYwQjtBQUdoQ0MsV0FBUyxTQUh1QjtBQUloQ0MsUUFBTSxNQUowQjtBQUtoQ0MsV0FBUyxTQUx1QjtBQU1oQ0MsU0FBTyxPQU55QjtBQU9oQ0MsU0FBTyxPQVB5QjtBQVFoQ0MsS0FBRyxHQVI2QjtBQVNoQ0MsUUFBTSxNQVQwQjtBQVVoQ0MsT0FBSyxLQVYyQjtBQVdoQ0MsT0FBSyxLQVgyQjtBQVloQ0MsT0FBSyxLQVoyQjtBQWFoQ0MsY0FBWSxZQWJvQjtBQWNoQ0MsUUFBTSxNQWQwQjtBQWVoQ0MsTUFBSSxJQWY0QjtBQWdCaENDLFVBQVEsUUFoQndCO0FBaUJoQ0MsVUFBUSxRQWpCd0I7QUFrQmhDQyxXQUFTLFNBbEJ1QjtBQW1CaENDLFFBQU0sTUFuQjBCO0FBb0JoQ0MsUUFBTSxNQXBCMEI7QUFxQmhDQyxPQUFLLEtBckIyQjtBQXNCaENDLFlBQVUsVUF0QnNCO0FBdUJoQ0MsUUFBTSxNQXZCMEI7QUF3QmhDQyxZQUFVLFVBeEJzQjtBQXlCaENDLE1BQUksSUF6QjRCO0FBMEJoQ0MsT0FBSyxLQTFCMkI7QUEyQmhDQyxXQUFTLFNBM0J1QjtBQTRCaENDLE9BQUssS0E1QjJCO0FBNkJoQ0MsVUFBUSxRQTdCd0I7QUE4QmhDQyxPQUFLLEtBOUIyQjtBQStCaENDLE1BQUksSUEvQjRCO0FBZ0NoQ0MsTUFBSSxJQWhDNEI7QUFpQ2hDQyxNQUFJLElBakM0QjtBQWtDaENDLFNBQU8sT0FsQ3lCO0FBbUNoQ0MsWUFBVSxVQW5Dc0I7QUFvQ2hDQyxjQUFZLFlBcENvQjtBQXFDaENDLFVBQVEsUUFyQ3dCO0FBc0NoQ0MsVUFBUSxRQXRDd0I7QUF1Q2hDQyxRQUFNLE1BdkMwQjtBQXdDaENDLE1BQUksSUF4QzRCO0FBeUNoQ0MsTUFBSSxJQXpDNEI7QUEwQ2hDQyxNQUFJLElBMUM0QjtBQTJDaENDLE1BQUksSUEzQzRCO0FBNENoQ0MsTUFBSSxJQTVDNEI7QUE2Q2hDQyxNQUFJLElBN0M0QjtBQThDaENDLFFBQU0sTUE5QzBCO0FBK0NoQ0MsVUFBUSxRQS9Dd0I7QUFnRGhDQyxVQUFRLFFBaER3QjtBQWlEaENDLE1BQUksSUFqRDRCO0FBa0RoQ0MsUUFBTSxNQWxEMEI7QUFtRGhDQyxLQUFHLEdBbkQ2QjtBQW9EaENDLFVBQVEsUUFwRHdCO0FBcURoQ0MsT0FBSyxLQXJEMkI7QUFzRGhDQyxTQUFPLE9BdER5QjtBQXVEaENDLE9BQUssS0F2RDJCO0FBd0RoQ0MsT0FBSyxLQXhEMkI7QUF5RGhDQyxVQUFRLFFBekR3QjtBQTBEaENDLFNBQU8sT0ExRHlCO0FBMkRoQ0MsVUFBUSxRQTNEd0I7QUE0RGhDQyxNQUFJLElBNUQ0QjtBQTZEaENDLFFBQU0sTUE3RDBCO0FBOERoQ0MsUUFBTSxNQTlEMEI7QUErRGhDQyxPQUFLLEtBL0QyQjtBQWdFaENDLFFBQU0sTUFoRTBCO0FBaUVoQ0MsUUFBTSxNQWpFMEI7QUFrRWhDQyxZQUFVLFVBbEVzQjtBQW1FaENDLFFBQU0sTUFuRTBCO0FBb0VoQ0MsU0FBTyxPQXBFeUI7QUFxRWhDQyxPQUFLLEtBckUyQjtBQXNFaENDLFlBQVUsVUF0RXNCO0FBdUVoQ0MsVUFBUSxRQXZFd0I7QUF3RWhDQyxNQUFJLElBeEU0QjtBQXlFaENDLFlBQVUsVUF6RXNCO0FBMEVoQ0MsVUFBUSxRQTFFd0I7QUEyRWhDQyxVQUFRLFFBM0V3QjtBQTRFaENDLEtBQUcsR0E1RTZCO0FBNkVoQ0MsU0FBTyxPQTdFeUI7QUE4RWhDQyxXQUFTLFNBOUV1QjtBQStFaENDLE9BQUssS0EvRTJCO0FBZ0ZoQ0MsWUFBVSxVQWhGc0I7QUFpRmhDQyxLQUFHLEdBakY2QjtBQWtGaENDLE1BQUksSUFsRjRCO0FBbUZoQ0MsTUFBSSxJQW5GNEI7QUFvRmhDQyxRQUFNLE1BcEYwQjtBQXFGaENDLEtBQUcsR0FyRjZCO0FBc0ZoQ0MsUUFBTSxNQXRGMEI7QUF1RmhDQyxVQUFRLFFBdkZ3QjtBQXdGaENDLFdBQVMsU0F4RnVCO0FBeUZoQ0MsVUFBUSxRQXpGd0I7QUEwRmhDQyxTQUFPLE9BMUZ5QjtBQTJGaENDLFVBQVEsUUEzRndCO0FBNEZoQ0MsUUFBTSxNQTVGMEI7QUE2RmhDQyxVQUFRLFFBN0Z3QjtBQThGaENDLFNBQU8sT0E5RnlCO0FBK0ZoQ0MsT0FBSyxLQS9GMkI7QUFnR2hDQyxXQUFTLFNBaEd1QjtBQWlHaENDLE9BQUssS0FqRzJCO0FBa0doQ0MsU0FBTyxPQWxHeUI7QUFtR2hDQyxTQUFPLE9Bbkd5QjtBQW9HaENDLE1BQUksSUFwRzRCO0FBcUdoQ0MsWUFBVSxVQXJHc0I7QUFzR2hDQyxTQUFPLE9BdEd5QjtBQXVHaENDLE1BQUksSUF2RzRCO0FBd0doQ0MsU0FBTyxPQXhHeUI7QUF5R2hDQyxRQUFNLE1BekcwQjtBQTBHaENDLFNBQU8sT0ExR3lCO0FBMkdoQ0MsTUFBSSxJQTNHNEI7QUE0R2hDQyxTQUFPLE9BNUd5QjtBQTZHaENDLEtBQUcsR0E3RzZCO0FBOEdoQ0MsTUFBSSxJQTlHNEI7QUErR2hDLFNBQU8sS0EvR3lCO0FBZ0hoQ0MsU0FBTyxPQWhIeUI7QUFpSGhDQyxPQUFLLEtBakgyQjs7QUFtSGhDO0FBQ0FDLFVBQVEsUUFwSHdCO0FBcUhoQ0MsWUFBVSxVQXJIc0I7QUFzSGhDQyxRQUFNLE1BdEgwQjtBQXVIaENDLFdBQVMsU0F2SHVCO0FBd0hoQ0MsS0FBRyxHQXhINkI7QUF5SGhDQyxTQUFPLE9Bekh5QjtBQTBIaENDLFFBQU0sTUExSDBCO0FBMkhoQ0Msa0JBQWdCLGdCQTNIZ0I7QUE0SGhDQyxRQUFNLE1BNUgwQjtBQTZIaENDLFFBQU0sTUE3SDBCO0FBOEhoQ0MsV0FBUyxTQTlIdUI7QUErSGhDQyxXQUFTLFNBL0h1QjtBQWdJaENDLFlBQVUsVUFoSXNCO0FBaUloQ0Msa0JBQWdCLGdCQWpJZ0I7QUFrSWhDQyxRQUFNLE1BbEkwQjtBQW1JaENDLFFBQU0sTUFuSTBCO0FBb0loQ0MsT0FBSyxLQXBJMkI7QUFxSWhDQyxRQUFNLE1BckkwQjtBQXNJaENDLFNBQU87O0FBdEl5QixDQUFWLEVBd0lyQnpJLGdCQXhJcUIsQ0FBeEI7O0FBMElBMEksT0FBT0MsT0FBUCxHQUFpQnJJLGlCQUFqQixDIiwiZmlsZSI6IjE1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBSZWFjdERPTUZhY3Rvcmllc1xuICogQHR5cGVjaGVja3Mgc3RhdGljLW9ubHlcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdEVsZW1lbnQgPSByZXF1aXJlKCcuL1JlYWN0RWxlbWVudCcpO1xudmFyIFJlYWN0RWxlbWVudFZhbGlkYXRvciA9IHJlcXVpcmUoJy4vUmVhY3RFbGVtZW50VmFsaWRhdG9yJyk7XG5cbnZhciBtYXBPYmplY3QgPSByZXF1aXJlKCdmYmpzL2xpYi9tYXBPYmplY3QnKTtcblxuLyoqXG4gKiBDcmVhdGUgYSBmYWN0b3J5IHRoYXQgY3JlYXRlcyBIVE1MIHRhZyBlbGVtZW50cy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRhZyBuYW1lIChlLmcuIGBkaXZgKS5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZURPTUZhY3RvcnkodGFnKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgcmV0dXJuIFJlYWN0RWxlbWVudFZhbGlkYXRvci5jcmVhdGVGYWN0b3J5KHRhZyk7XG4gIH1cbiAgcmV0dXJuIFJlYWN0RWxlbWVudC5jcmVhdGVGYWN0b3J5KHRhZyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG1hcHBpbmcgZnJvbSBzdXBwb3J0ZWQgSFRNTCB0YWdzIHRvIGBSZWFjdERPTUNvbXBvbmVudGAgY2xhc3Nlcy5cbiAqIFRoaXMgaXMgYWxzbyBhY2Nlc3NpYmxlIHZpYSBgUmVhY3QuRE9NYC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbnZhciBSZWFjdERPTUZhY3RvcmllcyA9IG1hcE9iamVjdCh7XG4gIGE6ICdhJyxcbiAgYWJicjogJ2FiYnInLFxuICBhZGRyZXNzOiAnYWRkcmVzcycsXG4gIGFyZWE6ICdhcmVhJyxcbiAgYXJ0aWNsZTogJ2FydGljbGUnLFxuICBhc2lkZTogJ2FzaWRlJyxcbiAgYXVkaW86ICdhdWRpbycsXG4gIGI6ICdiJyxcbiAgYmFzZTogJ2Jhc2UnLFxuICBiZGk6ICdiZGknLFxuICBiZG86ICdiZG8nLFxuICBiaWc6ICdiaWcnLFxuICBibG9ja3F1b3RlOiAnYmxvY2txdW90ZScsXG4gIGJvZHk6ICdib2R5JyxcbiAgYnI6ICdicicsXG4gIGJ1dHRvbjogJ2J1dHRvbicsXG4gIGNhbnZhczogJ2NhbnZhcycsXG4gIGNhcHRpb246ICdjYXB0aW9uJyxcbiAgY2l0ZTogJ2NpdGUnLFxuICBjb2RlOiAnY29kZScsXG4gIGNvbDogJ2NvbCcsXG4gIGNvbGdyb3VwOiAnY29sZ3JvdXAnLFxuICBkYXRhOiAnZGF0YScsXG4gIGRhdGFsaXN0OiAnZGF0YWxpc3QnLFxuICBkZDogJ2RkJyxcbiAgZGVsOiAnZGVsJyxcbiAgZGV0YWlsczogJ2RldGFpbHMnLFxuICBkZm46ICdkZm4nLFxuICBkaWFsb2c6ICdkaWFsb2cnLFxuICBkaXY6ICdkaXYnLFxuICBkbDogJ2RsJyxcbiAgZHQ6ICdkdCcsXG4gIGVtOiAnZW0nLFxuICBlbWJlZDogJ2VtYmVkJyxcbiAgZmllbGRzZXQ6ICdmaWVsZHNldCcsXG4gIGZpZ2NhcHRpb246ICdmaWdjYXB0aW9uJyxcbiAgZmlndXJlOiAnZmlndXJlJyxcbiAgZm9vdGVyOiAnZm9vdGVyJyxcbiAgZm9ybTogJ2Zvcm0nLFxuICBoMTogJ2gxJyxcbiAgaDI6ICdoMicsXG4gIGgzOiAnaDMnLFxuICBoNDogJ2g0JyxcbiAgaDU6ICdoNScsXG4gIGg2OiAnaDYnLFxuICBoZWFkOiAnaGVhZCcsXG4gIGhlYWRlcjogJ2hlYWRlcicsXG4gIGhncm91cDogJ2hncm91cCcsXG4gIGhyOiAnaHInLFxuICBodG1sOiAnaHRtbCcsXG4gIGk6ICdpJyxcbiAgaWZyYW1lOiAnaWZyYW1lJyxcbiAgaW1nOiAnaW1nJyxcbiAgaW5wdXQ6ICdpbnB1dCcsXG4gIGluczogJ2lucycsXG4gIGtiZDogJ2tiZCcsXG4gIGtleWdlbjogJ2tleWdlbicsXG4gIGxhYmVsOiAnbGFiZWwnLFxuICBsZWdlbmQ6ICdsZWdlbmQnLFxuICBsaTogJ2xpJyxcbiAgbGluazogJ2xpbmsnLFxuICBtYWluOiAnbWFpbicsXG4gIG1hcDogJ21hcCcsXG4gIG1hcms6ICdtYXJrJyxcbiAgbWVudTogJ21lbnUnLFxuICBtZW51aXRlbTogJ21lbnVpdGVtJyxcbiAgbWV0YTogJ21ldGEnLFxuICBtZXRlcjogJ21ldGVyJyxcbiAgbmF2OiAnbmF2JyxcbiAgbm9zY3JpcHQ6ICdub3NjcmlwdCcsXG4gIG9iamVjdDogJ29iamVjdCcsXG4gIG9sOiAnb2wnLFxuICBvcHRncm91cDogJ29wdGdyb3VwJyxcbiAgb3B0aW9uOiAnb3B0aW9uJyxcbiAgb3V0cHV0OiAnb3V0cHV0JyxcbiAgcDogJ3AnLFxuICBwYXJhbTogJ3BhcmFtJyxcbiAgcGljdHVyZTogJ3BpY3R1cmUnLFxuICBwcmU6ICdwcmUnLFxuICBwcm9ncmVzczogJ3Byb2dyZXNzJyxcbiAgcTogJ3EnLFxuICBycDogJ3JwJyxcbiAgcnQ6ICdydCcsXG4gIHJ1Ynk6ICdydWJ5JyxcbiAgczogJ3MnLFxuICBzYW1wOiAnc2FtcCcsXG4gIHNjcmlwdDogJ3NjcmlwdCcsXG4gIHNlY3Rpb246ICdzZWN0aW9uJyxcbiAgc2VsZWN0OiAnc2VsZWN0JyxcbiAgc21hbGw6ICdzbWFsbCcsXG4gIHNvdXJjZTogJ3NvdXJjZScsXG4gIHNwYW46ICdzcGFuJyxcbiAgc3Ryb25nOiAnc3Ryb25nJyxcbiAgc3R5bGU6ICdzdHlsZScsXG4gIHN1YjogJ3N1YicsXG4gIHN1bW1hcnk6ICdzdW1tYXJ5JyxcbiAgc3VwOiAnc3VwJyxcbiAgdGFibGU6ICd0YWJsZScsXG4gIHRib2R5OiAndGJvZHknLFxuICB0ZDogJ3RkJyxcbiAgdGV4dGFyZWE6ICd0ZXh0YXJlYScsXG4gIHRmb290OiAndGZvb3QnLFxuICB0aDogJ3RoJyxcbiAgdGhlYWQ6ICd0aGVhZCcsXG4gIHRpbWU6ICd0aW1lJyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHRyOiAndHInLFxuICB0cmFjazogJ3RyYWNrJyxcbiAgdTogJ3UnLFxuICB1bDogJ3VsJyxcbiAgJ3Zhcic6ICd2YXInLFxuICB2aWRlbzogJ3ZpZGVvJyxcbiAgd2JyOiAnd2JyJyxcblxuICAvLyBTVkdcbiAgY2lyY2xlOiAnY2lyY2xlJyxcbiAgY2xpcFBhdGg6ICdjbGlwUGF0aCcsXG4gIGRlZnM6ICdkZWZzJyxcbiAgZWxsaXBzZTogJ2VsbGlwc2UnLFxuICBnOiAnZycsXG4gIGltYWdlOiAnaW1hZ2UnLFxuICBsaW5lOiAnbGluZScsXG4gIGxpbmVhckdyYWRpZW50OiAnbGluZWFyR3JhZGllbnQnLFxuICBtYXNrOiAnbWFzaycsXG4gIHBhdGg6ICdwYXRoJyxcbiAgcGF0dGVybjogJ3BhdHRlcm4nLFxuICBwb2x5Z29uOiAncG9seWdvbicsXG4gIHBvbHlsaW5lOiAncG9seWxpbmUnLFxuICByYWRpYWxHcmFkaWVudDogJ3JhZGlhbEdyYWRpZW50JyxcbiAgcmVjdDogJ3JlY3QnLFxuICBzdG9wOiAnc3RvcCcsXG4gIHN2ZzogJ3N2ZycsXG4gIHRleHQ6ICd0ZXh0JyxcbiAgdHNwYW46ICd0c3BhbidcblxufSwgY3JlYXRlRE9NRmFjdG9yeSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RET01GYWN0b3JpZXM7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QvbGliL1JlYWN0RE9NRmFjdG9yaWVzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 154 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReactElementValidator\n */\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar ReactElement = __webpack_require__(42);\nvar ReactPropTypeLocations = __webpack_require__(65);\nvar ReactPropTypeLocationNames = __webpack_require__(66);\nvar ReactCurrentOwner = __webpack_require__(5);\n\nvar canDefineProperty = __webpack_require__(43);\nvar getIteratorFn = __webpack_require__(108);\nvar invariant = __webpack_require__(13);\nvar warning = __webpack_require__(25);\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = ReactCurrentOwner.current.getName();\n if (name) {\n return ' Check the render method of `' + name + '`.';\n }\n }\n return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nvar loggedTypeFailures = {};\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n element._store.validated = true;\n\n var addenda = getAddendaForKeyUse('uniqueKey', element, parentType);\n if (addenda === null) {\n // we already showed the warning\n return;\n }\n process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique \"key\" prop.' + '%s%s%s', addenda.parentOrOwner || '', addenda.childOwner || '', addenda.url || '') : undefined;\n}\n\n/**\n * Shared warning and monitoring code for the key warnings.\n *\n * @internal\n * @param {string} messageType A key used for de-duping warnings.\n * @param {ReactElement} element Component that requires a key.\n * @param {*} parentType element's parent's type.\n * @returns {?object} A set of addenda to use in the warning message, or null\n * if the warning has already been shown before (and shouldn't be shown again).\n */\nfunction getAddendaForKeyUse(messageType, element, parentType) {\n var addendum = getDeclarationErrorAddendum();\n if (!addendum) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n if (parentName) {\n addendum = ' Check the top-level render call using <' + parentName + '>.';\n }\n }\n\n var memoizer = ownerHasKeyUseWarning[messageType] || (ownerHasKeyUseWarning[messageType] = {});\n if (memoizer[addendum]) {\n return null;\n }\n memoizer[addendum] = true;\n\n var addenda = {\n parentOrOwner: addendum,\n url: ' See https://fb.me/react-warning-keys for more information.',\n childOwner: null\n };\n\n // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n addenda.childOwner = ' It was passed a child from ' + element._owner.getName() + '.';\n }\n\n return addenda;\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n if ((typeof node === 'undefined' ? 'undefined' : _typeof(node)) !== 'object') {\n return;\n }\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n if (ReactElement.isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (ReactElement.isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n // Entry iterators provide implicit keys.\n if (iteratorFn) {\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n while (!(step = iterator.next()).done) {\n if (ReactElement.isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n\n/**\n * Assert that the props are valid\n *\n * @param {string} componentName Name of the component for error messages.\n * @param {object} propTypes Map of prop name to a ReactPropType\n * @param {object} props\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @private\n */\nfunction checkPropTypes(componentName, propTypes, props, location) {\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n !(typeof propTypes[propName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName) : invariant(false) : undefined;\n error = propTypes[propName](props, propName, componentName, location);\n } catch (ex) {\n error = ex;\n }\n process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], propName, typeof error === 'undefined' ? 'undefined' : _typeof(error)) : undefined;\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var addendum = getDeclarationErrorAddendum();\n process.env.NODE_ENV !== 'production' ? warning(false, 'Failed propType: %s%s', error.message, addendum) : undefined;\n }\n }\n }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n var componentClass = element.type;\n if (typeof componentClass !== 'function') {\n return;\n }\n var name = componentClass.displayName || componentClass.name;\n if (componentClass.propTypes) {\n checkPropTypes(name, componentClass.propTypes, element.props, ReactPropTypeLocations.prop);\n }\n if (typeof componentClass.getDefaultProps === 'function') {\n process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : undefined;\n }\n}\n\nvar ReactElementValidator = {\n\n createElement: function createElement(type, props, children) {\n var validType = typeof type === 'string' || typeof type === 'function';\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n process.env.NODE_ENV !== 'production' ? warning(validType, 'React.createElement: type should not be null, undefined, boolean, or ' + 'number. It should be a string (for DOM elements) or a ReactClass ' + '(for composite components).%s', getDeclarationErrorAddendum()) : undefined;\n\n var element = ReactElement.createElement.apply(this, arguments);\n\n // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n if (element == null) {\n return element;\n }\n\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n validatePropTypes(element);\n\n return element;\n },\n\n createFactory: function createFactory(type) {\n var validatedFactory = ReactElementValidator.createElement.bind(null, type);\n // Legacy hook TODO: Warn if this is accessed\n validatedFactory.type = type;\n\n if (process.env.NODE_ENV !== 'production') {\n if (canDefineProperty) {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function get() {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : undefined;\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n }\n\n return validatedFactory;\n },\n\n cloneElement: function cloneElement(element, props, children) {\n var newElement = ReactElement.cloneElement.apply(this, arguments);\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n validatePropTypes(newElement);\n return newElement;\n }\n\n};\n\nmodule.exports = ReactElementValidator;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFbGVtZW50VmFsaWRhdG9yLmpzPzE1Y2UiXSwibmFtZXMiOlsiUmVhY3RFbGVtZW50IiwicmVxdWlyZSIsIlJlYWN0UHJvcFR5cGVMb2NhdGlvbnMiLCJSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lcyIsIlJlYWN0Q3VycmVudE93bmVyIiwiY2FuRGVmaW5lUHJvcGVydHkiLCJnZXRJdGVyYXRvckZuIiwiaW52YXJpYW50Iiwid2FybmluZyIsImdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSIsImN1cnJlbnQiLCJuYW1lIiwiZ2V0TmFtZSIsIm93bmVySGFzS2V5VXNlV2FybmluZyIsImxvZ2dlZFR5cGVGYWlsdXJlcyIsInZhbGlkYXRlRXhwbGljaXRLZXkiLCJlbGVtZW50IiwicGFyZW50VHlwZSIsIl9zdG9yZSIsInZhbGlkYXRlZCIsImtleSIsImFkZGVuZGEiLCJnZXRBZGRlbmRhRm9yS2V5VXNlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicGFyZW50T3JPd25lciIsImNoaWxkT3duZXIiLCJ1cmwiLCJ1bmRlZmluZWQiLCJtZXNzYWdlVHlwZSIsImFkZGVuZHVtIiwicGFyZW50TmFtZSIsImRpc3BsYXlOYW1lIiwibWVtb2l6ZXIiLCJfb3duZXIiLCJ2YWxpZGF0ZUNoaWxkS2V5cyIsIm5vZGUiLCJBcnJheSIsImlzQXJyYXkiLCJpIiwibGVuZ3RoIiwiY2hpbGQiLCJpc1ZhbGlkRWxlbWVudCIsIml0ZXJhdG9yRm4iLCJlbnRyaWVzIiwiaXRlcmF0b3IiLCJjYWxsIiwic3RlcCIsIm5leHQiLCJkb25lIiwidmFsdWUiLCJjaGVja1Byb3BUeXBlcyIsImNvbXBvbmVudE5hbWUiLCJwcm9wVHlwZXMiLCJwcm9wcyIsImxvY2F0aW9uIiwicHJvcE5hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsImVycm9yIiwiZXgiLCJFcnJvciIsIm1lc3NhZ2UiLCJ2YWxpZGF0ZVByb3BUeXBlcyIsImNvbXBvbmVudENsYXNzIiwidHlwZSIsInByb3AiLCJnZXREZWZhdWx0UHJvcHMiLCJpc1JlYWN0Q2xhc3NBcHByb3ZlZCIsIlJlYWN0RWxlbWVudFZhbGlkYXRvciIsImNyZWF0ZUVsZW1lbnQiLCJjaGlsZHJlbiIsInZhbGlkVHlwZSIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3JlYXRlRmFjdG9yeSIsInZhbGlkYXRlZEZhY3RvcnkiLCJiaW5kIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiY2xvbmVFbGVtZW50IiwibmV3RWxlbWVudCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztBQVdBOzs7Ozs7O0FBT0E7Ozs7QUFFQSxJQUFJQSxlQUFlLG1CQUFBQyxDQUFRLEVBQVIsQ0FBbkI7QUFDQSxJQUFJQyx5QkFBeUIsbUJBQUFELENBQVEsRUFBUixDQUE3QjtBQUNBLElBQUlFLDZCQUE2QixtQkFBQUYsQ0FBUSxFQUFSLENBQWpDO0FBQ0EsSUFBSUcsb0JBQW9CLG1CQUFBSCxDQUFRLENBQVIsQ0FBeEI7O0FBRUEsSUFBSUksb0JBQW9CLG1CQUFBSixDQUFRLEVBQVIsQ0FBeEI7QUFDQSxJQUFJSyxnQkFBZ0IsbUJBQUFMLENBQVEsR0FBUixDQUFwQjtBQUNBLElBQUlNLFlBQVksbUJBQUFOLENBQVEsRUFBUixDQUFoQjtBQUNBLElBQUlPLFVBQVUsbUJBQUFQLENBQVEsRUFBUixDQUFkOztBQUVBLFNBQVNRLDJCQUFULEdBQXVDO0FBQ3JDLE1BQUlMLGtCQUFrQk0sT0FBdEIsRUFBK0I7QUFDN0IsUUFBSUMsT0FBT1Asa0JBQWtCTSxPQUFsQixDQUEwQkUsT0FBMUIsRUFBWDtBQUNBLFFBQUlELElBQUosRUFBVTtBQUNSLGFBQU8sa0NBQWtDQSxJQUFsQyxHQUF5QyxJQUFoRDtBQUNEO0FBQ0Y7QUFDRCxTQUFPLEVBQVA7QUFDRDs7QUFFRDs7Ozs7QUFLQSxJQUFJRSx3QkFBd0IsRUFBNUI7O0FBRUEsSUFBSUMscUJBQXFCLEVBQXpCOztBQUVBOzs7Ozs7Ozs7O0FBVUEsU0FBU0MsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDQyxVQUF0QyxFQUFrRDtBQUNoRCxNQUFJLENBQUNELFFBQVFFLE1BQVQsSUFBbUJGLFFBQVFFLE1BQVIsQ0FBZUMsU0FBbEMsSUFBK0NILFFBQVFJLEdBQVIsSUFBZSxJQUFsRSxFQUF3RTtBQUN0RTtBQUNEO0FBQ0RKLFVBQVFFLE1BQVIsQ0FBZUMsU0FBZixHQUEyQixJQUEzQjs7QUFFQSxNQUFJRSxVQUFVQyxvQkFBb0IsV0FBcEIsRUFBaUNOLE9BQWpDLEVBQTBDQyxVQUExQyxDQUFkO0FBQ0EsTUFBSUksWUFBWSxJQUFoQixFQUFzQjtBQUNwQjtBQUNBO0FBQ0Q7QUFDREUsVUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDakIsUUFBUSxLQUFSLEVBQWUsd0VBQXdFLFFBQXZGLEVBQWlHYSxRQUFRSyxhQUFSLElBQXlCLEVBQTFILEVBQThITCxRQUFRTSxVQUFSLElBQXNCLEVBQXBKLEVBQXdKTixRQUFRTyxHQUFSLElBQWUsRUFBdkssQ0FBeEMsR0FBcU5DLFNBQXJOO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQSxTQUFTUCxtQkFBVCxDQUE2QlEsV0FBN0IsRUFBMENkLE9BQTFDLEVBQW1EQyxVQUFuRCxFQUErRDtBQUM3RCxNQUFJYyxXQUFXdEIsNkJBQWY7QUFDQSxNQUFJLENBQUNzQixRQUFMLEVBQWU7QUFDYixRQUFJQyxhQUFhLE9BQU9mLFVBQVAsS0FBc0IsUUFBdEIsR0FBaUNBLFVBQWpDLEdBQThDQSxXQUFXZ0IsV0FBWCxJQUEwQmhCLFdBQVdOLElBQXBHO0FBQ0EsUUFBSXFCLFVBQUosRUFBZ0I7QUFDZEQsaUJBQVcsNkNBQTZDQyxVQUE3QyxHQUEwRCxJQUFyRTtBQUNEO0FBQ0Y7O0FBRUQsTUFBSUUsV0FBV3JCLHNCQUFzQmlCLFdBQXRCLE1BQXVDakIsc0JBQXNCaUIsV0FBdEIsSUFBcUMsRUFBNUUsQ0FBZjtBQUNBLE1BQUlJLFNBQVNILFFBQVQsQ0FBSixFQUF3QjtBQUN0QixXQUFPLElBQVA7QUFDRDtBQUNERyxXQUFTSCxRQUFULElBQXFCLElBQXJCOztBQUVBLE1BQUlWLFVBQVU7QUFDWkssbUJBQWVLLFFBREg7QUFFWkgsU0FBSyw2REFGTztBQUdaRCxnQkFBWTtBQUhBLEdBQWQ7O0FBTUE7QUFDQTtBQUNBO0FBQ0EsTUFBSVgsV0FBV0EsUUFBUW1CLE1BQW5CLElBQTZCbkIsUUFBUW1CLE1BQVIsS0FBbUIvQixrQkFBa0JNLE9BQXRFLEVBQStFO0FBQzdFO0FBQ0FXLFlBQVFNLFVBQVIsR0FBcUIsaUNBQWlDWCxRQUFRbUIsTUFBUixDQUFldkIsT0FBZixFQUFqQyxHQUE0RCxHQUFqRjtBQUNEOztBQUVELFNBQU9TLE9BQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O0FBU0EsU0FBU2UsaUJBQVQsQ0FBMkJDLElBQTNCLEVBQWlDcEIsVUFBakMsRUFBNkM7QUFDM0MsTUFBSSxRQUFPb0IsSUFBUCx5Q0FBT0EsSUFBUCxPQUFnQixRQUFwQixFQUE4QjtBQUM1QjtBQUNEO0FBQ0QsTUFBSUMsTUFBTUMsT0FBTixDQUFjRixJQUFkLENBQUosRUFBeUI7QUFDdkIsU0FBSyxJQUFJRyxJQUFJLENBQWIsRUFBZ0JBLElBQUlILEtBQUtJLE1BQXpCLEVBQWlDRCxHQUFqQyxFQUFzQztBQUNwQyxVQUFJRSxRQUFRTCxLQUFLRyxDQUFMLENBQVo7QUFDQSxVQUFJeEMsYUFBYTJDLGNBQWIsQ0FBNEJELEtBQTVCLENBQUosRUFBd0M7QUFDdEMzQiw0QkFBb0IyQixLQUFwQixFQUEyQnpCLFVBQTNCO0FBQ0Q7QUFDRjtBQUNGLEdBUEQsTUFPTyxJQUFJakIsYUFBYTJDLGNBQWIsQ0FBNEJOLElBQTVCLENBQUosRUFBdUM7QUFDNUM7QUFDQSxRQUFJQSxLQUFLbkIsTUFBVCxFQUFpQjtBQUNmbUIsV0FBS25CLE1BQUwsQ0FBWUMsU0FBWixHQUF3QixJQUF4QjtBQUNEO0FBQ0YsR0FMTSxNQUtBLElBQUlrQixJQUFKLEVBQVU7QUFDZixRQUFJTyxhQUFhdEMsY0FBYytCLElBQWQsQ0FBakI7QUFDQTtBQUNBLFFBQUlPLFVBQUosRUFBZ0I7QUFDZCxVQUFJQSxlQUFlUCxLQUFLUSxPQUF4QixFQUFpQztBQUMvQixZQUFJQyxXQUFXRixXQUFXRyxJQUFYLENBQWdCVixJQUFoQixDQUFmO0FBQ0EsWUFBSVcsSUFBSjtBQUNBLGVBQU8sQ0FBQyxDQUFDQSxPQUFPRixTQUFTRyxJQUFULEVBQVIsRUFBeUJDLElBQWpDLEVBQXVDO0FBQ3JDLGNBQUlsRCxhQUFhMkMsY0FBYixDQUE0QkssS0FBS0csS0FBakMsQ0FBSixFQUE2QztBQUMzQ3BDLGdDQUFvQmlDLEtBQUtHLEtBQXpCLEVBQWdDbEMsVUFBaEM7QUFDRDtBQUNGO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Y7O0FBRUQ7Ozs7Ozs7OztBQVNBLFNBQVNtQyxjQUFULENBQXdCQyxhQUF4QixFQUF1Q0MsU0FBdkMsRUFBa0RDLEtBQWxELEVBQXlEQyxRQUF6RCxFQUFtRTtBQUNqRSxPQUFLLElBQUlDLFFBQVQsSUFBcUJILFNBQXJCLEVBQWdDO0FBQzlCLFFBQUlBLFVBQVVJLGNBQVYsQ0FBeUJELFFBQXpCLENBQUosRUFBd0M7QUFDdEMsVUFBSUUsS0FBSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQUk7QUFDRjtBQUNBO0FBQ0EsVUFBRSxPQUFPTCxVQUFVRyxRQUFWLENBQVAsS0FBK0IsVUFBakMsSUFBK0NsQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NsQixVQUFVLEtBQVYsRUFBaUIsc0VBQXNFLGtCQUF2RixFQUEyRzhDLGlCQUFpQixhQUE1SCxFQUEySWxELDJCQUEyQnFELFFBQTNCLENBQTNJLEVBQWlMQyxRQUFqTCxDQUF4QyxHQUFxT2xELFVBQVUsS0FBVixDQUFwUixHQUF1U3NCLFNBQXZTO0FBQ0E4QixnQkFBUUwsVUFBVUcsUUFBVixFQUFvQkYsS0FBcEIsRUFBMkJFLFFBQTNCLEVBQXFDSixhQUFyQyxFQUFvREcsUUFBcEQsQ0FBUjtBQUNELE9BTEQsQ0FLRSxPQUFPSSxFQUFQLEVBQVc7QUFDWEQsZ0JBQVFDLEVBQVI7QUFDRDtBQUNEckMsY0FBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDakIsUUFBUSxDQUFDbUQsS0FBRCxJQUFVQSxpQkFBaUJFLEtBQW5DLEVBQTBDLG9FQUFvRSwrREFBcEUsR0FBc0ksaUVBQXRJLEdBQTBNLGdFQUExTSxHQUE2USxpQ0FBdlQsRUFBMFZSLGlCQUFpQixhQUEzVyxFQUEwWGxELDJCQUEyQnFELFFBQTNCLENBQTFYLEVBQWdhQyxRQUFoYSxTQUFpYkUsS0FBamIseUNBQWliQSxLQUFqYixFQUF4QyxHQUFrZTlCLFNBQWxlO0FBQ0EsVUFBSThCLGlCQUFpQkUsS0FBakIsSUFBMEIsRUFBRUYsTUFBTUcsT0FBTixJQUFpQmhELGtCQUFuQixDQUE5QixFQUFzRTtBQUNwRTtBQUNBO0FBQ0FBLDJCQUFtQjZDLE1BQU1HLE9BQXpCLElBQW9DLElBQXBDOztBQUVBLFlBQUkvQixXQUFXdEIsNkJBQWY7QUFDQWMsZ0JBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q2pCLFFBQVEsS0FBUixFQUFlLHVCQUFmLEVBQXdDbUQsTUFBTUcsT0FBOUMsRUFBdUQvQixRQUF2RCxDQUF4QyxHQUEyR0YsU0FBM0c7QUFDRDtBQUNGO0FBQ0Y7QUFDRjs7QUFFRDs7Ozs7O0FBTUEsU0FBU2tDLGlCQUFULENBQTJCL0MsT0FBM0IsRUFBb0M7QUFDbEMsTUFBSWdELGlCQUFpQmhELFFBQVFpRCxJQUE3QjtBQUNBLE1BQUksT0FBT0QsY0FBUCxLQUEwQixVQUE5QixFQUEwQztBQUN4QztBQUNEO0FBQ0QsTUFBSXJELE9BQU9xRCxlQUFlL0IsV0FBZixJQUE4QitCLGVBQWVyRCxJQUF4RDtBQUNBLE1BQUlxRCxlQUFlVixTQUFuQixFQUE4QjtBQUM1QkYsbUJBQWV6QyxJQUFmLEVBQXFCcUQsZUFBZVYsU0FBcEMsRUFBK0N0QyxRQUFRdUMsS0FBdkQsRUFBOERyRCx1QkFBdUJnRSxJQUFyRjtBQUNEO0FBQ0QsTUFBSSxPQUFPRixlQUFlRyxlQUF0QixLQUEwQyxVQUE5QyxFQUEwRDtBQUN4RDVDLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q2pCLFFBQVF3RCxlQUFlRyxlQUFmLENBQStCQyxvQkFBdkMsRUFBNkQsK0RBQStELGtFQUE1SCxDQUF4QyxHQUEwT3ZDLFNBQTFPO0FBQ0Q7QUFDRjs7QUFFRCxJQUFJd0Msd0JBQXdCOztBQUUxQkMsaUJBQWUsdUJBQVVMLElBQVYsRUFBZ0JWLEtBQWhCLEVBQXVCZ0IsUUFBdkIsRUFBaUM7QUFDOUMsUUFBSUMsWUFBWSxPQUFPUCxJQUFQLEtBQWdCLFFBQWhCLElBQTRCLE9BQU9BLElBQVAsS0FBZ0IsVUFBNUQ7QUFDQTtBQUNBO0FBQ0ExQyxZQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NqQixRQUFRZ0UsU0FBUixFQUFtQiwwRUFBMEUsbUVBQTFFLEdBQWdKLCtCQUFuSyxFQUFvTS9ELDZCQUFwTSxDQUF4QyxHQUE2UW9CLFNBQTdROztBQUVBLFFBQUliLFVBQVVoQixhQUFhc0UsYUFBYixDQUEyQkcsS0FBM0IsQ0FBaUMsSUFBakMsRUFBdUNDLFNBQXZDLENBQWQ7O0FBRUE7QUFDQTtBQUNBLFFBQUkxRCxXQUFXLElBQWYsRUFBcUI7QUFDbkIsYUFBT0EsT0FBUDtBQUNEOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFJd0QsU0FBSixFQUFlO0FBQ2IsV0FBSyxJQUFJaEMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJa0MsVUFBVWpDLE1BQTlCLEVBQXNDRCxHQUF0QyxFQUEyQztBQUN6Q0osMEJBQWtCc0MsVUFBVWxDLENBQVYsQ0FBbEIsRUFBZ0N5QixJQUFoQztBQUNEO0FBQ0Y7O0FBRURGLHNCQUFrQi9DLE9BQWxCOztBQUVBLFdBQU9BLE9BQVA7QUFDRCxHQTlCeUI7O0FBZ0MxQjJELGlCQUFlLHVCQUFVVixJQUFWLEVBQWdCO0FBQzdCLFFBQUlXLG1CQUFtQlAsc0JBQXNCQyxhQUF0QixDQUFvQ08sSUFBcEMsQ0FBeUMsSUFBekMsRUFBK0NaLElBQS9DLENBQXZCO0FBQ0E7QUFDQVcscUJBQWlCWCxJQUFqQixHQUF3QkEsSUFBeEI7O0FBRUEsUUFBSTFDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6QyxVQUFJcEIsaUJBQUosRUFBdUI7QUFDckJ5RSxlQUFPQyxjQUFQLENBQXNCSCxnQkFBdEIsRUFBd0MsTUFBeEMsRUFBZ0Q7QUFDOUNJLHNCQUFZLEtBRGtDO0FBRTlDQyxlQUFLLGVBQVk7QUFDZjFELG9CQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NqQixRQUFRLEtBQVIsRUFBZSwyREFBMkQscUNBQTFFLENBQXhDLEdBQTJKcUIsU0FBM0o7QUFDQWlELG1CQUFPQyxjQUFQLENBQXNCLElBQXRCLEVBQTRCLE1BQTVCLEVBQW9DO0FBQ2xDNUIscUJBQU9jO0FBRDJCLGFBQXBDO0FBR0EsbUJBQU9BLElBQVA7QUFDRDtBQVI2QyxTQUFoRDtBQVVEO0FBQ0Y7O0FBRUQsV0FBT1csZ0JBQVA7QUFDRCxHQXJEeUI7O0FBdUQxQk0sZ0JBQWMsc0JBQVVsRSxPQUFWLEVBQW1CdUMsS0FBbkIsRUFBMEJnQixRQUExQixFQUFvQztBQUNoRCxRQUFJWSxhQUFhbkYsYUFBYWtGLFlBQWIsQ0FBMEJULEtBQTFCLENBQWdDLElBQWhDLEVBQXNDQyxTQUF0QyxDQUFqQjtBQUNBLFNBQUssSUFBSWxDLElBQUksQ0FBYixFQUFnQkEsSUFBSWtDLFVBQVVqQyxNQUE5QixFQUFzQ0QsR0FBdEMsRUFBMkM7QUFDekNKLHdCQUFrQnNDLFVBQVVsQyxDQUFWLENBQWxCLEVBQWdDMkMsV0FBV2xCLElBQTNDO0FBQ0Q7QUFDREYsc0JBQWtCb0IsVUFBbEI7QUFDQSxXQUFPQSxVQUFQO0FBQ0Q7O0FBOUR5QixDQUE1Qjs7QUFrRUFDLE9BQU9DLE9BQVAsR0FBaUJoQixxQkFBakIsQyIsImZpbGUiOiIxNTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgUmVhY3RFbGVtZW50VmFsaWRhdG9yXG4gKi9cblxuLyoqXG4gKiBSZWFjdEVsZW1lbnRWYWxpZGF0b3IgcHJvdmlkZXMgYSB3cmFwcGVyIGFyb3VuZCBhIGVsZW1lbnQgZmFjdG9yeVxuICogd2hpY2ggdmFsaWRhdGVzIHRoZSBwcm9wcyBwYXNzZWQgdG8gdGhlIGVsZW1lbnQuIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmVcbiAqIHVzZWQgb25seSBpbiBERVYgYW5kIGNvdWxkIGJlIHJlcGxhY2VkIGJ5IGEgc3RhdGljIHR5cGUgY2hlY2tlciBmb3IgbGFuZ3VhZ2VzXG4gKiB0aGF0IHN1cHBvcnQgaXQuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RFbGVtZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVsZW1lbnQnKTtcbnZhciBSZWFjdFByb3BUeXBlTG9jYXRpb25zID0gcmVxdWlyZSgnLi9SZWFjdFByb3BUeXBlTG9jYXRpb25zJyk7XG52YXIgUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXMgPSByZXF1aXJlKCcuL1JlYWN0UHJvcFR5cGVMb2NhdGlvbk5hbWVzJyk7XG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSByZXF1aXJlKCcuL1JlYWN0Q3VycmVudE93bmVyJyk7XG5cbnZhciBjYW5EZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vY2FuRGVmaW5lUHJvcGVydHknKTtcbnZhciBnZXRJdGVyYXRvckZuID0gcmVxdWlyZSgnLi9nZXRJdGVyYXRvckZuJyk7XG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG52YXIgd2FybmluZyA9IHJlcXVpcmUoJ2ZianMvbGliL3dhcm5pbmcnKTtcblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgIHZhciBuYW1lID0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5nZXROYW1lKCk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiAnIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgbmFtZSArICdgLic7XG4gICAgfVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBXYXJuIGlmIHRoZXJlJ3Mgbm8ga2V5IGV4cGxpY2l0bHkgc2V0IG9uIGR5bmFtaWMgYXJyYXlzIG9mIGNoaWxkcmVuIG9yXG4gKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAqIHVwZGF0ZXMuXG4gKi9cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxudmFyIGxvZ2dlZFR5cGVGYWlsdXJlcyA9IHt9O1xuXG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIGlmICghZWxlbWVudC5fc3RvcmUgfHwgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkIHx8IGVsZW1lbnQua2V5ICE9IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcblxuICB2YXIgYWRkZW5kYSA9IGdldEFkZGVuZGFGb3JLZXlVc2UoJ3VuaXF1ZUtleScsIGVsZW1lbnQsIHBhcmVudFR5cGUpO1xuICBpZiAoYWRkZW5kYSA9PT0gbnVsbCkge1xuICAgIC8vIHdlIGFscmVhZHkgc2hvd2VkIHRoZSB3YXJuaW5nXG4gICAgcmV0dXJuO1xuICB9XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnRWFjaCBjaGlsZCBpbiBhbiBhcnJheSBvciBpdGVyYXRvciBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzJXMnLCBhZGRlbmRhLnBhcmVudE9yT3duZXIgfHwgJycsIGFkZGVuZGEuY2hpbGRPd25lciB8fCAnJywgYWRkZW5kYS51cmwgfHwgJycpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFNoYXJlZCB3YXJuaW5nIGFuZCBtb25pdG9yaW5nIGNvZGUgZm9yIHRoZSBrZXkgd2FybmluZ3MuXG4gKlxuICogQGludGVybmFsXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVR5cGUgQSBrZXkgdXNlZCBmb3IgZGUtZHVwaW5nIHdhcm5pbmdzLlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgQ29tcG9uZW50IHRoYXQgcmVxdWlyZXMgYSBrZXkuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgZWxlbWVudCdzIHBhcmVudCdzIHR5cGUuXG4gKiBAcmV0dXJucyB7P29iamVjdH0gQSBzZXQgb2YgYWRkZW5kYSB0byB1c2UgaW4gdGhlIHdhcm5pbmcgbWVzc2FnZSwgb3IgbnVsbFxuICogaWYgdGhlIHdhcm5pbmcgaGFzIGFscmVhZHkgYmVlbiBzaG93biBiZWZvcmUgKGFuZCBzaG91bGRuJ3QgYmUgc2hvd24gYWdhaW4pLlxuICovXG5mdW5jdGlvbiBnZXRBZGRlbmRhRm9yS2V5VXNlKG1lc3NhZ2VUeXBlLCBlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gIHZhciBhZGRlbmR1bSA9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICBpZiAoIWFkZGVuZHVtKSB7XG4gICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG4gICAgaWYgKHBhcmVudE5hbWUpIHtcbiAgICAgIGFkZGVuZHVtID0gJyBDaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDwnICsgcGFyZW50TmFtZSArICc+Lic7XG4gICAgfVxuICB9XG5cbiAgdmFyIG1lbW9pemVyID0gb3duZXJIYXNLZXlVc2VXYXJuaW5nW21lc3NhZ2VUeXBlXSB8fCAob3duZXJIYXNLZXlVc2VXYXJuaW5nW21lc3NhZ2VUeXBlXSA9IHt9KTtcbiAgaWYgKG1lbW9pemVyW2FkZGVuZHVtXSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIG1lbW9pemVyW2FkZGVuZHVtXSA9IHRydWU7XG5cbiAgdmFyIGFkZGVuZGEgPSB7XG4gICAgcGFyZW50T3JPd25lcjogYWRkZW5kdW0sXG4gICAgdXJsOiAnIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmcta2V5cyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nLFxuICAgIGNoaWxkT3duZXI6IG51bGxcbiAgfTtcblxuICAvLyBVc3VhbGx5IHRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBvZmZlbmRlciwgYnV0IGlmIGl0IGFjY2VwdHMgY2hpbGRyZW4gYXMgYVxuICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXG4gIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cbiAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5fb3duZXIgJiYgZWxlbWVudC5fb3duZXIgIT09IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQpIHtcbiAgICAvLyBHaXZlIHRoZSBjb21wb25lbnQgdGhhdCBvcmlnaW5hbGx5IGNyZWF0ZWQgdGhpcyBjaGlsZC5cbiAgICBhZGRlbmRhLmNoaWxkT3duZXIgPSAnIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tICcgKyBlbGVtZW50Ll9vd25lci5nZXROYW1lKCkgKyAnLic7XG4gIH1cblxuICByZXR1cm4gYWRkZW5kYTtcbn1cblxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUsIHBhcmVudFR5cGUpIHtcbiAgaWYgKHR5cGVvZiBub2RlICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcbiAgICAgIGlmIChSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKSB7XG4gICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoY2hpbGQsIHBhcmVudFR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChSZWFjdEVsZW1lbnQuaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcbiAgICAvLyBFbnRyeSBpdGVyYXRvcnMgcHJvdmlkZSBpbXBsaWNpdCBrZXlzLlxuICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG4gICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICBpZiAoUmVhY3RFbGVtZW50LmlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KHN0ZXAudmFsdWUsIHBhcmVudFR5cGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFzc2VydCB0aGF0IHRoZSBwcm9wcyBhcmUgdmFsaWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY29tcG9uZW50TmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICogQHBhcmFtIHtvYmplY3R9IHByb3BUeXBlcyBNYXAgb2YgcHJvcCBuYW1lIHRvIGEgUmVhY3RQcm9wVHlwZVxuICogQHBhcmFtIHtvYmplY3R9IHByb3BzXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBjaGVja1Byb3BUeXBlcyhjb21wb25lbnROYW1lLCBwcm9wVHlwZXMsIHByb3BzLCBsb2NhdGlvbikge1xuICBmb3IgKHZhciBwcm9wTmFtZSBpbiBwcm9wVHlwZXMpIHtcbiAgICBpZiAocHJvcFR5cGVzLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgdmFyIGVycm9yO1xuICAgICAgLy8gUHJvcCB0eXBlIHZhbGlkYXRpb24gbWF5IHRocm93LiBJbiBjYXNlIHRoZXkgZG8sIHdlIGRvbid0IHdhbnQgdG9cbiAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBhbiBpbnZhcmlhbnQgdGhhdCBnZXRzIGNhdWdodC4gSXQncyB0aGUgc2FtZVxuICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICEodHlwZW9mIHByb3BUeXBlc1twcm9wTmFtZV0gPT09ICdmdW5jdGlvbicpID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJyVzOiAlcyB0eXBlIGAlc2AgaXMgaW52YWxpZDsgaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gJyArICdSZWFjdC5Qcm9wVHlwZXMuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBSZWFjdFByb3BUeXBlTG9jYXRpb25OYW1lc1tsb2NhdGlvbl0sIHByb3BOYW1lKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGVycm9yID0gcHJvcFR5cGVzW3Byb3BOYW1lXShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIGVycm9yID0gZXg7XG4gICAgICB9XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyghZXJyb3IgfHwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciwgJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgUmVhY3RQcm9wVHlwZUxvY2F0aW9uTmFtZXNbbG9jYXRpb25dLCBwcm9wTmFtZSwgdHlwZW9mIGVycm9yKSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICEoZXJyb3IubWVzc2FnZSBpbiBsb2dnZWRUeXBlRmFpbHVyZXMpKSB7XG4gICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICBsb2dnZWRUeXBlRmFpbHVyZXNbZXJyb3IubWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgICAgIHZhciBhZGRlbmR1bSA9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ZhaWxlZCBwcm9wVHlwZTogJXMlcycsIGVycm9yLm1lc3NhZ2UsIGFkZGVuZHVtKSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBHaXZlbiBhbiBlbGVtZW50LCB2YWxpZGF0ZSB0aGF0IGl0cyBwcm9wcyBmb2xsb3cgdGhlIHByb3BUeXBlcyBkZWZpbml0aW9uLFxuICogcHJvdmlkZWQgYnkgdGhlIHR5cGUuXG4gKlxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnRcbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCkge1xuICB2YXIgY29tcG9uZW50Q2xhc3MgPSBlbGVtZW50LnR5cGU7XG4gIGlmICh0eXBlb2YgY29tcG9uZW50Q2xhc3MgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG5hbWUgPSBjb21wb25lbnRDbGFzcy5kaXNwbGF5TmFtZSB8fCBjb21wb25lbnRDbGFzcy5uYW1lO1xuICBpZiAoY29tcG9uZW50Q2xhc3MucHJvcFR5cGVzKSB7XG4gICAgY2hlY2tQcm9wVHlwZXMobmFtZSwgY29tcG9uZW50Q2xhc3MucHJvcFR5cGVzLCBlbGVtZW50LnByb3BzLCBSZWFjdFByb3BUeXBlTG9jYXRpb25zLnByb3ApO1xuICB9XG4gIGlmICh0eXBlb2YgY29tcG9uZW50Q2xhc3MuZ2V0RGVmYXVsdFByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHdhcm5pbmcoY29tcG9uZW50Q2xhc3MuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkLCAnZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpIDogdW5kZWZpbmVkO1xuICB9XG59XG5cbnZhciBSZWFjdEVsZW1lbnRWYWxpZGF0b3IgPSB7XG5cbiAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24gKHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuICAgIHZhciB2YWxpZFR5cGUgPSB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbic7XG4gICAgLy8gV2Ugd2FybiBpbiB0aGlzIGNhc2UgYnV0IGRvbid0IHRocm93LiBXZSBleHBlY3QgdGhlIGVsZW1lbnQgY3JlYXRpb24gdG9cbiAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKHZhbGlkVHlwZSwgJ1JlYWN0LmNyZWF0ZUVsZW1lbnQ6IHR5cGUgc2hvdWxkIG5vdCBiZSBudWxsLCB1bmRlZmluZWQsIGJvb2xlYW4sIG9yICcgKyAnbnVtYmVyLiBJdCBzaG91bGQgYmUgYSBzdHJpbmcgKGZvciBET00gZWxlbWVudHMpIG9yIGEgUmVhY3RDbGFzcyAnICsgJyhmb3IgY29tcG9zaXRlIGNvbXBvbmVudHMpLiVzJywgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkpIDogdW5kZWZpbmVkO1xuXG4gICAgdmFyIGVsZW1lbnQgPSBSZWFjdEVsZW1lbnQuY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgLy8gVGhlIHJlc3VsdCBjYW4gYmUgbnVsbGlzaCBpZiBhIG1vY2sgb3IgYSBjdXN0b20gZnVuY3Rpb24gaXMgdXNlZC5cbiAgICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLy8gU2tpcCBrZXkgd2FybmluZyBpZiB0aGUgdHlwZSBpc24ndCB2YWxpZCBzaW5jZSBvdXIga2V5IHZhbGlkYXRpb24gbG9naWNcbiAgICAvLyBkb2Vzbid0IGV4cGVjdCBhIG5vbi1zdHJpbmcvZnVuY3Rpb24gdHlwZSBhbmQgY2FuIHRocm93IGNvbmZ1c2luZyBlcnJvcnMuXG4gICAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAgIC8vIChSZW5kZXJpbmcgd2lsbCB0aHJvdyB3aXRoIGEgaGVscGZ1bCBtZXNzYWdlIGFuZCBhcyBzb29uIGFzIHRoZSB0eXBlIGlzXG4gICAgLy8gZml4ZWQsIHRoZSBrZXkgd2FybmluZ3Mgd2lsbCBhcHBlYXIuKVxuICAgIGlmICh2YWxpZFR5cGUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfSxcblxuICBjcmVhdGVGYWN0b3J5OiBmdW5jdGlvbiAodHlwZSkge1xuICAgIHZhciB2YWxpZGF0ZWRGYWN0b3J5ID0gUmVhY3RFbGVtZW50VmFsaWRhdG9yLmNyZWF0ZUVsZW1lbnQuYmluZChudWxsLCB0eXBlKTtcbiAgICAvLyBMZWdhY3kgaG9vayBUT0RPOiBXYXJuIGlmIHRoaXMgaXMgYWNjZXNzZWRcbiAgICB2YWxpZGF0ZWRGYWN0b3J5LnR5cGUgPSB0eXBlO1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChjYW5EZWZpbmVQcm9wZXJ0eSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ZhY3RvcnkudHlwZSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdGhlIGNsYXNzIGRpcmVjdGx5ICcgKyAnYmVmb3JlIHBhc3NpbmcgaXQgdG8gY3JlYXRlRmFjdG9yeS4nKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAndHlwZScsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHR5cGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGVkRmFjdG9yeTtcbiAgfSxcblxuICBjbG9uZUVsZW1lbnQ6IGZ1bmN0aW9uIChlbGVtZW50LCBwcm9wcywgY2hpbGRyZW4pIHtcbiAgICB2YXIgbmV3RWxlbWVudCA9IFJlYWN0RWxlbWVudC5jbG9uZUVsZW1lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFsaWRhdGVDaGlsZEtleXMoYXJndW1lbnRzW2ldLCBuZXdFbGVtZW50LnR5cGUpO1xuICAgIH1cbiAgICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbiAgfVxuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFJlYWN0RWxlbWVudFZhbGlkYXRvcjtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvUmVhY3RFbGVtZW50VmFsaWRhdG9yLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 155 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule mapObject\n */\n\n'use strict';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * Executes the provided `callback` once for each enumerable own property in the\n * object and constructs a new object from the results. The `callback` is\n * invoked with three arguments:\n *\n * - the property value\n * - the property name\n * - the object being traversed\n *\n * Properties that are added after the call to `mapObject` will not be visited\n * by `callback`. If the values of existing properties are changed, the value\n * passed to `callback` will be the value at the time `mapObject` visits them.\n * Properties that are deleted before being visited are not visited.\n *\n * @grep function objectMap()\n * @grep function objMap()\n *\n * @param {?object} object\n * @param {function} callback\n * @param {*} context\n * @return {?object}\n */\nfunction mapObject(object, callback, context) {\n if (!object) {\n return null;\n }\n var result = {};\n for (var name in object) {\n if (hasOwnProperty.call(object, name)) {\n result[name] = callback.call(context, object[name], name, object);\n }\n }\n return result;\n}\n\nmodule.exports = mapObject;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9mYmpzL2xpYi9tYXBPYmplY3QuanM/M2IyNCJdLCJuYW1lcyI6WyJoYXNPd25Qcm9wZXJ0eSIsIk9iamVjdCIsInByb3RvdHlwZSIsIm1hcE9iamVjdCIsIm9iamVjdCIsImNhbGxiYWNrIiwiY29udGV4dCIsInJlc3VsdCIsIm5hbWUiLCJjYWxsIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0FBV0E7O0FBRUEsSUFBSUEsaUJBQWlCQyxPQUFPQyxTQUFQLENBQWlCRixjQUF0Qzs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNCQSxTQUFTRyxTQUFULENBQW1CQyxNQUFuQixFQUEyQkMsUUFBM0IsRUFBcUNDLE9BQXJDLEVBQThDO0FBQzVDLE1BQUksQ0FBQ0YsTUFBTCxFQUFhO0FBQ1gsV0FBTyxJQUFQO0FBQ0Q7QUFDRCxNQUFJRyxTQUFTLEVBQWI7QUFDQSxPQUFLLElBQUlDLElBQVQsSUFBaUJKLE1BQWpCLEVBQXlCO0FBQ3ZCLFFBQUlKLGVBQWVTLElBQWYsQ0FBb0JMLE1BQXBCLEVBQTRCSSxJQUE1QixDQUFKLEVBQXVDO0FBQ3JDRCxhQUFPQyxJQUFQLElBQWVILFNBQVNJLElBQVQsQ0FBY0gsT0FBZCxFQUF1QkYsT0FBT0ksSUFBUCxDQUF2QixFQUFxQ0EsSUFBckMsRUFBMkNKLE1BQTNDLENBQWY7QUFDRDtBQUNGO0FBQ0QsU0FBT0csTUFBUDtBQUNEOztBQUVERyxPQUFPQyxPQUFQLEdBQWlCUixTQUFqQiIsImZpbGUiOiIxNTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDEzLTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqXG4gKiBAcHJvdmlkZXNNb2R1bGUgbWFwT2JqZWN0XG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEV4ZWN1dGVzIHRoZSBwcm92aWRlZCBgY2FsbGJhY2tgIG9uY2UgZm9yIGVhY2ggZW51bWVyYWJsZSBvd24gcHJvcGVydHkgaW4gdGhlXG4gKiBvYmplY3QgYW5kIGNvbnN0cnVjdHMgYSBuZXcgb2JqZWN0IGZyb20gdGhlIHJlc3VsdHMuIFRoZSBgY2FsbGJhY2tgIGlzXG4gKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICpcbiAqICAtIHRoZSBwcm9wZXJ0eSB2YWx1ZVxuICogIC0gdGhlIHByb3BlcnR5IG5hbWVcbiAqICAtIHRoZSBvYmplY3QgYmVpbmcgdHJhdmVyc2VkXG4gKlxuICogUHJvcGVydGllcyB0aGF0IGFyZSBhZGRlZCBhZnRlciB0aGUgY2FsbCB0byBgbWFwT2JqZWN0YCB3aWxsIG5vdCBiZSB2aXNpdGVkXG4gKiBieSBgY2FsbGJhY2tgLiBJZiB0aGUgdmFsdWVzIG9mIGV4aXN0aW5nIHByb3BlcnRpZXMgYXJlIGNoYW5nZWQsIHRoZSB2YWx1ZVxuICogcGFzc2VkIHRvIGBjYWxsYmFja2Agd2lsbCBiZSB0aGUgdmFsdWUgYXQgdGhlIHRpbWUgYG1hcE9iamVjdGAgdmlzaXRzIHRoZW0uXG4gKiBQcm9wZXJ0aWVzIHRoYXQgYXJlIGRlbGV0ZWQgYmVmb3JlIGJlaW5nIHZpc2l0ZWQgYXJlIG5vdCB2aXNpdGVkLlxuICpcbiAqIEBncmVwIGZ1bmN0aW9uIG9iamVjdE1hcCgpXG4gKiBAZ3JlcCBmdW5jdGlvbiBvYmpNYXAoKVxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gb2JqZWN0XG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHsqfSBjb250ZXh0XG4gKiBAcmV0dXJuIHs/b2JqZWN0fVxuICovXG5mdW5jdGlvbiBtYXBPYmplY3Qob2JqZWN0LCBjYWxsYmFjaywgY29udGV4dCkge1xuICBpZiAoIW9iamVjdCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgZm9yICh2YXIgbmFtZSBpbiBvYmplY3QpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIG5hbWUpKSB7XG4gICAgICByZXN1bHRbbmFtZV0gPSBjYWxsYmFjay5jYWxsKGNvbnRleHQsIG9iamVjdFtuYW1lXSwgbmFtZSwgb2JqZWN0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBPYmplY3Q7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZmJqcy9saWIvbWFwT2JqZWN0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 156 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule onlyChild\n */\n'use strict';\n\nvar ReactElement = __webpack_require__(42);\n\nvar invariant = __webpack_require__(13);\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection. The current implementation of this\n * function assumes that a single child gets passed without a wrapper, but the\n * purpose of this helper function is to abstract away the particular structure\n * of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactComponent} The first and only `ReactComponent` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'onlyChild must be passed a children with exactly one child.') : invariant(false) : undefined;\n return children;\n}\n\nmodule.exports = onlyChild;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvb25seUNoaWxkLmpzPzUxNTEiXSwibmFtZXMiOlsiUmVhY3RFbGVtZW50IiwicmVxdWlyZSIsImludmFyaWFudCIsIm9ubHlDaGlsZCIsImNoaWxkcmVuIiwiaXNWYWxpZEVsZW1lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztBQVVBOztBQUVBLElBQUlBLGVBQWUsbUJBQUFDLENBQVEsRUFBUixDQUFuQjs7QUFFQSxJQUFJQyxZQUFZLG1CQUFBRCxDQUFRLEVBQVIsQ0FBaEI7O0FBRUE7Ozs7Ozs7Ozs7O0FBV0EsU0FBU0UsU0FBVCxDQUFtQkMsUUFBbkIsRUFBNkI7QUFDM0IsR0FBQ0osYUFBYUssY0FBYixDQUE0QkQsUUFBNUIsQ0FBRCxHQUF5Q0UsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDTixVQUFVLEtBQVYsRUFBaUIsNkRBQWpCLENBQXhDLEdBQTBIQSxVQUFVLEtBQVYsQ0FBbkssR0FBc0xPLFNBQXRMO0FBQ0EsU0FBT0wsUUFBUDtBQUNEOztBQUVETSxPQUFPQyxPQUFQLEdBQWlCUixTQUFqQixDIiwiZmlsZSI6IjE1Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBvbmx5Q2hpbGRcbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RFbGVtZW50ID0gcmVxdWlyZSgnLi9SZWFjdEVsZW1lbnQnKTtcblxudmFyIGludmFyaWFudCA9IHJlcXVpcmUoJ2ZianMvbGliL2ludmFyaWFudCcpO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGZpcnN0IGNoaWxkIGluIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiBhbmQgdmVyaWZpZXMgdGhhdCB0aGVyZVxuICogaXMgb25seSBvbmUgY2hpbGQgaW4gdGhlIGNvbGxlY3Rpb24uIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIHRoaXNcbiAqIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCBhIHNpbmdsZSBjaGlsZCBnZXRzIHBhc3NlZCB3aXRob3V0IGEgd3JhcHBlciwgYnV0IHRoZVxuICogcHVycG9zZSBvZiB0aGlzIGhlbHBlciBmdW5jdGlvbiBpcyB0byBhYnN0cmFjdCBhd2F5IHRoZSBwYXJ0aWN1bGFyIHN0cnVjdHVyZVxuICogb2YgY2hpbGRyZW4uXG4gKlxuICogQHBhcmFtIHs/b2JqZWN0fSBjaGlsZHJlbiBDaGlsZCBjb2xsZWN0aW9uIHN0cnVjdHVyZS5cbiAqIEByZXR1cm4ge1JlYWN0Q29tcG9uZW50fSBUaGUgZmlyc3QgYW5kIG9ubHkgYFJlYWN0Q29tcG9uZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cbmZ1bmN0aW9uIG9ubHlDaGlsZChjaGlsZHJlbikge1xuICAhUmVhY3RFbGVtZW50LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdvbmx5Q2hpbGQgbXVzdCBiZSBwYXNzZWQgYSBjaGlsZHJlbiB3aXRoIGV4YWN0bHkgb25lIGNoaWxkLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9ubHlDaGlsZDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvb25seUNoaWxkLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 157 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule deprecated\n */\n\n'use strict';\n\nvar assign = __webpack_require__(39);\nvar warning = __webpack_require__(25);\n\n/**\n * This will log a single deprecation notice per function and forward the call\n * on to the new API.\n *\n * @param {string} fnName The name of the function\n * @param {string} newModule The module that fn will exist in\n * @param {string} newPackage The module that fn will exist in\n * @param {*} ctx The context this forwarded call should run in\n * @param {function} fn The function to forward on to\n * @return {function} The function that will warn once and then call fn\n */\nfunction deprecated(fnName, newModule, newPackage, ctx, fn) {\n var warned = false;\n if (process.env.NODE_ENV !== 'production') {\n var newFn = function newFn() {\n process.env.NODE_ENV !== 'production' ? warning(warned,\n // Require examples in this string must be split to prevent React's\n // build tools from mistaking them for real requires.\n // Otherwise the build tools will attempt to build a '%s' module.\n 'React.%s is deprecated. Please use %s.%s from require' + '(\\'%s\\') ' + 'instead.', fnName, newModule, fnName, newPackage) : undefined;\n warned = true;\n return fn.apply(ctx, arguments);\n };\n // We need to make sure all properties of the original fn are copied over.\n // In particular, this is needed to support PropTypes\n return assign(newFn, fn);\n }\n\n return fn;\n}\n\nmodule.exports = deprecated;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZGVwcmVjYXRlZC5qcz9kNGU4Il0sIm5hbWVzIjpbImFzc2lnbiIsInJlcXVpcmUiLCJ3YXJuaW5nIiwiZGVwcmVjYXRlZCIsImZuTmFtZSIsIm5ld01vZHVsZSIsIm5ld1BhY2thZ2UiLCJjdHgiLCJmbiIsIndhcm5lZCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm5ld0ZuIiwidW5kZWZpbmVkIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7QUFXQTs7QUFFQSxJQUFJQSxTQUFTLG1CQUFBQyxDQUFRLEVBQVIsQ0FBYjtBQUNBLElBQUlDLFVBQVUsbUJBQUFELENBQVEsRUFBUixDQUFkOztBQUVBOzs7Ozs7Ozs7OztBQVdBLFNBQVNFLFVBQVQsQ0FBb0JDLE1BQXBCLEVBQTRCQyxTQUE1QixFQUF1Q0MsVUFBdkMsRUFBbURDLEdBQW5ELEVBQXdEQyxFQUF4RCxFQUE0RDtBQUMxRCxNQUFJQyxTQUFTLEtBQWI7QUFDQSxNQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsUUFBSUMsUUFBUSxTQUFSQSxLQUFRLEdBQVk7QUFDdEJILGNBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1YsUUFBUU8sTUFBUjtBQUN4QztBQUNBO0FBQ0E7QUFDQSxnRUFBMEQsV0FBMUQsR0FBd0UsVUFKaEMsRUFJNENMLE1BSjVDLEVBSW9EQyxTQUpwRCxFQUkrREQsTUFKL0QsRUFJdUVFLFVBSnZFLENBQXhDLEdBSTZIUSxTQUo3SDtBQUtBTCxlQUFTLElBQVQ7QUFDQSxhQUFPRCxHQUFHTyxLQUFILENBQVNSLEdBQVQsRUFBY1MsU0FBZCxDQUFQO0FBQ0QsS0FSRDtBQVNBO0FBQ0E7QUFDQSxXQUFPaEIsT0FBT2EsS0FBUCxFQUFjTCxFQUFkLENBQVA7QUFDRDs7QUFFRCxTQUFPQSxFQUFQO0FBQ0Q7O0FBRURTLE9BQU9DLE9BQVAsR0FBaUJmLFVBQWpCLEMiLCJmaWxlIjoiMTU3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogQHByb3ZpZGVzTW9kdWxlIGRlcHJlY2F0ZWRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuL09iamVjdC5hc3NpZ24nKTtcbnZhciB3YXJuaW5nID0gcmVxdWlyZSgnZmJqcy9saWIvd2FybmluZycpO1xuXG4vKipcbiAqIFRoaXMgd2lsbCBsb2cgYSBzaW5nbGUgZGVwcmVjYXRpb24gbm90aWNlIHBlciBmdW5jdGlvbiBhbmQgZm9yd2FyZCB0aGUgY2FsbFxuICogb24gdG8gdGhlIG5ldyBBUEkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZuTmFtZSBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdNb2R1bGUgVGhlIG1vZHVsZSB0aGF0IGZuIHdpbGwgZXhpc3QgaW5cbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdQYWNrYWdlIFRoZSBtb2R1bGUgdGhhdCBmbiB3aWxsIGV4aXN0IGluXG4gKiBAcGFyYW0geyp9IGN0eCBUaGUgY29udGV4dCB0aGlzIGZvcndhcmRlZCBjYWxsIHNob3VsZCBydW4gaW5cbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBmb3J3YXJkIG9uIHRvXG4gKiBAcmV0dXJuIHtmdW5jdGlvbn0gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCB3YXJuIG9uY2UgYW5kIHRoZW4gY2FsbCBmblxuICovXG5mdW5jdGlvbiBkZXByZWNhdGVkKGZuTmFtZSwgbmV3TW9kdWxlLCBuZXdQYWNrYWdlLCBjdHgsIGZuKSB7XG4gIHZhciB3YXJuZWQgPSBmYWxzZTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB2YXIgbmV3Rm4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyh3YXJuZWQsXG4gICAgICAvLyBSZXF1aXJlIGV4YW1wbGVzIGluIHRoaXMgc3RyaW5nIG11c3QgYmUgc3BsaXQgdG8gcHJldmVudCBSZWFjdCdzXG4gICAgICAvLyBidWlsZCB0b29scyBmcm9tIG1pc3Rha2luZyB0aGVtIGZvciByZWFsIHJlcXVpcmVzLlxuICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBidWlsZCB0b29scyB3aWxsIGF0dGVtcHQgdG8gYnVpbGQgYSAnJXMnIG1vZHVsZS5cbiAgICAgICdSZWFjdC4lcyBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlICVzLiVzIGZyb20gcmVxdWlyZScgKyAnKFxcJyVzXFwnKSAnICsgJ2luc3RlYWQuJywgZm5OYW1lLCBuZXdNb2R1bGUsIGZuTmFtZSwgbmV3UGFja2FnZSkgOiB1bmRlZmluZWQ7XG4gICAgICB3YXJuZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGZuLmFwcGx5KGN0eCwgYXJndW1lbnRzKTtcbiAgICB9O1xuICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIGFsbCBwcm9wZXJ0aWVzIG9mIHRoZSBvcmlnaW5hbCBmbiBhcmUgY29waWVkIG92ZXIuXG4gICAgLy8gSW4gcGFydGljdWxhciwgdGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBQcm9wVHlwZXNcbiAgICByZXR1cm4gYXNzaWduKG5ld0ZuLCBmbik7XG4gIH1cblxuICByZXR1cm4gZm47XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVwcmVjYXRlZDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC9saWIvZGVwcmVjYXRlZC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 158 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nmodule.exports = __webpack_require__(3);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1kb20vaW5kZXguanM/M2QxNCJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWlyZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLE9BQU9DLE9BQVAsR0FBaUIsbUJBQUFDLENBQVEsQ0FBUixDQUFqQiIsImZpbGUiOiIxNTguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgncmVhY3QvbGliL1JlYWN0RE9NJyk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1kb20vaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 159 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = __webpack_require__(160);\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = __webpack_require__(175);\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = __webpack_require__(177);\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = __webpack_require__(178);\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = __webpack_require__(179);\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = __webpack_require__(176);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvaW5kZXguanM/YTE3MSJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsImNvbXBvc2UiLCJhcHBseU1pZGRsZXdhcmUiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJjb21iaW5lUmVkdWNlcnMiLCJjcmVhdGVTdG9yZSIsInVuZGVmaW5lZCIsIl9jcmVhdGVTdG9yZSIsInJlcXVpcmUiLCJfY3JlYXRlU3RvcmUyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb21iaW5lUmVkdWNlcnMiLCJfY29tYmluZVJlZHVjZXJzMiIsIl9iaW5kQWN0aW9uQ3JlYXRvcnMiLCJfYmluZEFjdGlvbkNyZWF0b3JzMiIsIl9hcHBseU1pZGRsZXdhcmUiLCJfYXBwbHlNaWRkbGV3YXJlMiIsIl9jb21wb3NlIiwiX2NvbXBvc2UyIiwiX3dhcm5pbmciLCJfd2FybmluZzIiLCJvYmoiLCJpc0NydXNoZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBRCxRQUFRRSxPQUFSLEdBQWtCRixRQUFRRyxlQUFSLEdBQTBCSCxRQUFRSSxrQkFBUixHQUE2QkosUUFBUUssZUFBUixHQUEwQkwsUUFBUU0sV0FBUixHQUFzQkMsU0FBekg7O0FBRUEsSUFBSUMsZUFBZSxtQkFBQUMsQ0FBUSxHQUFSLENBQW5COztBQUVBLElBQUlDLGdCQUFnQkMsdUJBQXVCSCxZQUF2QixDQUFwQjs7QUFFQSxJQUFJSSxtQkFBbUIsbUJBQUFILENBQVEsR0FBUixDQUF2Qjs7QUFFQSxJQUFJSSxvQkFBb0JGLHVCQUF1QkMsZ0JBQXZCLENBQXhCOztBQUVBLElBQUlFLHNCQUFzQixtQkFBQUwsQ0FBUSxHQUFSLENBQTFCOztBQUVBLElBQUlNLHVCQUF1QkosdUJBQXVCRyxtQkFBdkIsQ0FBM0I7O0FBRUEsSUFBSUUsbUJBQW1CLG1CQUFBUCxDQUFRLEdBQVIsQ0FBdkI7O0FBRUEsSUFBSVEsb0JBQW9CTix1QkFBdUJLLGdCQUF2QixDQUF4Qjs7QUFFQSxJQUFJRSxXQUFXLG1CQUFBVCxDQUFRLEdBQVIsQ0FBZjs7QUFFQSxJQUFJVSxZQUFZUix1QkFBdUJPLFFBQXZCLENBQWhCOztBQUVBLElBQUlFLFdBQVcsbUJBQUFYLENBQVEsR0FBUixDQUFmOztBQUVBLElBQUlZLFlBQVlWLHVCQUF1QlMsUUFBdkIsQ0FBaEI7O0FBRUEsU0FBU1Qsc0JBQVQsQ0FBZ0NXLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSXJCLFVBQVgsR0FBd0JxQixHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHOzs7O0FBSUEsU0FBU0MsU0FBVCxHQUFxQixDQUFFOztBQUV2QixJQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsSUFBeUMsT0FBT0gsVUFBVUksSUFBakIsS0FBMEIsUUFBbkUsSUFBK0VKLFVBQVVJLElBQVYsS0FBbUIsV0FBdEcsRUFBbUg7QUFDakgsR0FBQyxHQUFHTixVQUFVLFNBQVYsQ0FBSixFQUEwQixtRkFBbUYsdUVBQW5GLEdBQTZKLG9GQUE3SixHQUFvUCw0RUFBcFAsR0FBbVUsZ0VBQTdWO0FBQ0Q7O0FBRURyQixRQUFRTSxXQUFSLEdBQXNCSSxjQUFjLFNBQWQsQ0FBdEI7QUFDQVYsUUFBUUssZUFBUixHQUEwQlEsa0JBQWtCLFNBQWxCLENBQTFCO0FBQ0FiLFFBQVFJLGtCQUFSLEdBQTZCVyxxQkFBcUIsU0FBckIsQ0FBN0I7QUFDQWYsUUFBUUcsZUFBUixHQUEwQmMsa0JBQWtCLFNBQWxCLENBQTFCO0FBQ0FqQixRQUFRRSxPQUFSLEdBQWtCaUIsVUFBVSxTQUFWLENBQWxCLEMiLCJmaWxlIjoiMTU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jb21wb3NlID0gZXhwb3J0cy5hcHBseU1pZGRsZXdhcmUgPSBleHBvcnRzLmJpbmRBY3Rpb25DcmVhdG9ycyA9IGV4cG9ydHMuY29tYmluZVJlZHVjZXJzID0gZXhwb3J0cy5jcmVhdGVTdG9yZSA9IHVuZGVmaW5lZDtcblxudmFyIF9jcmVhdGVTdG9yZSA9IHJlcXVpcmUoJy4vY3JlYXRlU3RvcmUnKTtcblxudmFyIF9jcmVhdGVTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jcmVhdGVTdG9yZSk7XG5cbnZhciBfY29tYmluZVJlZHVjZXJzID0gcmVxdWlyZSgnLi9jb21iaW5lUmVkdWNlcnMnKTtcblxudmFyIF9jb21iaW5lUmVkdWNlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY29tYmluZVJlZHVjZXJzKTtcblxudmFyIF9iaW5kQWN0aW9uQ3JlYXRvcnMgPSByZXF1aXJlKCcuL2JpbmRBY3Rpb25DcmVhdG9ycycpO1xuXG52YXIgX2JpbmRBY3Rpb25DcmVhdG9yczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9iaW5kQWN0aW9uQ3JlYXRvcnMpO1xuXG52YXIgX2FwcGx5TWlkZGxld2FyZSA9IHJlcXVpcmUoJy4vYXBwbHlNaWRkbGV3YXJlJyk7XG5cbnZhciBfYXBwbHlNaWRkbGV3YXJlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FwcGx5TWlkZGxld2FyZSk7XG5cbnZhciBfY29tcG9zZSA9IHJlcXVpcmUoJy4vY29tcG9zZScpO1xuXG52YXIgX2NvbXBvc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY29tcG9zZSk7XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJy4vdXRpbHMvd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuLypcbiogVGhpcyBpcyBhIGR1bW15IGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBuYW1lIGhhcyBiZWVuIGFsdGVyZWQgYnkgbWluaWZpY2F0aW9uLlxuKiBJZiB0aGUgZnVuY3Rpb24gaGFzIGJlZW4gbWluaWZpZWQgYW5kIE5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsIHdhcm4gdGhlIHVzZXIuXG4qL1xuZnVuY3Rpb24gaXNDcnVzaGVkKCkge31cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgdHlwZW9mIGlzQ3J1c2hlZC5uYW1lID09PSAnc3RyaW5nJyAmJiBpc0NydXNoZWQubmFtZSAhPT0gJ2lzQ3J1c2hlZCcpIHtcbiAgKDAsIF93YXJuaW5nMlsnZGVmYXVsdCddKSgnWW91IGFyZSBjdXJyZW50bHkgdXNpbmcgbWluaWZpZWQgY29kZSBvdXRzaWRlIG9mIE5PREVfRU5WID09PSBcXCdwcm9kdWN0aW9uXFwnLiAnICsgJ1RoaXMgbWVhbnMgdGhhdCB5b3UgYXJlIHJ1bm5pbmcgYSBzbG93ZXIgZGV2ZWxvcG1lbnQgYnVpbGQgb2YgUmVkdXguICcgKyAnWW91IGNhbiB1c2UgbG9vc2UtZW52aWZ5IChodHRwczovL2dpdGh1Yi5jb20vemVydG9zaC9sb29zZS1lbnZpZnkpIGZvciBicm93c2VyaWZ5ICcgKyAnb3IgRGVmaW5lUGx1Z2luIGZvciB3ZWJwYWNrIChodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMwMDMwMDMxKSAnICsgJ3RvIGVuc3VyZSB5b3UgaGF2ZSB0aGUgY29ycmVjdCBjb2RlIGZvciB5b3VyIHByb2R1Y3Rpb24gYnVpbGQuJyk7XG59XG5cbmV4cG9ydHMuY3JlYXRlU3RvcmUgPSBfY3JlYXRlU3RvcmUyWydkZWZhdWx0J107XG5leHBvcnRzLmNvbWJpbmVSZWR1Y2VycyA9IF9jb21iaW5lUmVkdWNlcnMyWydkZWZhdWx0J107XG5leHBvcnRzLmJpbmRBY3Rpb25DcmVhdG9ycyA9IF9iaW5kQWN0aW9uQ3JlYXRvcnMyWydkZWZhdWx0J107XG5leHBvcnRzLmFwcGx5TWlkZGxld2FyZSA9IF9hcHBseU1pZGRsZXdhcmUyWydkZWZhdWx0J107XG5leHBvcnRzLmNvbXBvc2UgPSBfY29tcG9zZTJbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 160 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = __webpack_require__(161);\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = __webpack_require__(171);\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if ((typeof observer === 'undefined' ? 'undefined' : _typeof(observer)) !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvY3JlYXRlU3RvcmUuanM/MzlmZiJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIkFjdGlvblR5cGVzIiwidW5kZWZpbmVkIiwiY3JlYXRlU3RvcmUiLCJfaXNQbGFpbk9iamVjdCIsInJlcXVpcmUiLCJfaXNQbGFpbk9iamVjdDIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3N5bWJvbE9ic2VydmFibGUiLCJfc3ltYm9sT2JzZXJ2YWJsZTIiLCJvYmoiLCJJTklUIiwicmVkdWNlciIsInByZWxvYWRlZFN0YXRlIiwiZW5oYW5jZXIiLCJfcmVmMiIsIkVycm9yIiwiY3VycmVudFJlZHVjZXIiLCJjdXJyZW50U3RhdGUiLCJjdXJyZW50TGlzdGVuZXJzIiwibmV4dExpc3RlbmVycyIsImlzRGlzcGF0Y2hpbmciLCJlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzIiwic2xpY2UiLCJnZXRTdGF0ZSIsInN1YnNjcmliZSIsImxpc3RlbmVyIiwiaXNTdWJzY3JpYmVkIiwicHVzaCIsInVuc3Vic2NyaWJlIiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJ0eXBlIiwibGlzdGVuZXJzIiwiaSIsImxlbmd0aCIsInJlcGxhY2VSZWR1Y2VyIiwibmV4dFJlZHVjZXIiLCJvYnNlcnZhYmxlIiwiX3JlZiIsIm91dGVyU3Vic2NyaWJlIiwib2JzZXJ2ZXIiLCJUeXBlRXJyb3IiLCJvYnNlcnZlU3RhdGUiLCJuZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCO0FBQ0FELFFBQVFFLFdBQVIsR0FBc0JDLFNBQXRCO0FBQ0FILFFBQVEsU0FBUixJQUFxQkksV0FBckI7O0FBRUEsSUFBSUMsaUJBQWlCLG1CQUFBQyxDQUFRLEdBQVIsQ0FB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QSxXQUFmLEVBQVA7QUFDRDtBQXZCVyxLQUFQLEVBd0JKYSxLQUFLakMsbUJBQW1CLFNBQW5CLENBQUwsSUFBc0MsWUFBWTtBQUNuRCxhQUFPLElBQVA7QUFDRCxLQTFCTSxFQTBCSmlDLElBMUJIO0FBMkJEOztBQUVEO0FBQ0E7QUFDQTtBQUNBVCxXQUFTLEVBQUVFLE1BQU1sQyxZQUFZVSxJQUFwQixFQUFUOztBQUVBLFNBQU9JLFFBQVE7QUFDYmtCLGNBQVVBLFFBREc7QUFFYlIsZUFBV0EsU0FGRTtBQUdiRCxjQUFVQSxRQUhHO0FBSWJlLG9CQUFnQkE7QUFKSCxHQUFSLEVBS0p4QixNQUFNTixtQkFBbUIsU0FBbkIsQ0FBTixJQUF1Q2dDLFVBTG5DLEVBSytDMUIsS0FMdEQ7QUFNRCIsImZpbGUiOiIxNjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLkFjdGlvblR5cGVzID0gdW5kZWZpbmVkO1xuZXhwb3J0c1snZGVmYXVsdCddID0gY3JlYXRlU3RvcmU7XG5cbnZhciBfaXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJ2xvZGFzaC9pc1BsYWluT2JqZWN0Jyk7XG5cbnZhciBfaXNQbGFpbk9iamVjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pc1BsYWluT2JqZWN0KTtcblxudmFyIF9zeW1ib2xPYnNlcnZhYmxlID0gcmVxdWlyZSgnc3ltYm9sLW9ic2VydmFibGUnKTtcblxudmFyIF9zeW1ib2xPYnNlcnZhYmxlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N5bWJvbE9ic2VydmFibGUpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbi8qKlxuICogVGhlc2UgYXJlIHByaXZhdGUgYWN0aW9uIHR5cGVzIHJlc2VydmVkIGJ5IFJlZHV4LlxuICogRm9yIGFueSB1bmtub3duIGFjdGlvbnMsIHlvdSBtdXN0IHJldHVybiB0aGUgY3VycmVudCBzdGF0ZS5cbiAqIElmIHRoZSBjdXJyZW50IHN0YXRlIGlzIHVuZGVmaW5lZCwgeW91IG11c3QgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLlxuICogRG8gbm90IHJlZmVyZW5jZSB0aGVzZSBhY3Rpb24gdHlwZXMgZGlyZWN0bHkgaW4geW91ciBjb2RlLlxuICovXG52YXIgQWN0aW9uVHlwZXMgPSBleHBvcnRzLkFjdGlvblR5cGVzID0ge1xuICBJTklUOiAnQEByZWR1eC9JTklUJ1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgUmVkdXggc3RvcmUgdGhhdCBob2xkcyB0aGUgc3RhdGUgdHJlZS5cbiAqIFRoZSBvbmx5IHdheSB0byBjaGFuZ2UgdGhlIGRhdGEgaW4gdGhlIHN0b3JlIGlzIHRvIGNhbGwgYGRpc3BhdGNoKClgIG9uIGl0LlxuICpcbiAqIFRoZXJlIHNob3VsZCBvbmx5IGJlIGEgc2luZ2xlIHN0b3JlIGluIHlvdXIgYXBwLiBUbyBzcGVjaWZ5IGhvdyBkaWZmZXJlbnRcbiAqIHBhcnRzIG9mIHRoZSBzdGF0ZSB0cmVlIHJlc3BvbmQgdG8gYWN0aW9ucywgeW91IG1heSBjb21iaW5lIHNldmVyYWwgcmVkdWNlcnNcbiAqIGludG8gYSBzaW5nbGUgcmVkdWNlciBmdW5jdGlvbiBieSB1c2luZyBgY29tYmluZVJlZHVjZXJzYC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSByZWR1Y2VyIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBuZXh0IHN0YXRlIHRyZWUsIGdpdmVuXG4gKiB0aGUgY3VycmVudCBzdGF0ZSB0cmVlIGFuZCB0aGUgYWN0aW9uIHRvIGhhbmRsZS5cbiAqXG4gKiBAcGFyYW0ge2FueX0gW3ByZWxvYWRlZFN0YXRlXSBUaGUgaW5pdGlhbCBzdGF0ZS4gWW91IG1heSBvcHRpb25hbGx5IHNwZWNpZnkgaXRcbiAqIHRvIGh5ZHJhdGUgdGhlIHN0YXRlIGZyb20gdGhlIHNlcnZlciBpbiB1bml2ZXJzYWwgYXBwcywgb3IgdG8gcmVzdG9yZSBhXG4gKiBwcmV2aW91c2x5IHNlcmlhbGl6ZWQgdXNlciBzZXNzaW9uLlxuICogSWYgeW91IHVzZSBgY29tYmluZVJlZHVjZXJzYCB0byBwcm9kdWNlIHRoZSByb290IHJlZHVjZXIgZnVuY3Rpb24sIHRoaXMgbXVzdCBiZVxuICogYW4gb2JqZWN0IHdpdGggdGhlIHNhbWUgc2hhcGUgYXMgYGNvbWJpbmVSZWR1Y2Vyc2Aga2V5cy5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlbmhhbmNlciBUaGUgc3RvcmUgZW5oYW5jZXIuIFlvdSBtYXkgb3B0aW9uYWxseSBzcGVjaWZ5IGl0XG4gKiB0byBlbmhhbmNlIHRoZSBzdG9yZSB3aXRoIHRoaXJkLXBhcnR5IGNhcGFiaWxpdGllcyBzdWNoIGFzIG1pZGRsZXdhcmUsXG4gKiB0aW1lIHRyYXZlbCwgcGVyc2lzdGVuY2UsIGV0Yy4gVGhlIG9ubHkgc3RvcmUgZW5oYW5jZXIgdGhhdCBzaGlwcyB3aXRoIFJlZHV4XG4gKiBpcyBgYXBwbHlNaWRkbGV3YXJlKClgLlxuICpcbiAqIEByZXR1cm5zIHtTdG9yZX0gQSBSZWR1eCBzdG9yZSB0aGF0IGxldHMgeW91IHJlYWQgdGhlIHN0YXRlLCBkaXNwYXRjaCBhY3Rpb25zXG4gKiBhbmQgc3Vic2NyaWJlIHRvIGNoYW5nZXMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0b3JlKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlLCBlbmhhbmNlcikge1xuICB2YXIgX3JlZjI7XG5cbiAgaWYgKHR5cGVvZiBwcmVsb2FkZWRTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZW5oYW5jZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgZW5oYW5jZXIgPSBwcmVsb2FkZWRTdGF0ZTtcbiAgICBwcmVsb2FkZWRTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZW5oYW5jZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKHR5cGVvZiBlbmhhbmNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCB0aGUgZW5oYW5jZXIgdG8gYmUgYSBmdW5jdGlvbi4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW5oYW5jZXIoY3JlYXRlU3RvcmUpKHJlZHVjZXIsIHByZWxvYWRlZFN0YXRlKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVkdWNlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdGhlIHJlZHVjZXIgdG8gYmUgYSBmdW5jdGlvbi4nKTtcbiAgfVxuXG4gIHZhciBjdXJyZW50UmVkdWNlciA9IHJlZHVjZXI7XG4gIHZhciBjdXJyZW50U3RhdGUgPSBwcmVsb2FkZWRTdGF0ZTtcbiAgdmFyIGN1cnJlbnRMaXN0ZW5lcnMgPSBbXTtcbiAgdmFyIG5leHRMaXN0ZW5lcnMgPSBjdXJyZW50TGlzdGVuZXJzO1xuICB2YXIgaXNEaXNwYXRjaGluZyA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIGVuc3VyZUNhbk11dGF0ZU5leHRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKG5leHRMaXN0ZW5lcnMgPT09IGN1cnJlbnRMaXN0ZW5lcnMpIHtcbiAgICAgIG5leHRMaXN0ZW5lcnMgPSBjdXJyZW50TGlzdGVuZXJzLnNsaWNlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSBzdGF0ZSB0cmVlIG1hbmFnZWQgYnkgdGhlIHN0b3JlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7YW55fSBUaGUgY3VycmVudCBzdGF0ZSB0cmVlIG9mIHlvdXIgYXBwbGljYXRpb24uXG4gICAqL1xuICBmdW5jdGlvbiBnZXRTdGF0ZSgpIHtcbiAgICByZXR1cm4gY3VycmVudFN0YXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjaGFuZ2UgbGlzdGVuZXIuIEl0IHdpbGwgYmUgY2FsbGVkIGFueSB0aW1lIGFuIGFjdGlvbiBpcyBkaXNwYXRjaGVkLFxuICAgKiBhbmQgc29tZSBwYXJ0IG9mIHRoZSBzdGF0ZSB0cmVlIG1heSBwb3RlbnRpYWxseSBoYXZlIGNoYW5nZWQuIFlvdSBtYXkgdGhlblxuICAgKiBjYWxsIGBnZXRTdGF0ZSgpYCB0byByZWFkIHRoZSBjdXJyZW50IHN0YXRlIHRyZWUgaW5zaWRlIHRoZSBjYWxsYmFjay5cbiAgICpcbiAgICogWW91IG1heSBjYWxsIGBkaXNwYXRjaCgpYCBmcm9tIGEgY2hhbmdlIGxpc3RlbmVyLCB3aXRoIHRoZSBmb2xsb3dpbmdcbiAgICogY2F2ZWF0czpcbiAgICpcbiAgICogMS4gVGhlIHN1YnNjcmlwdGlvbnMgYXJlIHNuYXBzaG90dGVkIGp1c3QgYmVmb3JlIGV2ZXJ5IGBkaXNwYXRjaCgpYCBjYWxsLlxuICAgKiBJZiB5b3Ugc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHdoaWxlIHRoZSBsaXN0ZW5lcnMgYXJlIGJlaW5nIGludm9rZWQsIHRoaXNcbiAgICogd2lsbCBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIHRoZSBgZGlzcGF0Y2goKWAgdGhhdCBpcyBjdXJyZW50bHkgaW4gcHJvZ3Jlc3MuXG4gICAqIEhvd2V2ZXIsIHRoZSBuZXh0IGBkaXNwYXRjaCgpYCBjYWxsLCB3aGV0aGVyIG5lc3RlZCBvciBub3QsIHdpbGwgdXNlIGEgbW9yZVxuICAgKiByZWNlbnQgc25hcHNob3Qgb2YgdGhlIHN1YnNjcmlwdGlvbiBsaXN0LlxuICAgKlxuICAgKiAyLiBUaGUgbGlzdGVuZXIgc2hvdWxkIG5vdCBleHBlY3QgdG8gc2VlIGFsbCBzdGF0ZSBjaGFuZ2VzLCBhcyB0aGUgc3RhdGVcbiAgICogbWlnaHQgaGF2ZSBiZWVuIHVwZGF0ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIGEgbmVzdGVkIGBkaXNwYXRjaCgpYCBiZWZvcmVcbiAgICogdGhlIGxpc3RlbmVyIGlzIGNhbGxlZC4gSXQgaXMsIGhvd2V2ZXIsIGd1YXJhbnRlZWQgdGhhdCBhbGwgc3Vic2NyaWJlcnNcbiAgICogcmVnaXN0ZXJlZCBiZWZvcmUgdGhlIGBkaXNwYXRjaCgpYCBzdGFydGVkIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIGxhdGVzdFxuICAgKiBzdGF0ZSBieSB0aGUgdGltZSBpdCBleGl0cy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgQSBjYWxsYmFjayB0byBiZSBpbnZva2VkIG9uIGV2ZXJ5IGRpc3BhdGNoLlxuICAgKiBAcmV0dXJucyB7RnVuY3Rpb259IEEgZnVuY3Rpb24gdG8gcmVtb3ZlIHRoaXMgY2hhbmdlIGxpc3RlbmVyLlxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gICAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLicpO1xuICAgIH1cblxuICAgIHZhciBpc1N1YnNjcmliZWQgPSB0cnVlO1xuXG4gICAgZW5zdXJlQ2FuTXV0YXRlTmV4dExpc3RlbmVycygpO1xuICAgIG5leHRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKSB7XG4gICAgICBpZiAoIWlzU3Vic2NyaWJlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlzU3Vic2NyaWJlZCA9IGZhbHNlO1xuXG4gICAgICBlbnN1cmVDYW5NdXRhdGVOZXh0TGlzdGVuZXJzKCk7XG4gICAgICB2YXIgaW5kZXggPSBuZXh0TGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuICAgICAgbmV4dExpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbiBhY3Rpb24uIEl0IGlzIHRoZSBvbmx5IHdheSB0byB0cmlnZ2VyIGEgc3RhdGUgY2hhbmdlLlxuICAgKlxuICAgKiBUaGUgYHJlZHVjZXJgIGZ1bmN0aW9uLCB1c2VkIHRvIGNyZWF0ZSB0aGUgc3RvcmUsIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlXG4gICAqIGN1cnJlbnQgc3RhdGUgdHJlZSBhbmQgdGhlIGdpdmVuIGBhY3Rpb25gLiBJdHMgcmV0dXJuIHZhbHVlIHdpbGxcbiAgICogYmUgY29uc2lkZXJlZCB0aGUgKipuZXh0Kiogc3RhdGUgb2YgdGhlIHRyZWUsIGFuZCB0aGUgY2hhbmdlIGxpc3RlbmVyc1xuICAgKiB3aWxsIGJlIG5vdGlmaWVkLlxuICAgKlxuICAgKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRzIHBsYWluIG9iamVjdCBhY3Rpb25zLiBJZiB5b3Ugd2FudCB0b1xuICAgKiBkaXNwYXRjaCBhIFByb21pc2UsIGFuIE9ic2VydmFibGUsIGEgdGh1bmssIG9yIHNvbWV0aGluZyBlbHNlLCB5b3UgbmVlZCB0b1xuICAgKiB3cmFwIHlvdXIgc3RvcmUgY3JlYXRpbmcgZnVuY3Rpb24gaW50byB0aGUgY29ycmVzcG9uZGluZyBtaWRkbGV3YXJlLiBGb3JcbiAgICogZXhhbXBsZSwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYHJlZHV4LXRodW5rYCBwYWNrYWdlLiBFdmVuIHRoZVxuICAgKiBtaWRkbGV3YXJlIHdpbGwgZXZlbnR1YWxseSBkaXNwYXRjaCBwbGFpbiBvYmplY3QgYWN0aW9ucyB1c2luZyB0aGlzIG1ldGhvZC5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGFjdGlvbiBBIHBsYWluIG9iamVjdCByZXByZXNlbnRpbmcg4oCcd2hhdCBjaGFuZ2Vk4oCdLiBJdCBpc1xuICAgKiBhIGdvb2QgaWRlYSB0byBrZWVwIGFjdGlvbnMgc2VyaWFsaXphYmxlIHNvIHlvdSBjYW4gcmVjb3JkIGFuZCByZXBsYXkgdXNlclxuICAgKiBzZXNzaW9ucywgb3IgdXNlIHRoZSB0aW1lIHRyYXZlbGxpbmcgYHJlZHV4LWRldnRvb2xzYC4gQW4gYWN0aW9uIG11c3QgaGF2ZVxuICAgKiBhIGB0eXBlYCBwcm9wZXJ0eSB3aGljaCBtYXkgbm90IGJlIGB1bmRlZmluZWRgLiBJdCBpcyBhIGdvb2QgaWRlYSB0byB1c2VcbiAgICogc3RyaW5nIGNvbnN0YW50cyBmb3IgYWN0aW9uIHR5cGVzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBGb3IgY29udmVuaWVuY2UsIHRoZSBzYW1lIGFjdGlvbiBvYmplY3QgeW91IGRpc3BhdGNoZWQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCwgaWYgeW91IHVzZSBhIGN1c3RvbSBtaWRkbGV3YXJlLCBpdCBtYXkgd3JhcCBgZGlzcGF0Y2goKWAgdG9cbiAgICogcmV0dXJuIHNvbWV0aGluZyBlbHNlIChmb3IgZXhhbXBsZSwgYSBQcm9taXNlIHlvdSBjYW4gYXdhaXQpLlxuICAgKi9cbiAgZnVuY3Rpb24gZGlzcGF0Y2goYWN0aW9uKSB7XG4gICAgaWYgKCEoMCwgX2lzUGxhaW5PYmplY3QyWydkZWZhdWx0J10pKGFjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWN0aW9ucyBtdXN0IGJlIHBsYWluIG9iamVjdHMuICcgKyAnVXNlIGN1c3RvbSBtaWRkbGV3YXJlIGZvciBhc3luYyBhY3Rpb25zLicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgYWN0aW9uLnR5cGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FjdGlvbnMgbWF5IG5vdCBoYXZlIGFuIHVuZGVmaW5lZCBcInR5cGVcIiBwcm9wZXJ0eS4gJyArICdIYXZlIHlvdSBtaXNzcGVsbGVkIGEgY29uc3RhbnQ/Jyk7XG4gICAgfVxuXG4gICAgaWYgKGlzRGlzcGF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVkdWNlcnMgbWF5IG5vdCBkaXNwYXRjaCBhY3Rpb25zLicpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpc0Rpc3BhdGNoaW5nID0gdHJ1ZTtcbiAgICAgIGN1cnJlbnRTdGF0ZSA9IGN1cnJlbnRSZWR1Y2VyKGN1cnJlbnRTdGF0ZSwgYWN0aW9uKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaXNEaXNwYXRjaGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHZhciBsaXN0ZW5lcnMgPSBjdXJyZW50TGlzdGVuZXJzID0gbmV4dExpc3RlbmVycztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgbGlzdGVuZXJzW2ldKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgcmVkdWNlciBjdXJyZW50bHkgdXNlZCBieSB0aGUgc3RvcmUgdG8gY2FsY3VsYXRlIHRoZSBzdGF0ZS5cbiAgICpcbiAgICogWW91IG1pZ2h0IG5lZWQgdGhpcyBpZiB5b3VyIGFwcCBpbXBsZW1lbnRzIGNvZGUgc3BsaXR0aW5nIGFuZCB5b3Ugd2FudCB0b1xuICAgKiBsb2FkIHNvbWUgb2YgdGhlIHJlZHVjZXJzIGR5bmFtaWNhbGx5LiBZb3UgbWlnaHQgYWxzbyBuZWVkIHRoaXMgaWYgeW91XG4gICAqIGltcGxlbWVudCBhIGhvdCByZWxvYWRpbmcgbWVjaGFuaXNtIGZvciBSZWR1eC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbmV4dFJlZHVjZXIgVGhlIHJlZHVjZXIgZm9yIHRoZSBzdG9yZSB0byB1c2UgaW5zdGVhZC5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBmdW5jdGlvbiByZXBsYWNlUmVkdWNlcihuZXh0UmVkdWNlcikge1xuICAgIGlmICh0eXBlb2YgbmV4dFJlZHVjZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdGhlIG5leHRSZWR1Y2VyIHRvIGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgfVxuXG4gICAgY3VycmVudFJlZHVjZXIgPSBuZXh0UmVkdWNlcjtcbiAgICBkaXNwYXRjaCh7IHR5cGU6IEFjdGlvblR5cGVzLklOSVQgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJvcGVyYWJpbGl0eSBwb2ludCBmb3Igb2JzZXJ2YWJsZS9yZWFjdGl2ZSBsaWJyYXJpZXMuXG4gICAqIEByZXR1cm5zIHtvYnNlcnZhYmxlfSBBIG1pbmltYWwgb2JzZXJ2YWJsZSBvZiBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBvYnNlcnZhYmxlIHByb3Bvc2FsOlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vemVucGFyc2luZy9lcy1vYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBvYnNlcnZhYmxlKCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIG91dGVyU3Vic2NyaWJlID0gc3Vic2NyaWJlO1xuICAgIHJldHVybiBfcmVmID0ge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbWluaW1hbCBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbiBtZXRob2QuXG4gICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JzZXJ2ZXIgQW55IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIG9ic2VydmVyLlxuICAgICAgICogVGhlIG9ic2VydmVyIG9iamVjdCBzaG91bGQgaGF2ZSBhIGBuZXh0YCBtZXRob2QuXG4gICAgICAgKiBAcmV0dXJucyB7c3Vic2NyaXB0aW9ufSBBbiBvYmplY3Qgd2l0aCBhbiBgdW5zdWJzY3JpYmVgIG1ldGhvZCB0aGF0IGNhblxuICAgICAgICogYmUgdXNlZCB0byB1bnN1YnNjcmliZSB0aGUgb2JzZXJ2YWJsZSBmcm9tIHRoZSBzdG9yZSwgYW5kIHByZXZlbnQgZnVydGhlclxuICAgICAgICogZW1pc3Npb24gb2YgdmFsdWVzIGZyb20gdGhlIG9ic2VydmFibGUuXG4gICAgICAgKi9cbiAgICAgIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKG9ic2VydmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXIgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgdGhlIG9ic2VydmVyIHRvIGJlIGFuIG9iamVjdC4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIG9ic2VydmVTdGF0ZSgpIHtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIubmV4dCkge1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChnZXRTdGF0ZSgpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBvYnNlcnZlU3RhdGUoKTtcbiAgICAgICAgdmFyIHVuc3Vic2NyaWJlID0gb3V0ZXJTdWJzY3JpYmUob2JzZXJ2ZVN0YXRlKTtcbiAgICAgICAgcmV0dXJuIHsgdW5zdWJzY3JpYmU6IHVuc3Vic2NyaWJlIH07XG4gICAgICB9XG4gICAgfSwgX3JlZltfc3ltYm9sT2JzZXJ2YWJsZTJbJ2RlZmF1bHQnXV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9LCBfcmVmO1xuICB9XG5cbiAgLy8gV2hlbiBhIHN0b3JlIGlzIGNyZWF0ZWQsIGFuIFwiSU5JVFwiIGFjdGlvbiBpcyBkaXNwYXRjaGVkIHNvIHRoYXQgZXZlcnlcbiAgLy8gcmVkdWNlciByZXR1cm5zIHRoZWlyIGluaXRpYWwgc3RhdGUuIFRoaXMgZWZmZWN0aXZlbHkgcG9wdWxhdGVzXG4gIC8vIHRoZSBpbml0aWFsIHN0YXRlIHRyZWUuXG4gIGRpc3BhdGNoKHsgdHlwZTogQWN0aW9uVHlwZXMuSU5JVCB9KTtcblxuICByZXR1cm4gX3JlZjIgPSB7XG4gICAgZGlzcGF0Y2g6IGRpc3BhdGNoLFxuICAgIHN1YnNjcmliZTogc3Vic2NyaWJlLFxuICAgIGdldFN0YXRlOiBnZXRTdGF0ZSxcbiAgICByZXBsYWNlUmVkdWNlcjogcmVwbGFjZVJlZHVjZXJcbiAgfSwgX3JlZjJbX3N5bWJvbE9ic2VydmFibGUyWydkZWZhdWx0J11dID0gb2JzZXJ2YWJsZSwgX3JlZjI7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVkdXgvbGliL2NyZWF0ZVN0b3JlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 161 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar baseGetTag = __webpack_require__(162),\n getPrototype = __webpack_require__(168),\n isObjectLike = __webpack_require__(170);\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvaXNQbGFpbk9iamVjdC5qcz83ZDM5Il0sIm5hbWVzIjpbImJhc2VHZXRUYWciLCJyZXF1aXJlIiwiZ2V0UHJvdG90eXBlIiwiaXNPYmplY3RMaWtlIiwib2JqZWN0VGFnIiwiZnVuY1Byb3RvIiwiRnVuY3Rpb24iLCJwcm90b3R5cGUiLCJvYmplY3RQcm90byIsIk9iamVjdCIsImZ1bmNUb1N0cmluZyIsInRvU3RyaW5nIiwiaGFzT3duUHJvcGVydHkiLCJvYmplY3RDdG9yU3RyaW5nIiwiY2FsbCIsImlzUGxhaW5PYmplY3QiLCJ2YWx1ZSIsInByb3RvIiwiQ3RvciIsImNvbnN0cnVjdG9yIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxhQUFhLG1CQUFBQyxDQUFRLEdBQVIsQ0FBakI7QUFBQSxJQUNJQyxlQUFlLG1CQUFBRCxDQUFRLEdBQVIsQ0FEbkI7QUFBQSxJQUVJRSxlQUFlLG1CQUFBRixDQUFRLEdBQVIsQ0FGbkI7O0FBSUE7QUFDQSxJQUFJRyxZQUFZLGlCQUFoQjs7QUFFQTtBQUNBLElBQUlDLFlBQVlDLFNBQVNDLFNBQXpCO0FBQUEsSUFDSUMsY0FBY0MsT0FBT0YsU0FEekI7O0FBR0E7QUFDQSxJQUFJRyxlQUFlTCxVQUFVTSxRQUE3Qjs7QUFFQTtBQUNBLElBQUlDLGlCQUFpQkosWUFBWUksY0FBakM7O0FBRUE7QUFDQSxJQUFJQyxtQkFBbUJILGFBQWFJLElBQWIsQ0FBa0JMLE1BQWxCLENBQXZCOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEJBLFNBQVNNLGFBQVQsQ0FBdUJDLEtBQXZCLEVBQThCO0FBQzVCLE1BQUksQ0FBQ2IsYUFBYWEsS0FBYixDQUFELElBQXdCaEIsV0FBV2dCLEtBQVgsS0FBcUJaLFNBQWpELEVBQTREO0FBQzFELFdBQU8sS0FBUDtBQUNEO0FBQ0QsTUFBSWEsUUFBUWYsYUFBYWMsS0FBYixDQUFaO0FBQ0EsTUFBSUMsVUFBVSxJQUFkLEVBQW9CO0FBQ2xCLFdBQU8sSUFBUDtBQUNEO0FBQ0QsTUFBSUMsT0FBT04sZUFBZUUsSUFBZixDQUFvQkcsS0FBcEIsRUFBMkIsYUFBM0IsS0FBNkNBLE1BQU1FLFdBQTlEO0FBQ0EsU0FBTyxPQUFPRCxJQUFQLElBQWUsVUFBZixJQUE2QkEsZ0JBQWdCQSxJQUE3QyxJQUNMUixhQUFhSSxJQUFiLENBQWtCSSxJQUFsQixLQUEyQkwsZ0JBRDdCO0FBRUQ7O0FBRURPLE9BQU9DLE9BQVAsR0FBaUJOLGFBQWpCIiwiZmlsZSI6IjE2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBiYXNlR2V0VGFnID0gcmVxdWlyZSgnLi9fYmFzZUdldFRhZycpLFxuICAgIGdldFByb3RvdHlwZSA9IHJlcXVpcmUoJy4vX2dldFByb3RvdHlwZScpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4vaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1BsYWluT2JqZWN0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vbG9kYXNoL2lzUGxhaW5PYmplY3QuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 162 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _Symbol = __webpack_require__(163),\n getRawTag = __webpack_require__(166),\n objectToString = __webpack_require__(167);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n value = Object(value);\n return symToStringTag && symToStringTag in value ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX2Jhc2VHZXRUYWcuanM/NmM1MyJdLCJuYW1lcyI6WyJTeW1ib2wiLCJyZXF1aXJlIiwiZ2V0UmF3VGFnIiwib2JqZWN0VG9TdHJpbmciLCJudWxsVGFnIiwidW5kZWZpbmVkVGFnIiwic3ltVG9TdHJpbmdUYWciLCJ0b1N0cmluZ1RhZyIsInVuZGVmaW5lZCIsImJhc2VHZXRUYWciLCJ2YWx1ZSIsIk9iamVjdCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSUEsVUFBUyxtQkFBQUMsQ0FBUSxHQUFSLENBQWI7QUFBQSxJQUNJQyxZQUFZLG1CQUFBRCxDQUFRLEdBQVIsQ0FEaEI7QUFBQSxJQUVJRSxpQkFBaUIsbUJBQUFGLENBQVEsR0FBUixDQUZyQjs7QUFJQTtBQUNBLElBQUlHLFVBQVUsZUFBZDtBQUFBLElBQ0lDLGVBQWUsb0JBRG5COztBQUdBO0FBQ0EsSUFBSUMsaUJBQWlCTixVQUFTQSxRQUFPTyxXQUFoQixHQUE4QkMsU0FBbkQ7O0FBRUE7Ozs7Ozs7QUFPQSxTQUFTQyxVQUFULENBQW9CQyxLQUFwQixFQUEyQjtBQUN6QixRQUFJQSxTQUFTLElBQWIsRUFBbUI7QUFDakIsZUFBT0EsVUFBVUYsU0FBVixHQUFzQkgsWUFBdEIsR0FBcUNELE9BQTVDO0FBQ0Q7QUFDRE0sWUFBUUMsT0FBT0QsS0FBUCxDQUFSO0FBQ0EsV0FBUUosa0JBQWtCQSxrQkFBa0JJLEtBQXJDLEdBQ0hSLFVBQVVRLEtBQVYsQ0FERyxHQUVIUCxlQUFlTyxLQUFmLENBRko7QUFHRDs7QUFFREUsT0FBT0MsT0FBUCxHQUFpQkosVUFBakIiLCJmaWxlIjoiMTYyLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpLFxuICAgIGdldFJhd1RhZyA9IHJlcXVpcmUoJy4vX2dldFJhd1RhZycpLFxuICAgIG9iamVjdFRvU3RyaW5nID0gcmVxdWlyZSgnLi9fb2JqZWN0VG9TdHJpbmcnKTtcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICB2YWx1ZSA9IE9iamVjdCh2YWx1ZSk7XG4gIHJldHVybiAoc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gdmFsdWUpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUdldFRhZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2xvZGFzaC9fYmFzZUdldFRhZy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 163 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar root = __webpack_require__(164);\n\n/** Built-in value references. */\nvar _Symbol = root.Symbol;\n\nmodule.exports = _Symbol;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX1N5bWJvbC5qcz9mNzgwIl0sIm5hbWVzIjpbInJvb3QiLCJyZXF1aXJlIiwiU3ltYm9sIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxPQUFPLG1CQUFBQyxDQUFRLEdBQVIsQ0FBWDs7QUFFQTtBQUNBLElBQUlDLFVBQVNGLEtBQUtFLE1BQWxCOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCRixPQUFqQiIsImZpbGUiOiIxNjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcm9vdCA9IHJlcXVpcmUoJy4vX3Jvb3QnKTtcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cbm1vZHVsZS5leHBvcnRzID0gU3ltYm9sO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vbG9kYXNoL19TeW1ib2wuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 164 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar freeGlobal = __webpack_require__(165);\n\n/** Detect free variable `self`. */\nvar freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX3Jvb3QuanM/MjRjNCJdLCJuYW1lcyI6WyJmcmVlR2xvYmFsIiwicmVxdWlyZSIsImZyZWVTZWxmIiwic2VsZiIsIk9iamVjdCIsInJvb3QiLCJGdW5jdGlvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFJQSxhQUFhLG1CQUFBQyxDQUFRLEdBQVIsQ0FBakI7O0FBRUE7QUFDQSxJQUFJQyxXQUFXLFFBQU9DLElBQVAseUNBQU9BLElBQVAsTUFBZSxRQUFmLElBQTJCQSxJQUEzQixJQUFtQ0EsS0FBS0MsTUFBTCxLQUFnQkEsTUFBbkQsSUFBNkRELElBQTVFOztBQUVBO0FBQ0EsSUFBSUUsT0FBT0wsY0FBY0UsUUFBZCxJQUEwQkksU0FBUyxhQUFULEdBQXJDOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCSCxJQUFqQiIsImZpbGUiOiIxNjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZnJlZUdsb2JhbCA9IHJlcXVpcmUoJy4vX2ZyZWVHbG9iYWwnKTtcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvb3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX3Jvb3QuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 165 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(global) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX2ZyZWVHbG9iYWwuanM/NjI5YyJdLCJuYW1lcyI6WyJmcmVlR2xvYmFsIiwiZ2xvYmFsIiwiT2JqZWN0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsSUFBSUEsYUFBYSxRQUFPQyxNQUFQLHlDQUFPQSxNQUFQLE1BQWlCLFFBQWpCLElBQTZCQSxNQUE3QixJQUF1Q0EsT0FBT0MsTUFBUCxLQUFrQkEsTUFBekQsSUFBbUVELE1BQXBGOztBQUVBRSxPQUFPQyxPQUFQLEdBQWlCSixVQUFqQixDIiwiZmlsZSI6IjE2NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbm1vZHVsZS5leHBvcnRzID0gZnJlZUdsb2JhbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2xvZGFzaC9fZnJlZUdsb2JhbC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 166 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _Symbol = __webpack_require__(163);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX2dldFJhd1RhZy5qcz9mNzIwIl0sIm5hbWVzIjpbIlN5bWJvbCIsInJlcXVpcmUiLCJvYmplY3RQcm90byIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwibmF0aXZlT2JqZWN0VG9TdHJpbmciLCJ0b1N0cmluZyIsInN5bVRvU3RyaW5nVGFnIiwidG9TdHJpbmdUYWciLCJ1bmRlZmluZWQiLCJnZXRSYXdUYWciLCJ2YWx1ZSIsImlzT3duIiwiY2FsbCIsInRhZyIsInVubWFza2VkIiwiZSIsInJlc3VsdCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBSUEsVUFBUyxtQkFBQUMsQ0FBUSxHQUFSLENBQWI7O0FBRUE7QUFDQSxJQUFJQyxjQUFjQyxPQUFPQyxTQUF6Qjs7QUFFQTtBQUNBLElBQUlDLGlCQUFpQkgsWUFBWUcsY0FBakM7O0FBRUE7Ozs7O0FBS0EsSUFBSUMsdUJBQXVCSixZQUFZSyxRQUF2Qzs7QUFFQTtBQUNBLElBQUlDLGlCQUFpQlIsVUFBU0EsUUFBT1MsV0FBaEIsR0FBOEJDLFNBQW5EOztBQUVBOzs7Ozs7O0FBT0EsU0FBU0MsU0FBVCxDQUFtQkMsS0FBbkIsRUFBMEI7QUFDeEIsTUFBSUMsUUFBUVIsZUFBZVMsSUFBZixDQUFvQkYsS0FBcEIsRUFBMkJKLGNBQTNCLENBQVo7QUFBQSxNQUNJTyxNQUFNSCxNQUFNSixjQUFOLENBRFY7O0FBR0EsTUFBSTtBQUNGSSxVQUFNSixjQUFOLElBQXdCRSxTQUF4QjtBQUNBLFFBQUlNLFdBQVcsSUFBZjtBQUNELEdBSEQsQ0FHRSxPQUFPQyxDQUFQLEVBQVUsQ0FBRTs7QUFFZCxNQUFJQyxTQUFTWixxQkFBcUJRLElBQXJCLENBQTBCRixLQUExQixDQUFiO0FBQ0EsTUFBSUksUUFBSixFQUFjO0FBQ1osUUFBSUgsS0FBSixFQUFXO0FBQ1RELFlBQU1KLGNBQU4sSUFBd0JPLEdBQXhCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsYUFBT0gsTUFBTUosY0FBTixDQUFQO0FBQ0Q7QUFDRjtBQUNELFNBQU9VLE1BQVA7QUFDRDs7QUFFREMsT0FBT0MsT0FBUCxHQUFpQlQsU0FBakIiLCJmaWxlIjoiMTY2LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX1N5bWJvbCcpO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0UmF3VGFnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vbG9kYXNoL19nZXRSYXdUYWcuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 167 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX29iamVjdFRvU3RyaW5nLmpzP2QxNDgiXSwibmFtZXMiOlsib2JqZWN0UHJvdG8iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuYXRpdmVPYmplY3RUb1N0cmluZyIsInRvU3RyaW5nIiwib2JqZWN0VG9TdHJpbmciLCJ2YWx1ZSIsImNhbGwiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0EsSUFBSUEsY0FBY0MsT0FBT0MsU0FBekI7O0FBRUE7Ozs7O0FBS0EsSUFBSUMsdUJBQXVCSCxZQUFZSSxRQUF2Qzs7QUFFQTs7Ozs7OztBQU9BLFNBQVNDLGNBQVQsQ0FBd0JDLEtBQXhCLEVBQStCO0FBQzdCLFNBQU9ILHFCQUFxQkksSUFBckIsQ0FBMEJELEtBQTFCLENBQVA7QUFDRDs7QUFFREUsT0FBT0MsT0FBUCxHQUFpQkosY0FBakIiLCJmaWxlIjoiMTY3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gb2JqZWN0VG9TdHJpbmc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX29iamVjdFRvU3RyaW5nLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 168 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar overArg = __webpack_require__(169);\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX2dldFByb3RvdHlwZS5qcz9iMGViIl0sIm5hbWVzIjpbIm92ZXJBcmciLCJyZXF1aXJlIiwiZ2V0UHJvdG90eXBlIiwiT2JqZWN0IiwiZ2V0UHJvdG90eXBlT2YiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLFVBQVUsbUJBQUFDLENBQVEsR0FBUixDQUFkOztBQUVBO0FBQ0EsSUFBSUMsZUFBZUYsUUFBUUcsT0FBT0MsY0FBZixFQUErQkQsTUFBL0IsQ0FBbkI7O0FBRUFFLE9BQU9DLE9BQVAsR0FBaUJKLFlBQWpCIiwiZmlsZSI6IjE2OC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBvdmVyQXJnID0gcmVxdWlyZSgnLi9fb3ZlckFyZycpO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRQcm90b3R5cGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX2dldFByb3RvdHlwZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 169 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function (arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvX292ZXJBcmcuanM/MDI5MiJdLCJuYW1lcyI6WyJvdmVyQXJnIiwiZnVuYyIsInRyYW5zZm9ybSIsImFyZyIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7O0FBUUEsU0FBU0EsT0FBVCxDQUFpQkMsSUFBakIsRUFBdUJDLFNBQXZCLEVBQWtDO0FBQ2hDLFNBQU8sVUFBU0MsR0FBVCxFQUFjO0FBQ25CLFdBQU9GLEtBQUtDLFVBQVVDLEdBQVYsQ0FBTCxDQUFQO0FBQ0QsR0FGRDtBQUdEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCTCxPQUFqQiIsImZpbGUiOiIxNjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZXMgYSB1bmFyeSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggaXRzIGFyZ3VtZW50IHRyYW5zZm9ybWVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiBmdW5jKHRyYW5zZm9ybShhcmcpKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvdmVyQXJnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vbG9kYXNoL19vdmVyQXJnLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 170 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object';\n}\n\nmodule.exports = isObjectLike;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzP2M5MTYiXSwibmFtZXMiOlsiaXNPYmplY3RMaWtlIiwidmFsdWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxTQUFTQSxZQUFULENBQXNCQyxLQUF0QixFQUE2QjtBQUMzQixTQUFPQSxTQUFTLElBQVQsSUFBaUIsUUFBT0EsS0FBUCx5Q0FBT0EsS0FBUCxNQUFnQixRQUF4QztBQUNEOztBQUVEQyxPQUFPQyxPQUFQLEdBQWlCSCxZQUFqQiIsImZpbGUiOiIxNzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcIm9iamVjdFwiLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdExpa2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9sb2Rhc2gvaXNPYmplY3RMaWtlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 171 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nmodule.exports = __webpack_require__(172);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9zeW1ib2wtb2JzZXJ2YWJsZS9pbmRleC5qcz8xNWVmIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCLG1CQUFBQyxDQUFRLEdBQVIsQ0FBakIiLCJmaWxlIjoiMTcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9pbmRleCcpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vc3ltYm9sLW9ic2VydmFibGUvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 172 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(global, module) {'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = __webpack_require__(174);\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar root; /* global window */\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (true) {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(173)(module)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9zeW1ib2wtb2JzZXJ2YWJsZS9saWIvaW5kZXguanM/MzRmNyJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsIl9wb255ZmlsbCIsInJlcXVpcmUiLCJfcG9ueWZpbGwyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJyb290Iiwic2VsZiIsIndpbmRvdyIsImdsb2JhbCIsIm1vZHVsZSIsIkZ1bmN0aW9uIiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsT0FBT0MsY0FBUCxDQUFzQkMsT0FBdEIsRUFBK0IsWUFBL0IsRUFBNkM7QUFDM0NDLFNBQU87QUFEb0MsQ0FBN0M7O0FBSUEsSUFBSUMsWUFBWSxtQkFBQUMsQ0FBUSxHQUFSLENBQWhCOztBQUVBLElBQUlDLGFBQWFDLHVCQUF1QkgsU0FBdkIsQ0FBakI7O0FBRUEsU0FBU0csc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSUMsVUFBWCxHQUF3QkQsR0FBeEIsR0FBOEIsRUFBRSxXQUFXQSxHQUFiLEVBQXJDO0FBQTBEOztBQUVqRyxJQUFJRSxJQUFKLEMsQ0FBVTs7QUFHVixJQUFJLE9BQU9DLElBQVAsS0FBZ0IsV0FBcEIsRUFBaUM7QUFDL0JELFNBQU9DLElBQVA7QUFDRCxDQUZELE1BRU8sSUFBSSxPQUFPQyxNQUFQLEtBQWtCLFdBQXRCLEVBQW1DO0FBQ3hDRixTQUFPRSxNQUFQO0FBQ0QsQ0FGTSxNQUVBLElBQUksT0FBT0MsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUN4Q0gsU0FBT0csTUFBUDtBQUNELENBRk0sTUFFQSxJQUFJLElBQUosRUFBbUM7QUFDeENILFNBQU9JLE1BQVA7QUFDRCxDQUZNLE1BRUE7QUFDTEosU0FBT0ssU0FBUyxhQUFULEdBQVA7QUFDRDs7QUFFRCxJQUFJQyxTQUFTLENBQUMsR0FBR1YsV0FBVyxTQUFYLENBQUosRUFBMkJJLElBQTNCLENBQWI7QUFDQVIsUUFBUSxTQUFSLElBQXFCYyxNQUFyQixDIiwiZmlsZSI6IjE3Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9wb255ZmlsbCA9IHJlcXVpcmUoJy4vcG9ueWZpbGwnKTtcblxudmFyIF9wb255ZmlsbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wb255ZmlsbCk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIHJvb3Q7IC8qIGdsb2JhbCB3aW5kb3cgKi9cblxuXG5pZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7XG4gIHJvb3QgPSBzZWxmO1xufSBlbHNlIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICByb290ID0gd2luZG93O1xufSBlbHNlIGlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykge1xuICByb290ID0gZ2xvYmFsO1xufSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xuICByb290ID0gbW9kdWxlO1xufSBlbHNlIHtcbiAgcm9vdCA9IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG59XG5cbnZhciByZXN1bHQgPSAoMCwgX3BvbnlmaWxsMlsnZGVmYXVsdCddKShyb290KTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHJlc3VsdDtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9zeW1ib2wtb2JzZXJ2YWJsZS9saWIvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 173 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tmodule.children = [];\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi93ZWJwYWNrL2J1aWxkaW4vbW9kdWxlLmpzP2FjYzYiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIndlYnBhY2tQb2x5ZmlsbCIsImRlcHJlY2F0ZSIsInBhdGhzIiwiY2hpbGRyZW4iXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUIsVUFBU0QsTUFBVCxFQUFpQjtBQUNqQyxLQUFHLENBQUNBLE9BQU9FLGVBQVgsRUFBNEI7QUFDM0JGLFNBQU9HLFNBQVAsR0FBbUIsWUFBVyxDQUFFLENBQWhDO0FBQ0FILFNBQU9JLEtBQVAsR0FBZSxFQUFmO0FBQ0E7QUFDQUosU0FBT0ssUUFBUCxHQUFrQixFQUFsQjtBQUNBTCxTQUFPRSxlQUFQLEdBQXlCLENBQXpCO0FBQ0E7QUFDRCxRQUFPRixNQUFQO0FBQ0EsQ0FURCIsImZpbGUiOiIxNzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRpZighbW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xuXHRcdG1vZHVsZS5kZXByZWNhdGUgPSBmdW5jdGlvbigpIHt9O1xuXHRcdG1vZHVsZS5wYXRocyA9IFtdO1xuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxuXHRcdG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuXHRcdG1vZHVsZS53ZWJwYWNrUG9seWZpbGwgPSAxO1xuXHR9XG5cdHJldHVybiBtb2R1bGU7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi93ZWJwYWNrL2J1aWxkaW4vbW9kdWxlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 174 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9zeW1ib2wtb2JzZXJ2YWJsZS9saWIvcG9ueWZpbGwuanM/ODRhMyJdLCJuYW1lcyI6WyJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImV4cG9ydHMiLCJ2YWx1ZSIsInN5bWJvbE9ic2VydmFibGVQb255ZmlsbCIsInJvb3QiLCJyZXN1bHQiLCJfU3ltYm9sIiwiU3ltYm9sIiwib2JzZXJ2YWJsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLE9BQU9DLGNBQVAsQ0FBc0JDLE9BQXRCLEVBQStCLFlBQS9CLEVBQTZDO0FBQzVDQyxRQUFPO0FBRHFDLENBQTdDO0FBR0FELFFBQVEsU0FBUixJQUFxQkUsd0JBQXJCO0FBQ0EsU0FBU0Esd0JBQVQsQ0FBa0NDLElBQWxDLEVBQXdDO0FBQ3ZDLEtBQUlDLE1BQUo7QUFDQSxLQUFJQyxVQUFVRixLQUFLRyxNQUFuQjs7QUFFQSxLQUFJLE9BQU9ELE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDbEMsTUFBSUEsUUFBUUUsVUFBWixFQUF3QjtBQUN2QkgsWUFBU0MsUUFBUUUsVUFBakI7QUFDQSxHQUZELE1BRU87QUFDTkgsWUFBU0MsUUFBUSxZQUFSLENBQVQ7QUFDQUEsV0FBUUUsVUFBUixHQUFxQkgsTUFBckI7QUFDQTtBQUNELEVBUEQsTUFPTztBQUNOQSxXQUFTLGNBQVQ7QUFDQTs7QUFFRCxRQUFPQSxNQUFQO0FBQ0EiLCJmaWxlIjoiMTc0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcblx0dmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0c1snZGVmYXVsdCddID0gc3ltYm9sT2JzZXJ2YWJsZVBvbnlmaWxsO1xuZnVuY3Rpb24gc3ltYm9sT2JzZXJ2YWJsZVBvbnlmaWxsKHJvb3QpIHtcblx0dmFyIHJlc3VsdDtcblx0dmFyIF9TeW1ib2wgPSByb290LlN5bWJvbDtcblxuXHRpZiAodHlwZW9mIF9TeW1ib2wgPT09ICdmdW5jdGlvbicpIHtcblx0XHRpZiAoX1N5bWJvbC5vYnNlcnZhYmxlKSB7XG5cdFx0XHRyZXN1bHQgPSBfU3ltYm9sLm9ic2VydmFibGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc3VsdCA9IF9TeW1ib2woJ29ic2VydmFibGUnKTtcblx0XHRcdF9TeW1ib2wub2JzZXJ2YWJsZSA9IHJlc3VsdDtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmVzdWx0ID0gJ0BAb2JzZXJ2YWJsZSc7XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9zeW1ib2wtb2JzZXJ2YWJsZS9saWIvcG9ueWZpbGwuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 175 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = __webpack_require__(160);\n\nvar _isPlainObject = __webpack_require__(161);\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = __webpack_require__(176);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvY29tYmluZVJlZHVjZXJzLmpzP2MwNWIiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJjb21iaW5lUmVkdWNlcnMiLCJfY3JlYXRlU3RvcmUiLCJyZXF1aXJlIiwiX2lzUGxhaW5PYmplY3QiLCJfaXNQbGFpbk9iamVjdDIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3dhcm5pbmciLCJfd2FybmluZzIiLCJvYmoiLCJnZXRVbmRlZmluZWRTdGF0ZUVycm9yTWVzc2FnZSIsImtleSIsImFjdGlvbiIsImFjdGlvblR5cGUiLCJ0eXBlIiwiYWN0aW9uTmFtZSIsInRvU3RyaW5nIiwiZ2V0VW5leHBlY3RlZFN0YXRlU2hhcGVXYXJuaW5nTWVzc2FnZSIsImlucHV0U3RhdGUiLCJyZWR1Y2VycyIsInVuZXhwZWN0ZWRLZXlDYWNoZSIsInJlZHVjZXJLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImFyZ3VtZW50TmFtZSIsIkFjdGlvblR5cGVzIiwiSU5JVCIsImxlbmd0aCIsImNhbGwiLCJtYXRjaCIsImpvaW4iLCJ1bmV4cGVjdGVkS2V5cyIsImZpbHRlciIsImhhc093blByb3BlcnR5IiwiZm9yRWFjaCIsImFzc2VydFJlZHVjZXJTYW5pdHkiLCJyZWR1Y2VyIiwiaW5pdGlhbFN0YXRlIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJNYXRoIiwicmFuZG9tIiwic3Vic3RyaW5nIiwic3BsaXQiLCJmaW5hbFJlZHVjZXJzIiwiaSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZpbmFsUmVkdWNlcktleXMiLCJzYW5pdHlFcnJvciIsImUiLCJjb21iaW5hdGlvbiIsInN0YXRlIiwiYXJndW1lbnRzIiwid2FybmluZ01lc3NhZ2UiLCJoYXNDaGFuZ2VkIiwibmV4dFN0YXRlIiwicHJldmlvdXNTdGF0ZUZvcktleSIsIm5l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LEVBQW9FUSxrQkFBcEUsQ0FBckI7QUFDQSxVQUFJbUMsY0FBSixFQUFvQjtBQUNsQixTQUFDLEdBQUcvQyxVQUFVLFNBQVYsQ0FBSixFQUEwQitDLGNBQTFCO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJQyxhQUFhLEtBQWpCO0FBQ0EsUUFBSUMsWUFBWSxFQUFoQjtBQUNBLFNBQUssSUFBSVosSUFBSSxDQUFiLEVBQWdCQSxJQUFJSSxpQkFBaUJ0QixNQUFyQyxFQUE2Q2tCLEdBQTdDLEVBQWtEO0FBQ2hELFVBQUlsQyxNQUFNc0MsaUJBQWlCSixDQUFqQixDQUFWO0FBQ0EsVUFBSVQsVUFBVVEsY0FBY2pDLEdBQWQsQ0FBZDtBQUNBLFVBQUkrQyxzQkFBc0JMLE1BQU0xQyxHQUFOLENBQTFCO0FBQ0EsVUFBSWdELGtCQUFrQnZCLFFBQVFzQixtQkFBUixFQUE2QjlDLE1BQTdCLENBQXRCO0FBQ0EsVUFBSSxPQUFPK0MsZUFBUCxLQUEyQixXQUEvQixFQUE0QztBQUMxQyxZQUFJQyxlQUFlbEQsOEJBQThCQyxHQUE5QixFQUFtQ0MsTUFBbkMsQ0FBbkI7QUFDQSxjQUFNLElBQUkyQixLQUFKLENBQVVxQixZQUFWLENBQU47QUFDRDtBQUNESCxnQkFBVTlDLEdBQVYsSUFBaUJnRCxlQUFqQjtBQUNBSCxtQkFBYUEsY0FBY0csb0JBQW9CRCxtQkFBL0M7QUFDRDtBQUNELFdBQU9GLGFBQWFDLFNBQWIsR0FBeUJKLEtBQWhDO0FBQ0QsR0E5QkQ7QUErQkQsQyIsImZpbGUiOiIxNzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzWydkZWZhdWx0J10gPSBjb21iaW5lUmVkdWNlcnM7XG5cbnZhciBfY3JlYXRlU3RvcmUgPSByZXF1aXJlKCcuL2NyZWF0ZVN0b3JlJyk7XG5cbnZhciBfaXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJ2xvZGFzaC9pc1BsYWluT2JqZWN0Jyk7XG5cbnZhciBfaXNQbGFpbk9iamVjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pc1BsYWluT2JqZWN0KTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnLi91dGlscy93YXJuaW5nJyk7XG5cbnZhciBfd2FybmluZzIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF93YXJuaW5nKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBnZXRVbmRlZmluZWRTdGF0ZUVycm9yTWVzc2FnZShrZXksIGFjdGlvbikge1xuICB2YXIgYWN0aW9uVHlwZSA9IGFjdGlvbiAmJiBhY3Rpb24udHlwZTtcbiAgdmFyIGFjdGlvbk5hbWUgPSBhY3Rpb25UeXBlICYmICdcIicgKyBhY3Rpb25UeXBlLnRvU3RyaW5nKCkgKyAnXCInIHx8ICdhbiBhY3Rpb24nO1xuXG4gIHJldHVybiAnR2l2ZW4gYWN0aW9uICcgKyBhY3Rpb25OYW1lICsgJywgcmVkdWNlciBcIicgKyBrZXkgKyAnXCIgcmV0dXJuZWQgdW5kZWZpbmVkLiAnICsgJ1RvIGlnbm9yZSBhbiBhY3Rpb24sIHlvdSBtdXN0IGV4cGxpY2l0bHkgcmV0dXJuIHRoZSBwcmV2aW91cyBzdGF0ZS4nO1xufVxuXG5mdW5jdGlvbiBnZXRVbmV4cGVjdGVkU3RhdGVTaGFwZVdhcm5pbmdNZXNzYWdlKGlucHV0U3RhdGUsIHJlZHVjZXJzLCBhY3Rpb24sIHVuZXhwZWN0ZWRLZXlDYWNoZSkge1xuICB2YXIgcmVkdWNlcktleXMgPSBPYmplY3Qua2V5cyhyZWR1Y2Vycyk7XG4gIHZhciBhcmd1bWVudE5hbWUgPSBhY3Rpb24gJiYgYWN0aW9uLnR5cGUgPT09IF9jcmVhdGVTdG9yZS5BY3Rpb25UeXBlcy5JTklUID8gJ3ByZWxvYWRlZFN0YXRlIGFyZ3VtZW50IHBhc3NlZCB0byBjcmVhdGVTdG9yZScgOiAncHJldmlvdXMgc3RhdGUgcmVjZWl2ZWQgYnkgdGhlIHJlZHVjZXInO1xuXG4gIGlmIChyZWR1Y2VyS2V5cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJ1N0b3JlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCByZWR1Y2VyLiBNYWtlIHN1cmUgdGhlIGFyZ3VtZW50IHBhc3NlZCAnICsgJ3RvIGNvbWJpbmVSZWR1Y2VycyBpcyBhbiBvYmplY3Qgd2hvc2UgdmFsdWVzIGFyZSByZWR1Y2Vycy4nO1xuICB9XG5cbiAgaWYgKCEoMCwgX2lzUGxhaW5PYmplY3QyWydkZWZhdWx0J10pKGlucHV0U3RhdGUpKSB7XG4gICAgcmV0dXJuICdUaGUgJyArIGFyZ3VtZW50TmFtZSArICcgaGFzIHVuZXhwZWN0ZWQgdHlwZSBvZiBcIicgKyB7fS50b1N0cmluZy5jYWxsKGlucHV0U3RhdGUpLm1hdGNoKC9cXHMoW2EtenxBLVpdKykvKVsxXSArICdcIi4gRXhwZWN0ZWQgYXJndW1lbnQgdG8gYmUgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyAnICsgKCdrZXlzOiBcIicgKyByZWR1Y2VyS2V5cy5qb2luKCdcIiwgXCInKSArICdcIicpO1xuICB9XG5cbiAgdmFyIHVuZXhwZWN0ZWRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRTdGF0ZSkuZmlsdGVyKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gIXJlZHVjZXJzLmhhc093blByb3BlcnR5KGtleSkgJiYgIXVuZXhwZWN0ZWRLZXlDYWNoZVtrZXldO1xuICB9KTtcblxuICB1bmV4cGVjdGVkS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB1bmV4cGVjdGVkS2V5Q2FjaGVba2V5XSA9IHRydWU7XG4gIH0pO1xuXG4gIGlmICh1bmV4cGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuICdVbmV4cGVjdGVkICcgKyAodW5leHBlY3RlZEtleXMubGVuZ3RoID4gMSA/ICdrZXlzJyA6ICdrZXknKSArICcgJyArICgnXCInICsgdW5leHBlY3RlZEtleXMuam9pbignXCIsIFwiJykgKyAnXCIgZm91bmQgaW4gJyArIGFyZ3VtZW50TmFtZSArICcuICcpICsgJ0V4cGVjdGVkIHRvIGZpbmQgb25lIG9mIHRoZSBrbm93biByZWR1Y2VyIGtleXMgaW5zdGVhZDogJyArICgnXCInICsgcmVkdWNlcktleXMuam9pbignXCIsIFwiJykgKyAnXCIuIFVuZXhwZWN0ZWQga2V5cyB3aWxsIGJlIGlnbm9yZWQuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0UmVkdWNlclNhbml0eShyZWR1Y2Vycykge1xuICBPYmplY3Qua2V5cyhyZWR1Y2VycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIHJlZHVjZXIgPSByZWR1Y2Vyc1trZXldO1xuICAgIHZhciBpbml0aWFsU3RhdGUgPSByZWR1Y2VyKHVuZGVmaW5lZCwgeyB0eXBlOiBfY3JlYXRlU3RvcmUuQWN0aW9uVHlwZXMuSU5JVCB9KTtcblxuICAgIGlmICh0eXBlb2YgaW5pdGlhbFN0YXRlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWR1Y2VyIFwiJyArIGtleSArICdcIiByZXR1cm5lZCB1bmRlZmluZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLiAnICsgJ0lmIHRoZSBzdGF0ZSBwYXNzZWQgdG8gdGhlIHJlZHVjZXIgaXMgdW5kZWZpbmVkLCB5b3UgbXVzdCAnICsgJ2V4cGxpY2l0bHkgcmV0dXJuIHRoZSBpbml0aWFsIHN0YXRlLiBUaGUgaW5pdGlhbCBzdGF0ZSBtYXkgJyArICdub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgIH1cblxuICAgIHZhciB0eXBlID0gJ0BAcmVkdXgvUFJPQkVfVU5LTk9XTl9BQ1RJT05fJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZyg3KS5zcGxpdCgnJykuam9pbignLicpO1xuICAgIGlmICh0eXBlb2YgcmVkdWNlcih1bmRlZmluZWQsIHsgdHlwZTogdHlwZSB9KSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVkdWNlciBcIicgKyBrZXkgKyAnXCIgcmV0dXJuZWQgdW5kZWZpbmVkIHdoZW4gcHJvYmVkIHdpdGggYSByYW5kb20gdHlwZS4gJyArICgnRG9uXFwndCB0cnkgdG8gaGFuZGxlICcgKyBfY3JlYXRlU3RvcmUuQWN0aW9uVHlwZXMuSU5JVCArICcgb3Igb3RoZXIgYWN0aW9ucyBpbiBcInJlZHV4LypcIiAnKSArICduYW1lc3BhY2UuIFRoZXkgYXJlIGNvbnNpZGVyZWQgcHJpdmF0ZS4gSW5zdGVhZCwgeW91IG11c3QgcmV0dXJuIHRoZSAnICsgJ2N1cnJlbnQgc3RhdGUgZm9yIGFueSB1bmtub3duIGFjdGlvbnMsIHVubGVzcyBpdCBpcyB1bmRlZmluZWQsICcgKyAnaW4gd2hpY2ggY2FzZSB5b3UgbXVzdCByZXR1cm4gdGhlIGluaXRpYWwgc3RhdGUsIHJlZ2FyZGxlc3Mgb2YgdGhlICcgKyAnYWN0aW9uIHR5cGUuIFRoZSBpbml0aWFsIHN0YXRlIG1heSBub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogVHVybnMgYW4gb2JqZWN0IHdob3NlIHZhbHVlcyBhcmUgZGlmZmVyZW50IHJlZHVjZXIgZnVuY3Rpb25zLCBpbnRvIGEgc2luZ2xlXG4gKiByZWR1Y2VyIGZ1bmN0aW9uLiBJdCB3aWxsIGNhbGwgZXZlcnkgY2hpbGQgcmVkdWNlciwgYW5kIGdhdGhlciB0aGVpciByZXN1bHRzXG4gKiBpbnRvIGEgc2luZ2xlIHN0YXRlIG9iamVjdCwgd2hvc2Uga2V5cyBjb3JyZXNwb25kIHRvIHRoZSBrZXlzIG9mIHRoZSBwYXNzZWRcbiAqIHJlZHVjZXIgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSByZWR1Y2VycyBBbiBvYmplY3Qgd2hvc2UgdmFsdWVzIGNvcnJlc3BvbmQgdG8gZGlmZmVyZW50XG4gKiByZWR1Y2VyIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgY29tYmluZWQgaW50byBvbmUuIE9uZSBoYW5keSB3YXkgdG8gb2J0YWluXG4gKiBpdCBpcyB0byB1c2UgRVM2IGBpbXBvcnQgKiBhcyByZWR1Y2Vyc2Agc3ludGF4LiBUaGUgcmVkdWNlcnMgbWF5IG5ldmVyIHJldHVyblxuICogdW5kZWZpbmVkIGZvciBhbnkgYWN0aW9uLiBJbnN0ZWFkLCB0aGV5IHNob3VsZCByZXR1cm4gdGhlaXIgaW5pdGlhbCBzdGF0ZVxuICogaWYgdGhlIHN0YXRlIHBhc3NlZCB0byB0aGVtIHdhcyB1bmRlZmluZWQsIGFuZCB0aGUgY3VycmVudCBzdGF0ZSBmb3IgYW55XG4gKiB1bnJlY29nbml6ZWQgYWN0aW9uLlxuICpcbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gQSByZWR1Y2VyIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBldmVyeSByZWR1Y2VyIGluc2lkZSB0aGVcbiAqIHBhc3NlZCBvYmplY3QsIGFuZCBidWlsZHMgYSBzdGF0ZSBvYmplY3Qgd2l0aCB0aGUgc2FtZSBzaGFwZS5cbiAqL1xuZnVuY3Rpb24gY29tYmluZVJlZHVjZXJzKHJlZHVjZXJzKSB7XG4gIHZhciByZWR1Y2VyS2V5cyA9IE9iamVjdC5rZXlzKHJlZHVjZXJzKTtcbiAgdmFyIGZpbmFsUmVkdWNlcnMgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWR1Y2VyS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSByZWR1Y2VyS2V5c1tpXTtcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIHJlZHVjZXJzW2tleV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICgwLCBfd2FybmluZzJbJ2RlZmF1bHQnXSkoJ05vIHJlZHVjZXIgcHJvdmlkZWQgZm9yIGtleSBcIicgKyBrZXkgKyAnXCInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHJlZHVjZXJzW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGZpbmFsUmVkdWNlcnNba2V5XSA9IHJlZHVjZXJzW2tleV07XG4gICAgfVxuICB9XG4gIHZhciBmaW5hbFJlZHVjZXJLZXlzID0gT2JqZWN0LmtleXMoZmluYWxSZWR1Y2Vycyk7XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB2YXIgdW5leHBlY3RlZEtleUNhY2hlID0ge307XG4gIH1cblxuICB2YXIgc2FuaXR5RXJyb3I7XG4gIHRyeSB7XG4gICAgYXNzZXJ0UmVkdWNlclNhbml0eShmaW5hbFJlZHVjZXJzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHNhbml0eUVycm9yID0gZTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiBjb21iaW5hdGlvbigpIHtcbiAgICB2YXIgc3RhdGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcbiAgICB2YXIgYWN0aW9uID0gYXJndW1lbnRzWzFdO1xuXG4gICAgaWYgKHNhbml0eUVycm9yKSB7XG4gICAgICB0aHJvdyBzYW5pdHlFcnJvcjtcbiAgICB9XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIHdhcm5pbmdNZXNzYWdlID0gZ2V0VW5leHBlY3RlZFN0YXRlU2hhcGVXYXJuaW5nTWVzc2FnZShzdGF0ZSwgZmluYWxSZWR1Y2VycywgYWN0aW9uLCB1bmV4cGVjdGVkS2V5Q2FjaGUpO1xuICAgICAgaWYgKHdhcm5pbmdNZXNzYWdlKSB7XG4gICAgICAgICgwLCBfd2FybmluZzJbJ2RlZmF1bHQnXSkod2FybmluZ01lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBoYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgdmFyIG5leHRTdGF0ZSA9IHt9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmluYWxSZWR1Y2VyS2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGZpbmFsUmVkdWNlcktleXNbaV07XG4gICAgICB2YXIgcmVkdWNlciA9IGZpbmFsUmVkdWNlcnNba2V5XTtcbiAgICAgIHZhciBwcmV2aW91c1N0YXRlRm9yS2V5ID0gc3RhdGVba2V5XTtcbiAgICAgIHZhciBuZXh0U3RhdGVGb3JLZXkgPSByZWR1Y2VyKHByZXZpb3VzU3RhdGVGb3JLZXksIGFjdGlvbik7XG4gICAgICBpZiAodHlwZW9mIG5leHRTdGF0ZUZvcktleSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGdldFVuZGVmaW5lZFN0YXRlRXJyb3JNZXNzYWdlKGtleSwgYWN0aW9uKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgICBuZXh0U3RhdGVba2V5XSA9IG5leHRTdGF0ZUZvcktleTtcbiAgICAgIGhhc0NoYW5nZWQgPSBoYXNDaGFuZ2VkIHx8IG5leHRTdGF0ZUZvcktleSAhPT0gcHJldmlvdXNTdGF0ZUZvcktleTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0NoYW5nZWQgPyBuZXh0U3RhdGUgOiBzdGF0ZTtcbiAgfTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvY29tYmluZVJlZHVjZXJzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 176 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvdXRpbHMvd2FybmluZy5qcz9iNDg2Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwid2FybmluZyIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiZXJyb3IiLCJFcnJvciIsImUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCO0FBQ0FELFFBQVEsU0FBUixJQUFxQkUsT0FBckI7QUFDQTs7Ozs7O0FBTUEsU0FBU0EsT0FBVCxDQUFpQkMsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxNQUFJLE9BQU9DLE9BQVAsS0FBbUIsV0FBbkIsSUFBa0MsT0FBT0EsUUFBUUMsS0FBZixLQUF5QixVQUEvRCxFQUEyRTtBQUN6RUQsWUFBUUMsS0FBUixDQUFjRixPQUFkO0FBQ0Q7QUFDRDtBQUNBLE1BQUk7QUFDRjtBQUNBO0FBQ0E7QUFDQSxVQUFNLElBQUlHLEtBQUosQ0FBVUgsT0FBVixDQUFOO0FBQ0E7QUFDRCxHQU5ELENBTUUsT0FBT0ksQ0FBUCxFQUFVLENBQUU7QUFDZDtBQUNEIiwiZmlsZSI6IjE3Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHdhcm5pbmc7XG4vKipcbiAqIFByaW50cyBhIHdhcm5pbmcgaW4gdGhlIGNvbnNvbGUgaWYgaXQgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtZXNzYWdlIFRoZSB3YXJuaW5nIG1lc3NhZ2UuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gd2FybmluZyhtZXNzYWdlKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbiAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gIH1cbiAgLyogZXNsaW50LWVuYWJsZSBuby1jb25zb2xlICovXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBlcnJvciB3YXMgdGhyb3duIGFzIGEgY29udmVuaWVuY2Ugc28gdGhhdCBpZiB5b3UgZW5hYmxlXG4gICAgLy8gXCJicmVhayBvbiBhbGwgZXhjZXB0aW9uc1wiIGluIHlvdXIgY29uc29sZSxcbiAgICAvLyBpdCB3b3VsZCBwYXVzZSB0aGUgZXhlY3V0aW9uIGF0IHRoaXMgbGluZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgLyogZXNsaW50LWRpc2FibGUgbm8tZW1wdHkgKi9cbiAgfSBjYXRjaCAoZSkge31cbiAgLyogZXNsaW50LWVuYWJsZSBuby1lbXB0eSAqL1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlZHV4L2xpYi91dGlscy93YXJuaW5nLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 177 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if ((typeof actionCreators === 'undefined' ? 'undefined' : _typeof(actionCreators)) !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators === 'undefined' ? 'undefined' : _typeof(actionCreators)) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvYmluZEFjdGlvbkNyZWF0b3JzLmpzPzkxMjMiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJiaW5kQWN0aW9uQ3JlYXRvcnMiLCJiaW5kQWN0aW9uQ3JlYXRvciIsImFjdGlvbkNyZWF0b3IiLCJkaXNwYXRjaCIsImFwcGx5IiwidW5kZWZpbmVkIiwiYXJndW1lbnRzIiwiYWN0aW9uQ3JlYXRvcnMiLCJFcnJvciIsImtleXMiLCJPYmplY3QiLCJib3VuZEFjdGlvbkNyZWF0b3JzIiwiaSIsImxlbmd0aCIsImtleSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBRCxRQUFRLFNBQVIsSUFBcUJFLGtCQUFyQjtBQUNBLFNBQVNDLGlCQUFULENBQTJCQyxhQUEzQixFQUEwQ0MsUUFBMUMsRUFBb0Q7QUFDbEQsU0FBTyxZQUFZO0FBQ2pCLFdBQU9BLFNBQVNELGNBQWNFLEtBQWQsQ0FBb0JDLFNBQXBCLEVBQStCQyxTQUEvQixDQUFULENBQVA7QUFDRCxHQUZEO0FBR0Q7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxTQUFTTixrQkFBVCxDQUE0Qk8sY0FBNUIsRUFBNENKLFFBQTVDLEVBQXNEO0FBQ3BELE1BQUksT0FBT0ksY0FBUCxLQUEwQixVQUE5QixFQUEwQztBQUN4QyxXQUFPTixrQkFBa0JNLGNBQWxCLEVBQWtDSixRQUFsQyxDQUFQO0FBQ0Q7O0FBRUQsTUFBSSxRQUFPSSxjQUFQLHlDQUFPQSxjQUFQLE9BQTBCLFFBQTFCLElBQXNDQSxtQkFBbUIsSUFBN0QsRUFBbUU7QUFDakUsVUFBTSxJQUFJQyxLQUFKLENBQVUsNEVBQTRFRCxtQkFBbUIsSUFBbkIsR0FBMEIsTUFBMUIsVUFBMENBLGNBQTFDLHlDQUEwQ0EsY0FBMUMsQ0FBNUUsSUFBd0ksSUFBeEksR0FBK0ksMEZBQXpKLENBQU47QUFDRDs7QUFFRCxNQUFJRSxPQUFPQyxPQUFPRCxJQUFQLENBQVlGLGNBQVosQ0FBWDtBQUNBLE1BQUlJLHNCQUFzQixFQUExQjtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJSCxLQUFLSSxNQUF6QixFQUFpQ0QsR0FBakMsRUFBc0M7QUFDcEMsUUFBSUUsTUFBTUwsS0FBS0csQ0FBTCxDQUFWO0FBQ0EsUUFBSVYsZ0JBQWdCSyxlQUFlTyxHQUFmLENBQXBCO0FBQ0EsUUFBSSxPQUFPWixhQUFQLEtBQXlCLFVBQTdCLEVBQXlDO0FBQ3ZDUywwQkFBb0JHLEdBQXBCLElBQTJCYixrQkFBa0JDLGFBQWxCLEVBQWlDQyxRQUFqQyxDQUEzQjtBQUNEO0FBQ0Y7QUFDRCxTQUFPUSxtQkFBUDtBQUNEIiwiZmlsZSI6IjE3Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGJpbmRBY3Rpb25DcmVhdG9ycztcbmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9yKGFjdGlvbkNyZWF0b3IsIGRpc3BhdGNoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoKGFjdGlvbkNyZWF0b3IuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBUdXJucyBhbiBvYmplY3Qgd2hvc2UgdmFsdWVzIGFyZSBhY3Rpb24gY3JlYXRvcnMsIGludG8gYW4gb2JqZWN0IHdpdGggdGhlXG4gKiBzYW1lIGtleXMsIGJ1dCB3aXRoIGV2ZXJ5IGZ1bmN0aW9uIHdyYXBwZWQgaW50byBhIGBkaXNwYXRjaGAgY2FsbCBzbyB0aGV5XG4gKiBtYXkgYmUgaW52b2tlZCBkaXJlY3RseS4gVGhpcyBpcyBqdXN0IGEgY29udmVuaWVuY2UgbWV0aG9kLCBhcyB5b3UgY2FuIGNhbGxcbiAqIGBzdG9yZS5kaXNwYXRjaChNeUFjdGlvbkNyZWF0b3JzLmRvU29tZXRoaW5nKCkpYCB5b3Vyc2VsZiBqdXN0IGZpbmUuXG4gKlxuICogRm9yIGNvbnZlbmllbmNlLCB5b3UgY2FuIGFsc28gcGFzcyBhIHNpbmdsZSBmdW5jdGlvbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQsXG4gKiBhbmQgZ2V0IGEgZnVuY3Rpb24gaW4gcmV0dXJuLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb258T2JqZWN0fSBhY3Rpb25DcmVhdG9ycyBBbiBvYmplY3Qgd2hvc2UgdmFsdWVzIGFyZSBhY3Rpb25cbiAqIGNyZWF0b3IgZnVuY3Rpb25zLiBPbmUgaGFuZHkgd2F5IHRvIG9idGFpbiBpdCBpcyB0byB1c2UgRVM2IGBpbXBvcnQgKiBhc2BcbiAqIHN5bnRheC4gWW91IG1heSBhbHNvIHBhc3MgYSBzaW5nbGUgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZGlzcGF0Y2ggVGhlIGBkaXNwYXRjaGAgZnVuY3Rpb24gYXZhaWxhYmxlIG9uIHlvdXIgUmVkdXhcbiAqIHN0b3JlLlxuICpcbiAqIEByZXR1cm5zIHtGdW5jdGlvbnxPYmplY3R9IFRoZSBvYmplY3QgbWltaWNraW5nIHRoZSBvcmlnaW5hbCBvYmplY3QsIGJ1dCB3aXRoXG4gKiBldmVyeSBhY3Rpb24gY3JlYXRvciB3cmFwcGVkIGludG8gdGhlIGBkaXNwYXRjaGAgY2FsbC4gSWYgeW91IHBhc3NlZCBhXG4gKiBmdW5jdGlvbiBhcyBgYWN0aW9uQ3JlYXRvcnNgLCB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgYWxzbyBiZSBhIHNpbmdsZVxuICogZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJpbmRBY3Rpb25DcmVhdG9ycyhhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9ycyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9ycywgZGlzcGF0Y2gpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9ycyAhPT0gJ29iamVjdCcgfHwgYWN0aW9uQ3JlYXRvcnMgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbmRBY3Rpb25DcmVhdG9ycyBleHBlY3RlZCBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbiwgaW5zdGVhZCByZWNlaXZlZCAnICsgKGFjdGlvbkNyZWF0b3JzID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIGFjdGlvbkNyZWF0b3JzKSArICcuICcgKyAnRGlkIHlvdSB3cml0ZSBcImltcG9ydCBBY3Rpb25DcmVhdG9ycyBmcm9tXCIgaW5zdGVhZCBvZiBcImltcG9ydCAqIGFzIEFjdGlvbkNyZWF0b3JzIGZyb21cIj8nKTtcbiAgfVxuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMoYWN0aW9uQ3JlYXRvcnMpO1xuICB2YXIgYm91bmRBY3Rpb25DcmVhdG9ycyA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICB2YXIgYWN0aW9uQ3JlYXRvciA9IGFjdGlvbkNyZWF0b3JzW2tleV07XG4gICAgaWYgKHR5cGVvZiBhY3Rpb25DcmVhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBib3VuZEFjdGlvbkNyZWF0b3JzW2tleV0gPSBiaW5kQWN0aW9uQ3JlYXRvcihhY3Rpb25DcmVhdG9yLCBkaXNwYXRjaCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBib3VuZEFjdGlvbkNyZWF0b3JzO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlZHV4L2xpYi9iaW5kQWN0aW9uQ3JlYXRvcnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 178 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nexports['default'] = applyMiddleware;\n\nvar _compose = __webpack_require__(179);\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvYXBwbHlNaWRkbGV3YXJlLmpzPzBjMmQiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseU1pZGRsZXdhcmUiLCJfY29tcG9zZSIsInJlcXVpcmUiLCJfY29tcG9zZTIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2xlbiIsIm1pZGRsZXdhcmVzIiwiQXJyYXkiLCJfa2V5IiwiY3JlYXRlU3RvcmUiLCJyZWR1Y2VyIiwicHJlbG9hZGVkU3RhdGUiLCJlbmhhbmNlciIsInN0b3JlIiwiX2Rpc3BhdGNoIiwiZGlzcGF0Y2giLCJjaGFpbiIsIm1pZGRsZXdhcmVBUEkiLCJnZXRTdGF0ZSIsImFjdGlvbiIsIm1hcCIsIm1pZGRsZXdhcmUiLCJhcHBseSIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsV0FBV0MsT0FBT0MsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQUUsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlDLFVBQVVDLE1BQTlCLEVBQXNDRixHQUF0QyxFQUEyQztBQUFFLFFBQUlHLFNBQVNGLFVBQVVELENBQVYsQ0FBYixDQUEyQixLQUFLLElBQUlJLEdBQVQsSUFBZ0JELE1BQWhCLEVBQXdCO0FBQUUsVUFBSU4sT0FBT1EsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDSixNQUFyQyxFQUE2Q0MsR0FBN0MsQ0FBSixFQUF1RDtBQUFFTCxlQUFPSyxHQUFQLElBQWNELE9BQU9DLEdBQVAsQ0FBZDtBQUE0QjtBQUFFO0FBQUUsR0FBQyxPQUFPTCxNQUFQO0FBQWdCLENBQWhROztBQUVBTCxRQUFRLFNBQVIsSUFBcUJjLGVBQXJCOztBQUVBLElBQUlDLFdBQVcsbUJBQUFDLENBQVEsR0FBUixDQUFmOztBQUVBLElBQUlDLFlBQVlDLHVCQUF1QkgsUUFBdkIsQ0FBaEI7O0FBRUEsU0FBU0csc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSWxCLFVBQVgsR0FBd0JrQixHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHOzs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLFNBQVNMLGVBQVQsR0FBMkI7QUFDekIsT0FBSyxJQUFJTSxPQUFPYixVQUFVQyxNQUFyQixFQUE2QmEsY0FBY0MsTUFBTUYsSUFBTixDQUEzQyxFQUF3REcsT0FBTyxDQUFwRSxFQUF1RUEsT0FBT0gsSUFBOUUsRUFBb0ZHLE1BQXBGLEVBQTRGO0FBQzFGRixnQkFBWUUsSUFBWixJQUFvQmhCLFVBQVVnQixJQUFWLENBQXBCO0FBQ0Q7O0FBRUQsU0FBTyxVQUFVQyxXQUFWLEVBQXVCO0FBQzVCLFdBQU8sVUFBVUMsT0FBVixFQUFtQkMsY0FBbkIsRUFBbUNDLFFBQW5DLEVBQTZDO0FBQ2xELFVBQUlDLFFBQVFKLFlBQVlDLE9BQVosRUFBcUJDLGNBQXJCLEVBQXFDQyxRQUFyQyxDQUFaO0FBQ0EsVUFBSUUsWUFBWUQsTUFBTUUsUUFBdEI7QUFDQSxVQUFJQyxRQUFRLEVBQVo7O0FBRUEsVUFBSUMsZ0JBQWdCO0FBQ2xCQyxrQkFBVUwsTUFBTUssUUFERTtBQUVsQkgsa0JBQVUsU0FBU0EsUUFBVCxDQUFrQkksTUFBbEIsRUFBMEI7QUFDbEMsaUJBQU9MLFVBQVVLLE1BQVYsQ0FBUDtBQUNEO0FBSmlCLE9BQXBCO0FBTUFILGNBQVFWLFlBQVljLEdBQVosQ0FBZ0IsVUFBVUMsVUFBVixFQUFzQjtBQUM1QyxlQUFPQSxXQUFXSixhQUFYLENBQVA7QUFDRCxPQUZPLENBQVI7QUFHQUgsa0JBQVlaLFVBQVUsU0FBVixFQUFxQm9CLEtBQXJCLENBQTJCQyxTQUEzQixFQUFzQ1AsS0FBdEMsRUFBNkNILE1BQU1FLFFBQW5ELENBQVo7O0FBRUEsYUFBTzVCLFNBQVMsRUFBVCxFQUFhMEIsS0FBYixFQUFvQjtBQUN6QkUsa0JBQVVEO0FBRGUsT0FBcEIsQ0FBUDtBQUdELEtBbkJEO0FBb0JELEdBckJEO0FBc0JEIiwiZmlsZSI6IjE3OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gYXBwbHlNaWRkbGV3YXJlO1xuXG52YXIgX2NvbXBvc2UgPSByZXF1aXJlKCcuL2NvbXBvc2UnKTtcblxudmFyIF9jb21wb3NlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NvbXBvc2UpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0b3JlIGVuaGFuY2VyIHRoYXQgYXBwbGllcyBtaWRkbGV3YXJlIHRvIHRoZSBkaXNwYXRjaCBtZXRob2RcbiAqIG9mIHRoZSBSZWR1eCBzdG9yZS4gVGhpcyBpcyBoYW5keSBmb3IgYSB2YXJpZXR5IG9mIHRhc2tzLCBzdWNoIGFzIGV4cHJlc3NpbmdcbiAqIGFzeW5jaHJvbm91cyBhY3Rpb25zIGluIGEgY29uY2lzZSBtYW5uZXIsIG9yIGxvZ2dpbmcgZXZlcnkgYWN0aW9uIHBheWxvYWQuXG4gKlxuICogU2VlIGByZWR1eC10aHVua2AgcGFja2FnZSBhcyBhbiBleGFtcGxlIG9mIHRoZSBSZWR1eCBtaWRkbGV3YXJlLlxuICpcbiAqIEJlY2F1c2UgbWlkZGxld2FyZSBpcyBwb3RlbnRpYWxseSBhc3luY2hyb25vdXMsIHRoaXMgc2hvdWxkIGJlIHRoZSBmaXJzdFxuICogc3RvcmUgZW5oYW5jZXIgaW4gdGhlIGNvbXBvc2l0aW9uIGNoYWluLlxuICpcbiAqIE5vdGUgdGhhdCBlYWNoIG1pZGRsZXdhcmUgd2lsbCBiZSBnaXZlbiB0aGUgYGRpc3BhdGNoYCBhbmQgYGdldFN0YXRlYCBmdW5jdGlvbnNcbiAqIGFzIG5hbWVkIGFyZ3VtZW50cy5cbiAqXG4gKiBAcGFyYW0gey4uLkZ1bmN0aW9ufSBtaWRkbGV3YXJlcyBUaGUgbWlkZGxld2FyZSBjaGFpbiB0byBiZSBhcHBsaWVkLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBBIHN0b3JlIGVuaGFuY2VyIGFwcGx5aW5nIHRoZSBtaWRkbGV3YXJlLlxuICovXG5mdW5jdGlvbiBhcHBseU1pZGRsZXdhcmUoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBtaWRkbGV3YXJlcyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIG1pZGRsZXdhcmVzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChjcmVhdGVTdG9yZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiAocmVkdWNlciwgcHJlbG9hZGVkU3RhdGUsIGVuaGFuY2VyKSB7XG4gICAgICB2YXIgc3RvcmUgPSBjcmVhdGVTdG9yZShyZWR1Y2VyLCBwcmVsb2FkZWRTdGF0ZSwgZW5oYW5jZXIpO1xuICAgICAgdmFyIF9kaXNwYXRjaCA9IHN0b3JlLmRpc3BhdGNoO1xuICAgICAgdmFyIGNoYWluID0gW107XG5cbiAgICAgIHZhciBtaWRkbGV3YXJlQVBJID0ge1xuICAgICAgICBnZXRTdGF0ZTogc3RvcmUuZ2V0U3RhdGUsXG4gICAgICAgIGRpc3BhdGNoOiBmdW5jdGlvbiBkaXNwYXRjaChhY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4gX2Rpc3BhdGNoKGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjaGFpbiA9IG1pZGRsZXdhcmVzLm1hcChmdW5jdGlvbiAobWlkZGxld2FyZSkge1xuICAgICAgICByZXR1cm4gbWlkZGxld2FyZShtaWRkbGV3YXJlQVBJKTtcbiAgICAgIH0pO1xuICAgICAgX2Rpc3BhdGNoID0gX2NvbXBvc2UyWydkZWZhdWx0J10uYXBwbHkodW5kZWZpbmVkLCBjaGFpbikoc3RvcmUuZGlzcGF0Y2gpO1xuXG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHN0b3JlLCB7XG4gICAgICAgIGRpc3BhdGNoOiBfZGlzcGF0Y2hcbiAgICAgIH0pO1xuICAgIH07XG4gIH07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVkdXgvbGliL2FwcGx5TWlkZGxld2FyZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 179 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWR1eC9saWIvY29tcG9zZS5qcz8wMTgzIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiY29tcG9zZSIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmdW5jcyIsIkFycmF5IiwiX2tleSIsImFyZyIsImxhc3QiLCJyZXN0Iiwic2xpY2UiLCJyZWR1Y2VSaWdodCIsImNvbXBvc2VkIiwiZiIsImFwcGx5IiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBRCxRQUFRLFNBQVIsSUFBcUJFLE9BQXJCO0FBQ0E7Ozs7Ozs7Ozs7O0FBV0EsU0FBU0EsT0FBVCxHQUFtQjtBQUNqQixPQUFLLElBQUlDLE9BQU9DLFVBQVVDLE1BQXJCLEVBQTZCQyxRQUFRQyxNQUFNSixJQUFOLENBQXJDLEVBQWtESyxPQUFPLENBQTlELEVBQWlFQSxPQUFPTCxJQUF4RSxFQUE4RUssTUFBOUUsRUFBc0Y7QUFDcEZGLFVBQU1FLElBQU4sSUFBY0osVUFBVUksSUFBVixDQUFkO0FBQ0Q7O0FBRUQsTUFBSUYsTUFBTUQsTUFBTixLQUFpQixDQUFyQixFQUF3QjtBQUN0QixXQUFPLFVBQVVJLEdBQVYsRUFBZTtBQUNwQixhQUFPQSxHQUFQO0FBQ0QsS0FGRDtBQUdEOztBQUVELE1BQUlILE1BQU1ELE1BQU4sS0FBaUIsQ0FBckIsRUFBd0I7QUFDdEIsV0FBT0MsTUFBTSxDQUFOLENBQVA7QUFDRDs7QUFFRCxNQUFJSSxPQUFPSixNQUFNQSxNQUFNRCxNQUFOLEdBQWUsQ0FBckIsQ0FBWDtBQUNBLE1BQUlNLE9BQU9MLE1BQU1NLEtBQU4sQ0FBWSxDQUFaLEVBQWUsQ0FBQyxDQUFoQixDQUFYO0FBQ0EsU0FBTyxZQUFZO0FBQ2pCLFdBQU9ELEtBQUtFLFdBQUwsQ0FBaUIsVUFBVUMsUUFBVixFQUFvQkMsQ0FBcEIsRUFBdUI7QUFDN0MsYUFBT0EsRUFBRUQsUUFBRixDQUFQO0FBQ0QsS0FGTSxFQUVKSixLQUFLTSxLQUFMLENBQVdDLFNBQVgsRUFBc0JiLFNBQXRCLENBRkksQ0FBUDtBQUdELEdBSkQ7QUFLRCIsImZpbGUiOiIxNzkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gY29tcG9zZTtcbi8qKlxuICogQ29tcG9zZXMgc2luZ2xlLWFyZ3VtZW50IGZ1bmN0aW9ucyBmcm9tIHJpZ2h0IHRvIGxlZnQuIFRoZSByaWdodG1vc3RcbiAqIGZ1bmN0aW9uIGNhbiB0YWtlIG11bHRpcGxlIGFyZ3VtZW50cyBhcyBpdCBwcm92aWRlcyB0aGUgc2lnbmF0dXJlIGZvclxuICogdGhlIHJlc3VsdGluZyBjb21wb3NpdGUgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHsuLi5GdW5jdGlvbn0gZnVuY3MgVGhlIGZ1bmN0aW9ucyB0byBjb21wb3NlLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBBIGZ1bmN0aW9uIG9idGFpbmVkIGJ5IGNvbXBvc2luZyB0aGUgYXJndW1lbnQgZnVuY3Rpb25zXG4gKiBmcm9tIHJpZ2h0IHRvIGxlZnQuIEZvciBleGFtcGxlLCBjb21wb3NlKGYsIGcsIGgpIGlzIGlkZW50aWNhbCB0byBkb2luZ1xuICogKC4uLmFyZ3MpID0+IGYoZyhoKC4uLmFyZ3MpKSkuXG4gKi9cblxuZnVuY3Rpb24gY29tcG9zZSgpIHtcbiAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGZ1bmNzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgZnVuY3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICBpZiAoZnVuY3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgIHJldHVybiBhcmc7XG4gICAgfTtcbiAgfVxuXG4gIGlmIChmdW5jcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gZnVuY3NbMF07XG4gIH1cblxuICB2YXIgbGFzdCA9IGZ1bmNzW2Z1bmNzLmxlbmd0aCAtIDFdO1xuICB2YXIgcmVzdCA9IGZ1bmNzLnNsaWNlKDAsIC0xKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gcmVzdC5yZWR1Y2VSaWdodChmdW5jdGlvbiAoY29tcG9zZWQsIGYpIHtcbiAgICAgIHJldHVybiBmKGNvbXBvc2VkKTtcbiAgICB9LCBsYXN0LmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKSk7XG4gIH07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVkdXgvbGliL2NvbXBvc2UuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 180 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = __webpack_require__(181);\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = __webpack_require__(184);\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { \"default\": obj };\n}\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvaW5kZXguanM/MzE0OCJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsImNvbm5lY3QiLCJQcm92aWRlciIsInVuZGVmaW5lZCIsIl9Qcm92aWRlciIsInJlcXVpcmUiLCJfUHJvdmlkZXIyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25uZWN0IiwiX2Nvbm5lY3QyIiwib2JqIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBRCxRQUFRRSxPQUFSLEdBQWtCRixRQUFRRyxRQUFSLEdBQW1CQyxTQUFyQzs7QUFFQSxJQUFJQyxZQUFZLG1CQUFBQyxDQUFRLEdBQVIsQ0FBaEI7O0FBRUEsSUFBSUMsYUFBYUMsdUJBQXVCSCxTQUF2QixDQUFqQjs7QUFFQSxJQUFJSSxXQUFXLG1CQUFBSCxDQUFRLEdBQVIsQ0FBZjs7QUFFQSxJQUFJSSxZQUFZRix1QkFBdUJDLFFBQXZCLENBQWhCOztBQUVBLFNBQVNELHNCQUFULENBQWdDRyxHQUFoQyxFQUFxQztBQUFFLFNBQU9BLE9BQU9BLElBQUlWLFVBQVgsR0FBd0JVLEdBQXhCLEdBQThCLEVBQUUsV0FBV0EsR0FBYixFQUFyQztBQUEwRDs7QUFFakdYLFFBQVFHLFFBQVIsR0FBbUJJLFdBQVcsU0FBWCxDQUFuQjtBQUNBUCxRQUFRRSxPQUFSLEdBQWtCUSxVQUFVLFNBQVYsQ0FBbEIiLCJmaWxlIjoiMTgwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jb25uZWN0ID0gZXhwb3J0cy5Qcm92aWRlciA9IHVuZGVmaW5lZDtcblxudmFyIF9Qcm92aWRlciA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9Qcm92aWRlcicpO1xuXG52YXIgX1Byb3ZpZGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Byb3ZpZGVyKTtcblxudmFyIF9jb25uZWN0ID0gcmVxdWlyZSgnLi9jb21wb25lbnRzL2Nvbm5lY3QnKTtcblxudmFyIF9jb25uZWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Nvbm5lY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBcImRlZmF1bHRcIjogb2JqIH07IH1cblxuZXhwb3J0cy5Qcm92aWRlciA9IF9Qcm92aWRlcjJbXCJkZWZhdWx0XCJdO1xuZXhwb3J0cy5jb25uZWN0ID0gX2Nvbm5lY3QyW1wiZGVmYXVsdFwiXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 181 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = __webpack_require__(1);\n\nvar _storeShape = __webpack_require__(182);\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = __webpack_require__(183);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { \"default\": obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }return call && ((typeof call === 'undefined' ? 'undefined' : _typeof(call)) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])('<Provider> does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return _react.Children.only(this.props.children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvY29tcG9uZW50cy9Qcm92aWRlci5qcz8xYThiIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwidW5kZWZpbmVkIiwiX3JlYWN0IiwicmVxdWlyZSIsIl9zdG9yZVNoYXBlIiwiX3N0b3JlU2hhcGUyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl93YXJuaW5nIiwiX3dhcm5pbmcyIiwib2JqIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwic2VsZiIsImNhbGwiLCJSZWZlcmVuY2VFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsInByb3RvdHlwZSIsIk9iamVjdCIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwidmFsdWUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJjb25maWd1cmFibGUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImRpZFdhcm5BYm91dFJlY2VpdmluZ1N0b3JlIiwid2FybkFib3V0UmVjZWl2aW5nU3RvcmUiLCJQcm92aWRlciIsIl9Db21wb25lbnQiLCJnZXRDaGlsZENvbnRleHQiLCJzdG9yZSIsInByb3BzIiwiY29udGV4dCIsIl90aGlzIiwicmVuZGVyIiwiQ2hpbGRyZW4iLCJvbmx5IiwiY2hpbGRyZW4iLCJDb21wb25lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwibmV4dFByb3BzIiwibmV4dFN0b3JlIiwicHJvcFR5cGVzIiwiaXNSZXF1aXJlZCIsIlByb3BUeXBlcyIsImVsZW1lbnQiLCJjaGlsZENvbnRleHRUeXBlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBRCxRQUFRLFNBQVIsSUFBcUJFLFNBQXJCOztBQUVBLElBQUlDLFNBQVMsbUJBQUFDLENBQVEsQ0FBUixDQUFiOztBQUVBLElBQUlDLGNBQWMsbUJBQUFELENBQVEsR0FBUixDQUFsQjs7QUFFQSxJQUFJRSxlQUFlQyx1QkFBdUJGLFdBQXZCLENBQW5COztBQUVBLElBQUlHLFdBQVcsbUJBQUFKLENBQVEsR0FBUixDQUFmOztBQUVBLElBQUlLLFlBQVlGLHVCQUF1QkMsUUFBdkIsQ0FBaEI7O0FBRUEsU0FBU0Qsc0JBQVQsQ0FBZ0NHLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSVQsVUFBWCxHQUF3QlMsR0FBeEIsR0FBOEIsRUFBRSxXQUFXQSxHQUFiLEVBQXJDO0FBQTBEOztBQUVqRyxTQUFTQyxlQUFULENBQXlCQyxRQUF6QixFQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFBRSxNQUFJLEVBQUVELG9CQUFvQkMsV0FBdEIsQ0FBSixFQUF3QztBQUFFLFVBQU0sSUFBSUMsU0FBSixDQUFjLG1DQUFkLENBQU47QUFBMkQ7QUFBRTs7QUFFekosU0FBU0MsMEJBQVQsQ0FBb0NDLElBQXBDLEVBQTBDQyxJQUExQyxFQUFnRDtBQUFFLE1BQUksQ0FBQ0QsSUFBTCxFQUFXO0FBQUUsVUFBTSxJQUFJRSxjQUFKLENBQW1CLDJEQUFuQixDQUFOO0FBQXdGLEdBQUMsT0FBT0QsU0FBUyxRQUFPQSxJQUFQLHlDQUFPQSxJQUFQLE9BQWdCLFFBQWhCLElBQTRCLE9BQU9BLElBQVAsS0FBZ0IsVUFBckQsSUFBbUVBLElBQW5FLEdBQTBFRCxJQUFqRjtBQUF3Rjs7QUFFaFAsU0FBU0csU0FBVCxDQUFtQkMsUUFBbkIsRUFBNkJDLFVBQTdCLEVBQXlDO0FBQUUsTUFBSSxPQUFPQSxVQUFQLEtBQXNCLFVBQXRCLElBQW9DQSxlQUFlLElBQXZELEVBQTZEO0FBQUUsVUFBTSxJQUFJUCxTQUFKLENBQWMscUVBQW9FTyxVQUFwRSx5Q0FBb0VBLFVBQXBFLEVBQWQsQ0FBTjtBQUFzRyxHQUFDRCxTQUFTRSxTQUFULEdBQXFCQyxPQUFPQyxNQUFQLENBQWNILGNBQWNBLFdBQVdDLFNBQXZDLEVBQWtELEVBQUVHLGFBQWEsRUFBRUMsT0FBT04sUUFBVCxFQUFtQk8sWUFBWSxLQUEvQixFQUFzQ0MsVUFBVSxJQUFoRCxFQUFzREMsY0FBYyxJQUFwRSxFQUFmLEVBQWxELENBQXJCLENBQXFLLElBQUlSLFVBQUosRUFBZ0JFLE9BQU9PLGNBQVAsR0FBd0JQLE9BQU9PLGNBQVAsQ0FBc0JWLFFBQXRCLEVBQWdDQyxVQUFoQyxDQUF4QixHQUFzRUQsU0FBU1csU0FBVCxHQUFxQlYsVUFBM0Y7QUFBd0c7O0FBRTllLElBQUlXLDZCQUE2QixLQUFqQztBQUNBLFNBQVNDLHVCQUFULEdBQW1DO0FBQ2pDLE1BQUlELDBCQUFKLEVBQWdDO0FBQzlCO0FBQ0Q7QUFDREEsK0JBQTZCLElBQTdCOztBQUVBLEdBQUMsR0FBR3ZCLFVBQVUsU0FBVixDQUFKLEVBQTBCLDhEQUE4RCxtRUFBOUQsR0FBb0ksb0VBQXBJLEdBQTJNLHFFQUEzTSxHQUFtUiw0Q0FBN1M7QUFDRDs7QUFFRCxJQUFJeUIsV0FBVyxVQUFVQyxVQUFWLEVBQXNCO0FBQ25DaEIsWUFBVWUsUUFBVixFQUFvQkMsVUFBcEI7O0FBRUFELFdBQVNaLFNBQVQsQ0FBbUJjLGVBQW5CLEdBQXFDLFNBQVNBLGVBQVQsR0FBMkI7QUFDOUQsV0FBTyxFQUFFQyxPQUFPLEtBQUtBLEtBQWQsRUFBUDtBQUNELEdBRkQ7O0FBSUEsV0FBU0gsUUFBVCxDQUFrQkksS0FBbEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQ2hDNUIsb0JBQWdCLElBQWhCLEVBQXNCdUIsUUFBdEI7O0FBRUEsUUFBSU0sUUFBUXpCLDJCQUEyQixJQUEzQixFQUFpQ29CLFdBQVdsQixJQUFYLENBQWdCLElBQWhCLEVBQXNCcUIsS0FBdEIsRUFBNkJDLE9BQTdCLENBQWpDLENBQVo7O0FBRUFDLFVBQU1ILEtBQU4sR0FBY0MsTUFBTUQsS0FBcEI7QUFDQSxXQUFPRyxLQUFQO0FBQ0Q7O0FBRUROLFdBQVNaLFNBQVQsQ0FBbUJtQixNQUFuQixHQUE0QixTQUFTQSxNQUFULEdBQWtCO0FBQzVDLFdBQU90QyxPQUFPdUMsUUFBUCxDQUFnQkMsSUFBaEIsQ0FBcUIsS0FBS0wsS0FBTCxDQUFXTSxRQUFoQyxDQUFQO0FBQ0QsR0FGRDs7QUFJQSxTQUFPVixRQUFQO0FBQ0QsQ0FyQmMsQ0FxQmIvQixPQUFPMEMsU0FyQk0sQ0FBZjs7QUF1QkE3QyxRQUFRLFNBQVIsSUFBcUJrQyxRQUFyQjs7QUFHQSxJQUFJWSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNkLFdBQVNaLFNBQVQsQ0FBbUIyQix5QkFBbkIsR0FBK0MsVUFBVUMsU0FBVixFQUFxQjtBQUNsRSxRQUFJYixRQUFRLEtBQUtBLEtBQWpCO0FBQ0EsUUFBSWMsWUFBWUQsVUFBVWIsS0FBMUI7O0FBR0EsUUFBSUEsVUFBVWMsU0FBZCxFQUF5QjtBQUN2QmxCO0FBQ0Q7QUFDRixHQVJEO0FBU0Q7O0FBRURDLFNBQVNrQixTQUFULEdBQXFCO0FBQ25CZixTQUFPL0IsYUFBYSxTQUFiLEVBQXdCK0MsVUFEWjtBQUVuQlQsWUFBVXpDLE9BQU9tRCxTQUFQLENBQWlCQyxPQUFqQixDQUF5QkY7QUFGaEIsQ0FBckI7QUFJQW5CLFNBQVNzQixpQkFBVCxHQUE2QjtBQUMzQm5CLFNBQU8vQixhQUFhLFNBQWIsRUFBd0IrQztBQURKLENBQTdCLEMiLCJmaWxlIjoiMTgxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSB1bmRlZmluZWQ7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3N0b3JlU2hhcGUgPSByZXF1aXJlKCcuLi91dGlscy9zdG9yZVNoYXBlJyk7XG5cbnZhciBfc3RvcmVTaGFwZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdG9yZVNoYXBlKTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnLi4vdXRpbHMvd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IFwiZGVmYXVsdFwiOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBkaWRXYXJuQWJvdXRSZWNlaXZpbmdTdG9yZSA9IGZhbHNlO1xuZnVuY3Rpb24gd2FybkFib3V0UmVjZWl2aW5nU3RvcmUoKSB7XG4gIGlmIChkaWRXYXJuQWJvdXRSZWNlaXZpbmdTdG9yZSkge1xuICAgIHJldHVybjtcbiAgfVxuICBkaWRXYXJuQWJvdXRSZWNlaXZpbmdTdG9yZSA9IHRydWU7XG5cbiAgKDAsIF93YXJuaW5nMltcImRlZmF1bHRcIl0pKCc8UHJvdmlkZXI+IGRvZXMgbm90IHN1cHBvcnQgY2hhbmdpbmcgYHN0b3JlYCBvbiB0aGUgZmx5LiAnICsgJ0l0IGlzIG1vc3QgbGlrZWx5IHRoYXQgeW91IHNlZSB0aGlzIGVycm9yIGJlY2F1c2UgeW91IHVwZGF0ZWQgdG8gJyArICdSZWR1eCAyLnggYW5kIFJlYWN0IFJlZHV4IDIueCB3aGljaCBubyBsb25nZXIgaG90IHJlbG9hZCByZWR1Y2VycyAnICsgJ2F1dG9tYXRpY2FsbHkuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcmVhY3Rqcy9yZWFjdC1yZWR1eC9yZWxlYXNlcy8nICsgJ3RhZy92Mi4wLjAgZm9yIHRoZSBtaWdyYXRpb24gaW5zdHJ1Y3Rpb25zLicpO1xufVxuXG52YXIgUHJvdmlkZXIgPSBmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUHJvdmlkZXIsIF9Db21wb25lbnQpO1xuXG4gIFByb3ZpZGVyLnByb3RvdHlwZS5nZXRDaGlsZENvbnRleHQgPSBmdW5jdGlvbiBnZXRDaGlsZENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHsgc3RvcmU6IHRoaXMuc3RvcmUgfTtcbiAgfTtcblxuICBmdW5jdGlvbiBQcm92aWRlcihwcm9wcywgY29udGV4dCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQcm92aWRlcik7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpKTtcblxuICAgIF90aGlzLnN0b3JlID0gcHJvcHMuc3RvcmU7XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgUHJvdmlkZXIucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICByZXR1cm4gX3JlYWN0LkNoaWxkcmVuLm9ubHkodGhpcy5wcm9wcy5jaGlsZHJlbik7XG4gIH07XG5cbiAgcmV0dXJuIFByb3ZpZGVyO1xufShfcmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBQcm92aWRlcjtcblxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBQcm92aWRlci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIChuZXh0UHJvcHMpIHtcbiAgICB2YXIgc3RvcmUgPSB0aGlzLnN0b3JlO1xuICAgIHZhciBuZXh0U3RvcmUgPSBuZXh0UHJvcHMuc3RvcmU7XG5cblxuICAgIGlmIChzdG9yZSAhPT0gbmV4dFN0b3JlKSB7XG4gICAgICB3YXJuQWJvdXRSZWNlaXZpbmdTdG9yZSgpO1xuICAgIH1cbiAgfTtcbn1cblxuUHJvdmlkZXIucHJvcFR5cGVzID0ge1xuICBzdG9yZTogX3N0b3JlU2hhcGUyW1wiZGVmYXVsdFwiXS5pc1JlcXVpcmVkLFxuICBjaGlsZHJlbjogX3JlYWN0LlByb3BUeXBlcy5lbGVtZW50LmlzUmVxdWlyZWRcbn07XG5Qcm92aWRlci5jaGlsZENvbnRleHRUeXBlcyA9IHtcbiAgc3RvcmU6IF9zdG9yZVNoYXBlMltcImRlZmF1bHRcIl0uaXNSZXF1aXJlZFxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvY29tcG9uZW50cy9Qcm92aWRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 182 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _react = __webpack_require__(1);\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvdXRpbHMvc3RvcmVTaGFwZS5qcz81NjUzIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX3JlYWN0IiwicmVxdWlyZSIsIlByb3BUeXBlcyIsInNoYXBlIiwic3Vic2NyaWJlIiwiZnVuYyIsImlzUmVxdWlyZWQiLCJkaXNwYXRjaCIsImdldFN0YXRlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjs7QUFFQSxJQUFJQyxTQUFTLG1CQUFBQyxDQUFRLENBQVIsQ0FBYjs7QUFFQUgsUUFBUSxTQUFSLElBQXFCRSxPQUFPRSxTQUFQLENBQWlCQyxLQUFqQixDQUF1QjtBQUMxQ0MsYUFBV0osT0FBT0UsU0FBUCxDQUFpQkcsSUFBakIsQ0FBc0JDLFVBRFM7QUFFMUNDLFlBQVVQLE9BQU9FLFNBQVAsQ0FBaUJHLElBQWpCLENBQXNCQyxVQUZVO0FBRzFDRSxZQUFVUixPQUFPRSxTQUFQLENBQWlCRyxJQUFqQixDQUFzQkM7QUFIVSxDQUF2QixDQUFyQiIsImZpbGUiOiIxODIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IF9yZWFjdC5Qcm9wVHlwZXMuc2hhcGUoe1xuICBzdWJzY3JpYmU6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBkaXNwYXRjaDogX3JlYWN0LlByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIGdldFN0YXRlOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxufSk7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QtcmVkdXgvbGliL3V0aWxzL3N0b3JlU2hhcGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 183 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvdXRpbHMvd2FybmluZy5qcz84Y2I4Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwid2FybmluZyIsIm1lc3NhZ2UiLCJjb25zb2xlIiwiZXJyb3IiLCJFcnJvciIsImUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCO0FBQ0FELFFBQVEsU0FBUixJQUFxQkUsT0FBckI7QUFDQTs7Ozs7O0FBTUEsU0FBU0EsT0FBVCxDQUFpQkMsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxNQUFJLE9BQU9DLE9BQVAsS0FBbUIsV0FBbkIsSUFBa0MsT0FBT0EsUUFBUUMsS0FBZixLQUF5QixVQUEvRCxFQUEyRTtBQUN6RUQsWUFBUUMsS0FBUixDQUFjRixPQUFkO0FBQ0Q7QUFDRDtBQUNBLE1BQUk7QUFDRjtBQUNBO0FBQ0E7QUFDQSxVQUFNLElBQUlHLEtBQUosQ0FBVUgsT0FBVixDQUFOO0FBQ0E7QUFDRCxHQU5ELENBTUUsT0FBT0ksQ0FBUCxFQUFVLENBQUU7QUFDZDtBQUNEIiwiZmlsZSI6IjE4My5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gd2FybmluZztcbi8qKlxuICogUHJpbnRzIGEgd2FybmluZyBpbiB0aGUgY29uc29sZSBpZiBpdCBleGlzdHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1lc3NhZ2UgVGhlIHdhcm5pbmcgbWVzc2FnZS5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiB3YXJuaW5nKG1lc3NhZ2UpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cbiAgdHJ5IHtcbiAgICAvLyBUaGlzIGVycm9yIHdhcyB0aHJvd24gYXMgYSBjb252ZW5pZW5jZSBzbyB0aGF0IGlmIHlvdSBlbmFibGVcbiAgICAvLyBcImJyZWFrIG9uIGFsbCBleGNlcHRpb25zXCIgaW4geW91ciBjb25zb2xlLFxuICAgIC8vIGl0IHdvdWxkIHBhdXNlIHRoZSBleGVjdXRpb24gYXQgdGhpcyBsaW5lLlxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1lbXB0eSAqL1xuICB9IGNhdGNoIChlKSB7fVxuICAvKiBlc2xpbnQtZW5hYmxlIG5vLWVtcHR5ICovXG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QtcmVkdXgvbGliL3V0aWxzL3dhcm5pbmcuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 184 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nexports[\"default\"] = connect;\n\nvar _react = __webpack_require__(1);\n\nvar _storeShape = __webpack_require__(182);\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = __webpack_require__(185);\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = __webpack_require__(186);\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = __webpack_require__(183);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = __webpack_require__(161);\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = __webpack_require__(187);\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { \"default\": obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }return call && ((typeof call === 'undefined' ? 'undefined' : _typeof(call)) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = void 0;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure,\n pure = _options$pure === undefined ? true : _options$pure,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a <Provider>, ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged,\n hasStoreStateChanged = this.hasStoreStateChanged,\n haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated,\n statePropsPrecalculationError = this.statePropsPrecalculationError,\n renderedElement = this.renderedElement;\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvY29tcG9uZW50cy9jb25uZWN0LmpzPzZjMTgiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJjb25uZWN0IiwiX3JlYWN0IiwicmVxdWlyZSIsIl9zdG9yZVNoYXBlIiwiX3N0b3JlU2hhcGUyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zaGFsbG93RXF1YWwiLCJfc2hhbGxvd0VxdWFsMiIsIl93cmFwQWN0aW9uQ3JlYXRvcnMiLCJfd3JhcEFjdGlvbkNyZWF0b3JzMiIsIl93YXJuaW5nIiwiX3dhcm5pbmcyIiwiX2lzUGxhaW5PYmplY3QiLCJfaXNQbGFpbk9iamVjdDIiLCJfaG9pc3ROb25SZWFjdFN0YXRpY3MiLCJfaG9pc3ROb25SZWFjdFN0YXRpY3MyIiwiX2ludmFyaWFudCIsIl9pbnZhcmlhbnQyIiwib2JqIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJDb25zdHJ1Y3RvciIsIlR5cGVFcnJvciIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuIiwic2VsZiIsIlJlZmVyZW5jZUVycm9yIiwiX2luaGVyaXRzIiwic3ViQ2xhc3MiLCJzdXBlckNsYXNzIiwiY3JlYXRlIiwiY29uc3RydWN0b3IiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGVmYXVsdE1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZGVmYXVsdE1hcERpc3BhdGNoVG9Qcm9wcyIsImRpc3BhdGNoIiwiZGVmYXVsdE1lcmdlUHJvcHMiLCJzdGF0ZVByb3BzIiwiZGlzcGF0Y2hQcm9wcyIsInBhcmVudFByb3BzIiwiZ2V0RGlzcGxheU5hbWUiLCJXcmFwcGVkQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwiZXJyb3JPYmplY3QiLCJ0cnlDYXRjaCIsImZuIiwiY3R4IiwiYXBwbHkiLCJlIiwibmV4dFZlcnNpb24iLCJtYXBTdGF0ZVRvUHJvcHMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJtZXJnZVByb3BzIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsInNob3VsZFN1YnNjcmliZSIsIkJvb2xlYW4iLCJtYXBTdGF0ZSIsIm1hcERpc3BhdGNoIiwiZmluYWxNZXJnZVByb3BzIiwiX29wdGlvbnMkcHVyZSIsInB1cmUiLCJfb3B0aW9ucyR3aXRoUmVmIiwid2l0aFJlZiIsImNoZWNrTWVyZ2VkRXF1YWxzIiwidmVyc2lvbiIsIndyYXBXaXRoQ29ubmVjdCIsImNvbm5lY3REaXNwbGF5TmFtZSIsImNoZWNrU3RhdGVTaGFwZSIsInByb3BzIiwibWV0aG9kTmFtZSIsImNvbXB1dGVNZXJnZWRQcm9wcyIsIm1lcmdlZFByb3BzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiQ29ubmVjdCIsIl9Db21wb25lbnQiLCJzaG91bGRDb21wb25lbnRVcGRhdGUiLCJoYXZlT3duUHJvcHNDaGFuZ2VkIiwiaGFzU3RvcmVTdGF0ZUNoYW5nZWQiLCJjb250ZXh0IiwiX3RoaXMiLCJzdG9yZSIsInN0b3JlU3RhdGUiLCJnZXRTdGF0ZSIsImNsZWFyQ2FjaGUiLCJjb21wdXRlU3RhdGVQcm9wcyIsImZpbmFsTWFwU3RhdGVUb1Byb3BzIiwiY29uZmlndXJlRmluYWxNYXBTdGF0ZSIsImRvU3RhdGVQcm9wc0RlcGVuZE9uT3duUHJvcHMiLCJtYXBwZWRTdGF0ZSIsImlzRmFjdG9yeSIsImNvbXB1dGVEaXNwYXRjaFByb3BzIiwiZmluYWxNYXBEaXNwYXRjaFRvUHJvcHMiLCJjb25maWd1cmVGaW5hbE1hcERpc3BhdGNoIiwiZG9EaXNwYXRjaFByb3BzRGVwZW5kT25Pd25Qcm9wcyIsIm1hcHBlZERpc3BhdGNoIiwidXBkYXRlU3RhdGVQcm9wc0lmTmVlZGVkIiwibmV4dFN0YXRlUHJvcHMiLCJ1cGRhdGVEaXNwYXRjaFByb3BzSWZOZWVkZWQiLCJuZXh0RGlzcGF0Y2hQcm9wcyIsInVwZGF0ZU1lcmdlZFByb3BzSWZOZWVkZWQiLCJuZXh0TWVyZ2VkUHJvcHMiLCJpc1N1YnNjcmliZWQiLCJ1bnN1YnNjcmliZSIsInRyeVN1YnNjcmliZSIsInN1YnNjcmliZSIsImhhbmRsZUNoYW5nZSIsImJpbmQiLCJ0cnlVbnN1YnNjcmliZSIsImNvbXBvbmVudERpZE1vdW50IiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsIm5leHRQcm9wcyIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiaGF2ZVN0YXRlUHJvcHNCZWVuUHJlY2FsY3VsYXRlZCIsInN0YXRlUHJvcHNQcmVjYWxjdWxhdGlvbkVycm9yIiwicmVuZGVyZWRFbGVtZW50IiwicHJldlN0b3JlU3RhdGUiLCJoYXZlU3RhdGVQcm9wc0NoYW5nZWQiLCJzZXRTdGF0ZSIsImdldFdyYXBwZWRJbnN0YW5jZSIsInJlZnMiLCJ3cmFwcGVkSW5zdGFuY2UiLCJyZW5kZXIiLCJzaG91bGRVcGRhdGVTdGF0ZVByb3BzIiwic2hvdWxkVXBkYXRlRGlzcGF0Y2hQcm9wcyIsImhhdmVEaXNwYXRjaFByb3BzQ2hhbmdlZCIsImhhdmVNZXJnZWRQcm9wc0NoYW5nZWQiLCJjcmVhdGVFbGVtZW50IiwicmVmIiwiQ29tcG9uZW50IiwiY29udGV4dFR5cGVzIiwicHJvcFR5cGVzIiwiY29tcG9uZW50V2lsbFVwZGF0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjs7QUFFQSxJQUFJQyxXQUFXQyxPQUFPQyxNQUFQLElBQWlCLFVBQVVDLE1BQVYsRUFBa0I7QUFBRSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUMsVUFBVUMsTUFBOUIs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QVA7QUFDRCxLQTVQYSxDQTRQWmpGLE9BQU93SSxTQTVQSyxDQUFkOztBQThQQXZELFlBQVFuQyxXQUFSLEdBQXNCMEIsa0JBQXRCO0FBQ0FTLFlBQVFwQyxnQkFBUixHQUEyQkEsZ0JBQTNCO0FBQ0FvQyxZQUFRd0QsWUFBUixHQUF1QjtBQUNyQmpELGFBQU9yRixhQUFhLFNBQWI7QUFEYyxLQUF2QjtBQUdBOEUsWUFBUXlELFNBQVIsR0FBb0I7QUFDbEJsRCxhQUFPckYsYUFBYSxTQUFiO0FBRFcsS0FBcEI7O0FBSUEsUUFBSTJFLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUE3QixFQUEyQztBQUN6Q0MsY0FBUXJGLFNBQVIsQ0FBa0IrSSxtQkFBbEIsR0FBd0MsU0FBU0EsbUJBQVQsR0FBK0I7QUFDckUsWUFBSSxLQUFLckUsT0FBTCxLQUFpQkEsT0FBckIsRUFBOEI7QUFDNUI7QUFDRDs7QUFFRDtBQUNBLGFBQUtBLE9BQUwsR0FBZUEsT0FBZjtBQUNBLGFBQUt5QyxZQUFMO0FBQ0EsYUFBS3BCLFVBQUw7QUFDRCxPQVREO0FBVUQ7O0FBRUQsV0FBTyxDQUFDLEdBQUc3RSx1QkFBdUIsU0FBdkIsQ0FBSixFQUF1Q21FLE9BQXZDLEVBQWdEcEMsZ0JBQWhELENBQVA7QUFDRCxHQXRTRDtBQXVTRCxDIiwiZmlsZSI6IjE4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBjb25uZWN0O1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9zdG9yZVNoYXBlID0gcmVxdWlyZSgnLi4vdXRpbHMvc3RvcmVTaGFwZScpO1xuXG52YXIgX3N0b3JlU2hhcGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3RvcmVTaGFwZSk7XG5cbnZhciBfc2hhbGxvd0VxdWFsID0gcmVxdWlyZSgnLi4vdXRpbHMvc2hhbGxvd0VxdWFsJyk7XG5cbnZhciBfc2hhbGxvd0VxdWFsMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NoYWxsb3dFcXVhbCk7XG5cbnZhciBfd3JhcEFjdGlvbkNyZWF0b3JzID0gcmVxdWlyZSgnLi4vdXRpbHMvd3JhcEFjdGlvbkNyZWF0b3JzJyk7XG5cbnZhciBfd3JhcEFjdGlvbkNyZWF0b3JzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dyYXBBY3Rpb25DcmVhdG9ycyk7XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJy4uL3V0aWxzL3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG52YXIgX2lzUGxhaW5PYmplY3QgPSByZXF1aXJlKCdsb2Rhc2gvaXNQbGFpbk9iamVjdCcpO1xuXG52YXIgX2lzUGxhaW5PYmplY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaXNQbGFpbk9iamVjdCk7XG5cbnZhciBfaG9pc3ROb25SZWFjdFN0YXRpY3MgPSByZXF1aXJlKCdob2lzdC1ub24tcmVhY3Qtc3RhdGljcycpO1xuXG52YXIgX2hvaXN0Tm9uUmVhY3RTdGF0aWNzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hvaXN0Tm9uUmVhY3RTdGF0aWNzKTtcblxudmFyIF9pbnZhcmlhbnQgPSByZXF1aXJlKCdpbnZhcmlhbnQnKTtcblxudmFyIF9pbnZhcmlhbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaW52YXJpYW50KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgXCJkZWZhdWx0XCI6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIGRlZmF1bHRNYXBTdGF0ZVRvUHJvcHMgPSBmdW5jdGlvbiBkZWZhdWx0TWFwU3RhdGVUb1Byb3BzKHN0YXRlKSB7XG4gIHJldHVybiB7fTtcbn07IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbnZhciBkZWZhdWx0TWFwRGlzcGF0Y2hUb1Byb3BzID0gZnVuY3Rpb24gZGVmYXVsdE1hcERpc3BhdGNoVG9Qcm9wcyhkaXNwYXRjaCkge1xuICByZXR1cm4geyBkaXNwYXRjaDogZGlzcGF0Y2ggfTtcbn07XG52YXIgZGVmYXVsdE1lcmdlUHJvcHMgPSBmdW5jdGlvbiBkZWZhdWx0TWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBwYXJlbnRQcm9wcykge1xuICByZXR1cm4gX2V4dGVuZHMoe30sIHBhcmVudFByb3BzLCBzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzKTtcbn07XG5cbmZ1bmN0aW9uIGdldERpc3BsYXlOYW1lKFdyYXBwZWRDb21wb25lbnQpIHtcbiAgcmV0dXJuIFdyYXBwZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgV3JhcHBlZENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnO1xufVxuXG52YXIgZXJyb3JPYmplY3QgPSB7IHZhbHVlOiBudWxsIH07XG5mdW5jdGlvbiB0cnlDYXRjaChmbiwgY3R4KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KGN0eCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBlcnJvck9iamVjdC52YWx1ZSA9IGU7XG4gICAgcmV0dXJuIGVycm9yT2JqZWN0O1xuICB9XG59XG5cbi8vIEhlbHBzIHRyYWNrIGhvdCByZWxvYWRpbmcuXG52YXIgbmV4dFZlcnNpb24gPSAwO1xuXG5mdW5jdGlvbiBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzLCBtZXJnZVByb3BzKSB7XG4gIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiB7fTtcblxuICB2YXIgc2hvdWxkU3Vic2NyaWJlID0gQm9vbGVhbihtYXBTdGF0ZVRvUHJvcHMpO1xuICB2YXIgbWFwU3RhdGUgPSBtYXBTdGF0ZVRvUHJvcHMgfHwgZGVmYXVsdE1hcFN0YXRlVG9Qcm9wcztcblxuICB2YXIgbWFwRGlzcGF0Y2ggPSB2b2lkIDA7XG4gIGlmICh0eXBlb2YgbWFwRGlzcGF0Y2hUb1Byb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgbWFwRGlzcGF0Y2ggPSBtYXBEaXNwYXRjaFRvUHJvcHM7XG4gIH0gZWxzZSBpZiAoIW1hcERpc3BhdGNoVG9Qcm9wcykge1xuICAgIG1hcERpc3BhdGNoID0gZGVmYXVsdE1hcERpc3BhdGNoVG9Qcm9wcztcbiAgfSBlbHNlIHtcbiAgICBtYXBEaXNwYXRjaCA9ICgwLCBfd3JhcEFjdGlvbkNyZWF0b3JzMltcImRlZmF1bHRcIl0pKG1hcERpc3BhdGNoVG9Qcm9wcyk7XG4gIH1cblxuICB2YXIgZmluYWxNZXJnZVByb3BzID0gbWVyZ2VQcm9wcyB8fCBkZWZhdWx0TWVyZ2VQcm9wcztcbiAgdmFyIF9vcHRpb25zJHB1cmUgPSBvcHRpb25zLnB1cmUsXG4gICAgICBwdXJlID0gX29wdGlvbnMkcHVyZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IF9vcHRpb25zJHB1cmUsXG4gICAgICBfb3B0aW9ucyR3aXRoUmVmID0gb3B0aW9ucy53aXRoUmVmLFxuICAgICAgd2l0aFJlZiA9IF9vcHRpb25zJHdpdGhSZWYgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogX29wdGlvbnMkd2l0aFJlZjtcblxuICB2YXIgY2hlY2tNZXJnZWRFcXVhbHMgPSBwdXJlICYmIGZpbmFsTWVyZ2VQcm9wcyAhPT0gZGVmYXVsdE1lcmdlUHJvcHM7XG5cbiAgLy8gSGVscHMgdHJhY2sgaG90IHJlbG9hZGluZy5cbiAgdmFyIHZlcnNpb24gPSBuZXh0VmVyc2lvbisrO1xuXG4gIHJldHVybiBmdW5jdGlvbiB3cmFwV2l0aENvbm5lY3QoV3JhcHBlZENvbXBvbmVudCkge1xuICAgIHZhciBjb25uZWN0RGlzcGxheU5hbWUgPSAnQ29ubmVjdCgnICsgZ2V0RGlzcGxheU5hbWUoV3JhcHBlZENvbXBvbmVudCkgKyAnKSc7XG5cbiAgICBmdW5jdGlvbiBjaGVja1N0YXRlU2hhcGUocHJvcHMsIG1ldGhvZE5hbWUpIHtcbiAgICAgIGlmICghKDAsIF9pc1BsYWluT2JqZWN0MltcImRlZmF1bHRcIl0pKHByb3BzKSkge1xuICAgICAgICAoMCwgX3dhcm5pbmcyW1wiZGVmYXVsdFwiXSkobWV0aG9kTmFtZSArICcoKSBpbiAnICsgY29ubmVjdERpc3BsYXlOYW1lICsgJyBtdXN0IHJldHVybiBhIHBsYWluIG9iamVjdC4gJyArICgnSW5zdGVhZCByZWNlaXZlZCAnICsgcHJvcHMgKyAnLicpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjb21wdXRlTWVyZ2VkUHJvcHMoc3RhdGVQcm9wcywgZGlzcGF0Y2hQcm9wcywgcGFyZW50UHJvcHMpIHtcbiAgICAgIHZhciBtZXJnZWRQcm9wcyA9IGZpbmFsTWVyZ2VQcm9wcyhzdGF0ZVByb3BzLCBkaXNwYXRjaFByb3BzLCBwYXJlbnRQcm9wcyk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjaGVja1N0YXRlU2hhcGUobWVyZ2VkUHJvcHMsICdtZXJnZVByb3BzJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbWVyZ2VkUHJvcHM7XG4gICAgfVxuXG4gICAgdmFyIENvbm5lY3QgPSBmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICAgICAgX2luaGVyaXRzKENvbm5lY3QsIF9Db21wb25lbnQpO1xuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS5zaG91bGRDb21wb25lbnRVcGRhdGUgPSBmdW5jdGlvbiBzaG91bGRDb21wb25lbnRVcGRhdGUoKSB7XG4gICAgICAgIHJldHVybiAhcHVyZSB8fCB0aGlzLmhhdmVPd25Qcm9wc0NoYW5nZWQgfHwgdGhpcy5oYXNTdG9yZVN0YXRlQ2hhbmdlZDtcbiAgICAgIH07XG5cbiAgICAgIGZ1bmN0aW9uIENvbm5lY3QocHJvcHMsIGNvbnRleHQpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENvbm5lY3QpO1xuXG4gICAgICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9Db21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCkpO1xuXG4gICAgICAgIF90aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgICAgICBfdGhpcy5zdG9yZSA9IHByb3BzLnN0b3JlIHx8IGNvbnRleHQuc3RvcmU7XG5cbiAgICAgICAgKDAsIF9pbnZhcmlhbnQyW1wiZGVmYXVsdFwiXSkoX3RoaXMuc3RvcmUsICdDb3VsZCBub3QgZmluZCBcInN0b3JlXCIgaW4gZWl0aGVyIHRoZSBjb250ZXh0IG9yICcgKyAoJ3Byb3BzIG9mIFwiJyArIGNvbm5lY3REaXNwbGF5TmFtZSArICdcIi4gJykgKyAnRWl0aGVyIHdyYXAgdGhlIHJvb3QgY29tcG9uZW50IGluIGEgPFByb3ZpZGVyPiwgJyArICgnb3IgZXhwbGljaXRseSBwYXNzIFwic3RvcmVcIiBhcyBhIHByb3AgdG8gXCInICsgY29ubmVjdERpc3BsYXlOYW1lICsgJ1wiLicpKTtcblxuICAgICAgICB2YXIgc3RvcmVTdGF0ZSA9IF90aGlzLnN0b3JlLmdldFN0YXRlKCk7XG4gICAgICAgIF90aGlzLnN0YXRlID0geyBzdG9yZVN0YXRlOiBzdG9yZVN0YXRlIH07XG4gICAgICAgIF90aGlzLmNsZWFyQ2FjaGUoKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgICAgfVxuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS5jb21wdXRlU3RhdGVQcm9wcyA9IGZ1bmN0aW9uIGNvbXB1dGVTdGF0ZVByb3BzKHN0b3JlLCBwcm9wcykge1xuICAgICAgICBpZiAoIXRoaXMuZmluYWxNYXBTdGF0ZVRvUHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmVGaW5hbE1hcFN0YXRlKHN0b3JlLCBwcm9wcyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgICB2YXIgc3RhdGVQcm9wcyA9IHRoaXMuZG9TdGF0ZVByb3BzRGVwZW5kT25Pd25Qcm9wcyA/IHRoaXMuZmluYWxNYXBTdGF0ZVRvUHJvcHMoc3RhdGUsIHByb3BzKSA6IHRoaXMuZmluYWxNYXBTdGF0ZVRvUHJvcHMoc3RhdGUpO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY2hlY2tTdGF0ZVNoYXBlKHN0YXRlUHJvcHMsICdtYXBTdGF0ZVRvUHJvcHMnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RhdGVQcm9wcztcbiAgICAgIH07XG5cbiAgICAgIENvbm5lY3QucHJvdG90eXBlLmNvbmZpZ3VyZUZpbmFsTWFwU3RhdGUgPSBmdW5jdGlvbiBjb25maWd1cmVGaW5hbE1hcFN0YXRlKHN0b3JlLCBwcm9wcykge1xuICAgICAgICB2YXIgbWFwcGVkU3RhdGUgPSBtYXBTdGF0ZShzdG9yZS5nZXRTdGF0ZSgpLCBwcm9wcyk7XG4gICAgICAgIHZhciBpc0ZhY3RvcnkgPSB0eXBlb2YgbWFwcGVkU3RhdGUgPT09ICdmdW5jdGlvbic7XG5cbiAgICAgICAgdGhpcy5maW5hbE1hcFN0YXRlVG9Qcm9wcyA9IGlzRmFjdG9yeSA/IG1hcHBlZFN0YXRlIDogbWFwU3RhdGU7XG4gICAgICAgIHRoaXMuZG9TdGF0ZVByb3BzRGVwZW5kT25Pd25Qcm9wcyA9IHRoaXMuZmluYWxNYXBTdGF0ZVRvUHJvcHMubGVuZ3RoICE9PSAxO1xuXG4gICAgICAgIGlmIChpc0ZhY3RvcnkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlU3RhdGVQcm9wcyhzdG9yZSwgcHJvcHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBjaGVja1N0YXRlU2hhcGUobWFwcGVkU3RhdGUsICdtYXBTdGF0ZVRvUHJvcHMnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWFwcGVkU3RhdGU7XG4gICAgICB9O1xuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS5jb21wdXRlRGlzcGF0Y2hQcm9wcyA9IGZ1bmN0aW9uIGNvbXB1dGVEaXNwYXRjaFByb3BzKHN0b3JlLCBwcm9wcykge1xuICAgICAgICBpZiAoIXRoaXMuZmluYWxNYXBEaXNwYXRjaFRvUHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWd1cmVGaW5hbE1hcERpc3BhdGNoKHN0b3JlLCBwcm9wcyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGlzcGF0Y2ggPSBzdG9yZS5kaXNwYXRjaDtcblxuICAgICAgICB2YXIgZGlzcGF0Y2hQcm9wcyA9IHRoaXMuZG9EaXNwYXRjaFByb3BzRGVwZW5kT25Pd25Qcm9wcyA/IHRoaXMuZmluYWxNYXBEaXNwYXRjaFRvUHJvcHMoZGlzcGF0Y2gsIHByb3BzKSA6IHRoaXMuZmluYWxNYXBEaXNwYXRjaFRvUHJvcHMoZGlzcGF0Y2gpO1xuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY2hlY2tTdGF0ZVNoYXBlKGRpc3BhdGNoUHJvcHMsICdtYXBEaXNwYXRjaFRvUHJvcHMnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlzcGF0Y2hQcm9wcztcbiAgICAgIH07XG5cbiAgICAgIENvbm5lY3QucHJvdG90eXBlLmNvbmZpZ3VyZUZpbmFsTWFwRGlzcGF0Y2ggPSBmdW5jdGlvbiBjb25maWd1cmVGaW5hbE1hcERpc3BhdGNoKHN0b3JlLCBwcm9wcykge1xuICAgICAgICB2YXIgbWFwcGVkRGlzcGF0Y2ggPSBtYXBEaXNwYXRjaChzdG9yZS5kaXNwYXRjaCwgcHJvcHMpO1xuICAgICAgICB2YXIgaXNGYWN0b3J5ID0gdHlwZW9mIG1hcHBlZERpc3BhdGNoID09PSAnZnVuY3Rpb24nO1xuXG4gICAgICAgIHRoaXMuZmluYWxNYXBEaXNwYXRjaFRvUHJvcHMgPSBpc0ZhY3RvcnkgPyBtYXBwZWREaXNwYXRjaCA6IG1hcERpc3BhdGNoO1xuICAgICAgICB0aGlzLmRvRGlzcGF0Y2hQcm9wc0RlcGVuZE9uT3duUHJvcHMgPSB0aGlzLmZpbmFsTWFwRGlzcGF0Y2hUb1Byb3BzLmxlbmd0aCAhPT0gMTtcblxuICAgICAgICBpZiAoaXNGYWN0b3J5KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZURpc3BhdGNoUHJvcHMoc3RvcmUsIHByb3BzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgY2hlY2tTdGF0ZVNoYXBlKG1hcHBlZERpc3BhdGNoLCAnbWFwRGlzcGF0Y2hUb1Byb3BzJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1hcHBlZERpc3BhdGNoO1xuICAgICAgfTtcblxuICAgICAgQ29ubmVjdC5wcm90b3R5cGUudXBkYXRlU3RhdGVQcm9wc0lmTmVlZGVkID0gZnVuY3Rpb24gdXBkYXRlU3RhdGVQcm9wc0lmTmVlZGVkKCkge1xuICAgICAgICB2YXIgbmV4dFN0YXRlUHJvcHMgPSB0aGlzLmNvbXB1dGVTdGF0ZVByb3BzKHRoaXMuc3RvcmUsIHRoaXMucHJvcHMpO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZVByb3BzICYmICgwLCBfc2hhbGxvd0VxdWFsMltcImRlZmF1bHRcIl0pKG5leHRTdGF0ZVByb3BzLCB0aGlzLnN0YXRlUHJvcHMpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdGF0ZVByb3BzID0gbmV4dFN0YXRlUHJvcHM7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcblxuICAgICAgQ29ubmVjdC5wcm90b3R5cGUudXBkYXRlRGlzcGF0Y2hQcm9wc0lmTmVlZGVkID0gZnVuY3Rpb24gdXBkYXRlRGlzcGF0Y2hQcm9wc0lmTmVlZGVkKCkge1xuICAgICAgICB2YXIgbmV4dERpc3BhdGNoUHJvcHMgPSB0aGlzLmNvbXB1dGVEaXNwYXRjaFByb3BzKHRoaXMuc3RvcmUsIHRoaXMucHJvcHMpO1xuICAgICAgICBpZiAodGhpcy5kaXNwYXRjaFByb3BzICYmICgwLCBfc2hhbGxvd0VxdWFsMltcImRlZmF1bHRcIl0pKG5leHREaXNwYXRjaFByb3BzLCB0aGlzLmRpc3BhdGNoUHJvcHMpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNwYXRjaFByb3BzID0gbmV4dERpc3BhdGNoUHJvcHM7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfTtcblxuICAgICAgQ29ubmVjdC5wcm90b3R5cGUudXBkYXRlTWVyZ2VkUHJvcHNJZk5lZWRlZCA9IGZ1bmN0aW9uIHVwZGF0ZU1lcmdlZFByb3BzSWZOZWVkZWQoKSB7XG4gICAgICAgIHZhciBuZXh0TWVyZ2VkUHJvcHMgPSBjb21wdXRlTWVyZ2VkUHJvcHModGhpcy5zdGF0ZVByb3BzLCB0aGlzLmRpc3BhdGNoUHJvcHMsIHRoaXMucHJvcHMpO1xuICAgICAgICBpZiAodGhpcy5tZXJnZWRQcm9wcyAmJiBjaGVja01lcmdlZEVxdWFscyAmJiAoMCwgX3NoYWxsb3dFcXVhbDJbXCJkZWZhdWx0XCJdKShuZXh0TWVyZ2VkUHJvcHMsIHRoaXMubWVyZ2VkUHJvcHMpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tZXJnZWRQcm9wcyA9IG5leHRNZXJnZWRQcm9wcztcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS5pc1N1YnNjcmliZWQgPSBmdW5jdGlvbiBpc1N1YnNjcmliZWQoKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy51bnN1YnNjcmliZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICAgIH07XG5cbiAgICAgIENvbm5lY3QucHJvdG90eXBlLnRyeVN1YnNjcmliZSA9IGZ1bmN0aW9uIHRyeVN1YnNjcmliZSgpIHtcbiAgICAgICAgaWYgKHNob3VsZFN1YnNjcmliZSAmJiAhdGhpcy51bnN1YnNjcmliZSkge1xuICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUgPSB0aGlzLnN0b3JlLnN1YnNjcmliZSh0aGlzLmhhbmRsZUNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS50cnlVbnN1YnNjcmliZSA9IGZ1bmN0aW9uIHRyeVVuc3Vic2NyaWJlKCkge1xuICAgICAgICBpZiAodGhpcy51bnN1YnNjcmliZSkge1xuICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgQ29ubmVjdC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgICAgdGhpcy50cnlTdWJzY3JpYmUoKTtcbiAgICAgIH07XG5cbiAgICAgIENvbm5lY3QucHJvdG90eXBlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcykge1xuICAgICAgICBpZiAoIXB1cmUgfHwgISgwLCBfc2hhbGxvd0VxdWFsMltcImRlZmF1bHRcIl0pKG5leHRQcm9wcywgdGhpcy5wcm9wcykpIHtcbiAgICAgICAgICB0aGlzLmhhdmVPd25Qcm9wc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICB0aGlzLnRyeVVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuY2xlYXJDYWNoZSgpO1xuICAgICAgfTtcblxuICAgICAgQ29ubmVjdC5wcm90b3R5cGUuY2xlYXJDYWNoZSA9IGZ1bmN0aW9uIGNsZWFyQ2FjaGUoKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hQcm9wcyA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RhdGVQcm9wcyA9IG51bGw7XG4gICAgICAgIHRoaXMubWVyZ2VkUHJvcHMgPSBudWxsO1xuICAgICAgICB0aGlzLmhhdmVPd25Qcm9wc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmhhc1N0b3JlU3RhdGVDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oYXZlU3RhdGVQcm9wc0JlZW5QcmVjYWxjdWxhdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGVQcm9wc1ByZWNhbGN1bGF0aW9uRXJyb3IgPSBudWxsO1xuICAgICAgICB0aGlzLnJlbmRlcmVkRWxlbWVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuZmluYWxNYXBEaXNwYXRjaFRvUHJvcHMgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbmFsTWFwU3RhdGVUb1Byb3BzID0gbnVsbDtcbiAgICAgIH07XG5cbiAgICAgIENvbm5lY3QucHJvdG90eXBlLmhhbmRsZUNoYW5nZSA9IGZ1bmN0aW9uIGhhbmRsZUNoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN0b3JlU3RhdGUgPSB0aGlzLnN0b3JlLmdldFN0YXRlKCk7XG4gICAgICAgIHZhciBwcmV2U3RvcmVTdGF0ZSA9IHRoaXMuc3RhdGUuc3RvcmVTdGF0ZTtcbiAgICAgICAgaWYgKHB1cmUgJiYgcHJldlN0b3JlU3RhdGUgPT09IHN0b3JlU3RhdGUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHVyZSAmJiAhdGhpcy5kb1N0YXRlUHJvcHNEZXBlbmRPbk93blByb3BzKSB7XG4gICAgICAgICAgdmFyIGhhdmVTdGF0ZVByb3BzQ2hhbmdlZCA9IHRyeUNhdGNoKHRoaXMudXBkYXRlU3RhdGVQcm9wc0lmTmVlZGVkLCB0aGlzKTtcbiAgICAgICAgICBpZiAoIWhhdmVTdGF0ZVByb3BzQ2hhbmdlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaGF2ZVN0YXRlUHJvcHNDaGFuZ2VkID09PSBlcnJvck9iamVjdCkge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVByb3BzUHJlY2FsY3VsYXRpb25FcnJvciA9IGVycm9yT2JqZWN0LnZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmhhdmVTdGF0ZVByb3BzQmVlblByZWNhbGN1bGF0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oYXNTdG9yZVN0YXRlQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzdG9yZVN0YXRlOiBzdG9yZVN0YXRlIH0pO1xuICAgICAgfTtcblxuICAgICAgQ29ubmVjdC5wcm90b3R5cGUuZ2V0V3JhcHBlZEluc3RhbmNlID0gZnVuY3Rpb24gZ2V0V3JhcHBlZEluc3RhbmNlKCkge1xuICAgICAgICAoMCwgX2ludmFyaWFudDJbXCJkZWZhdWx0XCJdKSh3aXRoUmVmLCAnVG8gYWNjZXNzIHRoZSB3cmFwcGVkIGluc3RhbmNlLCB5b3UgbmVlZCB0byBzcGVjaWZ5ICcgKyAneyB3aXRoUmVmOiB0cnVlIH0gYXMgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiB0aGUgY29ubmVjdCgpIGNhbGwuJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVmcy53cmFwcGVkSW5zdGFuY2U7XG4gICAgICB9O1xuXG4gICAgICBDb25uZWN0LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgIHZhciBoYXZlT3duUHJvcHNDaGFuZ2VkID0gdGhpcy5oYXZlT3duUHJvcHNDaGFuZ2VkLFxuICAgICAgICAgICAgaGFzU3RvcmVTdGF0ZUNoYW5nZWQgPSB0aGlzLmhhc1N0b3JlU3RhdGVDaGFuZ2VkLFxuICAgICAgICAgICAgaGF2ZVN0YXRlUHJvcHNCZWVuUHJlY2FsY3VsYXRlZCA9IHRoaXMuaGF2ZVN0YXRlUHJvcHNCZWVuUHJlY2FsY3VsYXRlZCxcbiAgICAgICAgICAgIHN0YXRlUHJvcHNQcmVjYWxjdWxhdGlvbkVycm9yID0gdGhpcy5zdGF0ZVByb3BzUHJlY2FsY3VsYXRpb25FcnJvcixcbiAgICAgICAgICAgIHJlbmRlcmVkRWxlbWVudCA9IHRoaXMucmVuZGVyZWRFbGVtZW50O1xuXG5cbiAgICAgICAgdGhpcy5oYXZlT3duUHJvcHNDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGFzU3RvcmVTdGF0ZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXZlU3RhdGVQcm9wc0JlZW5QcmVjYWxjdWxhdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RhdGVQcm9wc1ByZWNhbGN1bGF0aW9uRXJyb3IgPSBudWxsO1xuXG4gICAgICAgIGlmIChzdGF0ZVByb3BzUHJlY2FsY3VsYXRpb25FcnJvcikge1xuICAgICAgICAgIHRocm93IHN0YXRlUHJvcHNQcmVjYWxjdWxhdGlvbkVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNob3VsZFVwZGF0ZVN0YXRlUHJvcHMgPSB0cnVlO1xuICAgICAgICB2YXIgc2hvdWxkVXBkYXRlRGlzcGF0Y2hQcm9wcyA9IHRydWU7XG4gICAgICAgIGlmIChwdXJlICYmIHJlbmRlcmVkRWxlbWVudCkge1xuICAgICAgICAgIHNob3VsZFVwZGF0ZVN0YXRlUHJvcHMgPSBoYXNTdG9yZVN0YXRlQ2hhbmdlZCB8fCBoYXZlT3duUHJvcHNDaGFuZ2VkICYmIHRoaXMuZG9TdGF0ZVByb3BzRGVwZW5kT25Pd25Qcm9wcztcbiAgICAgICAgICBzaG91bGRVcGRhdGVEaXNwYXRjaFByb3BzID0gaGF2ZU93blByb3BzQ2hhbmdlZCAmJiB0aGlzLmRvRGlzcGF0Y2hQcm9wc0RlcGVuZE9uT3duUHJvcHM7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaGF2ZVN0YXRlUHJvcHNDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHZhciBoYXZlRGlzcGF0Y2hQcm9wc0NoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGhhdmVTdGF0ZVByb3BzQmVlblByZWNhbGN1bGF0ZWQpIHtcbiAgICAgICAgICBoYXZlU3RhdGVQcm9wc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHNob3VsZFVwZGF0ZVN0YXRlUHJvcHMpIHtcbiAgICAgICAgICBoYXZlU3RhdGVQcm9wc0NoYW5nZWQgPSB0aGlzLnVwZGF0ZVN0YXRlUHJvcHNJZk5lZWRlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRVcGRhdGVEaXNwYXRjaFByb3BzKSB7XG4gICAgICAgICAgaGF2ZURpc3BhdGNoUHJvcHNDaGFuZ2VkID0gdGhpcy51cGRhdGVEaXNwYXRjaFByb3BzSWZOZWVkZWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBoYXZlTWVyZ2VkUHJvcHNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGhhdmVTdGF0ZVByb3BzQ2hhbmdlZCB8fCBoYXZlRGlzcGF0Y2hQcm9wc0NoYW5nZWQgfHwgaGF2ZU93blByb3BzQ2hhbmdlZCkge1xuICAgICAgICAgIGhhdmVNZXJnZWRQcm9wc0NoYW5nZWQgPSB0aGlzLnVwZGF0ZU1lcmdlZFByb3BzSWZOZWVkZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYXZlTWVyZ2VkUHJvcHNDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhhdmVNZXJnZWRQcm9wc0NoYW5nZWQgJiYgcmVuZGVyZWRFbGVtZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHJlbmRlcmVkRWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3aXRoUmVmKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlZEVsZW1lbnQgPSAoMCwgX3JlYWN0LmNyZWF0ZUVsZW1lbnQpKFdyYXBwZWRDb21wb25lbnQsIF9leHRlbmRzKHt9LCB0aGlzLm1lcmdlZFByb3BzLCB7XG4gICAgICAgICAgICByZWY6ICd3cmFwcGVkSW5zdGFuY2UnXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmVuZGVyZWRFbGVtZW50ID0gKDAsIF9yZWFjdC5jcmVhdGVFbGVtZW50KShXcmFwcGVkQ29tcG9uZW50LCB0aGlzLm1lcmdlZFByb3BzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVkRWxlbWVudDtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBDb25uZWN0O1xuICAgIH0oX3JlYWN0LkNvbXBvbmVudCk7XG5cbiAgICBDb25uZWN0LmRpc3BsYXlOYW1lID0gY29ubmVjdERpc3BsYXlOYW1lO1xuICAgIENvbm5lY3QuV3JhcHBlZENvbXBvbmVudCA9IFdyYXBwZWRDb21wb25lbnQ7XG4gICAgQ29ubmVjdC5jb250ZXh0VHlwZXMgPSB7XG4gICAgICBzdG9yZTogX3N0b3JlU2hhcGUyW1wiZGVmYXVsdFwiXVxuICAgIH07XG4gICAgQ29ubmVjdC5wcm9wVHlwZXMgPSB7XG4gICAgICBzdG9yZTogX3N0b3JlU2hhcGUyW1wiZGVmYXVsdFwiXVxuICAgIH07XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgQ29ubmVjdC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVwZGF0ZSA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVcGRhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnZlcnNpb24gPT09IHZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBhcmUgaG90IHJlbG9hZGluZyFcbiAgICAgICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICAgICAgdGhpcy50cnlTdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5jbGVhckNhY2hlKCk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiAoMCwgX2hvaXN0Tm9uUmVhY3RTdGF0aWNzMltcImRlZmF1bHRcIl0pKENvbm5lY3QsIFdyYXBwZWRDb21wb25lbnQpO1xuICB9O1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJlZHV4L2xpYi9jb21wb25lbnRzL2Nvbm5lY3QuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 185 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvdXRpbHMvc2hhbGxvd0VxdWFsLmpzP2E3MTMiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJzaGFsbG93RXF1YWwiLCJvYmpBIiwib2JqQiIsImtleXNBIiwiT2JqZWN0Iiwia2V5cyIsImtleXNCIiwibGVuZ3RoIiwiaGFzT3duIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJpIiwiY2FsbCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7QUFDQUQsUUFBUSxTQUFSLElBQXFCRSxZQUFyQjtBQUNBLFNBQVNBLFlBQVQsQ0FBc0JDLElBQXRCLEVBQTRCQyxJQUE1QixFQUFrQztBQUNoQyxNQUFJRCxTQUFTQyxJQUFiLEVBQW1CO0FBQ2pCLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQUlDLFFBQVFDLE9BQU9DLElBQVAsQ0FBWUosSUFBWixDQUFaO0FBQ0EsTUFBSUssUUFBUUYsT0FBT0MsSUFBUCxDQUFZSCxJQUFaLENBQVo7O0FBRUEsTUFBSUMsTUFBTUksTUFBTixLQUFpQkQsTUFBTUMsTUFBM0IsRUFBbUM7QUFDakMsV0FBTyxLQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxNQUFJQyxTQUFTSixPQUFPSyxTQUFQLENBQWlCQyxjQUE5QjtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJUixNQUFNSSxNQUExQixFQUFrQ0ksR0FBbEMsRUFBdUM7QUFDckMsUUFBSSxDQUFDSCxPQUFPSSxJQUFQLENBQVlWLElBQVosRUFBa0JDLE1BQU1RLENBQU4sQ0FBbEIsQ0FBRCxJQUFnQ1YsS0FBS0UsTUFBTVEsQ0FBTixDQUFMLE1BQW1CVCxLQUFLQyxNQUFNUSxDQUFOLENBQUwsQ0FBdkQsRUFBdUU7QUFDckUsYUFBTyxLQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPLElBQVA7QUFDRCIsImZpbGUiOiIxODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gc2hhbGxvd0VxdWFsO1xuZnVuY3Rpb24gc2hhbGxvd0VxdWFsKG9iakEsIG9iakIpIHtcbiAgaWYgKG9iakEgPT09IG9iakIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKG9iakEpO1xuICB2YXIga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcblxuICBpZiAoa2V5c0EubGVuZ3RoICE9PSBrZXlzQi5sZW5ndGgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBUZXN0IGZvciBBJ3Mga2V5cyBkaWZmZXJlbnQgZnJvbSBCLlxuICB2YXIgaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzQS5sZW5ndGg7IGkrKykge1xuICAgIGlmICghaGFzT3duLmNhbGwob2JqQiwga2V5c0FbaV0pIHx8IG9iakFba2V5c0FbaV1dICE9PSBvYmpCW2tleXNBW2ldXSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJlZHV4L2xpYi91dGlscy9zaGFsbG93RXF1YWwuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 186 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = __webpack_require__(159);\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yZWR1eC9saWIvdXRpbHMvd3JhcEFjdGlvbkNyZWF0b3JzLmpzPzRiMTEiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJ3cmFwQWN0aW9uQ3JlYXRvcnMiLCJfcmVkdXgiLCJyZXF1aXJlIiwiYWN0aW9uQ3JlYXRvcnMiLCJkaXNwYXRjaCIsImJpbmRBY3Rpb25DcmVhdG9ycyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7QUFDQUQsUUFBUSxTQUFSLElBQXFCRSxrQkFBckI7O0FBRUEsSUFBSUMsU0FBUyxtQkFBQUMsQ0FBUSxHQUFSLENBQWI7O0FBRUEsU0FBU0Ysa0JBQVQsQ0FBNEJHLGNBQTVCLEVBQTRDO0FBQzFDLFNBQU8sVUFBVUMsUUFBVixFQUFvQjtBQUN6QixXQUFPLENBQUMsR0FBR0gsT0FBT0ksa0JBQVgsRUFBK0JGLGNBQS9CLEVBQStDQyxRQUEvQyxDQUFQO0FBQ0QsR0FGRDtBQUdEIiwiZmlsZSI6IjE4Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gd3JhcEFjdGlvbkNyZWF0b3JzO1xuXG52YXIgX3JlZHV4ID0gcmVxdWlyZSgncmVkdXgnKTtcblxuZnVuY3Rpb24gd3JhcEFjdGlvbkNyZWF0b3JzKGFjdGlvbkNyZWF0b3JzKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoZGlzcGF0Y2gpIHtcbiAgICByZXR1cm4gKDAsIF9yZWR1eC5iaW5kQWN0aW9uQ3JlYXRvcnMpKGFjdGlvbkNyZWF0b3JzLCBkaXNwYXRjaCk7XG4gIH07XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3QtcmVkdXgvbGliL3V0aWxzL3dyYXBBY3Rpb25DcmVhdG9ycy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 187 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {}\n }\n }\n }\n\n return targetComponent;\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9ob2lzdC1ub24tcmVhY3Qtc3RhdGljcy9pbmRleC5qcz8yNTE5Il0sIm5hbWVzIjpbIlJFQUNUX1NUQVRJQ1MiLCJjaGlsZENvbnRleHRUeXBlcyIsImNvbnRleHRUeXBlcyIsImRlZmF1bHRQcm9wcyIsImRpc3BsYXlOYW1lIiwiZ2V0RGVmYXVsdFByb3BzIiwibWl4aW5zIiwicHJvcFR5cGVzIiwidHlwZSIsIktOT1dOX1NUQVRJQ1MiLCJuYW1lIiwibGVuZ3RoIiwicHJvdG90eXBlIiwiY2FsbGVyIiwiYXJndW1lbnRzIiwiYXJpdHkiLCJpc0dldE93blByb3BlcnR5U3ltYm9sc0F2YWlsYWJsZSIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm1vZHVsZSIsImV4cG9ydHMiLCJob2lzdE5vblJlYWN0U3RhdGljcyIsInRhcmdldENvbXBvbmVudCIsInNvdXJjZUNvbXBvbmVudCIsImN1c3RvbVN0YXRpY3MiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImNvbmNhdCIsImkiLCJlcnJvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQTs7QUFFQSxJQUFJQSxnQkFBZ0I7QUFDaEJDLHVCQUFtQixJQURIO0FBRWhCQyxrQkFBYyxJQUZFO0FBR2hCQyxrQkFBYyxJQUhFO0FBSWhCQyxpQkFBYSxJQUpHO0FBS2hCQyxxQkFBaUIsSUFMRDtBQU1oQkMsWUFBUSxJQU5RO0FBT2hCQyxlQUFXLElBUEs7QUFRaEJDLFVBQU07QUFSVSxDQUFwQjs7QUFXQSxJQUFJQyxnQkFBZ0I7QUFDaEJDLFVBQU0sSUFEVTtBQUVoQkMsWUFBUSxJQUZRO0FBR2hCQyxlQUFXLElBSEs7QUFJaEJDLFlBQVEsSUFKUTtBQUtoQkMsZUFBVyxJQUxLO0FBTWhCQyxXQUFPO0FBTlMsQ0FBcEI7O0FBU0EsSUFBSUMsbUNBQW1DLE9BQU9DLE9BQU9DLHFCQUFkLEtBQXdDLFVBQS9FOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCLFNBQVNDLG9CQUFULENBQThCQyxlQUE5QixFQUErQ0MsZUFBL0MsRUFBZ0VDLGFBQWhFLEVBQStFO0FBQzVGLFFBQUksT0FBT0QsZUFBUCxLQUEyQixRQUEvQixFQUF5QztBQUFFO0FBQ3ZDLFlBQUlFLE9BQU9SLE9BQU9TLG1CQUFQLENBQTJCSCxlQUEzQixDQUFYOztBQUVBO0FBQ0EsWUFBSVAsZ0NBQUosRUFBc0M7QUFDbENTLG1CQUFPQSxLQUFLRSxNQUFMLENBQVlWLE9BQU9DLHFCQUFQLENBQTZCSyxlQUE3QixDQUFaLENBQVA7QUFDSDs7QUFFRCxhQUFLLElBQUlLLElBQUksQ0FBYixFQUFnQkEsSUFBSUgsS0FBS2QsTUFBekIsRUFBaUMsRUFBRWlCLENBQW5DLEVBQXNDO0FBQ2xDLGdCQUFJLENBQUM1QixjQUFjeUIsS0FBS0csQ0FBTCxDQUFkLENBQUQsSUFBMkIsQ0FBQ25CLGNBQWNnQixLQUFLRyxDQUFMLENBQWQsQ0FBNUIsS0FBdUQsQ0FBQ0osYUFBRCxJQUFrQixDQUFDQSxjQUFjQyxLQUFLRyxDQUFMLENBQWQsQ0FBMUUsQ0FBSixFQUF1RztBQUNuRyxvQkFBSTtBQUNBTixvQ0FBZ0JHLEtBQUtHLENBQUwsQ0FBaEIsSUFBMkJMLGdCQUFnQkUsS0FBS0csQ0FBTCxDQUFoQixDQUEzQjtBQUNILGlCQUZELENBRUUsT0FBT0MsS0FBUCxFQUFjLENBRWY7QUFDSjtBQUNKO0FBQ0o7O0FBRUQsV0FBT1AsZUFBUDtBQUNILENBckJEIiwiZmlsZSI6IjE4Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTUsIFlhaG9vISBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbid1c2Ugc3RyaWN0JztcblxudmFyIFJFQUNUX1NUQVRJQ1MgPSB7XG4gICAgY2hpbGRDb250ZXh0VHlwZXM6IHRydWUsXG4gICAgY29udGV4dFR5cGVzOiB0cnVlLFxuICAgIGRlZmF1bHRQcm9wczogdHJ1ZSxcbiAgICBkaXNwbGF5TmFtZTogdHJ1ZSxcbiAgICBnZXREZWZhdWx0UHJvcHM6IHRydWUsXG4gICAgbWl4aW5zOiB0cnVlLFxuICAgIHByb3BUeXBlczogdHJ1ZSxcbiAgICB0eXBlOiB0cnVlXG59O1xuXG52YXIgS05PV05fU1RBVElDUyA9IHtcbiAgICBuYW1lOiB0cnVlLFxuICAgIGxlbmd0aDogdHJ1ZSxcbiAgICBwcm90b3R5cGU6IHRydWUsXG4gICAgY2FsbGVyOiB0cnVlLFxuICAgIGFyZ3VtZW50czogdHJ1ZSxcbiAgICBhcml0eTogdHJ1ZVxufTtcblxudmFyIGlzR2V0T3duUHJvcGVydHlTeW1ib2xzQXZhaWxhYmxlID0gdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09ICdmdW5jdGlvbic7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaG9pc3ROb25SZWFjdFN0YXRpY3ModGFyZ2V0Q29tcG9uZW50LCBzb3VyY2VDb21wb25lbnQsIGN1c3RvbVN0YXRpY3MpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZUNvbXBvbmVudCAhPT0gJ3N0cmluZycpIHsgLy8gZG9uJ3QgaG9pc3Qgb3ZlciBzdHJpbmcgKGh0bWwpIGNvbXBvbmVudHNcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VDb21wb25lbnQpO1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChpc0dldE93blByb3BlcnR5U3ltYm9sc0F2YWlsYWJsZSkge1xuICAgICAgICAgICAga2V5cyA9IGtleXMuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoc291cmNlQ29tcG9uZW50KSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGlmICghUkVBQ1RfU1RBVElDU1trZXlzW2ldXSAmJiAhS05PV05fU1RBVElDU1trZXlzW2ldXSAmJiAoIWN1c3RvbVN0YXRpY3MgfHwgIWN1c3RvbVN0YXRpY3Nba2V5c1tpXV0pKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0Q29tcG9uZW50W2tleXNbaV1dID0gc291cmNlQ29tcG9uZW50W2tleXNbaV1dO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0Q29tcG9uZW50O1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 188 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9pbnZhcmlhbnQvYnJvd3Nlci5qcz9hOWQ4Il0sIm5hbWVzIjpbImludmFyaWFudCIsImNvbmRpdGlvbiIsImZvcm1hdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsIkVycm9yIiwiZXJyb3IiLCJhcmdzIiwiYXJnSW5kZXgiLCJyZXBsYWNlIiwibmFtZSIsImZyYW1lc1RvUG9wIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztBQVNBOztBQUVBOzs7Ozs7Ozs7OztBQVdBLElBQUlBLFlBQVksU0FBWkEsU0FBWSxDQUFTQyxTQUFULEVBQW9CQyxNQUFwQixFQUE0QkMsQ0FBNUIsRUFBK0JDLENBQS9CLEVBQWtDQyxDQUFsQyxFQUFxQ0MsQ0FBckMsRUFBd0NDLENBQXhDLEVBQTJDQyxDQUEzQyxFQUE4QztBQUM1RCxNQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDekMsUUFBSVQsV0FBV1UsU0FBZixFQUEwQjtBQUN4QixZQUFNLElBQUlDLEtBQUosQ0FBVSw4Q0FBVixDQUFOO0FBQ0Q7QUFDRjs7QUFFRCxNQUFJLENBQUNaLFNBQUwsRUFBZ0I7QUFDZCxRQUFJYSxLQUFKO0FBQ0EsUUFBSVosV0FBV1UsU0FBZixFQUEwQjtBQUN4QkUsY0FBUSxJQUFJRCxLQUFKLENBQ04sdUVBQ0EsNkRBRk0sQ0FBUjtBQUlELEtBTEQsTUFLTztBQUNMLFVBQUlFLE9BQU8sQ0FBQ1osQ0FBRCxFQUFJQyxDQUFKLEVBQU9DLENBQVAsRUFBVUMsQ0FBVixFQUFhQyxDQUFiLEVBQWdCQyxDQUFoQixDQUFYO0FBQ0EsVUFBSVEsV0FBVyxDQUFmO0FBQ0FGLGNBQVEsSUFBSUQsS0FBSixDQUNOWCxPQUFPZSxPQUFQLENBQWUsS0FBZixFQUFzQixZQUFXO0FBQUUsZUFBT0YsS0FBS0MsVUFBTCxDQUFQO0FBQTBCLE9BQTdELENBRE0sQ0FBUjtBQUdBRixZQUFNSSxJQUFOLEdBQWEscUJBQWI7QUFDRDs7QUFFREosVUFBTUssV0FBTixHQUFvQixDQUFwQixDQWhCYyxDQWdCUztBQUN2QixVQUFNTCxLQUFOO0FBQ0Q7QUFDRixDQTFCRDs7QUE0QkFNLE9BQU9DLE9BQVAsR0FBaUJyQixTQUFqQixDIiwiZmlsZSI6IjE4OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBVc2UgaW52YXJpYW50KCkgdG8gYXNzZXJ0IHN0YXRlIHdoaWNoIHlvdXIgcHJvZ3JhbSBhc3N1bWVzIHRvIGJlIHRydWUuXG4gKlxuICogUHJvdmlkZSBzcHJpbnRmLXN0eWxlIGZvcm1hdCAob25seSAlcyBpcyBzdXBwb3J0ZWQpIGFuZCBhcmd1bWVudHNcbiAqIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBicm9rZSBhbmQgd2hhdCB5b3Ugd2VyZVxuICogZXhwZWN0aW5nLlxuICpcbiAqIFRoZSBpbnZhcmlhbnQgbWVzc2FnZSB3aWxsIGJlIHN0cmlwcGVkIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgaW52YXJpYW50XG4gKiB3aWxsIHJlbWFpbiB0byBlbnN1cmUgbG9naWMgZG9lcyBub3QgZGlmZmVyIGluIHByb2R1Y3Rpb24uXG4gKi9cblxudmFyIGludmFyaWFudCA9IGZ1bmN0aW9uKGNvbmRpdGlvbiwgZm9ybWF0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudCByZXF1aXJlcyBhbiBlcnJvciBtZXNzYWdlIGFyZ3VtZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb25kaXRpb24pIHtcbiAgICB2YXIgZXJyb3I7XG4gICAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgJ01pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50ICcgK1xuICAgICAgICAnZm9yIHRoZSBmdWxsIGVycm9yIG1lc3NhZ2UgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYXJncyA9IFthLCBiLCBjLCBkLCBlLCBmXTtcbiAgICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgZm9ybWF0LnJlcGxhY2UoLyVzL2csIGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJnc1thcmdJbmRleCsrXTsgfSlcbiAgICAgICk7XG4gICAgICBlcnJvci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIH1cblxuICAgIGVycm9yLmZyYW1lc1RvUG9wID0gMTsgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCBpbnZhcmlhbnQncyBvd24gZnJhbWVcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpbnZhcmlhbnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9pbnZhcmlhbnQvYnJvd3Nlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 189 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.set = set;\nvar stateName = function stateName(suffix) {\n return 'state' + (suffix ? suffix : \"\");\n};\n\nvar get = exports.get = function get(suffix) {\n return JSON.parse(localStorage.getItem(stateName(suffix))) || undefined;\n};\n\nfunction set(state, props, suffix) {\n var toSave = {};\n props.forEach(function (p) {\n return toSave[p] = state[p];\n });\n localStorage.setItem(stateName(suffix), JSON.stringify(toSave));\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2xvY2FsU3RvcmUuanM/MDQ4NyJdLCJuYW1lcyI6WyJzZXQiLCJzdGF0ZU5hbWUiLCJzdWZmaXgiLCJnZXQiLCJKU09OIiwicGFyc2UiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwidW5kZWZpbmVkIiwic3RhdGUiLCJwcm9wcyIsInRvU2F2ZSIsImZvckVhY2giLCJwIiwic2V0SXRlbSIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFJZ0JBLEcsR0FBQUEsRztBQUpoQixJQUFJQyxZQUFZLFNBQVpBLFNBQVksQ0FBQ0MsTUFBRDtBQUFBLFNBQVksV0FBU0EsU0FBT0EsTUFBUCxHQUFjLEVBQXZCLENBQVo7QUFBQSxDQUFoQjs7QUFFTyxJQUFNQyxvQkFBTSxTQUFOQSxHQUFNLENBQUNELE1BQUQ7QUFBQSxTQUFZRSxLQUFLQyxLQUFMLENBQVdDLGFBQWFDLE9BQWIsQ0FBcUJOLFVBQVVDLE1BQVYsQ0FBckIsQ0FBWCxLQUF1RE0sU0FBbkU7QUFBQSxDQUFaOztBQUVBLFNBQVNSLEdBQVQsQ0FBY1MsS0FBZCxFQUFxQkMsS0FBckIsRUFBNEJSLE1BQTVCLEVBQW9DO0FBQ3pDLE1BQUlTLFNBQVMsRUFBYjtBQUNBRCxRQUFNRSxPQUFOLENBQWM7QUFBQSxXQUFLRCxPQUFPRSxDQUFQLElBQVlKLE1BQU1JLENBQU4sQ0FBakI7QUFBQSxHQUFkO0FBQ0FQLGVBQWFRLE9BQWIsQ0FBcUJiLFVBQVVDLE1BQVYsQ0FBckIsRUFBd0NFLEtBQUtXLFNBQUwsQ0FBZUosTUFBZixDQUF4QztBQUNEIiwiZmlsZSI6IjE4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBzdGF0ZU5hbWUgPSAoc3VmZml4KSA9PiAnc3RhdGUnKyhzdWZmaXg/c3VmZml4OlwiXCIpXG5cbmV4cG9ydCBjb25zdCBnZXQgPSAoc3VmZml4KSA9PiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0YXRlTmFtZShzdWZmaXgpKSkgfHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0IChzdGF0ZSwgcHJvcHMsIHN1ZmZpeCkge1xuICBsZXQgdG9TYXZlID0ge31cbiAgcHJvcHMuZm9yRWFjaChwID0+IHRvU2F2ZVtwXSA9IHN0YXRlW3BdKVxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShzdGF0ZU5hbWUoc3VmZml4KSwgSlNPTi5zdHJpbmdpZnkodG9TYXZlKSlcbn1cblxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL3NyYy9sb2NhbFN0b3JlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 190 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.input = input;\nexports.format = format;\nexports.show = show;\nfunction input(state, action) {\n switch (action.type) {\n case 'UPDATE_ORIGINAL_INPUT':\n return Object.assign({}, state, { original: action.data });\n case 'UPDATE_FINAL_INPUT':\n return Object.assign({}, state, { final: action.data });\n case 'RESET_INPUT':\n return { original: '', final: '' };\n default:\n return state || { original: '', final: '' };\n }\n}\n\nvar Format = exports.Format = {\n PLAINTEXT: 'PLAINTEXT',\n MARKDOWN: 'MARKDOWN'\n};\n\nfunction format(state, action) {\n switch (action.type) {\n case 'SET_PLAINTEXT_FORMAT':\n return Format.PLAINTEXT;\n case 'SET_MARKDOWN_FORMAT':\n return Format.MARKDOWN;\n default:\n return state || Format.PLAINTEXT;\n }\n}\n\nvar Show = exports.Show = {\n ORIGINAL: 'ORIGINAL',\n FINAL: 'FINAL',\n DIFFERENCE: 'DIFFERENCE'\n};\n\nfunction show(state, action) {\n switch (action.type) {\n case 'SHOW_ORIGINAL':\n return Show.ORIGINAL;\n case 'SHOW_FINAL':\n return Show.FINAL;\n case 'SHOW_DIFFERENCE':\n return Show.DIFFERENCE;\n default:\n return state || Show.DIFFERENCE;\n }\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL3JlZHVjZXJzLmpzP2E2MjYiXSwibmFtZXMiOlsiaW5wdXQiLCJmb3JtYXQiLCJzaG93Iiwic3RhdGUiLCJhY3Rpb24iLCJ0eXBlIiwiT2JqZWN0IiwiYXNzaWduIiwib3JpZ2luYWwiLCJkYXRhIiwiZmluYWwiLCJGb3JtYXQiLCJQTEFJTlRFWFQiLCJNQVJLRE9XTiIsIlNob3ciLCJPUklHSU5BTCIsIkZJTkFMIiwiRElGRkVSRU5DRSJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFFZ0JBLEssR0FBQUEsSztRQW1CQUMsTSxHQUFBQSxNO1FBaUJBQyxJLEdBQUFBLEk7QUFwQ1QsU0FBU0YsS0FBVCxDQUFnQkcsS0FBaEIsRUFBdUJDLE1BQXZCLEVBQWdDO0FBQ3JDLFVBQVFBLE9BQU9DLElBQWY7QUFDRSxTQUFLLHVCQUFMO0FBQ0UsYUFBT0MsT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JKLEtBQWxCLEVBQXlCLEVBQUNLLFVBQVNKLE9BQU9LLElBQWpCLEVBQXpCLENBQVA7QUFDRixTQUFLLG9CQUFMO0FBQ0UsYUFBT0gsT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JKLEtBQWxCLEVBQXlCLEVBQUNPLE9BQU1OLE9BQU9LLElBQWQsRUFBekIsQ0FBUDtBQUNGLFNBQUssYUFBTDtBQUNJLGFBQU8sRUFBQ0QsVUFBUyxFQUFWLEVBQWNFLE9BQU0sRUFBcEIsRUFBUDtBQUNKO0FBQ0UsYUFBT1AsU0FBUyxFQUFDSyxVQUFTLEVBQVYsRUFBY0UsT0FBTSxFQUFwQixFQUFoQjtBQVJKO0FBVUQ7O0FBRU0sSUFBTUMsMEJBQVM7QUFDcEJDLGFBQVcsV0FEUztBQUVwQkMsWUFBVTtBQUZVLENBQWY7O0FBTUEsU0FBU1osTUFBVCxDQUFpQkUsS0FBakIsRUFBd0JDLE1BQXhCLEVBQWdDO0FBQ3JDLFVBQVFBLE9BQU9DLElBQWY7QUFDRSxTQUFLLHNCQUFMO0FBQ0UsYUFBT00sT0FBT0MsU0FBZDtBQUNGLFNBQUsscUJBQUw7QUFDRSxhQUFPRCxPQUFPRSxRQUFkO0FBQ0Y7QUFDRSxhQUFPVixTQUFTUSxPQUFPQyxTQUF2QjtBQU5KO0FBUUQ7O0FBRU0sSUFBTUUsc0JBQU87QUFDbEJDLFlBQVMsVUFEUztBQUVsQkMsU0FBTSxPQUZZO0FBR2xCQyxjQUFXO0FBSE8sQ0FBYjs7QUFNQSxTQUFTZixJQUFULENBQWVDLEtBQWYsRUFBc0JDLE1BQXRCLEVBQThCO0FBQ25DLFVBQVFBLE9BQU9DLElBQWY7QUFDRSxTQUFLLGVBQUw7QUFDRSxhQUFPUyxLQUFLQyxRQUFaO0FBQ0YsU0FBSyxZQUFMO0FBQ0UsYUFBT0QsS0FBS0UsS0FBWjtBQUNGLFNBQUssaUJBQUw7QUFDRSxhQUFPRixLQUFLRyxVQUFaO0FBQ0Y7QUFDRSxhQUFPZCxTQUFTVyxLQUFLRyxVQUFyQjtBQVJKO0FBVUQiLCJmaWxlIjoiMTkwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCBmdW5jdGlvbiBpbnB1dCAoc3RhdGUsIGFjdGlvbiApIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ1VQREFURV9PUklHSU5BTF9JTlBVVCc6XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtvcmlnaW5hbDphY3Rpb24uZGF0YX0pXG4gICAgY2FzZSAnVVBEQVRFX0ZJTkFMX0lOUFVUJzpcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge2ZpbmFsOmFjdGlvbi5kYXRhfSlcbiAgICBjYXNlICdSRVNFVF9JTlBVVCc6XG4gICAgICAgIHJldHVybiB7b3JpZ2luYWw6JycsIGZpbmFsOicnfVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGUgfHwge29yaWdpbmFsOicnLCBmaW5hbDonJ31cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRm9ybWF0ID0ge1xuICBQTEFJTlRFWFQ6ICdQTEFJTlRFWFQnLFxuICBNQVJLRE9XTjogJ01BUktET1dOJ1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXQgKHN0YXRlLCBhY3Rpb24pIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ1NFVF9QTEFJTlRFWFRfRk9STUFUJzpcbiAgICAgIHJldHVybiBGb3JtYXQuUExBSU5URVhUXG4gICAgY2FzZSAnU0VUX01BUktET1dOX0ZPUk1BVCc6XG4gICAgICByZXR1cm4gRm9ybWF0Lk1BUktET1dOXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZSB8fCBGb3JtYXQuUExBSU5URVhUXG4gIH1cbn0gXG5cbmV4cG9ydCBjb25zdCBTaG93ID0ge1xuICBPUklHSU5BTDonT1JJR0lOQUwnLFxuICBGSU5BTDonRklOQUwnLFxuICBESUZGRVJFTkNFOidESUZGRVJFTkNFJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdyAoc3RhdGUsIGFjdGlvbikge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAnU0hPV19PUklHSU5BTCc6XG4gICAgICByZXR1cm4gU2hvdy5PUklHSU5BTFxuICAgIGNhc2UgJ1NIT1dfRklOQUwnOlxuICAgICAgcmV0dXJuIFNob3cuRklOQUxcbiAgICBjYXNlICdTSE9XX0RJRkZFUkVOQ0UnOlxuICAgICAgcmV0dXJuIFNob3cuRElGRkVSRU5DRVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGUgfHwgU2hvdy5ESUZGRVJFTkNFXG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9zcmMvcmVkdWNlcnMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 191 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(180);\n\nvar _actions = __webpack_require__(192);\n\nvar Actions = _interopRequireWildcard(_actions);\n\nvar _selectors = __webpack_require__(193);\n\nvar Selectors = _interopRequireWildcard(_selectors);\n\nvar _Header = __webpack_require__(196);\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _MainControls = __webpack_require__(245);\n\nvar _MainControls2 = _interopRequireDefault(_MainControls);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n input: state.input,\n safeInput: Selectors.safeInput(state)\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onChangeOriginal: function onChangeOriginal(text) {\n return dispatch(Actions.updateOriginalInput(text));\n },\n onChangeFinal: function onChangeFinal(text) {\n return dispatch(Actions.updateFinalInput(text));\n }\n };\n};\n\nvar Main = function (_React$Component) {\n _inherits(Main, _React$Component);\n\n function Main() {\n _classCallCheck(this, Main);\n\n return _possibleConstructorReturn(this, (Main.__proto__ || Object.getPrototypeOf(Main)).call(this));\n }\n\n _createClass(Main, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n 'div',\n { className: 'container' },\n _react2.default.createElement(\n 'form',\n { className: 'row' },\n _react2.default.createElement(\n 'div',\n { className: 'col-md-2 col-sm-12' },\n _react2.default.createElement(_MainControls2.default, null)\n ),\n _react2.default.createElement(\n 'div',\n { className: 'col-lg-5 col-sm-12 form-group' },\n _react2.default.createElement(\n 'label',\n { htmlFor: 'docA' },\n 'Original'\n ),\n _react2.default.createElement('textarea', { id: 'docA', value: this.props.input.original, onChange: function onChange(event) {\n return _this2.props.onChangeOriginal(event.target.value);\n }, className: 'form-control' })\n ),\n _react2.default.createElement(\n 'div',\n { className: 'col-lg-5 col-sm-12 form-group' },\n _react2.default.createElement(\n 'label',\n { htmlFor: 'docB' },\n 'Final'\n ),\n _react2.default.createElement('textarea', { id: 'docB', value: this.props.input.final, onChange: function onChange(event) {\n return _this2.props.onChangeFinal(event.target.value);\n }, className: 'form-control' })\n )\n )\n )\n );\n }\n }]);\n\n return Main;\n}(_react2.default.Component);\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Main);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvTWFpbi5qcz9lMDYzIl0sIm5hbWVzIjpbIkFjdGlvbnMiLCJTZWxlY3RvcnMiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImlucHV0Iiwic2FmZUlucHV0IiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwib25DaGFuZ2VPcmlnaW5hbCIsInRleHQiLCJkaXNwYXRjaCIsInVwZGF0ZU9yaWdpbmFsSW5wdXQiLCJvbkNoYW5nZUZpbmFsIiwidXBkYXRlRmluYWxJbnB1dCIsIk1haW4iLCJwcm9wcyIsIm9yaWdpbmFsIiwiZXZlbnQiLCJ0YXJnZXQiLCJ2YWx1ZSIsImZpbmFsIiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUNBOzs7O0FBQ0E7O0FBRUE7O0lBQVlBLE87O0FBQ1o7O0lBQVlDLFM7O0FBRVo7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQyxrQkFBa0IsU0FBbEJBLGVBQWtCLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ2xDQyxXQUFPRCxNQUFNQyxLQURxQjtBQUVsQ0MsZUFBV0osVUFBVUksU0FBVixDQUFvQkYsS0FBcEI7QUFGdUIsR0FBWjtBQUFBLENBQXhCOztBQU1BLElBQU1HLHFCQUFxQixTQUFyQkEsa0JBQXFCO0FBQUEsU0FBYTtBQUN0Q0Msc0JBQWtCLDBCQUFDQyxJQUFEO0FBQUEsYUFBVUMsU0FBU1QsUUFBUVUsbUJBQVIsQ0FBNEJGLElBQTVCLENBQVQsQ0FBVjtBQUFBLEtBRG9CO0FBRXRDRyxtQkFBZSx1QkFBQ0gsSUFBRDtBQUFBLGFBQVVDLFNBQVNULFFBQVFZLGdCQUFSLENBQXlCSixJQUF6QixDQUFULENBQVY7QUFBQTtBQUZ1QixHQUFiO0FBQUEsQ0FBM0I7O0lBTU1LLEk7OztBQUVKLGtCQUFjO0FBQUE7O0FBQUE7QUFFYjs7Ozs2QkFFUztBQUFBOztBQUNSLGFBQ0U7QUFBQTtBQUFBO0FBQ0UsNkRBREY7QUFFRTtBQUFBO0FBQUEsWUFBSyxXQUFVLFdBQWY7QUFDRTtBQUFBO0FBQUEsY0FBTSxXQUFVLEtBQWhCO0FBQ0U7QUFBQTtBQUFBLGdCQUFLLFdBQVUsb0JBQWY7QUFDRTtBQURGLGFBREY7QUFJRTtBQUFBO0FBQUEsZ0JBQUssV0FBVSwrQkFBZjtBQUNFO0FBQUE7QUFBQSxrQkFBTyxTQUFRLE1BQWY7QUFBQTtBQUFBLGVBREY7QUFFRSwwREFBVSxJQUFHLE1BQWIsRUFBb0IsT0FBTyxLQUFLQyxLQUFMLENBQVdWLEtBQVgsQ0FBaUJXLFFBQTVDLEVBQXNELFVBQVU7QUFBQSx5QkFBUyxPQUFLRCxLQUFMLENBQVdQLGdCQUFYLENBQTRCUyxNQUFNQyxNQUFOLENBQWFDLEtBQXpDLENBQVQ7QUFBQSxpQkFBaEUsRUFBMEgsV0FBVSxjQUFwSTtBQUZGLGFBSkY7QUFRRTtBQUFBO0FBQUEsZ0JBQUssV0FBVSwrQkFBZjtBQUNFO0FBQUE7QUFBQSxrQkFBTyxTQUFRLE1BQWY7QUFBQTtBQUFBLGVBREY7QUFFRSwwREFBVSxJQUFHLE1BQWIsRUFBb0IsT0FBTyxLQUFLSixLQUFMLENBQVdWLEtBQVgsQ0FBaUJlLEtBQTVDLEVBQW1ELFVBQVU7QUFBQSx5QkFBUyxPQUFLTCxLQUFMLENBQVdILGFBQVgsQ0FBeUJLLE1BQU1DLE1BQU4sQ0FBYUMsS0FBdEMsQ0FBVDtBQUFBLGlCQUE3RCxFQUFvSCxXQUFVLGNBQTlIO0FBRkY7QUFSRjtBQURGO0FBRkYsT0FERjtBQW9CRDs7OztFQTNCZ0IsZ0JBQU1FLFM7O2tCQThCVix5QkFBUWxCLGVBQVIsRUFBeUJJLGtCQUF6QixFQUE2Q08sSUFBN0MsQyIsImZpbGUiOiIxOTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnXG5cbmltcG9ydCAqIGFzIEFjdGlvbnMgZnJvbSAnLi4vYWN0aW9ucydcbmltcG9ydCAqIGFzIFNlbGVjdG9ycyBmcm9tICcuLi9zZWxlY3RvcnMnXG5cbmltcG9ydCBIZWFkZXIgZnJvbSAnLi9IZWFkZXInXG5pbXBvcnQgTWFpbkNvbnRyb2xzIGZyb20gJy4vTWFpbkNvbnRyb2xzJ1xuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIGlucHV0OiBzdGF0ZS5pbnB1dCxcbiAgc2FmZUlucHV0OiBTZWxlY3RvcnMuc2FmZUlucHV0KHN0YXRlKSxcbn0pXG5cbiAgXG5jb25zdCBtYXBEaXNwYXRjaFRvUHJvcHMgPSBkaXNwYXRjaCA9PiAoe1xuICBvbkNoYW5nZU9yaWdpbmFsOiAodGV4dCkgPT4gZGlzcGF0Y2goQWN0aW9ucy51cGRhdGVPcmlnaW5hbElucHV0KHRleHQpKSxcbiAgb25DaGFuZ2VGaW5hbDogKHRleHQpID0+IGRpc3BhdGNoKEFjdGlvbnMudXBkYXRlRmluYWxJbnB1dCh0ZXh0KSksXG59KVxuXG5cbmNsYXNzIE1haW4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgcmVuZGVyICgpIHsgXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxIZWFkZXIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtMiBjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgPE1haW5Db250cm9scy8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLWxnLTUgY29sLXNtLTEyIGZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJkb2NBXCI+T3JpZ2luYWw8L2xhYmVsPlxuICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJkb2NBXCIgdmFsdWU9e3RoaXMucHJvcHMuaW5wdXQub3JpZ2luYWx9IG9uQ2hhbmdlPXtldmVudCA9PiB0aGlzLnByb3BzLm9uQ2hhbmdlT3JpZ2luYWwoZXZlbnQudGFyZ2V0LnZhbHVlKX0gY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbGctNSBjb2wtc20tMTIgZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImRvY0JcIj5GaW5hbDwvbGFiZWw+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD1cImRvY0JcIiB2YWx1ZT17dGhpcy5wcm9wcy5pbnB1dC5maW5hbH0gb25DaGFuZ2U9e2V2ZW50ID0+IHRoaXMucHJvcHMub25DaGFuZ2VGaW5hbChldmVudC50YXJnZXQudmFsdWUpfSBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfSBcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29ubmVjdChtYXBTdGF0ZVRvUHJvcHMsIG1hcERpc3BhdGNoVG9Qcm9wcykoTWFpbilcblxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL3NyYy9jb21wb25lbnRzL01haW4uanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 192 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar resetInput = exports.resetInput = function resetInput() {\n return { type: 'RESET_INPUT' };\n};\nvar updateOriginalInput = exports.updateOriginalInput = function updateOriginalInput(text) {\n return { type: 'UPDATE_ORIGINAL_INPUT', data: text };\n};\nvar updateFinalInput = exports.updateFinalInput = function updateFinalInput(text) {\n return { type: 'UPDATE_FINAL_INPUT', data: text };\n};\nvar setPlaintextFormat = exports.setPlaintextFormat = function setPlaintextFormat() {\n return { type: 'SET_PLAINTEXT_FORMAT' };\n};\nvar setMarkdownFormat = exports.setMarkdownFormat = function setMarkdownFormat() {\n return { type: 'SET_MARKDOWN_FORMAT' };\n};\nvar showOriginal = exports.showOriginal = function showOriginal() {\n return { type: 'SHOW_ORIGINAL' };\n};\nvar showFinal = exports.showFinal = function showFinal() {\n return { type: 'SHOW_FINAL' };\n};\nvar showDifference = exports.showDifference = function showDifference() {\n return { type: 'SHOW_DIFFERENCE' };\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2FjdGlvbnMuanM/NDUyYyJdLCJuYW1lcyI6WyJyZXNldElucHV0IiwidHlwZSIsInVwZGF0ZU9yaWdpbmFsSW5wdXQiLCJ0ZXh0IiwiZGF0YSIsInVwZGF0ZUZpbmFsSW5wdXQiLCJzZXRQbGFpbnRleHRGb3JtYXQiLCJzZXRNYXJrZG93bkZvcm1hdCIsInNob3dPcmlnaW5hbCIsInNob3dGaW5hbCIsInNob3dEaWZmZXJlbmNlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUNPLElBQU1BLGtDQUFhLFNBQWJBLFVBQWE7QUFBQSxTQUFPLEVBQUVDLE1BQU0sYUFBUixFQUFQO0FBQUEsQ0FBbkI7QUFDQSxJQUFNQyxvREFBc0IsU0FBdEJBLG1CQUFzQixDQUFDQyxJQUFEO0FBQUEsU0FBVyxFQUFFRixNQUFNLHVCQUFSLEVBQWlDRyxNQUFLRCxJQUF0QyxFQUFYO0FBQUEsQ0FBNUI7QUFDQSxJQUFNRSw4Q0FBbUIsU0FBbkJBLGdCQUFtQixDQUFDRixJQUFEO0FBQUEsU0FBVyxFQUFFRixNQUFNLG9CQUFSLEVBQThCRyxNQUFLRCxJQUFuQyxFQUFYO0FBQUEsQ0FBekI7QUFDQSxJQUFNRyxrREFBcUIsU0FBckJBLGtCQUFxQjtBQUFBLFNBQU8sRUFBRUwsTUFBTSxzQkFBUixFQUFQO0FBQUEsQ0FBM0I7QUFDQSxJQUFNTSxnREFBb0IsU0FBcEJBLGlCQUFvQjtBQUFBLFNBQU8sRUFBRU4sTUFBTSxxQkFBUixFQUFQO0FBQUEsQ0FBMUI7QUFDQSxJQUFNTyxzQ0FBZSxTQUFmQSxZQUFlO0FBQUEsU0FBTyxFQUFFUCxNQUFNLGVBQVIsRUFBUDtBQUFBLENBQXJCO0FBQ0EsSUFBTVEsZ0NBQVksU0FBWkEsU0FBWTtBQUFBLFNBQU8sRUFBRVIsTUFBTSxZQUFSLEVBQVA7QUFBQSxDQUFsQjtBQUNBLElBQU1TLDBDQUFpQixTQUFqQkEsY0FBaUI7QUFBQSxTQUFPLEVBQUVULE1BQU0saUJBQVIsRUFBUDtBQUFBLENBQXZCIiwiZmlsZSI6IjE5Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNvbnN0IHJlc2V0SW5wdXQgPSAoKSA9PiAoeyB0eXBlOiAnUkVTRVRfSU5QVVQnIH0pXG5leHBvcnQgY29uc3QgdXBkYXRlT3JpZ2luYWxJbnB1dCA9ICh0ZXh0KSA9PiAoeyB0eXBlOiAnVVBEQVRFX09SSUdJTkFMX0lOUFVUJywgZGF0YTp0ZXh0fSlcbmV4cG9ydCBjb25zdCB1cGRhdGVGaW5hbElucHV0ID0gKHRleHQpID0+ICh7IHR5cGU6ICdVUERBVEVfRklOQUxfSU5QVVQnLCBkYXRhOnRleHR9KVxuZXhwb3J0IGNvbnN0IHNldFBsYWludGV4dEZvcm1hdCA9ICgpID0+ICh7IHR5cGU6ICdTRVRfUExBSU5URVhUX0ZPUk1BVCd9KVxuZXhwb3J0IGNvbnN0IHNldE1hcmtkb3duRm9ybWF0ID0gKCkgPT4gKHsgdHlwZTogJ1NFVF9NQVJLRE9XTl9GT1JNQVQnfSlcbmV4cG9ydCBjb25zdCBzaG93T3JpZ2luYWwgPSAoKSA9PiAoeyB0eXBlOiAnU0hPV19PUklHSU5BTCd9KVxuZXhwb3J0IGNvbnN0IHNob3dGaW5hbCA9ICgpID0+ICh7IHR5cGU6ICdTSE9XX0ZJTkFMJ30pXG5leHBvcnQgY29uc3Qgc2hvd0RpZmZlcmVuY2UgPSAoKSA9PiAoeyB0eXBlOiAnU0hPV19ESUZGRVJFTkNFJ30pXG4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL3NyYy9hY3Rpb25zLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 193 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.diff = exports.isShowDifference = exports.isShowFinal = exports.isShowOriginal = exports.isMarkdownFormat = exports.safeInput = undefined;\n\nvar _reselect = __webpack_require__(194);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _diff = __webpack_require__(195);\n\nvar JsDiff = _interopRequireWildcard(_diff);\n\nvar _reducers = __webpack_require__(190);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//per http://redux.js.org/docs/recipes/ComputingDerivedData.html\n\nvar input = function input(state) {\n return state.input;\n};\nvar format = function format(state) {\n return state.format;\n};\nvar show = function show(state) {\n return state.show;\n};\n\nvar safeInput = exports.safeInput = (0, _reselect.createSelector)([input], function (input) {\n //!!! sanitize the input here and return\n return input;\n});\n\nvar isMarkdownFormat = exports.isMarkdownFormat = (0, _reselect.createSelector)([format], function (format) {\n console.log(format, _reducers.Format.MARKDOWN);\n return format == _reducers.Format.MARKDOWN;\n});\n\nvar isShow = function isShow(type) {\n return (0, _reselect.createSelector)([show], function (show) {\n return show == type;\n });\n};\n\nvar isShowOriginal = exports.isShowOriginal = isShow(_reducers.Show.ORIGINAL);\nvar isShowFinal = exports.isShowFinal = isShow(_reducers.Show.FINAL);\nvar isShowDifference = exports.isShowDifference = isShow(_reducers.Show.DIFFERENCE);\n\nvar diff = exports.diff = (0, _reselect.createSelector)([format, input], function (format, input) {\n\n var diff = JsDiff.diffLines(input.original.replace(/ /g, '###\\n'), input.final.replace(/ /g, '###\\n'));\n console.log(diff, diff.map(function (_ref) {\n var added = _ref.added,\n removed = _ref.removed,\n value = _ref.value;\n return { added: added, removed: removed, value: value.replace(/###\\n/g, ' ') };\n }));\n return diff.map(function (_ref2) {\n var added = _ref2.added,\n removed = _ref2.removed,\n value = _ref2.value;\n return { added: added, removed: removed, value: value.replace(/###\\n/g, ' ') };\n }).map(function (part) {\n return part.added ? _react2.default.createElement(\n 'ins',\n null,\n part.value\n ) : part.removed ? _react2.default.createElement(\n 'del',\n null,\n part.value\n ) : _react2.default.createElement(\n 'span',\n null,\n part.value\n );\n });\n /*\n let diff = JsDiff.diffWords (input.original.replace(/ /g, ' '), input.final.replace(/ /g, ' '))\n return diff.map(({added, removed, value})=>({added, removed, value:value.replace(/ /g, ' ')})).map(part => (\n part.added ? <ins>{part.value}</ins> :\n part.removed ? <del>{part.value}</del> :\n <span>{part.value}</span> \n ))\n */\n});\n\n/*\n html diff\n ---\n\n diffHtml(parentOriginal, parentFinal) {\n create stringOriginal, stringFinal consisting of \n }\n *///# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL3NlbGVjdG9ycy5qcz8yNGMzIl0sIm5hbWVzIjpbIkpzRGlmZiIsImlucHV0Iiwic3RhdGUiLCJmb3JtYXQiLCJzaG93Iiwic2FmZUlucHV0IiwiaXNNYXJrZG93bkZvcm1hdCIsImNvbnNvbGUiLCJsb2ciLCJNQVJLRE9XTiIsImlzU2hvdyIsInR5cGUiLCJpc1Nob3dPcmlnaW5hbCIsIk9SSUdJTkFMIiwiaXNTaG93RmluYWwiLCJGSU5BTCIsImlzU2hvd0RpZmZlcmVuY2UiLCJESUZGRVJFTkNFIiwiZGlmZiIsImRpZmZMaW5lcyIsIm9yaWdpbmFsIiwicmVwbGFjZSIsImZpbmFsIiwibWFwIiwiYWRkZWQiLCJyZW1vdmVkIiwidmFsdWUiLCJwYXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7QUFFQTs7SUFBWUEsTTs7QUFFWjs7Ozs7O0FBUkE7O0FBV0EsSUFBTUMsUUFBUSxTQUFSQSxLQUFRLENBQUNDLEtBQUQ7QUFBQSxTQUFXQSxNQUFNRCxLQUFqQjtBQUFBLENBQWQ7QUFDQSxJQUFNRSxTQUFTLFNBQVRBLE1BQVMsQ0FBQ0QsS0FBRDtBQUFBLFNBQVdBLE1BQU1DLE1BQWpCO0FBQUEsQ0FBZjtBQUNBLElBQU1DLE9BQU8sU0FBUEEsSUFBTyxDQUFDRixLQUFEO0FBQUEsU0FBV0EsTUFBTUUsSUFBakI7QUFBQSxDQUFiOztBQUVPLElBQU1DLGdDQUFZLDhCQUN2QixDQUFDSixLQUFELENBRHVCLEVBRXZCLFVBQUNBLEtBQUQsRUFBVztBQUNUO0FBQ0EsU0FBT0EsS0FBUDtBQUNELENBTHNCLENBQWxCOztBQVFBLElBQU1LLDhDQUFtQiw4QkFDOUIsQ0FBQ0gsTUFBRCxDQUQ4QixFQUU5QixVQUFDQSxNQUFELEVBQVk7QUFDVkksVUFBUUMsR0FBUixDQUFZTCxNQUFaLEVBQW9CLGlCQUFPTSxRQUEzQjtBQUNBLFNBQU9OLFVBQVUsaUJBQU9NLFFBQXhCO0FBQ0QsQ0FMNkIsQ0FBekI7O0FBUVAsSUFBTUMsU0FBUyxTQUFUQSxNQUFTLENBQUNDLElBQUQ7QUFBQSxTQUFVLDhCQUN2QixDQUFDUCxJQUFELENBRHVCLEVBRXZCLFVBQUNBLElBQUQsRUFBVTtBQUNSLFdBQU9BLFFBQVFPLElBQWY7QUFDRCxHQUpzQixDQUFWO0FBQUEsQ0FBZjs7QUFPTyxJQUFNQywwQ0FBaUJGLE9BQU8sZUFBS0csUUFBWixDQUF2QjtBQUNBLElBQU1DLG9DQUFjSixPQUFPLGVBQUtLLEtBQVosQ0FBcEI7QUFDQSxJQUFNQyw4Q0FBa0JOLE9BQU8sZUFBS08sVUFBWixDQUF4Qjs7QUFHQSxJQUFNQyxzQkFBTyw4QkFDbEIsQ0FBQ2YsTUFBRCxFQUFTRixLQUFULENBRGtCLEVBRWxCLFVBQUNFLE1BQUQsRUFBU0YsS0FBVCxFQUFtQjs7QUFFakIsTUFBSWlCLE9BQU9sQixPQUFPbUIsU0FBUCxDQUFpQmxCLE1BQU1tQixRQUFOLENBQWVDLE9BQWYsQ0FBdUIsSUFBdkIsRUFBNkIsT0FBN0IsQ0FBakIsRUFBd0RwQixNQUFNcUIsS0FBTixDQUFZRCxPQUFaLENBQW9CLElBQXBCLEVBQTBCLE9BQTFCLENBQXhELENBQVg7QUFDQWQsVUFBUUMsR0FBUixDQUFZVSxJQUFaLEVBQWtCQSxLQUFLSyxHQUFMLENBQVM7QUFBQSxRQUFFQyxLQUFGLFFBQUVBLEtBQUY7QUFBQSxRQUFTQyxPQUFULFFBQVNBLE9BQVQ7QUFBQSxRQUFrQkMsS0FBbEIsUUFBa0JBLEtBQWxCO0FBQUEsV0FBNEIsRUFBQ0YsWUFBRCxFQUFRQyxnQkFBUixFQUFpQkMsT0FBTUEsTUFBTUwsT0FBTixDQUFjLFFBQWQsRUFBd0IsR0FBeEIsQ0FBdkIsRUFBNUI7QUFBQSxHQUFULENBQWxCO0FBQ0EsU0FBT0gsS0FBS0ssR0FBTCxDQUFTO0FBQUEsUUFBRUMsS0FBRixTQUFFQSxLQUFGO0FBQUEsUUFBU0MsT0FBVCxTQUFTQSxPQUFUO0FBQUEsUUFBa0JDLEtBQWxCLFNBQWtCQSxLQUFsQjtBQUFBLFdBQTRCLEVBQUNGLFlBQUQsRUFBUUMsZ0JBQVIsRUFBaUJDLE9BQU1BLE1BQU1MLE9BQU4sQ0FBYyxRQUFkLEVBQXdCLEdBQXhCLENBQXZCLEVBQTVCO0FBQUEsR0FBVCxFQUE0RkUsR0FBNUYsQ0FBZ0c7QUFBQSxXQUNyR0ksS0FBS0gsS0FBTCxHQUFhO0FBQUE7QUFBQTtBQUFNRyxXQUFLRDtBQUFYLEtBQWIsR0FDQUMsS0FBS0YsT0FBTCxHQUFlO0FBQUE7QUFBQTtBQUFNRSxXQUFLRDtBQUFYLEtBQWYsR0FDQTtBQUFBO0FBQUE7QUFBT0MsV0FBS0Q7QUFBWixLQUhxRztBQUFBLEdBQWhHLENBQVA7QUFLSjs7Ozs7Ozs7QUFRRyxDQW5CaUIsQ0FBYjs7QUFzQlAiLCJmaWxlIjoiMTkzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9wZXIgaHR0cDovL3JlZHV4LmpzLm9yZy9kb2NzL3JlY2lwZXMvQ29tcHV0aW5nRGVyaXZlZERhdGEuaHRtbFxuXG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ3Jlc2VsZWN0J1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCAqIGFzIEpzRGlmZiBmcm9tICdkaWZmJ1xuXG5pbXBvcnQge0Zvcm1hdCwgU2hvd30gZnJvbSAnLi9yZWR1Y2VycydcblxuXG5jb25zdCBpbnB1dCA9IChzdGF0ZSkgPT4gc3RhdGUuaW5wdXRcbmNvbnN0IGZvcm1hdCA9IChzdGF0ZSkgPT4gc3RhdGUuZm9ybWF0XG5jb25zdCBzaG93ID0gKHN0YXRlKSA9PiBzdGF0ZS5zaG93XG5cbmV4cG9ydCBjb25zdCBzYWZlSW5wdXQgPSBjcmVhdGVTZWxlY3RvcihcbiAgW2lucHV0XSxcbiAgKGlucHV0KSA9PiB7XG4gICAgLy8hISEgc2FuaXRpemUgdGhlIGlucHV0IGhlcmUgYW5kIHJldHVyblxuICAgIHJldHVybiBpbnB1dFxuICB9XG4pXG5cbmV4cG9ydCBjb25zdCBpc01hcmtkb3duRm9ybWF0ID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtmb3JtYXRdLFxuICAoZm9ybWF0KSA9PiB7XG4gICAgY29uc29sZS5sb2coZm9ybWF0LCBGb3JtYXQuTUFSS0RPV04pXG4gICAgcmV0dXJuIGZvcm1hdCA9PSBGb3JtYXQuTUFSS0RPV05cbiAgfVxuKVxuXG5jb25zdCBpc1Nob3cgPSAodHlwZSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gIFtzaG93XSxcbiAgKHNob3cpID0+IHtcbiAgICByZXR1cm4gc2hvdyA9PSB0eXBlXG4gIH1cbilcblxuZXhwb3J0IGNvbnN0IGlzU2hvd09yaWdpbmFsID0gaXNTaG93KFNob3cuT1JJR0lOQUwpXG5leHBvcnQgY29uc3QgaXNTaG93RmluYWwgPSBpc1Nob3coU2hvdy5GSU5BTClcbmV4cG9ydCBjb25zdCBpc1Nob3dEaWZmZXJlbmNlPSBpc1Nob3coU2hvdy5ESUZGRVJFTkNFKVxuXG5cbmV4cG9ydCBjb25zdCBkaWZmID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtmb3JtYXQsIGlucHV0XSxcbiAgKGZvcm1hdCwgaW5wdXQpID0+IHtcblxuICAgIGxldCBkaWZmID0gSnNEaWZmLmRpZmZMaW5lcyhpbnB1dC5vcmlnaW5hbC5yZXBsYWNlKC8gL2csICcjIyNcXG4nKSwgaW5wdXQuZmluYWwucmVwbGFjZSgvIC9nLCAnIyMjXFxuJykpXG4gICAgY29uc29sZS5sb2coZGlmZiwgZGlmZi5tYXAoKHthZGRlZCwgcmVtb3ZlZCwgdmFsdWV9KT0+KHthZGRlZCwgcmVtb3ZlZCwgdmFsdWU6dmFsdWUucmVwbGFjZSgvIyMjXFxuL2csICcgJyl9KSkpXG4gICAgcmV0dXJuIGRpZmYubWFwKCh7YWRkZWQsIHJlbW92ZWQsIHZhbHVlfSk9Pih7YWRkZWQsIHJlbW92ZWQsIHZhbHVlOnZhbHVlLnJlcGxhY2UoLyMjI1xcbi9nLCAnICcpfSkpLm1hcChwYXJ0ID0+IChcbiAgICAgIHBhcnQuYWRkZWQgPyA8aW5zPntwYXJ0LnZhbHVlfTwvaW5zPiA6XG4gICAgICBwYXJ0LnJlbW92ZWQgPyA8ZGVsPntwYXJ0LnZhbHVlfTwvZGVsPiA6XG4gICAgICA8c3Bhbj57cGFydC52YWx1ZX08L3NwYW4+IFxuICAgICkpXG4vKlxuICAgIGxldCBkaWZmID0gSnNEaWZmLmRpZmZXb3JkcyAoaW5wdXQub3JpZ2luYWwucmVwbGFjZSgvIC9nLCAnICcpLCBpbnB1dC5maW5hbC5yZXBsYWNlKC8gL2csICcgJykpXG4gICAgcmV0dXJuIGRpZmYubWFwKCh7YWRkZWQsIHJlbW92ZWQsIHZhbHVlfSk9Pih7YWRkZWQsIHJlbW92ZWQsIHZhbHVlOnZhbHVlLnJlcGxhY2UoLyAvZywgJyAnKX0pKS5tYXAocGFydCA9PiAoXG4gICAgICBwYXJ0LmFkZGVkID8gPGlucz57cGFydC52YWx1ZX08L2lucz4gOlxuICAgICAgcGFydC5yZW1vdmVkID8gPGRlbD57cGFydC52YWx1ZX08L2RlbD4gOlxuICAgICAgPHNwYW4+e3BhcnQudmFsdWV9PC9zcGFuPiBcbiAgICApKVxuKi8gXG4gIH1cbilcblxuLypcbiAgaHRtbCBkaWZmXG4gIC0tLVxuXG4gIGRpZmZIdG1sKHBhcmVudE9yaWdpbmFsLCBwYXJlbnRGaW5hbCkge1xuICAgIGNyZWF0ZSBzdHJpbmdPcmlnaW5hbCwgc3RyaW5nRmluYWwgY29uc2lzdGluZyBvZiBcbiAgfVxuICAqL1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9zcmMvc2VsZWN0b3JzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 194 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\nexports.defaultMemoize = defaultMemoize;\nexports.createSelectorCreator = createSelectorCreator;\nexports.createStructuredSelector = createStructuredSelector;\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction defaultEqualityCheck(a, b) {\n return a === b;\n}\n\nfunction defaultMemoize(func) {\n var equalityCheck = arguments.length <= 1 || arguments[1] === undefined ? defaultEqualityCheck : arguments[1];\n\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastArgs === null || lastArgs.length !== args.length || !args.every(function (value, index) {\n return equalityCheck(value, lastArgs[index]);\n })) {\n lastResult = func.apply(undefined, args);\n }\n lastArgs = args;\n return lastResult;\n };\n}\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'undefined' ? 'undefined' : _typeof(dep);\n }).join(', ');\n throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));\n }\n\n return dependencies;\n}\n\nfunction createSelectorCreator(memoize) {\n for (var _len2 = arguments.length, memoizeOptions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n memoizeOptions[_key2 - 1] = arguments[_key2];\n }\n\n return function () {\n for (var _len3 = arguments.length, funcs = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n funcs[_key3] = arguments[_key3];\n }\n\n var recomputations = 0;\n var resultFunc = funcs.pop();\n var dependencies = getDependencies(funcs);\n\n var memoizedResultFunc = memoize.apply(undefined, [function () {\n recomputations++;\n return resultFunc.apply(undefined, arguments);\n }].concat(memoizeOptions));\n\n var selector = function selector(state, props) {\n for (var _len4 = arguments.length, args = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {\n args[_key4 - 2] = arguments[_key4];\n }\n\n var params = dependencies.map(function (dependency) {\n return dependency.apply(undefined, [state, props].concat(args));\n });\n return memoizedResultFunc.apply(undefined, _toConsumableArray(params));\n };\n\n selector.resultFunc = resultFunc;\n selector.recomputations = function () {\n return recomputations;\n };\n selector.resetRecomputations = function () {\n return recomputations = 0;\n };\n return selector;\n };\n}\n\nvar createSelector = exports.createSelector = createSelectorCreator(defaultMemoize);\n\nfunction createStructuredSelector(selectors) {\n var selectorCreator = arguments.length <= 1 || arguments[1] === undefined ? createSelector : arguments[1];\n\n if ((typeof selectors === 'undefined' ? 'undefined' : _typeof(selectors)) !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + (typeof selectors === 'undefined' ? 'undefined' : _typeof(selectors))));\n }\n var objectKeys = Object.keys(selectors);\n return selectorCreator(objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len5 = arguments.length, values = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n values[_key5] = arguments[_key5];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZXNlbGVjdC9saWIvaW5kZXguanM/Yjc2NSJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsImRlZmF1bHRNZW1vaXplIiwiY3JlYXRlU2VsZWN0b3JDcmVhdG9yIiwiY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiaSIsImFycjIiLCJsZW5ndGgiLCJmcm9tIiwiZGVmYXVsdEVxdWFsaXR5Q2hlY2siLCJhIiwiYiIsImZ1bmMiLCJlcXVhbGl0eUNoZWNrIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwibGFzdEFyZ3MiLCJsYXN0UmVzdWx0IiwiX2xlbiIsImFyZ3MiLCJfa2V5IiwiZXZlcnkiLCJ2YWx1ZSIsImluZGV4IiwiYXBwbHkiLCJnZXREZXBlbmRlbmNpZXMiLCJmdW5jcyIsImRlcGVuZGVuY2llcyIsImRlcCIsImRlcGVuZGVuY3lUeXBlcyIsIm1hcCIsImpvaW4iLCJFcnJvciIsIm1lbW9pemUiLCJfbGVuMiIsIm1lbW9pemVPcHRpb25zIiwiX2tleTIiLCJfbGVuMyIsIl9rZXkzIiwicmVjb21wdXRhdGlvbnMiLCJyZXN1bHRGdW5jIiwicG9wIiwibWVtb2l6ZWRSZXN1bHRGdW5jIiwiY29uY2F0Iiwic2VsZWN0b3IiLCJzdGF0ZSIsInByb3BzIiwiX2xlbjQiLCJfa2V5NCIsInBhcmFtcyIsImRlcGVuZGVuY3kiLCJyZXNldFJlY29tcHV0YXRpb25zIiwiY3JlYXRlU2VsZWN0b3IiLCJzZWxlY3RvcnMiLCJzZWxlY3RvckNyZWF0b3IiLCJvYmplY3RLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImtleSIsIl9sZW41IiwidmFsdWVzIiwiX2tleTUiLCJyZWR1Y2UiLCJjb21wb3NpdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFFQUEsUUFB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LEtBQU4sQ0FBdkMsRUFBcURFLFFBQVEsQ0FBbEUsRUFBcUVBLFFBQVFGLEtBQTdFLEVBQW9GRSxPQUFwRixFQUE2RjtBQUMzRkQsYUFBT0MsS0FBUCxJQUFnQi9DLFVBQVUrQyxLQUFWLENBQWhCO0FBQ0Q7O0FBRUQsV0FBT0QsT0FBT0UsTUFBUCxDQUFjLFVBQVVDLFdBQVYsRUFBdUJ6QyxLQUF2QixFQUE4QkMsS0FBOUIsRUFBcUM7QUFDeER3QyxrQkFBWVIsV0FBV2hDLEtBQVgsQ0FBWixJQUFpQ0QsS0FBakM7QUFDQSxhQUFPeUMsV0FBUDtBQUNELEtBSE0sRUFHSixFQUhJLENBQVA7QUFJRCxHQVhNLENBQVA7QUFZRCIsImZpbGUiOiIxOTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmRlZmF1bHRNZW1vaXplID0gZGVmYXVsdE1lbW9pemU7XG5leHBvcnRzLmNyZWF0ZVNlbGVjdG9yQ3JlYXRvciA9IGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcjtcbmV4cG9ydHMuY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yID0gY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yO1xuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHsgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBBcnJheShhcnIubGVuZ3RoKTsgaSA8IGFyci5sZW5ndGg7IGkrKykgeyBhcnIyW2ldID0gYXJyW2ldOyB9IHJldHVybiBhcnIyOyB9IGVsc2UgeyByZXR1cm4gQXJyYXkuZnJvbShhcnIpOyB9IH1cblxuZnVuY3Rpb24gZGVmYXVsdEVxdWFsaXR5Q2hlY2soYSwgYikge1xuICByZXR1cm4gYSA9PT0gYjtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdE1lbW9pemUoZnVuYykge1xuICB2YXIgZXF1YWxpdHlDaGVjayA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMSB8fCBhcmd1bWVudHNbMV0gPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRFcXVhbGl0eUNoZWNrIDogYXJndW1lbnRzWzFdO1xuXG4gIHZhciBsYXN0QXJncyA9IG51bGw7XG4gIHZhciBsYXN0UmVzdWx0ID0gbnVsbDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICBpZiAobGFzdEFyZ3MgPT09IG51bGwgfHwgbGFzdEFyZ3MubGVuZ3RoICE9PSBhcmdzLmxlbmd0aCB8fCAhYXJncy5ldmVyeShmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7XG4gICAgICByZXR1cm4gZXF1YWxpdHlDaGVjayh2YWx1ZSwgbGFzdEFyZ3NbaW5kZXhdKTtcbiAgICB9KSkge1xuICAgICAgbGFzdFJlc3VsdCA9IGZ1bmMuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbiAgICB9XG4gICAgbGFzdEFyZ3MgPSBhcmdzO1xuICAgIHJldHVybiBsYXN0UmVzdWx0O1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZXBlbmRlbmNpZXMoZnVuY3MpIHtcbiAgdmFyIGRlcGVuZGVuY2llcyA9IEFycmF5LmlzQXJyYXkoZnVuY3NbMF0pID8gZnVuY3NbMF0gOiBmdW5jcztcblxuICBpZiAoIWRlcGVuZGVuY2llcy5ldmVyeShmdW5jdGlvbiAoZGVwKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBkZXAgPT09ICdmdW5jdGlvbic7XG4gIH0pKSB7XG4gICAgdmFyIGRlcGVuZGVuY3lUeXBlcyA9IGRlcGVuZGVuY2llcy5tYXAoZnVuY3Rpb24gKGRlcCkge1xuICAgICAgcmV0dXJuIHR5cGVvZiBkZXA7XG4gICAgfSkuam9pbignLCAnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdG9yIGNyZWF0b3JzIGV4cGVjdCBhbGwgaW5wdXQtc2VsZWN0b3JzIHRvIGJlIGZ1bmN0aW9ucywgJyArICgnaW5zdGVhZCByZWNlaXZlZCB0aGUgZm9sbG93aW5nIHR5cGVzOiBbJyArIGRlcGVuZGVuY3lUeXBlcyArICddJykpO1xuICB9XG5cbiAgcmV0dXJuIGRlcGVuZGVuY2llcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3JDcmVhdG9yKG1lbW9pemUpIHtcbiAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBtZW1vaXplT3B0aW9ucyA9IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICBtZW1vaXplT3B0aW9uc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgX2xlbjMgPSBhcmd1bWVudHMubGVuZ3RoLCBmdW5jcyA9IEFycmF5KF9sZW4zKSwgX2tleTMgPSAwOyBfa2V5MyA8IF9sZW4zOyBfa2V5MysrKSB7XG4gICAgICBmdW5jc1tfa2V5M10gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgIH1cblxuICAgIHZhciByZWNvbXB1dGF0aW9ucyA9IDA7XG4gICAgdmFyIHJlc3VsdEZ1bmMgPSBmdW5jcy5wb3AoKTtcbiAgICB2YXIgZGVwZW5kZW5jaWVzID0gZ2V0RGVwZW5kZW5jaWVzKGZ1bmNzKTtcblxuICAgIHZhciBtZW1vaXplZFJlc3VsdEZ1bmMgPSBtZW1vaXplLmFwcGx5KHVuZGVmaW5lZCwgW2Z1bmN0aW9uICgpIHtcbiAgICAgIHJlY29tcHV0YXRpb25zKys7XG4gICAgICByZXR1cm4gcmVzdWx0RnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3VtZW50cyk7XG4gICAgfV0uY29uY2F0KG1lbW9pemVPcHRpb25zKSk7XG5cbiAgICB2YXIgc2VsZWN0b3IgPSBmdW5jdGlvbiBzZWxlY3RvcihzdGF0ZSwgcHJvcHMpIHtcbiAgICAgIGZvciAodmFyIF9sZW40ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW40ID4gMiA/IF9sZW40IC0gMiA6IDApLCBfa2V5NCA9IDI7IF9rZXk0IDwgX2xlbjQ7IF9rZXk0KyspIHtcbiAgICAgICAgYXJnc1tfa2V5NCAtIDJdID0gYXJndW1lbnRzW19rZXk0XTtcbiAgICAgIH1cblxuICAgICAgdmFyIHBhcmFtcyA9IGRlcGVuZGVuY2llcy5tYXAoZnVuY3Rpb24gKGRlcGVuZGVuY3kpIHtcbiAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3kuYXBwbHkodW5kZWZpbmVkLCBbc3RhdGUsIHByb3BzXS5jb25jYXQoYXJncykpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbWVtb2l6ZWRSZXN1bHRGdW5jLmFwcGx5KHVuZGVmaW5lZCwgX3RvQ29uc3VtYWJsZUFycmF5KHBhcmFtcykpO1xuICAgIH07XG5cbiAgICBzZWxlY3Rvci5yZXN1bHRGdW5jID0gcmVzdWx0RnVuYztcbiAgICBzZWxlY3Rvci5yZWNvbXB1dGF0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZWNvbXB1dGF0aW9ucztcbiAgICB9O1xuICAgIHNlbGVjdG9yLnJlc2V0UmVjb21wdXRhdGlvbnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVjb21wdXRhdGlvbnMgPSAwO1xuICAgIH07XG4gICAgcmV0dXJuIHNlbGVjdG9yO1xuICB9O1xufVxuXG52YXIgY3JlYXRlU2VsZWN0b3IgPSBleHBvcnRzLmNyZWF0ZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3JDcmVhdG9yKGRlZmF1bHRNZW1vaXplKTtcblxuZnVuY3Rpb24gY3JlYXRlU3RydWN0dXJlZFNlbGVjdG9yKHNlbGVjdG9ycykge1xuICB2YXIgc2VsZWN0b3JDcmVhdG9yID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gY3JlYXRlU2VsZWN0b3IgOiBhcmd1bWVudHNbMV07XG5cbiAgaWYgKHR5cGVvZiBzZWxlY3RvcnMgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjcmVhdGVTdHJ1Y3R1cmVkU2VsZWN0b3IgZXhwZWN0cyBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBvYmplY3QgJyArICgnd2hlcmUgZWFjaCBwcm9wZXJ0eSBpcyBhIHNlbGVjdG9yLCBpbnN0ZWFkIHJlY2VpdmVkIGEgJyArIHR5cGVvZiBzZWxlY3RvcnMpKTtcbiAgfVxuICB2YXIgb2JqZWN0S2V5cyA9IE9iamVjdC5rZXlzKHNlbGVjdG9ycyk7XG4gIHJldHVybiBzZWxlY3RvckNyZWF0b3Iob2JqZWN0S2V5cy5tYXAoZnVuY3Rpb24gKGtleSkge1xuICAgIHJldHVybiBzZWxlY3RvcnNba2V5XTtcbiAgfSksIGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBfbGVuNSA9IGFyZ3VtZW50cy5sZW5ndGgsIHZhbHVlcyA9IEFycmF5KF9sZW41KSwgX2tleTUgPSAwOyBfa2V5NSA8IF9sZW41OyBfa2V5NSsrKSB7XG4gICAgICB2YWx1ZXNbX2tleTVdID0gYXJndW1lbnRzW19rZXk1XTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVzLnJlZHVjZShmdW5jdGlvbiAoY29tcG9zaXRpb24sIHZhbHVlLCBpbmRleCkge1xuICAgICAgY29tcG9zaXRpb25bb2JqZWN0S2V5c1tpbmRleF1dID0gdmFsdWU7XG4gICAgICByZXR1cm4gY29tcG9zaXRpb247XG4gICAgfSwge30pO1xuICB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZXNlbGVjdC9saWIvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 195 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined;\n/*istanbul ignore end*/\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\n/*istanbul ignore end*/\nvar /*istanbul ignore start*/_character = __webpack_require__(251) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_word = __webpack_require__(252) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_line = __webpack_require__(254) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_sentence = __webpack_require__(255) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_css = __webpack_require__(256) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_json = __webpack_require__(257) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_apply = __webpack_require__(258) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_parse = __webpack_require__(259) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_create = __webpack_require__(261) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_dmp = __webpack_require__(262) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_xml = __webpack_require__(263) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/* See LICENSE file for terms of use */\n\n/*\n * Text diff implementation.\n *\n * This library supports the following APIS:\n * JsDiff.diffChars: Character by character diff\n * JsDiff.diffWords: Word (as defined by \\b regex) diff which ignores whitespace\n * JsDiff.diffLines: Line based diff\n *\n * JsDiff.diffCss: Diff targeted at CSS content\n *\n * These methods are based on the implementation proposed in\n * \"An O(ND) Difference Algorithm and its Variations\" (Myers, 1986).\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927\n */\nexports. /*istanbul ignore end*/Diff = _base2['default'];\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQSxJLHlCQUFBLGdCLGVBQUE7Ozs7OztBQUNBLEkseUJBQUEscUIsb0JBQUE7O0FBQ0EsSSx5QkFBQSxnQixlQUFBOztBQUNBLEkseUJBQUEsZ0IsZUFBQTs7QUFDQSxJLHlCQUFBLG9CLG1CQUFBOztBQUVBLEkseUJBQUEsZSxjQUFBOztBQUNBLEkseUJBQUEsZ0IsZUFBQTs7QUFFQSxJLHlCQUFBLGlCLGlCQUFBOztBQUNBLEkseUJBQUEsaUIsaUJBQUE7O0FBQ0EsSSx5QkFBQSxrQixrQkFBQTs7QUFFQSxJLHlCQUFBLGUsaUJBQUE7O0FBQ0EsSSx5QkFBQSxlLGlCQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQ0FHRSxBO3lEQUVBLEE7eURBQ0EsQTt5REFDQSxBO3lEQUNBLEE7eURBQ0EsQTt5REFDQSxBO3lEQUVBLEE7eURBQ0EsQTt5REFFQSxBO3lEQUNBLEE7eURBQ0EsQTt5REFDQSxBO3lEQUNBLEE7eURBQ0EsQTt5REFDQSxBO3lEQUNBLEE7eURBQ0EsQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFNlZSBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zIG9mIHVzZSAqL1xuXG4vKlxuICogVGV4dCBkaWZmIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFRoaXMgbGlicmFyeSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEFQSVM6XG4gKiBKc0RpZmYuZGlmZkNoYXJzOiBDaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIGRpZmZcbiAqIEpzRGlmZi5kaWZmV29yZHM6IFdvcmQgKGFzIGRlZmluZWQgYnkgXFxiIHJlZ2V4KSBkaWZmIHdoaWNoIGlnbm9yZXMgd2hpdGVzcGFjZVxuICogSnNEaWZmLmRpZmZMaW5lczogTGluZSBiYXNlZCBkaWZmXG4gKlxuICogSnNEaWZmLmRpZmZDc3M6IERpZmYgdGFyZ2V0ZWQgYXQgQ1NTIGNvbnRlbnRcbiAqXG4gKiBUaGVzZSBtZXRob2RzIGFyZSBiYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gcHJvcG9zZWQgaW5cbiAqIFwiQW4gTyhORCkgRGlmZmVyZW5jZSBBbGdvcml0aG0gYW5kIGl0cyBWYXJpYXRpb25zXCIgKE15ZXJzLCAxOTg2KS5cbiAqIGh0dHA6Ly9jaXRlc2VlcnguaXN0LnBzdS5lZHUvdmlld2RvYy9zdW1tYXJ5P2RvaT0xMC4xLjEuNC42OTI3XG4gKi9cbmltcG9ydCBEaWZmIGZyb20gJy4vZGlmZi9iYXNlJztcbmltcG9ydCB7ZGlmZkNoYXJzfSBmcm9tICcuL2RpZmYvY2hhcmFjdGVyJztcbmltcG9ydCB7ZGlmZldvcmRzLCBkaWZmV29yZHNXaXRoU3BhY2V9IGZyb20gJy4vZGlmZi93b3JkJztcbmltcG9ydCB7ZGlmZkxpbmVzLCBkaWZmVHJpbW1lZExpbmVzfSBmcm9tICcuL2RpZmYvbGluZSc7XG5pbXBvcnQge2RpZmZTZW50ZW5jZXN9IGZyb20gJy4vZGlmZi9zZW50ZW5jZSc7XG5cbmltcG9ydCB7ZGlmZkNzc30gZnJvbSAnLi9kaWZmL2Nzcyc7XG5pbXBvcnQge2RpZmZKc29uLCBjYW5vbmljYWxpemV9IGZyb20gJy4vZGlmZi9qc29uJztcblxuaW1wb3J0IHthcHBseVBhdGNoLCBhcHBseVBhdGNoZXN9IGZyb20gJy4vcGF0Y2gvYXBwbHknO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhdGNoL3BhcnNlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgc3RydWN0dXJlZFBhdGNoLFxuICBjcmVhdGVUd29GaWxlc1BhdGNoLFxuICBjcmVhdGVQYXRjaCxcbiAgYXBwbHlQYXRjaCxcbiAgYXBwbHlQYXRjaGVzLFxuICBwYXJzZVBhdGNoLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0=//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2luZGV4LmpzP2VmYjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyIsImZpbGUiOiIxOTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jYW5vbmljYWxpemUgPSBleHBvcnRzLmNvbnZlcnRDaGFuZ2VzVG9YTUwgPSBleHBvcnRzLmNvbnZlcnRDaGFuZ2VzVG9ETVAgPSBleHBvcnRzLnBhcnNlUGF0Y2ggPSBleHBvcnRzLmFwcGx5UGF0Y2hlcyA9IGV4cG9ydHMuYXBwbHlQYXRjaCA9IGV4cG9ydHMuY3JlYXRlUGF0Y2ggPSBleHBvcnRzLmNyZWF0ZVR3b0ZpbGVzUGF0Y2ggPSBleHBvcnRzLnN0cnVjdHVyZWRQYXRjaCA9IGV4cG9ydHMuZGlmZkpzb24gPSBleHBvcnRzLmRpZmZDc3MgPSBleHBvcnRzLmRpZmZTZW50ZW5jZXMgPSBleHBvcnRzLmRpZmZUcmltbWVkTGluZXMgPSBleHBvcnRzLmRpZmZMaW5lcyA9IGV4cG9ydHMuZGlmZldvcmRzV2l0aFNwYWNlID0gZXhwb3J0cy5kaWZmV29yZHMgPSBleHBvcnRzLmRpZmZDaGFycyA9IGV4cG9ydHMuRGlmZiA9IHVuZGVmaW5lZDtcbi8qaXN0YW5idWwgaWdub3JlIGVuZCovXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19iYXNlID0gcmVxdWlyZSgnLi9kaWZmL2Jhc2UnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xudmFyIF9iYXNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Jhc2UpO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBlbmQqL1xudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fY2hhcmFjdGVyID0gcmVxdWlyZSgnLi9kaWZmL2NoYXJhY3RlcicpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL193b3JkID0gcmVxdWlyZSgnLi9kaWZmL3dvcmQnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fbGluZSA9IHJlcXVpcmUoJy4vZGlmZi9saW5lJykgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbnZhciAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX3NlbnRlbmNlID0gcmVxdWlyZSgnLi9kaWZmL3NlbnRlbmNlJykgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbnZhciAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX2NzcyA9IHJlcXVpcmUoJy4vZGlmZi9jc3MnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fanNvbiA9IHJlcXVpcmUoJy4vZGlmZi9qc29uJykgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbnZhciAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX2FwcGx5ID0gcmVxdWlyZSgnLi9wYXRjaC9hcHBseScpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19wYXJzZSA9IHJlcXVpcmUoJy4vcGF0Y2gvcGFyc2UnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fY3JlYXRlID0gcmVxdWlyZSgnLi9wYXRjaC9jcmVhdGUnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fZG1wID0gcmVxdWlyZSgnLi9jb252ZXJ0L2RtcCcpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL194bWwgPSByZXF1aXJlKCcuL2NvbnZlcnQveG1sJykgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07XG59XG5cbi8qIFNlZSBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zIG9mIHVzZSAqL1xuXG4vKlxuICogVGV4dCBkaWZmIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFRoaXMgbGlicmFyeSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIEFQSVM6XG4gKiBKc0RpZmYuZGlmZkNoYXJzOiBDaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIGRpZmZcbiAqIEpzRGlmZi5kaWZmV29yZHM6IFdvcmQgKGFzIGRlZmluZWQgYnkgXFxiIHJlZ2V4KSBkaWZmIHdoaWNoIGlnbm9yZXMgd2hpdGVzcGFjZVxuICogSnNEaWZmLmRpZmZMaW5lczogTGluZSBiYXNlZCBkaWZmXG4gKlxuICogSnNEaWZmLmRpZmZDc3M6IERpZmYgdGFyZ2V0ZWQgYXQgQ1NTIGNvbnRlbnRcbiAqXG4gKiBUaGVzZSBtZXRob2RzIGFyZSBiYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gcHJvcG9zZWQgaW5cbiAqIFwiQW4gTyhORCkgRGlmZmVyZW5jZSBBbGdvcml0aG0gYW5kIGl0cyBWYXJpYXRpb25zXCIgKE15ZXJzLCAxOTg2KS5cbiAqIGh0dHA6Ly9jaXRlc2VlcnguaXN0LnBzdS5lZHUvdmlld2RvYy9zdW1tYXJ5P2RvaT0xMC4xLjEuNC42OTI3XG4gKi9cbmV4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovRGlmZiA9IF9iYXNlMlsnZGVmYXVsdCddO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovZGlmZkNoYXJzID0gX2NoYXJhY3Rlci5kaWZmQ2hhcnM7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmV29yZHMgPSBfd29yZC5kaWZmV29yZHM7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmV29yZHNXaXRoU3BhY2UgPSBfd29yZC5kaWZmV29yZHNXaXRoU3BhY2U7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmTGluZXMgPSBfbGluZS5kaWZmTGluZXM7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmVHJpbW1lZExpbmVzID0gX2xpbmUuZGlmZlRyaW1tZWRMaW5lcztcbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2RpZmZTZW50ZW5jZXMgPSBfc2VudGVuY2UuZGlmZlNlbnRlbmNlcztcbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2RpZmZDc3MgPSBfY3NzLmRpZmZDc3M7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmSnNvbiA9IF9qc29uLmRpZmZKc29uO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovc3RydWN0dXJlZFBhdGNoID0gX2NyZWF0ZS5zdHJ1Y3R1cmVkUGF0Y2g7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9jcmVhdGVUd29GaWxlc1BhdGNoID0gX2NyZWF0ZS5jcmVhdGVUd29GaWxlc1BhdGNoO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovY3JlYXRlUGF0Y2ggPSBfY3JlYXRlLmNyZWF0ZVBhdGNoO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovYXBwbHlQYXRjaCA9IF9hcHBseS5hcHBseVBhdGNoO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovYXBwbHlQYXRjaGVzID0gX2FwcGx5LmFwcGx5UGF0Y2hlcztcbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3BhcnNlUGF0Y2ggPSBfcGFyc2UucGFyc2VQYXRjaDtcbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2NvbnZlcnRDaGFuZ2VzVG9ETVAgPSBfZG1wLmNvbnZlcnRDaGFuZ2VzVG9ETVA7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9jb252ZXJ0Q2hhbmdlc1RvWE1MID0gX3htbC5jb252ZXJ0Q2hhbmdlc1RvWE1MO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovY2Fub25pY2FsaXplID0gX2pzb24uY2Fub25pY2FsaXplO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMM055WXk5cGJtUmxlQzVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096dEJRV2RDUVN4SkxIbENRVUZCTEdkQ0xHVkJRVUU3T3pzN096dEJRVU5CTEVrc2VVSkJRVUVzY1VJc2IwSkJRVUU3TzBGQlEwRXNTU3g1UWtGQlFTeG5RaXhsUVVGQk96dEJRVU5CTEVrc2VVSkJRVUVzWjBJc1pVRkJRVHM3UVVGRFFTeEpMSGxDUVVGQkxHOUNMRzFDUVVGQk96dEJRVVZCTEVrc2VVSkJRVUVzWlN4alFVRkJPenRCUVVOQkxFa3NlVUpCUVVFc1owSXNaVUZCUVRzN1FVRkZRU3hKTEhsQ1FVRkJMR2xDTEdsQ1FVRkJPenRCUVVOQkxFa3NlVUpCUVVFc2FVSXNhVUpCUVVFN08wRkJRMEVzU1N4NVFrRkJRU3hyUWl4clFrRkJRVHM3UVVGRlFTeEpMSGxDUVVGQkxHVXNhVUpCUVVFN08wRkJRMEVzU1N4NVFrRkJRU3hsTEdsQ1FVRkJPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0blEwRkhSU3hCTzNsRVFVVkJMRUU3ZVVSQlEwRXNRVHQ1UkVGRFFTeEJPM2xFUVVOQkxFRTdlVVJCUTBFc1FUdDVSRUZEUVN4Qk8zbEVRVVZCTEVFN2VVUkJRMEVzUVR0NVJFRkZRU3hCTzNsRVFVTkJMRUU3ZVVSQlEwRXNRVHQ1UkVGRFFTeEJPM2xFUVVOQkxFRTdlVVJCUTBFc1FUdDVSRUZEUVN4Qk8zbEVRVU5CTEVFN2VVUkJRMEVzUVNJc0ltWnBiR1VpT2lKcGJtUmxlQzVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFJRk5sWlNCTVNVTkZUbE5GSUdacGJHVWdabTl5SUhSbGNtMXpJRzltSUhWelpTQXFMMXh1WEc0dktseHVJQ29nVkdWNGRDQmthV1ptSUdsdGNHeGxiV1Z1ZEdGMGFXOXVMbHh1SUNwY2JpQXFJRlJvYVhNZ2JHbGljbUZ5ZVNCemRYQndiM0owY3lCMGFHVWdabTlzYkc5M2FXNW5JRUZRU1ZNNlhHNGdLaUJLYzBScFptWXVaR2xtWmtOb1lYSnpPaUJEYUdGeVlXTjBaWElnWW5rZ1kyaGhjbUZqZEdWeUlHUnBabVpjYmlBcUlFcHpSR2xtWmk1a2FXWm1WMjl5WkhNNklGZHZjbVFnS0dGeklHUmxabWx1WldRZ1lua2dYRnhpSUhKbFoyVjRLU0JrYVdabUlIZG9hV05vSUdsbmJtOXlaWE1nZDJocGRHVnpjR0ZqWlZ4dUlDb2dTbk5FYVdabUxtUnBabVpNYVc1bGN6b2dUR2x1WlNCaVlYTmxaQ0JrYVdabVhHNGdLbHh1SUNvZ1NuTkVhV1ptTG1ScFptWkRjM002SUVScFptWWdkR0Z5WjJWMFpXUWdZWFFnUTFOVElHTnZiblJsYm5SY2JpQXFYRzRnS2lCVWFHVnpaU0J0WlhSb2IyUnpJR0Z5WlNCaVlYTmxaQ0J2YmlCMGFHVWdhVzF3YkdWdFpXNTBZWFJwYjI0Z2NISnZjRzl6WldRZ2FXNWNiaUFxSUZ3aVFXNGdUeWhPUkNrZ1JHbG1abVZ5Wlc1alpTQkJiR2R2Y21sMGFHMGdZVzVrSUdsMGN5QldZWEpwWVhScGIyNXpYQ0lnS0UxNVpYSnpMQ0F4T1RnMktTNWNiaUFxSUdoMGRIQTZMeTlqYVhSbGMyVmxjbmd1YVhOMExuQnpkUzVsWkhVdmRtbGxkMlJ2WXk5emRXMXRZWEo1UDJSdmFUMHhNQzR4TGpFdU5DNDJPVEkzWEc0Z0tpOWNibWx0Y0c5eWRDQkVhV1ptSUdaeWIyMGdKeTR2WkdsbVppOWlZWE5sSnp0Y2JtbHRjRzl5ZENCN1pHbG1aa05vWVhKemZTQm1jbTl0SUNjdUwyUnBabVl2WTJoaGNtRmpkR1Z5Snp0Y2JtbHRjRzl5ZENCN1pHbG1abGR2Y21SekxDQmthV1ptVjI5eVpITlhhWFJvVTNCaFkyVjlJR1p5YjIwZ0p5NHZaR2xtWmk5M2IzSmtKenRjYm1sdGNHOXlkQ0I3WkdsbVpreHBibVZ6TENCa2FXWm1WSEpwYlcxbFpFeHBibVZ6ZlNCbWNtOXRJQ2N1TDJScFptWXZiR2x1WlNjN1hHNXBiWEJ2Y25RZ2UyUnBabVpUWlc1MFpXNWpaWE45SUdaeWIyMGdKeTR2WkdsbVppOXpaVzUwWlc1alpTYzdYRzVjYm1sdGNHOXlkQ0I3WkdsbVprTnpjMzBnWm5KdmJTQW5MaTlrYVdabUwyTnpjeWM3WEc1cGJYQnZjblFnZTJScFptWktjMjl1TENCallXNXZibWxqWVd4cGVtVjlJR1p5YjIwZ0p5NHZaR2xtWmk5cWMyOXVKenRjYmx4dWFXMXdiM0owSUh0aGNIQnNlVkJoZEdOb0xDQmhjSEJzZVZCaGRHTm9aWE45SUdaeWIyMGdKeTR2Y0dGMFkyZ3ZZWEJ3Ykhrbk8xeHVhVzF3YjNKMElIdHdZWEp6WlZCaGRHTm9mU0JtY205dElDY3VMM0JoZEdOb0wzQmhjbk5sSnp0Y2JtbHRjRzl5ZENCN2MzUnlkV04wZFhKbFpGQmhkR05vTENCamNtVmhkR1ZVZDI5R2FXeGxjMUJoZEdOb0xDQmpjbVZoZEdWUVlYUmphSDBnWm5KdmJTQW5MaTl3WVhSamFDOWpjbVZoZEdVbk8xeHVYRzVwYlhCdmNuUWdlMk52Ym5abGNuUkRhR0Z1WjJWelZHOUVUVkI5SUdaeWIyMGdKeTR2WTI5dWRtVnlkQzlrYlhBbk8xeHVhVzF3YjNKMElIdGpiMjUyWlhKMFEyaGhibWRsYzFSdldFMU1mU0JtY205dElDY3VMMk52Ym5abGNuUXZlRzFzSnp0Y2JseHVaWGh3YjNKMElIdGNiaUFnUkdsbVppeGNibHh1SUNCa2FXWm1RMmhoY25Nc1hHNGdJR1JwWm1aWGIzSmtjeXhjYmlBZ1pHbG1abGR2Y21SelYybDBhRk53WVdObExGeHVJQ0JrYVdabVRHbHVaWE1zWEc0Z0lHUnBabVpVY21sdGJXVmtUR2x1WlhNc1hHNGdJR1JwWm1aVFpXNTBaVzVqWlhNc1hHNWNiaUFnWkdsbVprTnpjeXhjYmlBZ1pHbG1aa3B6YjI0c1hHNWNiaUFnYzNSeWRXTjBkWEpsWkZCaGRHTm9MRnh1SUNCamNtVmhkR1ZVZDI5R2FXeGxjMUJoZEdOb0xGeHVJQ0JqY21WaGRHVlFZWFJqYUN4Y2JpQWdZWEJ3YkhsUVlYUmphQ3hjYmlBZ1lYQndiSGxRWVhSamFHVnpMRnh1SUNCd1lYSnpaVkJoZEdOb0xGeHVJQ0JqYjI1MlpYSjBRMmhoYm1kbGMxUnZSRTFRTEZ4dUlDQmpiMjUyWlhKMFEyaGhibWRsYzFSdldFMU1MRnh1SUNCallXNXZibWxqWVd4cGVtVmNibjA3WEc0aVhYMD1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE5NVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 196 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = __webpack_require__(197);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Header = function Header(props) {\n return _react2.default.createElement(\n 'nav',\n null,\n _react2.default.createElement(\n 'header',\n { id: 'banner', className: 'hero-unit' },\n _react2.default.createElement(\n 'div',\n { className: 'container' },\n _react2.default.createElement(\n 'h1',\n null,\n _react2.default.createElement(\n _reactRouter.Link,\n { to: '/' },\n 'dubdiff'\n )\n ),\n _react2.default.createElement('h3', null)\n )\n )\n );\n};\n\nexports.default = Header;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvSGVhZGVyLmpzPzdiZmMiXSwibmFtZXMiOlsiSGVhZGVyIiwicHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7QUFFQSxJQUFNQSxTQUFTLFNBQVRBLE1BQVMsQ0FBQ0MsS0FBRDtBQUFBLFNBQ2I7QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBLFFBQVEsSUFBRyxRQUFYLEVBQW9CLFdBQVUsV0FBOUI7QUFDRTtBQUFBO0FBQUEsVUFBSyxXQUFVLFdBQWY7QUFDRTtBQUFBO0FBQUE7QUFBSTtBQUFBO0FBQUEsY0FBTSxJQUFHLEdBQVQ7QUFBQTtBQUFBO0FBQUosU0FERjtBQUVFO0FBRkY7QUFERjtBQURGLEdBRGE7QUFBQSxDQUFmOztrQkFXZUQsTSIsImZpbGUiOiIxOTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7TGlua30gZnJvbSAncmVhY3Qtcm91dGVyJ1xuXG5jb25zdCBIZWFkZXIgPSAocHJvcHMpID0+IChcbiAgPG5hdj5cbiAgICA8aGVhZGVyIGlkPVwiYmFubmVyXCIgY2xhc3NOYW1lPVwiaGVyby11bml0XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgICA8aDE+PExpbmsgdG89XCIvXCI+ZHViZGlmZjwvTGluaz48L2gxPlxuICAgICAgICA8aDM+PC9oMz5cbiAgICAgIDwvZGl2PlxuICAgIDwvaGVhZGVyPlxuICA8L25hdj5cbilcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL3NyYy9jb21wb25lbnRzL0hlYWRlci5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 197 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* components */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _Router2 = __webpack_require__(198);\n\nvar _Router3 = _interopRequireDefault(_Router2);\n\nexports.Router = _Router3['default'];\n\nvar _Link2 = __webpack_require__(233);\n\nvar _Link3 = _interopRequireDefault(_Link2);\n\nexports.Link = _Link3['default'];\n\nvar _IndexLink2 = __webpack_require__(234);\n\nvar _IndexLink3 = _interopRequireDefault(_IndexLink2);\n\nexports.IndexLink = _IndexLink3['default'];\n\n/* components (configuration) */\n\nvar _IndexRedirect2 = __webpack_require__(235);\n\nvar _IndexRedirect3 = _interopRequireDefault(_IndexRedirect2);\n\nexports.IndexRedirect = _IndexRedirect3['default'];\n\nvar _IndexRoute2 = __webpack_require__(237);\n\nvar _IndexRoute3 = _interopRequireDefault(_IndexRoute2);\n\nexports.IndexRoute = _IndexRoute3['default'];\n\nvar _Redirect2 = __webpack_require__(236);\n\nvar _Redirect3 = _interopRequireDefault(_Redirect2);\n\nexports.Redirect = _Redirect3['default'];\n\nvar _Route2 = __webpack_require__(238);\n\nvar _Route3 = _interopRequireDefault(_Route2);\n\nexports.Route = _Route3['default'];\n\n/* mixins */\n\nvar _History2 = __webpack_require__(239);\n\nvar _History3 = _interopRequireDefault(_History2);\n\nexports.History = _History3['default'];\n\nvar _Lifecycle2 = __webpack_require__(240);\n\nvar _Lifecycle3 = _interopRequireDefault(_Lifecycle2);\n\nexports.Lifecycle = _Lifecycle3['default'];\n\nvar _RouteContext2 = __webpack_require__(241);\n\nvar _RouteContext3 = _interopRequireDefault(_RouteContext2);\n\nexports.RouteContext = _RouteContext3['default'];\n\n/* utils */\n\nvar _useRoutes2 = __webpack_require__(220);\n\nvar _useRoutes3 = _interopRequireDefault(_useRoutes2);\n\nexports.useRoutes = _useRoutes3['default'];\n\nvar _RouteUtils = __webpack_require__(216);\n\nexports.createRoutes = _RouteUtils.createRoutes;\n\nvar _RoutingContext2 = __webpack_require__(217);\n\nvar _RoutingContext3 = _interopRequireDefault(_RoutingContext2);\n\nexports.RoutingContext = _RoutingContext3['default'];\n\nvar _PropTypes2 = __webpack_require__(232);\n\nvar _PropTypes3 = _interopRequireDefault(_PropTypes2);\n\nexports.PropTypes = _PropTypes3['default'];\n\nvar _match2 = __webpack_require__(242);\n\nvar _match3 = _interopRequireDefault(_match2);\n\nexports.match = _match3['default'];\n\nvar _Router4 = _interopRequireDefault(_Router2);\n\nexports['default'] = _Router4['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2luZGV4LmpzP2NjOTgiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX1JvdXRlcjIiLCJyZXF1aXJlIiwiX1JvdXRlcjMiLCJSb3V0ZXIiLCJfTGluazIiLCJfTGluazMiLCJMaW5rIiwiX0luZGV4TGluazIiLCJfSW5kZXhMaW5rMyIsIkluZGV4TGluayIsIl9JbmRleFJlZGlyZWN0MiIsIl9JbmRleFJlZGlyZWN0MyIsIkluZGV4UmVkaXJlY3QiLCJfSW5kZXhSb3V0ZTIiLCJfSW5kZXhSb3V0ZTMiLCJJbmRleFJvdXRlIiwiX1JlZGlyZWN0MiIsIl9SZWRpcmVjdDMiLCJSZWRpcmVjdCIsIl9Sb3V0ZTIiLCJfUm91dGUzIiwiUm91dGUiLCJfSGlzdG9yeTIiLCJfSGlzdG9yeTMiLCJIaXN0b3J5IiwiX0xpZmVjeWNsZTIiLCJfTGlmZWN5Y2xlMyIsIkxpZmVjeWNsZSIsIl9Sb3V0ZUNvbnRleHQyIiwiX1JvdXRlQ29udGV4dDMiLCJSb3V0ZUNvbnRleHQiLCJfdXNlUm91dGVzMiIsIl91c2VSb3V0ZXMzIiwidXNlUm91dGVzIiwiX1JvdXRlVXRpbHMiLCJjcmVhdGVSb3V0ZXMiLCJfUm91dGluZ0NvbnRleHQyIiwiX1JvdXRpbmdDb250ZXh0MyIsIlJvdXRpbmdDb250ZXh0IiwiX1Byb3BUeXBlczIiLCJfUHJvcFR5cGVzMyIsIlByb3BUeXBlcyIsIl9tYXRjaDIiLCJfbWF0Y2gzIiwibWF0Y2giLCJfUm91dGVyNCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjs7QUFFQSxTQUFTQyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJRixVQUFYLEdBQXdCRSxH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QUFVN0MsdUJBQXVCNEMsT0FBdkIsQ0FBZDs7QUFFQTlDLFFBQVFnRCxLQUFSLEdBQWdCRCxRQUFRLFNBQVIsQ0FBaEI7O0FBRUEsSUFBSUUsV0FBVy9DLHVCQUF1QkUsUUFBdkIsQ0FBZjs7QUFFQUosUUFBUSxTQUFSLElBQXFCaUQsU0FBUyxTQUFULENBQXJCIiwiZmlsZSI6IjE5Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGNvbXBvbmVudHMgKi9cbid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX1JvdXRlcjIgPSByZXF1aXJlKCcuL1JvdXRlcicpO1xuXG52YXIgX1JvdXRlcjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Sb3V0ZXIyKTtcblxuZXhwb3J0cy5Sb3V0ZXIgPSBfUm91dGVyM1snZGVmYXVsdCddO1xuXG52YXIgX0xpbmsyID0gcmVxdWlyZSgnLi9MaW5rJyk7XG5cbnZhciBfTGluazMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9MaW5rMik7XG5cbmV4cG9ydHMuTGluayA9IF9MaW5rM1snZGVmYXVsdCddO1xuXG52YXIgX0luZGV4TGluazIgPSByZXF1aXJlKCcuL0luZGV4TGluaycpO1xuXG52YXIgX0luZGV4TGluazMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbmRleExpbmsyKTtcblxuZXhwb3J0cy5JbmRleExpbmsgPSBfSW5kZXhMaW5rM1snZGVmYXVsdCddO1xuXG4vKiBjb21wb25lbnRzIChjb25maWd1cmF0aW9uKSAqL1xuXG52YXIgX0luZGV4UmVkaXJlY3QyID0gcmVxdWlyZSgnLi9JbmRleFJlZGlyZWN0Jyk7XG5cbnZhciBfSW5kZXhSZWRpcmVjdDMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbmRleFJlZGlyZWN0Mik7XG5cbmV4cG9ydHMuSW5kZXhSZWRpcmVjdCA9IF9JbmRleFJlZGlyZWN0M1snZGVmYXVsdCddO1xuXG52YXIgX0luZGV4Um91dGUyID0gcmVxdWlyZSgnLi9JbmRleFJvdXRlJyk7XG5cbnZhciBfSW5kZXhSb3V0ZTMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9JbmRleFJvdXRlMik7XG5cbmV4cG9ydHMuSW5kZXhSb3V0ZSA9IF9JbmRleFJvdXRlM1snZGVmYXVsdCddO1xuXG52YXIgX1JlZGlyZWN0MiA9IHJlcXVpcmUoJy4vUmVkaXJlY3QnKTtcblxudmFyIF9SZWRpcmVjdDMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9SZWRpcmVjdDIpO1xuXG5leHBvcnRzLlJlZGlyZWN0ID0gX1JlZGlyZWN0M1snZGVmYXVsdCddO1xuXG52YXIgX1JvdXRlMiA9IHJlcXVpcmUoJy4vUm91dGUnKTtcblxudmFyIF9Sb3V0ZTMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Sb3V0ZTIpO1xuXG5leHBvcnRzLlJvdXRlID0gX1JvdXRlM1snZGVmYXVsdCddO1xuXG4vKiBtaXhpbnMgKi9cblxudmFyIF9IaXN0b3J5MiA9IHJlcXVpcmUoJy4vSGlzdG9yeScpO1xuXG52YXIgX0hpc3RvcnkzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfSGlzdG9yeTIpO1xuXG5leHBvcnRzLkhpc3RvcnkgPSBfSGlzdG9yeTNbJ2RlZmF1bHQnXTtcblxudmFyIF9MaWZlY3ljbGUyID0gcmVxdWlyZSgnLi9MaWZlY3ljbGUnKTtcblxudmFyIF9MaWZlY3ljbGUzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTGlmZWN5Y2xlMik7XG5cbmV4cG9ydHMuTGlmZWN5Y2xlID0gX0xpZmVjeWNsZTNbJ2RlZmF1bHQnXTtcblxudmFyIF9Sb3V0ZUNvbnRleHQyID0gcmVxdWlyZSgnLi9Sb3V0ZUNvbnRleHQnKTtcblxudmFyIF9Sb3V0ZUNvbnRleHQzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUm91dGVDb250ZXh0Mik7XG5cbmV4cG9ydHMuUm91dGVDb250ZXh0ID0gX1JvdXRlQ29udGV4dDNbJ2RlZmF1bHQnXTtcblxuLyogdXRpbHMgKi9cblxudmFyIF91c2VSb3V0ZXMyID0gcmVxdWlyZSgnLi91c2VSb3V0ZXMnKTtcblxudmFyIF91c2VSb3V0ZXMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdXNlUm91dGVzMik7XG5cbmV4cG9ydHMudXNlUm91dGVzID0gX3VzZVJvdXRlczNbJ2RlZmF1bHQnXTtcblxudmFyIF9Sb3V0ZVV0aWxzID0gcmVxdWlyZSgnLi9Sb3V0ZVV0aWxzJyk7XG5cbmV4cG9ydHMuY3JlYXRlUm91dGVzID0gX1JvdXRlVXRpbHMuY3JlYXRlUm91dGVzO1xuXG52YXIgX1JvdXRpbmdDb250ZXh0MiA9IHJlcXVpcmUoJy4vUm91dGluZ0NvbnRleHQnKTtcblxudmFyIF9Sb3V0aW5nQ29udGV4dDMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Sb3V0aW5nQ29udGV4dDIpO1xuXG5leHBvcnRzLlJvdXRpbmdDb250ZXh0ID0gX1JvdXRpbmdDb250ZXh0M1snZGVmYXVsdCddO1xuXG52YXIgX1Byb3BUeXBlczIgPSByZXF1aXJlKCcuL1Byb3BUeXBlcycpO1xuXG52YXIgX1Byb3BUeXBlczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Qcm9wVHlwZXMyKTtcblxuZXhwb3J0cy5Qcm9wVHlwZXMgPSBfUHJvcFR5cGVzM1snZGVmYXVsdCddO1xuXG52YXIgX21hdGNoMiA9IHJlcXVpcmUoJy4vbWF0Y2gnKTtcblxudmFyIF9tYXRjaDMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tYXRjaDIpO1xuXG5leHBvcnRzLm1hdGNoID0gX21hdGNoM1snZGVmYXVsdCddO1xuXG52YXIgX1JvdXRlcjQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Sb3V0ZXIyKTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gX1JvdXRlcjRbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 198 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n }return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _historyLibCreateHashHistory = __webpack_require__(200);\n\nvar _historyLibCreateHashHistory2 = _interopRequireDefault(_historyLibCreateHashHistory);\n\nvar _RouteUtils = __webpack_require__(216);\n\nvar _RoutingContext = __webpack_require__(217);\n\nvar _RoutingContext2 = _interopRequireDefault(_RoutingContext);\n\nvar _useRoutes = __webpack_require__(220);\n\nvar _useRoutes2 = _interopRequireDefault(_useRoutes);\n\nvar _PropTypes = __webpack_require__(232);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar func = _React$PropTypes.func;\nvar object = _React$PropTypes.object;\n\n/**\n * A <Router> is a high-level API for automatically setting up\n * a router that renders a <RoutingContext> with all the props\n * it needs each time the URL changes.\n */\n\nvar Router = function (_Component) {\n _inherits(Router, _Component);\n\n _createClass(Router, null, [{\n key: 'propTypes',\n value: {\n history: object,\n children: _PropTypes.routes,\n routes: _PropTypes.routes, // alias for children\n RoutingContext: func.isRequired,\n createElement: func,\n onError: func,\n onUpdate: func,\n parseQueryString: func,\n stringifyQuery: func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n RoutingContext: _RoutingContext2['default']\n },\n enumerable: true\n }]);\n\n function Router(props, context) {\n _classCallCheck(this, Router);\n\n _Component.call(this, props, context);\n\n this.state = {\n location: null,\n routes: null,\n params: null,\n components: null\n };\n }\n\n Router.prototype.handleError = function handleError(error) {\n if (this.props.onError) {\n this.props.onError.call(this, error);\n } else {\n // Throw errors by default so we don't silently swallow them!\n throw error; // This error probably occurred in getChildRoutes or getComponents.\n }\n };\n\n Router.prototype.componentWillMount = function componentWillMount() {\n var _this = this;\n\n var _props = this.props;\n var history = _props.history;\n var children = _props.children;\n var routes = _props.routes;\n var parseQueryString = _props.parseQueryString;\n var stringifyQuery = _props.stringifyQuery;\n\n var createHistory = history ? function () {\n return history;\n } : _historyLibCreateHashHistory2['default'];\n\n this.history = _useRoutes2['default'](createHistory)({\n routes: _RouteUtils.createRoutes(routes || children),\n parseQueryString: parseQueryString,\n stringifyQuery: stringifyQuery\n });\n\n this._unlisten = this.history.listen(function (error, state) {\n if (error) {\n _this.handleError(error);\n } else {\n _this.setState(state, _this.props.onUpdate);\n }\n });\n };\n\n /* istanbul ignore next: sanity check */\n\n Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](nextProps.history === this.props.history, 'You cannot change <Router history>; it will be ignored') : undefined;\n };\n\n Router.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this._unlisten) this._unlisten();\n };\n\n Router.prototype.render = function render() {\n var _state = this.state;\n var location = _state.location;\n var routes = _state.routes;\n var params = _state.params;\n var components = _state.components;\n var _props2 = this.props;\n var RoutingContext = _props2.RoutingContext;\n var createElement = _props2.createElement;\n\n var props = _objectWithoutProperties(_props2, ['RoutingContext', 'createElement']);\n\n if (location == null) return null; // Async match\n\n // Only forward non-Router-specific props to routing context, as those are\n // the only ones that might be custom routing context props.\n Object.keys(Router.propTypes).forEach(function (propType) {\n return delete props[propType];\n });\n\n return _react2['default'].createElement(RoutingContext, _extends({}, props, {\n history: this.history,\n createElement: createElement,\n location: location,\n routes: routes,\n params: params,\n components: components\n }));\n };\n\n return Router;\n}(_react.Component);\n\nexports['default'] = Router;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRlci5qcz8zYTY0Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2NyZWF0ZUNsYXNzIiwiZGVmaW5lUHJvcGVydGllcyIsInByb3BzIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImRlZmluZVByb3BlcnR5IiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwia2V5cyIsImluZGV4T2YiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIlR5cGVFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwidmFsdWUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl93YXJuaW5nIiwicmVxdWlyZSIsIl93YXJuaW5nMiIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfaGlzdG9yeUxpYkNyZWF0ZUhhc2hIaXN0b3J5IiwiX2hpc3RvcnlMaWJDcmVhdGVIYXNoSGlzdG9yeTIiLCJfUm91dGVVdGlscyIsIl9Sb3V0aW5nQ29udGV4dCIsIl9Sb3V0aW5nQ29udGV4dDIiLCJfdXNlUm91dGVzIiwiX3VzZVJvdXRlczIiLCJfUHJvcFR5cGVzIiwiX1JlYWN0JFByb3BUeXBlcyIsIlByb3BUeXBlcyIsImZ1bmMiLCJvYmplY3QiLCJSb3V0ZXIiLCJfQ29tcG9uZW50IiwiaGlzdG9yeSIsImNoaWxkcmVuIiwicm91dGVzIiwiUm91dGluZ0NvbnRleHQiLCJpc1JlcXVpcmVkIiwiY3JlYXRlRWxlbWVudCIsIm9uRXJyb3IiLCJvblVwZGF0ZSIsInBhcnNlUXVlcnlTdHJpbmciLCJzdHJpbmdpZnlRdWVyeSIsImNvbnRleHQiLCJzdGF0ZSIsImxvY2F0aW9uIiwicGFyYW1zIiwiY29tcG9uZW50cyIsImhhbmRsZUVycm9yIiwiZXJyb3IiLCJjb21wb25lbnRXaWxsTW91bnQiLCJfdGhpcyIsIl9wcm9wcyIsImNyZWF0ZUhpc3RvcnkiLCJjcmVhdGVSb3V0ZXMiLCJfdW5saXN0ZW4iLCJsaXN0ZW4iLCJzZXRTdGF0ZSIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJuZXh0UHJvcHMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbmRlciIsIl9zdGF0ZSIsIl9wcm9wczIiLCJwcm9wVHlwZXMiLCJmb3JFYWNoIiwicHJvcFR5cGUiLCJDb21wb25lbnQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsV0FBV0MsT0FBT0MsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQUUsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlDLFVBQVVDLE1BQTlCLEVBQXNDRixHQUF0QyxFQUEyQztBQUFFLFFBQUlHLFNBQVNGLFVBQVVELENBQVYsQ0FBYixDQUEyQixLQUFLLElBQUlJLEdBQVQsSUFBZ0JELE1BQWhCLEVBQXdCO0FBQUUsVUFBSU4sT0FBT1EsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDSixNQUFyQyxFQUE2Q0MsR0FBN0MsQ0FBSixFQUF1RDtBQUFFTCxlQUFPSyxHQUFQLElBQWNELE9BQU9DLEdBQVAsQ0FBZDtBQUE0QjtBQUFFO0FBQUUsR0FBQyxPQUFPTCxNQUFQO0FB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T25CLFVBQXhCO0FBQ0EsUUFBSW9CLFVBQVUsS0FBSzlFLEtBQW5CO0FBQ0EsUUFBSStDLGlCQUFpQitCLFFBQVEvQixjQUE3QjtBQUNBLFFBQUlFLGdCQUFnQjZCLFFBQVE3QixhQUE1Qjs7QUFFQSxRQUFJakQsUUFBUVcseUJBQXlCbUUsT0FBekIsRUFBa0MsQ0FBQyxnQkFBRCxFQUFtQixlQUFuQixDQUFsQyxDQUFaOztBQUVBLFFBQUl0QixZQUFZLElBQWhCLEVBQXNCLE9BQU8sSUFBUCxDQVpvQixDQVlQOztBQUVuQztBQUNBO0FBQ0FyRSxXQUFPeUIsSUFBUCxDQUFZOEIsT0FBT3FDLFNBQW5CLEVBQThCQyxPQUE5QixDQUFzQyxVQUFVQyxRQUFWLEVBQW9CO0FBQ3hELGFBQU8sT0FBT2pGLE1BQU1pRixRQUFOLENBQWQ7QUFDRCxLQUZEOztBQUlBLFdBQU9wRCxRQUFRLFNBQVIsRUFBbUJvQixhQUFuQixDQUFpQ0YsY0FBakMsRUFBaUQ3RCxTQUFTLEVBQVQsRUFBYWMsS0FBYixFQUFvQjtBQUMxRTRDLGVBQVMsS0FBS0EsT0FENEQ7QUFFMUVLLHFCQUFlQSxhQUYyRDtBQUcxRU8sZ0JBQVVBLFFBSGdFO0FBSTFFVixjQUFRQSxNQUprRTtBQUsxRVcsY0FBUUEsTUFMa0U7QUFNMUVDLGtCQUFZQTtBQU44RCxLQUFwQixDQUFqRCxDQUFQO0FBUUQsR0E1QkQ7O0FBOEJBLFNBQU9oQixNQUFQO0FBQ0QsQ0FySFksQ0FxSFZkLE9BQU9zRCxTQXJIRyxDQUFiOztBQXVIQWxHLFFBQVEsU0FBUixJQUFxQjBELE1BQXJCO0FBQ0F5QyxPQUFPbkcsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCLEMiLCJmaWxlIjoiMTk4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhvYmosIGtleXMpIHsgdmFyIHRhcmdldCA9IHt9OyBmb3IgKHZhciBpIGluIG9iaikgeyBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGkpKSBjb250aW51ZTsgdGFyZ2V0W2ldID0gb2JqW2ldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfaGlzdG9yeUxpYkNyZWF0ZUhhc2hIaXN0b3J5ID0gcmVxdWlyZSgnaGlzdG9yeS9saWIvY3JlYXRlSGFzaEhpc3RvcnknKTtcblxudmFyIF9oaXN0b3J5TGliQ3JlYXRlSGFzaEhpc3RvcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGlzdG9yeUxpYkNyZWF0ZUhhc2hIaXN0b3J5KTtcblxudmFyIF9Sb3V0ZVV0aWxzID0gcmVxdWlyZSgnLi9Sb3V0ZVV0aWxzJyk7XG5cbnZhciBfUm91dGluZ0NvbnRleHQgPSByZXF1aXJlKCcuL1JvdXRpbmdDb250ZXh0Jyk7XG5cbnZhciBfUm91dGluZ0NvbnRleHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUm91dGluZ0NvbnRleHQpO1xuXG52YXIgX3VzZVJvdXRlcyA9IHJlcXVpcmUoJy4vdXNlUm91dGVzJyk7XG5cbnZhciBfdXNlUm91dGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VzZVJvdXRlcyk7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9Qcm9wVHlwZXMnKTtcblxudmFyIF9SZWFjdCRQcm9wVHlwZXMgPSBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzO1xudmFyIGZ1bmMgPSBfUmVhY3QkUHJvcFR5cGVzLmZ1bmM7XG52YXIgb2JqZWN0ID0gX1JlYWN0JFByb3BUeXBlcy5vYmplY3Q7XG5cbi8qKlxuICogQSA8Um91dGVyPiBpcyBhIGhpZ2gtbGV2ZWwgQVBJIGZvciBhdXRvbWF0aWNhbGx5IHNldHRpbmcgdXBcbiAqIGEgcm91dGVyIHRoYXQgcmVuZGVycyBhIDxSb3V0aW5nQ29udGV4dD4gd2l0aCBhbGwgdGhlIHByb3BzXG4gKiBpdCBuZWVkcyBlYWNoIHRpbWUgdGhlIFVSTCBjaGFuZ2VzLlxuICovXG5cbnZhciBSb3V0ZXIgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFJvdXRlciwgX0NvbXBvbmVudCk7XG5cbiAgX2NyZWF0ZUNsYXNzKFJvdXRlciwgbnVsbCwgW3tcbiAgICBrZXk6ICdwcm9wVHlwZXMnLFxuICAgIHZhbHVlOiB7XG4gICAgICBoaXN0b3J5OiBvYmplY3QsXG4gICAgICBjaGlsZHJlbjogX1Byb3BUeXBlcy5yb3V0ZXMsXG4gICAgICByb3V0ZXM6IF9Qcm9wVHlwZXMucm91dGVzLCAvLyBhbGlhcyBmb3IgY2hpbGRyZW5cbiAgICAgIFJvdXRpbmdDb250ZXh0OiBmdW5jLmlzUmVxdWlyZWQsXG4gICAgICBjcmVhdGVFbGVtZW50OiBmdW5jLFxuICAgICAgb25FcnJvcjogZnVuYyxcbiAgICAgIG9uVXBkYXRlOiBmdW5jLFxuICAgICAgcGFyc2VRdWVyeVN0cmluZzogZnVuYyxcbiAgICAgIHN0cmluZ2lmeVF1ZXJ5OiBmdW5jXG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH0sIHtcbiAgICBrZXk6ICdkZWZhdWx0UHJvcHMnLFxuICAgIHZhbHVlOiB7XG4gICAgICBSb3V0aW5nQ29udGV4dDogX1JvdXRpbmdDb250ZXh0MlsnZGVmYXVsdCddXG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH1dKTtcblxuICBmdW5jdGlvbiBSb3V0ZXIocHJvcHMsIGNvbnRleHQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUm91dGVyKTtcblxuICAgIF9Db21wb25lbnQuY2FsbCh0aGlzLCBwcm9wcywgY29udGV4dCk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbG9jYXRpb246IG51bGwsXG4gICAgICByb3V0ZXM6IG51bGwsXG4gICAgICBwYXJhbXM6IG51bGwsXG4gICAgICBjb21wb25lbnRzOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIFJvdXRlci5wcm90b3R5cGUuaGFuZGxlRXJyb3IgPSBmdW5jdGlvbiBoYW5kbGVFcnJvcihlcnJvcikge1xuICAgIGlmICh0aGlzLnByb3BzLm9uRXJyb3IpIHtcbiAgICAgIHRoaXMucHJvcHMub25FcnJvci5jYWxsKHRoaXMsIGVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhyb3cgZXJyb3JzIGJ5IGRlZmF1bHQgc28gd2UgZG9uJ3Qgc2lsZW50bHkgc3dhbGxvdyB0aGVtIVxuICAgICAgdGhyb3cgZXJyb3I7IC8vIFRoaXMgZXJyb3IgcHJvYmFibHkgb2NjdXJyZWQgaW4gZ2V0Q2hpbGRSb3V0ZXMgb3IgZ2V0Q29tcG9uZW50cy5cbiAgICB9XG4gIH07XG5cbiAgUm91dGVyLnByb3RvdHlwZS5jb21wb25lbnRXaWxsTW91bnQgPSBmdW5jdGlvbiBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzO1xuICAgIHZhciBoaXN0b3J5ID0gX3Byb3BzLmhpc3Rvcnk7XG4gICAgdmFyIGNoaWxkcmVuID0gX3Byb3BzLmNoaWxkcmVuO1xuICAgIHZhciByb3V0ZXMgPSBfcHJvcHMucm91dGVzO1xuICAgIHZhciBwYXJzZVF1ZXJ5U3RyaW5nID0gX3Byb3BzLnBhcnNlUXVlcnlTdHJpbmc7XG4gICAgdmFyIHN0cmluZ2lmeVF1ZXJ5ID0gX3Byb3BzLnN0cmluZ2lmeVF1ZXJ5O1xuXG4gICAgdmFyIGNyZWF0ZUhpc3RvcnkgPSBoaXN0b3J5ID8gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGhpc3Rvcnk7XG4gICAgfSA6IF9oaXN0b3J5TGliQ3JlYXRlSGFzaEhpc3RvcnkyWydkZWZhdWx0J107XG5cbiAgICB0aGlzLmhpc3RvcnkgPSBfdXNlUm91dGVzMlsnZGVmYXVsdCddKGNyZWF0ZUhpc3RvcnkpKHtcbiAgICAgIHJvdXRlczogX1JvdXRlVXRpbHMuY3JlYXRlUm91dGVzKHJvdXRlcyB8fCBjaGlsZHJlbiksXG4gICAgICBwYXJzZVF1ZXJ5U3RyaW5nOiBwYXJzZVF1ZXJ5U3RyaW5nLFxuICAgICAgc3RyaW5naWZ5UXVlcnk6IHN0cmluZ2lmeVF1ZXJ5XG4gICAgfSk7XG5cbiAgICB0aGlzLl91bmxpc3RlbiA9IHRoaXMuaGlzdG9yeS5saXN0ZW4oZnVuY3Rpb24gKGVycm9yLCBzdGF0ZSkge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIF90aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHN0YXRlLCBfdGhpcy5wcm9wcy5vblVwZGF0ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IHNhbml0eSBjaGVjayAqL1xuXG4gIFJvdXRlci5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF93YXJuaW5nMlsnZGVmYXVsdCddKG5leHRQcm9wcy5oaXN0b3J5ID09PSB0aGlzLnByb3BzLmhpc3RvcnksICdZb3UgY2Fubm90IGNoYW5nZSA8Um91dGVyIGhpc3Rvcnk+OyBpdCB3aWxsIGJlIGlnbm9yZWQnKSA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICBSb3V0ZXIucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50ID0gZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMuX3VubGlzdGVuKSB0aGlzLl91bmxpc3RlbigpO1xuICB9O1xuXG4gIFJvdXRlci5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHZhciBfc3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgIHZhciBsb2NhdGlvbiA9IF9zdGF0ZS5sb2NhdGlvbjtcbiAgICB2YXIgcm91dGVzID0gX3N0YXRlLnJvdXRlcztcbiAgICB2YXIgcGFyYW1zID0gX3N0YXRlLnBhcmFtcztcbiAgICB2YXIgY29tcG9uZW50cyA9IF9zdGF0ZS5jb21wb25lbnRzO1xuICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICB2YXIgUm91dGluZ0NvbnRleHQgPSBfcHJvcHMyLlJvdXRpbmdDb250ZXh0O1xuICAgIHZhciBjcmVhdGVFbGVtZW50ID0gX3Byb3BzMi5jcmVhdGVFbGVtZW50O1xuXG4gICAgdmFyIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wczIsIFsnUm91dGluZ0NvbnRleHQnLCAnY3JlYXRlRWxlbWVudCddKTtcblxuICAgIGlmIChsb2NhdGlvbiA9PSBudWxsKSByZXR1cm4gbnVsbDsgLy8gQXN5bmMgbWF0Y2hcblxuICAgIC8vIE9ubHkgZm9yd2FyZCBub24tUm91dGVyLXNwZWNpZmljIHByb3BzIHRvIHJvdXRpbmcgY29udGV4dCwgYXMgdGhvc2UgYXJlXG4gICAgLy8gdGhlIG9ubHkgb25lcyB0aGF0IG1pZ2h0IGJlIGN1c3RvbSByb3V0aW5nIGNvbnRleHQgcHJvcHMuXG4gICAgT2JqZWN0LmtleXMoUm91dGVyLnByb3BUeXBlcykuZm9yRWFjaChmdW5jdGlvbiAocHJvcFR5cGUpIHtcbiAgICAgIHJldHVybiBkZWxldGUgcHJvcHNbcHJvcFR5cGVdO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFJvdXRpbmdDb250ZXh0LCBfZXh0ZW5kcyh7fSwgcHJvcHMsIHtcbiAgICAgIGhpc3Rvcnk6IHRoaXMuaGlzdG9yeSxcbiAgICAgIGNyZWF0ZUVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnQsXG4gICAgICBsb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICByb3V0ZXM6IHJvdXRlcyxcbiAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgY29tcG9uZW50czogY29tcG9uZW50c1xuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gUm91dGVyO1xufSkoX3JlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJvdXRlcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJvdXRlci9saWIvUm91dGVyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 199 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function warning() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function warning(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.length < 10 || /^[s\\W]*$/.test(format)) {\n throw new Error('The warning format should be able to uniquely identify this ' + 'warning. Please, use a more descriptive format than: ' + format);\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n };\n}\n\nmodule.exports = warning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi93YXJuaW5nL2Jyb3dzZXIuanM/ZWM1NCJdLCJuYW1lcyI6WyJ3YXJuaW5nIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uZGl0aW9uIiwiZm9ybWF0IiwiYXJncyIsImxlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsIkFycmF5Iiwia2V5IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJ0ZXN0IiwiYXJnSW5kZXgiLCJtZXNzYWdlIiwicmVwbGFjZSIsImNvbnNvbGUiLCJlcnJvciIsIngiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0FBU0E7O0FBRUE7Ozs7Ozs7QUFPQSxJQUFJQSxVQUFVLG1CQUFXLENBQUUsQ0FBM0I7O0FBRUEsSUFBSUMsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDSCxZQUFVLGlCQUFTSSxTQUFULEVBQW9CQyxNQUFwQixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDMUMsUUFBSUMsTUFBTUMsVUFBVUMsTUFBcEI7QUFDQUgsV0FBTyxJQUFJSSxLQUFKLENBQVVILE1BQU0sQ0FBTixHQUFVQSxNQUFNLENBQWhCLEdBQW9CLENBQTlCLENBQVA7QUFDQSxTQUFLLElBQUlJLE1BQU0sQ0FBZixFQUFrQkEsTUFBTUosR0FBeEIsRUFBNkJJLEtBQTdCLEVBQW9DO0FBQ2xDTCxXQUFLSyxNQUFNLENBQVgsSUFBZ0JILFVBQVVHLEdBQVYsQ0FBaEI7QUFDRDtBQUNELFFBQUlOLFdBQVdPLFNBQWYsRUFBMEI7QUFDeEIsWUFBTSxJQUFJQyxLQUFKLENBQ0osOERBQ0Esa0JBRkksQ0FBTjtBQUlEOztBQUVELFFBQUlSLE9BQU9JLE1BQVAsR0FBZ0IsRUFBaEIsSUFBdUIsVUFBRCxDQUFhSyxJQUFiLENBQWtCVCxNQUFsQixDQUExQixFQUFxRDtBQUNuRCxZQUFNLElBQUlRLEtBQUosQ0FDSixpRUFDQSx1REFEQSxHQUMwRFIsTUFGdEQsQ0FBTjtBQUlEOztBQUVELFFBQUksQ0FBQ0QsU0FBTCxFQUFnQjtBQUNkLFVBQUlXLFdBQVcsQ0FBZjtBQUNBLFVBQUlDLFVBQVUsY0FDWlgsT0FBT1ksT0FBUCxDQUFlLEtBQWYsRUFBc0IsWUFBVztBQUMvQixlQUFPWCxLQUFLUyxVQUFMLENBQVA7QUFDRCxPQUZELENBREY7QUFJQSxVQUFJLE9BQU9HLE9BQVAsS0FBbUIsV0FBdkIsRUFBb0M7QUFDbENBLGdCQUFRQyxLQUFSLENBQWNILE9BQWQ7QUFDRDtBQUNELFVBQUk7QUFDRjtBQUNBO0FBQ0EsY0FBTSxJQUFJSCxLQUFKLENBQVVHLE9BQVYsQ0FBTjtBQUNELE9BSkQsQ0FJRSxPQUFNSSxDQUFOLEVBQVMsQ0FBRTtBQUNkO0FBQ0YsR0FuQ0Q7QUFvQ0Q7O0FBRURDLE9BQU9DLE9BQVAsR0FBaUJ0QixPQUFqQixDIiwiZmlsZSI6IjE5OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyoqXG4gKiBTaW1pbGFyIHRvIGludmFyaWFudCBidXQgb25seSBsb2dzIGEgd2FybmluZyBpZiB0aGUgY29uZGl0aW9uIGlzIG5vdCBtZXQuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGxvZyBpc3N1ZXMgaW4gZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGluIGNyaXRpY2FsXG4gKiBwYXRocy4gUmVtb3ZpbmcgdGhlIGxvZ2dpbmcgY29kZSBmb3IgcHJvZHVjdGlvbiBlbnZpcm9ubWVudHMgd2lsbCBrZWVwIHRoZVxuICogc2FtZSBsb2dpYyBhbmQgZm9sbG93IHRoZSBzYW1lIGNvZGUgcGF0aHMuXG4gKi9cblxudmFyIHdhcm5pbmcgPSBmdW5jdGlvbigpIHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB3YXJuaW5nID0gZnVuY3Rpb24oY29uZGl0aW9uLCBmb3JtYXQsIGFyZ3MpIHtcbiAgICB2YXIgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiA+IDIgPyBsZW4gLSAyIDogMCk7XG4gICAgZm9yICh2YXIga2V5ID0gMjsga2V5IDwgbGVuOyBrZXkrKykge1xuICAgICAgYXJnc1trZXkgLSAyXSA9IGFyZ3VtZW50c1trZXldO1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ2B3YXJuaW5nKGNvbmRpdGlvbiwgZm9ybWF0LCAuLi5hcmdzKWAgcmVxdWlyZXMgYSB3YXJuaW5nICcgK1xuICAgICAgICAnbWVzc2FnZSBhcmd1bWVudCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdC5sZW5ndGggPCAxMCB8fCAoL15bc1xcV10qJC8pLnRlc3QoZm9ybWF0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIHdhcm5pbmcgZm9ybWF0IHNob3VsZCBiZSBhYmxlIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgJyArXG4gICAgICAgICd3YXJuaW5nLiBQbGVhc2UsIHVzZSBhIG1vcmUgZGVzY3JpcHRpdmUgZm9ybWF0IHRoYW46ICcgKyBmb3JtYXRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgIHZhciBhcmdJbmRleCA9IDA7XG4gICAgICB2YXIgbWVzc2FnZSA9ICdXYXJuaW5nOiAnICtcbiAgICAgICAgZm9ybWF0LnJlcGxhY2UoLyVzL2csIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBhcmdzW2FyZ0luZGV4KytdO1xuICAgICAgICB9KTtcbiAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgICAvLyB0byBmaW5kIHRoZSBjYWxsc2l0ZSB0aGF0IGNhdXNlZCB0aGlzIHdhcm5pbmcgdG8gZmlyZS5cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgfSBjYXRjaCh4KSB7fVxuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB3YXJuaW5nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vd2FybmluZy9icm93c2VyLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 200 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = __webpack_require__(201);\n\nvar _ExecutionEnvironment = __webpack_require__(202);\n\nvar _DOMUtils = __webpack_require__(203);\n\nvar _DOMStateStorage = __webpack_require__(204);\n\nvar _createDOMHistory = __webpack_require__(205);\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\nfunction isAbsolutePath(path) {\n return typeof path === 'string' && path.charAt(0) === '/';\n}\n\nfunction ensureSlash() {\n var path = _DOMUtils.getHashPath();\n\n if (isAbsolutePath(path)) return true;\n\n _DOMUtils.replaceHashPath('/' + path);\n\n return false;\n}\n\nfunction addQueryStringValueToPath(path, key, value) {\n return path + (path.indexOf('?') === -1 ? '?' : '&') + (key + '=' + value);\n}\n\nfunction stripQueryStringValueFromPath(path, key) {\n return path.replace(new RegExp('[?&]?' + key + '=[a-zA-Z0-9]+'), '');\n}\n\nfunction getQueryStringValueFromPath(path, key) {\n var match = path.match(new RegExp('\\\\?.*?\\\\b' + key + '=(.+?)\\\\b'));\n return match && match[1];\n}\n\nvar DefaultQueryKey = '_k';\n\nfunction createHashHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Hash history needs a DOM') : _invariant2['default'](false) : undefined;\n\n var queryKey = options.queryKey;\n\n if (queryKey === undefined || !!queryKey) queryKey = typeof queryKey === 'string' ? queryKey : DefaultQueryKey;\n\n function getCurrentLocation() {\n var path = _DOMUtils.getHashPath();\n\n var key = undefined,\n state = undefined;\n if (queryKey) {\n key = getQueryStringValueFromPath(path, queryKey);\n path = stripQueryStringValueFromPath(path, queryKey);\n\n if (key) {\n state = _DOMStateStorage.readState(key);\n } else {\n state = null;\n key = history.createKey();\n _DOMUtils.replaceHashPath(addQueryStringValueToPath(path, queryKey, key));\n }\n } else {\n key = state = null;\n }\n\n return history.createLocation(path, state, undefined, key);\n }\n\n function startHashChangeListener(_ref) {\n var transitionTo = _ref.transitionTo;\n\n function hashChangeListener() {\n if (!ensureSlash()) return; // Always make sure hashes are preceeded with a /.\n\n transitionTo(getCurrentLocation());\n }\n\n ensureSlash();\n _DOMUtils.addEventListener(window, 'hashchange', hashChangeListener);\n\n return function () {\n _DOMUtils.removeEventListener(window, 'hashchange', hashChangeListener);\n };\n }\n\n function finishTransition(location) {\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var state = location.state;\n var action = location.action;\n var key = location.key;\n\n if (action === _Actions.POP) return; // Nothing to do.\n\n var path = (basename || '') + pathname + search;\n\n if (queryKey) {\n path = addQueryStringValueToPath(path, queryKey, key);\n _DOMStateStorage.saveState(key, state);\n } else {\n // Drop key and state.\n location.key = location.state = null;\n }\n\n var currentHash = _DOMUtils.getHashPath();\n\n if (action === _Actions.PUSH) {\n if (currentHash !== path) {\n window.location.hash = path;\n } else {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'You cannot PUSH the same path using hash history') : undefined;\n }\n } else if (currentHash !== path) {\n // REPLACE\n _DOMUtils.replaceHashPath(path);\n }\n }\n\n var history = _createDOMHistory2['default'](_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n finishTransition: finishTransition,\n saveState: _DOMStateStorage.saveState\n }));\n\n var listenerCount = 0,\n stopHashChangeListener = undefined;\n\n function listenBefore(listener) {\n if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history);\n\n var unlisten = history.listenBefore(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopHashChangeListener();\n };\n }\n\n function listen(listener) {\n if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history);\n\n var unlisten = history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopHashChangeListener();\n };\n }\n\n function pushState(state, path) {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined;\n\n history.pushState(state, path);\n }\n\n function replaceState(state, path) {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](queryKey || state == null, 'You cannot use state without a queryKey it will be dropped') : undefined;\n\n history.replaceState(state, path);\n }\n\n var goIsSupportedWithoutReload = _DOMUtils.supportsGoWithoutReloadUsingHash();\n\n function go(n) {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](goIsSupportedWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : undefined;\n\n history.go(n);\n }\n\n function createHref(path) {\n return '#' + history.createHref(path);\n }\n\n // deprecated\n function registerTransitionHook(hook) {\n if (++listenerCount === 1) stopHashChangeListener = startHashChangeListener(history);\n\n history.registerTransitionHook(hook);\n }\n\n // deprecated\n function unregisterTransitionHook(hook) {\n history.unregisterTransitionHook(hook);\n\n if (--listenerCount === 0) stopHashChangeListener();\n }\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen,\n pushState: pushState,\n replaceState: replaceState,\n go: go,\n createHref: createHref,\n registerTransitionHook: registerTransitionHook,\n unregisterTransitionHook: unregisterTransitionHook\n });\n}\n\nexports['default'] = createHashHistory;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9jcmVhdGVIYXNoSGlzdG9yeS5qcz8yOTA0Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl93YXJuaW5nIiwicmVxdWlyZSIsIl93YXJuaW5nMiIsIl9pbnZhcmlhbnQiLCJfaW52YXJpYW50MiIsIl9BY3Rpb25zIiwiX0V4ZWN1dGlvbkVudmlyb25tZW50IiwiX0RPTVV0aWxzIiwiX0RPTVN0YXRlU3RvcmFnZSIsIl9jcmVhdGVET01IaXN0b3J5IiwiX2NyZWF0ZURPTUhpc3RvcnkyIiwiaXNBYnNvbHV0ZVBhdGgiLCJwYXRoIiwiY2hhckF0IiwiZW5zdXJlU2xhc2giLCJnZXRIYXNoUGF0aCIsInJlcGxhY2VIYXNoUGF0aCIsImFkZFF1ZXJ5U3RyaW5nVmFsdWVUb1BhdGgiLCJ2YWx1ZSIsImluZGV4T2YiLCJzdHJpcFF1ZXJ5U3RyaW5nVmFsdWVGcm9tUGF0aCIsInJlcGxhY2UiLCJSZWdFeHAiLCJnZXRRdWVyeVN0cmluZ1ZhbHVlRnJvbVBhdGgiLCJtYXRjaCIsIkRlZmF1bHRRdWVyeUtleSIsImNyZWF0ZUhhc2hIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsImNhblVzZURPTSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInF1ZXJ5S2V5IiwiZ2V0Q3VycmVudExvY2F0aW9uIiwic3RhdGUiLCJyZWFkU3RhdGUiLCJoaXN0b3J5IiwiY3JlYXRlS2V5IiwiY3JlYXRlTG9jYXRpb24iLCJzdGFydEhhc2hDaGFuZ2VMaXN0ZW5lciIsIl9yZWYiLCJ0cmFuc2l0aW9uVG8iLCJoYXNoQ2hhbmdlTGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwid2luZG93IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImZpbmlzaFRyYW5zaXRpb24iLCJsb2NhdGlvbiIsImJhc2VuYW1lIiwicGF0aG5hbWUiLCJzZWFyY2giLCJhY3Rpb24iLCJQT1AiLCJzYXZlU3RhdGUiLCJjdXJyZW50SGFzaCIsIlBVU0giLCJoYXNoIiwibGlzdGVuZXJDb3VudCIsInN0b3BIYXNoQ2hhbmdlTGlzdGVuZXIiLCJsaXN0ZW5CZWZvcmUiLCJsaXN0ZW5lciIsInVubGlzdGVuIiwibGlzdGVuIiwicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIiwiZ29Jc1N1cHBvcnRlZFdpdGhvdXRSZWxvYWQiLCJzdXBwb3J0c0dvV2l0aG91dFJlbG9hZFVzaW5nSGFzaCIsImdvIiwibiIsImNyZWF0ZUhyZWYiLCJyZWdpc3RlclRyYW5zaXRpb25Ib29rIiwiaG9vayIsInVucmVnaXN0ZXJUcmFuc2l0aW9uSG9vayIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsV0FBV0MsT0FBT0MsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQUUsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlDLFVBQVVDLE1BQTlCLEVBQXNDRixHQUF0QyxFQUEyQztBQUFFLFFBQUlHLFNBQVNGLFVBQVVELENBQVYsQ0FBYixDQUEyQixLQUFLLElBQUlJLEdBQVQsSUFBZ0JELE1BQWhCLEVBQXdCO0FBQUUsVUFBSU4sT0FBT1EsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDSixNQUFyQyxFQUE2Q0MsR0FBN0MsQ0FBSixFQUF1RDtBQUFFTCxlQUFPSyxHQUFQLElBQWNELE9BQU9DLEdBQVAsQ0FBZDtBQUE0QjtBQUFFO0FBQUUsR0FBQyxPQUFPTCxNQUFQO0FBQWdCLENBQWhROztBQUVBLFNBQVNT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LDRCQUF3QkEsc0JBUEc7QUFRM0JFLDhCQUEwQkE7QUFSQyxHQUF0QixDQUFQO0FBVUQ7O0FBRUR6RixRQUFRLFNBQVIsSUFBcUIwQyxpQkFBckI7QUFDQWdELE9BQU8xRixPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyMDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbnZhciBfaW52YXJpYW50ID0gcmVxdWlyZSgnaW52YXJpYW50Jyk7XG5cbnZhciBfaW52YXJpYW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ludmFyaWFudCk7XG5cbnZhciBfQWN0aW9ucyA9IHJlcXVpcmUoJy4vQWN0aW9ucycpO1xuXG52YXIgX0V4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xuXG52YXIgX0RPTVV0aWxzID0gcmVxdWlyZSgnLi9ET01VdGlscycpO1xuXG52YXIgX0RPTVN0YXRlU3RvcmFnZSA9IHJlcXVpcmUoJy4vRE9NU3RhdGVTdG9yYWdlJyk7XG5cbnZhciBfY3JlYXRlRE9NSGlzdG9yeSA9IHJlcXVpcmUoJy4vY3JlYXRlRE9NSGlzdG9yeScpO1xuXG52YXIgX2NyZWF0ZURPTUhpc3RvcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlRE9NSGlzdG9yeSk7XG5cbmZ1bmN0aW9uIGlzQWJzb2x1dGVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJyAmJiBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVTbGFzaCgpIHtcbiAgdmFyIHBhdGggPSBfRE9NVXRpbHMuZ2V0SGFzaFBhdGgoKTtcblxuICBpZiAoaXNBYnNvbHV0ZVBhdGgocGF0aCkpIHJldHVybiB0cnVlO1xuXG4gIF9ET01VdGlscy5yZXBsYWNlSGFzaFBhdGgoJy8nICsgcGF0aCk7XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhZGRRdWVyeVN0cmluZ1ZhbHVlVG9QYXRoKHBhdGgsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHBhdGggKyAocGF0aC5pbmRleE9mKCc/JykgPT09IC0xID8gJz8nIDogJyYnKSArIChrZXkgKyAnPScgKyB2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHN0cmlwUXVlcnlTdHJpbmdWYWx1ZUZyb21QYXRoKHBhdGgsIGtleSkge1xuICByZXR1cm4gcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoJ1s/Jl0/JyArIGtleSArICc9W2EtekEtWjAtOV0rJyksICcnKTtcbn1cblxuZnVuY3Rpb24gZ2V0UXVlcnlTdHJpbmdWYWx1ZUZyb21QYXRoKHBhdGgsIGtleSkge1xuICB2YXIgbWF0Y2ggPSBwYXRoLm1hdGNoKG5ldyBSZWdFeHAoJ1xcXFw/Lio/XFxcXGInICsga2V5ICsgJz0oLis/KVxcXFxiJykpO1xuICByZXR1cm4gbWF0Y2ggJiYgbWF0Y2hbMV07XG59XG5cbnZhciBEZWZhdWx0UXVlcnlLZXkgPSAnX2snO1xuXG5mdW5jdGlvbiBjcmVhdGVIYXNoSGlzdG9yeSgpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAhX0V4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnSGFzaCBoaXN0b3J5IG5lZWRzIGEgRE9NJykgOiBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICB2YXIgcXVlcnlLZXkgPSBvcHRpb25zLnF1ZXJ5S2V5O1xuXG4gIGlmIChxdWVyeUtleSA9PT0gdW5kZWZpbmVkIHx8ICEhcXVlcnlLZXkpIHF1ZXJ5S2V5ID0gdHlwZW9mIHF1ZXJ5S2V5ID09PSAnc3RyaW5nJyA/IHF1ZXJ5S2V5IDogRGVmYXVsdFF1ZXJ5S2V5O1xuXG4gIGZ1bmN0aW9uIGdldEN1cnJlbnRMb2NhdGlvbigpIHtcbiAgICB2YXIgcGF0aCA9IF9ET01VdGlscy5nZXRIYXNoUGF0aCgpO1xuXG4gICAgdmFyIGtleSA9IHVuZGVmaW5lZCxcbiAgICAgICAgc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHF1ZXJ5S2V5KSB7XG4gICAgICBrZXkgPSBnZXRRdWVyeVN0cmluZ1ZhbHVlRnJvbVBhdGgocGF0aCwgcXVlcnlLZXkpO1xuICAgICAgcGF0aCA9IHN0cmlwUXVlcnlTdHJpbmdWYWx1ZUZyb21QYXRoKHBhdGgsIHF1ZXJ5S2V5KTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBzdGF0ZSA9IF9ET01TdGF0ZVN0b3JhZ2UucmVhZFN0YXRlKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZSA9IG51bGw7XG4gICAgICAgIGtleSA9IGhpc3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgICAgIF9ET01VdGlscy5yZXBsYWNlSGFzaFBhdGgoYWRkUXVlcnlTdHJpbmdWYWx1ZVRvUGF0aChwYXRoLCBxdWVyeUtleSwga2V5KSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleSA9IHN0YXRlID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaGlzdG9yeS5jcmVhdGVMb2NhdGlvbihwYXRoLCBzdGF0ZSwgdW5kZWZpbmVkLCBrZXkpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhcnRIYXNoQ2hhbmdlTGlzdGVuZXIoX3JlZikge1xuICAgIHZhciB0cmFuc2l0aW9uVG8gPSBfcmVmLnRyYW5zaXRpb25UbztcblxuICAgIGZ1bmN0aW9uIGhhc2hDaGFuZ2VMaXN0ZW5lcigpIHtcbiAgICAgIGlmICghZW5zdXJlU2xhc2goKSkgcmV0dXJuOyAvLyBBbHdheXMgbWFrZSBzdXJlIGhhc2hlcyBhcmUgcHJlY2VlZGVkIHdpdGggYSAvLlxuXG4gICAgICB0cmFuc2l0aW9uVG8oZ2V0Q3VycmVudExvY2F0aW9uKCkpO1xuICAgIH1cblxuICAgIGVuc3VyZVNsYXNoKCk7XG4gICAgX0RPTVV0aWxzLmFkZEV2ZW50TGlzdGVuZXIod2luZG93LCAnaGFzaGNoYW5nZScsIGhhc2hDaGFuZ2VMaXN0ZW5lcik7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgX0RPTVV0aWxzLnJlbW92ZUV2ZW50TGlzdGVuZXIod2luZG93LCAnaGFzaGNoYW5nZScsIGhhc2hDaGFuZ2VMaXN0ZW5lcik7XG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbmlzaFRyYW5zaXRpb24obG9jYXRpb24pIHtcbiAgICB2YXIgYmFzZW5hbWUgPSBsb2NhdGlvbi5iYXNlbmFtZTtcbiAgICB2YXIgcGF0aG5hbWUgPSBsb2NhdGlvbi5wYXRobmFtZTtcbiAgICB2YXIgc2VhcmNoID0gbG9jYXRpb24uc2VhcmNoO1xuICAgIHZhciBzdGF0ZSA9IGxvY2F0aW9uLnN0YXRlO1xuICAgIHZhciBhY3Rpb24gPSBsb2NhdGlvbi5hY3Rpb247XG4gICAgdmFyIGtleSA9IGxvY2F0aW9uLmtleTtcblxuICAgIGlmIChhY3Rpb24gPT09IF9BY3Rpb25zLlBPUCkgcmV0dXJuOyAvLyBOb3RoaW5nIHRvIGRvLlxuXG4gICAgdmFyIHBhdGggPSAoYmFzZW5hbWUgfHwgJycpICsgcGF0aG5hbWUgKyBzZWFyY2g7XG5cbiAgICBpZiAocXVlcnlLZXkpIHtcbiAgICAgIHBhdGggPSBhZGRRdWVyeVN0cmluZ1ZhbHVlVG9QYXRoKHBhdGgsIHF1ZXJ5S2V5LCBrZXkpO1xuICAgICAgX0RPTVN0YXRlU3RvcmFnZS5zYXZlU3RhdGUoa2V5LCBzdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIERyb3Aga2V5IGFuZCBzdGF0ZS5cbiAgICAgIGxvY2F0aW9uLmtleSA9IGxvY2F0aW9uLnN0YXRlID0gbnVsbDtcbiAgICB9XG5cbiAgICB2YXIgY3VycmVudEhhc2ggPSBfRE9NVXRpbHMuZ2V0SGFzaFBhdGgoKTtcblxuICAgIGlmIChhY3Rpb24gPT09IF9BY3Rpb25zLlBVU0gpIHtcbiAgICAgIGlmIChjdXJyZW50SGFzaCAhPT0gcGF0aCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9IHBhdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZmFsc2UsICdZb3UgY2Fubm90IFBVU0ggdGhlIHNhbWUgcGF0aCB1c2luZyBoYXNoIGhpc3RvcnknKSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRIYXNoICE9PSBwYXRoKSB7XG4gICAgICAvLyBSRVBMQUNFXG4gICAgICBfRE9NVXRpbHMucmVwbGFjZUhhc2hQYXRoKHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBoaXN0b3J5ID0gX2NyZWF0ZURPTUhpc3RvcnkyWydkZWZhdWx0J10oX2V4dGVuZHMoe30sIG9wdGlvbnMsIHtcbiAgICBnZXRDdXJyZW50TG9jYXRpb246IGdldEN1cnJlbnRMb2NhdGlvbixcbiAgICBmaW5pc2hUcmFuc2l0aW9uOiBmaW5pc2hUcmFuc2l0aW9uLFxuICAgIHNhdmVTdGF0ZTogX0RPTVN0YXRlU3RvcmFnZS5zYXZlU3RhdGVcbiAgfSkpO1xuXG4gIHZhciBsaXN0ZW5lckNvdW50ID0gMCxcbiAgICAgIHN0b3BIYXNoQ2hhbmdlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG5cbiAgZnVuY3Rpb24gbGlzdGVuQmVmb3JlKGxpc3RlbmVyKSB7XG4gICAgaWYgKCsrbGlzdGVuZXJDb3VudCA9PT0gMSkgc3RvcEhhc2hDaGFuZ2VMaXN0ZW5lciA9IHN0YXJ0SGFzaENoYW5nZUxpc3RlbmVyKGhpc3RvcnkpO1xuXG4gICAgdmFyIHVubGlzdGVuID0gaGlzdG9yeS5saXN0ZW5CZWZvcmUobGlzdGVuZXIpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHVubGlzdGVuKCk7XG5cbiAgICAgIGlmICgtLWxpc3RlbmVyQ291bnQgPT09IDApIHN0b3BIYXNoQ2hhbmdlTGlzdGVuZXIoKTtcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gbGlzdGVuKGxpc3RlbmVyKSB7XG4gICAgaWYgKCsrbGlzdGVuZXJDb3VudCA9PT0gMSkgc3RvcEhhc2hDaGFuZ2VMaXN0ZW5lciA9IHN0YXJ0SGFzaENoYW5nZUxpc3RlbmVyKGhpc3RvcnkpO1xuXG4gICAgdmFyIHVubGlzdGVuID0gaGlzdG9yeS5saXN0ZW4obGlzdGVuZXIpO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHVubGlzdGVuKCk7XG5cbiAgICAgIGlmICgtLWxpc3RlbmVyQ291bnQgPT09IDApIHN0b3BIYXNoQ2hhbmdlTGlzdGVuZXIoKTtcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gcHVzaFN0YXRlKHN0YXRlLCBwYXRoKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF93YXJuaW5nMlsnZGVmYXVsdCddKHF1ZXJ5S2V5IHx8IHN0YXRlID09IG51bGwsICdZb3UgY2Fubm90IHVzZSBzdGF0ZSB3aXRob3V0IGEgcXVlcnlLZXkgaXQgd2lsbCBiZSBkcm9wcGVkJykgOiB1bmRlZmluZWQ7XG5cbiAgICBoaXN0b3J5LnB1c2hTdGF0ZShzdGF0ZSwgcGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbiByZXBsYWNlU3RhdGUoc3RhdGUsIHBhdGgpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10ocXVlcnlLZXkgfHwgc3RhdGUgPT0gbnVsbCwgJ1lvdSBjYW5ub3QgdXNlIHN0YXRlIHdpdGhvdXQgYSBxdWVyeUtleSBpdCB3aWxsIGJlIGRyb3BwZWQnKSA6IHVuZGVmaW5lZDtcblxuICAgIGhpc3RvcnkucmVwbGFjZVN0YXRlKHN0YXRlLCBwYXRoKTtcbiAgfVxuXG4gIHZhciBnb0lzU3VwcG9ydGVkV2l0aG91dFJlbG9hZCA9IF9ET01VdGlscy5zdXBwb3J0c0dvV2l0aG91dFJlbG9hZFVzaW5nSGFzaCgpO1xuXG4gIGZ1bmN0aW9uIGdvKG4pIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZ29Jc1N1cHBvcnRlZFdpdGhvdXRSZWxvYWQsICdIYXNoIGhpc3RvcnkgZ28obikgY2F1c2VzIGEgZnVsbCBwYWdlIHJlbG9hZCBpbiB0aGlzIGJyb3dzZXInKSA6IHVuZGVmaW5lZDtcblxuICAgIGhpc3RvcnkuZ28obik7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVIcmVmKHBhdGgpIHtcbiAgICByZXR1cm4gJyMnICsgaGlzdG9yeS5jcmVhdGVIcmVmKHBhdGgpO1xuICB9XG5cbiAgLy8gZGVwcmVjYXRlZFxuICBmdW5jdGlvbiByZWdpc3RlclRyYW5zaXRpb25Ib29rKGhvb2spIHtcbiAgICBpZiAoKytsaXN0ZW5lckNvdW50ID09PSAxKSBzdG9wSGFzaENoYW5nZUxpc3RlbmVyID0gc3RhcnRIYXNoQ2hhbmdlTGlzdGVuZXIoaGlzdG9yeSk7XG5cbiAgICBoaXN0b3J5LnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2soaG9vayk7XG4gIH1cblxuICAvLyBkZXByZWNhdGVkXG4gIGZ1bmN0aW9uIHVucmVnaXN0ZXJUcmFuc2l0aW9uSG9vayhob29rKSB7XG4gICAgaGlzdG9yeS51bnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2soaG9vayk7XG5cbiAgICBpZiAoLS1saXN0ZW5lckNvdW50ID09PSAwKSBzdG9wSGFzaENoYW5nZUxpc3RlbmVyKCk7XG4gIH1cblxuICByZXR1cm4gX2V4dGVuZHMoe30sIGhpc3RvcnksIHtcbiAgICBsaXN0ZW5CZWZvcmU6IGxpc3RlbkJlZm9yZSxcbiAgICBsaXN0ZW46IGxpc3RlbixcbiAgICBwdXNoU3RhdGU6IHB1c2hTdGF0ZSxcbiAgICByZXBsYWNlU3RhdGU6IHJlcGxhY2VTdGF0ZSxcbiAgICBnbzogZ28sXG4gICAgY3JlYXRlSHJlZjogY3JlYXRlSHJlZixcbiAgICByZWdpc3RlclRyYW5zaXRpb25Ib29rOiByZWdpc3RlclRyYW5zaXRpb25Ib29rLFxuICAgIHVucmVnaXN0ZXJUcmFuc2l0aW9uSG9vazogdW5yZWdpc3RlclRyYW5zaXRpb25Ib29rXG4gIH0pO1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBjcmVhdGVIYXNoSGlzdG9yeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL2NyZWF0ZUhhc2hIaXN0b3J5LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 201 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/**\n * Indicates that navigation was caused by a call to history.push.\n */\n'use strict';\n\nexports.__esModule = true;\nvar PUSH = 'PUSH';\n\nexports.PUSH = PUSH;\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = 'REPLACE';\n\nexports.REPLACE = REPLACE;\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = 'POP';\n\nexports.POP = POP;\nexports['default'] = {\n PUSH: PUSH,\n REPLACE: REPLACE,\n POP: POP\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9BY3Rpb25zLmpzP2I0MjAiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJQVVNIIiwiUkVQTEFDRSIsIlBPUCJdLCJtYXBwaW5ncyI6IkFBQUE7OztBQUdBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCO0FBQ0EsSUFBSUMsT0FBTyxNQUFYOztBQUVBRixRQUFRRSxJQUFSLEdBQWVBLElBQWY7QUFDQTs7O0FBR0EsSUFBSUMsVUFBVSxTQUFkOztBQUVBSCxRQUFRRyxPQUFSLEdBQWtCQSxPQUFsQjtBQUNBOzs7Ozs7OztBQVFBLElBQUlDLE1BQU0sS0FBVjs7QUFFQUosUUFBUUksR0FBUixHQUFjQSxHQUFkO0FBQ0FKLFFBQVEsU0FBUixJQUFxQjtBQUNuQkUsUUFBTUEsSUFEYTtBQUVuQkMsV0FBU0EsT0FGVTtBQUduQkMsT0FBS0E7QUFIYyxDQUFyQiIsImZpbGUiOiIyMDEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEluZGljYXRlcyB0aGF0IG5hdmlnYXRpb24gd2FzIGNhdXNlZCBieSBhIGNhbGwgdG8gaGlzdG9yeS5wdXNoLlxuICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG52YXIgUFVTSCA9ICdQVVNIJztcblxuZXhwb3J0cy5QVVNIID0gUFVTSDtcbi8qKlxuICogSW5kaWNhdGVzIHRoYXQgbmF2aWdhdGlvbiB3YXMgY2F1c2VkIGJ5IGEgY2FsbCB0byBoaXN0b3J5LnJlcGxhY2UuXG4gKi9cbnZhciBSRVBMQUNFID0gJ1JFUExBQ0UnO1xuXG5leHBvcnRzLlJFUExBQ0UgPSBSRVBMQUNFO1xuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCBuYXZpZ2F0aW9uIHdhcyBjYXVzZWQgYnkgc29tZSBvdGhlciBhY3Rpb24gc3VjaFxuICogYXMgdXNpbmcgYSBicm93c2VyJ3MgYmFjay9mb3J3YXJkIGJ1dHRvbnMgYW5kL29yIG1hbnVhbGx5IG1hbmlwdWxhdGluZ1xuICogdGhlIFVSTCBpbiBhIGJyb3dzZXIncyBsb2NhdGlvbiBiYXIuIFRoaXMgaXMgdGhlIGRlZmF1bHQuXG4gKlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9XaW5kb3dFdmVudEhhbmRsZXJzL29ucG9wc3RhdGVcbiAqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICovXG52YXIgUE9QID0gJ1BPUCc7XG5cbmV4cG9ydHMuUE9QID0gUE9QO1xuZXhwb3J0c1snZGVmYXVsdCddID0ge1xuICBQVVNIOiBQVVNILFxuICBSRVBMQUNFOiBSRVBMQUNFLFxuICBQT1A6IFBPUFxufTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9BY3Rpb25zLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 202 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.canUseDOM = canUseDOM;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9FeGVjdXRpb25FbnZpcm9ubWVudC5qcz9lOWJlIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiY2FuVXNlRE9NIiwid2luZG93IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBLElBQUlDLFlBQVksQ0FBQyxFQUFFLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEIsSUFBaUNBLE9BQU9DLFFBQXhDLElBQW9ERCxPQUFPQyxRQUFQLENBQWdCQyxhQUF0RSxDQUFqQjtBQUNBTCxRQUFRRSxTQUFSLEdBQW9CQSxTQUFwQiIsImZpbGUiOiIyMDIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG52YXIgY2FuVXNlRE9NID0gISEodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmRvY3VtZW50ICYmIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbmV4cG9ydHMuY2FuVXNlRE9NID0gY2FuVXNlRE9NO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL0V4ZWN1dGlvbkVudmlyb25tZW50LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 203 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.getHashPath = getHashPath;\nexports.replaceHashPath = replaceHashPath;\nexports.getWindowPath = getWindowPath;\nexports.go = go;\nexports.getUserConfirmation = getUserConfirmation;\nexports.supportsHistory = supportsHistory;\nexports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash;\n\nfunction addEventListener(node, event, listener) {\n if (node.addEventListener) {\n node.addEventListener(event, listener, false);\n } else {\n node.attachEvent('on' + event, listener);\n }\n}\n\nfunction removeEventListener(node, event, listener) {\n if (node.removeEventListener) {\n node.removeEventListener(event, listener, false);\n } else {\n node.detachEvent('on' + event, listener);\n }\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n return window.location.href.split('#')[1] || '';\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(window.location.pathname + window.location.search + '#' + path);\n}\n\nfunction getWindowPath() {\n return window.location.pathname + window.location.search + window.location.hash;\n}\n\nfunction go(n) {\n if (n) window.history.go(n);\n}\n\nfunction getUserConfirmation(message, callback) {\n callback(window.confirm(message));\n}\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) {\n return false;\n }\n return window.history && 'pushState' in window.history;\n}\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n var ua = navigator.userAgent;\n return ua.indexOf('Firefox') === -1;\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9ET01VdGlscy5qcz9hNmE2Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJnZXRIYXNoUGF0aCIsInJlcGxhY2VIYXNoUGF0aCIsImdldFdpbmRvd1BhdGgiLCJnbyIsImdldFVzZXJDb25maXJtYXRpb24iLCJzdXBwb3J0c0hpc3RvcnkiLCJzdXBwb3J0c0dvV2l0aG91dFJlbG9hZFVzaW5nSGFzaCIsIm5vZGUiLCJldmVudCIsImxpc3RlbmVyIiwiYXR0YWNoRXZlbnQiLCJkZXRhY2hFdmVudCIsIndpbmRvdyIsImxvY2F0aW9uIiwiaHJlZiIsInNwbGl0IiwicGF0aCIsInJlcGxhY2UiLCJwYXRobmFtZSIsInNlYXJjaCIsImhhc2giLCJuIiwiaGlzdG9yeSIsIm1lc3NhZ2UiLCJjYWxsYmFjayIsImNvbmZpcm0iLCJ1YSIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImluZGV4T2YiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCO0FBQ0FELFFBQVFFLGdCQUFSLEdBQTJCQSxnQkFBM0I7QUFDQUYsUUFBUUcsbUJBQVIsR0FBOEJBLG1CQUE5QjtBQUNBSCxRQUFRSSxXQUFSLEdBQXNCQSxXQUF0QjtBQUNBSixRQUFRSyxlQUFSLEdBQTBCQSxlQUExQjtBQUNBTCxRQUFRTSxhQUFSLEdBQXdCQSxhQUF4QjtBQUNBTixRQUFRTyxFQUFSLEdBQWFBLEVBQWI7QUFDQVAsUUFBUVEsbUJBQVIsR0FBOEJBLG1CQUE5QjtBQUNBUixRQUFRUyxlQUFSLEdBQTBCQSxlQUExQjtBQUNBVCxRQUFRVSxnQ0FBUixHQUEyQ0EsZ0NBQTNDOztBQUVBLFNBQVNSLGdCQUFULENBQTBCUyxJQUExQixFQUFnQ0MsS0FBaEMsRUFBdUNDLFFBQXZDLEVBQWlEO0FBQy9DLE1BQUlGLEtBQUtULGdCQUFULEVBQTJCO0FBQ3pCUyxTQUFLVCxnQkFBTCxDQUFzQlUsS0FBdEIsRUFBNkJDLFFBQTdCLEVBQXVDLEtBQXZDO0FBQ0QsR0FGRCxNQUVPO0FBQ0xGLFNBQUtHLFdBQUwsQ0FBaUIsT0FBT0YsS0FBeEIsRUFBK0JDLFFBQS9CO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTVixtQkFBVCxDQUE2QlEsSUFBN0IsRUFBbUNDLEtBQW5DLEVBQTBDQyxRQUExQyxFQUFvRDtBQUNsRCxNQUFJRixLQUFLUixtQkFBVCxFQUE4QjtBQUM1QlEsU0FBS1IsbUJBQUwsQ0FBeUJTLEtBQXpCLEVBQWdDQyxRQUFoQyxFQUEwQyxLQUExQztBQUNELEdBRkQsTUFFTztBQUNMRixTQUFLSSxXQUFMLENBQWlCLE9BQU9ILEtBQXhCLEVBQStCQyxRQUEvQjtBQUNEO0FBQ0Y7O0FBRUQsU0FBU1QsV0FBVCxHQUF1QjtBQUNyQjtBQUNBO0FBQ0EsU0FBT1ksT0FBT0MsUUFBUCxDQUFnQkMsSUFBaEIsQ0FBcUJDLEtBQXJCLENBQTJCLEdBQTNCLEVBQWdDLENBQWhDLEtBQXNDLEVBQTdDO0FBQ0Q7O0FBRUQsU0FBU2QsZUFBVCxDQUF5QmUsSUFBekIsRUFBK0I7QUFDN0JKLFNBQU9DLFFBQVAsQ0FBZ0JJLE9BQWhCLENBQXdCTCxPQUFPQyxRQUFQLENBQWdCSyxRQUFoQixHQUEyQk4sT0FBT0MsUUFBUCxDQUFnQk0sTUFBM0MsR0FBb0QsR0FBcEQsR0FBMERILElBQWxGO0FBQ0Q7O0FBRUQsU0FBU2QsYUFBVCxHQUF5QjtBQUN2QixTQUFPVSxPQUFPQyxRQUFQLENBQWdCSyxRQUFoQixHQUEyQk4sT0FBT0MsUUFBUCxDQUFnQk0sTUFBM0MsR0FBb0RQLE9BQU9DLFFBQVAsQ0FBZ0JPLElBQTNFO0FBQ0Q7O0FBRUQsU0FBU2pCLEVBQVQsQ0FBWWtCLENBQVosRUFBZTtBQUNiLE1BQUlBLENBQUosRUFBT1QsT0FBT1UsT0FBUCxDQUFlbkIsRUFBZixDQUFrQmtCLENBQWxCO0FBQ1I7O0FBRUQsU0FBU2pCLG1CQUFULENBQTZCbUIsT0FBN0IsRUFBc0NDLFFBQXRDLEVBQWdEO0FBQzlDQSxXQUFTWixPQUFPYSxPQUFQLENBQWVGLE9BQWYsQ0FBVDtBQUNEOztBQUVEOzs7Ozs7OztBQVFBLFNBQVNsQixlQUFULEdBQTJCO0FBQ3pCLE1BQUlxQixLQUFLQyxVQUFVQyxTQUFuQjtBQUNBLE1BQUksQ0FBQ0YsR0FBR0csT0FBSCxDQUFXLFlBQVgsTUFBNkIsQ0FBQyxDQUE5QixJQUFtQ0gsR0FBR0csT0FBSCxDQUFXLGFBQVgsTUFBOEIsQ0FBQyxDQUFuRSxLQUF5RUgsR0FBR0csT0FBSCxDQUFXLGVBQVgsTUFBZ0MsQ0FBQyxDQUExRyxJQUErR0gsR0FBR0csT0FBSCxDQUFXLFFBQVgsTUFBeUIsQ0FBQyxDQUF6SSxJQUE4SUgsR0FBR0csT0FBSCxDQUFXLGVBQVgsTUFBZ0MsQ0FBQyxDQUFuTCxFQUFzTDtBQUNwTCxXQUFPLEtBQVA7QUFDRDtBQUNELFNBQU9qQixPQUFPVSxPQUFQLElBQWtCLGVBQWVWLE9BQU9VLE9BQS9DO0FBQ0Q7O0FBRUQ7Ozs7QUFJQSxTQUFTaEIsZ0NBQVQsR0FBNEM7QUFDMUMsTUFBSW9CLEtBQUtDLFVBQVVDLFNBQW5CO0FBQ0EsU0FBT0YsR0FBR0csT0FBSCxDQUFXLFNBQVgsTUFBMEIsQ0FBQyxDQUFsQztBQUNEIiwiZmlsZSI6IjIwMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuYWRkRXZlbnRMaXN0ZW5lciA9IGFkZEV2ZW50TGlzdGVuZXI7XG5leHBvcnRzLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSByZW1vdmVFdmVudExpc3RlbmVyO1xuZXhwb3J0cy5nZXRIYXNoUGF0aCA9IGdldEhhc2hQYXRoO1xuZXhwb3J0cy5yZXBsYWNlSGFzaFBhdGggPSByZXBsYWNlSGFzaFBhdGg7XG5leHBvcnRzLmdldFdpbmRvd1BhdGggPSBnZXRXaW5kb3dQYXRoO1xuZXhwb3J0cy5nbyA9IGdvO1xuZXhwb3J0cy5nZXRVc2VyQ29uZmlybWF0aW9uID0gZ2V0VXNlckNvbmZpcm1hdGlvbjtcbmV4cG9ydHMuc3VwcG9ydHNIaXN0b3J5ID0gc3VwcG9ydHNIaXN0b3J5O1xuZXhwb3J0cy5zdXBwb3J0c0dvV2l0aG91dFJlbG9hZFVzaW5nSGFzaCA9IHN1cHBvcnRzR29XaXRob3V0UmVsb2FkVXNpbmdIYXNoO1xuXG5mdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKG5vZGUsIGV2ZW50LCBsaXN0ZW5lcikge1xuICBpZiAobm9kZS5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lciwgZmFsc2UpO1xuICB9IGVsc2Uge1xuICAgIG5vZGUuYXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBsaXN0ZW5lcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlRXZlbnRMaXN0ZW5lcihub2RlLCBldmVudCwgbGlzdGVuZXIpIHtcbiAgaWYgKG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcikge1xuICAgIG5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIsIGZhbHNlKTtcbiAgfSBlbHNlIHtcbiAgICBub2RlLmRldGFjaEV2ZW50KCdvbicgKyBldmVudCwgbGlzdGVuZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEhhc2hQYXRoKCkge1xuICAvLyBXZSBjYW4ndCB1c2Ugd2luZG93LmxvY2F0aW9uLmhhc2ggaGVyZSBiZWNhdXNlIGl0J3Mgbm90XG4gIC8vIGNvbnNpc3RlbnQgYWNyb3NzIGJyb3dzZXJzIC0gRmlyZWZveCB3aWxsIHByZS1kZWNvZGUgaXQhXG4gIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgnIycpWzFdIHx8ICcnO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlSGFzaFBhdGgocGF0aCkge1xuICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgJyMnICsgcGF0aCk7XG59XG5cbmZ1bmN0aW9uIGdldFdpbmRvd1BhdGgoKSB7XG4gIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgd2luZG93LmxvY2F0aW9uLmhhc2g7XG59XG5cbmZ1bmN0aW9uIGdvKG4pIHtcbiAgaWYgKG4pIHdpbmRvdy5oaXN0b3J5LmdvKG4pO1xufVxuXG5mdW5jdGlvbiBnZXRVc2VyQ29uZmlybWF0aW9uKG1lc3NhZ2UsIGNhbGxiYWNrKSB7XG4gIGNhbGxiYWNrKHdpbmRvdy5jb25maXJtKG1lc3NhZ2UpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIEhUTUw1IGhpc3RvcnkgQVBJIGlzIHN1cHBvcnRlZC4gVGFrZW4gZnJvbSBtb2Rlcm5penIuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogaHR0cHM6Ly9naXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvYmxvYi9tYXN0ZXIvZmVhdHVyZS1kZXRlY3RzL2hpc3RvcnkuanNcbiAqIGNoYW5nZWQgdG8gYXZvaWQgZmFsc2UgbmVnYXRpdmVzIGZvciBXaW5kb3dzIFBob25lczogaHR0cHM6Ly9naXRodWIuY29tL3JhY2t0L3JlYWN0LXJvdXRlci9pc3N1ZXMvNTg2XG4gKi9cblxuZnVuY3Rpb24gc3VwcG9ydHNIaXN0b3J5KCkge1xuICB2YXIgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuICBpZiAoKHVhLmluZGV4T2YoJ0FuZHJvaWQgMi4nKSAhPT0gLTEgfHwgdWEuaW5kZXhPZignQW5kcm9pZCA0LjAnKSAhPT0gLTEpICYmIHVhLmluZGV4T2YoJ01vYmlsZSBTYWZhcmknKSAhPT0gLTEgJiYgdWEuaW5kZXhPZignQ2hyb21lJykgPT09IC0xICYmIHVhLmluZGV4T2YoJ1dpbmRvd3MgUGhvbmUnKSA9PT0gLTEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHdpbmRvdy5oaXN0b3J5ICYmICdwdXNoU3RhdGUnIGluIHdpbmRvdy5oaXN0b3J5O1xufVxuXG4vKipcbiAqIFJldHVybnMgZmFsc2UgaWYgdXNpbmcgZ28obikgd2l0aCBoYXNoIGhpc3RvcnkgY2F1c2VzIGEgZnVsbCBwYWdlIHJlbG9hZC5cbiAqL1xuXG5mdW5jdGlvbiBzdXBwb3J0c0dvV2l0aG91dFJlbG9hZFVzaW5nSGFzaCgpIHtcbiAgdmFyIHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbiAgcmV0dXJuIHVhLmluZGV4T2YoJ0ZpcmVmb3gnKSA9PT0gLTE7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vaGlzdG9yeS9saWIvRE9NVXRpbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 204 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {/*eslint-disable no-empty */\n'use strict';\n\nexports.__esModule = true;\nexports.saveState = saveState;\nexports.readState = readState;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar KeyPrefix = '@@History/';\nvar QuotaExceededError = 'QuotaExceededError';\nvar SecurityError = 'SecurityError';\n\nfunction createKey(key) {\n return KeyPrefix + key;\n}\n\nfunction saveState(key, state) {\n try {\n window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined;\n\n return;\n }\n\n if (error.name === QuotaExceededError && window.sessionStorage.length === 0) {\n // Safari \"private mode\" throws QuotaExceededError.\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined;\n\n return;\n }\n\n throw error;\n }\n}\n\nfunction readState(key) {\n var json = undefined;\n try {\n json = window.sessionStorage.getItem(createKey(key));\n } catch (error) {\n if (error.name === SecurityError) {\n // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n // attempt to access window.sessionStorage.\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined;\n\n return null;\n }\n }\n\n if (json) {\n try {\n return JSON.parse(json);\n } catch (error) {\n // Ignore invalid JSON.\n }\n }\n\n return null;\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9ET01TdGF0ZVN0b3JhZ2UuanM/Y2RlYyJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsInNhdmVTdGF0ZSIsInJlYWRTdGF0ZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfd2FybmluZyIsInJlcXVpcmUiLCJfd2FybmluZzIiLCJLZXlQcmVmaXgiLCJRdW90YUV4Y2VlZGVkRXJyb3IiLCJTZWN1cml0eUVycm9yIiwiY3JlYXRlS2V5Iiwia2V5Iiwic3RhdGUiLCJ3aW5kb3ciLCJzZXNzaW9uU3RvcmFnZSIsInNldEl0ZW0iLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3IiLCJuYW1lIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwianNvbiIsImdldEl0ZW0iLCJwYXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjtBQUNBRCxRQUFRRSxTQUFSLEdBQW9CQSxTQUFwQjtBQUNBRixRQUFRRyxTQUFSLEdBQW9CQSxTQUFwQjs7QUFFQSxTQUFTQyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJSixVQUFYLEdBQXdCSSxHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHLElBQUlDLFdBQVcsbUJBQUFDLENBQVEsR0FBUixDQUFmOztBQUVBLElBQUlDLFlBQVlKLHVCQUF1QkUsUUFBdkIsQ0FBaEI7O0FBRUEsSUFBSUcsWUFBWSxZQUFoQjtBQUNBLElBQUlDLHFCQUFxQixvQkFBekI7QUFDQSxJQUFJQyxnQkFBZ0IsZUFBcEI7O0FBRUEsU0FBU0MsU0FBVCxDQUFtQkMsR0FBbkIsRUFBd0I7QUFDdEIsU0FBT0osWUFBWUksR0FBbkI7QUFDRDs7QUFFRCxTQUFTWCxTQUFULENBQW1CVyxHQUFuQixFQUF3QkMsS0FBeEIsRUFBK0I7QUFDN0IsTUFBSTtBQUNGQyxXQUFPQyxjQUFQLENBQXNCQyxPQUF0QixDQUE4QkwsVUFBVUMsR0FBVixDQUE5QixFQUE4Q0ssS0FBS0MsU0FBTCxDQUFlTCxLQUFmLENBQTlDO0FBQ0QsR0FGRCxDQUVFLE9BQU9NLEtBQVAsRUFBYztBQUNkLFFBQUlBLE1BQU1DLElBQU4sS0FBZVYsYUFBbkIsRUFBa0M7QUFDaEM7QUFDQTtBQUNBVyxjQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NoQixVQUFVLFNBQVYsRUFBcUIsS0FBckIsRUFBNEIsMEZBQTVCLENBQXhDLEdBQWtLaUIsU0FBbEs7O0FBRUE7QUFDRDs7QUFFRCxRQUFJTCxNQUFNQyxJQUFOLEtBQWVYLGtCQUFmLElBQXFDSyxPQUFPQyxjQUFQLENBQXNCVSxNQUF0QixLQUFpQyxDQUExRSxFQUE2RTtBQUMzRTtBQUNBSixjQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NoQixVQUFVLFNBQVYsRUFBcUIsS0FBckIsRUFBNEIsd0ZBQTVCLENBQXhDLEdBQWdLaUIsU0FBaEs7O0FBRUE7QUFDRDs7QUFFRCxVQUFNTCxLQUFOO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTakIsU0FBVCxDQUFtQlUsR0FBbkIsRUFBd0I7QUFDdEIsTUFBSWMsT0FBT0YsU0FBWDtBQUNBLE1BQUk7QUFDRkUsV0FBT1osT0FBT0MsY0FBUCxDQUFzQlksT0FBdEIsQ0FBOEJoQixVQUFVQyxHQUFWLENBQTlCLENBQVA7QUFDRCxHQUZELENBRUUsT0FBT08sS0FBUCxFQUFjO0FBQ2QsUUFBSUEsTUFBTUMsSUFBTixLQUFlVixhQUFuQixFQUFrQztBQUNoQztBQUNBO0FBQ0FXLGNBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q2hCLFVBQVUsU0FBVixFQUFxQixLQUFyQixFQUE0QiwwRkFBNUIsQ0FBeEMsR0FBa0tpQixTQUFsSzs7QUFFQSxhQUFPLElBQVA7QUFDRDtBQUNGOztBQUVELE1BQUlFLElBQUosRUFBVTtBQUNSLFFBQUk7QUFDRixhQUFPVCxLQUFLVyxLQUFMLENBQVdGLElBQVgsQ0FBUDtBQUNELEtBRkQsQ0FFRSxPQUFPUCxLQUFQLEVBQWM7QUFDZDtBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxJQUFQO0FBQ0QsQyIsImZpbGUiOiIyMDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludC1kaXNhYmxlIG5vLWVtcHR5ICovXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLnNhdmVTdGF0ZSA9IHNhdmVTdGF0ZTtcbmV4cG9ydHMucmVhZFN0YXRlID0gcmVhZFN0YXRlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG52YXIgS2V5UHJlZml4ID0gJ0BASGlzdG9yeS8nO1xudmFyIFF1b3RhRXhjZWVkZWRFcnJvciA9ICdRdW90YUV4Y2VlZGVkRXJyb3InO1xudmFyIFNlY3VyaXR5RXJyb3IgPSAnU2VjdXJpdHlFcnJvcic7XG5cbmZ1bmN0aW9uIGNyZWF0ZUtleShrZXkpIHtcbiAgcmV0dXJuIEtleVByZWZpeCArIGtleTtcbn1cblxuZnVuY3Rpb24gc2F2ZVN0YXRlKGtleSwgc3RhdGUpIHtcbiAgdHJ5IHtcbiAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShjcmVhdGVLZXkoa2V5KSwgSlNPTi5zdHJpbmdpZnkoc3RhdGUpKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IubmFtZSA9PT0gU2VjdXJpdHlFcnJvcikge1xuICAgICAgLy8gQmxvY2tpbmcgY29va2llcyBpbiBDaHJvbWUvRmlyZWZveC9TYWZhcmkgdGhyb3dzIFNlY3VyaXR5RXJyb3Igb24gYW55XG4gICAgICAvLyBhdHRlbXB0IHRvIGFjY2VzcyB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZmFsc2UsICdbaGlzdG9yeV0gVW5hYmxlIHRvIHNhdmUgc3RhdGU7IHNlc3Npb25TdG9yYWdlIGlzIG5vdCBhdmFpbGFibGUgZHVlIHRvIHNlY3VyaXR5IHNldHRpbmdzJykgOiB1bmRlZmluZWQ7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IubmFtZSA9PT0gUXVvdGFFeGNlZWRlZEVycm9yICYmIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIFNhZmFyaSBcInByaXZhdGUgbW9kZVwiIHRocm93cyBRdW90YUV4Y2VlZGVkRXJyb3IuXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZmFsc2UsICdbaGlzdG9yeV0gVW5hYmxlIHRvIHNhdmUgc3RhdGU7IHNlc3Npb25TdG9yYWdlIGlzIG5vdCBhdmFpbGFibGUgaW4gU2FmYXJpIHByaXZhdGUgbW9kZScpIDogdW5kZWZpbmVkO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhZFN0YXRlKGtleSkge1xuICB2YXIganNvbiA9IHVuZGVmaW5lZDtcbiAgdHJ5IHtcbiAgICBqc29uID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oY3JlYXRlS2V5KGtleSkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvci5uYW1lID09PSBTZWN1cml0eUVycm9yKSB7XG4gICAgICAvLyBCbG9ja2luZyBjb29raWVzIGluIENocm9tZS9GaXJlZm94L1NhZmFyaSB0aHJvd3MgU2VjdXJpdHlFcnJvciBvbiBhbnlcbiAgICAgIC8vIGF0dGVtcHQgdG8gYWNjZXNzIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfd2FybmluZzJbJ2RlZmF1bHQnXShmYWxzZSwgJ1toaXN0b3J5XSBVbmFibGUgdG8gcmVhZCBzdGF0ZTsgc2Vzc2lvblN0b3JhZ2UgaXMgbm90IGF2YWlsYWJsZSBkdWUgdG8gc2VjdXJpdHkgc2V0dGluZ3MnKSA6IHVuZGVmaW5lZDtcblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgaWYgKGpzb24pIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElnbm9yZSBpbnZhbGlkIEpTT04uXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vaGlzdG9yeS9saWIvRE9NU3RhdGVTdG9yYWdlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 205 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = __webpack_require__(202);\n\nvar _DOMUtils = __webpack_require__(203);\n\nvar _createHistory = __webpack_require__(206);\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createDOMHistory(options) {\n var history = _createHistory2['default'](_extends({\n getUserConfirmation: _DOMUtils.getUserConfirmation\n }, options, {\n go: _DOMUtils.go\n }));\n\n function listen(listener) {\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined;\n\n return history.listen(listener);\n }\n\n return _extends({}, history, {\n listen: listen\n });\n}\n\nexports['default'] = createDOMHistory;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9jcmVhdGVET01IaXN0b3J5LmpzPzA0ZmIiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2ludmFyaWFudCIsInJlcXVpcmUiLCJfaW52YXJpYW50MiIsIl9FeGVjdXRpb25FbnZpcm9ubWVudCIsIl9ET01VdGlscyIsIl9jcmVhdGVIaXN0b3J5IiwiX2NyZWF0ZUhpc3RvcnkyIiwiY3JlYXRlRE9NSGlzdG9yeSIsIm9wdGlvbnMiLCJoaXN0b3J5IiwiZ2V0VXNlckNvbmZpcm1hdGlvbiIsImdvIiwibGlzdGVuIiwibGlzdGVuZXIiLCJjYW5Vc2VET00iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLFdBQVdDLE9BQU9DLE1BQVAsSUFBaUIsVUFBVUMsTUFBVixFQUFrQjtBQUFFLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxVQUFVQyxNQUE5QixFQUFzQ0YsR0FBdEMsRUFBMkM7QUFBRSxRQUFJRyxTQUFTRixVQUFVRCxDQUFWLENBQWIsQ0FBMkIsS0FBSyxJQUFJSSxHQUFULElBQWdCRCxNQUFoQixFQUF3QjtBQUFFLFVBQUlOLE9BQU9RLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ0osTUFBckMsRUFBNkNDLEdBQTdDLENBQUosRUFBdUQ7QUFBRUwsZUFBT0ssR0FBUCxJQUFjRCxPQUFPQyxHQUFQLENBQWQ7QUFBNEI7QUFBRTtBQUFFLEdBQUMsT0FBT0wsTUFBUDtBQUFnQixDQUFoUTs7QUFFQSxTQUFTUyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJZCxVQUFYLEdBQXdCYyxHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHLElBQUlDLGFBQWEsbUJBQUFDLENBQVEsR0FBUixDQUFqQjs7QUFFQSxJQUFJQyxjQUFjSix1QkFBdUJFLFVBQXZCLENBQWxCOztBQUVBLElBQUlHLHdCQUF3QixtQkFBQUYsQ0FBUSxHQUFSLENBQTVCOztBQUVBLElBQUlHLFlBQVksbUJBQUFILENBQVEsR0FBUixDQUFoQjs7QUFFQSxJQUFJSSxpQkFBaUIsbUJBQUFKLENBQVEsR0FBUixDQUFyQjs7QUFFQSxJQUFJSyxrQkFBa0JSLHVCQUF1Qk8sY0FBdkIsQ0FBdEI7O0FBRUEsU0FBU0UsZ0JBQVQsQ0FBMEJDLE9BQTFCLEVBQW1DO0FBQ2pDLE1BQUlDLFVBQVVILGdCQUFnQixTQUFoQixFQUEyQnBCLFNBQVM7QUFDaER3Qix5QkFBcUJOLFVBQVVNO0FBRGlCLEdBQVQsRUFFdENGLE9BRnNDLEVBRTdCO0FBQ1ZHLFFBQUlQLFVBQVVPO0FBREosR0FGNkIsQ0FBM0IsQ0FBZDs7QUFNQSxXQUFTQyxNQUFULENBQWdCQyxRQUFoQixFQUEwQjtBQUN4QixLQUFDVixzQkFBc0JXLFNBQXZCLEdBQW1DQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NmLFlBQVksU0FBWixFQUF1QixLQUF2QixFQUE4Qix5QkFBOUIsQ0FBeEMsR0FBbUdBLFlBQVksU0FBWixFQUF1QixLQUF2QixDQUF0SSxHQUFzS2dCLFNBQXRLOztBQUVBLFdBQU9ULFFBQVFHLE1BQVIsQ0FBZUMsUUFBZixDQUFQO0FBQ0Q7O0FBRUQsU0FBTzNCLFNBQVMsRUFBVCxFQUFhdUIsT0FBYixFQUFzQjtBQUMzQkcsWUFBUUE7QUFEbUIsR0FBdEIsQ0FBUDtBQUdEOztBQUVENUIsUUFBUSxTQUFSLElBQXFCdUIsZ0JBQXJCO0FBQ0FZLE9BQU9uQyxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyMDUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9pbnZhcmlhbnQgPSByZXF1aXJlKCdpbnZhcmlhbnQnKTtcblxudmFyIF9pbnZhcmlhbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaW52YXJpYW50KTtcblxudmFyIF9FeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJy4vRXhlY3V0aW9uRW52aXJvbm1lbnQnKTtcblxudmFyIF9ET01VdGlscyA9IHJlcXVpcmUoJy4vRE9NVXRpbHMnKTtcblxudmFyIF9jcmVhdGVIaXN0b3J5ID0gcmVxdWlyZSgnLi9jcmVhdGVIaXN0b3J5Jyk7XG5cbnZhciBfY3JlYXRlSGlzdG9yeTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jcmVhdGVIaXN0b3J5KTtcblxuZnVuY3Rpb24gY3JlYXRlRE9NSGlzdG9yeShvcHRpb25zKSB7XG4gIHZhciBoaXN0b3J5ID0gX2NyZWF0ZUhpc3RvcnkyWydkZWZhdWx0J10oX2V4dGVuZHMoe1xuICAgIGdldFVzZXJDb25maXJtYXRpb246IF9ET01VdGlscy5nZXRVc2VyQ29uZmlybWF0aW9uXG4gIH0sIG9wdGlvbnMsIHtcbiAgICBnbzogX0RPTVV0aWxzLmdvXG4gIH0pKTtcblxuICBmdW5jdGlvbiBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICAhX0V4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnRE9NIGhpc3RvcnkgbmVlZHMgYSBET00nKSA6IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGhpc3RvcnkubGlzdGVuKGxpc3RlbmVyKTtcbiAgfVxuXG4gIHJldHVybiBfZXh0ZW5kcyh7fSwgaGlzdG9yeSwge1xuICAgIGxpc3RlbjogbGlzdGVuXG4gIH0pO1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBjcmVhdGVET01IaXN0b3J5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vaGlzdG9yeS9saWIvY3JlYXRlRE9NSGlzdG9yeS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 206 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _deepEqual = __webpack_require__(207);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _AsyncUtils = __webpack_require__(210);\n\nvar _Actions = __webpack_require__(201);\n\nvar _createLocation2 = __webpack_require__(211);\n\nvar _createLocation3 = _interopRequireDefault(_createLocation2);\n\nvar _runTransitionHook = __webpack_require__(214);\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _deprecate = __webpack_require__(215);\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction createRandomKey(length) {\n return Math.random().toString(36).substr(2, length);\n}\n\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search &&\n //a.action === b.action && // Different action !== location change.\n a.key === b.key && _deepEqual2['default'](a.state, b.state);\n}\n\nvar DefaultKeyLength = 6;\n\nfunction createHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var getCurrentLocation = options.getCurrentLocation;\n var finishTransition = options.finishTransition;\n var saveState = options.saveState;\n var go = options.go;\n var keyLength = options.keyLength;\n var getUserConfirmation = options.getUserConfirmation;\n\n if (typeof keyLength !== 'number') keyLength = DefaultKeyLength;\n\n var transitionHooks = [];\n\n function listenBefore(hook) {\n transitionHooks.push(hook);\n\n return function () {\n transitionHooks = transitionHooks.filter(function (item) {\n return item !== hook;\n });\n };\n }\n\n var allKeys = [];\n var changeListeners = [];\n var location = undefined;\n\n function getCurrent() {\n if (pendingLocation && pendingLocation.action === _Actions.POP) {\n return allKeys.indexOf(pendingLocation.key);\n } else if (location) {\n return allKeys.indexOf(location.key);\n } else {\n return -1;\n }\n }\n\n function updateLocation(newLocation) {\n var current = getCurrent();\n\n location = newLocation;\n\n if (location.action === _Actions.PUSH) {\n allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]);\n } else if (location.action === _Actions.REPLACE) {\n allKeys[current] = location.key;\n }\n\n changeListeners.forEach(function (listener) {\n listener(location);\n });\n }\n\n function listen(listener) {\n changeListeners.push(listener);\n\n if (location) {\n listener(location);\n } else {\n var _location = getCurrentLocation();\n allKeys = [_location.key];\n updateLocation(_location);\n }\n\n return function () {\n changeListeners = changeListeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function confirmTransitionTo(location, callback) {\n _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) {\n _runTransitionHook2['default'](transitionHooks[index], location, function (result) {\n if (result != null) {\n done(result);\n } else {\n next();\n }\n });\n }, function (message) {\n if (getUserConfirmation && typeof message === 'string') {\n getUserConfirmation(message, function (ok) {\n callback(ok !== false);\n });\n } else {\n callback(message !== false);\n }\n });\n }\n\n var pendingLocation = undefined;\n\n function transitionTo(nextLocation) {\n if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do.\n\n pendingLocation = nextLocation;\n\n confirmTransitionTo(nextLocation, function (ok) {\n if (pendingLocation !== nextLocation) return; // Transition was interrupted.\n\n if (ok) {\n // treat PUSH to current path like REPLACE to be consistent with browsers\n if (nextLocation.action === _Actions.PUSH) {\n var _getCurrentLocation = getCurrentLocation();\n\n var pathname = _getCurrentLocation.pathname;\n var search = _getCurrentLocation.search;\n\n var currentPath = pathname + search;\n var path = nextLocation.pathname + nextLocation.search;\n\n if (currentPath === path) nextLocation.action = _Actions.REPLACE;\n }\n\n if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);\n } else if (location && nextLocation.action === _Actions.POP) {\n var prevIndex = allKeys.indexOf(location.key);\n var nextIndex = allKeys.indexOf(nextLocation.key);\n\n if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL.\n }\n });\n }\n\n function pushState(state, path) {\n transitionTo(createLocation(path, state, _Actions.PUSH, createKey()));\n }\n\n function push(path) {\n pushState(null, path);\n }\n\n function replaceState(state, path) {\n transitionTo(createLocation(path, state, _Actions.REPLACE, createKey()));\n }\n\n function replace(path) {\n replaceState(null, path);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function createKey() {\n return createRandomKey(keyLength);\n }\n\n function createPath(path) {\n if (path == null || typeof path === 'string') return path;\n\n var pathname = path.pathname;\n var search = path.search;\n var hash = path.hash;\n\n var result = pathname;\n\n if (search) result += search;\n\n if (hash) result += hash;\n\n return result;\n }\n\n function createHref(path) {\n return createPath(path);\n }\n\n function createLocation(path, state, action) {\n var key = arguments.length <= 3 || arguments[3] === undefined ? createKey() : arguments[3];\n\n return _createLocation3['default'](path, state, action, key);\n }\n\n // deprecated\n function setState(state) {\n if (location) {\n updateLocationState(location, state);\n updateLocation(location);\n } else {\n updateLocationState(getCurrentLocation(), state);\n }\n }\n\n function updateLocationState(location, state) {\n location.state = _extends({}, location.state, state);\n saveState(location.key, location.state);\n }\n\n // deprecated\n function registerTransitionHook(hook) {\n if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook);\n }\n\n // deprecated\n function unregisterTransitionHook(hook) {\n transitionHooks = transitionHooks.filter(function (item) {\n return item !== hook;\n });\n }\n\n return {\n listenBefore: listenBefore,\n listen: listen,\n transitionTo: transitionTo,\n pushState: pushState,\n replaceState: replaceState,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n createKey: createKey,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation,\n\n setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'),\n registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'),\n unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead')\n };\n}\n\nexports['default'] = createHistory;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9jcmVhdGVIaXN0b3J5LmpzPzI2OWMiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2RlZXBFcXVhbCIsInJlcXVpcmUiLCJfZGVlcEVxdWFsMiIsIl9Bc3luY1V0aWxzIiwiX0FjdGlvbnMiLCJfY3JlYXRlTG9jYXRpb24yIiwiX2NyZWF0ZUxvY2F0aW9uMyIsIl9ydW5UcmFuc2l0aW9uSG9vayIsIl9ydW5UcmFuc2l0aW9uSG9vazIiLCJfZGVwcmVjYXRlIiwiX2RlcHJlY2F0ZTIiLCJjcmVhdGVSYW5kb21LZXkiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJzdWJzdHIiLCJsb2NhdGlvbnNBcmVFcXVhbCIsImEiLCJiIiwicGF0aG5hbWUiLCJzZWFyY2giLCJzdGF0ZSIsIkRlZmF1bHRLZXlMZW5ndGgiLCJjcmVhdGVIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsImdldEN1cnJlbnRMb2NhdGlvbiIsImZpbmlzaFRyYW5zaXRpb24iLCJzYXZlU3RhdGUiLCJnbyIsImtleUxlbmd0aCIsImdldFVzZXJDb25maXJtYXRpb24iLCJ0cmFuc2l0aW9uSG9va3MiLCJsaXN0ZW5CZWZvcmUiLCJob29rIiwicHVzaCIsImZpbHRlciIsIml0ZW0iLCJhbGxLZXlzIiwiY2hhbmdlTGlzdGVuZXJzIiwibG9jYXRpb24iLCJnZXRDdXJyZW50IiwicGVuZGluZ0xvY2F0aW9uIiwiYWN0aW9uIiwiUE9QIiwiaW5kZXhPZiIsInVwZGF0ZUxvY2F0aW9uIiwibmV3TG9jYXRpb24iLCJjdXJyZW50IiwiUFVTSCIsImNvbmNhdCIsInNsaWNlIiwiUkVQTEFDRSIsImZvckVhY2giLCJsaXN0ZW5lciIsImxpc3RlbiIsIl9sb2NhdGlvbiIsImNvbmZpcm1UcmFuc2l0aW9uVG8iLCJjYWxsYmFjayIsImxvb3BBc3luYyIsImluZGV4IiwibmV4dCIsImRvbmUiLCJyZXN1bHQiLCJtZXNzYWdlIiwib2siLCJ0cmFuc2l0aW9uVG8iLCJuZXh0TG9jYXRpb24iLCJfZ2V0Q3VycmVudExvY2F0aW9uIiwiY3VycmVudFBhdGgiLCJwYXRoIiwicHJldkluZGV4IiwibmV4dEluZGV4IiwicHVzaFN0YXRlIiwiY3JlYXRlTG9jYXRpb24iLCJjcmVhdGVLZXkiLCJyZXBsYWNlU3RhdGUiLCJyZXBsYWNlIiwiZ29CYWNrIiwiZ29Gb3J3YXJkIiwiY3JlYXRlUGF0aCIsImhhc2giLCJjcmVhdGVIcmVmIiwic2V0U3RhdGUiLCJ1cGRhdGVMb2NhdGlvblN0YXRlIiwicmVnaXN0ZXJUcmFuc2l0aW9uSG9vayIsInVucmVnaXN0ZXJUcmFuc2l0aW9uSG9vayIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsV0FBV0MsT0FBT0MsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQUUsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlDLFVBQVVDLE1BQTlCLEVBQXNDRixHQUF0QyxFQUEyQztBQUFFLFFBQUlHLFNBQVNGLFVBQVVELENBQVYsQ0FBYixDQUEyQixLQUFLLElBQUlJLEdBQVQsSUFBZ0JELE1BQWhCLEVBQXdCO0FBQUUsVUFBSU4sT0FBT1EsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDSixNQUFyQyxFQUE2Q0MsR0FBN0MsQ0FBSixFQUF1RDtBQUFFTCxlQUFPSyxHQUFQLElBQWNELE9BQU9DLEdBQVAsQ0FBZDtBQUE0QjtBQUFFO0FBQUUsR0FBQyxPQUFPTCxN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QixFQUErQyxnRUFBL0MsQ0FqQm5CO0FBa0JMQyw4QkFBMEI1RSxZQUFZLFNBQVosRUFBdUI0RSx3QkFBdkIsRUFBaUQsNkZBQWpEO0FBbEJyQixHQUFQO0FBb0JEOztBQUVEdEcsUUFBUSxTQUFSLElBQXFCdUMsYUFBckI7QUFDQWdFLE9BQU92RyxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIiLCJmaWxlIjoiMjA2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfZGVlcEVxdWFsID0gcmVxdWlyZSgnZGVlcC1lcXVhbCcpO1xuXG52YXIgX2RlZXBFcXVhbDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kZWVwRXF1YWwpO1xuXG52YXIgX0FzeW5jVXRpbHMgPSByZXF1aXJlKCcuL0FzeW5jVXRpbHMnKTtcblxudmFyIF9BY3Rpb25zID0gcmVxdWlyZSgnLi9BY3Rpb25zJyk7XG5cbnZhciBfY3JlYXRlTG9jYXRpb24yID0gcmVxdWlyZSgnLi9jcmVhdGVMb2NhdGlvbicpO1xuXG52YXIgX2NyZWF0ZUxvY2F0aW9uMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZUxvY2F0aW9uMik7XG5cbnZhciBfcnVuVHJhbnNpdGlvbkhvb2sgPSByZXF1aXJlKCcuL3J1blRyYW5zaXRpb25Ib29rJyk7XG5cbnZhciBfcnVuVHJhbnNpdGlvbkhvb2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcnVuVHJhbnNpdGlvbkhvb2spO1xuXG52YXIgX2RlcHJlY2F0ZSA9IHJlcXVpcmUoJy4vZGVwcmVjYXRlJyk7XG5cbnZhciBfZGVwcmVjYXRlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlcHJlY2F0ZSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVJhbmRvbUtleShsZW5ndGgpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCBsZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBsb2NhdGlvbnNBcmVFcXVhbChhLCBiKSB7XG4gIHJldHVybiBhLnBhdGhuYW1lID09PSBiLnBhdGhuYW1lICYmIGEuc2VhcmNoID09PSBiLnNlYXJjaCAmJlxuICAvL2EuYWN0aW9uID09PSBiLmFjdGlvbiAmJiAvLyBEaWZmZXJlbnQgYWN0aW9uICE9PSBsb2NhdGlvbiBjaGFuZ2UuXG4gIGEua2V5ID09PSBiLmtleSAmJiBfZGVlcEVxdWFsMlsnZGVmYXVsdCddKGEuc3RhdGUsIGIuc3RhdGUpO1xufVxuXG52YXIgRGVmYXVsdEtleUxlbmd0aCA9IDY7XG5cbmZ1bmN0aW9uIGNyZWF0ZUhpc3RvcnkoKSB7XG4gIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG4gIHZhciBnZXRDdXJyZW50TG9jYXRpb24gPSBvcHRpb25zLmdldEN1cnJlbnRMb2NhdGlvbjtcbiAgdmFyIGZpbmlzaFRyYW5zaXRpb24gPSBvcHRpb25zLmZpbmlzaFRyYW5zaXRpb247XG4gIHZhciBzYXZlU3RhdGUgPSBvcHRpb25zLnNhdmVTdGF0ZTtcbiAgdmFyIGdvID0gb3B0aW9ucy5nbztcbiAgdmFyIGtleUxlbmd0aCA9IG9wdGlvbnMua2V5TGVuZ3RoO1xuICB2YXIgZ2V0VXNlckNvbmZpcm1hdGlvbiA9IG9wdGlvbnMuZ2V0VXNlckNvbmZpcm1hdGlvbjtcblxuICBpZiAodHlwZW9mIGtleUxlbmd0aCAhPT0gJ251bWJlcicpIGtleUxlbmd0aCA9IERlZmF1bHRLZXlMZW5ndGg7XG5cbiAgdmFyIHRyYW5zaXRpb25Ib29rcyA9IFtdO1xuXG4gIGZ1bmN0aW9uIGxpc3RlbkJlZm9yZShob29rKSB7XG4gICAgdHJhbnNpdGlvbkhvb2tzLnB1c2goaG9vayk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgdHJhbnNpdGlvbkhvb2tzID0gdHJhbnNpdGlvbkhvb2tzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbSAhPT0gaG9vaztcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICB2YXIgYWxsS2V5cyA9IFtdO1xuICB2YXIgY2hhbmdlTGlzdGVuZXJzID0gW107XG4gIHZhciBsb2NhdGlvbiA9IHVuZGVmaW5lZDtcblxuICBmdW5jdGlvbiBnZXRDdXJyZW50KCkge1xuICAgIGlmIChwZW5kaW5nTG9jYXRpb24gJiYgcGVuZGluZ0xvY2F0aW9uLmFjdGlvbiA9PT0gX0FjdGlvbnMuUE9QKSB7XG4gICAgICByZXR1cm4gYWxsS2V5cy5pbmRleE9mKHBlbmRpbmdMb2NhdGlvbi5rZXkpO1xuICAgIH0gZWxzZSBpZiAobG9jYXRpb24pIHtcbiAgICAgIHJldHVybiBhbGxLZXlzLmluZGV4T2YobG9jYXRpb24ua2V5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUxvY2F0aW9uKG5ld0xvY2F0aW9uKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBnZXRDdXJyZW50KCk7XG5cbiAgICBsb2NhdGlvbiA9IG5ld0xvY2F0aW9uO1xuXG4gICAgaWYgKGxvY2F0aW9uLmFjdGlvbiA9PT0gX0FjdGlvbnMuUFVTSCkge1xuICAgICAgYWxsS2V5cyA9IFtdLmNvbmNhdChhbGxLZXlzLnNsaWNlKDAsIGN1cnJlbnQgKyAxKSwgW2xvY2F0aW9uLmtleV0pO1xuICAgIH0gZWxzZSBpZiAobG9jYXRpb24uYWN0aW9uID09PSBfQWN0aW9ucy5SRVBMQUNFKSB7XG4gICAgICBhbGxLZXlzW2N1cnJlbnRdID0gbG9jYXRpb24ua2V5O1xuICAgIH1cblxuICAgIGNoYW5nZUxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uIChsaXN0ZW5lcikge1xuICAgICAgbGlzdGVuZXIobG9jYXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gbGlzdGVuKGxpc3RlbmVyKSB7XG4gICAgY2hhbmdlTGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuXG4gICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICBsaXN0ZW5lcihsb2NhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfbG9jYXRpb24gPSBnZXRDdXJyZW50TG9jYXRpb24oKTtcbiAgICAgIGFsbEtleXMgPSBbX2xvY2F0aW9uLmtleV07XG4gICAgICB1cGRhdGVMb2NhdGlvbihfbG9jYXRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBjaGFuZ2VMaXN0ZW5lcnMgPSBjaGFuZ2VMaXN0ZW5lcnMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpdGVtICE9PSBsaXN0ZW5lcjtcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBjb25maXJtVHJhbnNpdGlvblRvKGxvY2F0aW9uLCBjYWxsYmFjaykge1xuICAgIF9Bc3luY1V0aWxzLmxvb3BBc3luYyh0cmFuc2l0aW9uSG9va3MubGVuZ3RoLCBmdW5jdGlvbiAoaW5kZXgsIG5leHQsIGRvbmUpIHtcbiAgICAgIF9ydW5UcmFuc2l0aW9uSG9vazJbJ2RlZmF1bHQnXSh0cmFuc2l0aW9uSG9va3NbaW5kZXhdLCBsb2NhdGlvbiwgZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICBkb25lKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgICAgaWYgKGdldFVzZXJDb25maXJtYXRpb24gJiYgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGdldFVzZXJDb25maXJtYXRpb24obWVzc2FnZSwgZnVuY3Rpb24gKG9rKSB7XG4gICAgICAgICAgY2FsbGJhY2sob2sgIT09IGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYWxsYmFjayhtZXNzYWdlICE9PSBmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB2YXIgcGVuZGluZ0xvY2F0aW9uID0gdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIHRyYW5zaXRpb25UbyhuZXh0TG9jYXRpb24pIHtcbiAgICBpZiAobG9jYXRpb24gJiYgbG9jYXRpb25zQXJlRXF1YWwobG9jYXRpb24sIG5leHRMb2NhdGlvbikpIHJldHVybjsgLy8gTm90aGluZyB0byBkby5cblxuICAgIHBlbmRpbmdMb2NhdGlvbiA9IG5leHRMb2NhdGlvbjtcblxuICAgIGNvbmZpcm1UcmFuc2l0aW9uVG8obmV4dExvY2F0aW9uLCBmdW5jdGlvbiAob2spIHtcbiAgICAgIGlmIChwZW5kaW5nTG9jYXRpb24gIT09IG5leHRMb2NhdGlvbikgcmV0dXJuOyAvLyBUcmFuc2l0aW9uIHdhcyBpbnRlcnJ1cHRlZC5cblxuICAgICAgaWYgKG9rKSB7XG4gICAgICAgIC8vIHRyZWF0IFBVU0ggdG8gY3VycmVudCBwYXRoIGxpa2UgUkVQTEFDRSB0byBiZSBjb25zaXN0ZW50IHdpdGggYnJvd3NlcnNcbiAgICAgICAgaWYgKG5leHRMb2NhdGlvbi5hY3Rpb24gPT09IF9BY3Rpb25zLlBVU0gpIHtcbiAgICAgICAgICB2YXIgX2dldEN1cnJlbnRMb2NhdGlvbiA9IGdldEN1cnJlbnRMb2NhdGlvbigpO1xuXG4gICAgICAgICAgdmFyIHBhdGhuYW1lID0gX2dldEN1cnJlbnRMb2NhdGlvbi5wYXRobmFtZTtcbiAgICAgICAgICB2YXIgc2VhcmNoID0gX2dldEN1cnJlbnRMb2NhdGlvbi5zZWFyY2g7XG5cbiAgICAgICAgICB2YXIgY3VycmVudFBhdGggPSBwYXRobmFtZSArIHNlYXJjaDtcbiAgICAgICAgICB2YXIgcGF0aCA9IG5leHRMb2NhdGlvbi5wYXRobmFtZSArIG5leHRMb2NhdGlvbi5zZWFyY2g7XG5cbiAgICAgICAgICBpZiAoY3VycmVudFBhdGggPT09IHBhdGgpIG5leHRMb2NhdGlvbi5hY3Rpb24gPSBfQWN0aW9ucy5SRVBMQUNFO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbmlzaFRyYW5zaXRpb24obmV4dExvY2F0aW9uKSAhPT0gZmFsc2UpIHVwZGF0ZUxvY2F0aW9uKG5leHRMb2NhdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKGxvY2F0aW9uICYmIG5leHRMb2NhdGlvbi5hY3Rpb24gPT09IF9BY3Rpb25zLlBPUCkge1xuICAgICAgICB2YXIgcHJldkluZGV4ID0gYWxsS2V5cy5pbmRleE9mKGxvY2F0aW9uLmtleSk7XG4gICAgICAgIHZhciBuZXh0SW5kZXggPSBhbGxLZXlzLmluZGV4T2YobmV4dExvY2F0aW9uLmtleSk7XG5cbiAgICAgICAgaWYgKHByZXZJbmRleCAhPT0gLTEgJiYgbmV4dEluZGV4ICE9PSAtMSkgZ28ocHJldkluZGV4IC0gbmV4dEluZGV4KTsgLy8gUmVzdG9yZSB0aGUgVVJMLlxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gcHVzaFN0YXRlKHN0YXRlLCBwYXRoKSB7XG4gICAgdHJhbnNpdGlvblRvKGNyZWF0ZUxvY2F0aW9uKHBhdGgsIHN0YXRlLCBfQWN0aW9ucy5QVVNILCBjcmVhdGVLZXkoKSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gcHVzaChwYXRoKSB7XG4gICAgcHVzaFN0YXRlKG51bGwsIHBhdGgpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZVN0YXRlKHN0YXRlLCBwYXRoKSB7XG4gICAgdHJhbnNpdGlvblRvKGNyZWF0ZUxvY2F0aW9uKHBhdGgsIHN0YXRlLCBfQWN0aW9ucy5SRVBMQUNFLCBjcmVhdGVLZXkoKSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVwbGFjZShwYXRoKSB7XG4gICAgcmVwbGFjZVN0YXRlKG51bGwsIHBhdGgpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ29CYWNrKCkge1xuICAgIGdvKC0xKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdvRm9yd2FyZCgpIHtcbiAgICBnbygxKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUtleSgpIHtcbiAgICByZXR1cm4gY3JlYXRlUmFuZG9tS2V5KGtleUxlbmd0aCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVQYXRoKHBhdGgpIHtcbiAgICBpZiAocGF0aCA9PSBudWxsIHx8IHR5cGVvZiBwYXRoID09PSAnc3RyaW5nJykgcmV0dXJuIHBhdGg7XG5cbiAgICB2YXIgcGF0aG5hbWUgPSBwYXRoLnBhdGhuYW1lO1xuICAgIHZhciBzZWFyY2ggPSBwYXRoLnNlYXJjaDtcbiAgICB2YXIgaGFzaCA9IHBhdGguaGFzaDtcblxuICAgIHZhciByZXN1bHQgPSBwYXRobmFtZTtcblxuICAgIGlmIChzZWFyY2gpIHJlc3VsdCArPSBzZWFyY2g7XG5cbiAgICBpZiAoaGFzaCkgcmVzdWx0ICs9IGhhc2g7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlSHJlZihwYXRoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZVBhdGgocGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVMb2NhdGlvbihwYXRoLCBzdGF0ZSwgYWN0aW9uKSB7XG4gICAgdmFyIGtleSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IGNyZWF0ZUtleSgpIDogYXJndW1lbnRzWzNdO1xuXG4gICAgcmV0dXJuIF9jcmVhdGVMb2NhdGlvbjNbJ2RlZmF1bHQnXShwYXRoLCBzdGF0ZSwgYWN0aW9uLCBrZXkpO1xuICB9XG5cbiAgLy8gZGVwcmVjYXRlZFxuICBmdW5jdGlvbiBzZXRTdGF0ZShzdGF0ZSkge1xuICAgIGlmIChsb2NhdGlvbikge1xuICAgICAgdXBkYXRlTG9jYXRpb25TdGF0ZShsb2NhdGlvbiwgc3RhdGUpO1xuICAgICAgdXBkYXRlTG9jYXRpb24obG9jYXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cGRhdGVMb2NhdGlvblN0YXRlKGdldEN1cnJlbnRMb2NhdGlvbigpLCBzdGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlTG9jYXRpb25TdGF0ZShsb2NhdGlvbiwgc3RhdGUpIHtcbiAgICBsb2NhdGlvbi5zdGF0ZSA9IF9leHRlbmRzKHt9LCBsb2NhdGlvbi5zdGF0ZSwgc3RhdGUpO1xuICAgIHNhdmVTdGF0ZShsb2NhdGlvbi5rZXksIGxvY2F0aW9uLnN0YXRlKTtcbiAgfVxuXG4gIC8vIGRlcHJlY2F0ZWRcbiAgZnVuY3Rpb24gcmVnaXN0ZXJUcmFuc2l0aW9uSG9vayhob29rKSB7XG4gICAgaWYgKHRyYW5zaXRpb25Ib29rcy5pbmRleE9mKGhvb2spID09PSAtMSkgdHJhbnNpdGlvbkhvb2tzLnB1c2goaG9vayk7XG4gIH1cblxuICAvLyBkZXByZWNhdGVkXG4gIGZ1bmN0aW9uIHVucmVnaXN0ZXJUcmFuc2l0aW9uSG9vayhob29rKSB7XG4gICAgdHJhbnNpdGlvbkhvb2tzID0gdHJhbnNpdGlvbkhvb2tzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0gIT09IGhvb2s7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxpc3RlbkJlZm9yZTogbGlzdGVuQmVmb3JlLFxuICAgIGxpc3RlbjogbGlzdGVuLFxuICAgIHRyYW5zaXRpb25UbzogdHJhbnNpdGlvblRvLFxuICAgIHB1c2hTdGF0ZTogcHVzaFN0YXRlLFxuICAgIHJlcGxhY2VTdGF0ZTogcmVwbGFjZVN0YXRlLFxuICAgIHB1c2g6IHB1c2gsXG4gICAgcmVwbGFjZTogcmVwbGFjZSxcbiAgICBnbzogZ28sXG4gICAgZ29CYWNrOiBnb0JhY2ssXG4gICAgZ29Gb3J3YXJkOiBnb0ZvcndhcmQsXG4gICAgY3JlYXRlS2V5OiBjcmVhdGVLZXksXG4gICAgY3JlYXRlUGF0aDogY3JlYXRlUGF0aCxcbiAgICBjcmVhdGVIcmVmOiBjcmVhdGVIcmVmLFxuICAgIGNyZWF0ZUxvY2F0aW9uOiBjcmVhdGVMb2NhdGlvbixcblxuICAgIHNldFN0YXRlOiBfZGVwcmVjYXRlMlsnZGVmYXVsdCddKHNldFN0YXRlLCAnc2V0U3RhdGUgaXMgZGVwcmVjYXRlZDsgdXNlIGxvY2F0aW9uLmtleSB0byBzYXZlIHN0YXRlIGluc3RlYWQnKSxcbiAgICByZWdpc3RlclRyYW5zaXRpb25Ib29rOiBfZGVwcmVjYXRlMlsnZGVmYXVsdCddKHJlZ2lzdGVyVHJhbnNpdGlvbkhvb2ssICdyZWdpc3RlclRyYW5zaXRpb25Ib29rIGlzIGRlcHJlY2F0ZWQ7IHVzZSBsaXN0ZW5CZWZvcmUgaW5zdGVhZCcpLFxuICAgIHVucmVnaXN0ZXJUcmFuc2l0aW9uSG9vazogX2RlcHJlY2F0ZTJbJ2RlZmF1bHQnXSh1bnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2ssICd1bnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2sgaXMgZGVwcmVjYXRlZDsgdXNlIHRoZSBjYWxsYmFjayByZXR1cm5lZCBmcm9tIGxpc3RlbkJlZm9yZSBpbnN0ZWFkJylcbiAgfTtcbn1cblxuZXhwb3J0c1snZGVmYXVsdCddID0gY3JlYXRlSGlzdG9yeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL2NyZWF0ZUhpc3RvcnkuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 207 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(208);\nvar isArguments = __webpack_require__(209);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || (typeof actual === 'undefined' ? 'undefined' : _typeof(actual)) != 'object' && (typeof expected === 'undefined' ? 'undefined' : _typeof(expected)) != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n};\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || (typeof x === 'undefined' ? 'undefined' : _typeof(x)) !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {\n //happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length) return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return (typeof a === 'undefined' ? 'undefined' : _typeof(a)) === (typeof b === 'undefined' ? 'undefined' : _typeof(b));\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9kZWVwLWVxdWFsL2luZGV4LmpzPzhjYjgiXSwibmFtZXMiOlsicFNsaWNlIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsIm9iamVjdEtleXMiLCJyZXF1aXJlIiwiaXNBcmd1bWVudHMiLCJkZWVwRXF1YWwiLCJtb2R1bGUiLCJleHBvcnRzIiwiYWN0dWFsIiwiZXhwZWN0ZWQiLCJvcHRzIiwiRGF0ZSIsImdldFRpbWUiLCJzdHJpY3QiLCJvYmpFcXVpdiIsImlzVW5kZWZpbmVkT3JOdWxsIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJpc0J1ZmZlciIsIngiLCJsZW5ndGgiLCJjb3B5IiwiYSIsImIiLCJpIiwia2V5IiwiY2FsbCIsImthIiwia2IiLCJlIiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBLFNBQVNDLE1BQU1DLFNBQU4sQ0FBZ0JDLEtBQTdCO0FBQ0EsSUFBSUMsYUFBYSxtQkFBQUMsQ0FBUSxHQUFSLENBQWpCO0FBQ0EsSUFBSUMsY0FBYyxtQkFBQUQsQ0FBUSxHQUFSLENBQWxCOztBQUVBLElBQUlFLFlBQVlDLE9BQU9DLE9BQVAsR0FBaUIsVUFBVUMsTUFBVixFQUFrQkMsUUFBbEIsRUFBNEJDLElBQTVCLEVBQWtDO0FBQ2pFLE1BQUksQ0FBQ0EsSUFBTCxFQUFXQSxPQUFPLEVBQVA7QUFDWDtBQUNBLE1BQUlGLFdBQVdDLFFBQWYsRUFBeUI7QUFDdkIsV0FBTyxJQUFQO0FBRUQsR0FIRCxNQUdPLElBQUlELGtCQUFrQkcsSUFBbEIsSUFBMEJGLG9CQUFvQkUsSUFBbEQsRUFBd0Q7QUFDN0QsV0FBT0gsT0FBT0ksT0FBUCxPQUFxQkgsU0FBU0csT0FBVCxFQUE1Qjs7QUFFRjtBQUNBO0FBQ0MsR0FMTSxNQUtBLElBQUksQ0FBQ0osTUFBRCxJQUFXLENBQUNDLFFBQVosSUFBd0IsUUFBT0QsTUFBUCx5Q0FBT0Es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SSxHQUFHSixDQUFILENBQWIsRUFDRSxPQUFPLEtBQVA7QUFDSDtBQUNEO0FBQ0E7QUFDQSxPQUFLQSxJQUFJRyxHQUFHUCxNQUFILEdBQVksQ0FBckIsRUFBd0JJLEtBQUssQ0FBN0IsRUFBZ0NBLEdBQWhDLEVBQXFDO0FBQ25DQyxVQUFNRSxHQUFHSCxDQUFILENBQU47QUFDQSxRQUFJLENBQUNuQixVQUFVaUIsRUFBRUcsR0FBRixDQUFWLEVBQWtCRixFQUFFRSxHQUFGLENBQWxCLEVBQTBCZixJQUExQixDQUFMLEVBQXNDLE9BQU8sS0FBUDtBQUN2QztBQUNELFNBQU8sUUFBT1ksQ0FBUCx5Q0FBT0EsQ0FBUCxlQUFvQkMsQ0FBcEIseUNBQW9CQSxDQUFwQixFQUFQO0FBQ0QiLCJmaWxlIjoiMjA3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHBTbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi9saWIva2V5cy5qcycpO1xudmFyIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9saWIvaXNfYXJndW1lbnRzLmpzJyk7XG5cbnZhciBkZWVwRXF1YWwgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhY3R1YWwsIGV4cGVjdGVkLCBvcHRzKSB7XG4gIGlmICghb3B0cykgb3B0cyA9IHt9O1xuICAvLyA3LjEuIEFsbCBpZGVudGljYWwgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBhcyBkZXRlcm1pbmVkIGJ5ID09PS5cbiAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcblxuICB9IGVsc2UgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIERhdGUgJiYgZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGFjdHVhbC5nZXRUaW1lKCkgPT09IGV4cGVjdGVkLmdldFRpbWUoKTtcblxuICAvLyA3LjMuIE90aGVyIHBhaXJzIHRoYXQgZG8gbm90IGJvdGggcGFzcyB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcsXG4gIC8vIGVxdWl2YWxlbmNlIGlzIGRldGVybWluZWQgYnkgPT0uXG4gIH0gZWxzZSBpZiAoIWFjdHVhbCB8fCAhZXhwZWN0ZWQgfHwgdHlwZW9mIGFjdHVhbCAhPSAnb2JqZWN0JyAmJiB0eXBlb2YgZXhwZWN0ZWQgIT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb3B0cy5zdHJpY3QgPyBhY3R1YWwgPT09IGV4cGVjdGVkIDogYWN0dWFsID09IGV4cGVjdGVkO1xuXG4gIC8vIDcuNC4gRm9yIGFsbCBvdGhlciBPYmplY3QgcGFpcnMsIGluY2x1ZGluZyBBcnJheSBvYmplY3RzLCBlcXVpdmFsZW5jZSBpc1xuICAvLyBkZXRlcm1pbmVkIGJ5IGhhdmluZyB0aGUgc2FtZSBudW1iZXIgb2Ygb3duZWQgcHJvcGVydGllcyAoYXMgdmVyaWZpZWRcbiAgLy8gd2l0aCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwpLCB0aGUgc2FtZSBzZXQgb2Yga2V5c1xuICAvLyAoYWx0aG91Z2ggbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIG9yZGVyKSwgZXF1aXZhbGVudCB2YWx1ZXMgZm9yIGV2ZXJ5XG4gIC8vIGNvcnJlc3BvbmRpbmcga2V5LCBhbmQgYW4gaWRlbnRpY2FsICdwcm90b3R5cGUnIHByb3BlcnR5LiBOb3RlOiB0aGlzXG4gIC8vIGFjY291bnRzIGZvciBib3RoIG5hbWVkIGFuZCBpbmRleGVkIHByb3BlcnRpZXMgb24gQXJyYXlzLlxuICB9IGVsc2Uge1xuICAgIHJldHVybiBvYmpFcXVpdihhY3R1YWwsIGV4cGVjdGVkLCBvcHRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gaXNCdWZmZXIgKHgpIHtcbiAgaWYgKCF4IHx8IHR5cGVvZiB4ICE9PSAnb2JqZWN0JyB8fCB0eXBlb2YgeC5sZW5ndGggIT09ICdudW1iZXInKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgeC5jb3B5ICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiB4LnNsaWNlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmICh4Lmxlbmd0aCA+IDAgJiYgdHlwZW9mIHhbMF0gIT09ICdudW1iZXInKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBvYmpFcXVpdihhLCBiLCBvcHRzKSB7XG4gIHZhciBpLCBrZXk7XG4gIGlmIChpc1VuZGVmaW5lZE9yTnVsbChhKSB8fCBpc1VuZGVmaW5lZE9yTnVsbChiKSlcbiAgICByZXR1cm4gZmFsc2U7XG4gIC8vIGFuIGlkZW50aWNhbCAncHJvdG90eXBlJyBwcm9wZXJ0eS5cbiAgaWYgKGEucHJvdG90eXBlICE9PSBiLnByb3RvdHlwZSkgcmV0dXJuIGZhbHNlO1xuICAvL35+fkkndmUgbWFuYWdlZCB0byBicmVhayBPYmplY3Qua2V5cyB0aHJvdWdoIHNjcmV3eSBhcmd1bWVudHMgcGFzc2luZy5cbiAgLy8gICBDb252ZXJ0aW5nIHRvIGFycmF5IHNvbHZlcyB0aGUgcHJvYmxlbS5cbiAgaWYgKGlzQXJndW1lbnRzKGEpKSB7XG4gICAgaWYgKCFpc0FyZ3VtZW50cyhiKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBhID0gcFNsaWNlLmNhbGwoYSk7XG4gICAgYiA9IHBTbGljZS5jYWxsKGIpO1xuICAgIHJldHVybiBkZWVwRXF1YWwoYSwgYiwgb3B0cyk7XG4gIH1cbiAgaWYgKGlzQnVmZmVyKGEpKSB7XG4gICAgaWYgKCFpc0J1ZmZlcihiKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHRyeSB7XG4gICAgdmFyIGthID0gb2JqZWN0S2V5cyhhKSxcbiAgICAgICAga2IgPSBvYmplY3RLZXlzKGIpO1xuICB9IGNhdGNoIChlKSB7Ly9oYXBwZW5zIHdoZW4gb25lIGlzIGEgc3RyaW5nIGxpdGVyYWwgYW5kIHRoZSBvdGhlciBpc24ndFxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBoYXZpbmcgdGhlIHNhbWUgbnVtYmVyIG9mIG93bmVkIHByb3BlcnRpZXMgKGtleXMgaW5jb3Jwb3JhdGVzXG4gIC8vIGhhc093blByb3BlcnR5KVxuICBpZiAoa2EubGVuZ3RoICE9IGtiLmxlbmd0aClcbiAgICByZXR1cm4gZmFsc2U7XG4gIC8vdGhlIHNhbWUgc2V0IG9mIGtleXMgKGFsdGhvdWdoIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBvcmRlciksXG4gIGthLnNvcnQoKTtcbiAga2Iuc29ydCgpO1xuICAvL35+fmNoZWFwIGtleSB0ZXN0XG4gIGZvciAoaSA9IGthLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgaWYgKGthW2ldICE9IGtiW2ldKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vZXF1aXZhbGVudCB2YWx1ZXMgZm9yIGV2ZXJ5IGNvcnJlc3BvbmRpbmcga2V5LCBhbmRcbiAgLy9+fn5wb3NzaWJseSBleHBlbnNpdmUgZGVlcCB0ZXN0XG4gIGZvciAoaSA9IGthLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAga2V5ID0ga2FbaV07XG4gICAgaWYgKCFkZWVwRXF1YWwoYVtrZXldLCBiW2tleV0sIG9wdHMpKSByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHR5cGVvZiBhID09PSB0eXBlb2YgYjtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2RlZXAtZXF1YWwvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 208 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nexports = module.exports = typeof Object.keys === 'function' ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim(obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9kZWVwLWVxdWFsL2xpYi9rZXlzLmpzP2FlM2YiXSwibmFtZXMiOlsiZXhwb3J0cyIsIm1vZHVsZSIsIk9iamVjdCIsImtleXMiLCJzaGltIiwib2JqIiwia2V5IiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsVUFBVUMsT0FBT0QsT0FBUCxHQUFpQixPQUFPRSxPQUFPQyxJQUFkLEtBQXVCLFVBQXZCLEdBQ3ZCRCxPQUFPQyxJQURnQixHQUNUQyxJQURsQjs7QUFHQUosUUFBUUksSUFBUixHQUFlQSxJQUFmO0FBQ0EsU0FBU0EsSUFBVCxDQUFlQyxHQUFmLEVBQW9CO0FBQ2xCLE1BQUlGLE9BQU8sRUFBWDtBQUNBLE9BQUssSUFBSUcsR0FBVCxJQUFnQkQsR0FBaEI7QUFBcUJGLFNBQUtJLElBQUwsQ0FBVUQsR0FBVjtBQUFyQixHQUNBLE9BQU9ILElBQVA7QUFDRCIsImZpbGUiOiIyMDguanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgT2JqZWN0LmtleXMgPT09ICdmdW5jdGlvbidcbiAgPyBPYmplY3Qua2V5cyA6IHNoaW07XG5cbmV4cG9ydHMuc2hpbSA9IHNoaW07XG5mdW5jdGlvbiBzaGltIChvYmopIHtcbiAgdmFyIGtleXMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikga2V5cy5wdXNoKGtleSk7XG4gIHJldHVybiBrZXlzO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vZGVlcC1lcXVhbC9saWIva2V5cy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 209 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar supportsArgumentsClass = function () {\n return Object.prototype.toString.call(arguments);\n}() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object) {\n return object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) == 'object' && typeof object.length == 'number' && Object.prototype.hasOwnProperty.call(object, 'callee') && !Object.prototype.propertyIsEnumerable.call(object, 'callee') || false;\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9kZWVwLWVxdWFsL2xpYi9pc19hcmd1bWVudHMuanM/NDI1YyJdLCJuYW1lcyI6WyJzdXBwb3J0c0FyZ3VtZW50c0NsYXNzIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiYXJndW1lbnRzIiwiZXhwb3J0cyIsIm1vZHVsZSIsInN1cHBvcnRlZCIsInVuc3VwcG9ydGVkIiwib2JqZWN0IiwibGVuZ3RoIiwiaGFzT3duUHJvcGVydHkiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUlBLHlCQUEwQixZQUFVO0FBQ3RDLFNBQU9DLE9BQU9DLFNBQVAsQ0FBaUJDLFFBQWpCLENBQTBCQyxJQUExQixDQUErQkMsU0FBL0IsQ0FBUDtBQUNELENBRjRCLE1BRXJCLG9CQUZSOztBQUlBQyxVQUFVQyxPQUFPRCxPQUFQLEdBQWlCTix5QkFBeUJRLFNBQXpCLEdBQXFDQyxXQUFoRTs7QUFFQUgsUUFBUUUsU0FBUixHQUFvQkEsU0FBcEI7QUFDQSxTQUFTQSxTQUFULENBQW1CRSxNQUFuQixFQUEyQjtBQUN6QixTQUFPVCxPQUFPQyxTQUFQLENBQWlCQyxRQUFqQixDQUEwQkMsSUFBMUIsQ0FBK0JNLE1BQS9CLEtBQTBDLG9CQUFqRDtBQUNEOztBQUVESixRQUFRRyxXQUFSLEdBQXNCQSxXQUF0QjtBQUNBLFNBQVNBLFdBQVQsQ0FBcUJDLE1BQXJCLEVBQTRCO0FBQzFCLFNBQU9BLFVBQ0wsUUFBT0EsTUFBUCx5Q0FBT0EsTUFBUCxNQUFpQixRQURaLElBRUwsT0FBT0EsT0FBT0MsTUFBZCxJQUF3QixRQUZuQixJQUdMVixPQUFPQyxTQUFQLENBQWlCVSxjQUFqQixDQUFnQ1IsSUFBaEMsQ0FBcUNNLE1BQXJDLEVBQTZDLFFBQTdDLENBSEssSUFJTCxDQUFDVCxPQUFPQyxTQUFQLENBQWlCVyxvQkFBakIsQ0FBc0NULElBQXRDLENBQTJDTSxNQUEzQyxFQUFtRCxRQUFuRCxDQUpJLElBS0wsS0FMRjtBQU1EIiwiZmlsZSI6IjIwOS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBzdXBwb3J0c0FyZ3VtZW50c0NsYXNzID0gKGZ1bmN0aW9uKCl7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnRzKVxufSkoKSA9PSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gc3VwcG9ydHNBcmd1bWVudHNDbGFzcyA/IHN1cHBvcnRlZCA6IHVuc3VwcG9ydGVkO1xuXG5leHBvcnRzLnN1cHBvcnRlZCA9IHN1cHBvcnRlZDtcbmZ1bmN0aW9uIHN1cHBvcnRlZChvYmplY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpID09ICdbb2JqZWN0IEFyZ3VtZW50c10nO1xufTtcblxuZXhwb3J0cy51bnN1cHBvcnRlZCA9IHVuc3VwcG9ydGVkO1xuZnVuY3Rpb24gdW5zdXBwb3J0ZWQob2JqZWN0KXtcbiAgcmV0dXJuIG9iamVjdCAmJlxuICAgIHR5cGVvZiBvYmplY3QgPT0gJ29iamVjdCcgJiZcbiAgICB0eXBlb2Ygb2JqZWN0Lmxlbmd0aCA9PSAnbnVtYmVyJyAmJlxuICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsICdjYWxsZWUnKSAmJlxuICAgICFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwob2JqZWN0LCAnY2FsbGVlJykgfHxcbiAgICBmYWxzZTtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9kZWVwLWVxdWFsL2xpYi9pc19hcmd1bWVudHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 210 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nexports.__esModule = true;\nexports.loopAsync = loopAsync;\n\nfunction loopAsync(turns, work, callback) {\n var currentTurn = 0;\n var isDone = false;\n\n function done() {\n isDone = true;\n callback.apply(this, arguments);\n }\n\n function next() {\n if (isDone) return;\n\n if (currentTurn < turns) {\n work.call(this, currentTurn++, next, done);\n } else {\n done.apply(this, arguments);\n }\n }\n\n next();\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9Bc3luY1V0aWxzLmpzPzYzMGIiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJsb29wQXN5bmMiLCJ0dXJucyIsIndvcmsiLCJjYWxsYmFjayIsImN1cnJlbnRUdXJuIiwiaXNEb25lIiwiZG9uZSIsImFwcGx5IiwiYXJndW1lbnRzIiwibmV4dCIsImNhbGwiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCO0FBQ0FELFFBQVFFLFNBQVIsR0FBb0JBLFNBQXBCOztBQUVBLFNBQVNBLFNBQVQsQ0FBbUJDLEtBQW5CLEVBQTBCQyxJQUExQixFQUFnQ0MsUUFBaEMsRUFBMEM7QUFDeEMsTUFBSUMsY0FBYyxDQUFsQjtBQUNBLE1BQUlDLFNBQVMsS0FBYjs7QUFFQSxXQUFTQyxJQUFULEdBQWdCO0FBQ2RELGFBQVMsSUFBVDtBQUNBRixhQUFTSSxLQUFULENBQWUsSUFBZixFQUFxQkMsU0FBckI7QUFDRDs7QUFFRCxXQUFTQyxJQUFULEdBQWdCO0FBQ2QsUUFBSUosTUFBSixFQUFZOztBQUVaLFFBQUlELGNBQWNILEtBQWxCLEVBQXlCO0FBQ3ZCQyxXQUFLUSxJQUFMLENBQVUsSUFBVixFQUFnQk4sYUFBaEIsRUFBK0JLLElBQS9CLEVBQXFDSCxJQUFyQztBQUNELEtBRkQsTUFFTztBQUNMQSxXQUFLQyxLQUFMLENBQVcsSUFBWCxFQUFpQkMsU0FBakI7QUFDRDtBQUNGOztBQUVEQztBQUNEIiwiZmlsZSI6IjIxMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5sb29wQXN5bmMgPSBsb29wQXN5bmM7XG5cbmZ1bmN0aW9uIGxvb3BBc3luYyh0dXJucywgd29yaywgY2FsbGJhY2spIHtcbiAgdmFyIGN1cnJlbnRUdXJuID0gMDtcbiAgdmFyIGlzRG9uZSA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIGRvbmUoKSB7XG4gICAgaXNEb25lID0gdHJ1ZTtcbiAgICBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmV4dCgpIHtcbiAgICBpZiAoaXNEb25lKSByZXR1cm47XG5cbiAgICBpZiAoY3VycmVudFR1cm4gPCB0dXJucykge1xuICAgICAgd29yay5jYWxsKHRoaXMsIGN1cnJlbnRUdXJuKyssIG5leHQsIGRvbmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb25lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL0FzeW5jVXRpbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 211 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _Actions = __webpack_require__(201);\n\nvar _parsePath = __webpack_require__(212);\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction createLocation() {\n var path = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n var state = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n var action = arguments.length <= 2 || arguments[2] === undefined ? _Actions.POP : arguments[2];\n var key = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n if (typeof path === 'string') path = _parsePath2['default'](path);\n\n var pathname = path.pathname || '/';\n var search = path.search || '';\n var hash = path.hash || '';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash,\n state: state,\n action: action,\n key: key\n };\n}\n\nexports['default'] = createLocation;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9jcmVhdGVMb2NhdGlvbi5qcz80ZWU2Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9BY3Rpb25zIiwicmVxdWlyZSIsIl9wYXJzZVBhdGgiLCJfcGFyc2VQYXRoMiIsImNyZWF0ZUxvY2F0aW9uIiwicGF0aCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInN0YXRlIiwiYWN0aW9uIiwiUE9QIiwia2V5IiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjs7QUFFQSxTQUFTQyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJRixVQUFYLEdBQXdCRSxHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHLElBQUlDLFdBQVcsbUJBQUFDLENBQVEsR0FBUixDQUFmOztBQUVBLElBQUlDLGFBQWEsbUJBQUFELENBQVEsR0FBUixDQUFqQjs7QUFFQSxJQUFJRSxjQUFjTCx1QkFBdUJJLFVBQXZCLENBQWxCOztBQUVBLFNBQVNFLGNBQVQsR0FBMEI7QUFDeEIsTUFBSUMsT0FBT0MsVUFBVUMsTUFBVixJQUFvQixDQUFwQixJQUF5QkQsVUFBVSxDQUFWLE1BQWlCRSxTQUExQyxHQUFzRCxHQUF0RCxHQUE0REYsVUFBVSxDQUFWLENBQXZFO0FBQ0EsTUFBSUcsUUFBUUgsVUFBVUMsTUFBVixJQUFvQixDQUFwQixJQUF5QkQsVUFBVSxDQUFWLE1BQWlCRSxTQUExQyxHQUFzRCxJQUF0RCxHQUE2REYsVUFBVSxDQUFWLENBQXpFO0FBQ0EsTUFBSUksU0FBU0osVUFBVUMsTUFBVixJQUFvQixDQUFwQixJQUF5QkQsVUFBVSxDQUFWLE1BQWlCRSxTQUExQyxHQUFzRFIsU0FBU1csR0FBL0QsR0FBcUVMLFVBQVUsQ0FBVixDQUFsRjtBQUNBLE1BQUlNLE1BQU1OLFVBQVVDLE1BQVYsSUFBb0IsQ0FBcEIsSUFBeUJELFVBQVUsQ0FBVixNQUFpQkUsU0FBMUMsR0FBc0QsSUFBdEQsR0FBNkRGLFVBQVUsQ0FBVixDQUF2RTs7QUFFQSxNQUFJLE9BQU9ELElBQVAsS0FBZ0IsUUFBcEIsRUFBOEJBLE9BQU9GLFlBQVksU0FBWixFQUF1QkUsSUFBdkIsQ0FBUDs7QUFFOUIsTUFBSVEsV0FBV1IsS0FBS1EsUUFBTCxJQUFpQixHQUFoQztBQUNBLE1BQUlDLFNBQVNULEtBQUtTLE1BQUwsSUFBZSxFQUE1QjtBQUNBLE1BQUlDLE9BQU9WLEtBQUtVLElBQUwsSUFBYSxFQUF4Qjs7QUFFQSxTQUFPO0FBQ0xGLGNBQVVBLFFBREw7QUFFTEMsWUFBUUEsTUFGSDtBQUdMQyxVQUFNQSxJQUhEO0FBSUxOLFdBQU9BLEtBSkY7QUFLTEMsWUFBUUEsTUFMSDtBQU1MRSxTQUFLQTtBQU5BLEdBQVA7QUFRRDs7QUFFRGhCLFFBQVEsU0FBUixJQUFxQlEsY0FBckI7QUFDQVksT0FBT3BCLE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQiIsImZpbGUiOiIyMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9BY3Rpb25zID0gcmVxdWlyZSgnLi9BY3Rpb25zJyk7XG5cbnZhciBfcGFyc2VQYXRoID0gcmVxdWlyZSgnLi9wYXJzZVBhdGgnKTtcblxudmFyIF9wYXJzZVBhdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcGFyc2VQYXRoKTtcblxuZnVuY3Rpb24gY3JlYXRlTG9jYXRpb24oKSB7XG4gIHZhciBwYXRoID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gJy8nIDogYXJndW1lbnRzWzBdO1xuICB2YXIgc3RhdGUgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuICB2YXIgYWN0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gX0FjdGlvbnMuUE9QIDogYXJndW1lbnRzWzJdO1xuICB2YXIga2V5ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAzIHx8IGFyZ3VtZW50c1szXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1szXTtcblxuICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSBwYXRoID0gX3BhcnNlUGF0aDJbJ2RlZmF1bHQnXShwYXRoKTtcblxuICB2YXIgcGF0aG5hbWUgPSBwYXRoLnBhdGhuYW1lIHx8ICcvJztcbiAgdmFyIHNlYXJjaCA9IHBhdGguc2VhcmNoIHx8ICcnO1xuICB2YXIgaGFzaCA9IHBhdGguaGFzaCB8fCAnJztcblxuICByZXR1cm4ge1xuICAgIHBhdGhuYW1lOiBwYXRobmFtZSxcbiAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICBoYXNoOiBoYXNoLFxuICAgIHN0YXRlOiBzdGF0ZSxcbiAgICBhY3Rpb246IGFjdGlvbixcbiAgICBrZXk6IGtleVxuICB9O1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBjcmVhdGVMb2NhdGlvbjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL2NyZWF0ZUxvY2F0aW9uLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 212 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _extractPath = __webpack_require__(213);\n\nvar _extractPath2 = _interopRequireDefault(_extractPath);\n\nfunction parsePath(path) {\n var pathname = _extractPath2['default'](path);\n var search = '';\n var hash = '';\n\n process.env.NODE_ENV !== 'production' ? _warning2['default'](path === pathname, 'A path must be pathname + search + hash only, not a fully qualified URL like \"%s\"', path) : undefined;\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substring(hashIndex);\n pathname = pathname.substring(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substring(searchIndex);\n pathname = pathname.substring(0, searchIndex);\n }\n\n if (pathname === '') pathname = '/';\n\n return {\n pathname: pathname,\n search: search,\n hash: hash\n };\n}\n\nexports['default'] = parsePath;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9wYXJzZVBhdGguanM/MmI0NiJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfd2FybmluZyIsInJlcXVpcmUiLCJfd2FybmluZzIiLCJfZXh0cmFjdFBhdGgiLCJfZXh0cmFjdFBhdGgyIiwicGFyc2VQYXRoIiwicGF0aCIsInBhdGhuYW1lIiwic2VhcmNoIiwiaGFzaCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJzdWJzdHJpbmciLCJzZWFyY2hJbmRleCIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsU0FBU0Msc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSUYsVUFBWCxHQUF3QkUsR0FBeEIsR0FBOEIsRUFBRSxXQUFXQSxHQUFiLEVBQXJDO0FBQTBEOztBQUVqRyxJQUFJQyxXQUFXLG1CQUFBQyxDQUFRLEdBQVIsQ0FBZjs7QUFFQSxJQUFJQyxZQUFZSix1QkFBdUJFLFFBQXZCLENBQWhCOztBQUVBLElBQUlHLGVBQWUsbUJBQUFGLENBQVEsR0FBUixDQUFuQjs7QUFFQSxJQUFJRyxnQkFBZ0JOLHVCQUF1QkssWUFBdkIsQ0FBcEI7O0FBRUEsU0FBU0UsU0FBVCxDQUFtQkMsSUFBbkIsRUFBeUI7QUFDdkIsTUFBSUMsV0FBV0gsY0FBYyxTQUFkLEVBQXlCRSxJQUF6QixDQUFmO0FBQ0EsTUFBSUUsU0FBUyxFQUFiO0FBQ0EsTUFBSUMsT0FBTyxFQUFYOztBQUVBQyxVQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NWLFVBQVUsU0FBVixFQUFxQkksU0FBU0MsUUFBOUIsRUFBd0MsbUZBQXhDLEVBQTZIRCxJQUE3SCxDQUF4QyxHQUE2S08sU0FBN0s7O0FBRUEsTUFBSUMsWUFBWVAsU0FBU1EsT0FBVCxDQUFpQixHQUFqQixDQUFoQjtBQUNBLE1BQUlELGNBQWMsQ0FBQyxDQUFuQixFQUFzQjtBQUNwQkwsV0FBT0YsU0FBU1MsU0FBVCxDQUFtQkYsU0FBbkIsQ0FBUDtBQUNBUCxlQUFXQSxTQUFTUyxTQUFULENBQW1CLENBQW5CLEVBQXNCRixTQUF0QixDQUFYO0FBQ0Q7O0FBRUQsTUFBSUcsY0FBY1YsU0FBU1EsT0FBVCxDQUFpQixHQUFqQixDQUFsQjtBQUNBLE1BQUlFLGdCQUFnQixDQUFDLENBQXJCLEVBQXdCO0FBQ3RCVCxhQUFTRCxTQUFTUyxTQUFULENBQW1CQyxXQUFuQixDQUFUO0FBQ0FWLGVBQVdBLFNBQVNTLFNBQVQsQ0FBbUIsQ0FBbkIsRUFBc0JDLFdBQXRCLENBQVg7QUFDRDs7QUFFRCxNQUFJVixhQUFhLEVBQWpCLEVBQXFCQSxXQUFXLEdBQVg7O0FBRXJCLFNBQU87QUFDTEEsY0FBVUEsUUFETDtBQUVMQyxZQUFRQSxNQUZIO0FBR0xDLFVBQU1BO0FBSEQsR0FBUDtBQUtEOztBQUVEYixRQUFRLFNBQVIsSUFBcUJTLFNBQXJCO0FBQ0FhLE9BQU90QixPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyMTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbnZhciBfZXh0cmFjdFBhdGggPSByZXF1aXJlKCcuL2V4dHJhY3RQYXRoJyk7XG5cbnZhciBfZXh0cmFjdFBhdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZXh0cmFjdFBhdGgpO1xuXG5mdW5jdGlvbiBwYXJzZVBhdGgocGF0aCkge1xuICB2YXIgcGF0aG5hbWUgPSBfZXh0cmFjdFBhdGgyWydkZWZhdWx0J10ocGF0aCk7XG4gIHZhciBzZWFyY2ggPSAnJztcbiAgdmFyIGhhc2ggPSAnJztcblxuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10ocGF0aCA9PT0gcGF0aG5hbWUsICdBIHBhdGggbXVzdCBiZSBwYXRobmFtZSArIHNlYXJjaCArIGhhc2ggb25seSwgbm90IGEgZnVsbHkgcXVhbGlmaWVkIFVSTCBsaWtlIFwiJXNcIicsIHBhdGgpIDogdW5kZWZpbmVkO1xuXG4gIHZhciBoYXNoSW5kZXggPSBwYXRobmFtZS5pbmRleE9mKCcjJyk7XG4gIGlmIChoYXNoSW5kZXggIT09IC0xKSB7XG4gICAgaGFzaCA9IHBhdGhuYW1lLnN1YnN0cmluZyhoYXNoSW5kZXgpO1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUuc3Vic3RyaW5nKDAsIGhhc2hJbmRleCk7XG4gIH1cblxuICB2YXIgc2VhcmNoSW5kZXggPSBwYXRobmFtZS5pbmRleE9mKCc/Jyk7XG4gIGlmIChzZWFyY2hJbmRleCAhPT0gLTEpIHtcbiAgICBzZWFyY2ggPSBwYXRobmFtZS5zdWJzdHJpbmcoc2VhcmNoSW5kZXgpO1xuICAgIHBhdGhuYW1lID0gcGF0aG5hbWUuc3Vic3RyaW5nKDAsIHNlYXJjaEluZGV4KTtcbiAgfVxuXG4gIGlmIChwYXRobmFtZSA9PT0gJycpIHBhdGhuYW1lID0gJy8nO1xuXG4gIHJldHVybiB7XG4gICAgcGF0aG5hbWU6IHBhdGhuYW1lLFxuICAgIHNlYXJjaDogc2VhcmNoLFxuICAgIGhhc2g6IGhhc2hcbiAgfTtcbn1cblxuZXhwb3J0c1snZGVmYXVsdCddID0gcGFyc2VQYXRoO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vaGlzdG9yeS9saWIvcGFyc2VQYXRoLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 213 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nexports.__esModule = true;\nfunction extractPath(string) {\n var match = string.match(/^https?:\\/\\/[^\\/]*/);\n\n if (match == null) return string;\n\n return string.substring(match[0].length);\n}\n\nexports[\"default\"] = extractPath;\nmodule.exports = exports[\"default\"];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9leHRyYWN0UGF0aC5qcz85OTlmIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiZXh0cmFjdFBhdGgiLCJzdHJpbmciLCJtYXRjaCIsInN1YnN0cmluZyIsImxlbmd0aCIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7QUFDQSxTQUFTQyxXQUFULENBQXFCQyxNQUFyQixFQUE2QjtBQUMzQixNQUFJQyxRQUFRRCxPQUFPQyxLQUFQLENBQWEsb0JBQWIsQ0FBWjs7QUFFQSxNQUFJQSxTQUFTLElBQWIsRUFBbUIsT0FBT0QsTUFBUDs7QUFFbkIsU0FBT0EsT0FBT0UsU0FBUCxDQUFpQkQsTUFBTSxDQUFOLEVBQVNFLE1BQTFCLENBQVA7QUFDRDs7QUFFRE4sUUFBUSxTQUFSLElBQXFCRSxXQUFyQjtBQUNBSyxPQUFPUCxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIiLCJmaWxlIjoiMjEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5mdW5jdGlvbiBleHRyYWN0UGF0aChzdHJpbmcpIHtcbiAgdmFyIG1hdGNoID0gc3RyaW5nLm1hdGNoKC9eaHR0cHM/OlxcL1xcL1teXFwvXSovKTtcblxuICBpZiAobWF0Y2ggPT0gbnVsbCkgcmV0dXJuIHN0cmluZztcblxuICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZyhtYXRjaFswXS5sZW5ndGgpO1xufVxuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGV4dHJhY3RQYXRoO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9leHRyYWN0UGF0aC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 214 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction runTransitionHook(hook, location, callback) {\n var result = hook(location, callback);\n\n if (hook.length < 2) {\n // Assume the hook runs synchronously and automatically\n // call the callback with the return value.\n callback(result);\n } else {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](result === undefined, 'You should not \"return\" in a transition hook with a callback argument; call the callback instead') : undefined;\n }\n}\n\nexports['default'] = runTransitionHook;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9ydW5UcmFuc2l0aW9uSG9vay5qcz9hNTZhIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl93YXJuaW5nIiwicmVxdWlyZSIsIl93YXJuaW5nMiIsInJ1blRyYW5zaXRpb25Ib29rIiwiaG9vayIsImxvY2F0aW9uIiwiY2FsbGJhY2siLCJyZXN1bHQiLCJsZW5ndGgiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLFNBQVNDLHNCQUFULENBQWdDQyxHQUFoQyxFQUFxQztBQUFFLFNBQU9BLE9BQU9BLElBQUlGLFVBQVgsR0FBd0JFLEdBQXhCLEdBQThCLEVBQUUsV0FBV0EsR0FBYixFQUFyQztBQUEwRDs7QUFFakcsSUFBSUMsV0FBVyxtQkFBQUMsQ0FBUSxHQUFSLENBQWY7O0FBRUEsSUFBSUMsWUFBWUosdUJBQXVCRSxRQUF2QixDQUFoQjs7QUFFQSxTQUFTRyxpQkFBVCxDQUEyQkMsSUFBM0IsRUFBaUNDLFFBQWpDLEVBQTJDQyxRQUEzQyxFQUFxRDtBQUNuRCxNQUFJQyxTQUFTSCxLQUFLQyxRQUFMLEVBQWVDLFFBQWYsQ0FBYjs7QUFFQSxNQUFJRixLQUFLSSxNQUFMLEdBQWMsQ0FBbEIsRUFBcUI7QUFDbkI7QUFDQTtBQUNBRixhQUFTQyxNQUFUO0FBQ0QsR0FKRCxNQUlPO0FBQ0xFLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q1QsVUFBVSxTQUFWLEVBQXFCSyxXQUFXSyxTQUFoQyxFQUEyQyxrR0FBM0MsQ0FBeEMsR0FBeUxBLFNBQXpMO0FBQ0Q7QUFDRjs7QUFFRGhCLFFBQVEsU0FBUixJQUFxQk8saUJBQXJCO0FBQ0FVLE9BQU9qQixPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyMTQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIHJ1blRyYW5zaXRpb25Ib29rKGhvb2ssIGxvY2F0aW9uLCBjYWxsYmFjaykge1xuICB2YXIgcmVzdWx0ID0gaG9vayhsb2NhdGlvbiwgY2FsbGJhY2spO1xuXG4gIGlmIChob29rLmxlbmd0aCA8IDIpIHtcbiAgICAvLyBBc3N1bWUgdGhlIGhvb2sgcnVucyBzeW5jaHJvbm91c2x5IGFuZCBhdXRvbWF0aWNhbGx5XG4gICAgLy8gY2FsbCB0aGUgY2FsbGJhY2sgd2l0aCB0aGUgcmV0dXJuIHZhbHVlLlxuICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF93YXJuaW5nMlsnZGVmYXVsdCddKHJlc3VsdCA9PT0gdW5kZWZpbmVkLCAnWW91IHNob3VsZCBub3QgXCJyZXR1cm5cIiBpbiBhIHRyYW5zaXRpb24gaG9vayB3aXRoIGEgY2FsbGJhY2sgYXJndW1lbnQ7IGNhbGwgdGhlIGNhbGxiYWNrIGluc3RlYWQnKSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBydW5UcmFuc2l0aW9uSG9vaztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL3J1blRyYW5zaXRpb25Ib29rLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 215 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction deprecate(fn, message) {\n return function () {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] ' + message) : undefined;\n return fn.apply(this, arguments);\n };\n}\n\nexports['default'] = deprecate;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9kZXByZWNhdGUuanM/Y2VhMyJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfd2FybmluZyIsInJlcXVpcmUiLCJfd2FybmluZzIiLCJkZXByZWNhdGUiLCJmbiIsIm1lc3NhZ2UiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJhcHBseSIsImFyZ3VtZW50cyIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsU0FBU0Msc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSUYsVUFBWCxHQUF3QkUsR0FBeEIsR0FBOEIsRUFBRSxXQUFXQSxHQUFiLEVBQXJDO0FBQTBEOztBQUVqRyxJQUFJQyxXQUFXLG1CQUFBQyxDQUFRLEdBQVIsQ0FBZjs7QUFFQSxJQUFJQyxZQUFZSix1QkFBdUJFLFFBQXZCLENBQWhCOztBQUVBLFNBQVNHLFNBQVQsQ0FBbUJDLEVBQW5CLEVBQXVCQyxPQUF2QixFQUFnQztBQUM5QixTQUFPLFlBQVk7QUFDakJDLFlBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q04sVUFBVSxTQUFWLEVBQXFCLEtBQXJCLEVBQTRCLGVBQWVHLE9BQTNDLENBQXhDLEdBQThGSSxTQUE5RjtBQUNBLFdBQU9MLEdBQUdNLEtBQUgsQ0FBUyxJQUFULEVBQWVDLFNBQWYsQ0FBUDtBQUNELEdBSEQ7QUFJRDs7QUFFRGYsUUFBUSxTQUFSLElBQXFCTyxTQUFyQjtBQUNBUyxPQUFPaEIsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCLEMiLCJmaWxlIjoiMjE1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG5mdW5jdGlvbiBkZXByZWNhdGUoZm4sIG1lc3NhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZmFsc2UsICdbaGlzdG9yeV0gJyArIG1lc3NhZ2UpIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBkZXByZWNhdGU7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9kZXByZWNhdGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 216 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nexports.isReactChildren = isReactChildren;\nexports.createRouteFromReactElement = createRouteFromReactElement;\nexports.createRoutesFromReactChildren = createRoutesFromReactChildren;\nexports.createRoutes = createRoutes;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction isValidChild(object) {\n return object == null || _react2['default'].isValidElement(object);\n}\n\nfunction isReactChildren(object) {\n return isValidChild(object) || Array.isArray(object) && object.every(isValidChild);\n}\n\nfunction checkPropTypes(componentName, propTypes, props) {\n componentName = componentName || 'UnknownComponent';\n\n for (var propName in propTypes) {\n if (propTypes.hasOwnProperty(propName)) {\n var error = propTypes[propName](props, propName, componentName);\n\n /* istanbul ignore if: error logging */\n if (error instanceof Error) process.env.NODE_ENV !== 'production' ? _warning2['default'](false, error.message) : undefined;\n }\n }\n}\n\nfunction createRoute(defaultProps, props) {\n return _extends({}, defaultProps, props);\n}\n\nfunction createRouteFromReactElement(element) {\n var type = element.type;\n var route = createRoute(type.defaultProps, element.props);\n\n if (type.propTypes) checkPropTypes(type.displayName || type.name, type.propTypes, route);\n\n if (route.children) {\n var childRoutes = createRoutesFromReactChildren(route.children, route);\n\n if (childRoutes.length) route.childRoutes = childRoutes;\n\n delete route.children;\n }\n\n return route;\n}\n\n/**\n * Creates and returns a routes object from the given ReactChildren. JSX\n * provides a convenient way to visualize how routes in the hierarchy are\n * nested.\n *\n * import { Route, createRoutesFromReactChildren } from 'react-router'\n * \n * const routes = createRoutesFromReactChildren(\n * <Route component={App}>\n * <Route path=\"home\" component={Dashboard}/>\n * <Route path=\"news\" component={NewsFeed}/>\n * </Route>\n * )\n *\n * Note: This method is automatically used when you provide <Route> children\n * to a <Router> component.\n */\n\nfunction createRoutesFromReactChildren(children, parentRoute) {\n var routes = [];\n\n _react2['default'].Children.forEach(children, function (element) {\n if (_react2['default'].isValidElement(element)) {\n // Component classes may have a static create* method.\n if (element.type.createRouteFromReactElement) {\n var route = element.type.createRouteFromReactElement(element, parentRoute);\n\n if (route) routes.push(route);\n } else {\n routes.push(createRouteFromReactElement(element));\n }\n }\n });\n\n return routes;\n}\n\n/**\n * Creates and returns an array of routes from the given object which\n * may be a JSX route, a plain object route, or an array of either.\n */\n\nfunction createRoutes(routes) {\n if (isReactChildren(routes)) {\n routes = createRoutesFromReactChildren(routes);\n } else if (routes && !Array.isArray(routes)) {\n routes = [routes];\n }\n\n return routes;\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRlVXRpbHMuanM/MmY4MyJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImlzUmVhY3RDaGlsZHJlbiIsImNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudCIsImNyZWF0ZVJvdXRlc0Zyb21SZWFjdENoaWxkcmVuIiwiY3JlYXRlUm91dGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVhY3QyIiwiX3dhcm5pbmciLCJfd2FybmluZzIiLCJpc1ZhbGlkQ2hpbGQiLCJvYmplY3QiLCJpc1ZhbGlkRWxlbWVudCIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5IiwiY2hlY2tQcm9wVHlwZXMiLCJjb21wb25lbnROYW1lIiwicHJvcFR5cGVzIiwicHJvcHMiLCJwcm9wTmFtZSIsImVycm9yIiwiRXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJtZXNzYWdlIiwidW5kZWZpbmVkIiwiY3JlYXRlUm91dGUiLCJkZWZhdWx0UHJvcHMiLCJlbGVtZW50IiwidHlwZSIsInJvdXRlIiwiZGlzcGxheU5hbWUiLCJuYW1lIiwiY2hpbGRyZW4iLCJjaGlsZFJvdXRlcyIsInBhcmVudFJvdXRlIiwicm91dGVzIiwiQ2hpbGRyZW4iLCJmb3JFYWNoIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsV0FBV0MsT0FBT0MsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQUUs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TW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZXhwb3J0cy5pc1JlYWN0Q2hpbGRyZW4gPSBpc1JlYWN0Q2hpbGRyZW47XG5leHBvcnRzLmNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudCA9IGNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudDtcbmV4cG9ydHMuY3JlYXRlUm91dGVzRnJvbVJlYWN0Q2hpbGRyZW4gPSBjcmVhdGVSb3V0ZXNGcm9tUmVhY3RDaGlsZHJlbjtcbmV4cG9ydHMuY3JlYXRlUm91dGVzID0gY3JlYXRlUm91dGVzO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbmZ1bmN0aW9uIGlzVmFsaWRDaGlsZChvYmplY3QpIHtcbiAgcmV0dXJuIG9iamVjdCA9PSBudWxsIHx8IF9yZWFjdDJbJ2RlZmF1bHQnXS5pc1ZhbGlkRWxlbWVudChvYmplY3QpO1xufVxuXG5mdW5jdGlvbiBpc1JlYWN0Q2hpbGRyZW4ob2JqZWN0KSB7XG4gIHJldHVybiBpc1ZhbGlkQ2hpbGQob2JqZWN0KSB8fCBBcnJheS5pc0FycmF5KG9iamVjdCkgJiYgb2JqZWN0LmV2ZXJ5KGlzVmFsaWRDaGlsZCk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKGNvbXBvbmVudE5hbWUsIHByb3BUeXBlcywgcHJvcHMpIHtcbiAgY29tcG9uZW50TmFtZSA9IGNvbXBvbmVudE5hbWUgfHwgJ1Vua25vd25Db21wb25lbnQnO1xuXG4gIGZvciAodmFyIHByb3BOYW1lIGluIHByb3BUeXBlcykge1xuICAgIGlmIChwcm9wVHlwZXMuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpKSB7XG4gICAgICB2YXIgZXJyb3IgPSBwcm9wVHlwZXNbcHJvcE5hbWVdKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSk7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZjogZXJyb3IgbG9nZ2luZyAqL1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfd2FybmluZzJbJ2RlZmF1bHQnXShmYWxzZSwgZXJyb3IubWVzc2FnZSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlKGRlZmF1bHRQcm9wcywgcHJvcHMpIHtcbiAgcmV0dXJuIF9leHRlbmRzKHt9LCBkZWZhdWx0UHJvcHMsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUm91dGVGcm9tUmVhY3RFbGVtZW50KGVsZW1lbnQpIHtcbiAgdmFyIHR5cGUgPSBlbGVtZW50LnR5cGU7XG4gIHZhciByb3V0ZSA9IGNyZWF0ZVJvdXRlKHR5cGUuZGVmYXVsdFByb3BzLCBlbGVtZW50LnByb3BzKTtcblxuICBpZiAodHlwZS5wcm9wVHlwZXMpIGNoZWNrUHJvcFR5cGVzKHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lLCB0eXBlLnByb3BUeXBlcywgcm91dGUpO1xuXG4gIGlmIChyb3V0ZS5jaGlsZHJlbikge1xuICAgIHZhciBjaGlsZFJvdXRlcyA9IGNyZWF0ZVJvdXRlc0Zyb21SZWFjdENoaWxkcmVuKHJvdXRlLmNoaWxkcmVuLCByb3V0ZSk7XG5cbiAgICBpZiAoY2hpbGRSb3V0ZXMubGVuZ3RoKSByb3V0ZS5jaGlsZFJvdXRlcyA9IGNoaWxkUm91dGVzO1xuXG4gICAgZGVsZXRlIHJvdXRlLmNoaWxkcmVuO1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSByb3V0ZXMgb2JqZWN0IGZyb20gdGhlIGdpdmVuIFJlYWN0Q2hpbGRyZW4uIEpTWFxuICogcHJvdmlkZXMgYSBjb252ZW5pZW50IHdheSB0byB2aXN1YWxpemUgaG93IHJvdXRlcyBpbiB0aGUgaGllcmFyY2h5IGFyZVxuICogbmVzdGVkLlxuICpcbiAqICAgaW1wb3J0IHsgUm91dGUsIGNyZWF0ZVJvdXRlc0Zyb21SZWFjdENoaWxkcmVuIH0gZnJvbSAncmVhY3Qtcm91dGVyJ1xuICogICBcbiAqICAgY29uc3Qgcm91dGVzID0gY3JlYXRlUm91dGVzRnJvbVJlYWN0Q2hpbGRyZW4oXG4gKiAgICAgPFJvdXRlIGNvbXBvbmVudD17QXBwfT5cbiAqICAgICAgIDxSb3V0ZSBwYXRoPVwiaG9tZVwiIGNvbXBvbmVudD17RGFzaGJvYXJkfS8+XG4gKiAgICAgICA8Um91dGUgcGF0aD1cIm5ld3NcIiBjb21wb25lbnQ9e05ld3NGZWVkfS8+XG4gKiAgICAgPC9Sb3V0ZT5cbiAqICAgKVxuICpcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIGlzIGF1dG9tYXRpY2FsbHkgdXNlZCB3aGVuIHlvdSBwcm92aWRlIDxSb3V0ZT4gY2hpbGRyZW5cbiAqIHRvIGEgPFJvdXRlcj4gY29tcG9uZW50LlxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlc0Zyb21SZWFjdENoaWxkcmVuKGNoaWxkcmVuLCBwYXJlbnRSb3V0ZSkge1xuICB2YXIgcm91dGVzID0gW107XG5cbiAgX3JlYWN0MlsnZGVmYXVsdCddLkNoaWxkcmVuLmZvckVhY2goY2hpbGRyZW4sIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgaWYgKF9yZWFjdDJbJ2RlZmF1bHQnXS5pc1ZhbGlkRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgLy8gQ29tcG9uZW50IGNsYXNzZXMgbWF5IGhhdmUgYSBzdGF0aWMgY3JlYXRlKiBtZXRob2QuXG4gICAgICBpZiAoZWxlbWVudC50eXBlLmNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudCkge1xuICAgICAgICB2YXIgcm91dGUgPSBlbGVtZW50LnR5cGUuY3JlYXRlUm91dGVGcm9tUmVhY3RFbGVtZW50KGVsZW1lbnQsIHBhcmVudFJvdXRlKTtcblxuICAgICAgICBpZiAocm91dGUpIHJvdXRlcy5wdXNoKHJvdXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdXRlcy5wdXNoKGNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudChlbGVtZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcm91dGVzO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHJldHVybnMgYW4gYXJyYXkgb2Ygcm91dGVzIGZyb20gdGhlIGdpdmVuIG9iamVjdCB3aGljaFxuICogbWF5IGJlIGEgSlNYIHJvdXRlLCBhIHBsYWluIG9iamVjdCByb3V0ZSwgb3IgYW4gYXJyYXkgb2YgZWl0aGVyLlxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlcyhyb3V0ZXMpIHtcbiAgaWYgKGlzUmVhY3RDaGlsZHJlbihyb3V0ZXMpKSB7XG4gICAgcm91dGVzID0gY3JlYXRlUm91dGVzRnJvbVJlYWN0Q2hpbGRyZW4ocm91dGVzKTtcbiAgfSBlbHNlIGlmIChyb3V0ZXMgJiYgIUFycmF5LmlzQXJyYXkocm91dGVzKSkge1xuICAgIHJvdXRlcyA9IFtyb3V0ZXNdO1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlcztcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRlVXRpbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 217 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _RouteUtils = __webpack_require__(216);\n\nvar _getRouteParams = __webpack_require__(218);\n\nvar _getRouteParams2 = _interopRequireDefault(_getRouteParams);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar array = _React$PropTypes.array;\nvar func = _React$PropTypes.func;\nvar object = _React$PropTypes.object;\n\n/**\n * A <RoutingContext> renders the component tree for a given router state\n * and sets the history object and the current location in context.\n */\n\nvar RoutingContext = function (_Component) {\n _inherits(RoutingContext, _Component);\n\n function RoutingContext() {\n _classCallCheck(this, RoutingContext);\n\n _Component.apply(this, arguments);\n }\n\n RoutingContext.prototype.getChildContext = function getChildContext() {\n var _props = this.props;\n var history = _props.history;\n var location = _props.location;\n\n return { history: history, location: location };\n };\n\n RoutingContext.prototype.createElement = function createElement(component, props) {\n return component == null ? null : this.props.createElement(component, props);\n };\n\n RoutingContext.prototype.render = function render() {\n var _this = this;\n\n var _props2 = this.props;\n var history = _props2.history;\n var location = _props2.location;\n var routes = _props2.routes;\n var params = _props2.params;\n var components = _props2.components;\n\n var element = null;\n\n if (components) {\n element = components.reduceRight(function (element, components, index) {\n if (components == null) return element; // Don't create new children; use the grandchildren.\n\n var route = routes[index];\n var routeParams = _getRouteParams2['default'](route, params);\n var props = {\n history: history,\n location: location,\n params: params,\n route: route,\n routeParams: routeParams,\n routes: routes\n };\n\n if (_RouteUtils.isReactChildren(element)) {\n props.children = element;\n } else if (element) {\n for (var prop in element) {\n if (element.hasOwnProperty(prop)) props[prop] = element[prop];\n }\n }\n\n if ((typeof components === 'undefined' ? 'undefined' : _typeof(components)) === 'object') {\n var elements = {};\n\n for (var key in components) {\n if (components.hasOwnProperty(key)) elements[key] = _this.createElement(components[key], props);\n }return elements;\n }\n\n return _this.createElement(components, props);\n }, element);\n }\n\n !(element === null || element === false || _react2['default'].isValidElement(element)) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'The root route must render a single element') : _invariant2['default'](false) : undefined;\n\n return element;\n };\n\n _createClass(RoutingContext, null, [{\n key: 'propTypes',\n value: {\n history: object.isRequired,\n createElement: func.isRequired,\n location: object.isRequired,\n routes: array.isRequired,\n params: object.isRequired,\n components: array.isRequired\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n createElement: _react2['default'].createElement\n },\n enumerable: true\n }, {\n key: 'childContextTypes',\n value: {\n history: object.isRequired,\n location: object.isRequired\n },\n enumerable: true\n }]);\n\n return RoutingContext;\n}(_react.Component);\n\nexports['default'] = RoutingContext;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRpbmdDb250ZXh0LmpzPzhlMDUiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfY3JlYXRlQ2xhc3MiLCJkZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJpIiwibGVuZ3RoIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJwcm90b3R5cGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJUeXBlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfaW52YXJpYW50IiwicmVxdWlyZSIsIl9pbnZhcmlhbnQyIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9Sb3V0ZVV0aWxzIiwiX2dldFJvdXRlUGFyYW1zIiwiX2dldFJvdXRlUGFyYW1zMiIsIl9SZWFjdCRQcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJhcnJheSIsImZ1bmMiLCJvYmplY3QiLCJSb3V0aW5nQ29udGV4dCIsIl9Db21wb25lbnQiLCJhcHBseSIsImFyZ3VtZW50cyIsImdldENoaWxkQ29udGV4dCIsIl9wcm9wcyIsImhpc3RvcnkiLCJsb2NhdGlvbiIsImNyZWF0ZUVsZW1lbnQiLCJjb21wb25lbnQiLCJyZW5kZXIiLCJfdGhpcyIsIl9wcm9wczIiLCJyb3V0ZXMiLCJwYXJhbXMiLCJjb21wb25lbnRzIiwiZWxlbWVudCIsInJlZHVjZVJpZ2h0IiwiaW5kZXgiLCJyb3V0ZSIsInJvdXRlUGFyYW1zIiwiaXNSZWFjdENoaWxkcmVuIiwiY2hpbGRyZW4iLCJwcm9wIiwiaGFzT3duUHJvcGVydHkiLCJlbGVtZW50cyIsImlzVmFsaWRFbGVtZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwiaXNSZXF1aXJlZCIsIkNvbXBvbmVudCIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjs7QUFFQSxJQUFJQyxlQUFnQixZQUFZO0FBQUUsV0FBU0MsZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDQyxLQUFsQyxFQUF5QztBQUFFLFNBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRCxNQUFNRSxNQUExQixFQUFrQ0QsR0FBbEMsRUFBdUM7QUFBRSxVQUFJRSxhQUFhSCxNQUFNQyxDQUFOLENBQWpCLENBQTJCRSxXQUFXQyxVQUFYLEdBQXdCRCxXQUFXQyxVQUFYLElBQXlCLEtBQWpELENBQXdERCxXQUFXRSxZQUFYLEdBQTBCLElBQTFCLENBQWdDLElBQUksV0FBV0YsVUFBZixFQUEyQkEsV0FBV0csUUFBWCxHQUFzQixJQUF0QixDQUE0QkMsT0FBT0MsY0FBUCxDQUFzQlQsTUFBdEIsRUFBOEJJLFdBQVdNLEdBQXpDLEVBQThDTixVQUE5QztBQUE0RDtBQUFFLEdBQUMsT0FBTyxVQUFVTyxXQUFWLEVBQXVCQyxVQUF2QixFQUFtQ0MsV0FBbkMsRUFBZ0Q7QUFBRSxRQUFJRCxVQUFKLEVBQWdCYixpQkFBaUJZLFlBQVlHLFNBQTdCLEVBQXdDRixVQUF4QyxFQUFxRCxJQUFJQyxXQUFKLEVBQWlCZCxpQkFBaUJZLFdBQWpCLEVBQThCRSxXQUE5QixFQUE0QyxPQUFPRixXQUFQO0FBQXFCLEdBQWhOO0FBQW1OLENBQS9oQixFQUFuQjs7QUFFQSxTQUFTSSxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJbkIsVUFBWCxHQUF3Qm1CLEdBQXhC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LE9BQU9nQztBQUZaLEtBRk47QUFNRG5FLGdCQUFZO0FBTlgsR0FqQmdDLENBQW5DOztBQTBCQSxTQUFPb0MsY0FBUDtBQUNELENBcEdvQixDQW9HbEJWLE9BQU8wQyxTQXBHVyxDQUFyQjs7QUFzR0E3RSxRQUFRLFNBQVIsSUFBcUI2QyxjQUFyQjtBQUNBaUMsT0FBTzlFLE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQixDIiwiZmlsZSI6IjIxNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9pbnZhcmlhbnQgPSByZXF1aXJlKCdpbnZhcmlhbnQnKTtcblxudmFyIF9pbnZhcmlhbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaW52YXJpYW50KTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX1JvdXRlVXRpbHMgPSByZXF1aXJlKCcuL1JvdXRlVXRpbHMnKTtcblxudmFyIF9nZXRSb3V0ZVBhcmFtcyA9IHJlcXVpcmUoJy4vZ2V0Um91dGVQYXJhbXMnKTtcblxudmFyIF9nZXRSb3V0ZVBhcmFtczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXRSb3V0ZVBhcmFtcyk7XG5cbnZhciBfUmVhY3QkUHJvcFR5cGVzID0gX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcztcbnZhciBhcnJheSA9IF9SZWFjdCRQcm9wVHlwZXMuYXJyYXk7XG52YXIgZnVuYyA9IF9SZWFjdCRQcm9wVHlwZXMuZnVuYztcbnZhciBvYmplY3QgPSBfUmVhY3QkUHJvcFR5cGVzLm9iamVjdDtcblxuLyoqXG4gKiBBIDxSb3V0aW5nQ29udGV4dD4gcmVuZGVycyB0aGUgY29tcG9uZW50IHRyZWUgZm9yIGEgZ2l2ZW4gcm91dGVyIHN0YXRlXG4gKiBhbmQgc2V0cyB0aGUgaGlzdG9yeSBvYmplY3QgYW5kIHRoZSBjdXJyZW50IGxvY2F0aW9uIGluIGNvbnRleHQuXG4gKi9cblxudmFyIFJvdXRpbmdDb250ZXh0ID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhSb3V0aW5nQ29udGV4dCwgX0NvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gUm91dGluZ0NvbnRleHQoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFJvdXRpbmdDb250ZXh0KTtcblxuICAgIF9Db21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIFJvdXRpbmdDb250ZXh0LnByb3RvdHlwZS5nZXRDaGlsZENvbnRleHQgPSBmdW5jdGlvbiBnZXRDaGlsZENvbnRleHQoKSB7XG4gICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgdmFyIGhpc3RvcnkgPSBfcHJvcHMuaGlzdG9yeTtcbiAgICB2YXIgbG9jYXRpb24gPSBfcHJvcHMubG9jYXRpb247XG5cbiAgICByZXR1cm4geyBoaXN0b3J5OiBoaXN0b3J5LCBsb2NhdGlvbjogbG9jYXRpb24gfTtcbiAgfTtcblxuICBSb3V0aW5nQ29udGV4dC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCBwcm9wcykge1xuICAgIHJldHVybiBjb21wb25lbnQgPT0gbnVsbCA/IG51bGwgOiB0aGlzLnByb3BzLmNyZWF0ZUVsZW1lbnQoY29tcG9uZW50LCBwcm9wcyk7XG4gIH07XG5cbiAgUm91dGluZ0NvbnRleHQucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgIHZhciBoaXN0b3J5ID0gX3Byb3BzMi5oaXN0b3J5O1xuICAgIHZhciBsb2NhdGlvbiA9IF9wcm9wczIubG9jYXRpb247XG4gICAgdmFyIHJvdXRlcyA9IF9wcm9wczIucm91dGVzO1xuICAgIHZhciBwYXJhbXMgPSBfcHJvcHMyLnBhcmFtcztcbiAgICB2YXIgY29tcG9uZW50cyA9IF9wcm9wczIuY29tcG9uZW50cztcblxuICAgIHZhciBlbGVtZW50ID0gbnVsbDtcblxuICAgIGlmIChjb21wb25lbnRzKSB7XG4gICAgICBlbGVtZW50ID0gY29tcG9uZW50cy5yZWR1Y2VSaWdodChmdW5jdGlvbiAoZWxlbWVudCwgY29tcG9uZW50cywgaW5kZXgpIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudHMgPT0gbnVsbCkgcmV0dXJuIGVsZW1lbnQ7IC8vIERvbid0IGNyZWF0ZSBuZXcgY2hpbGRyZW47IHVzZSB0aGUgZ3JhbmRjaGlsZHJlbi5cblxuICAgICAgICB2YXIgcm91dGUgPSByb3V0ZXNbaW5kZXhdO1xuICAgICAgICB2YXIgcm91dGVQYXJhbXMgPSBfZ2V0Um91dGVQYXJhbXMyWydkZWZhdWx0J10ocm91dGUsIHBhcmFtcyk7XG4gICAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgICBoaXN0b3J5OiBoaXN0b3J5LFxuICAgICAgICAgIGxvY2F0aW9uOiBsb2NhdGlvbixcbiAgICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgICAgICByb3V0ZTogcm91dGUsXG4gICAgICAgICAgcm91dGVQYXJhbXM6IHJvdXRlUGFyYW1zLFxuICAgICAgICAgIHJvdXRlczogcm91dGVzXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKF9Sb3V0ZVV0aWxzLmlzUmVhY3RDaGlsZHJlbihlbGVtZW50KSkge1xuICAgICAgICAgIHByb3BzLmNoaWxkcmVuID0gZWxlbWVudDtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgZm9yICh2YXIgcHJvcCBpbiBlbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgcHJvcHNbcHJvcF0gPSBlbGVtZW50W3Byb3BdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgY29tcG9uZW50cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB2YXIgZWxlbWVudHMgPSB7fTtcblxuICAgICAgICAgIGZvciAodmFyIGtleSBpbiBjb21wb25lbnRzKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9uZW50cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSBlbGVtZW50c1trZXldID0gX3RoaXMuY3JlYXRlRWxlbWVudChjb21wb25lbnRzW2tleV0sIHByb3BzKTtcbiAgICAgICAgICB9cmV0dXJuIGVsZW1lbnRzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF90aGlzLmNyZWF0ZUVsZW1lbnQoY29tcG9uZW50cywgcHJvcHMpO1xuICAgICAgfSwgZWxlbWVudCk7XG4gICAgfVxuXG4gICAgIShlbGVtZW50ID09PSBudWxsIHx8IGVsZW1lbnQgPT09IGZhbHNlIHx8IF9yZWFjdDJbJ2RlZmF1bHQnXS5pc1ZhbGlkRWxlbWVudChlbGVtZW50KSkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSwgJ1RoZSByb290IHJvdXRlIG11c3QgcmVuZGVyIGEgc2luZ2xlIGVsZW1lbnQnKSA6IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKFJvdXRpbmdDb250ZXh0LCBudWxsLCBbe1xuICAgIGtleTogJ3Byb3BUeXBlcycsXG4gICAgdmFsdWU6IHtcbiAgICAgIGhpc3Rvcnk6IG9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgY3JlYXRlRWxlbWVudDogZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgbG9jYXRpb246IG9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgcm91dGVzOiBhcnJheS5pc1JlcXVpcmVkLFxuICAgICAgcGFyYW1zOiBvYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGNvbXBvbmVudHM6IGFycmF5LmlzUmVxdWlyZWRcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWVcbiAgfSwge1xuICAgIGtleTogJ2RlZmF1bHRQcm9wcycsXG4gICAgdmFsdWU6IHtcbiAgICAgIGNyZWF0ZUVsZW1lbnQ6IF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH0sIHtcbiAgICBrZXk6ICdjaGlsZENvbnRleHRUeXBlcycsXG4gICAgdmFsdWU6IHtcbiAgICAgIGhpc3Rvcnk6IG9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbG9jYXRpb246IG9iamVjdC5pc1JlcXVpcmVkXG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH1dKTtcblxuICByZXR1cm4gUm91dGluZ0NvbnRleHQ7XG59KShfcmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUm91dGluZ0NvbnRleHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRpbmdDb250ZXh0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 218 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _PatternUtils = __webpack_require__(219);\n\n/**\n * Extracts an object of params the given route cares about from\n * the given params object.\n */\nfunction getRouteParams(route, params) {\n var routeParams = {};\n\n if (!route.path) return routeParams;\n\n var paramNames = _PatternUtils.getParamNames(route.path);\n\n for (var p in params) {\n if (params.hasOwnProperty(p) && paramNames.indexOf(p) !== -1) routeParams[p] = params[p];\n }return routeParams;\n}\n\nexports['default'] = getRouteParams;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2dldFJvdXRlUGFyYW1zLmpzPzZlMGIiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfUGF0dGVyblV0aWxzIiwicmVxdWlyZSIsImdldFJvdXRlUGFyYW1zIiwicm91dGUiLCJwYXJhbXMiLCJyb3V0ZVBhcmFtcyIsInBhdGgiLCJwYXJhbU5hbWVzIiwiZ2V0UGFyYW1OYW1lcyIsInAiLCJoYXNPd25Qcm9wZXJ0eSIsImluZGV4T2YiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLGdCQUFnQixtQkFBQUMsQ0FBUSxHQUFSLENBQXBCOztBQUVBOzs7O0FBSUEsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0JDLE1BQS9CLEVBQXVDO0FBQ3JDLE1BQUlDLGNBQWMsRUFBbEI7O0FBRUEsTUFBSSxDQUFDRixNQUFNRyxJQUFYLEVBQWlCLE9BQU9ELFdBQVA7O0FBRWpCLE1BQUlFLGFBQWFQLGNBQWNRLGFBQWQsQ0FBNEJMLE1BQU1HLElBQWxDLENBQWpCOztBQUVBLE9BQUssSUFBSUcsQ0FBVCxJQUFjTCxNQUFkLEVBQXNCO0FBQ3BCLFFBQUlBLE9BQU9NLGNBQVAsQ0FBc0JELENBQXRCLEtBQTRCRixXQUFXSSxPQUFYLENBQW1CRixDQUFuQixNQUEwQixDQUFDLENBQTNELEVBQThESixZQUFZSSxDQUFaLElBQWlCTCxPQUFPSyxDQUFQLENBQWpCO0FBQy9ELFVBQU9KLFdBQVA7QUFDRjs7QUFFRFAsUUFBUSxTQUFSLElBQXFCSSxjQUFyQjtBQUNBVSxPQUFPZCxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIiLCJmaWxlIjoiMjE4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX1BhdHRlcm5VdGlscyA9IHJlcXVpcmUoJy4vUGF0dGVyblV0aWxzJyk7XG5cbi8qKlxuICogRXh0cmFjdHMgYW4gb2JqZWN0IG9mIHBhcmFtcyB0aGUgZ2l2ZW4gcm91dGUgY2FyZXMgYWJvdXQgZnJvbVxuICogdGhlIGdpdmVuIHBhcmFtcyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGdldFJvdXRlUGFyYW1zKHJvdXRlLCBwYXJhbXMpIHtcbiAgdmFyIHJvdXRlUGFyYW1zID0ge307XG5cbiAgaWYgKCFyb3V0ZS5wYXRoKSByZXR1cm4gcm91dGVQYXJhbXM7XG5cbiAgdmFyIHBhcmFtTmFtZXMgPSBfUGF0dGVyblV0aWxzLmdldFBhcmFtTmFtZXMocm91dGUucGF0aCk7XG5cbiAgZm9yICh2YXIgcCBpbiBwYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KHApICYmIHBhcmFtTmFtZXMuaW5kZXhPZihwKSAhPT0gLTEpIHJvdXRlUGFyYW1zW3BdID0gcGFyYW1zW3BdO1xuICB9cmV0dXJuIHJvdXRlUGFyYW1zO1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBnZXRSb3V0ZVBhcmFtcztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJvdXRlci9saWIvZ2V0Um91dGVQYXJhbXMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 219 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\nexports.compilePattern = compilePattern;\nexports.matchPattern = matchPattern;\nexports.getParamNames = getParamNames;\nexports.getParams = getParams;\nexports.formatPattern = formatPattern;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction escapeSource(string) {\n return escapeRegExp(string).replace(/\\/+/g, '/+');\n}\n\nfunction _compilePattern(pattern) {\n var regexpSource = '';\n var paramNames = [];\n var tokens = [];\n\n var match = undefined,\n lastIndex = 0,\n matcher = /:([a-zA-Z_$][a-zA-Z0-9_$]*)|\\*\\*|\\*|\\(|\\)/g;\n while (match = matcher.exec(pattern)) {\n if (match.index !== lastIndex) {\n tokens.push(pattern.slice(lastIndex, match.index));\n regexpSource += escapeSource(pattern.slice(lastIndex, match.index));\n }\n\n if (match[1]) {\n regexpSource += '([^/?#]+)';\n paramNames.push(match[1]);\n } else if (match[0] === '**') {\n regexpSource += '([\\\\s\\\\S]*)';\n paramNames.push('splat');\n } else if (match[0] === '*') {\n regexpSource += '([\\\\s\\\\S]*?)';\n paramNames.push('splat');\n } else if (match[0] === '(') {\n regexpSource += '(?:';\n } else if (match[0] === ')') {\n regexpSource += ')?';\n }\n\n tokens.push(match[0]);\n\n lastIndex = matcher.lastIndex;\n }\n\n if (lastIndex !== pattern.length) {\n tokens.push(pattern.slice(lastIndex, pattern.length));\n regexpSource += escapeSource(pattern.slice(lastIndex, pattern.length));\n }\n\n return {\n pattern: pattern,\n regexpSource: regexpSource,\n paramNames: paramNames,\n tokens: tokens\n };\n}\n\nvar CompiledPatternsCache = {};\n\nfunction compilePattern(pattern) {\n if (!(pattern in CompiledPatternsCache)) CompiledPatternsCache[pattern] = _compilePattern(pattern);\n\n return CompiledPatternsCache[pattern];\n}\n\n/**\n * Attempts to match a pattern on the given pathname. Patterns may use\n * the following special characters:\n *\n * - :paramName Matches a URL segment up to the next /, ?, or #. The\n * captured string is considered a \"param\"\n * - () Wraps a segment of the URL that is optional\n * - * Consumes (non-greedy) all characters up to the next\n * character in the pattern, or to the end of the URL if\n * there is none\n * - ** Consumes (greedy) all characters up to the next character\n * in the pattern, or to the end of the URL if there is none\n *\n * The return value is an object with the following properties:\n *\n * - remainingPathname\n * - paramNames\n * - paramValues\n */\n\nfunction matchPattern(pattern, pathname) {\n // Make leading slashes consistent between pattern and pathname.\n if (pattern.charAt(0) !== '/') {\n pattern = '/' + pattern;\n }\n if (pathname.charAt(0) !== '/') {\n pathname = '/' + pathname;\n }\n\n var _compilePattern2 = compilePattern(pattern);\n\n var regexpSource = _compilePattern2.regexpSource;\n var paramNames = _compilePattern2.paramNames;\n var tokens = _compilePattern2.tokens;\n\n regexpSource += '/*'; // Capture path separators\n\n // Special-case patterns like '*' for catch-all routes.\n var captureRemaining = tokens[tokens.length - 1] !== '*';\n\n if (captureRemaining) {\n // This will match newlines in the remaining path.\n regexpSource += '([\\\\s\\\\S]*?)';\n }\n\n var match = pathname.match(new RegExp('^' + regexpSource + '$', 'i'));\n\n var remainingPathname = undefined,\n paramValues = undefined;\n if (match != null) {\n if (captureRemaining) {\n remainingPathname = match.pop();\n var matchedPath = match[0].substr(0, match[0].length - remainingPathname.length);\n\n // If we didn't match the entire pathname, then make sure that the match\n // we did get ends at a path separator (potentially the one we added\n // above at the beginning of the path, if the actual match was empty).\n if (remainingPathname && matchedPath.charAt(matchedPath.length - 1) !== '/') {\n return {\n remainingPathname: null,\n paramNames: paramNames,\n paramValues: null\n };\n }\n } else {\n // If this matched at all, then the match was the entire pathname.\n remainingPathname = '';\n }\n\n paramValues = match.slice(1).map(function (v) {\n return v != null ? decodeURIComponent(v) : v;\n });\n } else {\n remainingPathname = paramValues = null;\n }\n\n return {\n remainingPathname: remainingPathname,\n paramNames: paramNames,\n paramValues: paramValues\n };\n}\n\nfunction getParamNames(pattern) {\n return compilePattern(pattern).paramNames;\n}\n\nfunction getParams(pattern, pathname) {\n var _matchPattern = matchPattern(pattern, pathname);\n\n var paramNames = _matchPattern.paramNames;\n var paramValues = _matchPattern.paramValues;\n\n if (paramValues != null) {\n return paramNames.reduce(function (memo, paramName, index) {\n memo[paramName] = paramValues[index];\n return memo;\n }, {});\n }\n\n return null;\n}\n\n/**\n * Returns a version of the given pattern with params interpolated. Throws\n * if there is a dynamic segment of the pattern for which there is no param.\n */\n\nfunction formatPattern(pattern, params) {\n params = params || {};\n\n var _compilePattern3 = compilePattern(pattern);\n\n var tokens = _compilePattern3.tokens;\n\n var parenCount = 0,\n pathname = '',\n splatIndex = 0;\n\n var token = undefined,\n paramName = undefined,\n paramValue = undefined;\n for (var i = 0, len = tokens.length; i < len; ++i) {\n token = tokens[i];\n\n if (token === '*' || token === '**') {\n paramValue = Array.isArray(params.splat) ? params.splat[splatIndex++] : params.splat;\n\n !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Missing splat #%s for path \"%s\"', splatIndex, pattern) : _invariant2['default'](false) : undefined;\n\n if (paramValue != null) pathname += encodeURI(paramValue);\n } else if (token === '(') {\n parenCount += 1;\n } else if (token === ')') {\n parenCount -= 1;\n } else if (token.charAt(0) === ':') {\n paramName = token.substring(1);\n paramValue = params[paramName];\n\n !(paramValue != null || parenCount > 0) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Missing \"%s\" parameter for path \"%s\"', paramName, pattern) : _invariant2['default'](false) : undefined;\n\n if (paramValue != null) pathname += encodeURIComponent(paramValue);\n } else {\n pathname += token;\n }\n }\n\n return pathname.replace(/\\/+/g, '/');\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1BhdHRlcm5VdGlscy5qcz83YzhjIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiY29tcGlsZVBhdHRlcm4iLCJtYXRjaFBhdHRlcm4iLCJnZXRQYXJhbU5hbWVzIiwiZ2V0UGFyYW1zIiwiZm9ybWF0UGF0dGVybiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfaW52YXJpYW50IiwicmVxdWlyZSIsIl9pbnZhcmlhbnQyIiwiZXNjYXBlUmVnRXhwIiwic3RyaW5nIiwicmVwbGFjZSIsImVzY2FwZVNvdXJjZSIsIl9jb21waWxlUGF0dGVybiIsInBhdHRlcm4iLCJyZWdleHBTb3VyY2UiLCJwYXJhbU5hbWVzIiwidG9rZW5zIiwibWF0Y2giLCJ1bmRlZmluZWQiLCJsYXN0SW5kZXgiLCJtYXRjaGVyIiwiZXhlYyIsImluZGV4IiwicHVzaCIsInNsaWNlIiwibGVuZ3RoIiwiQ29tcGlsZWRQYXR0ZXJuc0NhY2hlIiwicGF0aG5hbWUiLCJjaGFyQXQiLCJfY29tcGlsZVBhdHRlcm4yIiwiY2FwdHVyZVJlbWFpbmluZyIsIlJlZ0V4cCIsInJlbWFpbmluZ1BhdGhuYW1lIiwicGFyYW1WYWx1ZXMiLCJwb3AiLCJtYXRjaGVkUGF0aCIsInN1YnN0ciIsIm1hcCIsInYiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfbWF0Y2hQYXR0ZXJuIiwicmVkdWNlIiwibWVtbyIsInBhcmFtTmFtZSIsInBhcmFtcyIsIl9jb21waWxlUGF0dGVybjMiLCJwYXJlbkNvdW50Iiwic3BsYXRJbmRleCIsInRva2VuIiwicGFyYW1WYWx1ZSIsImkiLCJsZW4iLCJBcnJheSIsImlzQXJyYXkiLCJzcGxhdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImVuY29kZVVSSSIsInN1YnN0cmluZyIsImVuY29kZVVSSUNv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LFNBQVosRUFBdUIsS0FBdkIsQ0FBMUssR0FBME1XLFNBQTFNOztBQUVBLFVBQUkrQixjQUFjLElBQWxCLEVBQXdCdEIsWUFBWStCLFVBQVVULFVBQVYsQ0FBWjtBQUN6QixLQU5ELE1BTU8sSUFBSUQsVUFBVSxHQUFkLEVBQW1CO0FBQ3hCRixvQkFBYyxDQUFkO0FBQ0QsS0FGTSxNQUVBLElBQUlFLFVBQVUsR0FBZCxFQUFtQjtBQUN4QkYsb0JBQWMsQ0FBZDtBQUNELEtBRk0sTUFFQSxJQUFJRSxNQUFNcEIsTUFBTixDQUFhLENBQWIsTUFBb0IsR0FBeEIsRUFBNkI7QUFDbENlLGtCQUFZSyxNQUFNVyxTQUFOLENBQWdCLENBQWhCLENBQVo7QUFDQVYsbUJBQWFMLE9BQU9ELFNBQVAsQ0FBYjs7QUFFQSxRQUFFTSxjQUFjLElBQWQsSUFBc0JILGFBQWEsQ0FBckMsSUFBMENTLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q2xELFlBQVksU0FBWixFQUF1QixLQUF2QixFQUE4QixzQ0FBOUIsRUFBc0VvQyxTQUF0RSxFQUFpRjlCLE9BQWpGLENBQXhDLEdBQW9JTixZQUFZLFNBQVosRUFBdUIsS0FBdkIsQ0FBOUssR0FBOE1XLFNBQTlNOztBQUVBLFVBQUkrQixjQUFjLElBQWxCLEVBQXdCdEIsWUFBWWlDLG1CQUFtQlgsVUFBbkIsQ0FBWjtBQUN6QixLQVBNLE1BT0E7QUFDTHRCLGtCQUFZcUIsS0FBWjtBQUNEO0FBQ0Y7O0FBRUQsU0FBT3JCLFNBQVNqQixPQUFULENBQWlCLE1BQWpCLEVBQXlCLEdBQXpCLENBQVA7QUFDRCxDIiwiZmlsZSI6IjIxOS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuY29tcGlsZVBhdHRlcm4gPSBjb21waWxlUGF0dGVybjtcbmV4cG9ydHMubWF0Y2hQYXR0ZXJuID0gbWF0Y2hQYXR0ZXJuO1xuZXhwb3J0cy5nZXRQYXJhbU5hbWVzID0gZ2V0UGFyYW1OYW1lcztcbmV4cG9ydHMuZ2V0UGFyYW1zID0gZ2V0UGFyYW1zO1xuZXhwb3J0cy5mb3JtYXRQYXR0ZXJuID0gZm9ybWF0UGF0dGVybjtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX2ludmFyaWFudCA9IHJlcXVpcmUoJ2ludmFyaWFudCcpO1xuXG52YXIgX2ludmFyaWFudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbnZhcmlhbnQpO1xuXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpbmcucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlU291cmNlKHN0cmluZykge1xuICByZXR1cm4gZXNjYXBlUmVnRXhwKHN0cmluZykucmVwbGFjZSgvXFwvKy9nLCAnLysnKTtcbn1cblxuZnVuY3Rpb24gX2NvbXBpbGVQYXR0ZXJuKHBhdHRlcm4pIHtcbiAgdmFyIHJlZ2V4cFNvdXJjZSA9ICcnO1xuICB2YXIgcGFyYW1OYW1lcyA9IFtdO1xuICB2YXIgdG9rZW5zID0gW107XG5cbiAgdmFyIG1hdGNoID0gdW5kZWZpbmVkLFxuICAgICAgbGFzdEluZGV4ID0gMCxcbiAgICAgIG1hdGNoZXIgPSAvOihbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopfFxcKlxcKnxcXCp8XFwofFxcKS9nO1xuICB3aGlsZSAobWF0Y2ggPSBtYXRjaGVyLmV4ZWMocGF0dGVybikpIHtcbiAgICBpZiAobWF0Y2guaW5kZXggIT09IGxhc3RJbmRleCkge1xuICAgICAgdG9rZW5zLnB1c2gocGF0dGVybi5zbGljZShsYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICByZWdleHBTb3VyY2UgKz0gZXNjYXBlU291cmNlKHBhdHRlcm4uc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCkpO1xuICAgIH1cblxuICAgIGlmIChtYXRjaFsxXSkge1xuICAgICAgcmVnZXhwU291cmNlICs9ICcoW14vPyNdKyknO1xuICAgICAgcGFyYW1OYW1lcy5wdXNoKG1hdGNoWzFdKTtcbiAgICB9IGVsc2UgaWYgKG1hdGNoWzBdID09PSAnKionKSB7XG4gICAgICByZWdleHBTb3VyY2UgKz0gJyhbXFxcXHNcXFxcU10qKSc7XG4gICAgICBwYXJhbU5hbWVzLnB1c2goJ3NwbGF0Jyk7XG4gICAgfSBlbHNlIGlmIChtYXRjaFswXSA9PT0gJyonKSB7XG4gICAgICByZWdleHBTb3VyY2UgKz0gJyhbXFxcXHNcXFxcU10qPyknO1xuICAgICAgcGFyYW1OYW1lcy5wdXNoKCdzcGxhdCcpO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hbMF0gPT09ICcoJykge1xuICAgICAgcmVnZXhwU291cmNlICs9ICcoPzonO1xuICAgIH0gZWxzZSBpZiAobWF0Y2hbMF0gPT09ICcpJykge1xuICAgICAgcmVnZXhwU291cmNlICs9ICcpPyc7XG4gICAgfVxuXG4gICAgdG9rZW5zLnB1c2gobWF0Y2hbMF0pO1xuXG4gICAgbGFzdEluZGV4ID0gbWF0Y2hlci5sYXN0SW5kZXg7XG4gIH1cblxuICBpZiAobGFzdEluZGV4ICE9PSBwYXR0ZXJuLmxlbmd0aCkge1xuICAgIHRva2Vucy5wdXNoKHBhdHRlcm4uc2xpY2UobGFzdEluZGV4LCBwYXR0ZXJuLmxlbmd0aCkpO1xuICAgIHJlZ2V4cFNvdXJjZSArPSBlc2NhcGVTb3VyY2UocGF0dGVybi5zbGljZShsYXN0SW5kZXgsIHBhdHRlcm4ubGVuZ3RoKSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHBhdHRlcm46IHBhdHRlcm4sXG4gICAgcmVnZXhwU291cmNlOiByZWdleHBTb3VyY2UsXG4gICAgcGFyYW1OYW1lczogcGFyYW1OYW1lcyxcbiAgICB0b2tlbnM6IHRva2Vuc1xuICB9O1xufVxuXG52YXIgQ29tcGlsZWRQYXR0ZXJuc0NhY2hlID0ge307XG5cbmZ1bmN0aW9uIGNvbXBpbGVQYXR0ZXJuKHBhdHRlcm4pIHtcbiAgaWYgKCEocGF0dGVybiBpbiBDb21waWxlZFBhdHRlcm5zQ2FjaGUpKSBDb21waWxlZFBhdHRlcm5zQ2FjaGVbcGF0dGVybl0gPSBfY29tcGlsZVBhdHRlcm4ocGF0dGVybik7XG5cbiAgcmV0dXJuIENvbXBpbGVkUGF0dGVybnNDYWNoZVtwYXR0ZXJuXTtcbn1cblxuLyoqXG4gKiBBdHRlbXB0cyB0byBtYXRjaCBhIHBhdHRlcm4gb24gdGhlIGdpdmVuIHBhdGhuYW1lLiBQYXR0ZXJucyBtYXkgdXNlXG4gKiB0aGUgZm9sbG93aW5nIHNwZWNpYWwgY2hhcmFjdGVyczpcbiAqXG4gKiAtIDpwYXJhbU5hbWUgICAgIE1hdGNoZXMgYSBVUkwgc2VnbWVudCB1cCB0byB0aGUgbmV4dCAvLCA/LCBvciAjLiBUaGVcbiAqICAgICAgICAgICAgICAgICAgY2FwdHVyZWQgc3RyaW5nIGlzIGNvbnNpZGVyZWQgYSBcInBhcmFtXCJcbiAqIC0gKCkgICAgICAgICAgICAgV3JhcHMgYSBzZWdtZW50IG9mIHRoZSBVUkwgdGhhdCBpcyBvcHRpb25hbFxuICogLSAqICAgICAgICAgICAgICBDb25zdW1lcyAobm9uLWdyZWVkeSkgYWxsIGNoYXJhY3RlcnMgdXAgdG8gdGhlIG5leHRcbiAqICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyIGluIHRoZSBwYXR0ZXJuLCBvciB0byB0aGUgZW5kIG9mIHRoZSBVUkwgaWZcbiAqICAgICAgICAgICAgICAgICAgdGhlcmUgaXMgbm9uZVxuICogLSAqKiAgICAgICAgICAgICBDb25zdW1lcyAoZ3JlZWR5KSBhbGwgY2hhcmFjdGVycyB1cCB0byB0aGUgbmV4dCBjaGFyYWN0ZXJcbiAqICAgICAgICAgICAgICAgICAgaW4gdGhlIHBhdHRlcm4sIG9yIHRvIHRoZSBlbmQgb2YgdGhlIFVSTCBpZiB0aGVyZSBpcyBub25lXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogLSByZW1haW5pbmdQYXRobmFtZVxuICogLSBwYXJhbU5hbWVzXG4gKiAtIHBhcmFtVmFsdWVzXG4gKi9cblxuZnVuY3Rpb24gbWF0Y2hQYXR0ZXJuKHBhdHRlcm4sIHBhdGhuYW1lKSB7XG4gIC8vIE1ha2UgbGVhZGluZyBzbGFzaGVzIGNvbnNpc3RlbnQgYmV0d2VlbiBwYXR0ZXJuIGFuZCBwYXRobmFtZS5cbiAgaWYgKHBhdHRlcm4uY2hhckF0KDApICE9PSAnLycpIHtcbiAgICBwYXR0ZXJuID0gJy8nICsgcGF0dGVybjtcbiAgfVxuICBpZiAocGF0aG5hbWUuY2hhckF0KDApICE9PSAnLycpIHtcbiAgICBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lO1xuICB9XG5cbiAgdmFyIF9jb21waWxlUGF0dGVybjIgPSBjb21waWxlUGF0dGVybihwYXR0ZXJuKTtcblxuICB2YXIgcmVnZXhwU291cmNlID0gX2NvbXBpbGVQYXR0ZXJuMi5yZWdleHBTb3VyY2U7XG4gIHZhciBwYXJhbU5hbWVzID0gX2NvbXBpbGVQYXR0ZXJuMi5wYXJhbU5hbWVzO1xuICB2YXIgdG9rZW5zID0gX2NvbXBpbGVQYXR0ZXJuMi50b2tlbnM7XG5cbiAgcmVnZXhwU291cmNlICs9ICcvKic7IC8vIENhcHR1cmUgcGF0aCBzZXBhcmF0b3JzXG5cbiAgLy8gU3BlY2lhbC1jYXNlIHBhdHRlcm5zIGxpa2UgJyonIGZvciBjYXRjaC1hbGwgcm91dGVzLlxuICB2YXIgY2FwdHVyZVJlbWFpbmluZyA9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0gIT09ICcqJztcblxuICBpZiAoY2FwdHVyZVJlbWFpbmluZykge1xuICAgIC8vIFRoaXMgd2lsbCBtYXRjaCBuZXdsaW5lcyBpbiB0aGUgcmVtYWluaW5nIHBhdGguXG4gICAgcmVnZXhwU291cmNlICs9ICcoW1xcXFxzXFxcXFNdKj8pJztcbiAgfVxuXG4gIHZhciBtYXRjaCA9IHBhdGhuYW1lLm1hdGNoKG5ldyBSZWdFeHAoJ14nICsgcmVnZXhwU291cmNlICsgJyQnLCAnaScpKTtcblxuICB2YXIgcmVtYWluaW5nUGF0aG5hbWUgPSB1bmRlZmluZWQsXG4gICAgICBwYXJhbVZhbHVlcyA9IHVuZGVmaW5lZDtcbiAgaWYgKG1hdGNoICE9IG51bGwpIHtcbiAgICBpZiAoY2FwdHVyZVJlbWFpbmluZykge1xuICAgICAgcmVtYWluaW5nUGF0aG5hbWUgPSBtYXRjaC5wb3AoKTtcbiAgICAgIHZhciBtYXRjaGVkUGF0aCA9IG1hdGNoWzBdLnN1YnN0cigwLCBtYXRjaFswXS5sZW5ndGggLSByZW1haW5pbmdQYXRobmFtZS5sZW5ndGgpO1xuXG4gICAgICAvLyBJZiB3ZSBkaWRuJ3QgbWF0Y2ggdGhlIGVudGlyZSBwYXRobmFtZSwgdGhlbiBtYWtlIHN1cmUgdGhhdCB0aGUgbWF0Y2hcbiAgICAgIC8vIHdlIGRpZCBnZXQgZW5kcyBhdCBhIHBhdGggc2VwYXJhdG9yIChwb3RlbnRpYWxseSB0aGUgb25lIHdlIGFkZGVkXG4gICAgICAvLyBhYm92ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwYXRoLCBpZiB0aGUgYWN0dWFsIG1hdGNoIHdhcyBlbXB0eSkuXG4gICAgICBpZiAocmVtYWluaW5nUGF0aG5hbWUgJiYgbWF0Y2hlZFBhdGguY2hhckF0KG1hdGNoZWRQYXRoLmxlbmd0aCAtIDEpICE9PSAnLycpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZW1haW5pbmdQYXRobmFtZTogbnVsbCxcbiAgICAgICAgICBwYXJhbU5hbWVzOiBwYXJhbU5hbWVzLFxuICAgICAgICAgIHBhcmFtVmFsdWVzOiBudWxsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoaXMgbWF0Y2hlZCBhdCBhbGwsIHRoZW4gdGhlIG1hdGNoIHdhcyB0aGUgZW50aXJlIHBhdGhuYW1lLlxuICAgICAgcmVtYWluaW5nUGF0aG5hbWUgPSAnJztcbiAgICB9XG5cbiAgICBwYXJhbVZhbHVlcyA9IG1hdGNoLnNsaWNlKDEpLm1hcChmdW5jdGlvbiAodikge1xuICAgICAgcmV0dXJuIHYgIT0gbnVsbCA/IGRlY29kZVVSSUNvbXBvbmVudCh2KSA6IHY7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmVtYWluaW5nUGF0aG5hbWUgPSBwYXJhbVZhbHVlcyA9IG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlbWFpbmluZ1BhdGhuYW1lOiByZW1haW5pbmdQYXRobmFtZSxcbiAgICBwYXJhbU5hbWVzOiBwYXJhbU5hbWVzLFxuICAgIHBhcmFtVmFsdWVzOiBwYXJhbVZhbHVlc1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRQYXJhbU5hbWVzKHBhdHRlcm4pIHtcbiAgcmV0dXJuIGNvbXBpbGVQYXR0ZXJuKHBhdHRlcm4pLnBhcmFtTmFtZXM7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtcyhwYXR0ZXJuLCBwYXRobmFtZSkge1xuICB2YXIgX21hdGNoUGF0dGVybiA9IG1hdGNoUGF0dGVybihwYXR0ZXJuLCBwYXRobmFtZSk7XG5cbiAgdmFyIHBhcmFtTmFtZXMgPSBfbWF0Y2hQYXR0ZXJuLnBhcmFtTmFtZXM7XG4gIHZhciBwYXJhbVZhbHVlcyA9IF9tYXRjaFBhdHRlcm4ucGFyYW1WYWx1ZXM7XG5cbiAgaWYgKHBhcmFtVmFsdWVzICE9IG51bGwpIHtcbiAgICByZXR1cm4gcGFyYW1OYW1lcy5yZWR1Y2UoZnVuY3Rpb24gKG1lbW8sIHBhcmFtTmFtZSwgaW5kZXgpIHtcbiAgICAgIG1lbW9bcGFyYW1OYW1lXSA9IHBhcmFtVmFsdWVzW2luZGV4XTtcbiAgICAgIHJldHVybiBtZW1vO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSB2ZXJzaW9uIG9mIHRoZSBnaXZlbiBwYXR0ZXJuIHdpdGggcGFyYW1zIGludGVycG9sYXRlZC4gVGhyb3dzXG4gKiBpZiB0aGVyZSBpcyBhIGR5bmFtaWMgc2VnbWVudCBvZiB0aGUgcGF0dGVybiBmb3Igd2hpY2ggdGhlcmUgaXMgbm8gcGFyYW0uXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0UGF0dGVybihwYXR0ZXJuLCBwYXJhbXMpIHtcbiAgcGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuXG4gIHZhciBfY29tcGlsZVBhdHRlcm4zID0gY29tcGlsZVBhdHRlcm4ocGF0dGVybik7XG5cbiAgdmFyIHRva2VucyA9IF9jb21waWxlUGF0dGVybjMudG9rZW5zO1xuXG4gIHZhciBwYXJlbkNvdW50ID0gMCxcbiAgICAgIHBhdGhuYW1lID0gJycsXG4gICAgICBzcGxhdEluZGV4ID0gMDtcblxuICB2YXIgdG9rZW4gPSB1bmRlZmluZWQsXG4gICAgICBwYXJhbU5hbWUgPSB1bmRlZmluZWQsXG4gICAgICBwYXJhbVZhbHVlID0gdW5kZWZpbmVkO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gdG9rZW5zLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgdG9rZW4gPSB0b2tlbnNbaV07XG5cbiAgICBpZiAodG9rZW4gPT09ICcqJyB8fCB0b2tlbiA9PT0gJyoqJykge1xuICAgICAgcGFyYW1WYWx1ZSA9IEFycmF5LmlzQXJyYXkocGFyYW1zLnNwbGF0KSA/IHBhcmFtcy5zcGxhdFtzcGxhdEluZGV4KytdIDogcGFyYW1zLnNwbGF0O1xuXG4gICAgICAhKHBhcmFtVmFsdWUgIT0gbnVsbCB8fCBwYXJlbkNvdW50ID4gMCkgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSwgJ01pc3Npbmcgc3BsYXQgIyVzIGZvciBwYXRoIFwiJXNcIicsIHNwbGF0SW5kZXgsIHBhdHRlcm4pIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChwYXJhbVZhbHVlICE9IG51bGwpIHBhdGhuYW1lICs9IGVuY29kZVVSSShwYXJhbVZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHRva2VuID09PSAnKCcpIHtcbiAgICAgIHBhcmVuQ291bnQgKz0gMTtcbiAgICB9IGVsc2UgaWYgKHRva2VuID09PSAnKScpIHtcbiAgICAgIHBhcmVuQ291bnQgLT0gMTtcbiAgICB9IGVsc2UgaWYgKHRva2VuLmNoYXJBdCgwKSA9PT0gJzonKSB7XG4gICAgICBwYXJhbU5hbWUgPSB0b2tlbi5zdWJzdHJpbmcoMSk7XG4gICAgICBwYXJhbVZhbHVlID0gcGFyYW1zW3BhcmFtTmFtZV07XG5cbiAgICAgICEocGFyYW1WYWx1ZSAhPSBudWxsIHx8IHBhcmVuQ291bnQgPiAwKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnTWlzc2luZyBcIiVzXCIgcGFyYW1ldGVyIGZvciBwYXRoIFwiJXNcIicsIHBhcmFtTmFtZSwgcGF0dGVybikgOiBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKHBhcmFtVmFsdWUgIT0gbnVsbCkgcGF0aG5hbWUgKz0gZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXRobmFtZSArPSB0b2tlbjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGF0aG5hbWUucmVwbGFjZSgvXFwvKy9nLCAnLycpO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJvdXRlci9saWIvUGF0dGVyblV0aWxzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 220 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n }return target;\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _historyLibActions = __webpack_require__(201);\n\nvar _historyLibUseQueries = __webpack_require__(221);\n\nvar _historyLibUseQueries2 = _interopRequireDefault(_historyLibUseQueries);\n\nvar _computeChangedRoutes2 = __webpack_require__(226);\n\nvar _computeChangedRoutes3 = _interopRequireDefault(_computeChangedRoutes2);\n\nvar _TransitionUtils = __webpack_require__(227);\n\nvar _isActive2 = __webpack_require__(229);\n\nvar _isActive3 = _interopRequireDefault(_isActive2);\n\nvar _getComponents = __webpack_require__(230);\n\nvar _getComponents2 = _interopRequireDefault(_getComponents);\n\nvar _matchRoutes = __webpack_require__(231);\n\nvar _matchRoutes2 = _interopRequireDefault(_matchRoutes);\n\nfunction hasAnyProperties(object) {\n for (var p in object) {\n if (object.hasOwnProperty(p)) return true;\n }return false;\n}\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know about routing.\n *\n * Enhances history objects with the following methods:\n *\n * - listen((error, nextState) => {})\n * - listenBeforeLeavingRoute(route, (nextLocation) => {})\n * - match(location, (error, redirectLocation, nextState) => {})\n * - isActive(pathname, query, indexOnly=false)\n */\nfunction useRoutes(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var routes = options.routes;\n\n var historyOptions = _objectWithoutProperties(options, ['routes']);\n\n var history = _historyLibUseQueries2['default'](createHistory)(historyOptions);\n var state = {};\n\n function isActive(pathname, query) {\n var indexOnly = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n\n return _isActive3['default'](pathname, query, indexOnly, state.location, state.routes, state.params);\n }\n\n function createLocationFromRedirectInfo(_ref) {\n var pathname = _ref.pathname;\n var query = _ref.query;\n var state = _ref.state;\n\n return history.createLocation(history.createPath(pathname, query), state, _historyLibActions.REPLACE);\n }\n\n var partialNextState = undefined;\n\n function match(location, callback) {\n if (partialNextState && partialNextState.location === location) {\n // Continue from where we left off.\n finishMatch(partialNextState, callback);\n } else {\n _matchRoutes2['default'](routes, location, function (error, nextState) {\n if (error) {\n callback(error);\n } else if (nextState) {\n finishMatch(_extends({}, nextState, { location: location }), callback);\n } else {\n callback();\n }\n });\n }\n }\n\n function finishMatch(nextState, callback) {\n var _computeChangedRoutes = _computeChangedRoutes3['default'](state, nextState);\n\n var leaveRoutes = _computeChangedRoutes.leaveRoutes;\n var enterRoutes = _computeChangedRoutes.enterRoutes;\n\n _TransitionUtils.runLeaveHooks(leaveRoutes);\n\n _TransitionUtils.runEnterHooks(enterRoutes, nextState, function (error, redirectInfo) {\n if (error) {\n callback(error);\n } else if (redirectInfo) {\n callback(null, createLocationFromRedirectInfo(redirectInfo));\n } else {\n // TODO: Fetch components after state is updated.\n _getComponents2['default'](nextState, function (error, components) {\n if (error) {\n callback(error);\n } else {\n // TODO: Make match a pure function and have some other API\n // for \"match and update state\".\n callback(null, null, state = _extends({}, nextState, { components: components }));\n }\n });\n }\n });\n }\n\n var RouteGuid = 1;\n\n function getRouteID(route) {\n return route.__id__ || (route.__id__ = RouteGuid++);\n }\n\n var RouteHooks = {};\n\n function getRouteHooksForRoutes(routes) {\n return routes.reduce(function (hooks, route) {\n hooks.push.apply(hooks, RouteHooks[getRouteID(route)]);\n return hooks;\n }, []);\n }\n\n function transitionHook(location, callback) {\n _matchRoutes2['default'](routes, location, function (error, nextState) {\n if (nextState == null) {\n // TODO: We didn't actually match anything, but hang\n // onto error/nextState so we don't have to matchRoutes\n // again in the listen callback.\n callback();\n return;\n }\n\n // Cache some state here so we don't have to\n // matchRoutes() again in the listen callback.\n partialNextState = _extends({}, nextState, { location: location });\n\n var hooks = getRouteHooksForRoutes(_computeChangedRoutes3['default'](state, partialNextState).leaveRoutes);\n\n var result = undefined;\n for (var i = 0, len = hooks.length; result == null && i < len; ++i) {\n // Passing the location arg here indicates to\n // the user that this is a transition hook.\n result = hooks[i](location);\n }\n\n callback(result);\n });\n }\n\n function beforeUnloadHook() {\n // Synchronously check to see if any route hooks want\n // to prevent the current window/tab from closing.\n if (state.routes) {\n var hooks = getRouteHooksForRoutes(state.routes);\n\n var message = undefined;\n for (var i = 0, len = hooks.length; typeof message !== 'string' && i < len; ++i) {\n // Passing no args indicates to the user that this is a\n // beforeunload hook. We don't know the next location.\n message = hooks[i]();\n }\n\n return message;\n }\n }\n\n var unlistenBefore = undefined,\n unlistenBeforeUnload = undefined;\n\n /**\n * Registers the given hook function to run before leaving the given route.\n *\n * During a normal transition, the hook function receives the next location\n * as its only argument and must return either a) a prompt message to show\n * the user, to make sure they want to leave the page or b) false, to prevent\n * the transition.\n *\n * During the beforeunload event (in browsers) the hook receives no arguments.\n * In this case it must return a prompt message to prevent the transition.\n *\n * Returns a function that may be used to unbind the listener.\n */\n function listenBeforeLeavingRoute(route, hook) {\n // TODO: Warn if they register for a route that isn't currently\n // active. They're probably doing something wrong, like re-creating\n // route objects on every location change.\n var routeID = getRouteID(route);\n var hooks = RouteHooks[routeID];\n\n if (hooks == null) {\n var thereWereNoRouteHooks = !hasAnyProperties(RouteHooks);\n\n hooks = RouteHooks[routeID] = [hook];\n\n if (thereWereNoRouteHooks) {\n // setup transition & beforeunload hooks\n unlistenBefore = history.listenBefore(transitionHook);\n\n if (history.listenBeforeUnload) unlistenBeforeUnload = history.listenBeforeUnload(beforeUnloadHook);\n }\n } else if (hooks.indexOf(hook) === -1) {\n hooks.push(hook);\n }\n\n return function () {\n var hooks = RouteHooks[routeID];\n\n if (hooks != null) {\n var newHooks = hooks.filter(function (item) {\n return item !== hook;\n });\n\n if (newHooks.length === 0) {\n delete RouteHooks[routeID];\n\n if (!hasAnyProperties(RouteHooks)) {\n // teardown transition & beforeunload hooks\n if (unlistenBefore) {\n unlistenBefore();\n unlistenBefore = null;\n }\n\n if (unlistenBeforeUnload) {\n unlistenBeforeUnload();\n unlistenBeforeUnload = null;\n }\n }\n } else {\n RouteHooks[routeID] = newHooks;\n }\n }\n };\n }\n\n /**\n * This is the API for stateful environments. As the location\n * changes, we update state and call the listener. We can also\n * gracefully handle errors and redirects.\n */\n function listen(listener) {\n // TODO: Only use a single history listener. Otherwise we'll\n // end up with multiple concurrent calls to match.\n return history.listen(function (location) {\n if (state.location === location) {\n listener(null, state);\n } else {\n match(location, function (error, redirectLocation, nextState) {\n if (error) {\n listener(error);\n } else if (redirectLocation) {\n history.transitionTo(redirectLocation);\n } else if (nextState) {\n listener(null, nextState);\n } else {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'Location \"%s\" did not match any routes', location.pathname + location.search + location.hash) : undefined;\n }\n });\n }\n });\n }\n\n return _extends({}, history, {\n isActive: isActive,\n match: match,\n listenBeforeLeavingRoute: listenBeforeLeavingRoute,\n listen: listen\n });\n };\n}\n\nexports['default'] = useRoutes;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL3VzZVJvdXRlcy5qcz83OWY4Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImtleXMiLCJpbmRleE9mIiwiX3dhcm5pbmciLCJyZXF1aXJlIiwiX3dhcm5pbmcyIiwiX2hpc3RvcnlMaWJBY3Rpb25zIiwiX2hpc3RvcnlMaWJVc2VRdWVyaWVzIiwiX2hpc3RvcnlMaWJVc2VRdWVyaWVzMiIsIl9jb21wdXRlQ2hhbmdlZFJvdXRlczIiLCJfY29tcHV0ZUNoYW5nZWRSb3V0ZXMzIiwiX1RyYW5zaXRpb25VdGlscyIsIl9pc0FjdGl2ZTIiLCJfaXNBY3RpdmUzIiwiX2dldENvbXBvbmVudHMiLCJfZ2V0Q29tcG9uZW50czIiLCJfbWF0Y2hSb3V0ZXMiLCJfbWF0Y2hSb3V0ZXMyIiwiaGFzQW55UHJvcGVydGllcyIsIm9iamVjdCIsInAiLCJ1c2VSb3V0ZXMiLCJjcmVhdGVIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsInJvdXRlcyIsImhpc3RvcnlPcHRpb25zIiwiaGlzdG9yeSIsInN0YXRlIiwiaXNBY3RpdmUiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaW5kZXhPbmx5IiwibG9jYXRpb24iLCJwYXJhbXMiLCJjcmVhdGVMb2NhdGlvbkZyb21SZWRpcmVjdEluZm8iLCJfcmVmIiwiY3JlYXRlTG9jYXRpb24iLCJjcmVhdGVQYXRoIiwiUkVQTEFDRSIsInBhcnRpYWxOZXh0U3RhdGUiLCJtYXRjaCIsImNhbGxiYWNrIiwiZmluaXNoTWF0Y2giLCJlcnJvciIsIm5leHRTdGF0ZSIsIl9jb21wdXRlQ2hhbmdlZFJvdXRlcyIsImxlYXZlUm91dGVzIiwiZW50ZXJSb3V0ZXMiLCJydW5MZWF2ZUhvb2tzIiwicnVuRW50ZXJIb29rcyIsInJlZGlyZWN0SW5mbyIsImNvbXBvbmVudHMiLCJSb3V0ZUd1aWQiLCJnZXRSb3V0ZUlEIiwicm91dGUiLCJfX2lkX18iLCJSb3V0ZUhvb2tzIiwiZ2V0Um91dGVIb29rc0ZvclJvdXRlcyIsInJlZHVjZSIsImhvb2tzIiwicHVzaCIsImFwcGx5IiwidHJhbnNpdGlvbkhvb2siLCJyZXN1bHQiLCJsZW4iLCJiZWZvcmVVbmxvYWRIb29rIiwibWVzc2FnZSIsInVubGlzdGVuQmVmb3JlIiwidW5saXN0ZW5CZWZvcmVVbmxvYWQiLCJsaXN0ZW5CZWZvcmVMZWF2aW5nUm91dGUiLCJob29rIiwicm91dGVJRCIsInRoZXJlV2VyZU5vUm91dGVIb29rcyIsImxpc3RlbkJlZm9yZSIsImxpc3RlbkJlZm9yZVVubG9hZCIsIm5ld0hvb2tzIiwiZmlsdGVyIiwiaXRlbSIsImxpc3RlbiIsImxpc3RlbmVyIiwicmVkaXJlY3RMb2NhdGlvbiIsInRyYW5zaXRpb25UbyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInNlYXJjaCIsImhhc2giLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLFdBQVdDLE9BQU9DLE1BQVAsSUFBaUIsVUFBVUMsTUFBVixFQUFrQjtBQUFFLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxVQUFVQyxNQUE5QixFQUFzQ0YsR0FBdEMsRUFBMkM7QUFBRSxRQUFJRyxTQUFTRixVQUFVRCxDQUFWLENBQWIsQ0FBMkIsS0FBSyxJQUFJSSxHQUFULElBQWdCRCxNQUFoQixFQUF3QjtBQUFFLFVBQUlOLE9BQU9RLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFo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LElBQXJILENBQXhDLEdBQXFLL0QsU0FBcks7QUFDRDtBQUNGLFdBVkQ7QUFXRDtBQUNGLE9BaEJNLENBQVA7QUFpQkQ7O0FBRUQsV0FBT3RDLFNBQVMsRUFBVCxFQUFheUMsT0FBYixFQUFzQjtBQUMzQkUsZ0JBQVVBLFFBRGlCO0FBRTNCWSxhQUFPQSxLQUZvQjtBQUczQjZCLGdDQUEwQkEsd0JBSEM7QUFJM0JTLGNBQVFBO0FBSm1CLEtBQXRCLENBQVA7QUFNRCxHQXRPRDtBQXVPRDs7QUFFRC9GLFFBQVEsU0FBUixJQUFxQnFDLFNBQXJCO0FBQ0FtRSxPQUFPeEcsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCLEMiLCJmaWxlIjoiMjIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhvYmosIGtleXMpIHsgdmFyIHRhcmdldCA9IHt9OyBmb3IgKHZhciBpIGluIG9iaikgeyBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGkpKSBjb250aW51ZTsgdGFyZ2V0W2ldID0gb2JqW2ldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbnZhciBfaGlzdG9yeUxpYkFjdGlvbnMgPSByZXF1aXJlKCdoaXN0b3J5L2xpYi9BY3Rpb25zJyk7XG5cbnZhciBfaGlzdG9yeUxpYlVzZVF1ZXJpZXMgPSByZXF1aXJlKCdoaXN0b3J5L2xpYi91c2VRdWVyaWVzJyk7XG5cbnZhciBfaGlzdG9yeUxpYlVzZVF1ZXJpZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaGlzdG9yeUxpYlVzZVF1ZXJpZXMpO1xuXG52YXIgX2NvbXB1dGVDaGFuZ2VkUm91dGVzMiA9IHJlcXVpcmUoJy4vY29tcHV0ZUNoYW5nZWRSb3V0ZXMnKTtcblxudmFyIF9jb21wdXRlQ2hhbmdlZFJvdXRlczMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb21wdXRlQ2hhbmdlZFJvdXRlczIpO1xuXG52YXIgX1RyYW5zaXRpb25VdGlscyA9IHJlcXVpcmUoJy4vVHJhbnNpdGlvblV0aWxzJyk7XG5cbnZhciBfaXNBY3RpdmUyID0gcmVxdWlyZSgnLi9pc0FjdGl2ZScpO1xuXG52YXIgX2lzQWN0aXZlMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2lzQWN0aXZlMik7XG5cbnZhciBfZ2V0Q29tcG9uZW50cyA9IHJlcXVpcmUoJy4vZ2V0Q29tcG9uZW50cycpO1xuXG52YXIgX2dldENvbXBvbmVudHMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0Q29tcG9uZW50cyk7XG5cbnZhciBfbWF0Y2hSb3V0ZXMgPSByZXF1aXJlKCcuL21hdGNoUm91dGVzJyk7XG5cbnZhciBfbWF0Y2hSb3V0ZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWF0Y2hSb3V0ZXMpO1xuXG5mdW5jdGlvbiBoYXNBbnlQcm9wZXJ0aWVzKG9iamVjdCkge1xuICBmb3IgKHZhciBwIGluIG9iamVjdCkge1xuICAgIGlmIChvYmplY3QuaGFzT3duUHJvcGVydHkocCkpIHJldHVybiB0cnVlO1xuICB9cmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBuZXcgY3JlYXRlSGlzdG9yeSBmdW5jdGlvbiB0aGF0IG1heSBiZSB1c2VkIHRvIGNyZWF0ZVxuICogaGlzdG9yeSBvYmplY3RzIHRoYXQga25vdyBhYm91dCByb3V0aW5nLlxuICpcbiAqIEVuaGFuY2VzIGhpc3Rvcnkgb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcgbWV0aG9kczpcbiAqXG4gKiAtIGxpc3RlbigoZXJyb3IsIG5leHRTdGF0ZSkgPT4ge30pXG4gKiAtIGxpc3RlbkJlZm9yZUxlYXZpbmdSb3V0ZShyb3V0ZSwgKG5leHRMb2NhdGlvbikgPT4ge30pXG4gKiAtIG1hdGNoKGxvY2F0aW9uLCAoZXJyb3IsIHJlZGlyZWN0TG9jYXRpb24sIG5leHRTdGF0ZSkgPT4ge30pXG4gKiAtIGlzQWN0aXZlKHBhdGhuYW1lLCBxdWVyeSwgaW5kZXhPbmx5PWZhbHNlKVxuICovXG5mdW5jdGlvbiB1c2VSb3V0ZXMoY3JlYXRlSGlzdG9yeSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG4gICAgdmFyIHJvdXRlcyA9IG9wdGlvbnMucm91dGVzO1xuXG4gICAgdmFyIGhpc3RvcnlPcHRpb25zID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9wdGlvbnMsIFsncm91dGVzJ10pO1xuXG4gICAgdmFyIGhpc3RvcnkgPSBfaGlzdG9yeUxpYlVzZVF1ZXJpZXMyWydkZWZhdWx0J10oY3JlYXRlSGlzdG9yeSkoaGlzdG9yeU9wdGlvbnMpO1xuICAgIHZhciBzdGF0ZSA9IHt9O1xuXG4gICAgZnVuY3Rpb24gaXNBY3RpdmUocGF0aG5hbWUsIHF1ZXJ5KSB7XG4gICAgICB2YXIgaW5kZXhPbmx5ID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMl07XG5cbiAgICAgIHJldHVybiBfaXNBY3RpdmUzWydkZWZhdWx0J10ocGF0aG5hbWUsIHF1ZXJ5LCBpbmRleE9ubHksIHN0YXRlLmxvY2F0aW9uLCBzdGF0ZS5yb3V0ZXMsIHN0YXRlLnBhcmFtcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYXRpb25Gcm9tUmVkaXJlY3RJbmZvKF9yZWYpIHtcbiAgICAgIHZhciBwYXRobmFtZSA9IF9yZWYucGF0aG5hbWU7XG4gICAgICB2YXIgcXVlcnkgPSBfcmVmLnF1ZXJ5O1xuICAgICAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZTtcblxuICAgICAgcmV0dXJuIGhpc3RvcnkuY3JlYXRlTG9jYXRpb24oaGlzdG9yeS5jcmVhdGVQYXRoKHBhdGhuYW1lLCBxdWVyeSksIHN0YXRlLCBfaGlzdG9yeUxpYkFjdGlvbnMuUkVQTEFDRSk7XG4gICAgfVxuXG4gICAgdmFyIHBhcnRpYWxOZXh0U3RhdGUgPSB1bmRlZmluZWQ7XG5cbiAgICBmdW5jdGlvbiBtYXRjaChsb2NhdGlvbiwgY2FsbGJhY2spIHtcbiAgICAgIGlmIChwYXJ0aWFsTmV4dFN0YXRlICYmIHBhcnRpYWxOZXh0U3RhdGUubG9jYXRpb24gPT09IGxvY2F0aW9uKSB7XG4gICAgICAgIC8vIENvbnRpbnVlIGZyb20gd2hlcmUgd2UgbGVmdCBvZmYuXG4gICAgICAgIGZpbmlzaE1hdGNoKHBhcnRpYWxOZXh0U3RhdGUsIGNhbGxiYWNrKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF9tYXRjaFJvdXRlczJbJ2RlZmF1bHQnXShyb3V0ZXMsIGxvY2F0aW9uLCBmdW5jdGlvbiAoZXJyb3IsIG5leHRTdGF0ZSkge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSBpZiAobmV4dFN0YXRlKSB7XG4gICAgICAgICAgICBmaW5pc2hNYXRjaChfZXh0ZW5kcyh7fSwgbmV4dFN0YXRlLCB7IGxvY2F0aW9uOiBsb2NhdGlvbiB9KSwgY2FsbGJhY2spO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmluaXNoTWF0Y2gobmV4dFN0YXRlLCBjYWxsYmFjaykge1xuICAgICAgdmFyIF9jb21wdXRlQ2hhbmdlZFJvdXRlcyA9IF9jb21wdXRlQ2hhbmdlZFJvdXRlczNbJ2RlZmF1bHQnXShzdGF0ZSwgbmV4dFN0YXRlKTtcblxuICAgICAgdmFyIGxlYXZlUm91dGVzID0gX2NvbXB1dGVDaGFuZ2VkUm91dGVzLmxlYXZlUm91dGVzO1xuICAgICAgdmFyIGVudGVyUm91dGVzID0gX2NvbXB1dGVDaGFuZ2VkUm91dGVzLmVudGVyUm91dGVzO1xuXG4gICAgICBfVHJhbnNpdGlvblV0aWxzLnJ1bkxlYXZlSG9va3MobGVhdmVSb3V0ZXMpO1xuXG4gICAgICBfVHJhbnNpdGlvblV0aWxzLnJ1bkVudGVySG9va3MoZW50ZXJSb3V0ZXMsIG5leHRTdGF0ZSwgZnVuY3Rpb24gKGVycm9yLCByZWRpcmVjdEluZm8pIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICB9IGVsc2UgaWYgKHJlZGlyZWN0SW5mbykge1xuICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGNyZWF0ZUxvY2F0aW9uRnJvbVJlZGlyZWN0SW5mbyhyZWRpcmVjdEluZm8pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUT0RPOiBGZXRjaCBjb21wb25lbnRzIGFmdGVyIHN0YXRlIGlzIHVwZGF0ZWQuXG4gICAgICAgICAgX2dldENvbXBvbmVudHMyWydkZWZhdWx0J10obmV4dFN0YXRlLCBmdW5jdGlvbiAoZXJyb3IsIGNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBUT0RPOiBNYWtlIG1hdGNoIGEgcHVyZSBmdW5jdGlvbiBhbmQgaGF2ZSBzb21lIG90aGVyIEFQSVxuICAgICAgICAgICAgICAvLyBmb3IgXCJtYXRjaCBhbmQgdXBkYXRlIHN0YXRlXCIuXG4gICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIG51bGwsIHN0YXRlID0gX2V4dGVuZHMoe30sIG5leHRTdGF0ZSwgeyBjb21wb25lbnRzOiBjb21wb25lbnRzIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIFJvdXRlR3VpZCA9IDE7XG5cbiAgICBmdW5jdGlvbiBnZXRSb3V0ZUlEKHJvdXRlKSB7XG4gICAgICByZXR1cm4gcm91dGUuX19pZF9fIHx8IChyb3V0ZS5fX2lkX18gPSBSb3V0ZUd1aWQrKyk7XG4gICAgfVxuXG4gICAgdmFyIFJvdXRlSG9va3MgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGdldFJvdXRlSG9va3NGb3JSb3V0ZXMocm91dGVzKSB7XG4gICAgICByZXR1cm4gcm91dGVzLnJlZHVjZShmdW5jdGlvbiAoaG9va3MsIHJvdXRlKSB7XG4gICAgICAgIGhvb2tzLnB1c2guYXBwbHkoaG9va3MsIFJvdXRlSG9va3NbZ2V0Um91dGVJRChyb3V0ZSldKTtcbiAgICAgICAgcmV0dXJuIGhvb2tzO1xuICAgICAgfSwgW10pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zaXRpb25Ib29rKGxvY2F0aW9uLCBjYWxsYmFjaykge1xuICAgICAgX21hdGNoUm91dGVzMlsnZGVmYXVsdCddKHJvdXRlcywgbG9jYXRpb24sIGZ1bmN0aW9uIChlcnJvciwgbmV4dFN0YXRlKSB7XG4gICAgICAgIGlmIChuZXh0U3RhdGUgPT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRPRE86IFdlIGRpZG4ndCBhY3R1YWxseSBtYXRjaCBhbnl0aGluZywgYnV0IGhhbmdcbiAgICAgICAgICAvLyBvbnRvIGVycm9yL25leHRTdGF0ZSBzbyB3ZSBkb24ndCBoYXZlIHRvIG1hdGNoUm91dGVzXG4gICAgICAgICAgLy8gYWdhaW4gaW4gdGhlIGxpc3RlbiBjYWxsYmFjay5cbiAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhY2hlIHNvbWUgc3RhdGUgaGVyZSBzbyB3ZSBkb24ndCBoYXZlIHRvXG4gICAgICAgIC8vIG1hdGNoUm91dGVzKCkgYWdhaW4gaW4gdGhlIGxpc3RlbiBjYWxsYmFjay5cbiAgICAgICAgcGFydGlhbE5leHRTdGF0ZSA9IF9leHRlbmRzKHt9LCBuZXh0U3RhdGUsIHsgbG9jYXRpb246IGxvY2F0aW9uIH0pO1xuXG4gICAgICAgIHZhciBob29rcyA9IGdldFJvdXRlSG9va3NGb3JSb3V0ZXMoX2NvbXB1dGVDaGFuZ2VkUm91dGVzM1snZGVmYXVsdCddKHN0YXRlLCBwYXJ0aWFsTmV4dFN0YXRlKS5sZWF2ZVJvdXRlcyk7XG5cbiAgICAgICAgdmFyIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGhvb2tzLmxlbmd0aDsgcmVzdWx0ID09IG51bGwgJiYgaSA8IGxlbjsgKytpKSB7XG4gICAgICAgICAgLy8gUGFzc2luZyB0aGUgbG9jYXRpb24gYXJnIGhlcmUgaW5kaWNhdGVzIHRvXG4gICAgICAgICAgLy8gdGhlIHVzZXIgdGhhdCB0aGlzIGlzIGEgdHJhbnNpdGlvbiBob29rLlxuICAgICAgICAgIHJlc3VsdCA9IGhvb2tzW2ldKGxvY2F0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiZWZvcmVVbmxvYWRIb29rKCkge1xuICAgICAgLy8gU3luY2hyb25vdXNseSBjaGVjayB0byBzZWUgaWYgYW55IHJvdXRlIGhvb2tzIHdhbnRcbiAgICAgIC8vIHRvIHByZXZlbnQgdGhlIGN1cnJlbnQgd2luZG93L3RhYiBmcm9tIGNsb3NpbmcuXG4gICAgICBpZiAoc3RhdGUucm91dGVzKSB7XG4gICAgICAgIHZhciBob29rcyA9IGdldFJvdXRlSG9va3NGb3JSb3V0ZXMoc3RhdGUucm91dGVzKTtcblxuICAgICAgICB2YXIgbWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGhvb2tzLmxlbmd0aDsgdHlwZW9mIG1lc3NhZ2UgIT09ICdzdHJpbmcnICYmIGkgPCBsZW47ICsraSkge1xuICAgICAgICAgIC8vIFBhc3Npbmcgbm8gYXJncyBpbmRpY2F0ZXMgdG8gdGhlIHVzZXIgdGhhdCB0aGlzIGlzIGFcbiAgICAgICAgICAvLyBiZWZvcmV1bmxvYWQgaG9vay4gV2UgZG9uJ3Qga25vdyB0aGUgbmV4dCBsb2NhdGlvbi5cbiAgICAgICAgICBtZXNzYWdlID0gaG9va3NbaV0oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciB1bmxpc3RlbkJlZm9yZSA9IHVuZGVmaW5lZCxcbiAgICAgICAgdW5saXN0ZW5CZWZvcmVVbmxvYWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgdGhlIGdpdmVuIGhvb2sgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSBsZWF2aW5nIHRoZSBnaXZlbiByb3V0ZS5cbiAgICAgKlxuICAgICAqIER1cmluZyBhIG5vcm1hbCB0cmFuc2l0aW9uLCB0aGUgaG9vayBmdW5jdGlvbiByZWNlaXZlcyB0aGUgbmV4dCBsb2NhdGlvblxuICAgICAqIGFzIGl0cyBvbmx5IGFyZ3VtZW50IGFuZCBtdXN0IHJldHVybiBlaXRoZXIgYSkgYSBwcm9tcHQgbWVzc2FnZSB0byBzaG93XG4gICAgICogdGhlIHVzZXIsIHRvIG1ha2Ugc3VyZSB0aGV5IHdhbnQgdG8gbGVhdmUgdGhlIHBhZ2Ugb3IgYikgZmFsc2UsIHRvIHByZXZlbnRcbiAgICAgKiB0aGUgdHJhbnNpdGlvbi5cbiAgICAgKlxuICAgICAqIER1cmluZyB0aGUgYmVmb3JldW5sb2FkIGV2ZW50IChpbiBicm93c2VycykgdGhlIGhvb2sgcmVjZWl2ZXMgbm8gYXJndW1lbnRzLlxuICAgICAqIEluIHRoaXMgY2FzZSBpdCBtdXN0IHJldHVybiBhIHByb21wdCBtZXNzYWdlIHRvIHByZXZlbnQgdGhlIHRyYW5zaXRpb24uXG4gICAgICpcbiAgICAgKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCBtYXkgYmUgdXNlZCB0byB1bmJpbmQgdGhlIGxpc3RlbmVyLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RlbkJlZm9yZUxlYXZpbmdSb3V0ZShyb3V0ZSwgaG9vaykge1xuICAgICAgLy8gVE9ETzogV2FybiBpZiB0aGV5IHJlZ2lzdGVyIGZvciBhIHJvdXRlIHRoYXQgaXNuJ3QgY3VycmVudGx5XG4gICAgICAvLyBhY3RpdmUuIFRoZXkncmUgcHJvYmFibHkgZG9pbmcgc29tZXRoaW5nIHdyb25nLCBsaWtlIHJlLWNyZWF0aW5nXG4gICAgICAvLyByb3V0ZSBvYmplY3RzIG9uIGV2ZXJ5IGxvY2F0aW9uIGNoYW5nZS5cbiAgICAgIHZhciByb3V0ZUlEID0gZ2V0Um91dGVJRChyb3V0ZSk7XG4gICAgICB2YXIgaG9va3MgPSBSb3V0ZUhvb2tzW3JvdXRlSURdO1xuXG4gICAgICBpZiAoaG9va3MgPT0gbnVsbCkge1xuICAgICAgICB2YXIgdGhlcmVXZXJlTm9Sb3V0ZUhvb2tzID0gIWhhc0FueVByb3BlcnRpZXMoUm91dGVIb29rcyk7XG5cbiAgICAgICAgaG9va3MgPSBSb3V0ZUhvb2tzW3JvdXRlSURdID0gW2hvb2tdO1xuXG4gICAgICAgIGlmICh0aGVyZVdlcmVOb1JvdXRlSG9va3MpIHtcbiAgICAgICAgICAvLyBzZXR1cCB0cmFuc2l0aW9uICYgYmVmb3JldW5sb2FkIGhvb2tzXG4gICAgICAgICAgdW5saXN0ZW5CZWZvcmUgPSBoaXN0b3J5Lmxpc3RlbkJlZm9yZSh0cmFuc2l0aW9uSG9vayk7XG5cbiAgICAgICAgICBpZiAoaGlzdG9yeS5saXN0ZW5CZWZvcmVVbmxvYWQpIHVubGlzdGVuQmVmb3JlVW5sb2FkID0gaGlzdG9yeS5saXN0ZW5CZWZvcmVVbmxvYWQoYmVmb3JlVW5sb2FkSG9vayk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaG9va3MuaW5kZXhPZihob29rKSA9PT0gLTEpIHtcbiAgICAgICAgaG9va3MucHVzaChob29rKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGhvb2tzID0gUm91dGVIb29rc1tyb3V0ZUlEXTtcblxuICAgICAgICBpZiAoaG9va3MgIT0gbnVsbCkge1xuICAgICAgICAgIHZhciBuZXdIb29rcyA9IGhvb2tzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0gIT09IGhvb2s7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAobmV3SG9va3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBkZWxldGUgUm91dGVIb29rc1tyb3V0ZUlEXTtcblxuICAgICAgICAgICAgaWYgKCFoYXNBbnlQcm9wZXJ0aWVzKFJvdXRlSG9va3MpKSB7XG4gICAgICAgICAgICAgIC8vIHRlYXJkb3duIHRyYW5zaXRpb24gJiBiZWZvcmV1bmxvYWQgaG9va3NcbiAgICAgICAgICAgICAgaWYgKHVubGlzdGVuQmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgdW5saXN0ZW5CZWZvcmUoKTtcbiAgICAgICAgICAgICAgICB1bmxpc3RlbkJlZm9yZSA9IG51bGw7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAodW5saXN0ZW5CZWZvcmVVbmxvYWQpIHtcbiAgICAgICAgICAgICAgICB1bmxpc3RlbkJlZm9yZVVubG9hZCgpO1xuICAgICAgICAgICAgICAgIHVubGlzdGVuQmVmb3JlVW5sb2FkID0gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBSb3V0ZUhvb2tzW3JvdXRlSURdID0gbmV3SG9va3M7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgdGhlIEFQSSBmb3Igc3RhdGVmdWwgZW52aXJvbm1lbnRzLiBBcyB0aGUgbG9jYXRpb25cbiAgICAgKiBjaGFuZ2VzLCB3ZSB1cGRhdGUgc3RhdGUgYW5kIGNhbGwgdGhlIGxpc3RlbmVyLiBXZSBjYW4gYWxzb1xuICAgICAqIGdyYWNlZnVsbHkgaGFuZGxlIGVycm9ycyBhbmQgcmVkaXJlY3RzLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxpc3RlbihsaXN0ZW5lcikge1xuICAgICAgLy8gVE9ETzogT25seSB1c2UgYSBzaW5nbGUgaGlzdG9yeSBsaXN0ZW5lci4gT3RoZXJ3aXNlIHdlJ2xsXG4gICAgICAvLyBlbmQgdXAgd2l0aCBtdWx0aXBsZSBjb25jdXJyZW50IGNhbGxzIHRvIG1hdGNoLlxuICAgICAgcmV0dXJuIGhpc3RvcnkubGlzdGVuKGZ1bmN0aW9uIChsb2NhdGlvbikge1xuICAgICAgICBpZiAoc3RhdGUubG9jYXRpb24gPT09IGxvY2F0aW9uKSB7XG4gICAgICAgICAgbGlzdGVuZXIobnVsbCwgc3RhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1hdGNoKGxvY2F0aW9uLCBmdW5jdGlvbiAoZXJyb3IsIHJlZGlyZWN0TG9jYXRpb24sIG5leHRTdGF0ZSkge1xuICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgIGxpc3RlbmVyKGVycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVkaXJlY3RMb2NhdGlvbikge1xuICAgICAgICAgICAgICBoaXN0b3J5LnRyYW5zaXRpb25UbyhyZWRpcmVjdExvY2F0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmV4dFN0YXRlKSB7XG4gICAgICAgICAgICAgIGxpc3RlbmVyKG51bGwsIG5leHRTdGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZmFsc2UsICdMb2NhdGlvbiBcIiVzXCIgZGlkIG5vdCBtYXRjaCBhbnkgcm91dGVzJywgbG9jYXRpb24ucGF0aG5hbWUgKyBsb2NhdGlvbi5zZWFyY2ggKyBsb2NhdGlvbi5oYXNoKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9leHRlbmRzKHt9LCBoaXN0b3J5LCB7XG4gICAgICBpc0FjdGl2ZTogaXNBY3RpdmUsXG4gICAgICBtYXRjaDogbWF0Y2gsXG4gICAgICBsaXN0ZW5CZWZvcmVMZWF2aW5nUm91dGU6IGxpc3RlbkJlZm9yZUxlYXZpbmdSb3V0ZSxcbiAgICAgIGxpc3RlbjogbGlzdGVuXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHVzZVJvdXRlcztcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJvdXRlci9saWIvdXNlUm91dGVzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 221 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n }return target;\n}\n\nvar _qs = __webpack_require__(222);\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _runTransitionHook = __webpack_require__(214);\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _parsePath = __webpack_require__(212);\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction defaultStringifyQuery(query) {\n return _qs2['default'].stringify(query, { arrayFormat: 'brackets' }).replace(/%20/g, '+');\n}\n\nfunction defaultParseQueryString(queryString) {\n return _qs2['default'].parse(queryString.replace(/\\+/g, '%20'));\n}\n\n/**\n * Returns a new createHistory function that may be used to create\n * history objects that know how to handle URL queries.\n */\nfunction useQueries(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var stringifyQuery = options.stringifyQuery;\n var parseQueryString = options.parseQueryString;\n\n var historyOptions = _objectWithoutProperties(options, ['stringifyQuery', 'parseQueryString']);\n\n var history = createHistory(historyOptions);\n\n if (typeof stringifyQuery !== 'function') stringifyQuery = defaultStringifyQuery;\n\n if (typeof parseQueryString !== 'function') parseQueryString = defaultParseQueryString;\n\n function addQuery(location) {\n if (location.query == null) location.query = parseQueryString(location.search.substring(1));\n\n return location;\n }\n\n function appendQuery(path, query) {\n var queryString = undefined;\n if (!query || (queryString = stringifyQuery(query)) === '') return path;\n\n if (typeof path === 'string') path = _parsePath2['default'](path);\n\n var search = path.search + (path.search ? '&' : '?') + queryString;\n\n return _extends({}, path, {\n search: search\n });\n }\n\n // Override all read methods with query-aware versions.\n function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n _runTransitionHook2['default'](hook, addQuery(location), callback);\n });\n }\n\n function listen(listener) {\n return history.listen(function (location) {\n listener(addQuery(location));\n });\n }\n\n // Override all write methods with query-aware versions.\n function pushState(state, path, query) {\n return history.pushState(state, appendQuery(path, query));\n }\n\n function replaceState(state, path, query) {\n return history.replaceState(state, appendQuery(path, query));\n }\n\n function createPath(path, query) {\n return history.createPath(appendQuery(path, query));\n }\n\n function createHref(path, query) {\n return history.createHref(appendQuery(path, query));\n }\n\n function createLocation() {\n return addQuery(history.createLocation.apply(history, arguments));\n }\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen,\n pushState: pushState,\n replaceState: replaceState,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n}\n\nexports['default'] = useQueries;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi91c2VRdWVyaWVzLmpzPzFjZGYiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwia2V5cyIsImluZGV4T2YiLCJfcXMiLCJyZXF1aXJlIiwiX3FzMiIsIl9ydW5UcmFuc2l0aW9uSG9vayIsIl9ydW5UcmFuc2l0aW9uSG9vazIiLCJfcGFyc2VQYXRoIiwiX3BhcnNlUGF0aDIiLCJkZWZhdWx0U3RyaW5naWZ5UXVlcnkiLCJxdWVyeSIsInN0cmluZ2lmeSIsImFycmF5Rm9ybWF0IiwicmVwbGFjZSIsImRlZmF1bHRQYXJzZVF1ZXJ5U3RyaW5nIiwicXVlcnlTdHJpbmciLCJwYXJzZSIsInVzZVF1ZXJpZXMiLCJjcmVhdGVIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsInN0cmluZ2lmeVF1ZXJ5IiwicGFyc2VRdWVyeVN0cmluZyIsImhpc3RvcnlPcHRpb25zIiwiaGlzdG9yeSIsImFkZFF1ZXJ5IiwibG9jYXRpb24iLCJzZWFyY2giLCJzdWJzdHJpbmciLCJhcHBlbmRRdWVyeSIsInBhdGgiLCJsaXN0ZW5CZWZvcmUiLCJob29rIiwiY2FsbGJhY2siLCJsaXN0ZW4iLCJsaXN0ZW5lciIsInB1c2hTdGF0ZSIsInN0YXRlIiwicmVwbGFjZVN0YXRlIiwiY3JlYXRlUGF0aCIsImNyZWF0ZUhyZWYiLCJjcmVhdGVMb2NhdGlvbiIsImFwcGx5IiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEs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T0FBTzVELE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQiIsImZpbGUiOiIyMjEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgX3FzID0gcmVxdWlyZSgncXMnKTtcblxudmFyIF9xczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9xcyk7XG5cbnZhciBfcnVuVHJhbnNpdGlvbkhvb2sgPSByZXF1aXJlKCcuL3J1blRyYW5zaXRpb25Ib29rJyk7XG5cbnZhciBfcnVuVHJhbnNpdGlvbkhvb2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcnVuVHJhbnNpdGlvbkhvb2spO1xuXG52YXIgX3BhcnNlUGF0aCA9IHJlcXVpcmUoJy4vcGFyc2VQYXRoJyk7XG5cbnZhciBfcGFyc2VQYXRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3BhcnNlUGF0aCk7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTdHJpbmdpZnlRdWVyeShxdWVyeSkge1xuICByZXR1cm4gX3FzMlsnZGVmYXVsdCddLnN0cmluZ2lmeShxdWVyeSwgeyBhcnJheUZvcm1hdDogJ2JyYWNrZXRzJyB9KS5yZXBsYWNlKC8lMjAvZywgJysnKTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFBhcnNlUXVlcnlTdHJpbmcocXVlcnlTdHJpbmcpIHtcbiAgcmV0dXJuIF9xczJbJ2RlZmF1bHQnXS5wYXJzZShxdWVyeVN0cmluZy5yZXBsYWNlKC9cXCsvZywgJyUyMCcpKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgbmV3IGNyZWF0ZUhpc3RvcnkgZnVuY3Rpb24gdGhhdCBtYXkgYmUgdXNlZCB0byBjcmVhdGVcbiAqIGhpc3Rvcnkgb2JqZWN0cyB0aGF0IGtub3cgaG93IHRvIGhhbmRsZSBVUkwgcXVlcmllcy5cbiAqL1xuZnVuY3Rpb24gdXNlUXVlcmllcyhjcmVhdGVIaXN0b3J5KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcbiAgICB2YXIgc3RyaW5naWZ5UXVlcnkgPSBvcHRpb25zLnN0cmluZ2lmeVF1ZXJ5O1xuICAgIHZhciBwYXJzZVF1ZXJ5U3RyaW5nID0gb3B0aW9ucy5wYXJzZVF1ZXJ5U3RyaW5nO1xuXG4gICAgdmFyIGhpc3RvcnlPcHRpb25zID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9wdGlvbnMsIFsnc3RyaW5naWZ5UXVlcnknLCAncGFyc2VRdWVyeVN0cmluZyddKTtcblxuICAgIHZhciBoaXN0b3J5ID0gY3JlYXRlSGlzdG9yeShoaXN0b3J5T3B0aW9ucyk7XG5cbiAgICBpZiAodHlwZW9mIHN0cmluZ2lmeVF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSBzdHJpbmdpZnlRdWVyeSA9IGRlZmF1bHRTdHJpbmdpZnlRdWVyeTtcblxuICAgIGlmICh0eXBlb2YgcGFyc2VRdWVyeVN0cmluZyAhPT0gJ2Z1bmN0aW9uJykgcGFyc2VRdWVyeVN0cmluZyA9IGRlZmF1bHRQYXJzZVF1ZXJ5U3RyaW5nO1xuXG4gICAgZnVuY3Rpb24gYWRkUXVlcnkobG9jYXRpb24pIHtcbiAgICAgIGlmIChsb2NhdGlvbi5xdWVyeSA9PSBudWxsKSBsb2NhdGlvbi5xdWVyeSA9IHBhcnNlUXVlcnlTdHJpbmcobG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSk7XG5cbiAgICAgIHJldHVybiBsb2NhdGlvbjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcHBlbmRRdWVyeShwYXRoLCBxdWVyeSkge1xuICAgICAgdmFyIHF1ZXJ5U3RyaW5nID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKCFxdWVyeSB8fCAocXVlcnlTdHJpbmcgPSBzdHJpbmdpZnlRdWVyeShxdWVyeSkpID09PSAnJykgcmV0dXJuIHBhdGg7XG5cbiAgICAgIGlmICh0eXBlb2YgcGF0aCA9PT0gJ3N0cmluZycpIHBhdGggPSBfcGFyc2VQYXRoMlsnZGVmYXVsdCddKHBhdGgpO1xuXG4gICAgICB2YXIgc2VhcmNoID0gcGF0aC5zZWFyY2ggKyAocGF0aC5zZWFyY2ggPyAnJicgOiAnPycpICsgcXVlcnlTdHJpbmc7XG5cbiAgICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgcGF0aCwge1xuICAgICAgICBzZWFyY2g6IHNlYXJjaFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgYWxsIHJlYWQgbWV0aG9kcyB3aXRoIHF1ZXJ5LWF3YXJlIHZlcnNpb25zLlxuICAgIGZ1bmN0aW9uIGxpc3RlbkJlZm9yZShob29rKSB7XG4gICAgICByZXR1cm4gaGlzdG9yeS5saXN0ZW5CZWZvcmUoZnVuY3Rpb24gKGxvY2F0aW9uLCBjYWxsYmFjaykge1xuICAgICAgICBfcnVuVHJhbnNpdGlvbkhvb2syWydkZWZhdWx0J10oaG9vaywgYWRkUXVlcnkobG9jYXRpb24pLCBjYWxsYmFjayk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICAgIHJldHVybiBoaXN0b3J5Lmxpc3RlbihmdW5jdGlvbiAobG9jYXRpb24pIHtcbiAgICAgICAgbGlzdGVuZXIoYWRkUXVlcnkobG9jYXRpb24pKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE92ZXJyaWRlIGFsbCB3cml0ZSBtZXRob2RzIHdpdGggcXVlcnktYXdhcmUgdmVyc2lvbnMuXG4gICAgZnVuY3Rpb24gcHVzaFN0YXRlKHN0YXRlLCBwYXRoLCBxdWVyeSkge1xuICAgICAgcmV0dXJuIGhpc3RvcnkucHVzaFN0YXRlKHN0YXRlLCBhcHBlbmRRdWVyeShwYXRoLCBxdWVyeSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlcGxhY2VTdGF0ZShzdGF0ZSwgcGF0aCwgcXVlcnkpIHtcbiAgICAgIHJldHVybiBoaXN0b3J5LnJlcGxhY2VTdGF0ZShzdGF0ZSwgYXBwZW5kUXVlcnkocGF0aCwgcXVlcnkpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQYXRoKHBhdGgsIHF1ZXJ5KSB7XG4gICAgICByZXR1cm4gaGlzdG9yeS5jcmVhdGVQYXRoKGFwcGVuZFF1ZXJ5KHBhdGgsIHF1ZXJ5KSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSHJlZihwYXRoLCBxdWVyeSkge1xuICAgICAgcmV0dXJuIGhpc3RvcnkuY3JlYXRlSHJlZihhcHBlbmRRdWVyeShwYXRoLCBxdWVyeSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2F0aW9uKCkge1xuICAgICAgcmV0dXJuIGFkZFF1ZXJ5KGhpc3RvcnkuY3JlYXRlTG9jYXRpb24uYXBwbHkoaGlzdG9yeSwgYXJndW1lbnRzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9leHRlbmRzKHt9LCBoaXN0b3J5LCB7XG4gICAgICBsaXN0ZW5CZWZvcmU6IGxpc3RlbkJlZm9yZSxcbiAgICAgIGxpc3RlbjogbGlzdGVuLFxuICAgICAgcHVzaFN0YXRlOiBwdXNoU3RhdGUsXG4gICAgICByZXBsYWNlU3RhdGU6IHJlcGxhY2VTdGF0ZSxcbiAgICAgIGNyZWF0ZVBhdGg6IGNyZWF0ZVBhdGgsXG4gICAgICBjcmVhdGVIcmVmOiBjcmVhdGVIcmVmLFxuICAgICAgY3JlYXRlTG9jYXRpb246IGNyZWF0ZUxvY2F0aW9uXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHVzZVF1ZXJpZXM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi91c2VRdWVyaWVzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 222 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\n// Load modules\n\nvar Stringify = __webpack_require__(223);\nvar Parse = __webpack_require__(225);\n\n// Declare internals\n\nvar internals = {};\n\nmodule.exports = {\n stringify: Stringify,\n parse: Parse\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9xcy9saWIvaW5kZXguanM/YmQ3MyJdLCJuYW1lcyI6WyJTdHJpbmdpZnkiLCJyZXF1aXJlIiwiUGFyc2UiLCJpbnRlcm5hbHMiLCJtb2R1bGUiLCJleHBvcnRzIiwic3RyaW5naWZ5IiwicGFyc2UiXSwibWFwcGluZ3MiOiI7O0FBQUE7O0FBRUEsSUFBSUEsWUFBWSxtQkFBQUMsQ0FBUSxHQUFSLENBQWhCO0FBQ0EsSUFBSUMsUUFBUSxtQkFBQUQsQ0FBUSxHQUFSLENBQVo7O0FBR0E7O0FBRUEsSUFBSUUsWUFBWSxFQUFoQjs7QUFHQUMsT0FBT0MsT0FBUCxHQUFpQjtBQUNiQyxlQUFXTixTQURFO0FBRWJPLFdBQU9MO0FBRk0sQ0FBakIiLCJmaWxlIjoiMjIyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTG9hZCBtb2R1bGVzXG5cbnZhciBTdHJpbmdpZnkgPSByZXF1aXJlKCcuL3N0cmluZ2lmeScpO1xudmFyIFBhcnNlID0gcmVxdWlyZSgnLi9wYXJzZScpO1xuXG5cbi8vIERlY2xhcmUgaW50ZXJuYWxzXG5cbnZhciBpbnRlcm5hbHMgPSB7fTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzdHJpbmdpZnk6IFN0cmluZ2lmeSxcbiAgICBwYXJzZTogUGFyc2Vcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9xcy9saWIvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 223 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n// Load modules\n\nvar Utils = __webpack_require__(224);\n\n// Declare internals\n\nvar internals = {\n delimiter: '&',\n arrayPrefixGenerators: {\n brackets: function brackets(prefix, key) {\n\n return prefix + '[]';\n },\n indices: function indices(prefix, key) {\n\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix, key) {\n\n return prefix;\n }\n },\n strictNullHandling: false\n};\n\ninternals.stringify = function (obj, prefix, generateArrayPrefix, strictNullHandling, filter) {\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (Utils.isBuffer(obj)) {\n obj = obj.toString();\n } else if (obj instanceof Date) {\n obj = obj.toISOString();\n } else if (obj === null) {\n if (strictNullHandling) {\n return Utils.encode(prefix);\n }\n\n obj = '';\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') {\n\n return [Utils.encode(prefix) + '=' + Utils.encode(obj)];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys = Array.isArray(filter) ? filter : Object.keys(obj);\n for (var i = 0, il = objKeys.length; i < il; ++i) {\n var key = objKeys[i];\n\n if (Array.isArray(obj)) {\n values = values.concat(internals.stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, filter));\n } else {\n values = values.concat(internals.stringify(obj[key], prefix + '[' + key + ']', generateArrayPrefix, strictNullHandling, filter));\n }\n }\n\n return values;\n};\n\nmodule.exports = function (obj, options) {\n\n options = options || {};\n var delimiter = typeof options.delimiter === 'undefined' ? internals.delimiter : options.delimiter;\n var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling;\n var objKeys;\n var filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (Array.isArray(options.filter)) {\n objKeys = filter = options.filter;\n }\n\n var keys = [];\n\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) {\n\n return '';\n }\n\n var arrayFormat;\n if (options.arrayFormat in internals.arrayPrefixGenerators) {\n arrayFormat = options.arrayFormat;\n } else if ('indices' in options) {\n arrayFormat = options.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = internals.arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n for (var i = 0, il = objKeys.length; i < il; ++i) {\n var key = objKeys[i];\n keys = keys.concat(internals.stringify(obj[key], key, generateArrayPrefix, strictNullHandling, filter));\n }\n\n return keys.join(delimiter);\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9xcy9saWIvc3RyaW5naWZ5LmpzP2ZjOTMiXSwibmFtZXMiOlsiVXRpbHMiLCJyZXF1aXJlIiwiaW50ZXJuYWxzIiwiZGVsaW1pdGVyIiwiYXJyYXlQcmVmaXhHZW5lcmF0b3JzIiwiYnJhY2tldHMiLCJwcmVmaXgiLCJrZXkiLCJpbmRpY2VzIiwicmVwZWF0Iiwic3RyaWN0TnVsbEhhbmRsaW5nIiwic3RyaW5naWZ5Iiwib2JqIiwiZ2VuZXJhdGVBcnJheVByZWZpeCIsImZpbHRlciIsImlzQnVmZmVyIiwidG9TdHJpbmciLCJEYXRlIiwidG9JU09TdHJpbmciLCJlbmNvZGUiLCJ2YWx1ZXMiLCJvYmpLZXlzIiwiQXJyYXkiLCJpc0FycmF5IiwiT2JqZWN0Iiwia2V5cyIsImkiLCJpbCIsImxlbmd0aCIsImNvbmNhdCIsIm1vZHVsZSIsImV4cG9ydHMiLCJvcHRpb25zIiwiYXJyYXlGb3JtYXQiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRUEsSUFBSUEsUUFBUSxtQkFBQUMsQ0FBUSxHQUFSLENBQVo7O0FBR0E7O0FBRUEsSUFBSUMsWUFBWTtBQUNaQyxlQUFXLEdBREM7QUFFWkMsMkJBQXVCO0FBQ25CQyxrQkFBVSxrQkFBVUMsTUFBVixFQUFrQkMsR0FBbEIsRUFBdUI7O0FBRTdCLG1CQUFPRCxTQUFTLElBQWhCO0FBQ0gsU0FKa0I7QUFLbkJFLGlCQUFTLGlCQUFVRixNQUFWLEVBQWtCQyxHQUFsQixFQUF1Qjs7QUFFNUIsbUJBQU9ELFNBQVMsR0FBVCxHQUFlQyxHQUFmLEdBQXFCLEdBQTVCO0FBQ0gsU0FSa0I7QUFTbkJFLGdCQUFRLGdCQUFVSCxNQUFWLEVBQWtCQyxHQUFsQixFQUF1Qjs7QUFFM0IsbUJBQU9ELE1BQVA7QUFDSDtBQVprQixLQUZYO0FBZ0JaSSx3QkFBb0I7QUFoQlIsQ0FBaEI7O0FBb0JBUixVQUFVUyxT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QUosRUFBbUM7QUFDcENPLGtCQUFVUCxTQUFTa0IsUUFBUWxCLE1BQTNCO0FBQ0g7O0FBRUQsUUFBSVcsT0FBTyxFQUFYOztBQUVBLFFBQUksUUFBT2IsR0FBUCx5Q0FBT0EsR0FBUCxPQUFlLFFBQWYsSUFDQUEsUUFBUSxJQURaLEVBQ2tCOztBQUVkLGVBQU8sRUFBUDtBQUNIOztBQUVELFFBQUlxQixXQUFKO0FBQ0EsUUFBSUQsUUFBUUMsV0FBUixJQUF1Qi9CLFVBQVVFLHFCQUFyQyxFQUE0RDtBQUN4RDZCLHNCQUFjRCxRQUFRQyxXQUF0QjtBQUNILEtBRkQsTUFHSyxJQUFJLGFBQWFELE9BQWpCLEVBQTBCO0FBQzNCQyxzQkFBY0QsUUFBUXhCLE9BQVIsR0FBa0IsU0FBbEIsR0FBOEIsUUFBNUM7QUFDSCxLQUZJLE1BR0E7QUFDRHlCLHNCQUFjLFNBQWQ7QUFDSDs7QUFFRCxRQUFJcEIsc0JBQXNCWCxVQUFVRSxxQkFBVixDQUFnQzZCLFdBQWhDLENBQTFCOztBQUVBLFFBQUksQ0FBQ1osT0FBTCxFQUFjO0FBQ1ZBLGtCQUFVRyxPQUFPQyxJQUFQLENBQVliLEdBQVosQ0FBVjtBQUNIO0FBQ0QsU0FBSyxJQUFJYyxJQUFJLENBQVIsRUFBV0MsS0FBS04sUUFBUU8sTUFBN0IsRUFBcUNGLElBQUlDLEVBQXpDLEVBQTZDLEVBQUVELENBQS9DLEVBQWtEO0FBQzlDLFlBQUluQixNQUFNYyxRQUFRSyxDQUFSLENBQVY7QUFDQUQsZUFBT0EsS0FBS0ksTUFBTCxDQUFZM0IsVUFBVVMsU0FBVixDQUFvQkMsSUFBSUwsR0FBSixDQUFwQixFQUE4QkEsR0FBOUIsRUFBbUNNLG1CQUFuQyxFQUF3REgsa0JBQXhELEVBQTRFSSxNQUE1RSxDQUFaLENBQVA7QUFDSDs7QUFFRCxXQUFPVyxLQUFLUyxJQUFMLENBQVUvQixTQUFWLENBQVA7QUFDSCxDQTdDRCIsImZpbGUiOiIyMjMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMb2FkIG1vZHVsZXNcblxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5cbi8vIERlY2xhcmUgaW50ZXJuYWxzXG5cbnZhciBpbnRlcm5hbHMgPSB7XG4gICAgZGVsaW1pdGVyOiAnJicsXG4gICAgYXJyYXlQcmVmaXhHZW5lcmF0b3JzOiB7XG4gICAgICAgIGJyYWNrZXRzOiBmdW5jdGlvbiAocHJlZml4LCBrZXkpIHtcblxuICAgICAgICAgICAgcmV0dXJuIHByZWZpeCArICdbXSc7XG4gICAgICAgIH0sXG4gICAgICAgIGluZGljZXM6IGZ1bmN0aW9uIChwcmVmaXgsIGtleSkge1xuXG4gICAgICAgICAgICByZXR1cm4gcHJlZml4ICsgJ1snICsga2V5ICsgJ10nO1xuICAgICAgICB9LFxuICAgICAgICByZXBlYXQ6IGZ1bmN0aW9uIChwcmVmaXgsIGtleSkge1xuXG4gICAgICAgICAgICByZXR1cm4gcHJlZml4O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBzdHJpY3ROdWxsSGFuZGxpbmc6IGZhbHNlXG59O1xuXG5cbmludGVybmFscy5zdHJpbmdpZnkgPSBmdW5jdGlvbiAob2JqLCBwcmVmaXgsIGdlbmVyYXRlQXJyYXlQcmVmaXgsIHN0cmljdE51bGxIYW5kbGluZywgZmlsdGVyKSB7XG5cbiAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvYmogPSBmaWx0ZXIocHJlZml4LCBvYmopO1xuICAgIH1cbiAgICBlbHNlIGlmIChVdGlscy5pc0J1ZmZlcihvYmopKSB7XG4gICAgICAgIG9iaiA9IG9iai50b1N0cmluZygpO1xuICAgIH1cbiAgICBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIG9iaiA9IG9iai50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgICBlbHNlIGlmIChvYmogPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHN0cmljdE51bGxIYW5kbGluZykge1xuICAgICAgICAgICAgcmV0dXJuIFV0aWxzLmVuY29kZShwcmVmaXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgb2JqID0gJyc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnIHx8XG4gICAgICAgIHR5cGVvZiBvYmogPT09ICdudW1iZXInIHx8XG4gICAgICAgIHR5cGVvZiBvYmogPT09ICdib29sZWFuJykge1xuXG4gICAgICAgIHJldHVybiBbVXRpbHMuZW5jb2RlKHByZWZpeCkgKyAnPScgKyBVdGlscy5lbmNvZGUob2JqKV07XG4gICAgfVxuXG4gICAgdmFyIHZhbHVlcyA9IFtdO1xuXG4gICAgaWYgKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuXG4gICAgdmFyIG9iaktleXMgPSBBcnJheS5pc0FycmF5KGZpbHRlcikgPyBmaWx0ZXIgOiBPYmplY3Qua2V5cyhvYmopO1xuICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IG9iaktleXMubGVuZ3RoOyBpIDwgaWw7ICsraSkge1xuICAgICAgICB2YXIga2V5ID0gb2JqS2V5c1tpXTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KGludGVybmFscy5zdHJpbmdpZnkob2JqW2tleV0sIGdlbmVyYXRlQXJyYXlQcmVmaXgocHJlZml4LCBrZXkpLCBnZW5lcmF0ZUFycmF5UHJlZml4LCBzdHJpY3ROdWxsSGFuZGxpbmcsIGZpbHRlcikpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdmFsdWVzID0gdmFsdWVzLmNvbmNhdChpbnRlcm5hbHMuc3RyaW5naWZ5KG9ialtrZXldLCBwcmVmaXggKyAnWycgKyBrZXkgKyAnXScsIGdlbmVyYXRlQXJyYXlQcmVmaXgsIHN0cmljdE51bGxIYW5kbGluZywgZmlsdGVyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVzO1xufTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmosIG9wdGlvbnMpIHtcblxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIHZhciBkZWxpbWl0ZXIgPSB0eXBlb2Ygb3B0aW9ucy5kZWxpbWl0ZXIgPT09ICd1bmRlZmluZWQnID8gaW50ZXJuYWxzLmRlbGltaXRlciA6IG9wdGlvbnMuZGVsaW1pdGVyO1xuICAgIHZhciBzdHJpY3ROdWxsSGFuZGxpbmcgPSB0eXBlb2Ygb3B0aW9ucy5zdHJpY3ROdWxsSGFuZGxpbmcgPT09ICdib29sZWFuJyA/IG9wdGlvbnMuc3RyaWN0TnVsbEhhbmRsaW5nIDogaW50ZXJuYWxzLnN0cmljdE51bGxIYW5kbGluZztcbiAgICB2YXIgb2JqS2V5cztcbiAgICB2YXIgZmlsdGVyO1xuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5maWx0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZmlsdGVyID0gb3B0aW9ucy5maWx0ZXI7XG4gICAgICAgIG9iaiA9IGZpbHRlcignJywgb2JqKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLmZpbHRlcikpIHtcbiAgICAgICAgb2JqS2V5cyA9IGZpbHRlciA9IG9wdGlvbnMuZmlsdGVyO1xuICAgIH1cblxuICAgIHZhciBrZXlzID0gW107XG5cbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHxcbiAgICAgICAgb2JqID09PSBudWxsKSB7XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHZhciBhcnJheUZvcm1hdDtcbiAgICBpZiAob3B0aW9ucy5hcnJheUZvcm1hdCBpbiBpbnRlcm5hbHMuYXJyYXlQcmVmaXhHZW5lcmF0b3JzKSB7XG4gICAgICAgIGFycmF5Rm9ybWF0ID0gb3B0aW9ucy5hcnJheUZvcm1hdDtcbiAgICB9XG4gICAgZWxzZSBpZiAoJ2luZGljZXMnIGluIG9wdGlvbnMpIHtcbiAgICAgICAgYXJyYXlGb3JtYXQgPSBvcHRpb25zLmluZGljZXMgPyAnaW5kaWNlcycgOiAncmVwZWF0JztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGFycmF5Rm9ybWF0ID0gJ2luZGljZXMnO1xuICAgIH1cblxuICAgIHZhciBnZW5lcmF0ZUFycmF5UHJlZml4ID0gaW50ZXJuYWxzLmFycmF5UHJlZml4R2VuZXJhdG9yc1thcnJheUZvcm1hdF07XG5cbiAgICBpZiAoIW9iaktleXMpIHtcbiAgICAgICAgb2JqS2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IG9iaktleXMubGVuZ3RoOyBpIDwgaWw7ICsraSkge1xuICAgICAgICB2YXIga2V5ID0gb2JqS2V5c1tpXTtcbiAgICAgICAga2V5cyA9IGtleXMuY29uY2F0KGludGVybmFscy5zdHJpbmdpZnkob2JqW2tleV0sIGtleSwgZ2VuZXJhdGVBcnJheVByZWZpeCwgc3RyaWN0TnVsbEhhbmRsaW5nLCBmaWx0ZXIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4ga2V5cy5qb2luKGRlbGltaXRlcik7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcXMvbGliL3N0cmluZ2lmeS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 224 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n// Load modules\n\n\n// Declare internals\n\nvar internals = {};\ninternals.hexTable = new Array(256);\nfor (var h = 0; h < 256; ++h) {\n internals.hexTable[h] = '%' + ((h < 16 ? '0' : '') + h.toString(16)).toUpperCase();\n}\n\nexports.arrayToObject = function (source, options) {\n\n var obj = options.plainObjects ? Object.create(null) : {};\n for (var i = 0, il = source.length; i < il; ++i) {\n if (typeof source[i] !== 'undefined') {\n\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nexports.merge = function (target, source, options) {\n\n if (!source) {\n return target;\n }\n\n if ((typeof source === 'undefined' ? 'undefined' : _typeof(source)) !== 'object') {\n if (Array.isArray(target)) {\n target.push(source);\n } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object') {\n target[source] = true;\n } else {\n target = [target, source];\n }\n\n return target;\n }\n\n if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) !== 'object') {\n target = [target].concat(source);\n return target;\n }\n\n if (Array.isArray(target) && !Array.isArray(source)) {\n\n target = exports.arrayToObject(target, options);\n }\n\n var keys = Object.keys(source);\n for (var k = 0, kl = keys.length; k < kl; ++k) {\n var key = keys[k];\n var value = source[key];\n\n if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = value;\n } else {\n target[key] = exports.merge(target[key], value, options);\n }\n }\n\n return target;\n};\n\nexports.decode = function (str) {\n\n try {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n } catch (e) {\n return str;\n }\n};\n\nexports.encode = function (str) {\n\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n if (typeof str !== 'string') {\n str = '' + str;\n }\n\n var out = '';\n for (var i = 0, il = str.length; i < il; ++i) {\n var c = str.charCodeAt(i);\n\n if (c === 0x2D || // -\n c === 0x2E || // .\n c === 0x5F || // _\n c === 0x7E || // ~\n c >= 0x30 && c <= 0x39 || // 0-9\n c >= 0x41 && c <= 0x5A || // a-z\n c >= 0x61 && c <= 0x7A) {\n // A-Z\n\n out += str[i];\n continue;\n }\n\n if (c < 0x80) {\n out += internals.hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out += internals.hexTable[0xC0 | c >> 6] + internals.hexTable[0x80 | c & 0x3F];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out += internals.hexTable[0xE0 | c >> 12] + internals.hexTable[0x80 | c >> 6 & 0x3F] + internals.hexTable[0x80 | c & 0x3F];\n continue;\n }\n\n ++i;\n c = 0x10000 + ((c & 0x3FF) << 10 | str.charCodeAt(i) & 0x3FF);\n out += internals.hexTable[0xF0 | c >> 18] + internals.hexTable[0x80 | c >> 12 & 0x3F] + internals.hexTable[0x80 | c >> 6 & 0x3F] + internals.hexTable[0x80 | c & 0x3F];\n }\n\n return out;\n};\n\nexports.compact = function (obj, refs) {\n\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) {\n\n return obj;\n }\n\n refs = refs || [];\n var lookup = refs.indexOf(obj);\n if (lookup !== -1) {\n return refs[lookup];\n }\n\n refs.push(obj);\n\n if (Array.isArray(obj)) {\n var compacted = [];\n\n for (var i = 0, il = obj.length; i < il; ++i) {\n if (typeof obj[i] !== 'undefined') {\n compacted.push(obj[i]);\n }\n }\n\n return compacted;\n }\n\n var keys = Object.keys(obj);\n for (i = 0, il = keys.length; i < il; ++i) {\n var key = keys[i];\n obj[key] = exports.compact(obj[key], refs);\n }\n\n return obj;\n};\n\nexports.isRegExp = function (obj) {\n\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nexports.isBuffer = function (obj) {\n\n if (obj === null || typeof obj === 'undefined') {\n\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9xcy9saWIvdXRpbHMuanM/NDQ4YyJdLCJuYW1lcyI6WyJpbnRlcm5hbHMiLCJoZXhUYWJsZSIsIkFycmF5IiwiaCIsInRvU3RyaW5nIiwidG9VcHBlckNhc2UiLCJleHBvcnRzIiwiYXJyYXlUb09iamVjdCIsInNvdXJjZSIsIm9wdGlvbnMiLCJvYmoiLCJwbGFpbk9iamVjdHMiLCJPYmplY3QiLCJjcmVhdGUiLCJpIiwiaWwiLCJsZW5ndGgiLCJtZXJnZSIsInRhcmdldCIsImlzQXJyYXkiLCJwdXNoIiwiY29uY2F0Iiwia2V5cyIsImsiLCJrbCIsImtleSIsInZhbHVlIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVjb2RlIiwic3RyIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImUiLCJlbmNvZGUiLCJvdXQiLCJjIiwiY2hhckNvZGVBdCIsImNvbXBhY3QiLCJyZWZzIiwibG9va3VwIiwiaW5kZXhPZiIsImNvbXBhY3RlZCIsImlzUmVnRXhwIiwiaXNCdWZmZXIiLCJjb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7QUFHQTs7QUFFQSxJQUFJQSxZQUFZLEVBQWhCO0FBQ0FBLFVBQVVDLFFBQVYsR0FBcUIsSUFBSUMsS0FBSixDQUFVLEdBQVYsQ0FBckI7QUFDQSxLQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSSxHQUFwQixFQUF5QixFQUFFQSxDQUEzQixFQUE4QjtBQUMxQkgsY0FBVUMsUUFBVixDQUFtQkUsQ0FBbkIsSUFBd0IsTUFBTSxDQUFDLENBQUNBLElBQUksRUFBSixHQUFTLEdBQVQsR0FBZSxFQUFoQixJQUFzQkEsRUFBRUMsUUFBRixDQUFXLEVBQVgsQ0FBdkIsRUFBdUNDLFdBQXZDLEVBQTlCO0FBQ0g7O0FBR0RDLFFBQVFDLGFBQVIsR0FBd0IsVUFBVUMsTUFB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QWVWLElBQUlJLENBQUosQ0FBZjtBQUNIO0FBQ0o7O0FBRUQsZUFBTzZCLFNBQVA7QUFDSDs7QUFFRCxRQUFJckIsT0FBT1YsT0FBT1UsSUFBUCxDQUFZWixHQUFaLENBQVg7QUFDQSxTQUFLSSxJQUFJLENBQUosRUFBT0MsS0FBS08sS0FBS04sTUFBdEIsRUFBOEJGLElBQUlDLEVBQWxDLEVBQXNDLEVBQUVELENBQXhDLEVBQTJDO0FBQ3ZDLFlBQUlXLE1BQU1ILEtBQUtSLENBQUwsQ0FBVjtBQUNBSixZQUFJZSxHQUFKLElBQVduQixRQUFRaUMsT0FBUixDQUFnQjdCLElBQUllLEdBQUosQ0FBaEIsRUFBMEJlLElBQTFCLENBQVg7QUFDSDs7QUFFRCxXQUFPOUIsR0FBUDtBQUNILENBbkNEOztBQXNDQUosUUFBUXNDLFFBQVIsR0FBbUIsVUFBVWxDLEdBQVYsRUFBZTs7QUFFOUIsV0FBT0UsT0FBT2UsU0FBUCxDQUFpQnZCLFFBQWpCLENBQTBCeUIsSUFBMUIsQ0FBK0JuQixHQUEvQixNQUF3QyxpQkFBL0M7QUFDSCxDQUhEOztBQU1BSixRQUFRdUMsUUFBUixHQUFtQixVQUFVbkMsR0FBVixFQUFlOztBQUU5QixRQUFJQSxRQUFRLElBQVIsSUFDQSxPQUFPQSxHQUFQLEtBQWUsV0FEbkIsRUFDZ0M7O0FBRTVCLGVBQU8sS0FBUDtBQUNIOztBQUVELFdBQU8sQ0FBQyxFQUFFQSxJQUFJb0MsV0FBSixJQUNBcEMsSUFBSW9DLFdBQUosQ0FBZ0JELFFBRGhCLElBRUFuQyxJQUFJb0MsV0FBSixDQUFnQkQsUUFBaEIsQ0FBeUJuQyxHQUF6QixDQUZGLENBQVI7QUFHSCxDQVhEIiwiZmlsZSI6IjIyNC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExvYWQgbW9kdWxlc1xuXG5cbi8vIERlY2xhcmUgaW50ZXJuYWxzXG5cbnZhciBpbnRlcm5hbHMgPSB7fTtcbmludGVybmFscy5oZXhUYWJsZSA9IG5ldyBBcnJheSgyNTYpO1xuZm9yICh2YXIgaCA9IDA7IGggPCAyNTY7ICsraCkge1xuICAgIGludGVybmFscy5oZXhUYWJsZVtoXSA9ICclJyArICgoaCA8IDE2ID8gJzAnIDogJycpICsgaC50b1N0cmluZygxNikpLnRvVXBwZXJDYXNlKCk7XG59XG5cblxuZXhwb3J0cy5hcnJheVRvT2JqZWN0ID0gZnVuY3Rpb24gKHNvdXJjZSwgb3B0aW9ucykge1xuXG4gICAgdmFyIG9iaiA9IG9wdGlvbnMucGxhaW5PYmplY3RzID8gT2JqZWN0LmNyZWF0ZShudWxsKSA6IHt9O1xuICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IHNvdXJjZS5sZW5ndGg7IGkgPCBpbDsgKytpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlW2ldICE9PSAndW5kZWZpbmVkJykge1xuXG4gICAgICAgICAgICBvYmpbaV0gPSBzb3VyY2VbaV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gb2JqO1xufTtcblxuXG5leHBvcnRzLm1lcmdlID0gZnVuY3Rpb24gKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc291cmNlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpKSB7XG4gICAgICAgICAgICB0YXJnZXQucHVzaChzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0YXJnZXRbc291cmNlXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0YXJnZXQgPSBbdGFyZ2V0LCBzb3VyY2VdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRhcmdldCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGFyZ2V0ID0gW3RhcmdldF0uY29uY2F0KHNvdXJjZSk7XG4gICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJlxuICAgICAgICAhQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG5cbiAgICAgICAgdGFyZ2V0ID0gZXhwb3J0cy5hcnJheVRvT2JqZWN0KHRhcmdldCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuICAgIGZvciAodmFyIGsgPSAwLCBrbCA9IGtleXMubGVuZ3RoOyBrIDwga2w7ICsraykge1xuICAgICAgICB2YXIga2V5ID0ga2V5c1trXTtcbiAgICAgICAgdmFyIHZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBrZXkpKSB7XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBleHBvcnRzLm1lcmdlKHRhcmdldFtrZXldLCB2YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xufTtcblxuXG5leHBvcnRzLmRlY29kZSA9IGZ1bmN0aW9uIChzdHIpIHtcblxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoc3RyLnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxufTtcblxuZXhwb3J0cy5lbmNvZGUgPSBmdW5jdGlvbiAoc3RyKSB7XG5cbiAgICAvLyBUaGlzIGNvZGUgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBCcmlhbiBXaGl0ZSAobXNjZGV4KSBmb3IgdGhlIGlvLmpzIGNvcmUgcXVlcnlzdHJpbmcgbGlicmFyeS5cbiAgICAvLyBJdCBoYXMgYmVlbiBhZGFwdGVkIGhlcmUgZm9yIHN0cmljdGVyIGFkaGVyZW5jZSB0byBSRkMgMzk4NlxuICAgIGlmIChzdHIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHN0ciA9ICcnICsgc3RyO1xuICAgIH1cblxuICAgIHZhciBvdXQgPSAnJztcbiAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBzdHIubGVuZ3RoOyBpIDwgaWw7ICsraSkge1xuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuXG4gICAgICAgIGlmIChjID09PSAweDJEIHx8IC8vIC1cbiAgICAgICAgICAgIGMgPT09IDB4MkUgfHwgLy8gLlxuICAgICAgICAgICAgYyA9PT0gMHg1RiB8fCAvLyBfXG4gICAgICAgICAgICBjID09PSAweDdFIHx8IC8vIH5cbiAgICAgICAgICAgIChjID49IDB4MzAgJiYgYyA8PSAweDM5KSB8fCAvLyAwLTlcbiAgICAgICAgICAgIChjID49IDB4NDEgJiYgYyA8PSAweDVBKSB8fCAvLyBhLXpcbiAgICAgICAgICAgIChjID49IDB4NjEgJiYgYyA8PSAweDdBKSkgeyAvLyBBLVpcblxuICAgICAgICAgICAgb3V0ICs9IHN0cltpXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGMgPCAweDgwKSB7XG4gICAgICAgICAgICBvdXQgKz0gaW50ZXJuYWxzLmhleFRhYmxlW2NdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyA8IDB4ODAwKSB7XG4gICAgICAgICAgICBvdXQgKz0gaW50ZXJuYWxzLmhleFRhYmxlWzB4QzAgfCAoYyA+PiA2KV0gKyBpbnRlcm5hbHMuaGV4VGFibGVbMHg4MCB8IChjICYgMHgzRildO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyA8IDB4RDgwMCB8fCBjID49IDB4RTAwMCkge1xuICAgICAgICAgICAgb3V0ICs9IGludGVybmFscy5oZXhUYWJsZVsweEUwIHwgKGMgPj4gMTIpXSArIGludGVybmFscy5oZXhUYWJsZVsweDgwIHwgKChjID4+IDYpICYgMHgzRildICsgaW50ZXJuYWxzLmhleFRhYmxlWzB4ODAgfCAoYyAmIDB4M0YpXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgKytpO1xuICAgICAgICBjID0gMHgxMDAwMCArICgoKGMgJiAweDNGRikgPDwgMTApIHwgKHN0ci5jaGFyQ29kZUF0KGkpICYgMHgzRkYpKTtcbiAgICAgICAgb3V0ICs9IGludGVybmFscy5oZXhUYWJsZVsweEYwIHwgKGMgPj4gMTgpXSArIGludGVybmFscy5oZXhUYWJsZVsweDgwIHwgKChjID4+IDEyKSAmIDB4M0YpXSArIGludGVybmFscy5oZXhUYWJsZVsweDgwIHwgKChjID4+IDYpICYgMHgzRildICsgaW50ZXJuYWxzLmhleFRhYmxlWzB4ODAgfCAoYyAmIDB4M0YpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0O1xufTtcblxuZXhwb3J0cy5jb21wYWN0ID0gZnVuY3Rpb24gKG9iaiwgcmVmcykge1xuXG4gICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8XG4gICAgICAgIG9iaiA9PT0gbnVsbCkge1xuXG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgcmVmcyA9IHJlZnMgfHwgW107XG4gICAgdmFyIGxvb2t1cCA9IHJlZnMuaW5kZXhPZihvYmopO1xuICAgIGlmIChsb29rdXAgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiByZWZzW2xvb2t1cF07XG4gICAgfVxuXG4gICAgcmVmcy5wdXNoKG9iaik7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIHZhciBjb21wYWN0ZWQgPSBbXTtcblxuICAgICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBvYmoubGVuZ3RoOyBpIDwgaWw7ICsraSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbaV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY29tcGFjdGVkLnB1c2gob2JqW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb21wYWN0ZWQ7XG4gICAgfVxuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICAgIGZvciAoaSA9IDAsIGlsID0ga2V5cy5sZW5ndGg7IGkgPCBpbDsgKytpKSB7XG4gICAgICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgICAgICBvYmpba2V5XSA9IGV4cG9ydHMuY29tcGFjdChvYmpba2V5XSwgcmVmcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iajtcbn07XG5cblxuZXhwb3J0cy5pc1JlZ0V4cCA9IGZ1bmN0aW9uIChvYmopIHtcblxuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgUmVnRXhwXSc7XG59O1xuXG5cbmV4cG9ydHMuaXNCdWZmZXIgPSBmdW5jdGlvbiAob2JqKSB7XG5cbiAgICBpZiAob2JqID09PSBudWxsIHx8XG4gICAgICAgIHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAhIShvYmouY29uc3RydWN0b3IgJiZcbiAgICAgICAgICAgICAgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyICYmXG4gICAgICAgICAgICAgIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopKTtcbn07XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9xcy9saWIvdXRpbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 225 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\n// Load modules\n\nvar Utils = __webpack_require__(224);\n\n// Declare internals\n\nvar internals = {\n delimiter: '&',\n depth: 5,\n arrayLimit: 20,\n parameterLimit: 1000,\n strictNullHandling: false,\n plainObjects: false,\n allowPrototypes: false\n};\n\ninternals.parseValues = function (str, options) {\n\n var obj = {};\n var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit);\n\n for (var i = 0, il = parts.length; i < il; ++i) {\n var part = parts[i];\n var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;\n\n if (pos === -1) {\n obj[Utils.decode(part)] = '';\n\n if (options.strictNullHandling) {\n obj[Utils.decode(part)] = null;\n }\n } else {\n var key = Utils.decode(part.slice(0, pos));\n var val = Utils.decode(part.slice(pos + 1));\n\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n obj[key] = val;\n } else {\n obj[key] = [].concat(obj[key]).concat(val);\n }\n }\n }\n\n return obj;\n};\n\ninternals.parseObject = function (chain, val, options) {\n\n if (!chain.length) {\n return val;\n }\n\n var root = chain.shift();\n\n var obj;\n if (root === '[]') {\n obj = [];\n obj = obj.concat(internals.parseObject(chain, val, options));\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root;\n var index = parseInt(cleanRoot, 10);\n var indexString = '' + index;\n if (!isNaN(index) && root !== cleanRoot && indexString === cleanRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n\n obj = [];\n obj[index] = internals.parseObject(chain, val, options);\n } else {\n obj[cleanRoot] = internals.parseObject(chain, val, options);\n }\n }\n\n return obj;\n};\n\ninternals.parseKeys = function (key, val, options) {\n\n if (!key) {\n return;\n }\n\n // Transform dot notation to bracket notation\n\n if (options.allowDots) {\n key = key.replace(/\\.([^\\.\\[]+)/g, '[$1]');\n }\n\n // The regex chunks\n\n var parent = /^([^\\[\\]]*)/;\n var child = /(\\[[^\\[\\]]*\\])/g;\n\n // Get the parent\n\n var segment = parent.exec(key);\n\n // Stash the parent if it exists\n\n var keys = [];\n if (segment[1]) {\n // If we aren't using plain objects, optionally prefix keys\n // that would overwrite object prototype properties\n if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) {\n\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(segment[1]);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while ((segment = child.exec(key)) !== null && i < options.depth) {\n\n ++i;\n if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\\[|\\]/g, ''))) {\n\n if (!options.allowPrototypes) {\n continue;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return internals.parseObject(keys, val, options);\n};\n\nmodule.exports = function (str, options) {\n\n options = options || {};\n options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : internals.delimiter;\n options.depth = typeof options.depth === 'number' ? options.depth : internals.depth;\n options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : internals.arrayLimit;\n options.parseArrays = options.parseArrays !== false;\n options.allowDots = options.allowDots !== false;\n options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : internals.plainObjects;\n options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : internals.allowPrototypes;\n options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : internals.parameterLimit;\n options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : internals.strictNullHandling;\n\n if (str === '' || str === null || typeof str === 'undefined') {\n\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? internals.parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0, il = keys.length; i < il; ++i) {\n var key = keys[i];\n var newObj = internals.parseKeys(key, tempObj[key], options);\n obj = Utils.merge(obj, newObj, options);\n }\n\n return Utils.compact(obj);\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9xcy9saWIvcGFyc2UuanM/N2M2MCJdLCJuYW1lcyI6WyJVdGlscyIsInJlcXVpcmUiLCJpbnRlcm5hbHMiLCJkZWxpbWl0ZXIiLCJkZXB0aCIsImFycmF5TGltaXQiLCJwYXJhbWV0ZXJMaW1pdCIsInN0cmljdE51bGxIYW5kbGluZyIsInBsYWluT2JqZWN0cyIsImFsbG93UHJvdG90eXBlcyIsInBhcnNlVmFsdWVzIiwic3RyIiwib3B0aW9ucyIsIm9iaiIsInBhcnRzIiwic3BsaXQiLCJJbmZpbml0eSIsInVuZGVmaW5lZCIsImkiLCJpbCIsImxlbmd0aCIsInBhcnQiLCJwb3MiLCJpbmRleE9mIiwiZGVjb2RlIiwia2V5Iiwic2xpY2UiLCJ2YWwiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJjb25jYXQiLCJwYXJzZU9iamVjdCIsImNoYWluIiwicm9vdCIsInNoaWZ0IiwiY3JlYXRlIiwiY2xlYW5Sb290IiwiaW5kZXgiLCJwYXJzZUludCIsImluZGV4U3RyaW5nIiwiaXNOYU4iLCJwYXJzZUFycmF5cyIsInBhcnNlS2V5cyIsImFsbG93RG90cyIsInJlcGxhY2UiLCJwYXJlbnQiLCJjaGlsZCIsInNlZ21lbnQiLCJleGVjIiwia2V5cyIsInB1c2giLCJtb2R1bGUiLCJleHBvcnRzIiwiaXNSZWdFeHAiLCJ0ZW1wT2JqIiwibmV3T2JqIiwibWVyZ2UiLCJjb21wYWN0Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUVBLElBQUlBLFFBQVEsbUJBQUFDLENBQVEsR0FBUixDQUFaOztBQUdBOztBQUVBLElBQUlDLFlBQVk7QUFDWkMsZUFBVyxHQURDO0FBRVpDLFdBQU8sQ0FGSztBQUdaQyxnQkFBWSxFQUhBO0FBSVpDLG9CQUFnQixJQUpKO0FBS1pDLHdCQUFvQixLQUxSO0FBTVpDLGtCQUFjLEtBTkY7QUFP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QUFrQ0YsSUFBSUMsRUFBdEMsRUFBMEMsRUFBRUQsQ0FBNUMsRUFBK0M7QUFDM0MsWUFBSU8sTUFBTTBCLEtBQUtqQyxDQUFMLENBQVY7QUFDQSxZQUFJdUMsU0FBU3ZELFVBQVUwQyxTQUFWLENBQW9CbkIsR0FBcEIsRUFBeUIrQixRQUFRL0IsR0FBUixDQUF6QixFQUF1Q2IsT0FBdkMsQ0FBYjtBQUNBQyxjQUFNYixNQUFNMEQsS0FBTixDQUFZN0MsR0FBWixFQUFpQjRDLE1BQWpCLEVBQXlCN0MsT0FBekIsQ0FBTjtBQUNIOztBQUVELFdBQU9aLE1BQU0yRCxPQUFOLENBQWM5QyxHQUFkLENBQVA7QUFDSCxDQWpDRCIsImZpbGUiOiIyMjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMb2FkIG1vZHVsZXNcblxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5cbi8vIERlY2xhcmUgaW50ZXJuYWxzXG5cbnZhciBpbnRlcm5hbHMgPSB7XG4gICAgZGVsaW1pdGVyOiAnJicsXG4gICAgZGVwdGg6IDUsXG4gICAgYXJyYXlMaW1pdDogMjAsXG4gICAgcGFyYW1ldGVyTGltaXQ6IDEwMDAsXG4gICAgc3RyaWN0TnVsbEhhbmRsaW5nOiBmYWxzZSxcbiAgICBwbGFpbk9iamVjdHM6IGZhbHNlLFxuICAgIGFsbG93UHJvdG90eXBlczogZmFsc2Vcbn07XG5cblxuaW50ZXJuYWxzLnBhcnNlVmFsdWVzID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuXG4gICAgdmFyIG9iaiA9IHt9O1xuICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdChvcHRpb25zLmRlbGltaXRlciwgb3B0aW9ucy5wYXJhbWV0ZXJMaW1pdCA9PT0gSW5maW5pdHkgPyB1bmRlZmluZWQgOiBvcHRpb25zLnBhcmFtZXRlckxpbWl0KTtcblxuICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IHBhcnRzLmxlbmd0aDsgaSA8IGlsOyArK2kpIHtcbiAgICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTtcbiAgICAgICAgdmFyIHBvcyA9IHBhcnQuaW5kZXhPZignXT0nKSA9PT0gLTEgPyBwYXJ0LmluZGV4T2YoJz0nKSA6IHBhcnQuaW5kZXhPZignXT0nKSArIDE7XG5cbiAgICAgICAgaWYgKHBvcyA9PT0gLTEpIHtcbiAgICAgICAgICAgIG9ialtVdGlscy5kZWNvZGUocGFydCldID0gJyc7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnN0cmljdE51bGxIYW5kbGluZykge1xuICAgICAgICAgICAgICAgIG9ialtVdGlscy5kZWNvZGUocGFydCldID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrZXkgPSBVdGlscy5kZWNvZGUocGFydC5zbGljZSgwLCBwb3MpKTtcbiAgICAgICAgICAgIHZhciB2YWwgPSBVdGlscy5kZWNvZGUocGFydC5zbGljZShwb3MgKyAxKSk7XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgICAgIG9ialtrZXldID0gdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgb2JqW2tleV0gPSBbXS5jb25jYXQob2JqW2tleV0pLmNvbmNhdCh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iajtcbn07XG5cblxuaW50ZXJuYWxzLnBhcnNlT2JqZWN0ID0gZnVuY3Rpb24gKGNoYWluLCB2YWwsIG9wdGlvbnMpIHtcblxuICAgIGlmICghY2hhaW4ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuXG4gICAgdmFyIHJvb3QgPSBjaGFpbi5zaGlmdCgpO1xuXG4gICAgdmFyIG9iajtcbiAgICBpZiAocm9vdCA9PT0gJ1tdJykge1xuICAgICAgICBvYmogPSBbXTtcbiAgICAgICAgb2JqID0gb2JqLmNvbmNhdChpbnRlcm5hbHMucGFyc2VPYmplY3QoY2hhaW4sIHZhbCwgb3B0aW9ucykpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb2JqID0gb3B0aW9ucy5wbGFpbk9iamVjdHMgPyBPYmplY3QuY3JlYXRlKG51bGwpIDoge307XG4gICAgICAgIHZhciBjbGVhblJvb3QgPSByb290WzBdID09PSAnWycgJiYgcm9vdFtyb290Lmxlbmd0aCAtIDFdID09PSAnXScgPyByb290LnNsaWNlKDEsIHJvb3QubGVuZ3RoIC0gMSkgOiByb290O1xuICAgICAgICB2YXIgaW5kZXggPSBwYXJzZUludChjbGVhblJvb3QsIDEwKTtcbiAgICAgICAgdmFyIGluZGV4U3RyaW5nID0gJycgKyBpbmRleDtcbiAgICAgICAgaWYgKCFpc05hTihpbmRleCkgJiZcbiAgICAgICAgICAgIHJvb3QgIT09IGNsZWFuUm9vdCAmJlxuICAgICAgICAgICAgaW5kZXhTdHJpbmcgPT09IGNsZWFuUm9vdCAmJlxuICAgICAgICAgICAgaW5kZXggPj0gMCAmJlxuICAgICAgICAgICAgKG9wdGlvbnMucGFyc2VBcnJheXMgJiZcbiAgICAgICAgICAgICBpbmRleCA8PSBvcHRpb25zLmFycmF5TGltaXQpKSB7XG5cbiAgICAgICAgICAgIG9iaiA9IFtdO1xuICAgICAgICAgICAgb2JqW2luZGV4XSA9IGludGVybmFscy5wYXJzZU9iamVjdChjaGFpbiwgdmFsLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9ialtjbGVhblJvb3RdID0gaW50ZXJuYWxzLnBhcnNlT2JqZWN0KGNoYWluLCB2YWwsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iajtcbn07XG5cblxuaW50ZXJuYWxzLnBhcnNlS2V5cyA9IGZ1bmN0aW9uIChrZXksIHZhbCwgb3B0aW9ucykge1xuXG4gICAgaWYgKCFrZXkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFRyYW5zZm9ybSBkb3Qgbm90YXRpb24gdG8gYnJhY2tldCBub3RhdGlvblxuXG4gICAgaWYgKG9wdGlvbnMuYWxsb3dEb3RzKSB7XG4gICAgICAgIGtleSA9IGtleS5yZXBsYWNlKC9cXC4oW15cXC5cXFtdKykvZywgJ1skMV0nKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcmVnZXggY2h1bmtzXG5cbiAgICB2YXIgcGFyZW50ID0gL14oW15cXFtcXF1dKikvO1xuICAgIHZhciBjaGlsZCA9IC8oXFxbW15cXFtcXF1dKlxcXSkvZztcblxuICAgIC8vIEdldCB0aGUgcGFyZW50XG5cbiAgICB2YXIgc2VnbWVudCA9IHBhcmVudC5leGVjKGtleSk7XG5cbiAgICAvLyBTdGFzaCB0aGUgcGFyZW50IGlmIGl0IGV4aXN0c1xuXG4gICAgdmFyIGtleXMgPSBbXTtcbiAgICBpZiAoc2VnbWVudFsxXSkge1xuICAgICAgICAvLyBJZiB3ZSBhcmVuJ3QgdXNpbmcgcGxhaW4gb2JqZWN0cywgb3B0aW9uYWxseSBwcmVmaXgga2V5c1xuICAgICAgICAvLyB0aGF0IHdvdWxkIG92ZXJ3cml0ZSBvYmplY3QgcHJvdG90eXBlIHByb3BlcnRpZXNcbiAgICAgICAgaWYgKCFvcHRpb25zLnBsYWluT2JqZWN0cyAmJlxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShzZWdtZW50WzFdKSkge1xuXG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuYWxsb3dQcm90b3R5cGVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAga2V5cy5wdXNoKHNlZ21lbnRbMV0pO1xuICAgIH1cblxuICAgIC8vIExvb3AgdGhyb3VnaCBjaGlsZHJlbiBhcHBlbmRpbmcgdG8gdGhlIGFycmF5IHVudGlsIHdlIGhpdCBkZXB0aFxuXG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlICgoc2VnbWVudCA9IGNoaWxkLmV4ZWMoa2V5KSkgIT09IG51bGwgJiYgaSA8IG9wdGlvbnMuZGVwdGgpIHtcblxuICAgICAgICArK2k7XG4gICAgICAgIGlmICghb3B0aW9ucy5wbGFpbk9iamVjdHMgJiZcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoc2VnbWVudFsxXS5yZXBsYWNlKC9cXFt8XFxdL2csICcnKSkpIHtcblxuICAgICAgICAgICAgaWYgKCFvcHRpb25zLmFsbG93UHJvdG90eXBlcykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGtleXMucHVzaChzZWdtZW50WzFdKTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSdzIGEgcmVtYWluZGVyLCBqdXN0IGFkZCB3aGF0ZXZlciBpcyBsZWZ0XG5cbiAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICBrZXlzLnB1c2goJ1snICsga2V5LnNsaWNlKHNlZ21lbnQuaW5kZXgpICsgJ10nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW50ZXJuYWxzLnBhcnNlT2JqZWN0KGtleXMsIHZhbCwgb3B0aW9ucyk7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHN0ciwgb3B0aW9ucykge1xuXG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgb3B0aW9ucy5kZWxpbWl0ZXIgPSB0eXBlb2Ygb3B0aW9ucy5kZWxpbWl0ZXIgPT09ICdzdHJpbmcnIHx8IFV0aWxzLmlzUmVnRXhwKG9wdGlvbnMuZGVsaW1pdGVyKSA/IG9wdGlvbnMuZGVsaW1pdGVyIDogaW50ZXJuYWxzLmRlbGltaXRlcjtcbiAgICBvcHRpb25zLmRlcHRoID0gdHlwZW9mIG9wdGlvbnMuZGVwdGggPT09ICdudW1iZXInID8gb3B0aW9ucy5kZXB0aCA6IGludGVybmFscy5kZXB0aDtcbiAgICBvcHRpb25zLmFycmF5TGltaXQgPSB0eXBlb2Ygb3B0aW9ucy5hcnJheUxpbWl0ID09PSAnbnVtYmVyJyA/IG9wdGlvbnMuYXJyYXlMaW1pdCA6IGludGVybmFscy5hcnJheUxpbWl0O1xuICAgIG9wdGlvbnMucGFyc2VBcnJheXMgPSBvcHRpb25zLnBhcnNlQXJyYXlzICE9PSBmYWxzZTtcbiAgICBvcHRpb25zLmFsbG93RG90cyA9IG9wdGlvbnMuYWxsb3dEb3RzICE9PSBmYWxzZTtcbiAgICBvcHRpb25zLnBsYWluT2JqZWN0cyA9IHR5cGVvZiBvcHRpb25zLnBsYWluT2JqZWN0cyA9PT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5wbGFpbk9iamVjdHMgOiBpbnRlcm5hbHMucGxhaW5PYmplY3RzO1xuICAgIG9wdGlvbnMuYWxsb3dQcm90b3R5cGVzID0gdHlwZW9mIG9wdGlvbnMuYWxsb3dQcm90b3R5cGVzID09PSAnYm9vbGVhbicgPyBvcHRpb25zLmFsbG93UHJvdG90eXBlcyA6IGludGVybmFscy5hbGxvd1Byb3RvdHlwZXM7XG4gICAgb3B0aW9ucy5wYXJhbWV0ZXJMaW1pdCA9IHR5cGVvZiBvcHRpb25zLnBhcmFtZXRlckxpbWl0ID09PSAnbnVtYmVyJyA/IG9wdGlvbnMucGFyYW1ldGVyTGltaXQgOiBpbnRlcm5hbHMucGFyYW1ldGVyTGltaXQ7XG4gICAgb3B0aW9ucy5zdHJpY3ROdWxsSGFuZGxpbmcgPSB0eXBlb2Ygb3B0aW9ucy5zdHJpY3ROdWxsSGFuZGxpbmcgPT09ICdib29sZWFuJyA/IG9wdGlvbnMuc3RyaWN0TnVsbEhhbmRsaW5nIDogaW50ZXJuYWxzLnN0cmljdE51bGxIYW5kbGluZztcblxuICAgIGlmIChzdHIgPT09ICcnIHx8XG4gICAgICAgIHN0ciA9PT0gbnVsbCB8fFxuICAgICAgICB0eXBlb2Ygc3RyID09PSAndW5kZWZpbmVkJykge1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnBsYWluT2JqZWN0cyA/IE9iamVjdC5jcmVhdGUobnVsbCkgOiB7fTtcbiAgICB9XG5cbiAgICB2YXIgdGVtcE9iaiA9IHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnID8gaW50ZXJuYWxzLnBhcnNlVmFsdWVzKHN0ciwgb3B0aW9ucykgOiBzdHI7XG4gICAgdmFyIG9iaiA9IG9wdGlvbnMucGxhaW5PYmplY3RzID8gT2JqZWN0LmNyZWF0ZShudWxsKSA6IHt9O1xuXG4gICAgLy8gSXRlcmF0ZSBvdmVyIHRoZSBrZXlzIGFuZCBzZXR1cCB0aGUgbmV3IG9iamVjdFxuXG4gICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyh0ZW1wT2JqKTtcbiAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBrZXlzLmxlbmd0aDsgaSA8IGlsOyArK2kpIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgIHZhciBuZXdPYmogPSBpbnRlcm5hbHMucGFyc2VLZXlzKGtleSwgdGVtcE9ialtrZXldLCBvcHRpb25zKTtcbiAgICAgICAgb2JqID0gVXRpbHMubWVyZ2Uob2JqLCBuZXdPYmosIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBVdGlscy5jb21wYWN0KG9iaik7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcXMvbGliL3BhcnNlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 226 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _PatternUtils = __webpack_require__(219);\n\nfunction routeParamsChanged(route, prevState, nextState) {\n if (!route.path) return false;\n\n var paramNames = _PatternUtils.getParamNames(route.path);\n\n return paramNames.some(function (paramName) {\n return prevState.params[paramName] !== nextState.params[paramName];\n });\n}\n\n/**\n * Returns an object of { leaveRoutes, enterRoutes } determined by\n * the change from prevState to nextState. We leave routes if either\n * 1) they are not in the next state or 2) they are in the next state\n * but their params have changed (i.e. /users/123 => /users/456).\n *\n * leaveRoutes are ordered starting at the leaf route of the tree\n * we're leaving up to the common parent route. enterRoutes are ordered\n * from the top of the tree we're entering down to the leaf route.\n */\nfunction computeChangedRoutes(prevState, nextState) {\n var prevRoutes = prevState && prevState.routes;\n var nextRoutes = nextState.routes;\n\n var leaveRoutes = undefined,\n enterRoutes = undefined;\n if (prevRoutes) {\n leaveRoutes = prevRoutes.filter(function (route) {\n return nextRoutes.indexOf(route) === -1 || routeParamsChanged(route, prevState, nextState);\n });\n\n // onLeave hooks start at the leaf route.\n leaveRoutes.reverse();\n\n enterRoutes = nextRoutes.filter(function (route) {\n return prevRoutes.indexOf(route) === -1 || leaveRoutes.indexOf(route) !== -1;\n });\n } else {\n leaveRoutes = [];\n enterRoutes = nextRoutes;\n }\n\n return {\n leaveRoutes: leaveRoutes,\n enterRoutes: enterRoutes\n };\n}\n\nexports['default'] = computeChangedRoutes;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2NvbXB1dGVDaGFuZ2VkUm91dGVzLmpzPzliNjUiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfUGF0dGVyblV0aWxzIiwicmVxdWlyZSIsInJvdXRlUGFyYW1zQ2hhbmdlZCIsInJvdXRlIiwicHJldlN0YXRlIiwibmV4dFN0YXRlIiwicGF0aCIsInBhcmFtTmFtZXMiLCJnZXRQYXJhbU5hbWVzIiwic29tZSIsInBhcmFtTmFtZSIsInBhcmFtcyIsImNvbXB1dGVDaGFuZ2VkUm91dGVzIiwicHJldlJvdXRlcyIsInJvdXRlcyIsIm5leHRSb3V0ZXMiLCJsZWF2ZVJvdXRlcyIsInVuZGVmaW5lZCIsImVudGVyUm91dGVzIiwiZmlsdGVyIiwiaW5kZXhPZiIsInJldmVyc2UiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLGdCQUFnQixtQkFBQUMsQ0FBUSxHQUFSLENBQXBCOztBQUVBLFNBQVNDLGtCQUFULENBQTRCQyxLQUE1QixFQUFtQ0MsU0FBbkMsRUFBOENDLFNBQTlDLEVBQXlEO0FBQ3ZELE1BQUksQ0FBQ0YsTUFBTUcsSUFBWCxFQUFpQixPQUFPLEtBQVA7O0FBRWpCLE1BQUlDLGFBQWFQLGNBQWNRLGFBQWQsQ0FBNEJMLE1BQU1HLElBQWxDLENBQWpCOztBQUVBLFNBQU9DLFdBQVdFLElBQVgsQ0FBZ0IsVUFBVUMsU0FBVixFQUFxQjtBQUMxQyxXQUFPTixVQUFVTyxNQUFWLENBQWlCRCxTQUFqQixNQUFnQ0wsVUFBVU0sTUFBVixDQUFpQkQsU0FBakIsQ0FBdkM7QUFDRCxHQUZNLENBQVA7QUFHRDs7QUFFRDs7Ozs7Ozs7OztBQVVBLFNBQVNFLG9CQUFULENBQThCUixTQUE5QixFQUF5Q0MsU0FBekMsRUFBb0Q7QUFDbEQsTUFBSVEsYUFBYVQsYUFBYUEsVUFBVVUsTUFBeEM7QUFDQSxNQUFJQyxhQUFhVixVQUFVUyxNQUEzQjs7QUFFQSxNQUFJRSxjQUFjQyxTQUFsQjtBQUFBLE1BQ0lDLGNBQWNELFNBRGxCO0FBRUEsTUFBSUosVUFBSixFQUFnQjtBQUNkRyxrQkFBY0gsV0FBV00sTUFBWCxDQUFrQixVQUFVaEIsS0FBVixFQUFpQjtBQUMvQyxhQUFPWSxXQUFXSyxPQUFYLENBQW1CakIsS0FBbkIsTUFBOEIsQ0FBQyxDQUEvQixJQUFvQ0QsbUJBQW1CQyxLQUFuQixFQUEwQkMsU0FBMUIsRUFBcUNDLFNBQXJDLENBQTNDO0FBQ0QsS0FGYSxDQUFkOztBQUlBO0FBQ0FXLGdCQUFZSyxPQUFaOztBQUVBSCxrQkFBY0gsV0FBV0ksTUFBWCxDQUFrQixVQUFVaEIsS0FBVixFQUFpQjtBQUMvQyxhQUFPVSxXQUFXTyxPQUFYLENBQW1CakIsS0FBbkIsTUFBOEIsQ0FBQyxDQUEvQixJQUFvQ2EsWUFBWUksT0FBWixDQUFvQmpCLEtBQXBCLE1BQStCLENBQUMsQ0FBM0U7QUFDRCxLQUZhLENBQWQ7QUFHRCxHQVhELE1BV087QUFDTGEsa0JBQWMsRUFBZDtBQUNBRSxrQkFBY0gsVUFBZDtBQUNEOztBQUVELFNBQU87QUFDTEMsaUJBQWFBLFdBRFI7QUFFTEUsaUJBQWFBO0FBRlIsR0FBUDtBQUlEOztBQUVEcEIsUUFBUSxTQUFSLElBQXFCYyxvQkFBckI7QUFDQVUsT0FBT3hCLE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQiIsImZpbGUiOiIyMjYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfUGF0dGVyblV0aWxzID0gcmVxdWlyZSgnLi9QYXR0ZXJuVXRpbHMnKTtcblxuZnVuY3Rpb24gcm91dGVQYXJhbXNDaGFuZ2VkKHJvdXRlLCBwcmV2U3RhdGUsIG5leHRTdGF0ZSkge1xuICBpZiAoIXJvdXRlLnBhdGgpIHJldHVybiBmYWxzZTtcblxuICB2YXIgcGFyYW1OYW1lcyA9IF9QYXR0ZXJuVXRpbHMuZ2V0UGFyYW1OYW1lcyhyb3V0ZS5wYXRoKTtcblxuICByZXR1cm4gcGFyYW1OYW1lcy5zb21lKGZ1bmN0aW9uIChwYXJhbU5hbWUpIHtcbiAgICByZXR1cm4gcHJldlN0YXRlLnBhcmFtc1twYXJhbU5hbWVdICE9PSBuZXh0U3RhdGUucGFyYW1zW3BhcmFtTmFtZV07XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYW4gb2JqZWN0IG9mIHsgbGVhdmVSb3V0ZXMsIGVudGVyUm91dGVzIH0gZGV0ZXJtaW5lZCBieVxuICogdGhlIGNoYW5nZSBmcm9tIHByZXZTdGF0ZSB0byBuZXh0U3RhdGUuIFdlIGxlYXZlIHJvdXRlcyBpZiBlaXRoZXJcbiAqIDEpIHRoZXkgYXJlIG5vdCBpbiB0aGUgbmV4dCBzdGF0ZSBvciAyKSB0aGV5IGFyZSBpbiB0aGUgbmV4dCBzdGF0ZVxuICogYnV0IHRoZWlyIHBhcmFtcyBoYXZlIGNoYW5nZWQgKGkuZS4gL3VzZXJzLzEyMyA9PiAvdXNlcnMvNDU2KS5cbiAqXG4gKiBsZWF2ZVJvdXRlcyBhcmUgb3JkZXJlZCBzdGFydGluZyBhdCB0aGUgbGVhZiByb3V0ZSBvZiB0aGUgdHJlZVxuICogd2UncmUgbGVhdmluZyB1cCB0byB0aGUgY29tbW9uIHBhcmVudCByb3V0ZS4gZW50ZXJSb3V0ZXMgYXJlIG9yZGVyZWRcbiAqIGZyb20gdGhlIHRvcCBvZiB0aGUgdHJlZSB3ZSdyZSBlbnRlcmluZyBkb3duIHRvIHRoZSBsZWFmIHJvdXRlLlxuICovXG5mdW5jdGlvbiBjb21wdXRlQ2hhbmdlZFJvdXRlcyhwcmV2U3RhdGUsIG5leHRTdGF0ZSkge1xuICB2YXIgcHJldlJvdXRlcyA9IHByZXZTdGF0ZSAmJiBwcmV2U3RhdGUucm91dGVzO1xuICB2YXIgbmV4dFJvdXRlcyA9IG5leHRTdGF0ZS5yb3V0ZXM7XG5cbiAgdmFyIGxlYXZlUm91dGVzID0gdW5kZWZpbmVkLFxuICAgICAgZW50ZXJSb3V0ZXMgPSB1bmRlZmluZWQ7XG4gIGlmIChwcmV2Um91dGVzKSB7XG4gICAgbGVhdmVSb3V0ZXMgPSBwcmV2Um91dGVzLmZpbHRlcihmdW5jdGlvbiAocm91dGUpIHtcbiAgICAgIHJldHVybiBuZXh0Um91dGVzLmluZGV4T2Yocm91dGUpID09PSAtMSB8fCByb3V0ZVBhcmFtc0NoYW5nZWQocm91dGUsIHByZXZTdGF0ZSwgbmV4dFN0YXRlKTtcbiAgICB9KTtcblxuICAgIC8vIG9uTGVhdmUgaG9va3Mgc3RhcnQgYXQgdGhlIGxlYWYgcm91dGUuXG4gICAgbGVhdmVSb3V0ZXMucmV2ZXJzZSgpO1xuXG4gICAgZW50ZXJSb3V0ZXMgPSBuZXh0Um91dGVzLmZpbHRlcihmdW5jdGlvbiAocm91dGUpIHtcbiAgICAgIHJldHVybiBwcmV2Um91dGVzLmluZGV4T2Yocm91dGUpID09PSAtMSB8fCBsZWF2ZVJvdXRlcy5pbmRleE9mKHJvdXRlKSAhPT0gLTE7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgbGVhdmVSb3V0ZXMgPSBbXTtcbiAgICBlbnRlclJvdXRlcyA9IG5leHRSb3V0ZXM7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGxlYXZlUm91dGVzOiBsZWF2ZVJvdXRlcyxcbiAgICBlbnRlclJvdXRlczogZW50ZXJSb3V0ZXNcbiAgfTtcbn1cblxuZXhwb3J0c1snZGVmYXVsdCddID0gY29tcHV0ZUNoYW5nZWRSb3V0ZXM7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2NvbXB1dGVDaGFuZ2VkUm91dGVzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 227 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports.runEnterHooks = runEnterHooks;\nexports.runLeaveHooks = runLeaveHooks;\n\nvar _AsyncUtils = __webpack_require__(228);\n\nfunction createEnterHook(hook, route) {\n return function (a, b, callback) {\n hook.apply(route, arguments);\n\n if (hook.length < 3) {\n // Assume hook executes synchronously and\n // automatically call the callback.\n callback();\n }\n };\n}\n\nfunction getEnterHooks(routes) {\n return routes.reduce(function (hooks, route) {\n if (route.onEnter) hooks.push(createEnterHook(route.onEnter, route));\n\n return hooks;\n }, []);\n}\n\n/**\n * Runs all onEnter hooks in the given array of routes in order\n * with onEnter(nextState, replaceState, callback) and calls\n * callback(error, redirectInfo) when finished. The first hook\n * to use replaceState short-circuits the loop.\n *\n * If a hook needs to run asynchronously, it may use the callback\n * function. However, doing so will cause the transition to pause,\n * which could lead to a non-responsive UI if the hook is slow.\n */\n\nfunction runEnterHooks(routes, nextState, callback) {\n var hooks = getEnterHooks(routes);\n\n if (!hooks.length) {\n callback();\n return;\n }\n\n var redirectInfo = undefined;\n function replaceState(state, pathname, query) {\n redirectInfo = { pathname: pathname, query: query, state: state };\n }\n\n _AsyncUtils.loopAsync(hooks.length, function (index, next, done) {\n hooks[index](nextState, replaceState, function (error) {\n if (error || redirectInfo) {\n done(error, redirectInfo); // No need to continue.\n } else {\n next();\n }\n });\n }, callback);\n}\n\n/**\n * Runs all onLeave hooks in the given array of routes in order.\n */\n\nfunction runLeaveHooks(routes) {\n for (var i = 0, len = routes.length; i < len; ++i) {\n if (routes[i].onLeave) routes[i].onLeave.call(routes[i]);\n }\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1RyYW5zaXRpb25VdGlscy5qcz9jZDM4Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwicnVuRW50ZXJIb29rcyIsInJ1bkxlYXZlSG9va3MiLCJfQXN5bmNVdGlscyIsInJlcXVpcmUiLCJjcmVhdGVFbnRlckhvb2siLCJob29rIiwicm91dGUiLCJhIiwiYiIsImNhbGxiYWNrIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJnZXRFbnRlckhvb2tzIiwicm91dGVzIiwicmVkdWNlIiwiaG9va3MiLCJvbkVudGVyIiwicHVzaCIsIm5leHRTdGF0ZSIsInJlZGlyZWN0SW5mbyIsInVuZGVmaW5lZCIsInJlcGxhY2VTdGF0ZSIsInN0YXRlIiwicGF0aG5hbWUiLCJxdWVyeSIsImxvb3BBc3luYyIsImluZGV4IiwibmV4dCIsImRvbmUiLCJlcnJvciIsImkiLCJsZW4iLCJvbkxlYXZlIiwiY2FsbCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7QUFDQUQsUUFBUUUsYUFBUixHQUF3QkEsYUFBeEI7QUFDQUYsUUFBUUcsYUFBUixHQUF3QkEsYUFBeEI7O0FBRUEsSUFBSUMsY0FBYyxtQkFBQUMsQ0FBUSxHQUFSLENBQWxCOztBQUVBLFNBQVNDLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCQyxLQUEvQixFQUFzQztBQUNwQyxTQUFPLFVBQVVDLENBQVYsRUFBYUMsQ0FBYixFQUFnQkMsUUFBaEIsRUFBMEI7QUFDL0JKLFNBQUtLLEtBQUwsQ0FBV0osS0FBWCxFQUFrQkssU0FBbEI7O0FBRUEsUUFBSU4sS0FBS08sTUFBTCxHQUFjLENBQWxCLEVBQXFCO0FBQ25CO0FBQ0E7QUFDQUg7QUFDRDtBQUNGLEdBUkQ7QUFTRDs7QUFFRCxTQUFTSSxhQUFULENBQXVCQyxNQUF2QixFQUErQjtBQUM3QixTQUFPQSxPQUFPQyxNQUFQLENBQWMsVUFBVUMsS0FBVixFQUFpQlYsS0FBakIsRUFBd0I7QUFDM0MsUUFBSUEsTUFBTVcsT0FBVixFQUFtQkQsTUFBTUUsSUFBTixDQUFXZCxnQkFBZ0JFLE1BQU1XLE9BQXRCLEVBQStCWCxLQUEvQixDQUFYOztBQUVuQixXQUFPVSxLQUFQO0FBQ0QsR0FKTSxFQUlKLEVBSkksQ0FBUDtBQUtEOztBQUVEOzs7Ozs7Ozs7OztBQVdBLFNBQVNoQixhQUFULENBQXVCYyxNQUF2QixFQUErQkssU0FBL0IsRUFBMENWLFFBQTFDLEVBQW9EO0FBQ2xELE1BQUlPLFFBQVFILGNBQWNDLE1BQWQsQ0FBWjs7QUFFQSxNQUFJLENBQUNFLE1BQU1KLE1BQVgsRUFBbUI7QUFDakJIO0FBQ0E7QUFDRDs7QUFFRCxNQUFJVyxlQUFlQyxTQUFuQjtBQUNBLFdBQVNDLFlBQVQsQ0FBc0JDLEtBQXRCLEVBQTZCQyxRQUE3QixFQUF1Q0MsS0FBdkMsRUFBOEM7QUFDNUNMLG1CQUFlLEVBQUVJLFVBQVVBLFFBQVosRUFBc0JDLE9BQU9BLEtBQTdCLEVBQW9DRixPQUFPQSxLQUEzQyxFQUFmO0FBQ0Q7O0FBRURyQixjQUFZd0IsU0FBWixDQUFzQlYsTUFBTUosTUFBNUIsRUFBb0MsVUFBVWUsS0FBVixFQUFpQkMsSUFBakIsRUFBdUJDLElBQXZCLEVBQTZCO0FBQy9EYixVQUFNVyxLQUFOLEVBQWFSLFNBQWIsRUFBd0JHLFlBQXhCLEVBQXNDLFVBQVVRLEtBQVYsRUFBaUI7QUFDckQsVUFBSUEsU0FBU1YsWUFBYixFQUEyQjtBQUN6QlMsYUFBS0MsS0FBTCxFQUFZVixZQUFaLEVBRHlCLENBQ0U7QUFDNUIsT0FGRCxNQUVPO0FBQ0hRO0FBQ0Q7QUFDSixLQU5EO0FBT0QsR0FSRCxFQVFHbkIsUUFSSDtBQVNEOztBQUVEOzs7O0FBSUEsU0FBU1IsYUFBVCxDQUF1QmEsTUFBdkIsRUFBK0I7QUFDN0IsT0FBSyxJQUFJaUIsSUFBSSxDQUFSLEVBQVdDLE1BQU1sQixPQUFPRixNQUE3QixFQUFxQ21CLElBQUlDLEdBQXpDLEVBQThDLEVBQUVELENBQWhELEVBQW1EO0FBQ2pELFFBQUlqQixPQUFPaUIsQ0FBUCxFQUFVRSxPQUFkLEVBQXVCbkIsT0FBT2lCLENBQVAsRUFBVUUsT0FBVixDQUFrQkMsSUFBbEIsQ0FBdUJwQixPQUFPaUIsQ0FBUCxDQUF2QjtBQUN4QjtBQUNGIiwiZmlsZSI6IjIyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMucnVuRW50ZXJIb29rcyA9IHJ1bkVudGVySG9va3M7XG5leHBvcnRzLnJ1bkxlYXZlSG9va3MgPSBydW5MZWF2ZUhvb2tzO1xuXG52YXIgX0FzeW5jVXRpbHMgPSByZXF1aXJlKCcuL0FzeW5jVXRpbHMnKTtcblxuZnVuY3Rpb24gY3JlYXRlRW50ZXJIb29rKGhvb2ssIHJvdXRlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoYSwgYiwgY2FsbGJhY2spIHtcbiAgICBob29rLmFwcGx5KHJvdXRlLCBhcmd1bWVudHMpO1xuXG4gICAgaWYgKGhvb2subGVuZ3RoIDwgMykge1xuICAgICAgLy8gQXNzdW1lIGhvb2sgZXhlY3V0ZXMgc3luY2hyb25vdXNseSBhbmRcbiAgICAgIC8vIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGUgY2FsbGJhY2suXG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RW50ZXJIb29rcyhyb3V0ZXMpIHtcbiAgcmV0dXJuIHJvdXRlcy5yZWR1Y2UoZnVuY3Rpb24gKGhvb2tzLCByb3V0ZSkge1xuICAgIGlmIChyb3V0ZS5vbkVudGVyKSBob29rcy5wdXNoKGNyZWF0ZUVudGVySG9vayhyb3V0ZS5vbkVudGVyLCByb3V0ZSkpO1xuXG4gICAgcmV0dXJuIGhvb2tzO1xuICB9LCBbXSk7XG59XG5cbi8qKlxuICogUnVucyBhbGwgb25FbnRlciBob29rcyBpbiB0aGUgZ2l2ZW4gYXJyYXkgb2Ygcm91dGVzIGluIG9yZGVyXG4gKiB3aXRoIG9uRW50ZXIobmV4dFN0YXRlLCByZXBsYWNlU3RhdGUsIGNhbGxiYWNrKSBhbmQgY2FsbHNcbiAqIGNhbGxiYWNrKGVycm9yLCByZWRpcmVjdEluZm8pIHdoZW4gZmluaXNoZWQuIFRoZSBmaXJzdCBob29rXG4gKiB0byB1c2UgcmVwbGFjZVN0YXRlIHNob3J0LWNpcmN1aXRzIHRoZSBsb29wLlxuICpcbiAqIElmIGEgaG9vayBuZWVkcyB0byBydW4gYXN5bmNocm9ub3VzbHksIGl0IG1heSB1c2UgdGhlIGNhbGxiYWNrXG4gKiBmdW5jdGlvbi4gSG93ZXZlciwgZG9pbmcgc28gd2lsbCBjYXVzZSB0aGUgdHJhbnNpdGlvbiB0byBwYXVzZSxcbiAqIHdoaWNoIGNvdWxkIGxlYWQgdG8gYSBub24tcmVzcG9uc2l2ZSBVSSBpZiB0aGUgaG9vayBpcyBzbG93LlxuICovXG5cbmZ1bmN0aW9uIHJ1bkVudGVySG9va3Mocm91dGVzLCBuZXh0U3RhdGUsIGNhbGxiYWNrKSB7XG4gIHZhciBob29rcyA9IGdldEVudGVySG9va3Mocm91dGVzKTtcblxuICBpZiAoIWhvb2tzLmxlbmd0aCkge1xuICAgIGNhbGxiYWNrKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHJlZGlyZWN0SW5mbyA9IHVuZGVmaW5lZDtcbiAgZnVuY3Rpb24gcmVwbGFjZVN0YXRlKHN0YXRlLCBwYXRobmFtZSwgcXVlcnkpIHtcbiAgICByZWRpcmVjdEluZm8gPSB7IHBhdGhuYW1lOiBwYXRobmFtZSwgcXVlcnk6IHF1ZXJ5LCBzdGF0ZTogc3RhdGUgfTtcbiAgfVxuXG4gIF9Bc3luY1V0aWxzLmxvb3BBc3luYyhob29rcy5sZW5ndGgsIGZ1bmN0aW9uIChpbmRleCwgbmV4dCwgZG9uZSkge1xuICAgIGhvb2tzW2luZGV4XShuZXh0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgfHwgcmVkaXJlY3RJbmZvKSB7XG4gICAgICAgIGRvbmUoZXJyb3IsIHJlZGlyZWN0SW5mbyk7IC8vIE5vIG5lZWQgdG8gY29udGludWUuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICB9LCBjYWxsYmFjayk7XG59XG5cbi8qKlxuICogUnVucyBhbGwgb25MZWF2ZSBob29rcyBpbiB0aGUgZ2l2ZW4gYXJyYXkgb2Ygcm91dGVzIGluIG9yZGVyLlxuICovXG5cbmZ1bmN0aW9uIHJ1bkxlYXZlSG9va3Mocm91dGVzKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSByb3V0ZXMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAocm91dGVzW2ldLm9uTGVhdmUpIHJvdXRlc1tpXS5vbkxlYXZlLmNhbGwocm91dGVzW2ldKTtcbiAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L3JlYWN0LXJvdXRlci9saWIvVHJhbnNpdGlvblV0aWxzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 228 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("\"use strict\";\n\nexports.__esModule = true;\nexports.loopAsync = loopAsync;\nexports.mapAsync = mapAsync;\n\nfunction loopAsync(turns, work, callback) {\n var currentTurn = 0,\n isDone = false;\n\n function done() {\n isDone = true;\n callback.apply(this, arguments);\n }\n\n function next() {\n if (isDone) return;\n\n if (currentTurn < turns) {\n work.call(this, currentTurn++, next, done);\n } else {\n done.apply(this, arguments);\n }\n }\n\n next();\n}\n\nfunction mapAsync(array, work, callback) {\n var length = array.length;\n var values = [];\n\n if (length === 0) return callback(null, values);\n\n var isDone = false,\n doneCount = 0;\n\n function done(index, error, value) {\n if (isDone) return;\n\n if (error) {\n isDone = true;\n callback(error);\n } else {\n values[index] = value;\n\n isDone = ++doneCount === length;\n\n if (isDone) callback(null, values);\n }\n }\n\n array.forEach(function (item, index) {\n work(item, index, function (error, value) {\n done(index, error, value);\n });\n });\n}//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0FzeW5jVXRpbHMuanM/YzY0NSJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsImxvb3BBc3luYyIsIm1hcEFzeW5jIiwidHVybnMiLCJ3b3JrIiwiY2FsbGJhY2siLCJjdXJyZW50VHVybiIsImlzRG9uZSIsImRvbmUiLCJhcHBseSIsImFyZ3VtZW50cyIsIm5leHQiLCJjYWxsIiwiYXJyYXkiLCJsZW5ndGgiLCJ2YWx1ZXMiLCJkb25lQ291bnQiLCJpbmRleCIsImVycm9yIiwidmFsdWUiLCJmb3JFYWNoIiwiaXRlbSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7QUFDQUQsUUFBUUUsU0FBUixHQUFvQkEsU0FBcEI7QUFDQUYsUUFBUUcsUUFBUixHQUFtQkEsUUFBbkI7O0FBRUEsU0FBU0QsU0FBVCxDQUFtQkUsS0FBbkIsRUFBMEJDLElBQTFCLEVBQWdDQyxRQUFoQyxFQUEwQztBQUN4QyxNQUFJQyxjQUFjLENBQWxCO0FBQUEsTUFDSUMsU0FBUyxLQURiOztBQUdBLFdBQVNDLElBQVQsR0FBZ0I7QUFDZEQsYUFBUyxJQUFUO0FBQ0FGLGFBQVNJLEtBQVQsQ0FBZSxJQUFmLEVBQXFCQyxTQUFyQjtBQUNEOztBQUVELFdBQVNDLElBQVQsR0FBZ0I7QUFDZCxRQUFJSixNQUFKLEVBQVk7O0FBRVosUUFBSUQsY0FBY0gsS0FBbEIsRUFBeUI7QUFDdkJDLFdBQUtRLElBQUwsQ0FBVSxJQUFWLEVBQWdCTixhQUFoQixFQUErQkssSUFBL0IsRUFBcUNILElBQXJDO0FBQ0QsS0FGRCxNQUVPO0FBQ0xBLFdBQUtDLEtBQUwsQ0FBVyxJQUFYLEVBQWlCQyxTQUFqQjtBQUNEO0FBQ0Y7O0FBRURDO0FBQ0Q7O0FBRUQsU0FBU1QsUUFBVCxDQUFrQlcsS0FBbEIsRUFBeUJULElBQXpCLEVBQStCQyxRQUEvQixFQUF5QztBQUN2QyxNQUFJUyxTQUFTRCxNQUFNQyxNQUFuQjtBQUNBLE1BQUlDLFNBQVMsRUFBYjs7QUFFQSxNQUFJRCxXQUFXLENBQWYsRUFBa0IsT0FBT1QsU0FBUyxJQUFULEVBQWVVLE1BQWYsQ0FBUDs7QUFFbEIsTUFBSVIsU0FBUyxLQUFiO0FBQUEsTUFDSVMsWUFBWSxDQURoQjs7QUFHQSxXQUFTUixJQUFULENBQWNTLEtBQWQsRUFBcUJDLEtBQXJCLEVBQTRCQyxLQUE1QixFQUFtQztBQUNqQyxRQUFJWixNQUFKLEVBQVk7O0FBRVosUUFBSVcsS0FBSixFQUFXO0FBQ1RYLGVBQVMsSUFBVDtBQUNBRixlQUFTYSxLQUFUO0FBQ0QsS0FIRCxNQUdPO0FBQ0xILGFBQU9FLEtBQVAsSUFBZ0JFLEtBQWhCOztBQUVBWixlQUFTLEVBQUVTLFNBQUYsS0FBZ0JGLE1BQXpCOztBQUVBLFVBQUlQLE1BQUosRUFBWUYsU0FBUyxJQUFULEVBQWVVLE1BQWY7QUFDYjtBQUNGOztBQUVERixRQUFNTyxPQUFOLENBQWMsVUFBVUMsSUFBVixFQUFnQkosS0FBaEIsRUFBdUI7QUFDbkNiLFNBQUtpQixJQUFMLEVBQVdKLEtBQVgsRUFBa0IsVUFBVUMsS0FBVixFQUFpQkMsS0FBakIsRUFBd0I7QUFDeENYLFdBQUtTLEtBQUwsRUFBWUMsS0FBWixFQUFtQkMsS0FBbkI7QUFDRCxLQUZEO0FBR0QsR0FKRDtBQUtEIiwiZmlsZSI6IjIyOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5sb29wQXN5bmMgPSBsb29wQXN5bmM7XG5leHBvcnRzLm1hcEFzeW5jID0gbWFwQXN5bmM7XG5cbmZ1bmN0aW9uIGxvb3BBc3luYyh0dXJucywgd29yaywgY2FsbGJhY2spIHtcbiAgdmFyIGN1cnJlbnRUdXJuID0gMCxcbiAgICAgIGlzRG9uZSA9IGZhbHNlO1xuXG4gIGZ1bmN0aW9uIGRvbmUoKSB7XG4gICAgaXNEb25lID0gdHJ1ZTtcbiAgICBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmV4dCgpIHtcbiAgICBpZiAoaXNEb25lKSByZXR1cm47XG5cbiAgICBpZiAoY3VycmVudFR1cm4gPCB0dXJucykge1xuICAgICAgd29yay5jYWxsKHRoaXMsIGN1cnJlbnRUdXJuKyssIG5leHQsIGRvbmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkb25lLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBtYXBBc3luYyhhcnJheSwgd29yaywgY2FsbGJhY2spIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgdmFyIHZhbHVlcyA9IFtdO1xuXG4gIGlmIChsZW5ndGggPT09IDApIHJldHVybiBjYWxsYmFjayhudWxsLCB2YWx1ZXMpO1xuXG4gIHZhciBpc0RvbmUgPSBmYWxzZSxcbiAgICAgIGRvbmVDb3VudCA9IDA7XG5cbiAgZnVuY3Rpb24gZG9uZShpbmRleCwgZXJyb3IsIHZhbHVlKSB7XG4gICAgaWYgKGlzRG9uZSkgcmV0dXJuO1xuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBpc0RvbmUgPSB0cnVlO1xuICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZXNbaW5kZXhdID0gdmFsdWU7XG5cbiAgICAgIGlzRG9uZSA9ICsrZG9uZUNvdW50ID09PSBsZW5ndGg7XG5cbiAgICAgIGlmIChpc0RvbmUpIGNhbGxiYWNrKG51bGwsIHZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcbiAgICB3b3JrKGl0ZW0sIGluZGV4LCBmdW5jdGlvbiAoZXJyb3IsIHZhbHVlKSB7XG4gICAgICBkb25lKGluZGV4LCBlcnJvciwgdmFsdWUpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0FzeW5jVXRpbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 229 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _PatternUtils = __webpack_require__(219);\n\nfunction deepEqual(a, b) {\n if (a == b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return deepEqual(item, b[index]);\n });\n }\n\n if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) === 'object') {\n for (var p in a) {\n if (!a.hasOwnProperty(p)) {\n continue;\n }\n\n if (a[p] === undefined) {\n if (b[p] !== undefined) {\n return false;\n }\n } else if (!b.hasOwnProperty(p)) {\n return false;\n } else if (!deepEqual(a[p], b[p])) {\n return false;\n }\n }\n\n return true;\n }\n\n return String(a) === String(b);\n}\n\nfunction paramsAreActive(paramNames, paramValues, activeParams) {\n // FIXME: This doesn't work on repeated params in activeParams.\n return paramNames.every(function (paramName, index) {\n return String(paramValues[index]) === String(activeParams[paramName]);\n });\n}\n\nfunction getMatchingRouteIndex(pathname, activeRoutes, activeParams) {\n var remainingPathname = pathname,\n paramNames = [],\n paramValues = [];\n\n for (var i = 0, len = activeRoutes.length; i < len; ++i) {\n var route = activeRoutes[i];\n var pattern = route.path || '';\n\n if (pattern.charAt(0) === '/') {\n remainingPathname = pathname;\n paramNames = [];\n paramValues = [];\n }\n\n if (remainingPathname !== null) {\n var matched = _PatternUtils.matchPattern(pattern, remainingPathname);\n remainingPathname = matched.remainingPathname;\n paramNames = [].concat(paramNames, matched.paramNames);\n paramValues = [].concat(paramValues, matched.paramValues);\n }\n\n if (remainingPathname === '' && route.path && paramsAreActive(paramNames, paramValues, activeParams)) return i;\n }\n\n return null;\n}\n\n/**\n * Returns true if the given pathname matches the active routes\n * and params.\n */\nfunction routeIsActive(pathname, routes, params, indexOnly) {\n var i = getMatchingRouteIndex(pathname, routes, params);\n\n if (i === null) {\n // No match.\n return false;\n } else if (!indexOnly) {\n // Any match is good enough.\n return true;\n }\n\n // If any remaining routes past the match index have paths, then we can't\n // be on the index route.\n return routes.slice(i + 1).every(function (route) {\n return !route.path;\n });\n}\n\n/**\n * Returns true if all key/value pairs in the given query are\n * currently active.\n */\nfunction queryIsActive(query, activeQuery) {\n if (activeQuery == null) return query == null;\n\n if (query == null) return true;\n\n return deepEqual(query, activeQuery);\n}\n\n/**\n * Returns true if a <Link> to the given pathname/query combination is\n * currently active.\n */\nfunction isActive(pathname, query, indexOnly, location, routes, params) {\n if (location == null) return false;\n\n if (!routeIsActive(pathname, routes, params, indexOnly)) return false;\n\n return queryIsActive(query, location.query);\n}\n\nexports['default'] = isActive;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2lzQWN0aXZlLmpzPzNjYzQiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfUGF0dGVyblV0aWxzIiwicmVxdWlyZSIsImRlZXBFcXVhbCIsImEiLCJiIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiZXZlcnkiLCJpdGVtIiwiaW5kZXgiLCJwIiwiaGFzT3duUHJvcGVydHkiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJwYXJhbXNBcmVBY3RpdmUiLCJwYXJhbU5hbWVzIiwicGFyYW1WYWx1ZXMiLCJhY3RpdmVQYXJhbXMiLCJwYXJhbU5hbWUiLCJnZXRNYXRjaGluZ1JvdXRlSW5kZXgiLCJwYXRobmFtZSIsImFjdGl2ZVJvdXRlcyIsInJlbWFpbmluZ1BhdGhuYW1lIiwiaSIsImxlbiIsInJvdXRlIiwicGF0dGVybiIsInBhdGgiLCJjaGFyQXQiLCJtYXRjaGVkIiwibWF0Y2hQYXR0ZXJuIiwiY29uY2F0Iiwicm91dGVJc0FjdGl2ZSIsInJvdXRlcyIsInBhcmFtcyIsImluZGV4T25seSIsInNsaWNlIiwicXVlcnlJc0FjdGl2ZSIsInF1ZXJ5IiwiYWN0aXZlUXVlcnkiLCJpc0FjdGl2ZSIsImxvY2F0aW9uIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLGdCQUFnQixtQkFBQUMsQ0FBUSxHQUFSLENBQXBCOztBQUVBLFNBQVNDLFNBQVQsQ0FBbUJDLENBQW5CLEVBQXNCQyxDQUF0QixFQUF5QjtBQUN2QixNQUFJRCxLQUFLQyxDQUFULEVBQVksT0FBTyxJQUFQOztBQUVaLE1BQUlELEtBQUssSUFBTCxJQUFhQyxLQUFLLElBQXRCLEVBQTRCLE9BQU8sS0FBUDs7QUFFNUIsTUFBSUMsTUFBTUMsT0FBTixDQUFjSCxD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Iiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX1BhdHRlcm5VdGlscyA9IHJlcXVpcmUoJy4vUGF0dGVyblV0aWxzJyk7XG5cbmZ1bmN0aW9uIGRlZXBFcXVhbChhLCBiKSB7XG4gIGlmIChhID09IGIpIHJldHVybiB0cnVlO1xuXG4gIGlmIChhID09IG51bGwgfHwgYiA9PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShiKSAmJiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeShmdW5jdGlvbiAoaXRlbSwgaW5kZXgpIHtcbiAgICAgIHJldHVybiBkZWVwRXF1YWwoaXRlbSwgYltpbmRleF0pO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBhID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAodmFyIHAgaW4gYSkge1xuICAgICAgaWYgKCFhLmhhc093blByb3BlcnR5KHApKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoYVtwXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChiW3BdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWIuaGFzT3duUHJvcGVydHkocCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIGlmICghZGVlcEVxdWFsKGFbcF0sIGJbcF0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBTdHJpbmcoYSkgPT09IFN0cmluZyhiKTtcbn1cblxuZnVuY3Rpb24gcGFyYW1zQXJlQWN0aXZlKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBhY3RpdmVQYXJhbXMpIHtcbiAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCB3b3JrIG9uIHJlcGVhdGVkIHBhcmFtcyBpbiBhY3RpdmVQYXJhbXMuXG4gIHJldHVybiBwYXJhbU5hbWVzLmV2ZXJ5KGZ1bmN0aW9uIChwYXJhbU5hbWUsIGluZGV4KSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbVZhbHVlc1tpbmRleF0pID09PSBTdHJpbmcoYWN0aXZlUGFyYW1zW3BhcmFtTmFtZV0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWF0Y2hpbmdSb3V0ZUluZGV4KHBhdGhuYW1lLCBhY3RpdmVSb3V0ZXMsIGFjdGl2ZVBhcmFtcykge1xuICB2YXIgcmVtYWluaW5nUGF0aG5hbWUgPSBwYXRobmFtZSxcbiAgICAgIHBhcmFtTmFtZXMgPSBbXSxcbiAgICAgIHBhcmFtVmFsdWVzID0gW107XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFjdGl2ZVJvdXRlcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIHZhciByb3V0ZSA9IGFjdGl2ZVJvdXRlc1tpXTtcbiAgICB2YXIgcGF0dGVybiA9IHJvdXRlLnBhdGggfHwgJyc7XG5cbiAgICBpZiAocGF0dGVybi5jaGFyQXQoMCkgPT09ICcvJykge1xuICAgICAgcmVtYWluaW5nUGF0aG5hbWUgPSBwYXRobmFtZTtcbiAgICAgIHBhcmFtTmFtZXMgPSBbXTtcbiAgICAgIHBhcmFtVmFsdWVzID0gW107XG4gICAgfVxuXG4gICAgaWYgKHJlbWFpbmluZ1BhdGhuYW1lICE9PSBudWxsKSB7XG4gICAgICB2YXIgbWF0Y2hlZCA9IF9QYXR0ZXJuVXRpbHMubWF0Y2hQYXR0ZXJuKHBhdHRlcm4sIHJlbWFpbmluZ1BhdGhuYW1lKTtcbiAgICAgIHJlbWFpbmluZ1BhdGhuYW1lID0gbWF0Y2hlZC5yZW1haW5pbmdQYXRobmFtZTtcbiAgICAgIHBhcmFtTmFtZXMgPSBbXS5jb25jYXQocGFyYW1OYW1lcywgbWF0Y2hlZC5wYXJhbU5hbWVzKTtcbiAgICAgIHBhcmFtVmFsdWVzID0gW10uY29uY2F0KHBhcmFtVmFsdWVzLCBtYXRjaGVkLnBhcmFtVmFsdWVzKTtcbiAgICB9XG5cbiAgICBpZiAocmVtYWluaW5nUGF0aG5hbWUgPT09ICcnICYmIHJvdXRlLnBhdGggJiYgcGFyYW1zQXJlQWN0aXZlKHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBhY3RpdmVQYXJhbXMpKSByZXR1cm4gaTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gcGF0aG5hbWUgbWF0Y2hlcyB0aGUgYWN0aXZlIHJvdXRlc1xuICogYW5kIHBhcmFtcy5cbiAqL1xuZnVuY3Rpb24gcm91dGVJc0FjdGl2ZShwYXRobmFtZSwgcm91dGVzLCBwYXJhbXMsIGluZGV4T25seSkge1xuICB2YXIgaSA9IGdldE1hdGNoaW5nUm91dGVJbmRleChwYXRobmFtZSwgcm91dGVzLCBwYXJhbXMpO1xuXG4gIGlmIChpID09PSBudWxsKSB7XG4gICAgLy8gTm8gbWF0Y2guXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGVsc2UgaWYgKCFpbmRleE9ubHkpIHtcbiAgICAvLyBBbnkgbWF0Y2ggaXMgZ29vZCBlbm91Z2guXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBJZiBhbnkgcmVtYWluaW5nIHJvdXRlcyBwYXN0IHRoZSBtYXRjaCBpbmRleCBoYXZlIHBhdGhzLCB0aGVuIHdlIGNhbid0XG4gIC8vIGJlIG9uIHRoZSBpbmRleCByb3V0ZS5cbiAgcmV0dXJuIHJvdXRlcy5zbGljZShpICsgMSkuZXZlcnkoZnVuY3Rpb24gKHJvdXRlKSB7XG4gICAgcmV0dXJuICFyb3V0ZS5wYXRoO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgYWxsIGtleS92YWx1ZSBwYWlycyBpbiB0aGUgZ2l2ZW4gcXVlcnkgYXJlXG4gKiBjdXJyZW50bHkgYWN0aXZlLlxuICovXG5mdW5jdGlvbiBxdWVyeUlzQWN0aXZlKHF1ZXJ5LCBhY3RpdmVRdWVyeSkge1xuICBpZiAoYWN0aXZlUXVlcnkgPT0gbnVsbCkgcmV0dXJuIHF1ZXJ5ID09IG51bGw7XG5cbiAgaWYgKHF1ZXJ5ID09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gIHJldHVybiBkZWVwRXF1YWwocXVlcnksIGFjdGl2ZVF1ZXJ5KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgYSA8TGluaz4gdG8gdGhlIGdpdmVuIHBhdGhuYW1lL3F1ZXJ5IGNvbWJpbmF0aW9uIGlzXG4gKiBjdXJyZW50bHkgYWN0aXZlLlxuICovXG5mdW5jdGlvbiBpc0FjdGl2ZShwYXRobmFtZSwgcXVlcnksIGluZGV4T25seSwgbG9jYXRpb24sIHJvdXRlcywgcGFyYW1zKSB7XG4gIGlmIChsb2NhdGlvbiA9PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKCFyb3V0ZUlzQWN0aXZlKHBhdGhuYW1lLCByb3V0ZXMsIHBhcmFtcywgaW5kZXhPbmx5KSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBxdWVyeUlzQWN0aXZlKHF1ZXJ5LCBsb2NhdGlvbi5xdWVyeSk7XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGlzQWN0aXZlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9pc0FjdGl2ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 230 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _AsyncUtils = __webpack_require__(228);\n\nfunction getComponentsForRoute(location, route, callback) {\n if (route.component || route.components) {\n callback(null, route.component || route.components);\n } else if (route.getComponent) {\n route.getComponent(location, callback);\n } else if (route.getComponents) {\n route.getComponents(location, callback);\n } else {\n callback();\n }\n}\n\n/**\n * Asynchronously fetches all components needed for the given router\n * state and calls callback(error, components) when finished.\n *\n * Note: This operation may finish synchronously if no routes have an\n * asynchronous getComponents method.\n */\nfunction getComponents(nextState, callback) {\n _AsyncUtils.mapAsync(nextState.routes, function (route, index, callback) {\n getComponentsForRoute(nextState.location, route, callback);\n }, callback);\n}\n\nexports['default'] = getComponents;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL2dldENvbXBvbmVudHMuanM/ZjU2ZSJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9Bc3luY1V0aWxzIiwicmVxdWlyZSIsImdldENvbXBvbmVudHNGb3JSb3V0ZSIsImxvY2F0aW9uIiwicm91dGUiLCJjYWxsYmFjayIsImNvbXBvbmVudCIsImNvbXBvbmVudHMiLCJnZXRDb21wb25lbnQiLCJnZXRDb21wb25lbnRzIiwibmV4dFN0YXRlIiwibWFwQXN5bmMiLCJyb3V0ZXMiLCJpbmRleCIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsY0FBYyxtQkFBQUMsQ0FBUSxHQUFSLENBQWxCOztBQUVBLFNBQVNDLHFCQUFULENBQStCQyxRQUEvQixFQUF5Q0MsS0FBekMsRUFBZ0RDLFFBQWhELEVBQTBEO0FBQ3hELE1BQUlELE1BQU1FLFNBQU4sSUFBbUJGLE1BQU1HLFVBQTdCLEVBQXlDO0FBQ3ZDRixhQUFTLElBQVQsRUFBZUQsTUFBTUUsU0FBTixJQUFtQkYsTUFBTUcsVUFBeEM7QUFDRCxHQUZELE1BRU8sSUFBSUgsTUFBTUksWUFBVixFQUF3QjtBQUM3QkosVUFBTUksWUFBTixDQUFtQkwsUUFBbkIsRUFBNkJFLFFBQTdCO0FBQ0QsR0FGTSxNQUVBLElBQUlELE1BQU1LLGFBQVYsRUFBeUI7QUFDOUJMLFVBQU1LLGFBQU4sQ0FBb0JOLFFBQXBCLEVBQThCRSxRQUE5QjtBQUNELEdBRk0sTUFFQTtBQUNMQTtBQUNEO0FBQ0Y7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTSSxhQUFULENBQXVCQyxTQUF2QixFQUFrQ0wsUUFBbEMsRUFBNEM7QUFDMUNMLGNBQVlXLFFBQVosQ0FBcUJELFVBQVVFLE1BQS9CLEVBQXVDLFVBQVVSLEtBQVYsRUFBaUJTLEtBQWpCLEVBQXdCUixRQUF4QixFQUFrQztBQUN2RUgsMEJBQXNCUSxVQUFVUCxRQUFoQyxFQUEwQ0MsS0FBMUMsRUFBaURDLFFBQWpEO0FBQ0QsR0FGRCxFQUVHQSxRQUZIO0FBR0Q7O0FBRURQLFFBQVEsU0FBUixJQUFxQlcsYUFBckI7QUFDQUssT0FBT2hCLE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQiIsImZpbGUiOiIyMzAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfQXN5bmNVdGlscyA9IHJlcXVpcmUoJy4vQXN5bmNVdGlscycpO1xuXG5mdW5jdGlvbiBnZXRDb21wb25lbnRzRm9yUm91dGUobG9jYXRpb24sIHJvdXRlLCBjYWxsYmFjaykge1xuICBpZiAocm91dGUuY29tcG9uZW50IHx8IHJvdXRlLmNvbXBvbmVudHMpIHtcbiAgICBjYWxsYmFjayhudWxsLCByb3V0ZS5jb21wb25lbnQgfHwgcm91dGUuY29tcG9uZW50cyk7XG4gIH0gZWxzZSBpZiAocm91dGUuZ2V0Q29tcG9uZW50KSB7XG4gICAgcm91dGUuZ2V0Q29tcG9uZW50KGxvY2F0aW9uLCBjYWxsYmFjayk7XG4gIH0gZWxzZSBpZiAocm91dGUuZ2V0Q29tcG9uZW50cykge1xuICAgIHJvdXRlLmdldENvbXBvbmVudHMobG9jYXRpb24sIGNhbGxiYWNrKTtcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59XG5cbi8qKlxuICogQXN5bmNocm9ub3VzbHkgZmV0Y2hlcyBhbGwgY29tcG9uZW50cyBuZWVkZWQgZm9yIHRoZSBnaXZlbiByb3V0ZXJcbiAqIHN0YXRlIGFuZCBjYWxscyBjYWxsYmFjayhlcnJvciwgY29tcG9uZW50cykgd2hlbiBmaW5pc2hlZC5cbiAqXG4gKiBOb3RlOiBUaGlzIG9wZXJhdGlvbiBtYXkgZmluaXNoIHN5bmNocm9ub3VzbHkgaWYgbm8gcm91dGVzIGhhdmUgYW5cbiAqIGFzeW5jaHJvbm91cyBnZXRDb21wb25lbnRzIG1ldGhvZC5cbiAqL1xuZnVuY3Rpb24gZ2V0Q29tcG9uZW50cyhuZXh0U3RhdGUsIGNhbGxiYWNrKSB7XG4gIF9Bc3luY1V0aWxzLm1hcEFzeW5jKG5leHRTdGF0ZS5yb3V0ZXMsIGZ1bmN0aW9uIChyb3V0ZSwgaW5kZXgsIGNhbGxiYWNrKSB7XG4gICAgZ2V0Q29tcG9uZW50c0ZvclJvdXRlKG5leHRTdGF0ZS5sb2NhdGlvbiwgcm91dGUsIGNhbGxiYWNrKTtcbiAgfSwgY2FsbGJhY2spO1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSBnZXRDb21wb25lbnRzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9nZXRDb21wb25lbnRzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 231 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _AsyncUtils = __webpack_require__(228);\n\nvar _PatternUtils = __webpack_require__(219);\n\nvar _RouteUtils = __webpack_require__(216);\n\nfunction getChildRoutes(route, location, callback) {\n if (route.childRoutes) {\n callback(null, route.childRoutes);\n } else if (route.getChildRoutes) {\n route.getChildRoutes(location, function (error, childRoutes) {\n callback(error, !error && _RouteUtils.createRoutes(childRoutes));\n });\n } else {\n callback();\n }\n}\n\nfunction getIndexRoute(route, location, callback) {\n if (route.indexRoute) {\n callback(null, route.indexRoute);\n } else if (route.getIndexRoute) {\n route.getIndexRoute(location, function (error, indexRoute) {\n callback(error, !error && _RouteUtils.createRoutes(indexRoute)[0]);\n });\n } else if (route.childRoutes) {\n (function () {\n var pathless = route.childRoutes.filter(function (obj) {\n return !obj.hasOwnProperty('path');\n });\n\n _AsyncUtils.loopAsync(pathless.length, function (index, next, done) {\n getIndexRoute(pathless[index], location, function (error, indexRoute) {\n if (error || indexRoute) {\n var routes = [pathless[index]].concat(Array.isArray(indexRoute) ? indexRoute : [indexRoute]);\n done(error, routes);\n } else {\n next();\n }\n });\n }, function (err, routes) {\n callback(null, routes);\n });\n })();\n } else {\n callback();\n }\n}\n\nfunction assignParams(params, paramNames, paramValues) {\n return paramNames.reduce(function (params, paramName, index) {\n var paramValue = paramValues && paramValues[index];\n\n if (Array.isArray(params[paramName])) {\n params[paramName].push(paramValue);\n } else if (paramName in params) {\n params[paramName] = [params[paramName], paramValue];\n } else {\n params[paramName] = paramValue;\n }\n\n return params;\n }, params);\n}\n\nfunction createParams(paramNames, paramValues) {\n return assignParams({}, paramNames, paramValues);\n}\n\nfunction matchRouteDeep(route, location, remainingPathname, paramNames, paramValues, callback) {\n var pattern = route.path || '';\n\n if (pattern.charAt(0) === '/') {\n remainingPathname = location.pathname;\n paramNames = [];\n paramValues = [];\n }\n\n if (remainingPathname !== null) {\n var matched = _PatternUtils.matchPattern(pattern, remainingPathname);\n remainingPathname = matched.remainingPathname;\n paramNames = [].concat(paramNames, matched.paramNames);\n paramValues = [].concat(paramValues, matched.paramValues);\n\n if (remainingPathname === '' && route.path) {\n var _ret2 = function () {\n var match = {\n routes: [route],\n params: createParams(paramNames, paramValues)\n };\n\n getIndexRoute(route, location, function (error, indexRoute) {\n if (error) {\n callback(error);\n } else {\n if (Array.isArray(indexRoute)) {\n var _match$routes;\n\n process.env.NODE_ENV !== 'production' ? _warning2['default'](indexRoute.every(function (route) {\n return !route.path;\n }), 'Index routes should not have paths') : undefined;\n (_match$routes = match.routes).push.apply(_match$routes, indexRoute);\n } else if (indexRoute) {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](!indexRoute.path, 'Index routes should not have paths') : undefined;\n match.routes.push(indexRoute);\n }\n\n callback(null, match);\n }\n });\n return {\n v: undefined\n };\n }();\n\n if ((typeof _ret2 === 'undefined' ? 'undefined' : _typeof(_ret2)) === 'object') return _ret2.v;\n }\n }\n\n if (remainingPathname != null || route.childRoutes) {\n // Either a) this route matched at least some of the path or b)\n // we don't have to load this route's children asynchronously. In\n // either case continue checking for matches in the subtree.\n getChildRoutes(route, location, function (error, childRoutes) {\n if (error) {\n callback(error);\n } else if (childRoutes) {\n // Check the child routes to see if any of them match.\n matchRoutes(childRoutes, location, function (error, match) {\n if (error) {\n callback(error);\n } else if (match) {\n // A child route matched! Augment the match and pass it up the stack.\n match.routes.unshift(route);\n callback(null, match);\n } else {\n callback();\n }\n }, remainingPathname, paramNames, paramValues);\n } else {\n callback();\n }\n });\n } else {\n callback();\n }\n}\n\n/**\n * Asynchronously matches the given location to a set of routes and calls\n * callback(error, state) when finished. The state object will have the\n * following properties:\n *\n * - routes An array of routes that matched, in hierarchical order\n * - params An object of URL parameters\n *\n * Note: This operation may finish synchronously if no routes have an\n * asynchronous getChildRoutes method.\n */\nfunction matchRoutes(routes, location, callback) {\n var remainingPathname = arguments.length <= 3 || arguments[3] === undefined ? location.pathname : arguments[3];\n var paramNames = arguments.length <= 4 || arguments[4] === undefined ? [] : arguments[4];\n var paramValues = arguments.length <= 5 || arguments[5] === undefined ? [] : arguments[5];\n return function () {\n _AsyncUtils.loopAsync(routes.length, function (index, next, done) {\n matchRouteDeep(routes[index], location, remainingPathname, paramNames, paramValues, function (error, match) {\n if (error || match) {\n done(error, match);\n } else {\n next();\n }\n });\n }, callback);\n }();\n}\n\nexports['default'] = matchRoutes;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL21hdGNoUm91dGVzLmpzPzJhZTciXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX3dhcm5pbmciLCJyZXF1aXJlIiwiX3dhcm5pbmcyIiwiX0FzeW5jVXRpbHMiLCJfUGF0dGVyblV0aWxzIiwiX1JvdXRlVXRpbHMiLCJnZXRDaGlsZFJvdXRlcyIsInJvdXRlIiwibG9jYXRpb24iLCJjYWxsYmFjayIsImNoaWxkUm91dGVzIiwiZXJyb3IiLCJjcmVhdGVSb3V0ZXMiLCJnZXRJbmRleFJvdXRlIiwiaW5kZXhSb3V0ZSIsInBhdGhsZXNzIiwiZmlsdGVyIiwiaGFzT3duUHJvcGVydHkiLCJsb29wQXN5bmMiLCJsZW5ndGgiLCJpbmRleCIsIm5leHQiLCJkb25lIiwicm91dGVzIiwiY29uY2F0IiwiQXJyYXkiLCJpc0FycmF5IiwiZXJyIiwiYXNzaWduUGFyYW1zIiwicGFyYW1zIiwicGFyYW1OYW1lcyIsInBhcmFtVmFsdWVzIiwicmVkdWNlIiwicGFyYW1OYW1lIiwicGFyYW1WYWx1ZSIsInB1c2giLCJjcmVhdGVQYXJhbXMiLCJtYXRjaFJvdXRlRGVlcCIsInJlbWFpbmluZ1BhdGhuYW1lIiwicGF0dGVybiIsInBhdGgiLCJjaGFyQXQiLCJwYXRobmFtZSIsIm1hdGNoZWQiLCJtYXRjaFBhdHRlcm4iLCJfcmV0MiIsIm1hdGNoIiwiX21hdGNoJHJvdXRlcyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImV2ZXJ5IiwidW5kZWZpbmVkIiwiYXBwbHkiLCJ2IiwibWF0Y2hSb3V0ZXMiLCJ1bnNoaWZ0IiwiYXJndW1lbnRzIiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLFNB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U2tDLFFBQS9ELEdBQTBFZSxVQUFVLENBQVYsQ0FBbEc7QUFDQSxNQUFJM0IsYUFBYTJCLFVBQVV0QyxNQUFWLElBQW9CLENBQXBCLElBQXlCc0MsVUFBVSxDQUFWLE1BQWlCTCxTQUExQyxHQUFzRCxFQUF0RCxHQUEyREssVUFBVSxDQUFWLENBQTVFO0FBQ0EsTUFBSTFCLGNBQWMwQixVQUFVdEMsTUFBVixJQUFvQixDQUFwQixJQUF5QnNDLFVBQVUsQ0FBVixNQUFpQkwsU0FBMUMsR0FBc0QsRUFBdEQsR0FBMkRLLFVBQVUsQ0FBVixDQUE3RTtBQUNBLFNBQVEsWUFBWTtBQUNsQnRELGdCQUFZZSxTQUFaLENBQXNCSyxPQUFPSixNQUE3QixFQUFxQyxVQUFVQyxLQUFWLEVBQWlCQyxJQUFqQixFQUF1QkMsSUFBdkIsRUFBNkI7QUFDaEVlLHFCQUFlZCxPQUFPSCxLQUFQLENBQWYsRUFBOEJaLFFBQTlCLEVBQXdDOEIsaUJBQXhDLEVBQTJEUixVQUEzRCxFQUF1RUMsV0FBdkUsRUFBb0YsVUFBVXBCLEtBQVYsRUFBaUJtQyxLQUFqQixFQUF3QjtBQUMxRyxZQUFJbkMsU0FBU21DLEtBQWIsRUFBb0I7QUFDbEJ4QixlQUFLWCxLQUFMLEVBQVltQyxLQUFaO0FBQ0QsU0FGRCxNQUVPO0FBQ0x6QjtBQUNEO0FBQ0YsT0FORDtBQU9ELEtBUkQsRUFRR1osUUFSSDtBQVNELEdBVk0sRUFBUDtBQVdEOztBQUVEYixRQUFRLFNBQVIsSUFBcUIyRCxXQUFyQjtBQUNBRyxPQUFPOUQsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCLEMiLCJmaWxlIjoiMjMxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG52YXIgX0FzeW5jVXRpbHMgPSByZXF1aXJlKCcuL0FzeW5jVXRpbHMnKTtcblxudmFyIF9QYXR0ZXJuVXRpbHMgPSByZXF1aXJlKCcuL1BhdHRlcm5VdGlscycpO1xuXG52YXIgX1JvdXRlVXRpbHMgPSByZXF1aXJlKCcuL1JvdXRlVXRpbHMnKTtcblxuZnVuY3Rpb24gZ2V0Q2hpbGRSb3V0ZXMocm91dGUsIGxvY2F0aW9uLCBjYWxsYmFjaykge1xuICBpZiAocm91dGUuY2hpbGRSb3V0ZXMpIHtcbiAgICBjYWxsYmFjayhudWxsLCByb3V0ZS5jaGlsZFJvdXRlcyk7XG4gIH0gZWxzZSBpZiAocm91dGUuZ2V0Q2hpbGRSb3V0ZXMpIHtcbiAgICByb3V0ZS5nZXRDaGlsZFJvdXRlcyhsb2NhdGlvbiwgZnVuY3Rpb24gKGVycm9yLCBjaGlsZFJvdXRlcykge1xuICAgICAgY2FsbGJhY2soZXJyb3IsICFlcnJvciAmJiBfUm91dGVVdGlscy5jcmVhdGVSb3V0ZXMoY2hpbGRSb3V0ZXMpKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEluZGV4Um91dGUocm91dGUsIGxvY2F0aW9uLCBjYWxsYmFjaykge1xuICBpZiAocm91dGUuaW5kZXhSb3V0ZSkge1xuICAgIGNhbGxiYWNrKG51bGwsIHJvdXRlLmluZGV4Um91dGUpO1xuICB9IGVsc2UgaWYgKHJvdXRlLmdldEluZGV4Um91dGUpIHtcbiAgICByb3V0ZS5nZXRJbmRleFJvdXRlKGxvY2F0aW9uLCBmdW5jdGlvbiAoZXJyb3IsIGluZGV4Um91dGUpIHtcbiAgICAgIGNhbGxiYWNrKGVycm9yLCAhZXJyb3IgJiYgX1JvdXRlVXRpbHMuY3JlYXRlUm91dGVzKGluZGV4Um91dGUpWzBdKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChyb3V0ZS5jaGlsZFJvdXRlcykge1xuICAgIChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcGF0aGxlc3MgPSByb3V0ZS5jaGlsZFJvdXRlcy5maWx0ZXIoZnVuY3Rpb24gKG9iaikge1xuICAgICAgICByZXR1cm4gIW9iai5oYXNPd25Qcm9wZXJ0eSgncGF0aCcpO1xuICAgICAgfSk7XG5cbiAgICAgIF9Bc3luY1V0aWxzLmxvb3BBc3luYyhwYXRobGVzcy5sZW5ndGgsIGZ1bmN0aW9uIChpbmRleCwgbmV4dCwgZG9uZSkge1xuICAgICAgICBnZXRJbmRleFJvdXRlKHBhdGhsZXNzW2luZGV4XSwgbG9jYXRpb24sIGZ1bmN0aW9uIChlcnJvciwgaW5kZXhSb3V0ZSkge1xuICAgICAgICAgIGlmIChlcnJvciB8fCBpbmRleFJvdXRlKSB7XG4gICAgICAgICAgICB2YXIgcm91dGVzID0gW3BhdGhsZXNzW2luZGV4XV0uY29uY2F0KEFycmF5LmlzQXJyYXkoaW5kZXhSb3V0ZSkgPyBpbmRleFJvdXRlIDogW2luZGV4Um91dGVdKTtcbiAgICAgICAgICAgIGRvbmUoZXJyb3IsIHJvdXRlcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSwgZnVuY3Rpb24gKGVyciwgcm91dGVzKSB7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIHJvdXRlcyk7XG4gICAgICB9KTtcbiAgICB9KSgpO1xuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzaWduUGFyYW1zKHBhcmFtcywgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpIHtcbiAgcmV0dXJuIHBhcmFtTmFtZXMucmVkdWNlKGZ1bmN0aW9uIChwYXJhbXMsIHBhcmFtTmFtZSwgaW5kZXgpIHtcbiAgICB2YXIgcGFyYW1WYWx1ZSA9IHBhcmFtVmFsdWVzICYmIHBhcmFtVmFsdWVzW2luZGV4XTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtc1twYXJhbU5hbWVdKSkge1xuICAgICAgcGFyYW1zW3BhcmFtTmFtZV0ucHVzaChwYXJhbVZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtTmFtZSBpbiBwYXJhbXMpIHtcbiAgICAgIHBhcmFtc1twYXJhbU5hbWVdID0gW3BhcmFtc1twYXJhbU5hbWVdLCBwYXJhbVZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zW3BhcmFtTmFtZV0gPSBwYXJhbVZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH0sIHBhcmFtcyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtcyhwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcykge1xuICByZXR1cm4gYXNzaWduUGFyYW1zKHt9LCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUm91dGVEZWVwKHJvdXRlLCBsb2NhdGlvbiwgcmVtYWluaW5nUGF0aG5hbWUsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBjYWxsYmFjaykge1xuICB2YXIgcGF0dGVybiA9IHJvdXRlLnBhdGggfHwgJyc7XG5cbiAgaWYgKHBhdHRlcm4uY2hhckF0KDApID09PSAnLycpIHtcbiAgICByZW1haW5pbmdQYXRobmFtZSA9IGxvY2F0aW9uLnBhdGhuYW1lO1xuICAgIHBhcmFtTmFtZXMgPSBbXTtcbiAgICBwYXJhbVZhbHVlcyA9IFtdO1xuICB9XG5cbiAgaWYgKHJlbWFpbmluZ1BhdGhuYW1lICE9PSBudWxsKSB7XG4gICAgdmFyIG1hdGNoZWQgPSBfUGF0dGVyblV0aWxzLm1hdGNoUGF0dGVybihwYXR0ZXJuLCByZW1haW5pbmdQYXRobmFtZSk7XG4gICAgcmVtYWluaW5nUGF0aG5hbWUgPSBtYXRjaGVkLnJlbWFpbmluZ1BhdGhuYW1lO1xuICAgIHBhcmFtTmFtZXMgPSBbXS5jb25jYXQocGFyYW1OYW1lcywgbWF0Y2hlZC5wYXJhbU5hbWVzKTtcbiAgICBwYXJhbVZhbHVlcyA9IFtdLmNvbmNhdChwYXJhbVZhbHVlcywgbWF0Y2hlZC5wYXJhbVZhbHVlcyk7XG5cbiAgICBpZiAocmVtYWluaW5nUGF0aG5hbWUgPT09ICcnICYmIHJvdXRlLnBhdGgpIHtcbiAgICAgIHZhciBfcmV0MiA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHtcbiAgICAgICAgICByb3V0ZXM6IFtyb3V0ZV0sXG4gICAgICAgICAgcGFyYW1zOiBjcmVhdGVQYXJhbXMocGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpXG4gICAgICAgIH07XG5cbiAgICAgICAgZ2V0SW5kZXhSb3V0ZShyb3V0ZSwgbG9jYXRpb24sIGZ1bmN0aW9uIChlcnJvciwgaW5kZXhSb3V0ZSkge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpbmRleFJvdXRlKSkge1xuICAgICAgICAgICAgICB2YXIgX21hdGNoJHJvdXRlcztcblxuICAgICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oaW5kZXhSb3V0ZS5ldmVyeShmdW5jdGlvbiAocm91dGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXJvdXRlLnBhdGg7XG4gICAgICAgICAgICAgIH0pLCAnSW5kZXggcm91dGVzIHNob3VsZCBub3QgaGF2ZSBwYXRocycpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAoX21hdGNoJHJvdXRlcyA9IG1hdGNoLnJvdXRlcykucHVzaC5hcHBseShfbWF0Y2gkcm91dGVzLCBpbmRleFJvdXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXhSb3V0ZSkge1xuICAgICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oIWluZGV4Um91dGUucGF0aCwgJ0luZGV4IHJvdXRlcyBzaG91bGQgbm90IGhhdmUgcGF0aHMnKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgbWF0Y2gucm91dGVzLnB1c2goaW5kZXhSb3V0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIG1hdGNoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHY6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgICAgfSkoKTtcblxuICAgICAgaWYgKHR5cGVvZiBfcmV0MiA9PT0gJ29iamVjdCcpIHJldHVybiBfcmV0Mi52O1xuICAgIH1cbiAgfVxuXG4gIGlmIChyZW1haW5pbmdQYXRobmFtZSAhPSBudWxsIHx8IHJvdXRlLmNoaWxkUm91dGVzKSB7XG4gICAgLy8gRWl0aGVyIGEpIHRoaXMgcm91dGUgbWF0Y2hlZCBhdCBsZWFzdCBzb21lIG9mIHRoZSBwYXRoIG9yIGIpXG4gICAgLy8gd2UgZG9uJ3QgaGF2ZSB0byBsb2FkIHRoaXMgcm91dGUncyBjaGlsZHJlbiBhc3luY2hyb25vdXNseS4gSW5cbiAgICAvLyBlaXRoZXIgY2FzZSBjb250aW51ZSBjaGVja2luZyBmb3IgbWF0Y2hlcyBpbiB0aGUgc3VidHJlZS5cbiAgICBnZXRDaGlsZFJvdXRlcyhyb3V0ZSwgbG9jYXRpb24sIGZ1bmN0aW9uIChlcnJvciwgY2hpbGRSb3V0ZXMpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICBjYWxsYmFjayhlcnJvcik7XG4gICAgICB9IGVsc2UgaWYgKGNoaWxkUm91dGVzKSB7XG4gICAgICAgIC8vIENoZWNrIHRoZSBjaGlsZCByb3V0ZXMgdG8gc2VlIGlmIGFueSBvZiB0aGVtIG1hdGNoLlxuICAgICAgICBtYXRjaFJvdXRlcyhjaGlsZFJvdXRlcywgbG9jYXRpb24sIGZ1bmN0aW9uIChlcnJvciwgbWF0Y2gpIHtcbiAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICAvLyBBIGNoaWxkIHJvdXRlIG1hdGNoZWQhIEF1Z21lbnQgdGhlIG1hdGNoIGFuZCBwYXNzIGl0IHVwIHRoZSBzdGFjay5cbiAgICAgICAgICAgIG1hdGNoLnJvdXRlcy51bnNoaWZ0KHJvdXRlKTtcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIG1hdGNoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHJlbWFpbmluZ1BhdGhuYW1lLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBc3luY2hyb25vdXNseSBtYXRjaGVzIHRoZSBnaXZlbiBsb2NhdGlvbiB0byBhIHNldCBvZiByb3V0ZXMgYW5kIGNhbGxzXG4gKiBjYWxsYmFjayhlcnJvciwgc3RhdGUpIHdoZW4gZmluaXNoZWQuIFRoZSBzdGF0ZSBvYmplY3Qgd2lsbCBoYXZlIHRoZVxuICogZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogLSByb3V0ZXMgICAgICAgQW4gYXJyYXkgb2Ygcm91dGVzIHRoYXQgbWF0Y2hlZCwgaW4gaGllcmFyY2hpY2FsIG9yZGVyXG4gKiAtIHBhcmFtcyAgICAgICBBbiBvYmplY3Qgb2YgVVJMIHBhcmFtZXRlcnNcbiAqXG4gKiBOb3RlOiBUaGlzIG9wZXJhdGlvbiBtYXkgZmluaXNoIHN5bmNocm9ub3VzbHkgaWYgbm8gcm91dGVzIGhhdmUgYW5cbiAqIGFzeW5jaHJvbm91cyBnZXRDaGlsZFJvdXRlcyBtZXRob2QuXG4gKi9cbmZ1bmN0aW9uIG1hdGNoUm91dGVzKHJvdXRlcywgbG9jYXRpb24sIGNhbGxiYWNrKSB7XG4gIHZhciByZW1haW5pbmdQYXRobmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMyB8fCBhcmd1bWVudHNbM10gPT09IHVuZGVmaW5lZCA/IGxvY2F0aW9uLnBhdGhuYW1lIDogYXJndW1lbnRzWzNdO1xuICB2YXIgcGFyYW1OYW1lcyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gNCB8fCBhcmd1bWVudHNbNF0gPT09IHVuZGVmaW5lZCA/IFtdIDogYXJndW1lbnRzWzRdO1xuICB2YXIgcGFyYW1WYWx1ZXMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDUgfHwgYXJndW1lbnRzWzVdID09PSB1bmRlZmluZWQgPyBbXSA6IGFyZ3VtZW50c1s1XTtcbiAgcmV0dXJuIChmdW5jdGlvbiAoKSB7XG4gICAgX0FzeW5jVXRpbHMubG9vcEFzeW5jKHJvdXRlcy5sZW5ndGgsIGZ1bmN0aW9uIChpbmRleCwgbmV4dCwgZG9uZSkge1xuICAgICAgbWF0Y2hSb3V0ZURlZXAocm91dGVzW2luZGV4XSwgbG9jYXRpb24sIHJlbWFpbmluZ1BhdGhuYW1lLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcywgZnVuY3Rpb24gKGVycm9yLCBtYXRjaCkge1xuICAgICAgICBpZiAoZXJyb3IgfHwgbWF0Y2gpIHtcbiAgICAgICAgICBkb25lKGVycm9yLCBtYXRjaCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBjYWxsYmFjayk7XG4gIH0pKCk7XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IG1hdGNoUm91dGVzO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9tYXRjaFJvdXRlcy5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 232 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\nexports.falsy = falsy;\n\nvar _react = __webpack_require__(1);\n\nvar func = _react.PropTypes.func;\nvar object = _react.PropTypes.object;\nvar arrayOf = _react.PropTypes.arrayOf;\nvar oneOfType = _react.PropTypes.oneOfType;\nvar element = _react.PropTypes.element;\nvar shape = _react.PropTypes.shape;\nvar string = _react.PropTypes.string;\n\nfunction falsy(props, propName, componentName) {\n if (props[propName]) return new Error('<' + componentName + '> should not have a \"' + propName + '\" prop');\n}\n\nvar history = shape({\n listen: func.isRequired,\n pushState: func.isRequired,\n replaceState: func.isRequired,\n go: func.isRequired\n});\n\nexports.history = history;\nvar location = shape({\n pathname: string.isRequired,\n search: string.isRequired,\n state: object,\n action: string.isRequired,\n key: string\n});\n\nexports.location = location;\nvar component = oneOfType([func, string]);\nexports.component = component;\nvar components = oneOfType([component, object]);\nexports.components = components;\nvar route = oneOfType([object, element]);\nexports.route = route;\nvar routes = oneOfType([route, arrayOf(route)]);\n\nexports.routes = routes;\nexports['default'] = {\n falsy: falsy,\n history: history,\n location: location,\n component: component,\n components: components,\n route: route\n};//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1Byb3BUeXBlcy5qcz8wMDNhIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiZmFsc3kiLCJfcmVhY3QiLCJyZXF1aXJlIiwiZnVuYyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImFycmF5T2YiLCJvbmVPZlR5cGUiLCJlbGVtZW50Iiwic2hhcGUiLCJzdHJpbmciLCJwcm9wcyIsInByb3BOYW1lIiwiY29tcG9uZW50TmFtZSIsIkVycm9yIiwiaGlzdG9yeSIsImxpc3RlbiIsImlzUmVxdWlyZWQiLCJwdXNoU3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJnbyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJzZWFyY2giLCJzdGF0ZSIsImFjdGlvbiIsImtleSIsImNvbXBvbmVudCIsImNvbXBvbmVudHMiLCJyb3V0ZSIsInJvdXRlcyJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7QUFDQUQsUUFBUUUsS0FBUixHQUFnQkEsS0FBaEI7O0FBRUEsSUFBSUMsU0FBUyxtQkFBQUMsQ0FBUSxDQUFSLENBQWI7O0FBRUEsSUFBSUMsT0FBT0YsT0FBT0csU0FBUCxDQUFpQkQsSUFBNUI7QUFDQSxJQUFJRSxTQUFTSixPQUFPRyxTQUFQLENBQWlCQyxNQUE5QjtBQUNBLElBQUlDLFVBQVVMLE9BQU9HLFNBQVAsQ0FBaUJFLE9BQS9CO0FBQ0EsSUFBSUMsWUFBWU4sT0FBT0csU0FBUCxDQUFpQkcsU0FBakM7QUFDQSxJQUFJQyxVQUFVUCxPQUFPRyxTQUFQLENBQWlCSSxPQUEvQjtBQUNBLElBQUlDLFFBQVFSLE9BQU9HLFNBQVAsQ0FBaUJLLEtBQTdCO0FBQ0EsSUFBSUMsU0FBU1QsT0FBT0csU0FBUCxDQUFpQk0sTUFBOUI7O0FBRUEsU0FBU1YsS0FBVCxDQUFlVyxLQUFmLEVBQXNCQyxRQUF0QixFQUFnQ0MsYUFBaEMsRUFBK0M7QUFDN0MsTUFBSUYsTUFBTUMsUUFBTixDQUFKLEVBQXFCLE9BQU8sSUFBSUUsS0FBSixDQUFVLE1BQU1ELGFBQU4sR0FBc0IsdUJBQXRCLEdBQWdERCxRQUFoRCxHQUEyRCxRQUFyRSxDQUFQO0FBQ3RCOztBQUVELElBQUlHLFVBQVVOLE1BQU07QUFDbEJPLFVBQVFiLEtBQUtjLFVBREs7QUFFbEJDLGFBQVdmLEtBQUtjLFVBRkU7QUFHbEJFLGdCQUFjaEIsS0FBS2MsVUFIRDtBQUlsQkcsTUFBSWpCLEtBQUtjO0FBSlMsQ0FBTixDQUFkOztBQU9BbkIsUUFBUWlCLE9BQVIsR0FBa0JBLE9BQWxCO0FBQ0EsSUFBSU0sV0FBV1osTUFBTTtBQUNuQmEsWUFBVVosT0FBT08sVUFERTtBQUVuQk0sVUFBUWIsT0FBT08sVUFGSTtBQUduQk8sU0FBT25CLE1BSFk7QUFJbkJvQixVQUFRZixPQUFPTyxVQUpJO0FBS25CUyxPQUFLaEI7QUFMYyxDQUFOLENBQWY7O0FBUUFaLFFBQVF1QixRQUFSLEdBQW1CQSxRQUFuQjtBQUNBLElBQUlNLFlBQVlwQixVQUFVLENBQUNKLElBQUQsRUFBT08sTUFBUCxDQUFWLENBQWhCO0FBQ0FaLFFBQVE2QixTQUFSLEdBQW9CQSxTQUFwQjtBQUNBLElBQUlDLGFBQWFyQixVQUFVLENBQUNvQixTQUFELEVBQVl0QixNQUFaLENBQVYsQ0FBakI7QUFDQVAsUUFBUThCLFVBQVIsR0FBcUJBLFVBQXJCO0FBQ0EsSUFBSUMsUUFBUXRCLFVBQVUsQ0FBQ0YsTUFBRCxFQUFTRyxPQUFULENBQVYsQ0FBWjtBQUNBVixRQUFRK0IsS0FBUixHQUFnQkEsS0FBaEI7QUFDQSxJQUFJQyxTQUFTdkIsVUFBVSxDQUFDc0IsS0FBRCxFQUFRdkIsUUFBUXVCLEtBQVIsQ0FBUixDQUFWLENBQWI7O0FBRUEvQixRQUFRZ0MsTUFBUixHQUFpQkEsTUFBakI7QUFDQWhDLFFBQVEsU0FBUixJQUFxQjtBQUNuQkUsU0FBT0EsS0FEWTtBQUVuQmUsV0FBU0EsT0FGVTtBQUduQk0sWUFBVUEsUUFIUztBQUluQk0sYUFBV0EsU0FKUTtBQUtuQkMsY0FBWUEsVUFMTztBQU1uQkMsU0FBT0E7QUFOWSxDQUFyQiIsImZpbGUiOiIyMzIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmZhbHN5ID0gZmFsc3k7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgZnVuYyA9IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYztcbnZhciBvYmplY3QgPSBfcmVhY3QuUHJvcFR5cGVzLm9iamVjdDtcbnZhciBhcnJheU9mID0gX3JlYWN0LlByb3BUeXBlcy5hcnJheU9mO1xudmFyIG9uZU9mVHlwZSA9IF9yZWFjdC5Qcm9wVHlwZXMub25lT2ZUeXBlO1xudmFyIGVsZW1lbnQgPSBfcmVhY3QuUHJvcFR5cGVzLmVsZW1lbnQ7XG52YXIgc2hhcGUgPSBfcmVhY3QuUHJvcFR5cGVzLnNoYXBlO1xudmFyIHN0cmluZyA9IF9yZWFjdC5Qcm9wVHlwZXMuc3RyaW5nO1xuXG5mdW5jdGlvbiBmYWxzeShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUpIHtcbiAgaWYgKHByb3BzW3Byb3BOYW1lXSkgcmV0dXJuIG5ldyBFcnJvcignPCcgKyBjb21wb25lbnROYW1lICsgJz4gc2hvdWxkIG5vdCBoYXZlIGEgXCInICsgcHJvcE5hbWUgKyAnXCIgcHJvcCcpO1xufVxuXG52YXIgaGlzdG9yeSA9IHNoYXBlKHtcbiAgbGlzdGVuOiBmdW5jLmlzUmVxdWlyZWQsXG4gIHB1c2hTdGF0ZTogZnVuYy5pc1JlcXVpcmVkLFxuICByZXBsYWNlU3RhdGU6IGZ1bmMuaXNSZXF1aXJlZCxcbiAgZ286IGZ1bmMuaXNSZXF1aXJlZFxufSk7XG5cbmV4cG9ydHMuaGlzdG9yeSA9IGhpc3Rvcnk7XG52YXIgbG9jYXRpb24gPSBzaGFwZSh7XG4gIHBhdGhuYW1lOiBzdHJpbmcuaXNSZXF1aXJlZCxcbiAgc2VhcmNoOiBzdHJpbmcuaXNSZXF1aXJlZCxcbiAgc3RhdGU6IG9iamVjdCxcbiAgYWN0aW9uOiBzdHJpbmcuaXNSZXF1aXJlZCxcbiAga2V5OiBzdHJpbmdcbn0pO1xuXG5leHBvcnRzLmxvY2F0aW9uID0gbG9jYXRpb247XG52YXIgY29tcG9uZW50ID0gb25lT2ZUeXBlKFtmdW5jLCBzdHJpbmddKTtcbmV4cG9ydHMuY29tcG9uZW50ID0gY29tcG9uZW50O1xudmFyIGNvbXBvbmVudHMgPSBvbmVPZlR5cGUoW2NvbXBvbmVudCwgb2JqZWN0XSk7XG5leHBvcnRzLmNvbXBvbmVudHMgPSBjb21wb25lbnRzO1xudmFyIHJvdXRlID0gb25lT2ZUeXBlKFtvYmplY3QsIGVsZW1lbnRdKTtcbmV4cG9ydHMucm91dGUgPSByb3V0ZTtcbnZhciByb3V0ZXMgPSBvbmVPZlR5cGUoW3JvdXRlLCBhcnJheU9mKHJvdXRlKV0pO1xuXG5leHBvcnRzLnJvdXRlcyA9IHJvdXRlcztcbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IHtcbiAgZmFsc3k6IGZhbHN5LFxuICBoaXN0b3J5OiBoaXN0b3J5LFxuICBsb2NhdGlvbjogbG9jYXRpb24sXG4gIGNvbXBvbmVudDogY29tcG9uZW50LFxuICBjb21wb25lbnRzOiBjb21wb25lbnRzLFxuICByb3V0ZTogcm91dGVcbn07XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9Qcm9wVHlwZXMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 233 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n }return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar bool = _React$PropTypes.bool;\nvar object = _React$PropTypes.object;\nvar string = _React$PropTypes.string;\nvar func = _React$PropTypes.func;\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nfunction isEmptyObject(object) {\n for (var p in object) {\n if (object.hasOwnProperty(p)) return false;\n }return true;\n}\n\n/**\n * A <Link> is used to create an <a> element that links to a route.\n * When that route is active, the link gets the value of its\n * `activeClassName` prop\n *\n * For example, assuming you have the following route:\n *\n * <Route path=\"/posts/:postID\" component={Post} />\n *\n * You could use the following component to link to that route:\n *\n * <Link to={`/posts/${post.id}`} />\n *\n * Links may pass along location state and/or query string parameters\n * in the state/query props, respectively.\n *\n * <Link ... query={{ show: true }} state={{ the: 'state' }} />\n */\n\nvar Link = function (_Component) {\n _inherits(Link, _Component);\n\n function Link() {\n _classCallCheck(this, Link);\n\n _Component.apply(this, arguments);\n }\n\n Link.prototype.handleClick = function handleClick(event) {\n var allowTransition = true;\n\n if (this.props.onClick) this.props.onClick(event);\n\n if (isModifiedEvent(event) || !isLeftClickEvent(event)) return;\n\n if (event.defaultPrevented === true) allowTransition = false;\n\n // If target prop is set (e.g. to \"_blank\") let browser handle link.\n /* istanbul ignore if: untestable with Karma */\n if (this.props.target) {\n if (!allowTransition) event.preventDefault();\n\n return;\n }\n\n event.preventDefault();\n\n if (allowTransition) {\n var _props = this.props;\n var state = _props.state;\n var to = _props.to;\n var query = _props.query;\n var hash = _props.hash;\n\n if (hash) to += hash;\n\n this.context.history.pushState(state, to, query);\n }\n };\n\n Link.prototype.render = function render() {\n var _this = this;\n\n var _props2 = this.props;\n var to = _props2.to;\n var query = _props2.query;\n var hash = _props2.hash;\n var state = _props2.state;\n var activeClassName = _props2.activeClassName;\n var activeStyle = _props2.activeStyle;\n var onlyActiveOnIndex = _props2.onlyActiveOnIndex;\n\n var props = _objectWithoutProperties(_props2, ['to', 'query', 'hash', 'state', 'activeClassName', 'activeStyle', 'onlyActiveOnIndex']);\n\n // Manually override onClick.\n props.onClick = function (e) {\n return _this.handleClick(e);\n };\n\n // Ignore if rendered outside the context of history, simplifies unit testing.\n var history = this.context.history;\n\n if (history) {\n props.href = history.createHref(to, query);\n\n if (hash) props.href += hash;\n\n if (activeClassName || activeStyle != null && !isEmptyObject(activeStyle)) {\n if (history.isActive(to, query, onlyActiveOnIndex)) {\n if (activeClassName) props.className += props.className === '' ? activeClassName : ' ' + activeClassName;\n\n if (activeStyle) props.style = _extends({}, props.style, activeStyle);\n }\n }\n }\n\n return _react2['default'].createElement('a', props);\n };\n\n _createClass(Link, null, [{\n key: 'contextTypes',\n value: {\n history: object\n },\n enumerable: true\n }, {\n key: 'propTypes',\n value: {\n to: string.isRequired,\n query: object,\n hash: string,\n state: object,\n activeStyle: object,\n activeClassName: string,\n onlyActiveOnIndex: bool.isRequired,\n onClick: func\n },\n enumerable: true\n }, {\n key: 'defaultProps',\n value: {\n onlyActiveOnIndex: false,\n className: '',\n style: {}\n },\n enumerable: true\n }]);\n\n return Link;\n}(_react.Component);\n\nexports['default'] = Link;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0xpbmsuanM/OGNjYyJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJkZWZpbmVQcm9wZXJ0eSIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImtleXMiLCJpbmRleE9mIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJUeXBlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9SZWFjdCRQcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwib2JqZWN0Iiwic3RyaW5nIiwiZnVuYyIsImlzTGVmdENsaWNrRXZlbnQiLCJldmVudCIsImJ1dHRvbiIsImlzTW9kaWZpZWRFdmVudCIsIm1ldGFLZXkiLCJhbHRLZXkiLCJjdHJsS2V5Iiwic2hpZnRLZXkiLCJpc0VtcHR5T2JqZWN0IiwicCIsIkxpbmsiLCJfQ29tcG9uZW50IiwiYXBwbHkiLCJoYW5kbGVDbGljayIsImFsbG93VHJhbnNpdGlvbiIsIm9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicHJldmVudERlZmF1bHQiLCJfcHJvcHMiLCJzdGF0ZSIsInRvIiwicXVlcnkiLCJoYXNoIiwiY29udGV4dCIsImhpc3RvcnkiLCJwdXNoU3RhdGUiLCJyZW5kZXIiLCJfdGhpcyIsIl9wcm9wczIiLCJhY3RpdmVDbGFzc05hbWUiLCJhY3RpdmVTdHlsZSIsIm9ubHlBY3RpdmVPbkluZGV4IiwiZSIsImhyZWYiLCJjcmVhdGVIcmVmIiwiaXNBY3RpdmUiLCJjbGFzc05hbWUiLCJzdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJpc1JlcXVpcmVkIiwiQ29tcG9uZW50IiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLFdBQVdDLE9BQU9DLE1BQVAsSUFBaUIsVUFBVUMsTUFBVixFQUFrQjtBQUFFLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxVQUFVQyxNQUE5QixFQUFzQ0YsR0FBdEMsRUFBMkM7QUFBRSxRQUFJRyxTQUFTRixVQUFVRCxDQUFWLENBQWIsQ0FBMkIsS0FBSyxJQUFJSSxHQUFULElBQWdCRCxNQUFoQixFQUF3QjtBQUFFLFVBQUlOLE9BQU9RLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ0osTUFBckMsRUFBNkNDLEdBQTdDLENBQUosRUFBdUQ7QUFBRUwsZUFBT0ssR0FBUCxJQUFjRCxPQUFPQyxHQUFQLENBQWQ7QUFBNEI7QUFBRTtBQUFFLEdBQUMsT0FBT0wsTUFBUDtBQUFnQixDQUFoUTs7QUFFQSxJQUFJUyxlQUFnQixZQUFZO0FBQUUsV0FBU0MsZ0JBQVQsQ0FBMEJWLE1BQTFCLEVBQWtDVyxLQUFsQyxFQUF5QztBQUFFLFNBQUssSUFBSVYsSUFBSSxDQUFiLEVBQWdCQSxJQUFJVSxNQUFNUixNQUExQixFQUFrQ0YsR0FBbEMsRUFBdUM7QUFBRSxVQUFJVyxhQUFhRCxNQUFNVixDQUFOLENBQWpCLENBQTJCVyxXQUFXQyxVQUFY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dEI7QUFDRFIsU0FBSyxjQURKO0FBRUQ0QixXQUFPO0FBQ0wyQyx5QkFBbUIsS0FEZDtBQUVMSyxpQkFBVyxFQUZOO0FBR0xDLGFBQU87QUFIRixLQUZOO0FBT0RyRSxnQkFBWTtBQVBYLEdBbkJzQixDQUF6Qjs7QUE2QkEsU0FBTzBDLElBQVA7QUFDRCxDQTlHVSxDQThHUm5CLE9BQU9pRCxTQTlHQyxDQUFYOztBQWdIQTFGLFFBQVEsU0FBUixJQUFxQjRELElBQXJCO0FBQ0ErQixPQUFPM0YsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCIiwiZmlsZSI6IjIzMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfUmVhY3QkUHJvcFR5cGVzID0gX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcztcbnZhciBib29sID0gX1JlYWN0JFByb3BUeXBlcy5ib29sO1xudmFyIG9iamVjdCA9IF9SZWFjdCRQcm9wVHlwZXMub2JqZWN0O1xudmFyIHN0cmluZyA9IF9SZWFjdCRQcm9wVHlwZXMuc3RyaW5nO1xudmFyIGZ1bmMgPSBfUmVhY3QkUHJvcFR5cGVzLmZ1bmM7XG5cbmZ1bmN0aW9uIGlzTGVmdENsaWNrRXZlbnQoZXZlbnQpIHtcbiAgcmV0dXJuIGV2ZW50LmJ1dHRvbiA9PT0gMDtcbn1cblxuZnVuY3Rpb24gaXNNb2RpZmllZEV2ZW50KGV2ZW50KSB7XG4gIHJldHVybiAhIShldmVudC5tZXRhS2V5IHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5KTtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eU9iamVjdChvYmplY3QpIHtcbiAgZm9yICh2YXIgcCBpbiBvYmplY3QpIHtcbiAgICBpZiAob2JqZWN0Lmhhc093blByb3BlcnR5KHApKSByZXR1cm4gZmFsc2U7XG4gIH1yZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBBIDxMaW5rPiBpcyB1c2VkIHRvIGNyZWF0ZSBhbiA8YT4gZWxlbWVudCB0aGF0IGxpbmtzIHRvIGEgcm91dGUuXG4gKiBXaGVuIHRoYXQgcm91dGUgaXMgYWN0aXZlLCB0aGUgbGluayBnZXRzIHRoZSB2YWx1ZSBvZiBpdHNcbiAqIGBhY3RpdmVDbGFzc05hbWVgIHByb3BcbiAqXG4gKiBGb3IgZXhhbXBsZSwgYXNzdW1pbmcgeW91IGhhdmUgdGhlIGZvbGxvd2luZyByb3V0ZTpcbiAqXG4gKiAgIDxSb3V0ZSBwYXRoPVwiL3Bvc3RzLzpwb3N0SURcIiBjb21wb25lbnQ9e1Bvc3R9IC8+XG4gKlxuICogWW91IGNvdWxkIHVzZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudCB0byBsaW5rIHRvIHRoYXQgcm91dGU6XG4gKlxuICogICA8TGluayB0bz17YC9wb3N0cy8ke3Bvc3QuaWR9YH0gLz5cbiAqXG4gKiBMaW5rcyBtYXkgcGFzcyBhbG9uZyBsb2NhdGlvbiBzdGF0ZSBhbmQvb3IgcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnNcbiAqIGluIHRoZSBzdGF0ZS9xdWVyeSBwcm9wcywgcmVzcGVjdGl2ZWx5LlxuICpcbiAqICAgPExpbmsgLi4uIHF1ZXJ5PXt7IHNob3c6IHRydWUgfX0gc3RhdGU9e3sgdGhlOiAnc3RhdGUnIH19IC8+XG4gKi9cblxudmFyIExpbmsgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKExpbmssIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIExpbmsoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpbmspO1xuXG4gICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgTGluay5wcm90b3R5cGUuaGFuZGxlQ2xpY2sgPSBmdW5jdGlvbiBoYW5kbGVDbGljayhldmVudCkge1xuICAgIHZhciBhbGxvd1RyYW5zaXRpb24gPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMucHJvcHMub25DbGljaykgdGhpcy5wcm9wcy5vbkNsaWNrKGV2ZW50KTtcblxuICAgIGlmIChpc01vZGlmaWVkRXZlbnQoZXZlbnQpIHx8ICFpc0xlZnRDbGlja0V2ZW50KGV2ZW50KSkgcmV0dXJuO1xuXG4gICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgPT09IHRydWUpIGFsbG93VHJhbnNpdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gSWYgdGFyZ2V0IHByb3AgaXMgc2V0IChlLmcuIHRvIFwiX2JsYW5rXCIpIGxldCBicm93c2VyIGhhbmRsZSBsaW5rLlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZjogdW50ZXN0YWJsZSB3aXRoIEthcm1hICovXG4gICAgaWYgKHRoaXMucHJvcHMudGFyZ2V0KSB7XG4gICAgICBpZiAoIWFsbG93VHJhbnNpdGlvbikgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoYWxsb3dUcmFuc2l0aW9uKSB7XG4gICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgIHZhciBzdGF0ZSA9IF9wcm9wcy5zdGF0ZTtcbiAgICAgIHZhciB0byA9IF9wcm9wcy50bztcbiAgICAgIHZhciBxdWVyeSA9IF9wcm9wcy5xdWVyeTtcbiAgICAgIHZhciBoYXNoID0gX3Byb3BzLmhhc2g7XG5cbiAgICAgIGlmIChoYXNoKSB0byArPSBoYXNoO1xuXG4gICAgICB0aGlzLmNvbnRleHQuaGlzdG9yeS5wdXNoU3RhdGUoc3RhdGUsIHRvLCBxdWVyeSk7XG4gICAgfVxuICB9O1xuXG4gIExpbmsucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgdmFyIF9wcm9wczIgPSB0aGlzLnByb3BzO1xuICAgIHZhciB0byA9IF9wcm9wczIudG87XG4gICAgdmFyIHF1ZXJ5ID0gX3Byb3BzMi5xdWVyeTtcbiAgICB2YXIgaGFzaCA9IF9wcm9wczIuaGFzaDtcbiAgICB2YXIgc3RhdGUgPSBfcHJvcHMyLnN0YXRlO1xuICAgIHZhciBhY3RpdmVDbGFzc05hbWUgPSBfcHJvcHMyLmFjdGl2ZUNsYXNzTmFtZTtcbiAgICB2YXIgYWN0aXZlU3R5bGUgPSBfcHJvcHMyLmFjdGl2ZVN0eWxlO1xuICAgIHZhciBvbmx5QWN0aXZlT25JbmRleCA9IF9wcm9wczIub25seUFjdGl2ZU9uSW5kZXg7XG5cbiAgICB2YXIgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzMiwgWyd0bycsICdxdWVyeScsICdoYXNoJywgJ3N0YXRlJywgJ2FjdGl2ZUNsYXNzTmFtZScsICdhY3RpdmVTdHlsZScsICdvbmx5QWN0aXZlT25JbmRleCddKTtcblxuICAgIC8vIE1hbnVhbGx5IG92ZXJyaWRlIG9uQ2xpY2suXG4gICAgcHJvcHMub25DbGljayA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICByZXR1cm4gX3RoaXMuaGFuZGxlQ2xpY2soZSk7XG4gICAgfTtcblxuICAgIC8vIElnbm9yZSBpZiByZW5kZXJlZCBvdXRzaWRlIHRoZSBjb250ZXh0IG9mIGhpc3RvcnksIHNpbXBsaWZpZXMgdW5pdCB0ZXN0aW5nLlxuICAgIHZhciBoaXN0b3J5ID0gdGhpcy5jb250ZXh0Lmhpc3Rvcnk7XG5cbiAgICBpZiAoaGlzdG9yeSkge1xuICAgICAgcHJvcHMuaHJlZiA9IGhpc3RvcnkuY3JlYXRlSHJlZih0bywgcXVlcnkpO1xuXG4gICAgICBpZiAoaGFzaCkgcHJvcHMuaHJlZiArPSBoYXNoO1xuXG4gICAgICBpZiAoYWN0aXZlQ2xhc3NOYW1lIHx8IGFjdGl2ZVN0eWxlICE9IG51bGwgJiYgIWlzRW1wdHlPYmplY3QoYWN0aXZlU3R5bGUpKSB7XG4gICAgICAgIGlmIChoaXN0b3J5LmlzQWN0aXZlKHRvLCBxdWVyeSwgb25seUFjdGl2ZU9uSW5kZXgpKSB7XG4gICAgICAgICAgaWYgKGFjdGl2ZUNsYXNzTmFtZSkgcHJvcHMuY2xhc3NOYW1lICs9IHByb3BzLmNsYXNzTmFtZSA9PT0gJycgPyBhY3RpdmVDbGFzc05hbWUgOiAnICcgKyBhY3RpdmVDbGFzc05hbWU7XG5cbiAgICAgICAgICBpZiAoYWN0aXZlU3R5bGUpIHByb3BzLnN0eWxlID0gX2V4dGVuZHMoe30sIHByb3BzLnN0eWxlLCBhY3RpdmVTdHlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2EnLCBwcm9wcyk7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKExpbmssIG51bGwsIFt7XG4gICAga2V5OiAnY29udGV4dFR5cGVzJyxcbiAgICB2YWx1ZToge1xuICAgICAgaGlzdG9yeTogb2JqZWN0XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH0sIHtcbiAgICBrZXk6ICdwcm9wVHlwZXMnLFxuICAgIHZhbHVlOiB7XG4gICAgICB0bzogc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBxdWVyeTogb2JqZWN0LFxuICAgICAgaGFzaDogc3RyaW5nLFxuICAgICAgc3RhdGU6IG9iamVjdCxcbiAgICAgIGFjdGl2ZVN0eWxlOiBvYmplY3QsXG4gICAgICBhY3RpdmVDbGFzc05hbWU6IHN0cmluZyxcbiAgICAgIG9ubHlBY3RpdmVPbkluZGV4OiBib29sLmlzUmVxdWlyZWQsXG4gICAgICBvbkNsaWNrOiBmdW5jXG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH0sIHtcbiAgICBrZXk6ICdkZWZhdWx0UHJvcHMnLFxuICAgIHZhbHVlOiB7XG4gICAgICBvbmx5QWN0aXZlT25JbmRleDogZmFsc2UsXG4gICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgc3R5bGU6IHt9XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH1dKTtcblxuICByZXR1cm4gTGluaztcbn0pKF9yZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBMaW5rO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9MaW5rLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 234 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Link = __webpack_require__(233);\n\nvar _Link2 = _interopRequireDefault(_Link);\n\n/**\n * An <IndexLink> is used to link to an <IndexRoute>.\n */\n\nvar IndexLink = function (_Component) {\n _inherits(IndexLink, _Component);\n\n function IndexLink() {\n _classCallCheck(this, IndexLink);\n\n _Component.apply(this, arguments);\n }\n\n IndexLink.prototype.render = function render() {\n return _react2['default'].createElement(_Link2['default'], _extends({}, this.props, { onlyActiveOnIndex: true }));\n };\n\n return IndexLink;\n}(_react.Component);\n\nexports['default'] = IndexLink;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0luZGV4TGluay5qcz9kYzg0Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiY29uZmlndXJhYmxlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfcmVhY3QiLCJyZXF1aXJlIiwiX3JlYWN0MiIsIl9MaW5rIiwiX0xpbmsyIiwiSW5kZXhMaW5rIiwiX0NvbXBvbmVudCIsImFwcGx5IiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsInByb3BzIiwib25seUFjdGl2ZU9uSW5kZXgiLCJDb21wb25lbnQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsV0FBV0MsT0FBT0MsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQUUsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlDLFVBQVVDLE1BQTlCLEVBQXNDRixHQUF0QyxFQUEyQztBQUFFLFFBQUlHLFNBQVNGLFVBQVVELENBQVYsQ0FBYixDQUEyQixLQUFLLElBQUlJLEdBQVQsSUFBZ0JELE1BQWhCLEVBQXdCO0FBQUUsVUFBSU4sT0FBT1EsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDSixNQUFyQyxFQUE2Q0MsR0FBN0MsQ0FBSixFQUF1RDtBQUFFTCxlQUFPSyxHQUFQLElBQWNELE9BQU9DLEdBQVAsQ0FBZDtBQUE0QjtBQUFFO0FBQUUsR0FBQyxPQUFPTCxNQUFQO0FBQWdCLENBQWhROztBQUVBLFNBQVNTLHNCQUFULENBQWdDQyxHQUFoQyxFQUFxQztBQUFFLFNBQU9BLE9BQU9BLElBQUlkLFVBQVgsR0FBd0JjLEdBQXhCLEdBQThCLEVBQUUsV0FBV0EsR0FBYixFQUFyQztBQUEwRDs7QUFFakcsU0FBU0MsZUFBVCxDQUF5QkMsUUFBekIsRUFBbUNDLFdBQW5DLEVBQWdEO0FBQUUsTUFBSSxFQUFFRCxvQkFBb0JDLFdBQXRCLENBQUosRUFBd0M7QUFBRSxVQUFNLElBQUlDLFNBQUosQ0FBYyxtQ0FBZCxDQUFOO0FBQTJEO0FBQUU7O0FBRXpKLFNBQVNDLFNBQVQsQ0FBbUJDLFFBQW5CLEVBQTZCQyxVQUE3QixFQUF5QztBQUFFLE1BQUksT0FBT0EsVUFBUCxLQUFzQixVQUF0QixJQUFvQ0EsZUFBZSxJQUF2RCxFQUE2RDtBQUFFLFVBQU0sSUFBSUgsU0FBSixDQUFjLHFFQUFvRUcsVUFBcEUseUNBQW9FQSxVQUFwRSxFQUFkLENBQU47QUFBc0csR0FBQ0QsU0FBU1YsU0FBVCxHQUFxQlIsT0FBT29CLE1BQVAsQ0FBY0QsY0FBY0EsV0FBV1gsU0FBdkMsRUFBa0QsRUFBRWEsYUFBYSxFQUFFQyxPQUFPSixRQUFULEVBQW1CSyxZQUFZLEtBQS9CLEVBQXNDQyxVQUFVLElBQWhELEVBQXNEQyxjQUFjLElBQXBFLEVBQWYsRUFBbEQsQ0FBckIsQ0FBcUssSUFBSU4sVUFBSixFQUFnQm5CLE9BQU8wQixjQUFQLEdBQXdCMUIsT0FBTzBCLGNBQVAsQ0FBc0JSLFFBQXRCLEVBQWdDQyxVQUFoQyxDQUF4QixHQUFzRUQsU0FBU1MsU0FBVCxHQUFxQlIsVUFBM0Y7QUFBd0c7O0FBRTllLElBQUlTLFNBQVMsbUJBQUFDLENBQVEsQ0FBUixDQUFiOztBQUVBLElBQUlDLFVBQVVuQix1QkFBdUJpQixNQUF2QixDQUFkOztBQUVBLElBQUlHLFFBQVEsbUJBQUFGLENBQVEsR0FBUixDQUFaOztBQUVBLElBQUlHLFNBQVNyQix1QkFBdUJvQixLQUF2QixDQUFiOztBQUVBOzs7O0FBSUEsSUFBSUUsWUFBYSxVQUFVQyxVQUFWLEVBQXNCO0FBQ3JDakIsWUFBVWdCLFNBQVYsRUFBcUJDLFVBQXJCOztBQUVBLFdBQVNELFNBQVQsR0FBcUI7QUFDbkJwQixvQkFBZ0IsSUFBaEIsRUFBc0JvQixTQUF0Qjs7QUFFQUMsZUFBV0MsS0FBWCxDQUFpQixJQUFqQixFQUF1Qi9CLFNBQXZCO0FBQ0Q7O0FBRUQ2QixZQUFVekIsU0FBVixDQUFvQjRCLE1BQXBCLEdBQTZCLFNBQVNBLE1BQVQsR0FBa0I7QUFDN0MsV0FBT04sUUFBUSxTQUFSLEVBQW1CTyxhQUFuQixDQUFpQ0wsT0FBTyxTQUFQLENBQWpDLEVBQW9EakMsU0FBUyxFQUFULEVBQWEsS0FBS3VDLEtBQWxCLEVBQXlCLEVBQUVDLG1CQUFtQixJQUFyQixFQUF6QixDQUFwRCxDQUFQO0FBQ0QsR0FGRDs7QUFJQSxTQUFPTixTQUFQO0FBQ0QsQ0FkZSxDQWNiTCxPQUFPWSxTQWRNLENBQWhCOztBQWdCQTNDLFFBQVEsU0FBUixJQUFxQm9DLFNBQXJCO0FBQ0FRLE9BQU81QyxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIiLCJmaWxlIjoiMjM0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfTGluayA9IHJlcXVpcmUoJy4vTGluaycpO1xuXG52YXIgX0xpbmsyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfTGluayk7XG5cbi8qKlxuICogQW4gPEluZGV4TGluaz4gaXMgdXNlZCB0byBsaW5rIHRvIGFuIDxJbmRleFJvdXRlPi5cbiAqL1xuXG52YXIgSW5kZXhMaW5rID0gKGZ1bmN0aW9uIChfQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhJbmRleExpbmssIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEluZGV4TGluaygpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgSW5kZXhMaW5rKTtcblxuICAgIF9Db21wb25lbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIEluZGV4TGluay5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfTGluazJbJ2RlZmF1bHQnXSwgX2V4dGVuZHMoe30sIHRoaXMucHJvcHMsIHsgb25seUFjdGl2ZU9uSW5kZXg6IHRydWUgfSkpO1xuICB9O1xuXG4gIHJldHVybiBJbmRleExpbms7XG59KShfcmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gSW5kZXhMaW5rO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9JbmRleExpbmsuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 235 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Redirect = __webpack_require__(236);\n\nvar _Redirect2 = _interopRequireDefault(_Redirect);\n\nvar _PropTypes = __webpack_require__(232);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar string = _React$PropTypes.string;\nvar object = _React$PropTypes.object;\n\n/**\n * An <IndexRedirect> is used to redirect from an indexRoute.\n */\n\nvar IndexRedirect = function (_Component) {\n _inherits(IndexRedirect, _Component);\n\n function IndexRedirect() {\n _classCallCheck(this, IndexRedirect);\n\n _Component.apply(this, arguments);\n }\n\n IndexRedirect.createRouteFromReactElement = function createRouteFromReactElement(element, parentRoute) {\n /* istanbul ignore else: sanity check */\n if (parentRoute) {\n parentRoute.indexRoute = _Redirect2['default'].createRouteFromReactElement(element);\n } else {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'An <IndexRedirect> does not make sense at the root of your route config') : undefined;\n }\n };\n\n /* istanbul ignore next: sanity check */\n\n IndexRedirect.prototype.render = function render() {\n true ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<IndexRedirect> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n };\n\n _createClass(IndexRedirect, null, [{\n key: 'propTypes',\n value: {\n to: string.isRequired,\n query: object,\n state: object,\n onEnter: _PropTypes.falsy,\n children: _PropTypes.falsy\n },\n enumerable: true\n }]);\n\n return IndexRedirect;\n}(_react.Component);\n\nexports['default'] = IndexRedirect;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0luZGV4UmVkaXJlY3QuanM/YWYzYSJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImkiLCJsZW5ndGgiLCJkZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsInByb3RvdHlwZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIlR5cGVFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwidmFsdWUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl93YXJuaW5nIiwicmVxdWlyZSIsIl93YXJuaW5nMiIsIl9pbnZhcmlhbnQiLCJfaW52YXJpYW50MiIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfUmVkaXJlY3QiLCJfUmVkaXJlY3QyIiwiX1Byb3BUeXBlcyIsIl9SZWFjdCRQcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJvYmplY3QiLCJJbmRleFJlZGlyZWN0IiwiX0NvbXBvbmVudCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3JlYXRlUm91dGVGcm9tUmVhY3RFbGVtZW50IiwiZWxlbWVudCIsInBhcmVudFJvdXRlIiwiaW5kZXhSb3V0ZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVuZGVmaW5lZCIsInJlbmRlciIsInRvIiwiaXNSZXF1aXJlZCIsInF1ZXJ5Iiwic3RhdGUiLCJvbkVudGVy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TGtCLGVBQVN0QixXQUFXdUIsS0FKZjtBQUtMQyxnQkFBVXhCLFdBQVd1QjtBQUxoQixLQUYwQjtBQVNqQ3ZELGdCQUFZO0FBVHFCLEdBQUQsQ0FBbEM7O0FBWUEsU0FBT3FDLGFBQVA7QUFDRCxDQXJDbUIsQ0FxQ2pCVCxPQUFPNkIsU0FyQ1UsQ0FBcEI7O0FBdUNBbEUsUUFBUSxTQUFSLElBQXFCOEMsYUFBckI7QUFDQXFCLE9BQU9uRSxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyMzUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfd2FybmluZyA9IHJlcXVpcmUoJ3dhcm5pbmcnKTtcblxudmFyIF93YXJuaW5nMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3dhcm5pbmcpO1xuXG52YXIgX2ludmFyaWFudCA9IHJlcXVpcmUoJ2ludmFyaWFudCcpO1xuXG52YXIgX2ludmFyaWFudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbnZhcmlhbnQpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfUmVkaXJlY3QgPSByZXF1aXJlKCcuL1JlZGlyZWN0Jyk7XG5cbnZhciBfUmVkaXJlY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfUmVkaXJlY3QpO1xuXG52YXIgX1Byb3BUeXBlcyA9IHJlcXVpcmUoJy4vUHJvcFR5cGVzJyk7XG5cbnZhciBfUmVhY3QkUHJvcFR5cGVzID0gX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcztcbnZhciBzdHJpbmcgPSBfUmVhY3QkUHJvcFR5cGVzLnN0cmluZztcbnZhciBvYmplY3QgPSBfUmVhY3QkUHJvcFR5cGVzLm9iamVjdDtcblxuLyoqXG4gKiBBbiA8SW5kZXhSZWRpcmVjdD4gaXMgdXNlZCB0byByZWRpcmVjdCBmcm9tIGFuIGluZGV4Um91dGUuXG4gKi9cblxudmFyIEluZGV4UmVkaXJlY3QgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEluZGV4UmVkaXJlY3QsIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEluZGV4UmVkaXJlY3QoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluZGV4UmVkaXJlY3QpO1xuXG4gICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgSW5kZXhSZWRpcmVjdC5jcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQgPSBmdW5jdGlvbiBjcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQoZWxlbWVudCwgcGFyZW50Um91dGUpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKHBhcmVudFJvdXRlKSB7XG4gICAgICBwYXJlbnRSb3V0ZS5pbmRleFJvdXRlID0gX1JlZGlyZWN0MlsnZGVmYXVsdCddLmNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudChlbGVtZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF93YXJuaW5nMlsnZGVmYXVsdCddKGZhbHNlLCAnQW4gPEluZGV4UmVkaXJlY3Q+IGRvZXMgbm90IG1ha2Ugc2Vuc2UgYXQgdGhlIHJvb3Qgb2YgeW91ciByb3V0ZSBjb25maWcnKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gIH07XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IHNhbml0eSBjaGVjayAqL1xuXG4gIEluZGV4UmVkaXJlY3QucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAhZmFsc2UgPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSwgJzxJbmRleFJlZGlyZWN0PiBlbGVtZW50cyBhcmUgZm9yIHJvdXRlciBjb25maWd1cmF0aW9uIG9ubHkgYW5kIHNob3VsZCBub3QgYmUgcmVuZGVyZWQnKSA6IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UpIDogdW5kZWZpbmVkO1xuICB9O1xuXG4gIF9jcmVhdGVDbGFzcyhJbmRleFJlZGlyZWN0LCBudWxsLCBbe1xuICAgIGtleTogJ3Byb3BUeXBlcycsXG4gICAgdmFsdWU6IHtcbiAgICAgIHRvOiBzdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHF1ZXJ5OiBvYmplY3QsXG4gICAgICBzdGF0ZTogb2JqZWN0LFxuICAgICAgb25FbnRlcjogX1Byb3BUeXBlcy5mYWxzeSxcbiAgICAgIGNoaWxkcmVuOiBfUHJvcFR5cGVzLmZhbHN5XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH1dKTtcblxuICByZXR1cm4gSW5kZXhSZWRpcmVjdDtcbn0pKF9yZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbmRleFJlZGlyZWN0O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9JbmRleFJlZGlyZWN0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 236 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _RouteUtils = __webpack_require__(216);\n\nvar _PatternUtils = __webpack_require__(219);\n\nvar _PropTypes = __webpack_require__(232);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar string = _React$PropTypes.string;\nvar object = _React$PropTypes.object;\n\n/**\n * A <Redirect> is used to declare another URL path a client should\n * be sent to when they request a given URL.\n *\n * Redirects are placed alongside routes in the route configuration\n * and are traversed in the same manner.\n */\n\nvar Redirect = function (_Component) {\n _inherits(Redirect, _Component);\n\n function Redirect() {\n _classCallCheck(this, Redirect);\n\n _Component.apply(this, arguments);\n }\n\n Redirect.createRouteFromReactElement = function createRouteFromReactElement(element) {\n var route = _RouteUtils.createRouteFromReactElement(element);\n\n if (route.from) route.path = route.from;\n\n route.onEnter = function (nextState, replaceState) {\n var location = nextState.location;\n var params = nextState.params;\n\n var pathname = undefined;\n if (route.to.charAt(0) === '/') {\n pathname = _PatternUtils.formatPattern(route.to, params);\n } else if (!route.to) {\n pathname = location.pathname;\n } else {\n var routeIndex = nextState.routes.indexOf(route);\n var parentPattern = Redirect.getRoutePattern(nextState.routes, routeIndex - 1);\n var pattern = parentPattern.replace(/\\/*$/, '/') + route.to;\n pathname = _PatternUtils.formatPattern(pattern, params);\n }\n\n replaceState(route.state || location.state, pathname, route.query || location.query);\n };\n\n return route;\n };\n\n Redirect.getRoutePattern = function getRoutePattern(routes, routeIndex) {\n var parentPattern = '';\n\n for (var i = routeIndex; i >= 0; i--) {\n var route = routes[i];\n var pattern = route.path || '';\n parentPattern = pattern.replace(/\\/*$/, '/') + parentPattern;\n\n if (pattern.indexOf('/') === 0) break;\n }\n\n return '/' + parentPattern;\n };\n\n /* istanbul ignore next: sanity check */\n\n Redirect.prototype.render = function render() {\n true ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<Redirect> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n };\n\n _createClass(Redirect, null, [{\n key: 'propTypes',\n value: {\n path: string,\n from: string, // Alias for path\n to: string.isRequired,\n query: object,\n state: object,\n onEnter: _PropTypes.falsy,\n children: _PropTypes.falsy\n },\n enumerable: true\n }]);\n\n return Redirect;\n}(_react.Component);\n\nexports['default'] = Redirect;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JlZGlyZWN0LmpzPzliYTQiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfY3JlYXRlQ2xhc3MiLCJkZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJpIiwibGVuZ3RoIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJwcm90b3R5cGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJUeXBlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfaW52YXJpYW50IiwicmVxdWlyZSIsIl9pbnZhcmlhbnQyIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9Sb3V0ZVV0aWxzIiwiX1BhdHRlcm5VdGlscyIsIl9Qcm9wVHlwZXMiLCJfUmVhY3QkUHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib2JqZWN0IiwiUmVkaXJlY3QiLCJfQ29tcG9uZW50IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQiLCJlbGVtZW50Iiwicm91dGUiLCJmcm9tIiwicGF0aCIsIm9uRW50ZXIiLCJuZXh0U3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJsb2NhdGlvbiIsInBhcmFtcyIsInBhdGhuYW1lIiwidW5kZWZpbmVkIiwidG8iLCJjaGFyQXQiLCJmb3JtYXRQYXR0ZXJuIiwicm91dGVJbmRleCIsInJvdXRlcyIsImluZGV4T2YiLCJwYXJlbnRQYXR0ZXJuIiwiZ2V0Um91dGVQYXR0ZXJuIiwicGF0dGVybiIsInJlcGxhY2UiLCJzdGF0ZSIsInF1ZXJ5IiwicmVuZGVyIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNSZXF1aXJlZCIsImZhbHN5IiwiY2hpbGRyZW4iLCJDb21wb25lbnQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsSUFBSUMsZUFBZ0IsWUFBWTtBQUFFLFdBQVNDLGdCQUFULENBQTBCQyxNQUExQixFQUFrQ0MsS0FBbEMsRUFBeUM7QUFBRSxTQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTUUsTUFBMUIsRUFBa0NELEdBQWxDLEVBQXVDO0FBQUUsVUFBSUUsYUFBYUgsTUFBTUMsQ0FBTixDQUFqQixDQUEyQkUsV0FBV0MsVUFBWCxHQUF3QkQsV0FBV0MsVUFBWCxJQUF5QixLQUFqRCxDQUF3REQsV0FBV0UsWUFBWCxHQUEwQixJQUExQixDQUFnQyxJQUFJLFdBQVdGLFVBQWYsRUFBMkJBLFdBQVdHLFFBQVgsR0FBc0IsSUFBdEIsQ0FBNEJDLE9BQU9DLGNBQVAsQ0FBc0JULE1BQXRCLEVBQThCSSxXQUFXTSxHQUF6QyxFQUE4Q04sVUFBOUM7QUFBNEQ7QUFBRSxHQUFDLE9BQU8sVUFBVU8sV0FBVixFQUF1QkMsVUFBdkIsRUFBbUNDLFdBQW5DLEVBQWdEO0FBQUUsUUFBSUQsVUFBSixFQUFnQmIsaUJBQWlCWSxZQUFZRyxTQUE3QixFQUF3Q0YsVUFBeEMsRUFBcUQsSUFBSUMsV0FBSixFQUFpQmQsaUJBQWlCWSxXQUFqQixFQUE4QkUsV0FBOUIsRUFBNEMsT0FBT0YsV0FBUDtBQUFxQixHQUFoTjtBQUFtTixDQUEvaEIsRUFBbkI7O0FBRUEsU0FBU0ksc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSW5CLFVBQVgsR0FBd0JtQixHQUF4QixHQUE4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Q0FBckssR0FBcU15QixTQUFyTTtBQUNELEdBRkQ7O0FBSUF6RCxlQUFhMEMsUUFBYixFQUF1QixJQUF2QixFQUE2QixDQUFDO0FBQzVCOUIsU0FBSyxXQUR1QjtBQUU1QmUsV0FBTztBQUNMdUIsWUFBTVYsTUFERDtBQUVMUyxZQUFNVCxNQUZELEVBRVM7QUFDZGtCLFVBQUlsQixPQUFPa0MsVUFITjtBQUlMTCxhQUFPNUIsTUFKRjtBQUtMMkIsYUFBTzNCLE1BTEY7QUFNTFUsZUFBU2QsV0FBV3NDLEtBTmY7QUFPTEMsZ0JBQVV2QyxXQUFXc0M7QUFQaEIsS0FGcUI7QUFXNUJwRSxnQkFBWTtBQVhnQixHQUFELENBQTdCOztBQWNBLFNBQU9tQyxRQUFQO0FBQ0QsQ0F2RWMsQ0F1RVpULE9BQU80QyxTQXZFSyxDQUFmOztBQXlFQS9FLFFBQVEsU0FBUixJQUFxQjRDLFFBQXJCO0FBQ0FvQyxPQUFPaEYsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCLEMiLCJmaWxlIjoiMjM2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2ludmFyaWFudCA9IHJlcXVpcmUoJ2ludmFyaWFudCcpO1xuXG52YXIgX2ludmFyaWFudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbnZhcmlhbnQpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfUm91dGVVdGlscyA9IHJlcXVpcmUoJy4vUm91dGVVdGlscycpO1xuXG52YXIgX1BhdHRlcm5VdGlscyA9IHJlcXVpcmUoJy4vUGF0dGVyblV0aWxzJyk7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9Qcm9wVHlwZXMnKTtcblxudmFyIF9SZWFjdCRQcm9wVHlwZXMgPSBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzO1xudmFyIHN0cmluZyA9IF9SZWFjdCRQcm9wVHlwZXMuc3RyaW5nO1xudmFyIG9iamVjdCA9IF9SZWFjdCRQcm9wVHlwZXMub2JqZWN0O1xuXG4vKipcbiAqIEEgPFJlZGlyZWN0PiBpcyB1c2VkIHRvIGRlY2xhcmUgYW5vdGhlciBVUkwgcGF0aCBhIGNsaWVudCBzaG91bGRcbiAqIGJlIHNlbnQgdG8gd2hlbiB0aGV5IHJlcXVlc3QgYSBnaXZlbiBVUkwuXG4gKlxuICogUmVkaXJlY3RzIGFyZSBwbGFjZWQgYWxvbmdzaWRlIHJvdXRlcyBpbiB0aGUgcm91dGUgY29uZmlndXJhdGlvblxuICogYW5kIGFyZSB0cmF2ZXJzZWQgaW4gdGhlIHNhbWUgbWFubmVyLlxuICovXG5cbnZhciBSZWRpcmVjdCA9IChmdW5jdGlvbiAoX0NvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoUmVkaXJlY3QsIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFJlZGlyZWN0KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSZWRpcmVjdCk7XG5cbiAgICBfQ29tcG9uZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBSZWRpcmVjdC5jcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQgPSBmdW5jdGlvbiBjcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQoZWxlbWVudCkge1xuICAgIHZhciByb3V0ZSA9IF9Sb3V0ZVV0aWxzLmNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudChlbGVtZW50KTtcblxuICAgIGlmIChyb3V0ZS5mcm9tKSByb3V0ZS5wYXRoID0gcm91dGUuZnJvbTtcblxuICAgIHJvdXRlLm9uRW50ZXIgPSBmdW5jdGlvbiAobmV4dFN0YXRlLCByZXBsYWNlU3RhdGUpIHtcbiAgICAgIHZhciBsb2NhdGlvbiA9IG5leHRTdGF0ZS5sb2NhdGlvbjtcbiAgICAgIHZhciBwYXJhbXMgPSBuZXh0U3RhdGUucGFyYW1zO1xuXG4gICAgICB2YXIgcGF0aG5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAocm91dGUudG8uY2hhckF0KDApID09PSAnLycpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBfUGF0dGVyblV0aWxzLmZvcm1hdFBhdHRlcm4ocm91dGUudG8sIHBhcmFtcyk7XG4gICAgICB9IGVsc2UgaWYgKCFyb3V0ZS50bykge1xuICAgICAgICBwYXRobmFtZSA9IGxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHJvdXRlSW5kZXggPSBuZXh0U3RhdGUucm91dGVzLmluZGV4T2Yocm91dGUpO1xuICAgICAgICB2YXIgcGFyZW50UGF0dGVybiA9IFJlZGlyZWN0LmdldFJvdXRlUGF0dGVybihuZXh0U3RhdGUucm91dGVzLCByb3V0ZUluZGV4IC0gMSk7XG4gICAgICAgIHZhciBwYXR0ZXJuID0gcGFyZW50UGF0dGVybi5yZXBsYWNlKC9cXC8qJC8sICcvJykgKyByb3V0ZS50bztcbiAgICAgICAgcGF0aG5hbWUgPSBfUGF0dGVyblV0aWxzLmZvcm1hdFBhdHRlcm4ocGF0dGVybiwgcGFyYW1zKTtcbiAgICAgIH1cblxuICAgICAgcmVwbGFjZVN0YXRlKHJvdXRlLnN0YXRlIHx8IGxvY2F0aW9uLnN0YXRlLCBwYXRobmFtZSwgcm91dGUucXVlcnkgfHwgbG9jYXRpb24ucXVlcnkpO1xuICAgIH07XG5cbiAgICByZXR1cm4gcm91dGU7XG4gIH07XG5cbiAgUmVkaXJlY3QuZ2V0Um91dGVQYXR0ZXJuID0gZnVuY3Rpb24gZ2V0Um91dGVQYXR0ZXJuKHJvdXRlcywgcm91dGVJbmRleCkge1xuICAgIHZhciBwYXJlbnRQYXR0ZXJuID0gJyc7XG5cbiAgICBmb3IgKHZhciBpID0gcm91dGVJbmRleDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciByb3V0ZSA9IHJvdXRlc1tpXTtcbiAgICAgIHZhciBwYXR0ZXJuID0gcm91dGUucGF0aCB8fCAnJztcbiAgICAgIHBhcmVudFBhdHRlcm4gPSBwYXR0ZXJuLnJlcGxhY2UoL1xcLyokLywgJy8nKSArIHBhcmVudFBhdHRlcm47XG5cbiAgICAgIGlmIChwYXR0ZXJuLmluZGV4T2YoJy8nKSA9PT0gMCkgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuICcvJyArIHBhcmVudFBhdHRlcm47XG4gIH07XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IHNhbml0eSBjaGVjayAqL1xuXG4gIFJlZGlyZWN0LnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UsICc8UmVkaXJlY3Q+IGVsZW1lbnRzIGFyZSBmb3Igcm91dGVyIGNvbmZpZ3VyYXRpb24gb25seSBhbmQgc2hvdWxkIG5vdCBiZSByZW5kZXJlZCcpIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKFJlZGlyZWN0LCBudWxsLCBbe1xuICAgIGtleTogJ3Byb3BUeXBlcycsXG4gICAgdmFsdWU6IHtcbiAgICAgIHBhdGg6IHN0cmluZyxcbiAgICAgIGZyb206IHN0cmluZywgLy8gQWxpYXMgZm9yIHBhdGhcbiAgICAgIHRvOiBzdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHF1ZXJ5OiBvYmplY3QsXG4gICAgICBzdGF0ZTogb2JqZWN0LFxuICAgICAgb25FbnRlcjogX1Byb3BUeXBlcy5mYWxzeSxcbiAgICAgIGNoaWxkcmVuOiBfUHJvcFR5cGVzLmZhbHN5XG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH1dKTtcblxuICByZXR1cm4gUmVkaXJlY3Q7XG59KShfcmVhY3QuQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gUmVkaXJlY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JlZGlyZWN0LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 237 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _warning = __webpack_require__(199);\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _RouteUtils = __webpack_require__(216);\n\nvar _PropTypes = __webpack_require__(232);\n\nvar func = _react2['default'].PropTypes.func;\n\n/**\n * An <IndexRoute> is used to specify its parent's <Route indexRoute> in\n * a JSX route config.\n */\n\nvar IndexRoute = function (_Component) {\n _inherits(IndexRoute, _Component);\n\n function IndexRoute() {\n _classCallCheck(this, IndexRoute);\n\n _Component.apply(this, arguments);\n }\n\n IndexRoute.createRouteFromReactElement = function createRouteFromReactElement(element, parentRoute) {\n /* istanbul ignore else: sanity check */\n if (parentRoute) {\n parentRoute.indexRoute = _RouteUtils.createRouteFromReactElement(element);\n } else {\n process.env.NODE_ENV !== 'production' ? _warning2['default'](false, 'An <IndexRoute> does not make sense at the root of your route config') : undefined;\n }\n };\n\n /* istanbul ignore next: sanity check */\n\n IndexRoute.prototype.render = function render() {\n true ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<IndexRoute> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n };\n\n _createClass(IndexRoute, null, [{\n key: 'propTypes',\n value: {\n path: _PropTypes.falsy,\n component: _PropTypes.component,\n components: _PropTypes.components,\n getComponent: func,\n getComponents: func\n },\n enumerable: true\n }]);\n\n return IndexRoute;\n}(_react.Component);\n\nexports['default'] = IndexRoute;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0luZGV4Um91dGUuanM/ZWE4YyJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9jcmVhdGVDbGFzcyIsImRlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImkiLCJsZW5ndGgiLCJkZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsInByb3RvdHlwZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIlR5cGVFcnJvciIsIl9pbmhlcml0cyIsInN1YkNsYXNzIiwic3VwZXJDbGFzcyIsImNyZWF0ZSIsImNvbnN0cnVjdG9yIiwidmFsdWUiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsIl93YXJuaW5nIiwicmVxdWlyZSIsIl93YXJuaW5nMiIsIl9pbnZhcmlhbnQiLCJfaW52YXJpYW50MiIsIl9yZWFjdCIsIl9yZWFjdDIiLCJfUm91dGVVdGlscyIsIl9Qcm9wVHlwZXMiLCJmdW5jIiwiUHJvcFR5cGVzIiwiSW5kZXhSb3V0ZSIsIl9Db21wb25lbnQiLCJhcHBseSIsImFyZ3VtZW50cyIsImNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudCIsImVsZW1lbnQiLCJwYXJlbnRSb3V0ZSIsImluZGV4Um91dGUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJyZW5kZXIiLCJwYXRoIiwiZmFsc3kiLCJjb21wb25lbnQiLCJjb21wb25lbnRzIiwiZ2V0Q29tcG9uZW50IiwiZ2V0Q29tcG9uZW50cyIsIkNvbXBvbmVudCIsIm1vZHVs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Qjs7QUF1Q0E5RCxRQUFRLFNBQVIsSUFBcUIyQyxVQUFyQjtBQUNBb0IsT0FBTy9ELE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQixDIiwiZmlsZSI6IjIzNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF93YXJuaW5nID0gcmVxdWlyZSgnd2FybmluZycpO1xuXG52YXIgX3dhcm5pbmcyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfd2FybmluZyk7XG5cbnZhciBfaW52YXJpYW50ID0gcmVxdWlyZSgnaW52YXJpYW50Jyk7XG5cbnZhciBfaW52YXJpYW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ludmFyaWFudCk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9Sb3V0ZVV0aWxzID0gcmVxdWlyZSgnLi9Sb3V0ZVV0aWxzJyk7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9Qcm9wVHlwZXMnKTtcblxudmFyIGZ1bmMgPSBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLmZ1bmM7XG5cbi8qKlxuICogQW4gPEluZGV4Um91dGU+IGlzIHVzZWQgdG8gc3BlY2lmeSBpdHMgcGFyZW50J3MgPFJvdXRlIGluZGV4Um91dGU+IGluXG4gKiBhIEpTWCByb3V0ZSBjb25maWcuXG4gKi9cblxudmFyIEluZGV4Um91dGUgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKEluZGV4Um91dGUsIF9Db21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIEluZGV4Um91dGUoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluZGV4Um91dGUpO1xuXG4gICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgSW5kZXhSb3V0ZS5jcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQgPSBmdW5jdGlvbiBjcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQoZWxlbWVudCwgcGFyZW50Um91dGUpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZTogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKHBhcmVudFJvdXRlKSB7XG4gICAgICBwYXJlbnRSb3V0ZS5pbmRleFJvdXRlID0gX1JvdXRlVXRpbHMuY3JlYXRlUm91dGVGcm9tUmVhY3RFbGVtZW50KGVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX3dhcm5pbmcyWydkZWZhdWx0J10oZmFsc2UsICdBbiA8SW5kZXhSb3V0ZT4gZG9lcyBub3QgbWFrZSBzZW5zZSBhdCB0aGUgcm9vdCBvZiB5b3VyIHJvdXRlIGNvbmZpZycpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dDogc2FuaXR5IGNoZWNrICovXG5cbiAgSW5kZXhSb3V0ZS5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICFmYWxzZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnPEluZGV4Um91dGU+IGVsZW1lbnRzIGFyZSBmb3Igcm91dGVyIGNvbmZpZ3VyYXRpb24gb25seSBhbmQgc2hvdWxkIG5vdCBiZSByZW5kZXJlZCcpIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKEluZGV4Um91dGUsIG51bGwsIFt7XG4gICAga2V5OiAncHJvcFR5cGVzJyxcbiAgICB2YWx1ZToge1xuICAgICAgcGF0aDogX1Byb3BUeXBlcy5mYWxzeSxcbiAgICAgIGNvbXBvbmVudDogX1Byb3BUeXBlcy5jb21wb25lbnQsXG4gICAgICBjb21wb25lbnRzOiBfUHJvcFR5cGVzLmNvbXBvbmVudHMsXG4gICAgICBnZXRDb21wb25lbnQ6IGZ1bmMsXG4gICAgICBnZXRDb21wb25lbnRzOiBmdW5jXG4gICAgfSxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH1dKTtcblxuICByZXR1cm4gSW5kZXhSb3V0ZTtcbn0pKF9yZWFjdC5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBJbmRleFJvdXRlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9JbmRleFJvdXRlLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 238 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);\n }\n }return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;\n };\n}();\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass)));\n }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _RouteUtils = __webpack_require__(216);\n\nvar _PropTypes = __webpack_require__(232);\n\nvar _React$PropTypes = _react2['default'].PropTypes;\nvar string = _React$PropTypes.string;\nvar func = _React$PropTypes.func;\n\n/**\n * A <Route> is used to declare which components are rendered to the\n * page when the URL matches a given pattern.\n *\n * Routes are arranged in a nested tree structure. When a new URL is\n * requested, the tree is searched depth-first to find a route whose\n * path matches the URL. When one is found, all routes in the tree\n * that lead to it are considered \"active\" and their components are\n * rendered into the DOM, nested in the same order as in the tree.\n */\n\nvar Route = function (_Component) {\n _inherits(Route, _Component);\n\n function Route() {\n _classCallCheck(this, Route);\n\n _Component.apply(this, arguments);\n }\n\n /* istanbul ignore next: sanity check */\n\n Route.prototype.render = function render() {\n true ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, '<Route> elements are for router configuration only and should not be rendered') : _invariant2['default'](false) : undefined;\n };\n\n _createClass(Route, null, [{\n key: 'createRouteFromReactElement',\n value: _RouteUtils.createRouteFromReactElement,\n enumerable: true\n }, {\n key: 'propTypes',\n value: {\n path: string,\n component: _PropTypes.component,\n components: _PropTypes.components,\n getComponent: func,\n getComponents: func\n },\n enumerable: true\n }]);\n\n return Route;\n}(_react.Component);\n\nexports['default'] = Route;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRlLmpzPzdjYzYiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfY3JlYXRlQ2xhc3MiLCJkZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJpIiwibGVuZ3RoIiwiZGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJwcm90b3R5cGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJUeXBlRXJyb3IiLCJfaW5oZXJpdHMiLCJzdWJDbGFzcyIsInN1cGVyQ2xhc3MiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJfaW52YXJpYW50IiwicmVxdWlyZSIsIl9pbnZhcmlhbnQyIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9Sb3V0ZVV0aWxzIiwiX1Byb3BUeXBlcyIsIl9SZWFjdCRQcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJmdW5jIiwiUm91dGUiLCJfQ29tcG9uZW50IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZW5kZXIiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJjcmVhdGVSb3V0ZUZyb21SZWFjdEVsZW1lbnQiLCJwYXRoIiwiY29tcG9uZW50IiwiY29tcG9uZW50cyIsImdldENvbXBvbmVudCIsImdldENvbXBvbmVudHMiLCJDb21wb25lbnQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFB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ZUFBV0MsS0FBWCxDQUFpQixJQUFqQixFQUF1QkMsU0FBdkI7QUFDRDs7QUFFRDs7QUFFQUgsUUFBTXpCLFNBQU4sQ0FBZ0I2QixNQUFoQixHQUF5QixTQUFTQSxNQUFULEdBQWtCO0FBQ3pDLFlBQVNDLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q2hCLFlBQVksU0FBWixFQUF1QixLQUF2QixFQUE4QiwrRUFBOUIsQ0FBeEMsR0FBeUpBLFlBQVksU0FBWixFQUF1QixLQUF2QixDQUFsSyxHQUFrTWlCLFNBQWxNO0FBQ0QsR0FGRDs7QUFJQWpELGVBQWF5QyxLQUFiLEVBQW9CLElBQXBCLEVBQTBCLENBQUM7QUFDekI3QixTQUFLLDZCQURvQjtBQUV6QmUsV0FBT1EsWUFBWWUsMkJBRk07QUFHekIzQyxnQkFBWTtBQUhhLEdBQUQsRUFJdkI7QUFDREssU0FBSyxXQURKO0FBRURlLFdBQU87QUFDTHdCLFlBQU1aLE1BREQ7QUFFTGEsaUJBQVdoQixXQUFXZ0IsU0FGakI7QUFHTEMsa0JBQVlqQixXQUFXaUIsVUFIbEI7QUFJTEMsb0JBQWNkLElBSlQ7QUFLTGUscUJBQWVmO0FBTFYsS0FGTjtBQVNEakMsZ0JBQVk7QUFUWCxHQUp1QixDQUExQjs7QUFnQkEsU0FBT2tDLEtBQVA7QUFDRCxDQWhDVyxDQWdDVFIsT0FBT3VCLFNBaENFLENBQVo7O0FBa0NBMUQsUUFBUSxTQUFSLElBQXFCMkMsS0FBckI7QUFDQWdCLE9BQU8zRCxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyMzguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfaW52YXJpYW50ID0gcmVxdWlyZSgnaW52YXJpYW50Jyk7XG5cbnZhciBfaW52YXJpYW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ludmFyaWFudCk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9Sb3V0ZVV0aWxzID0gcmVxdWlyZSgnLi9Sb3V0ZVV0aWxzJyk7XG5cbnZhciBfUHJvcFR5cGVzID0gcmVxdWlyZSgnLi9Qcm9wVHlwZXMnKTtcblxudmFyIF9SZWFjdCRQcm9wVHlwZXMgPSBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzO1xudmFyIHN0cmluZyA9IF9SZWFjdCRQcm9wVHlwZXMuc3RyaW5nO1xudmFyIGZ1bmMgPSBfUmVhY3QkUHJvcFR5cGVzLmZ1bmM7XG5cbi8qKlxuICogQSA8Um91dGU+IGlzIHVzZWQgdG8gZGVjbGFyZSB3aGljaCBjb21wb25lbnRzIGFyZSByZW5kZXJlZCB0byB0aGVcbiAqIHBhZ2Ugd2hlbiB0aGUgVVJMIG1hdGNoZXMgYSBnaXZlbiBwYXR0ZXJuLlxuICpcbiAqIFJvdXRlcyBhcmUgYXJyYW5nZWQgaW4gYSBuZXN0ZWQgdHJlZSBzdHJ1Y3R1cmUuIFdoZW4gYSBuZXcgVVJMIGlzXG4gKiByZXF1ZXN0ZWQsIHRoZSB0cmVlIGlzIHNlYXJjaGVkIGRlcHRoLWZpcnN0IHRvIGZpbmQgYSByb3V0ZSB3aG9zZVxuICogcGF0aCBtYXRjaGVzIHRoZSBVUkwuICBXaGVuIG9uZSBpcyBmb3VuZCwgYWxsIHJvdXRlcyBpbiB0aGUgdHJlZVxuICogdGhhdCBsZWFkIHRvIGl0IGFyZSBjb25zaWRlcmVkIFwiYWN0aXZlXCIgYW5kIHRoZWlyIGNvbXBvbmVudHMgYXJlXG4gKiByZW5kZXJlZCBpbnRvIHRoZSBET00sIG5lc3RlZCBpbiB0aGUgc2FtZSBvcmRlciBhcyBpbiB0aGUgdHJlZS5cbiAqL1xuXG52YXIgUm91dGUgPSAoZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFJvdXRlLCBfQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBSb3V0ZSgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUm91dGUpO1xuXG4gICAgX0NvbXBvbmVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQ6IHNhbml0eSBjaGVjayAqL1xuXG4gIFJvdXRlLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgIWZhbHNlID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UsICc8Um91dGU+IGVsZW1lbnRzIGFyZSBmb3Igcm91dGVyIGNvbmZpZ3VyYXRpb24gb25seSBhbmQgc2hvdWxkIG5vdCBiZSByZW5kZXJlZCcpIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgX2NyZWF0ZUNsYXNzKFJvdXRlLCBudWxsLCBbe1xuICAgIGtleTogJ2NyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudCcsXG4gICAgdmFsdWU6IF9Sb3V0ZVV0aWxzLmNyZWF0ZVJvdXRlRnJvbVJlYWN0RWxlbWVudCxcbiAgICBlbnVtZXJhYmxlOiB0cnVlXG4gIH0sIHtcbiAgICBrZXk6ICdwcm9wVHlwZXMnLFxuICAgIHZhbHVlOiB7XG4gICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICBjb21wb25lbnQ6IF9Qcm9wVHlwZXMuY29tcG9uZW50LFxuICAgICAgY29tcG9uZW50czogX1Byb3BUeXBlcy5jb21wb25lbnRzLFxuICAgICAgZ2V0Q29tcG9uZW50OiBmdW5jLFxuICAgICAgZ2V0Q29tcG9uZW50czogZnVuY1xuICAgIH0sXG4gICAgZW51bWVyYWJsZTogdHJ1ZVxuICB9XSk7XG5cbiAgcmV0dXJuIFJvdXRlO1xufSkoX3JlYWN0LkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFJvdXRlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9Sb3V0ZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 239 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _PropTypes = __webpack_require__(232);\n\n/**\n * A mixin that adds the \"history\" instance variable to components.\n */\nvar History = {\n\n contextTypes: {\n history: _PropTypes.history\n },\n\n componentWillMount: function componentWillMount() {\n this.history = this.context.history;\n }\n\n};\n\nexports['default'] = History;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0hpc3RvcnkuanM/NjY1YyJdLCJuYW1lcyI6WyJleHBvcnRzIiwiX19lc01vZHVsZSIsIl9Qcm9wVHlwZXMiLCJyZXF1aXJlIiwiSGlzdG9yeSIsImNvbnRleHRUeXBlcyIsImhpc3RvcnkiLCJjb21wb25lbnRXaWxsTW91bnQiLCJjb250ZXh0IiwibW9kdWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsUUFBUUMsVUFBUixHQUFxQixJQUFyQjs7QUFFQSxJQUFJQyxhQUFhLG1CQUFBQyxDQUFRLEdBQVIsQ0FBakI7O0FBRUE7OztBQUdBLElBQUlDLFVBQVU7O0FBRVpDLGdCQUFjO0FBQ1pDLGFBQVNKLFdBQVdJO0FBRFIsR0FGRjs7QUFNWkMsc0JBQW9CLFNBQVNBLGtCQUFULEdBQThCO0FBQ2hELFNBQUtELE9BQUwsR0FBZSxLQUFLRSxPQUFMLENBQWFGLE9BQTVCO0FBQ0Q7O0FBUlcsQ0FBZDs7QUFZQU4sUUFBUSxTQUFSLElBQXFCSSxPQUFyQjtBQUNBSyxPQUFPVCxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIiLCJmaWxlIjoiMjM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX1Byb3BUeXBlcyA9IHJlcXVpcmUoJy4vUHJvcFR5cGVzJyk7XG5cbi8qKlxuICogQSBtaXhpbiB0aGF0IGFkZHMgdGhlIFwiaGlzdG9yeVwiIGluc3RhbmNlIHZhcmlhYmxlIHRvIGNvbXBvbmVudHMuXG4gKi9cbnZhciBIaXN0b3J5ID0ge1xuXG4gIGNvbnRleHRUeXBlczoge1xuICAgIGhpc3Rvcnk6IF9Qcm9wVHlwZXMuaGlzdG9yeVxuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxNb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbE1vdW50KCkge1xuICAgIHRoaXMuaGlzdG9yeSA9IHRoaXMuY29udGV4dC5oaXN0b3J5O1xuICB9XG5cbn07XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IEhpc3Rvcnk7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0hpc3RvcnkuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 240 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar object = _react2['default'].PropTypes.object;\n\n/**\n * The Lifecycle mixin adds the routerWillLeave lifecycle method to a\n * component that may be used to cancel a transition or prompt the user\n * for confirmation.\n *\n * On standard transitions, routerWillLeave receives a single argument: the\n * location we're transitioning to. To cancel the transition, return false.\n * To prompt the user for confirmation, return a prompt message (string).\n *\n * During the beforeunload event (assuming you're using the useBeforeUnload\n * history enhancer), routerWillLeave does not receive a location object\n * because it isn't possible for us to know the location we're transitioning\n * to. In this case routerWillLeave must return a prompt message to prevent\n * the user from closing the window/tab.\n */\nvar Lifecycle = {\n\n contextTypes: {\n history: object.isRequired,\n // Nested children receive the route as context, either\n // set by the route component using the RouteContext mixin\n // or by some other ancestor.\n route: object\n },\n\n propTypes: {\n // Route components receive the route object as a prop.\n route: object\n },\n\n componentDidMount: function componentDidMount() {\n !this.routerWillLeave ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'The Lifecycle mixin requires you to define a routerWillLeave method') : _invariant2['default'](false) : undefined;\n\n var route = this.props.route || this.context.route;\n\n !route ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'The Lifecycle mixin must be used on either a) a <Route component> or ' + 'b) a descendant of a <Route component> that uses the RouteContext mixin') : _invariant2['default'](false) : undefined;\n\n this._unlistenBeforeLeavingRoute = this.context.history.listenBeforeLeavingRoute(route, this.routerWillLeave);\n },\n\n componentWillUnmount: function componentWillUnmount() {\n if (this._unlistenBeforeLeavingRoute) this._unlistenBeforeLeavingRoute();\n }\n\n};\n\nexports['default'] = Lifecycle;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL0xpZmVjeWNsZS5qcz8xOTEzIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVhY3QyIiwiX2ludmFyaWFudCIsIl9pbnZhcmlhbnQyIiwib2JqZWN0IiwiUHJvcFR5cGVzIiwiTGlmZWN5Y2xlIiwiY29udGV4dFR5cGVzIiwiaGlzdG9yeSIsImlzUmVxdWlyZWQiLCJyb3V0ZSIsInByb3BUeXBlcyIsImNvbXBvbmVudERpZE1vdW50Iiwicm91dGVyV2lsbExlYXZlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidW5kZWZpbmVkIiwicHJvcHMiLCJjb250ZXh0IiwiX3VubGlzdGVuQmVmb3JlTGVhdmluZ1JvdXRlIiwibGlzdGVuQmVmb3JlTGVhdmluZ1JvdXRlIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLFNBQVNDLHNCQUFULENBQWdDQyxHQUFoQyxFQUFxQztBQUFFLFNBQU9BLE9BQU9BLElBQUlGLFVBQVgsR0FBd0JFLEdBQXhCLEdBQThCLEVBQUUsV0FBV0EsR0FBYixFQUFyQztBQUEwRDs7QUFFakcsSUFBSUMsU0FBUyxtQkFBQUMsQ0FBUSxDQUFSLENBQWI7O0FBRUEsSUFBSUMsVUFBVUosdUJBQXVCRSxNQUF2QixDQUFkOztBQUVBLElBQUlHLGFBQWEsbUJBQUFGLENBQVEsR0FBUixDQUFqQjs7QUFFQSxJQUFJRyxjQUFjTix1QkFBdUJLLFVBQXZCLENBQWxCOztBQUVBLElBQUlFLFNBQVNILFFBQVEsU0FBUixFQUFtQkksU0FBbkIsQ0FBNkJELE1BQTFDOztBQUVBOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFJRSxZQUFZOztBQUVkQyxnQkFBYztBQUNaQyxhQUFTSixPQUFPSyxVQURKO0FBRVo7QUFDQTtBQUNBO0FBQ0FDLFdBQU9OO0FBTEssR0FGQTs7QUFVZE8sYUFBVztBQUNUO0FBQ0FELFdBQU9OO0FBRkUsR0FWRzs7QUFlZFEscUJBQW1CLFNBQVNBLGlCQUFULEdBQTZCO0FBQzlDLEtBQUMsS0FBS0MsZUFBTixHQUF3QkMsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDYixZQUFZLFNBQVosRUFBdUIsS0FBdkIsRUFBOEIscUVBQTlCLENBQXhDLEdBQStJQSxZQUFZLFNBQVosRUFBdUIsS0FBdkIsQ0FBdkssR0FBdU1jLFNBQXZNOztBQUVBLFFBQUlQLFFBQVEsS0FBS1EsS0FBTCxDQUFXUixLQUFYLElBQW9CLEtBQUtTLE9BQUwsQ0FBYVQsS0FBN0M7O0FBRUEsS0FBQ0EsS0FBRCxHQUFTSSxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBekIsR0FBd0NiLFlBQVksU0FBWixFQUF1QixLQUF2QixFQUE4QiwwRUFBMEUseUVBQXhHLENBQXhDLEdBQTZOQSxZQUFZLFNBQVosRUFBdUIsS0FBdkIsQ0FBdE8sR0FBc1FjLFNBQXRROztBQUVBLFNBQUtHLDJCQUFMLEdBQW1DLEtBQUtELE9BQUwsQ0FBYVgsT0FBYixDQUFxQmEsd0JBQXJCLENBQThDWCxLQUE5QyxFQUFxRCxLQUFLRyxlQUExRCxDQUFuQztBQUNELEdBdkJhOztBQXlCZFMsd0JBQXNCLFNBQVNBLG9CQUFULEdBQWdDO0FBQ3BELFFBQUksS0FBS0YsMkJBQVQsRUFBc0MsS0FBS0EsMkJBQUw7QUFDdkM7O0FBM0JhLENBQWhCOztBQStCQXpCLFFBQVEsU0FBUixJQUFxQlcsU0FBckI7QUFDQWlCLE9BQU81QixPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyNDAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX2ludmFyaWFudCA9IHJlcXVpcmUoJ2ludmFyaWFudCcpO1xuXG52YXIgX2ludmFyaWFudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbnZhcmlhbnQpO1xuXG52YXIgb2JqZWN0ID0gX3JlYWN0MlsnZGVmYXVsdCddLlByb3BUeXBlcy5vYmplY3Q7XG5cbi8qKlxuICogVGhlIExpZmVjeWNsZSBtaXhpbiBhZGRzIHRoZSByb3V0ZXJXaWxsTGVhdmUgbGlmZWN5Y2xlIG1ldGhvZCB0byBhXG4gKiBjb21wb25lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBjYW5jZWwgYSB0cmFuc2l0aW9uIG9yIHByb21wdCB0aGUgdXNlclxuICogZm9yIGNvbmZpcm1hdGlvbi5cbiAqXG4gKiBPbiBzdGFuZGFyZCB0cmFuc2l0aW9ucywgcm91dGVyV2lsbExlYXZlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50OiB0aGVcbiAqIGxvY2F0aW9uIHdlJ3JlIHRyYW5zaXRpb25pbmcgdG8uIFRvIGNhbmNlbCB0aGUgdHJhbnNpdGlvbiwgcmV0dXJuIGZhbHNlLlxuICogVG8gcHJvbXB0IHRoZSB1c2VyIGZvciBjb25maXJtYXRpb24sIHJldHVybiBhIHByb21wdCBtZXNzYWdlIChzdHJpbmcpLlxuICpcbiAqIER1cmluZyB0aGUgYmVmb3JldW5sb2FkIGV2ZW50IChhc3N1bWluZyB5b3UncmUgdXNpbmcgdGhlIHVzZUJlZm9yZVVubG9hZFxuICogaGlzdG9yeSBlbmhhbmNlciksIHJvdXRlcldpbGxMZWF2ZSBkb2VzIG5vdCByZWNlaXZlIGEgbG9jYXRpb24gb2JqZWN0XG4gKiBiZWNhdXNlIGl0IGlzbid0IHBvc3NpYmxlIGZvciB1cyB0byBrbm93IHRoZSBsb2NhdGlvbiB3ZSdyZSB0cmFuc2l0aW9uaW5nXG4gKiB0by4gSW4gdGhpcyBjYXNlIHJvdXRlcldpbGxMZWF2ZSBtdXN0IHJldHVybiBhIHByb21wdCBtZXNzYWdlIHRvIHByZXZlbnRcbiAqIHRoZSB1c2VyIGZyb20gY2xvc2luZyB0aGUgd2luZG93L3RhYi5cbiAqL1xudmFyIExpZmVjeWNsZSA9IHtcblxuICBjb250ZXh0VHlwZXM6IHtcbiAgICBoaXN0b3J5OiBvYmplY3QuaXNSZXF1aXJlZCxcbiAgICAvLyBOZXN0ZWQgY2hpbGRyZW4gcmVjZWl2ZSB0aGUgcm91dGUgYXMgY29udGV4dCwgZWl0aGVyXG4gICAgLy8gc2V0IGJ5IHRoZSByb3V0ZSBjb21wb25lbnQgdXNpbmcgdGhlIFJvdXRlQ29udGV4dCBtaXhpblxuICAgIC8vIG9yIGJ5IHNvbWUgb3RoZXIgYW5jZXN0b3IuXG4gICAgcm91dGU6IG9iamVjdFxuICB9LFxuXG4gIHByb3BUeXBlczoge1xuICAgIC8vIFJvdXRlIGNvbXBvbmVudHMgcmVjZWl2ZSB0aGUgcm91dGUgb2JqZWN0IGFzIGEgcHJvcC5cbiAgICByb3V0ZTogb2JqZWN0XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICF0aGlzLnJvdXRlcldpbGxMZWF2ZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnVGhlIExpZmVjeWNsZSBtaXhpbiByZXF1aXJlcyB5b3UgdG8gZGVmaW5lIGEgcm91dGVyV2lsbExlYXZlIG1ldGhvZCcpIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICB2YXIgcm91dGUgPSB0aGlzLnByb3BzLnJvdXRlIHx8IHRoaXMuY29udGV4dC5yb3V0ZTtcblxuICAgICFyb3V0ZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnVGhlIExpZmVjeWNsZSBtaXhpbiBtdXN0IGJlIHVzZWQgb24gZWl0aGVyIGEpIGEgPFJvdXRlIGNvbXBvbmVudD4gb3IgJyArICdiKSBhIGRlc2NlbmRhbnQgb2YgYSA8Um91dGUgY29tcG9uZW50PiB0aGF0IHVzZXMgdGhlIFJvdXRlQ29udGV4dCBtaXhpbicpIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLl91bmxpc3RlbkJlZm9yZUxlYXZpbmdSb3V0ZSA9IHRoaXMuY29udGV4dC5oaXN0b3J5Lmxpc3RlbkJlZm9yZUxlYXZpbmdSb3V0ZShyb3V0ZSwgdGhpcy5yb3V0ZXJXaWxsTGVhdmUpO1xuICB9LFxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBpZiAodGhpcy5fdW5saXN0ZW5CZWZvcmVMZWF2aW5nUm91dGUpIHRoaXMuX3VubGlzdGVuQmVmb3JlTGVhdmluZ1JvdXRlKCk7XG4gIH1cblxufTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTGlmZWN5Y2xlO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9MaWZlY3ljbGUuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 241 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar object = _react2['default'].PropTypes.object;\n\n/**\n * The RouteContext mixin provides a convenient way for route\n * components to set the route in context. This is needed for\n * routes that render elements that want to use the Lifecycle\n * mixin to prevent transitions.\n */\nvar RouteContext = {\n\n propTypes: {\n route: object.isRequired\n },\n\n childContextTypes: {\n route: object.isRequired\n },\n\n getChildContext: function getChildContext() {\n return {\n route: this.props.route\n };\n }\n\n};\n\nexports['default'] = RouteContext;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRlQ29udGV4dC5qcz85YzBmIl0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9yZWFjdCIsInJlcXVpcmUiLCJfcmVhY3QyIiwib2JqZWN0IiwiUHJvcFR5cGVzIiwiUm91dGVDb250ZXh0IiwicHJvcFR5cGVzIiwicm91dGUiLCJpc1JlcXVpcmVkIiwiY2hpbGRDb250ZXh0VHlwZXMiLCJnZXRDaGlsZENvbnRleHQiLCJwcm9wcyIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFBckI7O0FBRUEsU0FBU0Msc0JBQVQsQ0FBZ0NDLEdBQWhDLEVBQXFDO0FBQUUsU0FBT0EsT0FBT0EsSUFBSUYsVUFBWCxHQUF3QkUsR0FBeEIsR0FBOEIsRUFBRSxXQUFXQSxHQUFiLEVBQXJDO0FBQTBEOztBQUVqRyxJQUFJQyxTQUFTLG1CQUFBQyxDQUFRLENBQVIsQ0FBYjs7QUFFQSxJQUFJQyxVQUFVSix1QkFBdUJFLE1BQXZCLENBQWQ7O0FBRUEsSUFBSUcsU0FBU0QsUUFBUSxTQUFSLEVBQW1CRSxTQUFuQixDQUE2QkQsTUFBMUM7O0FBRUE7Ozs7OztBQU1BLElBQUlFLGVBQWU7O0FBRWpCQyxhQUFXO0FBQ1RDLFdBQU9KLE9BQU9LO0FBREwsR0FGTTs7QUFNakJDLHFCQUFtQjtBQUNqQkYsV0FBT0osT0FBT0s7QUFERyxHQU5GOztBQVVqQkUsbUJBQWlCLFNBQVNBLGVBQVQsR0FBMkI7QUFDMUMsV0FBTztBQUNMSCxhQUFPLEtBQUtJLEtBQUwsQ0FBV0o7QUFEYixLQUFQO0FBR0Q7O0FBZGdCLENBQW5COztBQWtCQVgsUUFBUSxTQUFSLElBQXFCUyxZQUFyQjtBQUNBTyxPQUFPaEIsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCIiwiZmlsZSI6IjI0MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBvYmplY3QgPSBfcmVhY3QyWydkZWZhdWx0J10uUHJvcFR5cGVzLm9iamVjdDtcblxuLyoqXG4gKiBUaGUgUm91dGVDb250ZXh0IG1peGluIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgZm9yIHJvdXRlXG4gKiBjb21wb25lbnRzIHRvIHNldCB0aGUgcm91dGUgaW4gY29udGV4dC4gVGhpcyBpcyBuZWVkZWQgZm9yXG4gKiByb3V0ZXMgdGhhdCByZW5kZXIgZWxlbWVudHMgdGhhdCB3YW50IHRvIHVzZSB0aGUgTGlmZWN5Y2xlXG4gKiBtaXhpbiB0byBwcmV2ZW50IHRyYW5zaXRpb25zLlxuICovXG52YXIgUm91dGVDb250ZXh0ID0ge1xuXG4gIHByb3BUeXBlczoge1xuICAgIHJvdXRlOiBvYmplY3QuaXNSZXF1aXJlZFxuICB9LFxuXG4gIGNoaWxkQ29udGV4dFR5cGVzOiB7XG4gICAgcm91dGU6IG9iamVjdC5pc1JlcXVpcmVkXG4gIH0sXG5cbiAgZ2V0Q2hpbGRDb250ZXh0OiBmdW5jdGlvbiBnZXRDaGlsZENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvdXRlOiB0aGlzLnByb3BzLnJvdXRlXG4gICAgfTtcbiAgfVxuXG59O1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBSb3V0ZUNvbnRleHQ7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL1JvdXRlQ29udGV4dC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 242 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _historyLibCreateMemoryHistory = __webpack_require__(243);\n\nvar _historyLibCreateMemoryHistory2 = _interopRequireDefault(_historyLibCreateMemoryHistory);\n\nvar _historyLibUseBasename = __webpack_require__(244);\n\nvar _historyLibUseBasename2 = _interopRequireDefault(_historyLibUseBasename);\n\nvar _RouteUtils = __webpack_require__(216);\n\nvar _useRoutes = __webpack_require__(220);\n\nvar _useRoutes2 = _interopRequireDefault(_useRoutes);\n\nvar createHistory = _useRoutes2['default'](_historyLibUseBasename2['default'](_historyLibCreateMemoryHistory2['default']));\n\n/**\n * A high-level API to be used for server-side rendering.\n *\n * This function matches a location to a set of routes and calls\n * callback(error, redirectLocation, renderProps) when finished.\n *\n * Note: You probably don't want to use this in a browser. Use\n * the history.listen API instead.\n */\nfunction match(_ref, callback) {\n var routes = _ref.routes;\n var location = _ref.location;\n var parseQueryString = _ref.parseQueryString;\n var stringifyQuery = _ref.stringifyQuery;\n var basename = _ref.basename;\n\n !location ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'match needs a location') : _invariant2['default'](false) : undefined;\n\n var history = createHistory({\n routes: _RouteUtils.createRoutes(routes),\n parseQueryString: parseQueryString,\n stringifyQuery: stringifyQuery,\n basename: basename\n });\n\n // Allow match({ location: '/the/path', ... })\n if (typeof location === 'string') location = history.createLocation(location);\n\n history.match(location, function (error, redirectLocation, nextState) {\n callback(error, redirectLocation, nextState && _extends({}, nextState, { history: history }));\n });\n}\n\nexports['default'] = match;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9yZWFjdC1yb3V0ZXIvbGliL21hdGNoLmpzP2VlYmIiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2ludmFyaWFudCIsInJlcXVpcmUiLCJfaW52YXJpYW50MiIsIl9oaXN0b3J5TGliQ3JlYXRlTWVtb3J5SGlzdG9yeSIsIl9oaXN0b3J5TGliQ3JlYXRlTWVtb3J5SGlzdG9yeTIiLCJfaGlzdG9yeUxpYlVzZUJhc2VuYW1lIiwiX2hpc3RvcnlMaWJVc2VCYXNlbmFtZTIiLCJfUm91dGVVdGlscyIsIl91c2VSb3V0ZXMiLCJfdXNlUm91dGVzMiIsImNyZWF0ZUhpc3RvcnkiLCJtYXRjaCIsIl9yZWYiLCJjYWxsYmFjayIsInJvdXRlcyIsImxvY2F0aW9uIiwicGFyc2VRdWVyeVN0cmluZyIsInN0cmluZ2lmeVF1ZXJ5IiwiYmFzZW5hbWUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1bmRlZmluZWQiLCJoaXN0b3J5IiwiY3JlYXRlUm91dGVzIiwiY3JlYXRlTG9jYXRpb24iLCJlcnJvciIsInJlZGlyZWN0TG9jYXRpb24iLCJuZXh0U3RhdGUiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLFdBQVdDLE9BQU9DLE1BQVAsSUFBaUIsVUFBVUMsTUFBVixFQUFrQjtBQUFFLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxVQUFVQyxNQUE5QixFQUFzQ0YsR0FBdEMsRUFBMkM7QUFBRSxRQUFJRyxTQUFTRixVQUFVRCxDQUFWLENBQWIsQ0FBMkIsS0FBSyxJQUFJSSxHQUFULElBQWdCRCxNQUFoQixFQUF3QjtBQUFFLFVBQUlOLE9BQU9RLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ0osTUFBckMsRUFBNkNDLEdBQTdDLENBQUosRUFBdUQ7QUFBRUwsZUFBT0ssR0FBUCxJQUFjRCxPQUFPQyxHQUFQLENBQWQ7QUFBNEI7QUFBRTtBQUFFLEdBQUMsT0FBT0wsTUFBUDtBQUFnQixDQUFoUTs7QUFFQSxTQUFTUyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJZCxVQUFYLEdBQXdCYyxHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHLElBQUlDLGFBQWEsbUJBQUFDLENBQVEsR0FBUixDQUFqQjs7QUFFQSxJQUFJQyxjQUFjSix1QkFBdUJFLFVBQXZCLENBQWxCOztBQUVBLElBQUlHLGlDQUFpQyxtQkFBQUYsQ0FBUSxHQUFSLENBQXJDOztBQUVBLElBQUlHLGtDQUFrQ04sdUJBQXVCSyw4QkFBdkIsQ0FBdEM7O0FBRUEsSUFBSUUseUJBQXlCLG1CQUFBSixDQUFRLEdBQVIsQ0FBN0I7O0FBRUEsSUFBSUssMEJBQTBCUix1QkFBdUJPLHNCQUF2QixDQUE5Qjs7QUFFQSxJQUFJRSxjQUFjLG1CQUFBTixDQUFRLEdBQVIsQ0FBbEI7O0FBRUEsSUFBSU8sYUFBYSxtQkFBQVAsQ0FBUSxHQUFSLENBQWpCOztBQUVBLElBQUlRLGNBQWNYLHVCQUF1QlUsVUFBdkIsQ0FBbEI7O0FBRUEsSUFBSUUsZ0JBQWdCRCxZQUFZLFNBQVosRUFBdUJILHdCQUF3QixTQUF4QixFQUFtQ0YsZ0NBQWdDLFNBQWhDLENBQW5DLENBQXZCLENBQXBCOztBQUVBOzs7Ozs7Ozs7QUFTQSxTQUFTTyxLQUFULENBQWVDLElBQWYsRUFBcUJDLFFBQXJCLEVBQStCO0FBQzdCLE1BQUlDLFNBQVNGLEtBQUtFLE1BQWxCO0FBQ0EsTUFBSUMsV0FBV0gsS0FBS0csUUFBcEI7QUFDQSxNQUFJQyxtQkFBbUJKLEtBQUtJLGdCQUE1QjtBQUNBLE1BQUlDLGlCQUFpQkwsS0FBS0ssY0FBMUI7QUFDQSxNQUFJQyxXQUFXTixLQUFLTSxRQUFwQjs7QUFFQSxHQUFDSCxRQUFELEdBQVlJLFFBQVFDLEdBQVIsQ0FBWUMsUUFBWixLQUF5QixZQUF6QixHQUF3Q25CLFlBQVksU0FBWixFQUF1QixLQUF2QixFQUE4Qix3QkFBOUIsQ0FBeEMsR0FBa0dBLFlBQVksU0FBWixFQUF1QixLQUF2QixDQUE5RyxHQUE4SW9CLFNBQTlJOztBQUVBLE1BQUlDLFVBQVViLGNBQWM7QUFDMUJJLFlBQVFQLFlBQVlpQixZQUFaLENBQXlCVixNQUF6QixDQURrQjtBQUUxQkUsc0JBQWtCQSxnQkFGUTtBQUcxQkMsb0JBQWdCQSxjQUhVO0FBSTFCQyxjQUFVQTtBQUpnQixHQUFkLENBQWQ7O0FBT0E7QUFDQSxNQUFJLE9BQU9ILFFBQVAsS0FBb0IsUUFBeEIsRUFBa0NBLFdBQVdRLFFBQVFFLGNBQVIsQ0FBdUJWLFFBQXZCLENBQVg7O0FBRWxDUSxVQUFRWixLQUFSLENBQWNJLFFBQWQsRUFBd0IsVUFBVVcsS0FBVixFQUFpQkMsZ0JBQWpCLEVBQW1DQyxTQUFuQyxFQUE4QztBQUNwRWYsYUFBU2EsS0FBVCxFQUFnQkMsZ0JBQWhCLEVBQWtDQyxhQUFhMUMsU0FBUyxFQUFULEVBQWEwQyxTQUFiLEVBQXdCLEVBQUVMLFNBQVNBLE9BQVgsRUFBeEIsQ0FBL0M7QUFDRCxHQUZEO0FBR0Q7O0FBRUR2QyxRQUFRLFNBQVIsSUFBcUIyQixLQUFyQjtBQUNBa0IsT0FBTzdDLE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQixDIiwiZmlsZSI6IjI0Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG52YXIgX2ludmFyaWFudCA9IHJlcXVpcmUoJ2ludmFyaWFudCcpO1xuXG52YXIgX2ludmFyaWFudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9pbnZhcmlhbnQpO1xuXG52YXIgX2hpc3RvcnlMaWJDcmVhdGVNZW1vcnlIaXN0b3J5ID0gcmVxdWlyZSgnaGlzdG9yeS9saWIvY3JlYXRlTWVtb3J5SGlzdG9yeScpO1xuXG52YXIgX2hpc3RvcnlMaWJDcmVhdGVNZW1vcnlIaXN0b3J5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2hpc3RvcnlMaWJDcmVhdGVNZW1vcnlIaXN0b3J5KTtcblxudmFyIF9oaXN0b3J5TGliVXNlQmFzZW5hbWUgPSByZXF1aXJlKCdoaXN0b3J5L2xpYi91c2VCYXNlbmFtZScpO1xuXG52YXIgX2hpc3RvcnlMaWJVc2VCYXNlbmFtZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9oaXN0b3J5TGliVXNlQmFzZW5hbWUpO1xuXG52YXIgX1JvdXRlVXRpbHMgPSByZXF1aXJlKCcuL1JvdXRlVXRpbHMnKTtcblxudmFyIF91c2VSb3V0ZXMgPSByZXF1aXJlKCcuL3VzZVJvdXRlcycpO1xuXG52YXIgX3VzZVJvdXRlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91c2VSb3V0ZXMpO1xuXG52YXIgY3JlYXRlSGlzdG9yeSA9IF91c2VSb3V0ZXMyWydkZWZhdWx0J10oX2hpc3RvcnlMaWJVc2VCYXNlbmFtZTJbJ2RlZmF1bHQnXShfaGlzdG9yeUxpYkNyZWF0ZU1lbW9yeUhpc3RvcnkyWydkZWZhdWx0J10pKTtcblxuLyoqXG4gKiBBIGhpZ2gtbGV2ZWwgQVBJIHRvIGJlIHVzZWQgZm9yIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIG1hdGNoZXMgYSBsb2NhdGlvbiB0byBhIHNldCBvZiByb3V0ZXMgYW5kIGNhbGxzXG4gKiBjYWxsYmFjayhlcnJvciwgcmVkaXJlY3RMb2NhdGlvbiwgcmVuZGVyUHJvcHMpIHdoZW4gZmluaXNoZWQuXG4gKlxuICogTm90ZTogWW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgaW4gYSBicm93c2VyLiBVc2VcbiAqIHRoZSBoaXN0b3J5Lmxpc3RlbiBBUEkgaW5zdGVhZC5cbiAqL1xuZnVuY3Rpb24gbWF0Y2goX3JlZiwgY2FsbGJhY2spIHtcbiAgdmFyIHJvdXRlcyA9IF9yZWYucm91dGVzO1xuICB2YXIgbG9jYXRpb24gPSBfcmVmLmxvY2F0aW9uO1xuICB2YXIgcGFyc2VRdWVyeVN0cmluZyA9IF9yZWYucGFyc2VRdWVyeVN0cmluZztcbiAgdmFyIHN0cmluZ2lmeVF1ZXJ5ID0gX3JlZi5zdHJpbmdpZnlRdWVyeTtcbiAgdmFyIGJhc2VuYW1lID0gX3JlZi5iYXNlbmFtZTtcblxuICAhbG9jYXRpb24gPyBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSwgJ21hdGNoIG5lZWRzIGEgbG9jYXRpb24nKSA6IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UpIDogdW5kZWZpbmVkO1xuXG4gIHZhciBoaXN0b3J5ID0gY3JlYXRlSGlzdG9yeSh7XG4gICAgcm91dGVzOiBfUm91dGVVdGlscy5jcmVhdGVSb3V0ZXMocm91dGVzKSxcbiAgICBwYXJzZVF1ZXJ5U3RyaW5nOiBwYXJzZVF1ZXJ5U3RyaW5nLFxuICAgIHN0cmluZ2lmeVF1ZXJ5OiBzdHJpbmdpZnlRdWVyeSxcbiAgICBiYXNlbmFtZTogYmFzZW5hbWVcbiAgfSk7XG5cbiAgLy8gQWxsb3cgbWF0Y2goeyBsb2NhdGlvbjogJy90aGUvcGF0aCcsIC4uLiB9KVxuICBpZiAodHlwZW9mIGxvY2F0aW9uID09PSAnc3RyaW5nJykgbG9jYXRpb24gPSBoaXN0b3J5LmNyZWF0ZUxvY2F0aW9uKGxvY2F0aW9uKTtcblxuICBoaXN0b3J5Lm1hdGNoKGxvY2F0aW9uLCBmdW5jdGlvbiAoZXJyb3IsIHJlZGlyZWN0TG9jYXRpb24sIG5leHRTdGF0ZSkge1xuICAgIGNhbGxiYWNrKGVycm9yLCByZWRpcmVjdExvY2F0aW9uLCBuZXh0U3RhdGUgJiYgX2V4dGVuZHMoe30sIG5leHRTdGF0ZSwgeyBoaXN0b3J5OiBoaXN0b3J5IH0pKTtcbiAgfSk7XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IG1hdGNoO1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vcmVhY3Qtcm91dGVyL2xpYi9tYXRjaC5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 243 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = __webpack_require__(201);\n\nvar _createHistory = __webpack_require__(206);\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createStateStorage(entries) {\n return entries.filter(function (entry) {\n return entry.state;\n }).reduce(function (memo, entry) {\n memo[entry.key] = entry.state;\n return memo;\n }, {});\n}\n\nfunction createMemoryHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (Array.isArray(options)) {\n options = { entries: options };\n } else if (typeof options === 'string') {\n options = { entries: [options] };\n }\n\n var history = _createHistory2['default'](_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n finishTransition: finishTransition,\n saveState: saveState,\n go: go\n }));\n\n var _options = options;\n var entries = _options.entries;\n var current = _options.current;\n\n if (typeof entries === 'string') {\n entries = [entries];\n } else if (!Array.isArray(entries)) {\n entries = ['/'];\n }\n\n entries = entries.map(function (entry) {\n var key = history.createKey();\n\n if (typeof entry === 'string') return { pathname: entry, key: key };\n\n if ((typeof entry === 'undefined' ? 'undefined' : _typeof(entry)) === 'object' && entry) return _extends({}, entry, { key: key });\n\n true ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Unable to create history entry from %s', entry) : _invariant2['default'](false) : undefined;\n });\n\n if (current == null) {\n current = entries.length - 1;\n } else {\n !(current >= 0 && current < entries.length) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Current index must be >= 0 and < %s, was %s', entries.length, current) : _invariant2['default'](false) : undefined;\n }\n\n var storage = createStateStorage(entries);\n\n function saveState(key, state) {\n storage[key] = state;\n }\n\n function readState(key) {\n return storage[key];\n }\n\n function getCurrentLocation() {\n var entry = entries[current];\n var key = entry.key;\n var basename = entry.basename;\n var pathname = entry.pathname;\n var search = entry.search;\n\n var path = (basename || '') + pathname + (search || '');\n\n var state = undefined;\n if (key) {\n state = readState(key);\n } else {\n state = null;\n key = history.createKey();\n entry.key = key;\n }\n\n return history.createLocation(path, state, undefined, key);\n }\n\n function canGo(n) {\n var index = current + n;\n return index >= 0 && index < entries.length;\n }\n\n function go(n) {\n if (n) {\n !canGo(n) ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Cannot go(%s) there is not enough history', n) : _invariant2['default'](false) : undefined;\n\n current += n;\n\n var currentLocation = getCurrentLocation();\n\n // change action to POP\n history.transitionTo(_extends({}, currentLocation, { action: _Actions.POP }));\n }\n }\n\n function finishTransition(location) {\n switch (location.action) {\n case _Actions.PUSH:\n current += 1;\n\n // if we are not on the top of stack\n // remove rest and push new\n if (current < entries.length) entries.splice(current);\n\n entries.push(location);\n saveState(location.key, location.state);\n break;\n case _Actions.REPLACE:\n entries[current] = location;\n saveState(location.key, location.state);\n break;\n }\n }\n\n return history;\n}\n\nexports['default'] = createMemoryHistory;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9jcmVhdGVNZW1vcnlIaXN0b3J5LmpzPzIwMWIiXSwibmFtZXMiOlsiZXhwb3J0cyIsIl9fZXNNb2R1bGUiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX2ludmFyaWFudCIsInJlcXVpcmUiLCJfaW52YXJpYW50MiIsIl9BY3Rpb25zIiwiX2NyZWF0ZUhpc3RvcnkiLCJfY3JlYXRlSGlzdG9yeTIiLCJjcmVhdGVTdGF0ZVN0b3JhZ2UiLCJlbnRyaWVzIiwiZmlsdGVyIiwiZW50cnkiLCJzdGF0ZSIsInJlZHVjZSIsIm1lbW8iLCJjcmVhdGVNZW1vcnlIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsIkFycmF5IiwiaXNBcnJheSIsImhpc3RvcnkiLCJnZXRDdXJyZW50TG9jYXRpb24iLCJmaW5pc2hUcmFuc2l0aW9uIiwic2F2ZVN0YXRlIiwiZ28iLCJfb3B0aW9ucyIsImN1cnJlbnQiLCJtYXAiLCJjcmVhdGVLZXkiLCJwYXRobmFtZSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInN0b3JhZ2UiLCJyZWFkU3RhdGUiLCJiYXNlbmFtZSIsInNlYXJjaCIsInBhdGgiLCJjcmVhdGVMb2NhdGlvbiIsImNhbkdvIiwibiIsImluZGV4IiwiY3VycmVudExvY2F0aW9uIiwidHJhbnNpdGlvblRvIiwiYWN0aW9uIiwiUE9QIiwibG9jYXRpb24iLCJQVVNIIiwic3BsaWNlIiwicHVzaCIsIlJFUExBQ0UiLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBRUFBLFFBQVFDLFVBQVIsR0FBcUIsSUFB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OEIsRUFBRUUsUUFBUXZDLFNBQVN3QyxHQUFuQixFQUE5QixDQUFyQjtBQUNEO0FBQ0Y7O0FBRUQsV0FBU3ZCLGdCQUFULENBQTBCd0IsUUFBMUIsRUFBb0M7QUFDbEMsWUFBUUEsU0FBU0YsTUFBakI7QUFDRSxXQUFLdkMsU0FBUzBDLElBQWQ7QUFDRXJCLG1CQUFXLENBQVg7O0FBRUE7QUFDQTtBQUNBLFlBQUlBLFVBQVVqQixRQUFRZixNQUF0QixFQUE4QmUsUUFBUXVDLE1BQVIsQ0FBZXRCLE9BQWY7O0FBRTlCakIsZ0JBQVF3QyxJQUFSLENBQWFILFFBQWI7QUFDQXZCLGtCQUFVdUIsU0FBU2xELEdBQW5CLEVBQXdCa0QsU0FBU2xDLEtBQWpDO0FBQ0E7QUFDRixXQUFLUCxTQUFTNkMsT0FBZDtBQUNFekMsZ0JBQVFpQixPQUFSLElBQW1Cb0IsUUFBbkI7QUFDQXZCLGtCQUFVdUIsU0FBU2xELEdBQW5CLEVBQXdCa0QsU0FBU2xDLEtBQWpDO0FBQ0E7QUFkSjtBQWdCRDs7QUFFRCxTQUFPUSxPQUFQO0FBQ0Q7O0FBRURsQyxRQUFRLFNBQVIsSUFBcUI2QixtQkFBckI7QUFDQW9DLE9BQU9qRSxPQUFQLEdBQWlCQSxRQUFRLFNBQVIsQ0FBakIsQyIsImZpbGUiOiIyNDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxudmFyIF9pbnZhcmlhbnQgPSByZXF1aXJlKCdpbnZhcmlhbnQnKTtcblxudmFyIF9pbnZhcmlhbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaW52YXJpYW50KTtcblxudmFyIF9BY3Rpb25zID0gcmVxdWlyZSgnLi9BY3Rpb25zJyk7XG5cbnZhciBfY3JlYXRlSGlzdG9yeSA9IHJlcXVpcmUoJy4vY3JlYXRlSGlzdG9yeScpO1xuXG52YXIgX2NyZWF0ZUhpc3RvcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlSGlzdG9yeSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRlU3RvcmFnZShlbnRyaWVzKSB7XG4gIHJldHVybiBlbnRyaWVzLmZpbHRlcihmdW5jdGlvbiAoZW50cnkpIHtcbiAgICByZXR1cm4gZW50cnkuc3RhdGU7XG4gIH0pLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZW50cnkpIHtcbiAgICBtZW1vW2VudHJ5LmtleV0gPSBlbnRyeS5zdGF0ZTtcbiAgICByZXR1cm4gbWVtbztcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVNZW1vcnlIaXN0b3J5KCkge1xuICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IHt9IDogYXJndW1lbnRzWzBdO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHsgZW50cmllczogb3B0aW9ucyB9O1xuICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgIG9wdGlvbnMgPSB7IGVudHJpZXM6IFtvcHRpb25zXSB9O1xuICB9XG5cbiAgdmFyIGhpc3RvcnkgPSBfY3JlYXRlSGlzdG9yeTJbJ2RlZmF1bHQnXShfZXh0ZW5kcyh7fSwgb3B0aW9ucywge1xuICAgIGdldEN1cnJlbnRMb2NhdGlvbjogZ2V0Q3VycmVudExvY2F0aW9uLFxuICAgIGZpbmlzaFRyYW5zaXRpb246IGZpbmlzaFRyYW5zaXRpb24sXG4gICAgc2F2ZVN0YXRlOiBzYXZlU3RhdGUsXG4gICAgZ286IGdvXG4gIH0pKTtcblxuICB2YXIgX29wdGlvbnMgPSBvcHRpb25zO1xuICB2YXIgZW50cmllcyA9IF9vcHRpb25zLmVudHJpZXM7XG4gIHZhciBjdXJyZW50ID0gX29wdGlvbnMuY3VycmVudDtcblxuICBpZiAodHlwZW9mIGVudHJpZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgZW50cmllcyA9IFtlbnRyaWVzXTtcbiAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSkge1xuICAgIGVudHJpZXMgPSBbJy8nXTtcbiAgfVxuXG4gIGVudHJpZXMgPSBlbnRyaWVzLm1hcChmdW5jdGlvbiAoZW50cnkpIHtcbiAgICB2YXIga2V5ID0gaGlzdG9yeS5jcmVhdGVLZXkoKTtcblxuICAgIGlmICh0eXBlb2YgZW50cnkgPT09ICdzdHJpbmcnKSByZXR1cm4geyBwYXRobmFtZTogZW50cnksIGtleToga2V5IH07XG5cbiAgICBpZiAodHlwZW9mIGVudHJ5ID09PSAnb2JqZWN0JyAmJiBlbnRyeSkgcmV0dXJuIF9leHRlbmRzKHt9LCBlbnRyeSwgeyBrZXk6IGtleSB9KTtcblxuICAgICFmYWxzZSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnVW5hYmxlIHRvIGNyZWF0ZSBoaXN0b3J5IGVudHJ5IGZyb20gJXMnLCBlbnRyeSkgOiBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgfSk7XG5cbiAgaWYgKGN1cnJlbnQgPT0gbnVsbCkge1xuICAgIGN1cnJlbnQgPSBlbnRyaWVzLmxlbmd0aCAtIDE7XG4gIH0gZWxzZSB7XG4gICAgIShjdXJyZW50ID49IDAgJiYgY3VycmVudCA8IGVudHJpZXMubGVuZ3RoKSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnQ3VycmVudCBpbmRleCBtdXN0IGJlID49IDAgYW5kIDwgJXMsIHdhcyAlcycsIGVudHJpZXMubGVuZ3RoLCBjdXJyZW50KSA6IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgdmFyIHN0b3JhZ2UgPSBjcmVhdGVTdGF0ZVN0b3JhZ2UoZW50cmllcyk7XG5cbiAgZnVuY3Rpb24gc2F2ZVN0YXRlKGtleSwgc3RhdGUpIHtcbiAgICBzdG9yYWdlW2tleV0gPSBzdGF0ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWRTdGF0ZShrZXkpIHtcbiAgICByZXR1cm4gc3RvcmFnZVtrZXldO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Q3VycmVudExvY2F0aW9uKCkge1xuICAgIHZhciBlbnRyeSA9IGVudHJpZXNbY3VycmVudF07XG4gICAgdmFyIGtleSA9IGVudHJ5LmtleTtcbiAgICB2YXIgYmFzZW5hbWUgPSBlbnRyeS5iYXNlbmFtZTtcbiAgICB2YXIgcGF0aG5hbWUgPSBlbnRyeS5wYXRobmFtZTtcbiAgICB2YXIgc2VhcmNoID0gZW50cnkuc2VhcmNoO1xuXG4gICAgdmFyIHBhdGggPSAoYmFzZW5hbWUgfHwgJycpICsgcGF0aG5hbWUgKyAoc2VhcmNoIHx8ICcnKTtcblxuICAgIHZhciBzdGF0ZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoa2V5KSB7XG4gICAgICBzdGF0ZSA9IHJlYWRTdGF0ZShrZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZSA9IG51bGw7XG4gICAgICBrZXkgPSBoaXN0b3J5LmNyZWF0ZUtleSgpO1xuICAgICAgZW50cnkua2V5ID0ga2V5O1xuICAgIH1cblxuICAgIHJldHVybiBoaXN0b3J5LmNyZWF0ZUxvY2F0aW9uKHBhdGgsIHN0YXRlLCB1bmRlZmluZWQsIGtleSk7XG4gIH1cblxuICBmdW5jdGlvbiBjYW5HbyhuKSB7XG4gICAgdmFyIGluZGV4ID0gY3VycmVudCArIG47XG4gICAgcmV0dXJuIGluZGV4ID49IDAgJiYgaW5kZXggPCBlbnRyaWVzLmxlbmd0aDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdvKG4pIHtcbiAgICBpZiAobikge1xuICAgICAgIWNhbkdvKG4pID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IF9pbnZhcmlhbnQyWydkZWZhdWx0J10oZmFsc2UsICdDYW5ub3QgZ28oJXMpIHRoZXJlIGlzIG5vdCBlbm91Z2ggaGlzdG9yeScsIG4pIDogX2ludmFyaWFudDJbJ2RlZmF1bHQnXShmYWxzZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGN1cnJlbnQgKz0gbjtcblxuICAgICAgdmFyIGN1cnJlbnRMb2NhdGlvbiA9IGdldEN1cnJlbnRMb2NhdGlvbigpO1xuXG4gICAgICAvLyBjaGFuZ2UgYWN0aW9uIHRvIFBPUFxuICAgICAgaGlzdG9yeS50cmFuc2l0aW9uVG8oX2V4dGVuZHMoe30sIGN1cnJlbnRMb2NhdGlvbiwgeyBhY3Rpb246IF9BY3Rpb25zLlBPUCB9KSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZmluaXNoVHJhbnNpdGlvbihsb2NhdGlvbikge1xuICAgIHN3aXRjaCAobG9jYXRpb24uYWN0aW9uKSB7XG4gICAgICBjYXNlIF9BY3Rpb25zLlBVU0g6XG4gICAgICAgIGN1cnJlbnQgKz0gMTtcblxuICAgICAgICAvLyBpZiB3ZSBhcmUgbm90IG9uIHRoZSB0b3Agb2Ygc3RhY2tcbiAgICAgICAgLy8gcmVtb3ZlIHJlc3QgYW5kIHB1c2ggbmV3XG4gICAgICAgIGlmIChjdXJyZW50IDwgZW50cmllcy5sZW5ndGgpIGVudHJpZXMuc3BsaWNlKGN1cnJlbnQpO1xuXG4gICAgICAgIGVudHJpZXMucHVzaChsb2NhdGlvbik7XG4gICAgICAgIHNhdmVTdGF0ZShsb2NhdGlvbi5rZXksIGxvY2F0aW9uLnN0YXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIF9BY3Rpb25zLlJFUExBQ0U6XG4gICAgICAgIGVudHJpZXNbY3VycmVudF0gPSBsb2NhdGlvbjtcbiAgICAgICAgc2F2ZVN0YXRlKGxvY2F0aW9uLmtleSwgbG9jYXRpb24uc3RhdGUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaGlzdG9yeTtcbn1cblxuZXhwb3J0c1snZGVmYXVsdCddID0gY3JlYXRlTWVtb3J5SGlzdG9yeTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL2NyZWF0ZU1lbW9yeUhpc3RvcnkuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 244 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n }return target;\n}\n\nvar _ExecutionEnvironment = __webpack_require__(202);\n\nvar _runTransitionHook = __webpack_require__(214);\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _extractPath = __webpack_require__(213);\n\nvar _extractPath2 = _interopRequireDefault(_extractPath);\n\nvar _parsePath = __webpack_require__(212);\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction useBasename(createHistory) {\n return function () {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var basename = options.basename;\n\n var historyOptions = _objectWithoutProperties(options, ['basename']);\n\n var history = createHistory(historyOptions);\n\n // Automatically use the value of <base href> in HTML\n // documents as basename if it's not explicitly given.\n if (basename == null && _ExecutionEnvironment.canUseDOM) {\n var base = document.getElementsByTagName('base')[0];\n\n if (base) basename = _extractPath2['default'](base.href);\n }\n\n function addBasename(location) {\n if (basename && location.basename == null) {\n if (location.pathname.indexOf(basename) === 0) {\n location.pathname = location.pathname.substring(basename.length);\n location.basename = basename;\n\n if (location.pathname === '') location.pathname = '/';\n } else {\n location.basename = '';\n }\n }\n\n return location;\n }\n\n function prependBasename(path) {\n if (!basename) return path;\n\n if (typeof path === 'string') path = _parsePath2['default'](path);\n\n var pname = path.pathname;\n var normalizedBasename = basename.slice(-1) === '/' ? basename : basename + '/';\n var normalizedPathname = pname.charAt(0) === '/' ? pname.slice(1) : pname;\n var pathname = normalizedBasename + normalizedPathname;\n\n return _extends({}, path, {\n pathname: pathname\n });\n }\n\n // Override all read methods with basename-aware versions.\n function listenBefore(hook) {\n return history.listenBefore(function (location, callback) {\n _runTransitionHook2['default'](hook, addBasename(location), callback);\n });\n }\n\n function listen(listener) {\n return history.listen(function (location) {\n listener(addBasename(location));\n });\n }\n\n // Override all write methods with basename-aware versions.\n function pushState(state, path) {\n history.pushState(state, prependBasename(path));\n }\n\n function push(path) {\n pushState(null, path);\n }\n\n function replaceState(state, path) {\n history.replaceState(state, prependBasename(path));\n }\n\n function replace(path) {\n replaceState(null, path);\n }\n\n function createPath(path) {\n return history.createPath(prependBasename(path));\n }\n\n function createHref(path) {\n return history.createHref(prependBasename(path));\n }\n\n function createLocation() {\n return addBasename(history.createLocation.apply(history, arguments));\n }\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen,\n pushState: pushState,\n push: push,\n replaceState: replaceState,\n replace: replace,\n createPath: createPath,\n createHref: createHref,\n createLocation: createLocation\n });\n };\n}\n\nexports['default'] = useBasename;\nmodule.exports = exports['default'];//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi91c2VCYXNlbmFtZS5qcz9jYTg4Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImtleXMiLCJpbmRleE9mIiwiX0V4ZWN1dGlvbkVudmlyb25tZW50IiwicmVxdWlyZSIsIl9ydW5UcmFuc2l0aW9uSG9vayIsIl9ydW5UcmFuc2l0aW9uSG9vazIiLCJfZXh0cmFjdFBhdGgiLCJfZXh0cmFjdFBhdGgyIiwiX3BhcnNlUGF0aCIsIl9wYXJzZVBhdGgyIiwidXNlQmFzZW5hbWUiLCJjcmVhdGVIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsImJhc2VuYW1lIiwiaGlzdG9yeU9wdGlvbnMiLCJoaXN0b3J5IiwiY2FuVXNlRE9NIiwiYmFzZSIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJocmVmIiwiYWRkQmFzZW5hbWUiLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwic3Vic3RyaW5nIiwicHJlcGVuZEJhc2VuYW1lIiwicGF0aCIsInBuYW1lIiwibm9ybWFsaXplZEJhc2VuYW1lIiwic2xpY2UiLCJub3JtYWxpemVkUGF0aG5hbWUiLCJjaGFyQXQiLCJsaXN0ZW5CZWZvcmUiLCJob29rIiwiY2FsbGJhY2siLCJsaXN0ZW4iLCJsaXN0ZW5lciIsInB1c2hTdGF0ZSIsInN0YXRlIiwicHVzaCIsInJlcGxhY2VTdGF0ZSIsInJlcGxhY2UiLCJjcmVhdGVQYXRoIiwiY3JlYXRlSHJlZiIsImNy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QUZtQjtBQUczQkUsaUJBQVdBLFNBSGdCO0FBSTNCRSxZQUFNQSxJQUpxQjtBQUszQkMsb0JBQWNBLFlBTGE7QUFNM0JDLGVBQVNBLE9BTmtCO0FBTzNCQyxrQkFBWUEsVUFQZTtBQVEzQkMsa0JBQVlBLFVBUmU7QUFTM0JDLHNCQUFnQkE7QUFUVyxLQUF0QixDQUFQO0FBV0QsR0FuR0Q7QUFvR0Q7O0FBRUQ5RCxRQUFRLFNBQVIsSUFBcUIyQixXQUFyQjtBQUNBcUMsT0FBT2hFLE9BQVAsR0FBaUJBLFFBQVEsU0FBUixDQUFqQiIsImZpbGUiOiIyNDQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG52YXIgX0V4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xuXG52YXIgX3J1blRyYW5zaXRpb25Ib29rID0gcmVxdWlyZSgnLi9ydW5UcmFuc2l0aW9uSG9vaycpO1xuXG52YXIgX3J1blRyYW5zaXRpb25Ib29rMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3J1blRyYW5zaXRpb25Ib29rKTtcblxudmFyIF9leHRyYWN0UGF0aCA9IHJlcXVpcmUoJy4vZXh0cmFjdFBhdGgnKTtcblxudmFyIF9leHRyYWN0UGF0aDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9leHRyYWN0UGF0aCk7XG5cbnZhciBfcGFyc2VQYXRoID0gcmVxdWlyZSgnLi9wYXJzZVBhdGgnKTtcblxudmFyIF9wYXJzZVBhdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcGFyc2VQYXRoKTtcblxuZnVuY3Rpb24gdXNlQmFzZW5hbWUoY3JlYXRlSGlzdG9yeSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMF07XG4gICAgdmFyIGJhc2VuYW1lID0gb3B0aW9ucy5iYXNlbmFtZTtcblxuICAgIHZhciBoaXN0b3J5T3B0aW9ucyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhvcHRpb25zLCBbJ2Jhc2VuYW1lJ10pO1xuXG4gICAgdmFyIGhpc3RvcnkgPSBjcmVhdGVIaXN0b3J5KGhpc3RvcnlPcHRpb25zKTtcblxuICAgIC8vIEF1dG9tYXRpY2FsbHkgdXNlIHRoZSB2YWx1ZSBvZiA8YmFzZSBocmVmPiBpbiBIVE1MXG4gICAgLy8gZG9jdW1lbnRzIGFzIGJhc2VuYW1lIGlmIGl0J3Mgbm90IGV4cGxpY2l0bHkgZ2l2ZW4uXG4gICAgaWYgKGJhc2VuYW1lID09IG51bGwgJiYgX0V4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAgICAgdmFyIGJhc2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYmFzZScpWzBdO1xuXG4gICAgICBpZiAoYmFzZSkgYmFzZW5hbWUgPSBfZXh0cmFjdFBhdGgyWydkZWZhdWx0J10oYmFzZS5ocmVmKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRCYXNlbmFtZShsb2NhdGlvbikge1xuICAgICAgaWYgKGJhc2VuYW1lICYmIGxvY2F0aW9uLmJhc2VuYW1lID09IG51bGwpIHtcbiAgICAgICAgaWYgKGxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoYmFzZW5hbWUpID09PSAwKSB7XG4gICAgICAgICAgbG9jYXRpb24ucGF0aG5hbWUgPSBsb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoYmFzZW5hbWUubGVuZ3RoKTtcbiAgICAgICAgICBsb2NhdGlvbi5iYXNlbmFtZSA9IGJhc2VuYW1lO1xuXG4gICAgICAgICAgaWYgKGxvY2F0aW9uLnBhdGhuYW1lID09PSAnJykgbG9jYXRpb24ucGF0aG5hbWUgPSAnLyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9jYXRpb24uYmFzZW5hbWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcGVuZEJhc2VuYW1lKHBhdGgpIHtcbiAgICAgIGlmICghYmFzZW5hbWUpIHJldHVybiBwYXRoO1xuXG4gICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSBwYXRoID0gX3BhcnNlUGF0aDJbJ2RlZmF1bHQnXShwYXRoKTtcblxuICAgICAgdmFyIHBuYW1lID0gcGF0aC5wYXRobmFtZTtcbiAgICAgIHZhciBub3JtYWxpemVkQmFzZW5hbWUgPSBiYXNlbmFtZS5zbGljZSgtMSkgPT09ICcvJyA/IGJhc2VuYW1lIDogYmFzZW5hbWUgKyAnLyc7XG4gICAgICB2YXIgbm9ybWFsaXplZFBhdGhuYW1lID0gcG5hbWUuY2hhckF0KDApID09PSAnLycgPyBwbmFtZS5zbGljZSgxKSA6IHBuYW1lO1xuICAgICAgdmFyIHBhdGhuYW1lID0gbm9ybWFsaXplZEJhc2VuYW1lICsgbm9ybWFsaXplZFBhdGhuYW1lO1xuXG4gICAgICByZXR1cm4gX2V4dGVuZHMoe30sIHBhdGgsIHtcbiAgICAgICAgcGF0aG5hbWU6IHBhdGhuYW1lXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBPdmVycmlkZSBhbGwgcmVhZCBtZXRob2RzIHdpdGggYmFzZW5hbWUtYXdhcmUgdmVyc2lvbnMuXG4gICAgZnVuY3Rpb24gbGlzdGVuQmVmb3JlKGhvb2spIHtcbiAgICAgIHJldHVybiBoaXN0b3J5Lmxpc3RlbkJlZm9yZShmdW5jdGlvbiAobG9jYXRpb24sIGNhbGxiYWNrKSB7XG4gICAgICAgIF9ydW5UcmFuc2l0aW9uSG9vazJbJ2RlZmF1bHQnXShob29rLCBhZGRCYXNlbmFtZShsb2NhdGlvbiksIGNhbGxiYWNrKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RlbihsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIGhpc3RvcnkubGlzdGVuKGZ1bmN0aW9uIChsb2NhdGlvbikge1xuICAgICAgICBsaXN0ZW5lcihhZGRCYXNlbmFtZShsb2NhdGlvbikpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT3ZlcnJpZGUgYWxsIHdyaXRlIG1ldGhvZHMgd2l0aCBiYXNlbmFtZS1hd2FyZSB2ZXJzaW9ucy5cbiAgICBmdW5jdGlvbiBwdXNoU3RhdGUoc3RhdGUsIHBhdGgpIHtcbiAgICAgIGhpc3RvcnkucHVzaFN0YXRlKHN0YXRlLCBwcmVwZW5kQmFzZW5hbWUocGF0aCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHB1c2gocGF0aCkge1xuICAgICAgcHVzaFN0YXRlKG51bGwsIHBhdGgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlcGxhY2VTdGF0ZShzdGF0ZSwgcGF0aCkge1xuICAgICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoc3RhdGUsIHByZXBlbmRCYXNlbmFtZShwYXRoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVwbGFjZShwYXRoKSB7XG4gICAgICByZXBsYWNlU3RhdGUobnVsbCwgcGF0aCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlUGF0aChwYXRoKSB7XG4gICAgICByZXR1cm4gaGlzdG9yeS5jcmVhdGVQYXRoKHByZXBlbmRCYXNlbmFtZShwYXRoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSHJlZihwYXRoKSB7XG4gICAgICByZXR1cm4gaGlzdG9yeS5jcmVhdGVIcmVmKHByZXBlbmRCYXNlbmFtZShwYXRoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYXRpb24oKSB7XG4gICAgICByZXR1cm4gYWRkQmFzZW5hbWUoaGlzdG9yeS5jcmVhdGVMb2NhdGlvbi5hcHBseShoaXN0b3J5LCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2V4dGVuZHMoe30sIGhpc3RvcnksIHtcbiAgICAgIGxpc3RlbkJlZm9yZTogbGlzdGVuQmVmb3JlLFxuICAgICAgbGlzdGVuOiBsaXN0ZW4sXG4gICAgICBwdXNoU3RhdGU6IHB1c2hTdGF0ZSxcbiAgICAgIHB1c2g6IHB1c2gsXG4gICAgICByZXBsYWNlU3RhdGU6IHJlcGxhY2VTdGF0ZSxcbiAgICAgIHJlcGxhY2U6IHJlcGxhY2UsXG4gICAgICBjcmVhdGVQYXRoOiBjcmVhdGVQYXRoLFxuICAgICAgY3JlYXRlSHJlZjogY3JlYXRlSHJlZixcbiAgICAgIGNyZWF0ZUxvY2F0aW9uOiBjcmVhdGVMb2NhdGlvblxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnRzWydkZWZhdWx0J10gPSB1c2VCYXNlbmFtZTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9+L2hpc3RvcnkvbGliL3VzZUJhc2VuYW1lLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 245 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(180);\n\nvar _reactRouter = __webpack_require__(197);\n\nvar _actions = __webpack_require__(192);\n\nvar Actions = _interopRequireWildcard(_actions);\n\nvar _selectors = __webpack_require__(193);\n\nvar Selectors = _interopRequireWildcard(_selectors);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n format: state.format,\n isMarkdownFormat: Selectors.isMarkdownFormat(state)\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onSetPlaintextFormat: function onSetPlaintextFormat(format) {\n return dispatch(Actions.setPlaintextFormat());\n },\n onSetMarkdownFormat: function onSetMarkdownFormat(format) {\n return dispatch(Actions.setMarkdownFormat());\n }\n };\n};\n\nvar MainControls = function (_React$Component) {\n _inherits(MainControls, _React$Component);\n\n function MainControls() {\n _classCallCheck(this, MainControls);\n\n return _possibleConstructorReturn(this, (MainControls.__proto__ || Object.getPrototypeOf(MainControls)).apply(this, arguments));\n }\n\n _createClass(MainControls, [{\n key: 'onClickCompare',\n value: function onClickCompare() {}\n }, {\n key: 'onClickMarkdownFormat',\n value: function onClickMarkdownFormat() {\n if (this.props.isMarkdownFormat) this.props.onSetPlaintextFormat();else this.props.onSetMarkdownFormat();\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'form-group' },\n _react2.default.createElement(\n 'div',\n { className: 'controls well col-lg-12' },\n _react2.default.createElement(\n _reactRouter.Link,\n { to: 'compare', className: 'btn btn-block btn-primary' },\n 'Compare'\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'controls well btn-group col-lg-12' },\n _react2.default.createElement(\n 'a',\n { className: (this.props.isMarkdownFormat ? \"active \" : \"\") + \"btn btn-block btn-primary\", type: 'submit', onClick: this.onClickMarkdownFormat.bind(this) },\n _react2.default.createElement('span', { className: (this.props.isMarkdownFormat ? \"glyphicon-ok \" : \"\") + \"glyphicon\" }),\n '\\xA0 As Markdown'\n )\n )\n );\n }\n }]);\n\n return MainControls;\n}(_react2.default.Component);\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(MainControls);\n\n/*\n<a type=\"button\" onClick={this.onClickCompare.bind(this)} className=\"btn btn-block btn-primary\">compare</a>*///# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvTWFpbkNvbnRyb2xzLmpzP2I1NDciXSwibmFtZXMiOlsiQWN0aW9ucyIsIlNlbGVjdG9ycyIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZm9ybWF0IiwiaXNNYXJrZG93bkZvcm1hdCIsIm1hcERpc3BhdGNoVG9Qcm9wcyIsIm9uU2V0UGxhaW50ZXh0Rm9ybWF0IiwiZGlzcGF0Y2giLCJzZXRQbGFpbnRleHRGb3JtYXQiLCJvblNldE1hcmtkb3duRm9ybWF0Iiwic2V0TWFya2Rvd25Gb3JtYXQiLCJNYWluQ29udHJvbHMiLCJwcm9wcyIsIm9uQ2xpY2tNYXJrZG93bkZvcm1hdCIsImJpbmQiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7QUFFQTs7SUFBWUEsTzs7QUFDWjs7SUFBWUMsUzs7Ozs7Ozs7Ozs7O0FBRVosSUFBTUMsa0JBQWtCLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUNsQ0MsWUFBUUQsTUFBTUMsTUFEb0I7QUFFbENDLHNCQUFrQkosVUFBVUksZ0JBQVYsQ0FBMkJGLEtBQTNCO0FBRmdCLEdBQVo7QUFBQSxDQUF4Qjs7QUFNQSxJQUFNRyxxQkFBcUIsU0FBckJBLGtCQUFxQjtBQUFBLFNBQWE7QUFDdENDLDBCQUFzQiw4QkFBQ0gsTUFBRDtBQUFBLGFBQVlJLFNBQVNSLFFBQVFTLGtCQUFSLEVBQVQsQ0FBWjtBQUFBLEtBRGdCO0FBRXRDQyx5QkFBcUIsNkJBQUNOLE1BQUQ7QUFBQSxhQUFZSSxTQUFTUixRQUFRVyxpQkFBUixFQUFULENBQVo7QUFBQTtBQUZpQixHQUFiO0FBQUEsQ0FBM0I7O0lBS01DLFk7Ozs7Ozs7Ozs7O3FDQUVhLENBRWhCOzs7NENBRXVCO0FBQ3RCLFVBQUksS0FBS0MsS0FBTCxDQUFXUixnQkFBZixFQUNFLEtBQUtRLEtBQUwsQ0FBV04sb0JBQVgsR0FERixLQUdFLEtBQUtNLEtBQUwsQ0FBV0gsbUJBQVg7QUFDSDs7OzZCQUdRO0FBQ1AsYUFDRTtBQUFBO0FBQUEsVUFBSyxXQUFVLFlBQWY7QUFDRTtBQUFBO0FBQUEsWUFBSyxXQUFVLHlCQUFmO0FBQ0E7QUFBQTtBQUFBLGNBQU0sSUFBRyxTQUFULEVBQW1CLFdBQVUsMkJBQTdCO0FBQUE7QUFBQTtBQURBLFNBREY7QUFJRTtBQUFBO0FBQUEsWUFBSyxXQUFVLG1DQUFmO0FBQ0U7QUFBQTtBQUFBLGNBQUcsV0FBVyxDQUFDLEtBQUtHLEtBQUwsQ0FBV1IsZ0JBQVgsR0FBOEIsU0FBOUIsR0FBMEMsRUFBM0MsSUFBK0MsMkJBQTdELEVBQTBGLE1BQUssUUFBL0YsRUFBd0csU0FBUyxLQUFLUyxxQkFBTCxDQUEyQkMsSUFBM0IsQ0FBZ0MsSUFBaEMsQ0FBakg7QUFDRSxvREFBTSxXQUFXLENBQUMsS0FBS0YsS0FBTCxDQUFXUixnQkFBWCxHQUE4QixlQUE5QixHQUFnRCxFQUFqRCxJQUF1RCxXQUF4RSxHQURGO0FBQUE7QUFBQTtBQURGO0FBSkYsT0FERjtBQWFEOzs7O0VBNUJ3QixnQkFBTVcsUzs7a0JBK0JsQix5QkFBUWQsZUFBUixFQUF5Qkksa0JBQXpCLEVBQTZDTSxZQUE3QyxDOztBQUVmIiwiZmlsZSI6IjI0NS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnXG5pbXBvcnQge0xpbmt9IGZyb20gJ3JlYWN0LXJvdXRlcidcblxuaW1wb3J0ICogYXMgQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zJ1xuaW1wb3J0ICogYXMgU2VsZWN0b3JzIGZyb20gJy4uL3NlbGVjdG9ycydcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBmb3JtYXQ6IHN0YXRlLmZvcm1hdCwgXG4gIGlzTWFya2Rvd25Gb3JtYXQ6IFNlbGVjdG9ycy5pc01hcmtkb3duRm9ybWF0KHN0YXRlKVxufSlcblxuICBcbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IGRpc3BhdGNoID0+ICh7XG4gIG9uU2V0UGxhaW50ZXh0Rm9ybWF0OiAoZm9ybWF0KSA9PiBkaXNwYXRjaChBY3Rpb25zLnNldFBsYWludGV4dEZvcm1hdCgpKSxcbiAgb25TZXRNYXJrZG93bkZvcm1hdDogKGZvcm1hdCkgPT4gZGlzcGF0Y2goQWN0aW9ucy5zZXRNYXJrZG93bkZvcm1hdCgpKVxufSlcblxuY2xhc3MgTWFpbkNvbnRyb2xzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICBvbkNsaWNrQ29tcGFyZSgpIHtcblxuICB9XG5cbiAgb25DbGlja01hcmtkb3duRm9ybWF0KCkge1xuICAgIGlmICh0aGlzLnByb3BzLmlzTWFya2Rvd25Gb3JtYXQpXG4gICAgICB0aGlzLnByb3BzLm9uU2V0UGxhaW50ZXh0Rm9ybWF0KClcbiAgICBlbHNlXG4gICAgICB0aGlzLnByb3BzLm9uU2V0TWFya2Rvd25Gb3JtYXQoKVxuICB9XG5cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRyb2xzIHdlbGwgY29sLWxnLTEyXCI+XG4gICAgICAgIDxMaW5rIHRvPVwiY29tcGFyZVwiIGNsYXNzTmFtZT1cImJ0biBidG4tYmxvY2sgYnRuLXByaW1hcnlcIj5Db21wYXJlPC9MaW5rPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250cm9scyB3ZWxsIGJ0bi1ncm91cCBjb2wtbGctMTJcIj5cbiAgICAgICAgICA8YSBjbGFzc05hbWU9eyh0aGlzLnByb3BzLmlzTWFya2Rvd25Gb3JtYXQgPyBcImFjdGl2ZSBcIiA6IFwiXCIpK1wiYnRuIGJ0bi1ibG9jayBidG4tcHJpbWFyeVwifSB0eXBlPVwic3VibWl0XCIgb25DbGljaz17dGhpcy5vbkNsaWNrTWFya2Rvd25Gb3JtYXQuYmluZCh0aGlzKX0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eyh0aGlzLnByb3BzLmlzTWFya2Rvd25Gb3JtYXQgPyBcImdseXBoaWNvbi1vayBcIiA6IFwiXCIpICsgXCJnbHlwaGljb25cIn0+PC9zcGFuPlxuICAgICAgICAgICAgJm5ic3A7IEFzIE1hcmtkb3duXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzKShNYWluQ29udHJvbHMpXG5cbi8qXG48YSB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17dGhpcy5vbkNsaWNrQ29tcGFyZS5iaW5kKHRoaXMpfSBjbGFzc05hbWU9XCJidG4gYnRuLWJsb2NrIGJ0bi1wcmltYXJ5XCI+Y29tcGFyZTwvYT4qL1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9zcmMvY29tcG9uZW50cy9NYWluQ29udHJvbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 246 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(180);\n\nvar _actions = __webpack_require__(192);\n\nvar Actions = _interopRequireWildcard(_actions);\n\nvar _selectors = __webpack_require__(193);\n\nvar Selectors = _interopRequireWildcard(_selectors);\n\nvar _Header = __webpack_require__(196);\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _CompareControls = __webpack_require__(247);\n\nvar _CompareControls2 = _interopRequireDefault(_CompareControls);\n\nvar _Show = __webpack_require__(248);\n\nvar _Show2 = _interopRequireDefault(_Show);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n isMarkdownFormat: Selectors.isMarkdownFormat(state),\n isShowOriginal: Selectors.isShowOriginal(state),\n isShowFinal: Selectors.isShowFinal(state),\n isShowDifference: Selectors.isShowDifference(state),\n safeInput: Selectors.safeInput(state),\n diff: Selectors.diff(state)\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {};\n};\n\nvar Compare = function (_React$Component) {\n _inherits(Compare, _React$Component);\n\n function Compare() {\n _classCallCheck(this, Compare);\n\n return _possibleConstructorReturn(this, (Compare.__proto__ || Object.getPrototypeOf(Compare)).apply(this, arguments));\n }\n\n _createClass(Compare, [{\n key: 'render',\n value: function render() {\n console.log(this.props.safeInput);\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n 'div',\n { className: 'container' },\n _react2.default.createElement(\n 'form',\n { className: 'row' },\n _react2.default.createElement(\n 'div',\n { className: 'col-md-2 col-sm-12' },\n _react2.default.createElement(_CompareControls2.default, null)\n ),\n _react2.default.createElement(\n 'div',\n { className: 'col-md-10 col-sm-12 content-well' },\n this.props.isShowDifference ? _react2.default.createElement(\n 'div',\n null,\n this.props.diff\n ) : _react2.default.createElement(_Show2.default, {\n text: this.props.isShowOriginal ? this.props.safeInput.original : this.props.safeInput.final,\n isMarkdownFormat: this.props.isMarkdownFormat\n })\n )\n )\n )\n );\n }\n }]);\n\n return Compare;\n}(_react2.default.Component);\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Compare);\n\n/* <div ng-if=\"isMarkdownFormat\">\n <div ng-show=\"isShowBefore\" class=\"col-md-10 col-sm-12 content-well\">\n <div btf-markdown=\"before\" class=\"before\"> \n </div>\n </div>\n <div ng-show=\"isShowWdiff\" class=\"col-md-10 col-sm-12 content-well\">\n <div btf-markdown=\"wdiff\" class=\"wdiff\">\n </div>\n </div>\n <div ng-show=\"isShowAfter\" class=\"col-md-10 col-sm-12 content-well\">\n <div btf-markdown=\"after\" class=\"after\">\n </div>\n </div>\n </div>\n <div ng-if=\"!isMarkdownFormat\">\n <div ng-show=\"isShowBefore\" class=\"col-md-10 col-sm-12 content-well\">\n <div ng-bind-html=\"before\" class=\"content-pre before\"></div>\n </div>\n <div ng-show=\"isShowWdiff\" class=\"col-md-10 col-sm-12 content-well\">\n <div ng-bind-html=\"wdiff\" class=\"content-pre wdiff\"></div>\n </div>\n <div ng-show=\"isShowAfter\" class=\"col-md-10 col-sm-12 content-well\">\n <div ng-bind-html=\"after\" class=\"content-pre after\"></div>\n </div>\n </div>\n*///# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvQ29tcGFyZS5qcz82MzQwIl0sIm5hbWVzIjpbIkFjdGlvbnMiLCJTZWxlY3RvcnMiLCJtYXBTdGF0ZVRvUHJvcHMiLCJzdGF0ZSIsImlzTWFya2Rvd25Gb3JtYXQiLCJpc1Nob3dPcmlnaW5hbCIsImlzU2hvd0ZpbmFsIiwiaXNTaG93RGlmZmVyZW5jZSIsInNhZmVJbnB1dCIsImRpZmYiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJDb21wYXJlIiwiY29uc29sZSIsImxvZyIsInByb3BzIiwib3JpZ2luYWwiLCJmaW5hbCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUNBOztBQUVBOztJQUFZQSxPOztBQUNaOztJQUFZQyxTOztBQUVaOzs7O0FBQ0E7Ozs7QUFFQTs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQyxrQkFBa0IsU0FBbEJBLGVBQWtCLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ2xDQyxzQkFBa0JILFVBQVVHLGdCQUFWLENBQTJCRCxLQUEzQixDQURnQjtBQUVsQ0Usb0JBQWdCSixVQUFVSSxjQUFWLENBQXlCRixLQUF6QixDQUZrQjtBQUdsQ0csaUJBQWFMLFVBQVVLLFdBQVYsQ0FBc0JILEtBQXRCLENBSHFCO0FBSWxDSSxzQkFBa0JOLFVBQVVNLGdCQUFWLENBQTJCSixLQUEzQixDQUpnQjtBQUtsQ0ssZUFBV1AsVUFBVU8sU0FBVixDQUFvQkwsS0FBcEIsQ0FMdUI7QUFNbENNLFVBQU1SLFVBQVVRLElBQVYsQ0FBZU4sS0FBZjtBQU40QixHQUFaO0FBQUEsQ0FBeEI7O0FBU0EsSUFBTU8scUJBQXFCLFNBQXJCQSxrQkFBcUI7QUFBQSxTQUFhLEVBQWI7QUFBQSxDQUEzQjs7SUFLTUMsTzs7Ozs7Ozs7Ozs7NkJBRUs7QUFDUEMsY0FBUUMsR0FBUixDQUFZLEtBQUtDLEtBQUwsQ0FBV04sU0FBdkI7QUFDQSxhQUNFO0FBQUE7QUFBQTtBQUNFLDZEQURGO0FBRUU7QUFBQTtBQUFBLFlBQUssV0FBVSxXQUFmO0FBQ0U7QUFBQTtBQUFBLGNBQU0sV0FBVSxLQUFoQjtBQUNFO0FBQUE7QUFBQSxnQkFBSyxXQUFVLG9CQUFmO0FBQ0U7QUFERixhQURGO0FBSUk7QUFBQTtBQUFBLGdCQUFLLFdBQVUsa0NBQWY7QUFDTSxtQkFBS00sS0FBTCxDQUFXUCxnQkFBWCxHQUVBO0FBQUE7QUFBQTtBQUFNLHFCQUFLTyxLQUFMLENBQVdMO0FBQWpCLGVBRkEsR0FJQTtBQUNFLHNCQUFNLEtBQUtLLEtBQUwsQ0FBV1QsY0FBWCxHQUEyQixLQUFLUyxLQUFMLENBQVdOLFNBQVgsQ0FBcUJPLFFBQWhELEdBQTBELEtBQUtELEtBQUwsQ0FBV04sU0FBWCxDQUFxQlEsS0FEdkY7QUFFRSxrQ0FBa0IsS0FBS0YsS0FBTCxDQUFXVjtBQUYvQjtBQUxOO0FBSko7QUFERjtBQUZGLE9BREY7QUF3QkQ7Ozs7RUE1Qm1CLGdCQUFNYSxTOztrQkErQmIseUJBQVFmLGVBQVIsRUFBeUJRLGtCQUF6QixFQUE2Q0MsT0FBN0MsQzs7QUFHZiIsImZpbGUiOiIyNDYuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge2Nvbm5lY3R9IGZyb20gJ3JlYWN0LXJlZHV4J1xuXG5pbXBvcnQgKiBhcyBBY3Rpb25zIGZyb20gJy4uL2FjdGlvbnMnXG5pbXBvcnQgKiBhcyBTZWxlY3RvcnMgZnJvbSAnLi4vc2VsZWN0b3JzJ1xuXG5pbXBvcnQgSGVhZGVyIGZyb20gJy4vSGVhZGVyJ1xuaW1wb3J0IENvbXBhcmVDb250cm9scyBmcm9tICcuL0NvbXBhcmVDb250cm9scydcblxuaW1wb3J0IFNob3cgZnJvbSAnLi9TaG93J1xuXG5jb25zdCBtYXBTdGF0ZVRvUHJvcHMgPSAoc3RhdGUpID0+ICh7XG4gIGlzTWFya2Rvd25Gb3JtYXQ6IFNlbGVjdG9ycy5pc01hcmtkb3duRm9ybWF0KHN0YXRlKSxcbiAgaXNTaG93T3JpZ2luYWw6IFNlbGVjdG9ycy5pc1Nob3dPcmlnaW5hbChzdGF0ZSksXG4gIGlzU2hvd0ZpbmFsOiBTZWxlY3RvcnMuaXNTaG93RmluYWwoc3RhdGUpLFxuICBpc1Nob3dEaWZmZXJlbmNlOiBTZWxlY3RvcnMuaXNTaG93RGlmZmVyZW5jZShzdGF0ZSksXG4gIHNhZmVJbnB1dDogU2VsZWN0b3JzLnNhZmVJbnB1dChzdGF0ZSksXG4gIGRpZmY6IFNlbGVjdG9ycy5kaWZmKHN0YXRlKVxufSlcblxuY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gZGlzcGF0Y2ggPT4gKHtcbn0pXG5cblxuXG5jbGFzcyBDb21wYXJlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5wcm9wcy5zYWZlSW5wdXQpXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxIZWFkZXIvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRhaW5lclwiPlxuICAgICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtMiBjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgPENvbXBhcmVDb250cm9scy8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2wtbWQtMTAgY29sLXNtLTEyIGNvbnRlbnQtd2VsbFwiPlxuICAgICAgICAgICAgICAgICAgeyB0aGlzLnByb3BzLmlzU2hvd0RpZmZlcmVuY2UgP1xuXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3RoaXMucHJvcHMuZGlmZn08L2Rpdj46IFxuXG4gICAgICAgICAgICAgICAgICAgIDxTaG93IFxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9e3RoaXMucHJvcHMuaXNTaG93T3JpZ2luYWw/IHRoaXMucHJvcHMuc2FmZUlucHV0Lm9yaWdpbmFsOiB0aGlzLnByb3BzLnNhZmVJbnB1dC5maW5hbH0gXG4gICAgICAgICAgICAgICAgICAgICAgaXNNYXJrZG93bkZvcm1hdD17dGhpcy5wcm9wcy5pc01hcmtkb3duRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzKShDb21wYXJlKVxuXG5cbi8qICAgIDxkaXYgbmctaWY9XCJpc01hcmtkb3duRm9ybWF0XCI+XG4gICAgICA8ZGl2IG5nLXNob3c9XCJpc1Nob3dCZWZvcmVcIiBjbGFzcz1cImNvbC1tZC0xMCBjb2wtc20tMTIgY29udGVudC13ZWxsXCI+XG4gICAgICAgIDxkaXYgYnRmLW1hcmtkb3duPVwiYmVmb3JlXCIgY2xhc3M9XCJiZWZvcmVcIj4gXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IG5nLXNob3c9XCJpc1Nob3dXZGlmZlwiIGNsYXNzPVwiY29sLW1kLTEwIGNvbC1zbS0xMiBjb250ZW50LXdlbGxcIj5cbiAgICAgICAgPGRpdiBidGYtbWFya2Rvd249XCJ3ZGlmZlwiIGNsYXNzPVwid2RpZmZcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgbmctc2hvdz1cImlzU2hvd0FmdGVyXCIgY2xhc3M9XCJjb2wtbWQtMTAgY29sLXNtLTEyIGNvbnRlbnQtd2VsbFwiPlxuICAgICAgICA8ZGl2IGJ0Zi1tYXJrZG93bj1cImFmdGVyXCIgY2xhc3M9XCJhZnRlclwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgbmctaWY9XCIhaXNNYXJrZG93bkZvcm1hdFwiPlxuICAgICAgPGRpdiBuZy1zaG93PVwiaXNTaG93QmVmb3JlXCIgY2xhc3M9XCJjb2wtbWQtMTAgY29sLXNtLTEyIGNvbnRlbnQtd2VsbFwiPlxuICAgICAgICA8ZGl2IG5nLWJpbmQtaHRtbD1cImJlZm9yZVwiIGNsYXNzPVwiY29udGVudC1wcmUgYmVmb3JlXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgbmctc2hvdz1cImlzU2hvd1dkaWZmXCIgY2xhc3M9XCJjb2wtbWQtMTAgY29sLXNtLTEyIGNvbnRlbnQtd2VsbFwiPlxuICAgICAgICA8ZGl2IG5nLWJpbmQtaHRtbD1cIndkaWZmXCIgY2xhc3M9XCJjb250ZW50LXByZSB3ZGlmZlwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IG5nLXNob3c9XCJpc1Nob3dBZnRlclwiIGNsYXNzPVwiY29sLW1kLTEwIGNvbC1zbS0xMiBjb250ZW50LXdlbGxcIj5cbiAgICAgICAgPGRpdiBuZy1iaW5kLWh0bWw9XCJhZnRlclwiIGNsYXNzPVwiY29udGVudC1wcmUgYWZ0ZXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuKi9cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvQ29tcGFyZS5qcyJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 247 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(180);\n\nvar _reactRouter = __webpack_require__(197);\n\nvar _actions = __webpack_require__(192);\n\nvar Actions = _interopRequireWildcard(_actions);\n\nvar _selectors = __webpack_require__(193);\n\nvar Selectors = _interopRequireWildcard(_selectors);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n isMarkdownFormat: Selectors.isMarkdownFormat(state),\n isShowOriginal: Selectors.isShowOriginal(state),\n isShowFinal: Selectors.isShowFinal(state),\n isShowDifference: Selectors.isShowDifference(state)\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onSetPlaintextFormat: function onSetPlaintextFormat() {\n return dispatch(Actions.setPlaintextFormat());\n },\n onSetMarkdownFormat: function onSetMarkdownFormat() {\n return dispatch(Actions.setMarkdownFormat());\n },\n onShowOriginal: function onShowOriginal() {\n return dispatch(Actions.showOriginal());\n },\n onShowFinal: function onShowFinal() {\n return dispatch(Actions.showFinal());\n },\n onShowDifference: function onShowDifference() {\n return dispatch(Actions.showDifference());\n }\n\n };\n};\n\nvar CompareControls = function (_React$Component) {\n _inherits(CompareControls, _React$Component);\n\n function CompareControls() {\n _classCallCheck(this, CompareControls);\n\n return _possibleConstructorReturn(this, (CompareControls.__proto__ || Object.getPrototypeOf(CompareControls)).apply(this, arguments));\n }\n\n _createClass(CompareControls, [{\n key: 'onClickCompare',\n value: function onClickCompare() {}\n }, {\n key: 'onClickMarkdownFormat',\n value: function onClickMarkdownFormat() {\n if (this.props.isMarkdownFormat) this.props.onSetPlaintextFormat();else this.props.onSetMarkdownFormat();\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'div',\n { className: 'form-group' },\n _react2.default.createElement(\n 'div',\n { className: 'controls well btn-group col-lg-12' },\n _react2.default.createElement(\n 'a',\n { type: 'submit', onClick: this.props.onShowOriginal, className: (this.props.isShowOriginal ? 'active ' : '') + 'btn btn-block btn-primary' },\n 'Original'\n ),\n _react2.default.createElement(\n 'a',\n { type: 'submit', onClick: this.props.onShowFinal, className: (this.props.isShowFinal ? 'active ' : '') + 'btn btn-block btn-primary' },\n 'Final'\n ),\n _react2.default.createElement(\n 'a',\n { type: 'submit', onClick: this.props.onShowDifference, className: (this.props.isShowDifference ? 'active ' : '') + 'btn btn-block btn-primary' },\n 'Difference'\n )\n ),\n _react2.default.createElement(\n 'div',\n { className: 'controls well btn-group col-lg-12' },\n _react2.default.createElement(\n 'a',\n { className: (this.props.isMarkdownFormat ? \"active \" : \"\") + \"btn btn-block btn-primary\", type: 'submit', onClick: this.onClickMarkdownFormat.bind(this) },\n _react2.default.createElement('span', { className: (this.props.isMarkdownFormat ? \"glyphicon-ok \" : \"\") + \"glyphicon\" }),\n '\\xA0 As Markdown'\n )\n )\n );\n }\n }]);\n\n return CompareControls;\n}(_react2.default.Component);\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(CompareControls);//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvQ29tcGFyZUNvbnRyb2xzLmpzPzZmZDkiXSwibmFtZXMiOlsiQWN0aW9ucyIsIlNlbGVjdG9ycyIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiaXNNYXJrZG93bkZvcm1hdCIsImlzU2hvd09yaWdpbmFsIiwiaXNTaG93RmluYWwiLCJpc1Nob3dEaWZmZXJlbmNlIiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwib25TZXRQbGFpbnRleHRGb3JtYXQiLCJkaXNwYXRjaCIsInNldFBsYWludGV4dEZvcm1hdCIsIm9uU2V0TWFya2Rvd25Gb3JtYXQiLCJzZXRNYXJrZG93bkZvcm1hdCIsIm9uU2hvd09yaWdpbmFsIiwic2hvd09yaWdpbmFsIiwib25TaG93RmluYWwiLCJzaG93RmluYWwiLCJvblNob3dEaWZmZXJlbmNlIiwic2hvd0RpZmZlcmVuY2UiLCJDb21wYXJlQ29udHJvbHMiLCJwcm9wcyIsIm9uQ2xpY2tNYXJrZG93bkZvcm1hdCIsImJpbmQiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7QUFFQTs7SUFBWUEsTzs7QUFDWjs7SUFBWUMsUzs7Ozs7Ozs7Ozs7O0FBRVosSUFBTUMsa0JBQWtCLFNBQWxCQSxlQUFrQixDQUFDQyxLQUFEO0FBQUEsU0FBWTtBQUNsQ0Msc0JBQWtCSCxVQUFVRyxnQkFBVixDQUEyQkQsS0FBM0IsQ0FEZ0I7QUFFbENFLG9CQUFnQkosVUFBVUksY0FBVixDQUF5QkYsS0FBekIsQ0FGa0I7QUFHbENHLGlCQUFhTCxVQUFVSyxXQUFWLENBQXNCSCxLQUF0QixDQUhxQjtBQUlsQ0ksc0JBQWtCTixVQUFVTSxnQkFBVixDQUEyQkosS0FBM0I7QUFKZ0IsR0FBWjtBQUFBLENBQXhCOztBQVFBLElBQU1LLHFCQUFxQixTQUFyQkEsa0JBQXFCO0FBQUEsU0FBYTtBQUN0Q0MsMEJBQXNCO0FBQUEsYUFBTUMsU0FBU1YsUUFBUVcsa0JBQVIsRUFBVCxDQUFOO0FBQUEsS0FEZ0I7QUFFdENDLHlCQUFxQjtBQUFBLGFBQU1GLFNBQVNWLFFBQVFhLGlCQUFSLEVBQVQsQ0FBTjtBQUFBLEtBRmlCO0FBR3RDQyxvQkFBZ0I7QUFBQSxhQUFNSixTQUFTVixRQUFRZSxZQUFSLEVBQVQsQ0FBTjtBQUFBLEtBSHNCO0FBSXRDQyxpQkFBYTtBQUFBLGFBQU1OLFNBQVNWLFFBQVFpQixTQUFSLEVBQVQsQ0FBTjtBQUFBLEtBSnlCO0FBS3RDQyxzQkFBa0I7QUFBQSxhQUFNUixTQUFTVixRQUFRbUIsY0FBUixFQUFULENBQU47QUFBQTs7QUFMb0IsR0FBYjtBQUFBLENBQTNCOztJQVNNQyxlOzs7Ozs7Ozs7OztxQ0FFYSxDQUVoQjs7OzRDQUV1QjtBQUN0QixVQUFJLEtBQUtDLEtBQUwsQ0FBV2pCLGdCQUFmLEVBQ0UsS0FBS2lCLEtBQUwsQ0FBV1osb0JBQVgsR0FERixLQUdFLEtBQUtZLEtBQUwsQ0FBV1QsbUJBQVg7QUFDSDs7OzZCQUdRO0FBQ1AsYUFDRTtBQUFBO0FBQUEsVUFBSyxXQUFVLFlBQWY7QUFDRztBQUFBO0FBQUEsWUFBSyxXQUFVLG1DQUFmO0FBQ0M7QUFBQTtBQUFBLGNBQUcsTUFBSyxRQUFSLEVBQWlCLFNBQVMsS0FBS1MsS0FBTCxDQUFXUCxjQUFyQyxFQUFxRCxXQUFXLENBQUMsS0FBS08sS0FBTCxDQUFXaEIsY0FBWCxHQUEwQixTQUExQixHQUFvQyxFQUFyQyxJQUF5QywyQkFBekc7QUFBQTtBQUFBLFdBREQ7QUFFQztBQUFBO0FBQUEsY0FBRyxNQUFLLFFBQVIsRUFBaUIsU0FBUyxLQUFLZ0IsS0FBTCxDQUFXTCxXQUFyQyxFQUFrRCxXQUFXLENBQUMsS0FBS0ssS0FBTCxDQUFXZixXQUFYLEdBQXVCLFNBQXZCLEdBQWlDLEVBQWxDLElBQXNDLDJCQUFuRztBQUFBO0FBQUEsV0FGRDtBQUdDO0FBQUE7QUFBQSxjQUFHLE1BQUssUUFBUixFQUFpQixTQUFTLEtBQUtlLEtBQUwsQ0FBV0gsZ0JBQXJDLEVBQXVELFdBQVcsQ0FBQyxLQUFLRyxLQUFMLENBQVdkLGdCQUFYLEdBQTRCLFNBQTVCLEdBQXNDLEVBQXZDLElBQTJDLDJCQUE3RztBQUFBO0FBQUE7QUFIRCxTQURIO0FBTUU7QUFBQTtBQUFBLFlBQUssV0FBVSxtQ0FBZjtBQUNFO0FBQUE7QUFBQSxjQUFHLFdBQVcsQ0FBQyxLQUFLYyxLQUFMLENBQVdqQixnQkFBWCxHQUE4QixTQUE5QixHQUEwQyxFQUEzQyxJQUErQywyQkFBN0QsRUFBMEYsTUFBSyxRQUEvRixFQUF3RyxTQUFTLEtBQUtrQixxQkFBTCxDQUEyQkMsSUFBM0IsQ0FBZ0MsSUFBaEMsQ0FBakg7QUFDRSxvREFBTSxXQUFXLENBQUMsS0FBS0YsS0FBTCxDQUFXakIsZ0JBQVgsR0FBOEIsZUFBOUIsR0FBZ0QsRUFBakQsSUFBdUQsV0FBeEUsR0FERjtBQUFBO0FBQUE7QUFERjtBQU5GLE9BREY7QUFlRDs7OztFQTlCMkIsZ0JBQU1vQixTOztrQkFpQ3JCLHlCQUFRdEIsZUFBUixFQUF5Qk0sa0JBQXpCLEVBQTZDWSxlQUE3QyxDIiwiZmlsZSI6IjI0Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7Y29ubmVjdH0gZnJvbSAncmVhY3QtcmVkdXgnXG5pbXBvcnQge0xpbmt9IGZyb20gJ3JlYWN0LXJvdXRlcidcblxuaW1wb3J0ICogYXMgQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zJ1xuaW1wb3J0ICogYXMgU2VsZWN0b3JzIGZyb20gJy4uL3NlbGVjdG9ycydcblxuY29uc3QgbWFwU3RhdGVUb1Byb3BzID0gKHN0YXRlKSA9PiAoe1xuICBpc01hcmtkb3duRm9ybWF0OiBTZWxlY3RvcnMuaXNNYXJrZG93bkZvcm1hdChzdGF0ZSksXG4gIGlzU2hvd09yaWdpbmFsOiBTZWxlY3RvcnMuaXNTaG93T3JpZ2luYWwoc3RhdGUpLFxuICBpc1Nob3dGaW5hbDogU2VsZWN0b3JzLmlzU2hvd0ZpbmFsKHN0YXRlKSxcbiAgaXNTaG93RGlmZmVyZW5jZTogU2VsZWN0b3JzLmlzU2hvd0RpZmZlcmVuY2Uoc3RhdGUpLFxufSlcblxuICBcbmNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IGRpc3BhdGNoID0+ICh7XG4gIG9uU2V0UGxhaW50ZXh0Rm9ybWF0OiAoKSA9PiBkaXNwYXRjaChBY3Rpb25zLnNldFBsYWludGV4dEZvcm1hdCgpKSxcbiAgb25TZXRNYXJrZG93bkZvcm1hdDogKCkgPT4gZGlzcGF0Y2goQWN0aW9ucy5zZXRNYXJrZG93bkZvcm1hdCgpKSwgXG4gIG9uU2hvd09yaWdpbmFsOiAoKSA9PiBkaXNwYXRjaChBY3Rpb25zLnNob3dPcmlnaW5hbCgpKSxcbiAgb25TaG93RmluYWw6ICgpID0+IGRpc3BhdGNoKEFjdGlvbnMuc2hvd0ZpbmFsKCkpLFxuICBvblNob3dEaWZmZXJlbmNlOiAoKSA9PiBkaXNwYXRjaChBY3Rpb25zLnNob3dEaWZmZXJlbmNlKCkpLFxuXG59KVxuXG5jbGFzcyBDb21wYXJlQ29udHJvbHMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuXG4gIG9uQ2xpY2tDb21wYXJlKCkge1xuXG4gIH1cblxuICBvbkNsaWNrTWFya2Rvd25Gb3JtYXQoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMuaXNNYXJrZG93bkZvcm1hdClcbiAgICAgIHRoaXMucHJvcHMub25TZXRQbGFpbnRleHRGb3JtYXQoKVxuICAgIGVsc2VcbiAgICAgIHRoaXMucHJvcHMub25TZXRNYXJrZG93bkZvcm1hdCgpXG4gIH1cblxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRyb2xzIHdlbGwgYnRuLWdyb3VwIGNvbC1sZy0xMlwiPlxuICAgICAgICAgIDxhIHR5cGU9XCJzdWJtaXRcIiBvbkNsaWNrPXt0aGlzLnByb3BzLm9uU2hvd09yaWdpbmFsfSBjbGFzc05hbWU9eyh0aGlzLnByb3BzLmlzU2hvd09yaWdpbmFsPydhY3RpdmUgJzonJykrJ2J0biBidG4tYmxvY2sgYnRuLXByaW1hcnknfT5PcmlnaW5hbDwvYT5cbiAgICAgICAgICA8YSB0eXBlPVwic3VibWl0XCIgb25DbGljaz17dGhpcy5wcm9wcy5vblNob3dGaW5hbH0gY2xhc3NOYW1lPXsodGhpcy5wcm9wcy5pc1Nob3dGaW5hbD8nYWN0aXZlICc6JycpKydidG4gYnRuLWJsb2NrIGJ0bi1wcmltYXJ5J30+RmluYWw8L2E+XG4gICAgICAgICAgPGEgdHlwZT1cInN1Ym1pdFwiIG9uQ2xpY2s9e3RoaXMucHJvcHMub25TaG93RGlmZmVyZW5jZX0gY2xhc3NOYW1lPXsodGhpcy5wcm9wcy5pc1Nob3dEaWZmZXJlbmNlPydhY3RpdmUgJzonJykrJ2J0biBidG4tYmxvY2sgYnRuLXByaW1hcnknfT5EaWZmZXJlbmNlPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250cm9scyB3ZWxsIGJ0bi1ncm91cCBjb2wtbGctMTJcIj5cbiAgICAgICAgICA8YSBjbGFzc05hbWU9eyh0aGlzLnByb3BzLmlzTWFya2Rvd25Gb3JtYXQgPyBcImFjdGl2ZSBcIiA6IFwiXCIpK1wiYnRuIGJ0bi1ibG9jayBidG4tcHJpbWFyeVwifSB0eXBlPVwic3VibWl0XCIgb25DbGljaz17dGhpcy5vbkNsaWNrTWFya2Rvd25Gb3JtYXQuYmluZCh0aGlzKX0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eyh0aGlzLnByb3BzLmlzTWFya2Rvd25Gb3JtYXQgPyBcImdseXBoaWNvbi1vayBcIiA6IFwiXCIpICsgXCJnbHlwaGljb25cIn0+PC9zcGFuPlxuICAgICAgICAgICAgJm5ic3A7IEFzIE1hcmtkb3duXG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFwRGlzcGF0Y2hUb1Byb3BzKShDb21wYXJlQ29udHJvbHMpXG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9zcmMvY29tcG9uZW50cy9Db21wYXJlQ29udHJvbHMuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 248 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Show = function Show(props) {\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n 'pre',\n null,\n props.text\n )\n );\n};\n\nexports.default = Show;//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvc3JjL2NvbXBvbmVudHMvU2hvdy5qcz81NzYxIl0sIm5hbWVzIjpbIlNob3ciLCJwcm9wcyIsInRleHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7Ozs7QUFFQSxJQUFNQSxPQUFPLFNBQVBBLElBQU8sQ0FBQ0MsS0FBRDtBQUFBLFNBQ1g7QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBO0FBQ0dBLFlBQU1DO0FBRFQ7QUFERixHQURXO0FBQUEsQ0FBYjs7a0JBUWVGLEkiLCJmaWxlIjoiMjQ4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBTaG93ID0gKHByb3BzKSA9PiAoXG4gIDxkaXY+XG4gICAgPHByZT5cbiAgICAgIHtwcm9wcy50ZXh0fVxuICAgIDwvcHJlPlxuICA8L2Rpdj5cbilcblxuZXhwb3J0IGRlZmF1bHQgU2hvd1xuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL0M6L1VzZXJzL0FkYW0vRGVza3RvcC9jb2RlL3Byb2plY3RzL2R1YmRpZmYtMi9zcmMvY29tcG9uZW50cy9TaG93LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 249 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/* WEBPACK VAR INJECTION */(function(process) {'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }return target;\n};\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\nvar _invariant = __webpack_require__(188);\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = __webpack_require__(201);\n\nvar _ExecutionEnvironment = __webpack_require__(202);\n\nvar _DOMUtils = __webpack_require__(203);\n\nvar _DOMStateStorage = __webpack_require__(204);\n\nvar _createDOMHistory = __webpack_require__(205);\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve URLs.\n */\nfunction createBrowserHistory() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined;\n\n var forceRefresh = options.forceRefresh;\n\n var isSupported = _DOMUtils.supportsHistory();\n var useRefresh = !isSupported || forceRefresh;\n\n function getCurrentLocation(historyState) {\n historyState = historyState || window.history.state || {};\n\n var path = _DOMUtils.getWindowPath();\n var _historyState = historyState;\n var key = _historyState.key;\n\n var state = undefined;\n if (key) {\n state = _DOMStateStorage.readState(key);\n } else {\n state = null;\n key = history.createKey();\n\n if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path);\n }\n\n return history.createLocation(path, state, undefined, key);\n }\n\n function startPopStateListener(_ref) {\n var transitionTo = _ref.transitionTo;\n\n function popStateListener(event) {\n if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit.\n\n transitionTo(getCurrentLocation(event.state));\n }\n\n _DOMUtils.addEventListener(window, 'popstate', popStateListener);\n\n return function () {\n _DOMUtils.removeEventListener(window, 'popstate', popStateListener);\n };\n }\n\n function finishTransition(location) {\n var basename = location.basename;\n var pathname = location.pathname;\n var search = location.search;\n var hash = location.hash;\n var state = location.state;\n var action = location.action;\n var key = location.key;\n\n if (action === _Actions.POP) return; // Nothing to do.\n\n _DOMStateStorage.saveState(key, state);\n\n var path = (basename || '') + pathname + search + hash;\n var historyState = {\n key: key\n };\n\n if (action === _Actions.PUSH) {\n if (useRefresh) {\n window.location.href = path;\n return false; // Prevent location update.\n } else {\n window.history.pushState(historyState, null, path);\n }\n } else {\n // REPLACE\n if (useRefresh) {\n window.location.replace(path);\n return false; // Prevent location update.\n } else {\n window.history.replaceState(historyState, null, path);\n }\n }\n }\n\n var history = _createDOMHistory2['default'](_extends({}, options, {\n getCurrentLocation: getCurrentLocation,\n finishTransition: finishTransition,\n saveState: _DOMStateStorage.saveState\n }));\n\n var listenerCount = 0,\n stopPopStateListener = undefined;\n\n function listenBefore(listener) {\n if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n var unlisten = history.listenBefore(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopPopStateListener();\n };\n }\n\n function listen(listener) {\n if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n var unlisten = history.listen(listener);\n\n return function () {\n unlisten();\n\n if (--listenerCount === 0) stopPopStateListener();\n };\n }\n\n // deprecated\n function registerTransitionHook(hook) {\n if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n history.registerTransitionHook(hook);\n }\n\n // deprecated\n function unregisterTransitionHook(hook) {\n history.unregisterTransitionHook(hook);\n\n if (--listenerCount === 0) stopPopStateListener();\n }\n\n return _extends({}, history, {\n listenBefore: listenBefore,\n listen: listen,\n registerTransitionHook: registerTransitionHook,\n unregisterTransitionHook: unregisterTransitionHook\n });\n}\n\nexports['default'] = createBrowserHistory;\nmodule.exports = exports['default'];\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9DOi9Vc2Vycy9BZGFtL0Rlc2t0b3AvY29kZS9wcm9qZWN0cy9kdWJkaWZmLTIvfi9oaXN0b3J5L2xpYi9jcmVhdGVCcm93c2VySGlzdG9yeS5qcz8yYjU2Il0sIm5hbWVzIjpbImV4cG9ydHMiLCJfX2VzTW9kdWxlIiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIm9iaiIsIl9pbnZhcmlhbnQiLCJyZXF1aXJlIiwiX2ludmFyaWFudDIiLCJfQWN0aW9ucyIsIl9FeGVjdXRpb25FbnZpcm9ubWVudCIsIl9ET01VdGlscyIsIl9ET01TdGF0ZVN0b3JhZ2UiLCJfY3JlYXRlRE9NSGlzdG9yeSIsIl9jcmVhdGVET01IaXN0b3J5MiIsImNyZWF0ZUJyb3dzZXJIaXN0b3J5Iiwib3B0aW9ucyIsInVuZGVmaW5lZCIsImNhblVzZURPTSIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImZvcmNlUmVmcmVzaCIsImlzU3VwcG9ydGVkIiwic3VwcG9ydHNIaXN0b3J5IiwidXNlUmVmcmVzaCIsImdldEN1cnJlbnRMb2NhdGlvbiIsImhpc3RvcnlTdGF0ZSIsIndpbmRvdyIsImhpc3RvcnkiLCJzdGF0ZSIsInBhdGgiLCJnZXRXaW5kb3dQYXRoIiwiX2hpc3RvcnlTdGF0ZSIsInJlYWRTdGF0ZSIsImNyZWF0ZUtleSIsInJlcGxhY2VTdGF0ZSIsImNyZWF0ZUxvY2F0aW9uIiwic3RhcnRQb3BTdGF0ZUxpc3RlbmVyIiwiX3JlZiIsInRyYW5zaXRpb25UbyIsInBvcFN0YXRlTGlzdGVuZXIiLCJldmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZmluaXNoVHJhbnNpdGlvbiIsImxvY2F0aW9uIiwiYmFzZW5hbWUiLCJwYXRobmFtZSIsInNlYXJjaCIsImhhc2giLCJhY3Rpb24iLCJQT1AiLCJzYXZlU3RhdGUiLCJQVVNIIiwiaHJlZiIsInB1c2hTdGF0ZSIsInJlcGxhY2UiLCJsaXN0ZW5lckNvdW50Iiwic3RvcFBvcFN0YXRlTGlzdGVuZXIiLCJsaXN0ZW5CZWZvcmUiLCJsaXN0ZW5lciIsInVubGlzdGVuIiwibGlzdGVuIiwicmVnaXN0ZXJUcmFuc2l0aW9uSG9vayIsImhvb2siLCJ1bnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2siLCJtb2R1bGUiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBQSxRQUFRQyxVQUFSLEdBQXFCLElBQXJCOztBQUVBLElBQUlDLFdBQVdDLE9BQU9DLE1BQVAsSUFBaUIsVUFBVUMsTUFBVixFQUFrQjtBQUFFLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJQyxVQUFVQyxNQUE5QixFQUFzQ0YsR0FBdEMsRUFBMkM7QUFBRSxRQUFJRyxTQUFTRixVQUFVRCxDQUFWLENBQWIsQ0FBMkIsS0FBSyxJQUFJSSxHQUFULElBQWdCRCxNQUFoQixFQUF3QjtBQUFFLFVBQUlOLE9BQU9RLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDQyxJQUFoQyxDQUFxQ0osTUFBckMsRUFBNkNDLEdBQTdDLENBQUosRUFBdUQ7QUFBRUwsZUFBT0ssR0FBUCxJQUFjRCxPQUFPQyxHQUFQLENBQWQ7QUFBNEI7QUFBRTtBQUFFLEdBQUMsT0FBT0wsTUFBUDtBQUFnQixDQUFoUTs7QUFFQSxTQUFTUyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJZCxVQUFYLEdBQXdCYyxHQUF4QixHQUE4QixFQUFFLFdBQVdBLEdBQWIsRUFBckM7QUFBMEQ7O0FBRWpHLElBQUlDLGFBQWEsbUJBQUFDLENBQVEsR0FBUixDQUFqQjs7QUFFQSxJQUFJQyxjQUFjSix1QkFBdUJFLFVBQXZCLENBQWxCOztBQUVBLElBQUlHLFdBQVcsbUJBQUFGLENBQVEsR0FBUixDQUFmOztBQUVBLElB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QWpCLEMiLCJmaWxlIjoiMjQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHsgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHsgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTsgZm9yICh2YXIga2V5IGluIHNvdXJjZSkgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkgeyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IH0gfSByZXR1cm4gdGFyZ2V0OyB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbnZhciBfaW52YXJpYW50ID0gcmVxdWlyZSgnaW52YXJpYW50Jyk7XG5cbnZhciBfaW52YXJpYW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2ludmFyaWFudCk7XG5cbnZhciBfQWN0aW9ucyA9IHJlcXVpcmUoJy4vQWN0aW9ucycpO1xuXG52YXIgX0V4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnLi9FeGVjdXRpb25FbnZpcm9ubWVudCcpO1xuXG52YXIgX0RPTVV0aWxzID0gcmVxdWlyZSgnLi9ET01VdGlscycpO1xuXG52YXIgX0RPTVN0YXRlU3RvcmFnZSA9IHJlcXVpcmUoJy4vRE9NU3RhdGVTdG9yYWdlJyk7XG5cbnZhciBfY3JlYXRlRE9NSGlzdG9yeSA9IHJlcXVpcmUoJy4vY3JlYXRlRE9NSGlzdG9yeScpO1xuXG52YXIgX2NyZWF0ZURPTUhpc3RvcnkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY3JlYXRlRE9NSGlzdG9yeSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGhpc3Rvcnkgb2JqZWN0IHRoYXQgdXNlcyBIVE1MNSdzIGhpc3RvcnkgQVBJXG4gKiAocHVzaFN0YXRlLCByZXBsYWNlU3RhdGUsIGFuZCB0aGUgcG9wc3RhdGUgZXZlbnQpIHRvIG1hbmFnZSBoaXN0b3J5LlxuICogVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgbWV0aG9kIG9mIG1hbmFnaW5nIGhpc3RvcnkgaW4gYnJvd3NlcnMgYmVjYXVzZVxuICogaXQgcHJvdmlkZXMgdGhlIGNsZWFuZXN0IFVSTHMuXG4gKlxuICogTm90ZTogSW4gYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCB0aGUgSFRNTDUgaGlzdG9yeSBBUEkgZnVsbFxuICogcGFnZSByZWxvYWRzIHdpbGwgYmUgdXNlZCB0byBwcmVzZXJ2ZSBVUkxzLlxuICovXG5mdW5jdGlvbiBjcmVhdGVCcm93c2VySGlzdG9yeSgpIHtcbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1swXTtcblxuICAhX0V4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlLCAnQnJvd3NlciBoaXN0b3J5IG5lZWRzIGEgRE9NJykgOiBfaW52YXJpYW50MlsnZGVmYXVsdCddKGZhbHNlKSA6IHVuZGVmaW5lZDtcblxuICB2YXIgZm9yY2VSZWZyZXNoID0gb3B0aW9ucy5mb3JjZVJlZnJlc2g7XG5cbiAgdmFyIGlzU3VwcG9ydGVkID0gX0RPTVV0aWxzLnN1cHBvcnRzSGlzdG9yeSgpO1xuICB2YXIgdXNlUmVmcmVzaCA9ICFpc1N1cHBvcnRlZCB8fCBmb3JjZVJlZnJlc2g7XG5cbiAgZnVuY3Rpb24gZ2V0Q3VycmVudExvY2F0aW9uKGhpc3RvcnlTdGF0ZSkge1xuICAgIGhpc3RvcnlTdGF0ZSA9IGhpc3RvcnlTdGF0ZSB8fCB3aW5kb3cuaGlzdG9yeS5zdGF0ZSB8fCB7fTtcblxuICAgIHZhciBwYXRoID0gX0RPTVV0aWxzLmdldFdpbmRvd1BhdGgoKTtcbiAgICB2YXIgX2hpc3RvcnlTdGF0ZSA9IGhpc3RvcnlTdGF0ZTtcbiAgICB2YXIga2V5ID0gX2hpc3RvcnlTdGF0ZS5rZXk7XG5cbiAgICB2YXIgc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGtleSkge1xuICAgICAgc3RhdGUgPSBfRE9NU3RhdGVTdG9yYWdlLnJlYWRTdGF0ZShrZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0ZSA9IG51bGw7XG4gICAgICBrZXkgPSBoaXN0b3J5LmNyZWF0ZUtleSgpO1xuXG4gICAgICBpZiAoaXNTdXBwb3J0ZWQpIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShfZXh0ZW5kcyh7fSwgaGlzdG9yeVN0YXRlLCB7IGtleToga2V5IH0pLCBudWxsLCBwYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGlzdG9yeS5jcmVhdGVMb2NhdGlvbihwYXRoLCBzdGF0ZSwgdW5kZWZpbmVkLCBrZXkpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhcnRQb3BTdGF0ZUxpc3RlbmVyKF9yZWYpIHtcbiAgICB2YXIgdHJhbnNpdGlvblRvID0gX3JlZi50cmFuc2l0aW9uVG87XG5cbiAgICBmdW5jdGlvbiBwb3BTdGF0ZUxpc3RlbmVyKGV2ZW50KSB7XG4gICAgICBpZiAoZXZlbnQuc3RhdGUgPT09IHVuZGVmaW5lZCkgcmV0dXJuOyAvLyBJZ25vcmUgZXh0cmFuZW91cyBwb3BzdGF0ZSBldmVudHMgaW4gV2ViS2l0LlxuXG4gICAgICB0cmFuc2l0aW9uVG8oZ2V0Q3VycmVudExvY2F0aW9uKGV2ZW50LnN0YXRlKSk7XG4gICAgfVxuXG4gICAgX0RPTVV0aWxzLmFkZEV2ZW50TGlzdGVuZXIod2luZG93LCAncG9wc3RhdGUnLCBwb3BTdGF0ZUxpc3RlbmVyKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBfRE9NVXRpbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcih3aW5kb3csICdwb3BzdGF0ZScsIHBvcFN0YXRlTGlzdGVuZXIpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBmaW5pc2hUcmFuc2l0aW9uKGxvY2F0aW9uKSB7XG4gICAgdmFyIGJhc2VuYW1lID0gbG9jYXRpb24uYmFzZW5hbWU7XG4gICAgdmFyIHBhdGhuYW1lID0gbG9jYXRpb24ucGF0aG5hbWU7XG4gICAgdmFyIHNlYXJjaCA9IGxvY2F0aW9uLnNlYXJjaDtcbiAgICB2YXIgaGFzaCA9IGxvY2F0aW9uLmhhc2g7XG4gICAgdmFyIHN0YXRlID0gbG9jYXRpb24uc3RhdGU7XG4gICAgdmFyIGFjdGlvbiA9IGxvY2F0aW9uLmFjdGlvbjtcbiAgICB2YXIga2V5ID0gbG9jYXRpb24ua2V5O1xuXG4gICAgaWYgKGFjdGlvbiA9PT0gX0FjdGlvbnMuUE9QKSByZXR1cm47IC8vIE5vdGhpbmcgdG8gZG8uXG5cbiAgICBfRE9NU3RhdGVTdG9yYWdlLnNhdmVTdGF0ZShrZXksIHN0YXRlKTtcblxuICAgIHZhciBwYXRoID0gKGJhc2VuYW1lIHx8ICcnKSArIHBhdGhuYW1lICsgc2VhcmNoICsgaGFzaDtcbiAgICB2YXIgaGlzdG9yeVN0YXRlID0ge1xuICAgICAga2V5OiBrZXlcbiAgICB9O1xuXG4gICAgaWYgKGFjdGlvbiA9PT0gX0FjdGlvbnMuUFVTSCkge1xuICAgICAgaWYgKHVzZVJlZnJlc2gpIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXRoO1xuICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFByZXZlbnQgbG9jYXRpb24gdXBkYXRlLlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoaGlzdG9yeVN0YXRlLCBudWxsLCBwYXRoKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSRVBMQUNFXG4gICAgICBpZiAodXNlUmVmcmVzaCkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZShwYXRoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBQcmV2ZW50IGxvY2F0aW9uIHVwZGF0ZS5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3RvcnlTdGF0ZSwgbnVsbCwgcGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgaGlzdG9yeSA9IF9jcmVhdGVET01IaXN0b3J5MlsnZGVmYXVsdCddKF9leHRlbmRzKHt9LCBvcHRpb25zLCB7XG4gICAgZ2V0Q3VycmVudExvY2F0aW9uOiBnZXRDdXJyZW50TG9jYXRpb24sXG4gICAgZmluaXNoVHJhbnNpdGlvbjogZmluaXNoVHJhbnNpdGlvbixcbiAgICBzYXZlU3RhdGU6IF9ET01TdGF0ZVN0b3JhZ2Uuc2F2ZVN0YXRlXG4gIH0pKTtcblxuICB2YXIgbGlzdGVuZXJDb3VudCA9IDAsXG4gICAgICBzdG9wUG9wU3RhdGVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcblxuICBmdW5jdGlvbiBsaXN0ZW5CZWZvcmUobGlzdGVuZXIpIHtcbiAgICBpZiAoKytsaXN0ZW5lckNvdW50ID09PSAxKSBzdG9wUG9wU3RhdGVMaXN0ZW5lciA9IHN0YXJ0UG9wU3RhdGVMaXN0ZW5lcihoaXN0b3J5KTtcblxuICAgIHZhciB1bmxpc3RlbiA9IGhpc3RvcnkubGlzdGVuQmVmb3JlKGxpc3RlbmVyKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB1bmxpc3RlbigpO1xuXG4gICAgICBpZiAoLS1saXN0ZW5lckNvdW50ID09PSAwKSBzdG9wUG9wU3RhdGVMaXN0ZW5lcigpO1xuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBsaXN0ZW4obGlzdGVuZXIpIHtcbiAgICBpZiAoKytsaXN0ZW5lckNvdW50ID09PSAxKSBzdG9wUG9wU3RhdGVMaXN0ZW5lciA9IHN0YXJ0UG9wU3RhdGVMaXN0ZW5lcihoaXN0b3J5KTtcblxuICAgIHZhciB1bmxpc3RlbiA9IGhpc3RvcnkubGlzdGVuKGxpc3RlbmVyKTtcblxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB1bmxpc3RlbigpO1xuXG4gICAgICBpZiAoLS1saXN0ZW5lckNvdW50ID09PSAwKSBzdG9wUG9wU3RhdGVMaXN0ZW5lcigpO1xuICAgIH07XG4gIH1cblxuICAvLyBkZXByZWNhdGVkXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyVHJhbnNpdGlvbkhvb2soaG9vaykge1xuICAgIGlmICgrK2xpc3RlbmVyQ291bnQgPT09IDEpIHN0b3BQb3BTdGF0ZUxpc3RlbmVyID0gc3RhcnRQb3BTdGF0ZUxpc3RlbmVyKGhpc3RvcnkpO1xuXG4gICAgaGlzdG9yeS5yZWdpc3RlclRyYW5zaXRpb25Ib29rKGhvb2spO1xuICB9XG5cbiAgLy8gZGVwcmVjYXRlZFxuICBmdW5jdGlvbiB1bnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2soaG9vaykge1xuICAgIGhpc3RvcnkudW5yZWdpc3RlclRyYW5zaXRpb25Ib29rKGhvb2spO1xuXG4gICAgaWYgKC0tbGlzdGVuZXJDb3VudCA9PT0gMCkgc3RvcFBvcFN0YXRlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHJldHVybiBfZXh0ZW5kcyh7fSwgaGlzdG9yeSwge1xuICAgIGxpc3RlbkJlZm9yZTogbGlzdGVuQmVmb3JlLFxuICAgIGxpc3RlbjogbGlzdGVuLFxuICAgIHJlZ2lzdGVyVHJhbnNpdGlvbkhvb2s6IHJlZ2lzdGVyVHJhbnNpdGlvbkhvb2ssXG4gICAgdW5yZWdpc3RlclRyYW5zaXRpb25Ib29rOiB1bnJlZ2lzdGVyVHJhbnNpdGlvbkhvb2tcbiAgfSk7XG59XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IGNyZWF0ZUJyb3dzZXJIaXN0b3J5O1xubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vQzovVXNlcnMvQWRhbS9EZXNrdG9wL2NvZGUvcHJvamVjdHMvZHViZGlmZi0yL34vaGlzdG9yeS9saWIvY3JlYXRlQnJvd3Nlckhpc3RvcnkuanMiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 250 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports['default'] = /*istanbul ignore end*/Diff;\nfunction Diff() {}\n\nDiff.prototype = { /*istanbul ignore start*/\n /*istanbul ignore end*/diff: function diff(oldString, newString) {\n /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n var callback = options.callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n this.options = options;\n\n var self = this;\n\n function done(value) {\n if (callback) {\n setTimeout(function () {\n callback(undefined, value);\n }, 0);\n return true;\n } else {\n return value;\n }\n }\n\n // Allow subclasses to massage the input prior to running\n oldString = this.castInput(oldString);\n newString = this.castInput(newString);\n\n oldString = this.removeEmpty(this.tokenize(oldString));\n newString = this.removeEmpty(this.tokenize(newString));\n\n var newLen = newString.length,\n oldLen = oldString.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{ newPos: -1, components: [] }];\n\n // Seed editLength = 0, i.e. the content starts with the same values\n var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n // Identity per the equality and tokenizer\n return done([{ value: newString.join(''), count: newString.length }]);\n }\n\n // Main worker method. checks all permutations of a given edit length for acceptance.\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;\n var addPath = bestPath[diagonalPath - 1],\n removePath = bestPath[diagonalPath + 1],\n _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen,\n canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n }\n\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath);\n\n // If we have hit the end of both strings, then we are done\n if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n }\n\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n // This should not happen, but we want to be safe.\n /* istanbul ignore next */\n if (editLength > maxEditLength) {\n return callback();\n }\n\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n },\n /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = { count: last.count + 1, added: added, removed: removed };\n } else {\n components.push({ count: 1, added: added, removed: removed });\n }\n },\n /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n var newLen = newString.length,\n oldLen = oldString.length,\n newPos = basePath.newPos,\n oldPos = newPos - diagonalPath,\n commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({ count: commonCount });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) {\n return left === right;\n },\n /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) {\n var ret = [];\n for (var i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n },\n /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) {\n return value;\n },\n /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) {\n return value.split('');\n }\n};\n\nfunction buildValues(diff, components, newString, oldString, useLongestToken) {\n var componentPos = 0,\n componentLen = components.length,\n newPos = 0,\n oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n if (!component.removed) {\n if (!component.added && useLongestToken) {\n var value = newString.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n var oldValue = oldString[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n\n component.value = value.join('');\n } else {\n component.value = newString.slice(newPos, newPos + component.count).join('');\n }\n newPos += component.count;\n\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = oldString.slice(oldPos, oldPos + component.count).join('');\n oldPos += component.count;\n\n // Reverse add and remove so removes are output first to match common convention\n // The diffing algorithm is tied to add then remove output and this is the simplest\n // route to get the desired output with minimal overhead.\n if (componentPos && components[componentPos - 1].added) {\n var tmp = components[componentPos - 1];\n components[componentPos - 1] = components[componentPos];\n components[componentPos] = tmp;\n }\n }\n }\n\n // Special case handle for when one terminal is ignored. For this case we merge the\n // terminal into the prior string and drop the change.\n var lastComponent = components[componentLen - 1];\n if (componentLen > 1 && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n components[componentLen - 2].value += lastComponent.value;\n components.pop();\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return { newPos: path.newPos, components: path.components.slice(0) };\n}\n//# sourceMappingURL=data:application/json;base64,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USxTQUFTLFVBQWpDLEFBQTJDLE9BQTNDLEFBQWtELEtBQXBFLEFBQWtCLEFBQXVELEFBQzFFO0FBQ0Q7Z0JBQVUsVUFBVixBQUFvQjs7QUFHcEI7VUFBSSxDQUFDLFVBQUwsQUFBZSxPQUFPLEFBQ3BCO2tCQUFVLFVBQVYsQUFBb0IsQUFDckI7QUFDRjtBQWxCRCxXQWtCTyxBQUNMO2dCQUFBLEFBQVUsUUFBUSxVQUFBLEFBQVUsTUFBVixBQUFnQixRQUFRLFNBQVMsVUFBakMsQUFBMkMsT0FBM0MsQUFBa0QsS0FBcEUsQUFBa0IsQUFBdUQsQUFDekU7Z0JBQVUsVUFBVixBQUFvQjs7OztBQUtwQjtVQUFJLGdCQUFnQixXQUFXLGVBQVgsQUFBMEIsR0FBOUMsQUFBaUQsT0FBTyxBQUN0RDtZQUFJLE1BQU0sV0FBVyxlQUFyQixBQUFVLEFBQTBCLEFBQ3BDO21CQUFXLGVBQVgsQUFBMEIsS0FBSyxXQUEvQixBQUErQixBQUFXLEFBQzFDO21CQUFBLEFBQVcsZ0JBQVgsQUFBMkIsQUFDNUI7QUFDRjtBQUNGOzs7O0FBSUQ7TUFBSSxnQkFBZ0IsV0FBVyxlQUEvQixBQUFvQixBQUEwQixBQUM5QztNQUFJLGVBQUEsQUFBZSxNQUNYLGNBQUEsQUFBYyxTQUFTLGNBRDNCLEFBQ3lDLFlBQ3RDLEtBQUEsQUFBSyxPQUFMLEFBQVksSUFBSSxjQUZ2QixBQUVPLEFBQThCLFFBQVEsQUFDM0M7ZUFBVyxlQUFYLEFBQTBCLEdBQTFCLEFBQTZCLFNBQVMsY0FBdEMsQUFBb0QsQUFDcEQ7ZUFBQSxBQUFXLEFBQ1o7QUFFRDs7U0FBQSxBQUFPLEFBQ1I7OztBQUVELFNBQUEsQUFBUyxVQUFULEFBQW1CLE1BQU0sQUFDdkI7U0FBTyxFQUFFLFFBQVEsS0FBVixBQUFlLFFBQVEsWUFBWSxLQUFBLEFBQUssV0FBTCxBQUFnQixNQUExRCxBQUFPLEFBQW1DLEFBQXNCLEFBQ2pFIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7XG4gIGRpZmYob2xkU3RyaW5nLCBuZXdTdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBsZXQgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7IH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgbGV0IGVkaXRMZW5ndGggPSAxO1xuICAgIGxldCBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIGxldCBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICBsZXQgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7dmFsdWU6IG5ld1N0cmluZy5qb2luKCcnKSwgY291bnQ6IG5ld1N0cmluZy5sZW5ndGh9XSk7XG4gICAgfVxuXG4gICAgLy8gTWFpbiB3b3JrZXIgbWV0aG9kLiBjaGVja3MgYWxsIHBlcm11dGF0aW9ucyBvZiBhIGdpdmVuIGVkaXQgbGVuZ3RoIGZvciBhY2NlcHRhbmNlLlxuICAgIGZ1bmN0aW9uIGV4ZWNFZGl0TGVuZ3RoKCkge1xuICAgICAgZm9yIChsZXQgZGlhZ29uYWxQYXRoID0gLTEgKiBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggPD0gZWRpdExlbmd0aDsgZGlhZ29uYWxQYXRoICs9IDIpIHtcbiAgICAgICAgbGV0IGJhc2VQYXRoO1xuICAgICAgICBsZXQgYWRkUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCAtIDFdLFxuICAgICAgICAgICAgcmVtb3ZlUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCArIDFdLFxuICAgICAgICAgICAgb2xkUG9zID0gKHJlbW92ZVBhdGggPyByZW1vdmVQYXRoLm5ld1BvcyA6IDApIC0gZGlhZ29uYWxQYXRoO1xuICAgICAgICBpZiAoYWRkUGF0aCkge1xuICAgICAgICAgIC8vIE5vIG9uZSBlbHNlIGlzIGdvaW5nIHRvIGF0dGVtcHQgdG8gdXNlIHRoaXMgdmFsdWUsIGNsZWFyIGl0XG4gICAgICAgICAgYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2FuQWRkID0gYWRkUGF0aCAmJiBhZGRQYXRoLm5ld1BvcyArIDEgPCBuZXdMZW4sXG4gICAgICAgICAgICBjYW5SZW1vdmUgPSByZW1vdmVQYXRoICYmIDAgPD0gb2xkUG9zICYmIG9sZFBvcyA8IG9sZExlbjtcbiAgICAgICAgaWYgKCFjYW5BZGQgJiYgIWNhblJlbW92ZSkge1xuICAgICAgICAgIC8vIElmIHRoaXMgcGF0aCBpcyBhIHRlcm1pbmFsIHRoZW4gcHJ1bmVcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VsZWN0IHRoZSBkaWFnb25hbCB0aGF0IHdlIHdhbnQgdG8gYnJhbmNoIGZyb20uIFdlIHNlbGVjdCB0aGUgcHJpb3JcbiAgICAgICAgLy8gcGF0aCB3aG9zZSBwb3NpdGlvbiBpbiB0aGUgbmV3IHN0cmluZyBpcyB0aGUgZmFydGhlc3QgZnJvbSB0aGUgb3JpZ2luXG4gICAgICAgIC8vIGFuZCBkb2VzIG5vdCBwYXNzIHRoZSBib3VuZHMgb2YgdGhlIGRpZmYgZ3JhcGhcbiAgICAgICAgaWYgKCFjYW5BZGQgfHwgKGNhblJlbW92ZSAmJiBhZGRQYXRoLm5ld1BvcyA8IHJlbW92ZVBhdGgubmV3UG9zKSkge1xuICAgICAgICAgIGJhc2VQYXRoID0gY2xvbmVQYXRoKHJlbW92ZVBhdGgpO1xuICAgICAgICAgIHNlbGYucHVzaENvbXBvbmVudChiYXNlUGF0aC5jb21wb25lbnRzLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJhc2VQYXRoID0gYWRkUGF0aDsgICAvLyBObyBuZWVkIHRvIGNsb25lLCB3ZSd2ZSBwdWxsZWQgaXQgZnJvbSB0aGUgbGlzdFxuICAgICAgICAgIGJhc2VQYXRoLm5ld1BvcysrO1xuICAgICAgICAgIHNlbGYucHVzaENvbXBvbmVudChiYXNlUGF0aC5jb21wb25lbnRzLCB0cnVlLCB1bmRlZmluZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgb2xkUG9zID0gc2VsZi5leHRyYWN0Q29tbW9uKGJhc2VQYXRoLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgZGlhZ29uYWxQYXRoKTtcblxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGhpdCB0aGUgZW5kIG9mIGJvdGggc3RyaW5ncywgdGhlbiB3ZSBhcmUgZG9uZVxuICAgICAgICBpZiAoYmFzZVBhdGgubmV3UG9zICsgMSA+PSBuZXdMZW4gJiYgb2xkUG9zICsgMSA+PSBvbGRMZW4pIHtcbiAgICAgICAgICByZXR1cm4gZG9uZShidWlsZFZhbHVlcyhzZWxmLCBiYXNlUGF0aC5jb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgc2VsZi51c2VMb25nZXN0VG9rZW4pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBPdGhlcndpc2UgdHJhY2sgdGhpcyBwYXRoIGFzIGEgcG90ZW50aWFsIGNhbmRpZGF0ZSBhbmQgY29udGludWUuXG4gICAgICAgICAgYmVzdFBhdGhbZGlhZ29uYWxQYXRoXSA9IGJhc2VQYXRoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGVkaXRMZW5ndGgrKztcbiAgICB9XG5cbiAgICAvLyBQZXJmb3JtcyB0aGUgbGVuZ3RoIG9mIGVkaXQgaXRlcmF0aW9uLiBJcyBhIGJpdCBmdWdseSBhcyB0aGlzIGhhcyB0byBzdXBwb3J0IHRoZVxuICAgIC8vIHN5bmMgYW5kIGFzeW5jIG1vZGUgd2hpY2ggaXMgbmV2ZXIgZnVuLiBMb29wcyBvdmVyIGV4ZWNFZGl0TGVuZ3RoIHVudGlsIGEgdmFsdWVcbiAgICAvLyBpcyBwcm9kdWNlZC5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIChmdW5jdGlvbiBleGVjKCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4sIGJ1dCB3ZSB3YW50IHRvIGJlIHNhZmUuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBpZiAoZWRpdExlbmd0aCA+IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghZXhlY0VkaXRMZW5ndGgoKSkge1xuICAgICAgICAgICAgZXhlYygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgICB9KCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aGlsZSAoZWRpdExlbmd0aCA8PSBtYXhFZGl0TGVuZ3RoKSB7XG4gICAgICAgIGxldCByZXQgPSBleGVjRWRpdExlbmd0aCgpO1xuICAgICAgICBpZiAocmV0KSB7XG4gICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBwdXNoQ29tcG9uZW50KGNvbXBvbmVudHMsIGFkZGVkLCByZW1vdmVkKSB7XG4gICAgbGV0IGxhc3QgPSBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKGxhc3QgJiYgbGFzdC5hZGRlZCA9PT0gYWRkZWQgJiYgbGFzdC5yZW1vdmVkID09PSByZW1vdmVkKSB7XG4gICAgICAvLyBXZSBuZWVkIHRvIGNsb25lIGhlcmUgYXMgdGhlIGNvbXBvbmVudCBjbG9uZSBvcGVyYXRpb24gaXMganVzdFxuICAgICAgLy8gYXMgc2hhbGxvdyBhcnJheSBjbG9uZVxuICAgICAgY29tcG9uZW50c1tjb21wb25lbnRzLmxlbmd0aCAtIDFdID0ge2NvdW50OiBsYXN0LmNvdW50ICsgMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudHMucHVzaCh7Y291bnQ6IDEsIGFkZGVkOiBhZGRlZCwgcmVtb3ZlZDogcmVtb3ZlZCB9KTtcbiAgICB9XG4gIH0sXG4gIGV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpIHtcbiAgICBsZXQgbmV3TGVuID0gbmV3U3RyaW5nLmxlbmd0aCxcbiAgICAgICAgb2xkTGVuID0gb2xkU3RyaW5nLmxlbmd0aCxcbiAgICAgICAgbmV3UG9zID0gYmFzZVBhdGgubmV3UG9zLFxuICAgICAgICBvbGRQb3MgPSBuZXdQb3MgLSBkaWFnb25hbFBhdGgsXG5cbiAgICAgICAgY29tbW9uQ291bnQgPSAwO1xuICAgIHdoaWxlIChuZXdQb3MgKyAxIDwgbmV3TGVuICYmIG9sZFBvcyArIDEgPCBvbGRMZW4gJiYgdGhpcy5lcXVhbHMobmV3U3RyaW5nW25ld1BvcyArIDFdLCBvbGRTdHJpbmdbb2xkUG9zICsgMV0pKSB7XG4gICAgICBuZXdQb3MrKztcbiAgICAgIG9sZFBvcysrO1xuICAgICAgY29tbW9uQ291bnQrKztcbiAgICB9XG5cbiAgICBpZiAoY29tbW9uQ291bnQpIHtcbiAgICAgIGJhc2VQYXRoLmNvbXBvbmVudHMucHVzaCh7Y291bnQ6IGNvbW1vbkNvdW50fSk7XG4gICAgfVxuXG4gICAgYmFzZVBhdGgubmV3UG9zID0gbmV3UG9zO1xuICAgIHJldHVybiBvbGRQb3M7XG4gIH0sXG5cbiAgZXF1YWxzKGxlZnQsIHJpZ2h0KSB7XG4gICAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0O1xuICB9LFxuICByZW1vdmVFbXB0eShhcnJheSkge1xuICAgIGxldCByZXQgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJyYXlbaV0pIHtcbiAgICAgICAgcmV0LnB1c2goYXJyYXlbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9LFxuICBjYXN0SW5wdXQodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG4gIHRva2VuaXplKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KCcnKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gYnVpbGRWYWx1ZXMoZGlmZiwgY29tcG9uZW50cywgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIHVzZUxvbmdlc3RUb2tlbikge1xuICBsZXQgY29tcG9uZW50UG9zID0gMCxcbiAgICAgIGNvbXBvbmVudExlbiA9IGNvbXBvbmVudHMubGVuZ3RoLFxuICAgICAgbmV3UG9zID0gMCxcbiAgICAgIG9sZFBvcyA9IDA7XG5cbiAgZm9yICg7IGNvbXBvbmVudFBvcyA8IGNvbXBvbmVudExlbjsgY29tcG9uZW50UG9zKyspIHtcbiAgICBsZXQgY29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRQb3NdO1xuICAgIGlmICghY29tcG9uZW50LnJlbW92ZWQpIHtcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkICYmIHVzZUxvbmdlc3RUb2tlbikge1xuICAgICAgICBsZXQgdmFsdWUgPSBuZXdTdHJpbmcuc2xpY2UobmV3UG9zLCBuZXdQb3MgKyBjb21wb25lbnQuY291bnQpO1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLm1hcChmdW5jdGlvbih2YWx1ZSwgaSkge1xuICAgICAgICAgIGxldCBvbGRWYWx1ZSA9IG9sZFN0cmluZ1tvbGRQb3MgKyBpXTtcbiAgICAgICAgICByZXR1cm4gb2xkVmFsdWUubGVuZ3RoID4gdmFsdWUubGVuZ3RoID8gb2xkVmFsdWUgOiB2YWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gdmFsdWUuam9pbignJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBuZXdTdHJpbmcuc2xpY2UobmV3UG9zLCBuZXdQb3MgKyBjb21wb25lbnQuY291bnQpLmpvaW4oJycpO1xuICAgICAgfVxuICAgICAgbmV3UG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gQ29tbW9uIGNhc2VcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkKSB7XG4gICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IG9sZFN0cmluZy5zbGljZShvbGRQb3MsIG9sZFBvcyArIGNvbXBvbmVudC5jb3VudCkuam9pbignJyk7XG4gICAgICBvbGRQb3MgKz0gY29tcG9uZW50LmNvdW50O1xuXG4gICAgICAvLyBSZXZlcnNlIGFkZCBhbmQgcmVtb3ZlIHNvIHJlbW92ZXMgYXJlIG91dHB1dCBmaXJzdCB0byBtYXRjaCBjb21tb24gY29udmVudGlvblxuICAgICAgLy8gVGhlIGRpZmZpbmcgYWxnb3JpdGhtIGlzIHRpZWQgdG8gYWRkIHRoZW4gcmVtb3ZlIG91dHB1dCBhbmQgdGhpcyBpcyB0aGUgc2ltcGxlc3RcbiAgICAgIC8vIHJvdXRlIHRvIGdldCB0aGUgZGVzaXJlZCBvdXRwdXQgd2l0aCBtaW5pbWFsIG92ZXJoZWFkLlxuICAgICAgaWYgKGNvbXBvbmVudFBvcyAmJiBjb21wb25lbnRzW2NvbXBvbmVudFBvcyAtIDFdLmFkZGVkKSB7XG4gICAgICAgIGxldCB0bXAgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvcyAtIDFdO1xuICAgICAgICBjb21wb25lbnRzW2NvbXBvbmVudFBvcyAtIDFdID0gY29tcG9uZW50c1tjb21wb25lbnRQb3NdO1xuICAgICAgICBjb21wb25lbnRzW2NvbXBvbmVudFBvc10gPSB0bXA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lhbCBjYXNlIGhhbmRsZSBmb3Igd2hlbiBvbmUgdGVybWluYWwgaXMgaWdub3JlZC4gRm9yIHRoaXMgY2FzZSB3ZSBtZXJnZSB0aGVcbiAgLy8gdGVybWluYWwgaW50byB0aGUgcHJpb3Igc3RyaW5nIGFuZCBkcm9wIHRoZSBjaGFuZ2UuXG4gIGxldCBsYXN0Q29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAxXTtcbiAgaWYgKGNvbXBvbmVudExlbiA+IDFcbiAgICAgICYmIChsYXN0Q29tcG9uZW50LmFkZGVkIHx8IGxhc3RDb21wb25lbnQucmVtb3ZlZClcbiAgICAgICYmIGRpZmYuZXF1YWxzKCcnLCBsYXN0Q29tcG9uZW50LnZhbHVlKSkge1xuICAgIGNvbXBvbmVudHNbY29tcG9uZW50TGVuIC0gMl0udmFsdWUgKz0gbGFzdENvbXBvbmVudC52YWx1ZTtcbiAgICBjb21wb25lbnRzLnBvcCgpO1xuICB9XG5cbiAgcmV0dXJuIGNvbXBvbmVudHM7XG59XG5cbmZ1bmN0aW9uIGNsb25lUGF0aChwYXRoKSB7XG4gIHJldHVybiB7IG5ld1BvczogcGF0aC5uZXdQb3MsIGNvbXBvbmVudHM6IHBhdGguY29tcG9uZW50cy5zbGljZSgwKSB9O1xufVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvYmFzZS5qcz8wNjIwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0I7QUFDbEI7QUFDQSwwSEFBMEg7O0FBRTFIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsNkJBQTZCOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxREFBcUQ7QUFDekU7O0FBRUE7QUFDQTtBQUNBLDhDQUE4Qyw0QkFBNEI7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0MsS0FBSztBQUNMLHVCQUF1QiwyQ0FBMkM7QUFDbEU7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdDQUFnQyxxQkFBcUI7QUFDckQ7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxtQkFBbUIsa0JBQWtCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFFBQVEsNkJBQTZCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI1MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzWydkZWZhdWx0J10gPSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL0RpZmY7XG5mdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbiAgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmOiBmdW5jdGlvbiBkaWZmKG9sZFN0cmluZywgbmV3U3RyaW5nKSB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL3ZhciAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL29wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDIgfHwgYXJndW1lbnRzWzJdID09PSB1bmRlZmluZWQgPyB7fSA6IGFyZ3VtZW50c1syXTtcblxuICAgIHZhciBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7XG4gICAgICAgIH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgdmFyIG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsXG4gICAgICAgIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgdmFyIGVkaXRMZW5ndGggPSAxO1xuICAgIHZhciBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIHZhciBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICB2YXIgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7IHZhbHVlOiBuZXdTdHJpbmcuam9pbignJyksIGNvdW50OiBuZXdTdHJpbmcubGVuZ3RoIH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKHZhciBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICB2YXIgYmFzZVBhdGggPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovdm9pZCAwIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuICAgICAgICB2YXIgYWRkUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCAtIDFdLFxuICAgICAgICAgICAgcmVtb3ZlUGF0aCA9IGJlc3RQYXRoW2RpYWdvbmFsUGF0aCArIDFdLFxuICAgICAgICAgICAgX29sZFBvcyA9IChyZW1vdmVQYXRoID8gcmVtb3ZlUGF0aC5uZXdQb3MgOiAwKSAtIGRpYWdvbmFsUGF0aDtcbiAgICAgICAgaWYgKGFkZFBhdGgpIHtcbiAgICAgICAgICAvLyBObyBvbmUgZWxzZSBpcyBnb2luZyB0byBhdHRlbXB0IHRvIHVzZSB0aGlzIHZhbHVlLCBjbGVhciBpdFxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aCAtIDFdID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNhbkFkZCA9IGFkZFBhdGggJiYgYWRkUGF0aC5uZXdQb3MgKyAxIDwgbmV3TGVuLFxuICAgICAgICAgICAgY2FuUmVtb3ZlID0gcmVtb3ZlUGF0aCAmJiAwIDw9IF9vbGRQb3MgJiYgX29sZFBvcyA8IG9sZExlbjtcbiAgICAgICAgaWYgKCFjYW5BZGQgJiYgIWNhblJlbW92ZSkge1xuICAgICAgICAgIC8vIElmIHRoaXMgcGF0aCBpcyBhIHRlcm1pbmFsIHRoZW4gcHJ1bmVcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VsZWN0IHRoZSBkaWFnb25hbCB0aGF0IHdlIHdhbnQgdG8gYnJhbmNoIGZyb20uIFdlIHNlbGVjdCB0aGUgcHJpb3JcbiAgICAgICAgLy8gcGF0aCB3aG9zZSBwb3NpdGlvbiBpbiB0aGUgbmV3IHN0cmluZyBpcyB0aGUgZmFydGhlc3QgZnJvbSB0aGUgb3JpZ2luXG4gICAgICAgIC8vIGFuZCBkb2VzIG5vdCBwYXNzIHRoZSBib3VuZHMgb2YgdGhlIGRpZmYgZ3JhcGhcbiAgICAgICAgaWYgKCFjYW5BZGQgfHwgY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpIHtcbiAgICAgICAgICBiYXNlUGF0aCA9IGNsb25lUGF0aChyZW1vdmVQYXRoKTtcbiAgICAgICAgICBzZWxmLnB1c2hDb21wb25lbnQoYmFzZVBhdGguY29tcG9uZW50cywgdW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBiYXNlUGF0aCA9IGFkZFBhdGg7IC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBfb2xkUG9zID0gc2VsZi5leHRyYWN0Q29tbW9uKGJhc2VQYXRoLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgZGlhZ29uYWxQYXRoKTtcblxuICAgICAgICAvLyBJZiB3ZSBoYXZlIGhpdCB0aGUgZW5kIG9mIGJvdGggc3RyaW5ncywgdGhlbiB3ZSBhcmUgZG9uZVxuICAgICAgICBpZiAoYmFzZVBhdGgubmV3UG9zICsgMSA+PSBuZXdMZW4gJiYgX29sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAgICAgcmV0dXJuIGRvbmUoYnVpbGRWYWx1ZXMoc2VsZiwgYmFzZVBhdGguY29tcG9uZW50cywgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIHNlbGYudXNlTG9uZ2VzdFRva2VuKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gT3RoZXJ3aXNlIHRyYWNrIHRoaXMgcGF0aCBhcyBhIHBvdGVudGlhbCBjYW5kaWRhdGUgYW5kIGNvbnRpbnVlLlxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSBiYXNlUGF0aDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBlZGl0TGVuZ3RoKys7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybXMgdGhlIGxlbmd0aCBvZiBlZGl0IGl0ZXJhdGlvbi4gSXMgYSBiaXQgZnVnbHkgYXMgdGhpcyBoYXMgdG8gc3VwcG9ydCB0aGVcbiAgICAvLyBzeW5jIGFuZCBhc3luYyBtb2RlIHdoaWNoIGlzIG5ldmVyIGZ1bi4gTG9vcHMgb3ZlciBleGVjRWRpdExlbmd0aCB1bnRpbCBhIHZhbHVlXG4gICAgLy8gaXMgcHJvZHVjZWQuXG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAoZnVuY3Rpb24gZXhlYygpIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0pKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgdmFyIHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovIC8qaXN0YW5idWwgaWdub3JlIGVuZCovcHVzaENvbXBvbmVudDogZnVuY3Rpb24gcHVzaENvbXBvbmVudChjb21wb25lbnRzLCBhZGRlZCwgcmVtb3ZlZCkge1xuICAgIHZhciBsYXN0ID0gY29tcG9uZW50c1tjb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChsYXN0ICYmIGxhc3QuYWRkZWQgPT09IGFkZGVkICYmIGxhc3QucmVtb3ZlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgLy8gV2UgbmVlZCB0byBjbG9uZSBoZXJlIGFzIHRoZSBjb21wb25lbnQgY2xvbmUgb3BlcmF0aW9uIGlzIGp1c3RcbiAgICAgIC8vIGFzIHNoYWxsb3cgYXJyYXkgY2xvbmVcbiAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXSA9IHsgY291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHsgY291bnQ6IDEsIGFkZGVkOiBhZGRlZCwgcmVtb3ZlZDogcmVtb3ZlZCB9KTtcbiAgICB9XG4gIH0sXG4gIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9leHRyYWN0Q29tbW9uOiBmdW5jdGlvbiBleHRyYWN0Q29tbW9uKGJhc2VQYXRoLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgZGlhZ29uYWxQYXRoKSB7XG4gICAgdmFyIG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsXG4gICAgICAgIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGgsXG4gICAgICAgIG5ld1BvcyA9IGJhc2VQYXRoLm5ld1BvcyxcbiAgICAgICAgb2xkUG9zID0gbmV3UG9zIC0gZGlhZ29uYWxQYXRoLFxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHsgY291bnQ6IGNvbW1vbkNvdW50IH0pO1xuICAgIH1cblxuICAgIGJhc2VQYXRoLm5ld1BvcyA9IG5ld1BvcztcbiAgICByZXR1cm4gb2xkUG9zO1xuICB9LFxuICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovIC8qaXN0YW5idWwgaWdub3JlIGVuZCovZXF1YWxzOiBmdW5jdGlvbiBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG4gIH0sXG4gIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9yZW1vdmVFbXB0eTogZnVuY3Rpb24gcmVtb3ZlRW1wdHkoYXJyYXkpIHtcbiAgICB2YXIgcmV0ID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFycmF5W2ldKSB7XG4gICAgICAgIHJldC5wdXNoKGFycmF5W2ldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfSxcbiAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLyAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2Nhc3RJbnB1dDogZnVuY3Rpb24gY2FzdElucHV0KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovIC8qaXN0YW5idWwgaWdub3JlIGVuZCovdG9rZW5pemU6IGZ1bmN0aW9uIHRva2VuaXplKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KCcnKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gYnVpbGRWYWx1ZXMoZGlmZiwgY29tcG9uZW50cywgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIHVzZUxvbmdlc3RUb2tlbikge1xuICB2YXIgY29tcG9uZW50UG9zID0gMCxcbiAgICAgIGNvbXBvbmVudExlbiA9IGNvbXBvbmVudHMubGVuZ3RoLFxuICAgICAgbmV3UG9zID0gMCxcbiAgICAgIG9sZFBvcyA9IDA7XG5cbiAgZm9yICg7IGNvbXBvbmVudFBvcyA8IGNvbXBvbmVudExlbjsgY29tcG9uZW50UG9zKyspIHtcbiAgICB2YXIgY29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRQb3NdO1xuICAgIGlmICghY29tcG9uZW50LnJlbW92ZWQpIHtcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkICYmIHVzZUxvbmdlc3RUb2tlbikge1xuICAgICAgICB2YXIgdmFsdWUgPSBuZXdTdHJpbmcuc2xpY2UobmV3UG9zLCBuZXdQb3MgKyBjb21wb25lbnQuY291bnQpO1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLm1hcChmdW5jdGlvbiAodmFsdWUsIGkpIHtcbiAgICAgICAgICB2YXIgb2xkVmFsdWUgPSBvbGRTdHJpbmdbb2xkUG9zICsgaV07XG4gICAgICAgICAgcmV0dXJuIG9sZFZhbHVlLmxlbmd0aCA+IHZhbHVlLmxlbmd0aCA/IG9sZFZhbHVlIDogdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbXBvbmVudC52YWx1ZSA9IHZhbHVlLmpvaW4oJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gbmV3U3RyaW5nLnNsaWNlKG5ld1BvcywgbmV3UG9zICsgY29tcG9uZW50LmNvdW50KS5qb2luKCcnKTtcbiAgICAgIH1cbiAgICAgIG5ld1BvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIENvbW1vbiBjYXNlXG4gICAgICBpZiAoIWNvbXBvbmVudC5hZGRlZCkge1xuICAgICAgICBvbGRQb3MgKz0gY29tcG9uZW50LmNvdW50O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb21wb25lbnQudmFsdWUgPSBvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpLmpvaW4oJycpO1xuICAgICAgb2xkUG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gUmV2ZXJzZSBhZGQgYW5kIHJlbW92ZSBzbyByZW1vdmVzIGFyZSBvdXRwdXQgZmlyc3QgdG8gbWF0Y2ggY29tbW9uIGNvbnZlbnRpb25cbiAgICAgIC8vIFRoZSBkaWZmaW5nIGFsZ29yaXRobSBpcyB0aWVkIHRvIGFkZCB0aGVuIHJlbW92ZSBvdXRwdXQgYW5kIHRoaXMgaXMgdGhlIHNpbXBsZXN0XG4gICAgICAvLyByb3V0ZSB0byBnZXQgdGhlIGRlc2lyZWQgb3V0cHV0IHdpdGggbWluaW1hbCBvdmVyaGVhZC5cbiAgICAgIGlmIChjb21wb25lbnRQb3MgJiYgY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXS5hZGRlZCkge1xuICAgICAgICB2YXIgdG1wID0gY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXTtcbiAgICAgICAgY29tcG9uZW50c1tjb21wb25lbnRQb3MgLSAxXSA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zXTtcbiAgICAgICAgY29tcG9uZW50c1tjb21wb25lbnRQb3NdID0gdG1wO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpYWwgY2FzZSBoYW5kbGUgZm9yIHdoZW4gb25lIHRlcm1pbmFsIGlzIGlnbm9yZWQuIEZvciB0aGlzIGNhc2Ugd2UgbWVyZ2UgdGhlXG4gIC8vIHRlcm1pbmFsIGludG8gdGhlIHByaW9yIHN0cmluZyBhbmQgZHJvcCB0aGUgY2hhbmdlLlxuICB2YXIgbGFzdENvbXBvbmVudCA9IGNvbXBvbmVudHNbY29tcG9uZW50TGVuIC0gMV07XG4gIGlmIChjb21wb25lbnRMZW4gPiAxICYmIChsYXN0Q29tcG9uZW50LmFkZGVkIHx8IGxhc3RDb21wb25lbnQucmVtb3ZlZCkgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a2FXWm1MMkpoYzJVdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPelJEUVVGM1FpeEJPMEZCUVZRc1UwRkJRU3hCUVVGVExFOUJRVThzUVVGQlJUczdRVUZGYWtNc1MwRkJRU3hCUVVGTExHTTdlVUpCUVZrc1FVRkRaaXh2UWtGRVpTeEJRVU5XTEZkQlJGVXNRVUZEUXl4WFFVRjVRanMyUWtGQlFTeEpMSFZDUVVGa0xFRkJRV01zWjBWQlFVb3NRVUZCU1N4bFFVTjJRenM3VVVGQlNTeFhRVUZYTEZGQlFXWXNRVUZCZFVJc1FVRkRka0k3VVVGQlNTeFBRVUZCTEVGQlFVOHNXVUZCV0N4QlFVRjFRaXhaUVVGWkxFRkJRMnBETzJsQ1FVRkJMRUZCUVZjc1FVRkRXRHRuUWtGQlFTeEJRVUZWTEVGQlExZzdRVUZEUkR0VFFVRkJMRUZCUVVzc1ZVRkJUQ3hCUVVGbExFRkJSV1k3TzFGQlFVa3NUMEZCU2l4QlFVRlhMRUZCUlZnN08yRkJRVUVzUVVGQlV5eExRVUZVTEVGQlFXTXNUMEZCVHl4QlFVTnVRanRWUVVGQkxFRkJRVWtzVlVGQlZTeEJRVU5hTzIxQ1FVRlhMRmxCUVZjc1FVRkJSVHR0UWtGQlFTeEJRVUZUTEZkQlFWUXNRVUZCYjBJc1FVRkJVenRCUVVGeVJDeFhRVUZCTEVGQlFYVkVMRUZCUTNaRU8yVkJRVUVzUVVGQlR5eEJRVU5TTzBGQlNFUXNZVUZIVHl4QlFVTk1PMlZCUVVFc1FVRkJUeXhCUVVOU08wRkJRMFk3T3p0QlFVZEVPMmRDUVVGWkxFdEJRVUVzUVVGQlN5eFZRVUZxUWl4QlFVRlpMRUZCUVdVc1FVRkRNMEk3WjBKQlFWa3NTMEZCUVN4QlFVRkxMRlZCUVdwQ0xFRkJRVmtzUVVGQlpTeEJRVVV6UWpzN1owSkJRVmtzUzBGQlFTeEJRVUZMTEZsQlFWa3NTMEZCUVN4QlFVRkxMRk5CUVd4RExFRkJRVmtzUVVGQmFVSXNRVUZCWXl4QlFVTXpRenRuUWtGQldTeExRVUZCTEVGQlFVc3NXVUZCV1N4TFFVRkJMRUZCUVVzc1UwRkJiRU1zUVVGQldTeEJRVUZwUWl4QlFVRmpMRUZCUlRORE96dFJRVUZKTEZOQlFWTXNWVUZCWWl4QlFVRjFRanRSUVVGUkxGTkJRVk1zVlVGQmVFTXNRVUZCYTBRc1FVRkRiRVE3VVVGQlNTeGhRVUZLTEVGQlFXbENMRUZCUTJwQ08xRkJRVWtzWjBKQlFXZENMRk5CUVhCQ0xFRkJRVFpDTEVGQlF6ZENPMUZCUVVrc1YwRkJWeXhEUVVGRExFVkJRVVVzVVVGQlVTeERRVUZXTEVGQlFWY3NSMEZCUnl4WlFVRTVRaXhCUVVGbExFRkJRVU1zUVVGQk1FSTdPMEZCUnpGRE8xRkJRVWtzVTBGQlV5eExRVUZCTEVGQlFVc3NZMEZCWXl4VFFVRnVRaXhCUVVGdFFpeEJRVUZUTEVsQlFUVkNMRUZCUVdkRExGZEJRV2hETEVGQlFUSkRMRmRCUVhoRUxFRkJRV0VzUVVGQmMwUXNRVUZEYmtVN1VVRkJTU3hUUVVGQkxFRkJRVk1zUjBGQlZDeEJRVUZaTEZOQlFWb3NRVUZCY1VJc1MwRkJja0lzUVVGQk1FSXNWVUZCVlN4VFFVRkJMRUZCUVZNc1MwRkJha1FzUVVGQmMwUXNVVUZCVVR0QlFVVTFSRHRoUVVGUExFdEJRVXNzUTBGQlF5eEZRVUZETEU5QlFVOHNWVUZCUVN4QlFVRlZMRXRCUVd4Q0xFRkJRVkVzUVVGQlpTeExRVUZMTEU5QlFVOHNWVUZCYUVRc1FVRkJUeXhCUVVGTExFRkJRVU1zUVVGQk5rTXNRVUZETTBRN096dEJRVWRFTzJGQlFVRXNRVUZCVXl4cFFrRkJhVUlzUVVGRGVFSTdWMEZCU3l4SlFVRkpMR1ZCUVdVc1EwRkJRU3hCUVVGRExFbEJRWHBDTEVGQlFUWkNMRmxCUVZrc1owSkJRWHBETEVGQlFYbEVMRmxCUVZrc1owSkJRWEpGTEVGQlFYRkdMRWRCUVVjc1FVRkRkRVk3V1VGQlNTeFhMSGxDUVVGQkxFc3NSVUZCU2l4QlFVTkJPMWxCUVVrc1ZVRkJWU3hUUVVGVExHVkJRWFpDTEVGQlFXTXNRVUZCZDBJN1dVRkRiRU1zWVVGQllTeFRRVUZUTEdWQlJERkNMRUZCUTJsQ0xFRkJRWGRDTzFsQlEzSkRMRlZCUVZNc1EwRkJReXhoUVVGaExGZEJRV0lzUVVGQmQwSXNVMEZCZWtJc1FVRkJhME1zUzBGR0wwTXNRVUZGYjBRc1FVRkRjRVE3V1VGQlFTeEJRVUZKTEZOQlFWTTdRVUZGV0R0dFFrRkJVeXhsUVVGVUxFRkJRWGRDTEV0QlFYaENMRUZCUVRaQ0xFRkJRemxDTzBGQlJVUTdPMWxCUVVrc1UwRkJVeXhYUVVGWExGRkJRVUVzUVVGQlVTeFRRVUZTTEVGQlFXbENMRWxCUVhwRExFRkJRVFpETzFsQlEzcERMRmxCUVZrc1kwRkJZeXhMUVVGa0xFRkJRVzFDTEZkQlFWVXNWVUZFTjBNc1FVRkRjMFFzUVVGRGRFUTdXVUZCU1N4RFFVRkJMRUZCUVVNc1ZVRkJWU3hEUVVGbUxFRkJRV2RDTEZkQlFWYzdRVUZGZWtJN2JVSkJRVUVzUVVGQlV5eG5Ra0ZCVkN4QlFVRjVRaXhCUVVONlFqdEJRVU5FT3pzN096dEJRVXRFTzFsQlFVa3NRMEZCUVN4QlFVRkRMRlZCUVZjc1lVRkJZU3hSUVVGQkxFRkJRVkVzVTBGQlV5eFhRVUU1UXl4QlFVRjVSQ3hSUVVGVExFRkJRMmhGTzNGQ1FVRlhMRlZCUVZnc1FVRkJWeXhCUVVGVkxFRkJRM0pDTzJWQlFVRXNRVUZCU3l4alFVRmpMRk5CUVc1Q0xFRkJRVFJDTEZsQlFUVkNMRUZCUVhkRExGZEJRWGhETEVGQlFXMUVMRUZCUTNCRU8wRkJTRVFzWlVGSFR5eEJRVU5NTzNGQ1FVRkJMRUZCUVZjc1FTeFRRVU5ZTzIxQ1FVRkJMRUZCUVZNc1FVRkRWRHRsUVVGQkxFRkJRVXNzWTBGQll5eFRRVUZ1UWl4QlFVRTBRaXhaUVVFMVFpeEJRVUYzUXl4TlFVRjRReXhCUVVFNFF5eEJRVU12UXp0QlFVVkVPenRyUWtGQlV5eExRVUZCTEVGQlFVc3NZMEZCVEN4QlFVRnRRaXhWUVVGdVFpeEJRVUUyUWl4WFFVRTNRaXhCUVVGM1F5eFhRVUZxUkN4QlFVRlRMRUZCUVcxRU96dEJRVWMxUkR0WlFVRkpMRk5CUVVFc1FVRkJVeXhUUVVGVUxFRkJRV3RDTEV0QlFXeENMRUZCUVhWQ0xGVkJRVlVzVlVGQlFTeEJRVUZUTEV0QlFUbERMRUZCUVcxRUxGRkJRVkVzUVVGRGVrUTdhVUpCUVU4c1MwRkJTeXhaUVVGQkxFRkJRVmtzVFVGQlRTeFRRVUZzUWl4QlFVRXlRaXhaUVVFelFpeEJRVUYxUXl4WFFVRjJReXhCUVVGclJDeFhRVUZYTEV0QlFYcEZMRUZCUVU4c1FVRkJTeXhCUVVGclJTeEJRVU12UlR0QlFVWkVMR1ZCUlU4N1FVRkZURHR0UWtGQlFTeEJRVUZUTEdkQ1FVRlVMRUZCUVhsQ0xFRkJRekZDTzBGQlEwWTdRVUZGUkRzN1FVRkRSRHM3T3pzN1FVRkxSRHRSUVVGQkxFRkJRVWtzVlVGQlZTeEJRVU5ZTzJkQ1FVRkJMRUZCUVZNc1QwRkJUeXhCUVVObU8yMUNRVUZYTEZsQlFWYzdPMEZCUjNCQ08yTkJRVWtzWVVGQlNpeEJRVUZwUWl4bFFVRmxMRUZCUXpsQ08yMUNRVUZCTEVGQlFVOHNRVUZEVWp0QlFVVkVPenRqUVVGSkxFTkJRVW9zUVVGQlN5eHJRa0ZCYTBJc1FVRkRja0k3UVVGRFJEdEJRVU5HTzBGQlZrUXNWMEZCUVN4QlFWVkhMRUZCUTBvN1FVRmFSQ3hCUVVGRExFRkJZVVk3UVVGa1JDeFhRV05QTEVGQlEwdzdZVUZCVHl4alFVRlFMRUZCUVhGQ0xHVkJRV1VzUVVGRGJFTTdXVUZCU1N4TlFVRktMRUZCUVZVc1FVRkRWanRaUVVGQkxFRkJRVWtzUzBGQlN5eEJRVU5RTzJsQ1FVRkJMRUZCUVU4c1FVRkRVanRCUVVOR08wRkJRMFk3UVVGRFJqdEJRVGxIWXp0dFJFRkJRU3hCUVdkSVppeHpRMEZvU0dVc1FVRm5TRVFzV1VGb1NFTXNRVUZuU0Zjc1QwRm9TRmdzUVVGblNHdENMRk5CUVZNc1FVRkRlRU03VVVGQlNTeFBRVUZQTEZkQlFWY3NWMEZCUVN4QlFVRlhMRk5CUVdwRExFRkJRVmNzUVVGQkswSXNRVUZETVVNN1VVRkJTU3hSUVVGUkxFdEJRVUVzUVVGQlN5eFZRVUZpTEVGQlFYVkNMRk5CUVZNc1MwRkJRU3hCUVVGTExGbEJRWHBETEVGQlFYRkVMRk5CUVZNN08wRkJSelZFTzJsQ1FVRlhMRmRCUVVFc1FVRkJWeXhUUVVGMFFpeEJRVUVyUWl4TFFVRkxMRVZCUVVNc1QwRkJUeXhMUVVGQkxFRkJRVXNzVVVGQllpeEJRVUZ4UWl4SFFVRkhMRTlCUVhoQ0xFRkJRU3RDTEU5QlFVOHNVMEZCTVVVc1FVRkJiME1zUVVGQkswTXNRVUZEY0VZN1FVRktSQ3hYUVVsUExFRkJRMHc3YVVKQlFVRXNRVUZCVnl4TFFVRkxMRVZCUVVNc1QwRkJSQ3hCUVVGUkxFZEJRVWNzVDBGQldDeEJRVUZyUWl4UFFVRlBMRk5CUVhwRExFRkJRV2RDTEVGQlFXdERMRUZCUTI1RU8wRkJRMFk3UVVGNlNHTTdiVVJCUVVFc1FVRXdTR1lzYzBOQk1VaGxMRUZCTUVoRUxGVkJNVWhETEVGQk1FaFRMRmRCTVVoVUxFRkJNRWh2UWl4WFFURkljRUlzUVVFd1NDdENMR05CUVdNc1FVRkRNVVE3VVVGQlNTeFRRVUZUTEZWQlFXSXNRVUZCZFVJN1VVRkRia0lzVTBGQlV5eFZRVVJpTEVGQlEzVkNPMUZCUTI1Q0xGTkJRVk1zVTBGR1lpeEJRVVZ6UWp0UlFVTnNRaXhUUVVGVExGTkJTR0lzUVVGSGMwSTdVVUZGYkVJc1kwRk1TaXhCUVV0clFpeEJRVU5zUWp0WFFVRlBMRk5CUVVFc1FVRkJVeXhKUVVGVUxFRkJRV0VzVlVGQlZTeFRRVUZCTEVGQlFWTXNTVUZCYUVNc1FVRkJiME1zVlVGQlZTeExRVUZCTEVGQlFVc3NUMEZCVHl4VlFVRlZMRk5CUVhSQ0xFRkJRVmtzUVVGQmJVSXNTVUZCU1N4VlFVRlZMRk5CUVd4SExFRkJRWEZFTEVGQlFXMURMRUZCUVcxQ0xFdEJRVXNzUVVGRE9VYzdRVUZEUVR0QlFVTkJPMEZCUTBRN1FVRkZSRHM3VVVGQlFTeEJRVUZKTEdGQlFXRXNRVUZEWmp0bFFVRkJMRUZCUVZNc1YwRkJWQ3hCUVVGdlFpeExRVUZMTEVWQlFVTXNUMEZCTVVJc1FVRkJlVUlzUVVGQlVTeEJRVU5zUXp0QlFVVkVPenRoUVVGQkxFRkJRVk1zVTBGQlZDeEJRVUZyUWl4QlFVTnNRanRYUVVGQkxFRkJRVThzUVVGRFVqdEJRVGRKWXp0dFJFRkJRU3hCUVN0SlppeDNRa0V2U1dVc1FVRXJTVklzVFVFdlNWRXNRVUVyU1VZc1QwRkJUeXhCUVVOc1FqdFhRVUZQTEZOQlFWQXNRVUZCWjBJc1FVRkRha0k3UVVGcVNtTTdiVVJCUVVFc1FVRnJTbVlzYTBOQmJFcGxMRUZCYTBwSUxFOUJRVThzUVVGRGFrSTdVVUZCU1N4TlFVRktMRUZCUVZVc1FVRkRWanRUUVVGTExFbEJRVWtzU1VGQlZDeEJRVUZoTEVkQlFVY3NTVUZCU1N4TlFVRndRaXhCUVVFd1FpeFJRVUV4UWl4QlFVRnJReXhMUVVGTExFRkJRM0pETzFWQlFVa3NUVUZCU2l4QlFVRkpMRUZCUVUwc1NVRkJTU3hCUVVOYU8xbEJRVUVzUVVGQlNTeExRVUZMTEUxQlFWUXNRVUZCVXl4QlFVRk5MRUZCUTJoQ08wRkJRMFk3UVVGRFJEdFhRVUZCTEVGQlFVOHNRVUZEVWp0QlFURktZenR0UkVGQlFTeEJRVEpLWml3NFFrRXpTbVVzUVVFeVNrd3NUMEZCVHl4QlFVTm1PMWRCUVVFc1FVRkJUeXhCUVVOU08wRkJOMHBqTzIxRVFVRkJMRUZCT0VwbUxEUkNRVGxLWlN4QlFUaEtUaXhQUVVGUExFRkJRMlE3VjBGQlR5eE5RVUZCTEVGQlFVMHNUVUZCWWl4QlFVRlBMRUZCUVZrc1FVRkRjRUk3UVVGb1MwZ3NRVUZCYVVJN1FVRkJRVHM3UVVGdFMycENMRk5CUVVFc1FVRkJVeXhaUVVGVUxFRkJRWEZDTEUxQlFYSkNMRUZCUVRKQ0xGbEJRVE5DTEVGQlFYVkRMRmRCUVhaRExFRkJRV3RFTEZkQlFXeEVMRUZCUVRaRUxHbENRVUZwUWl4QlFVTTFSVHROUVVGSkxHVkJRVW9zUVVGQmJVSTdUVUZEWml4bFFVRmxMRmRCUkc1Q0xFRkJRemhDTzAxQlF6RkNMRk5CUmtvc1FVRkZZVHROUVVOVUxGTkJTRW9zUVVGSFlTeEJRVVZpT3p0VFFVRlBMR1ZCUVZBc1FVRkJjMElzWTBGQmRFSXNRVUZCYjBNc1owSkJRV2RDTEVGQlEyeEVPMUZCUVVrc1dVRkJXU3hYUVVGb1FpeEJRVUZuUWl4QlFVRlhMRUZCUXpOQ08xRkJRVWtzUTBGQlF5eFZRVUZNTEVGQlFXVXNVMEZCVXl4QlFVTjBRanRWUVVGSkxFTkJRVU1zVlVGQlJDeEJRVUZYTEZOQlFXWXNRVUZCZDBJc2FVSkJRV2xDTEVGQlEzWkRPMWxCUVVrc1VVRkJVU3hWUVVGQkxFRkJRVlVzVFVGQlZpeEJRVUZuUWl4UlFVRlJMRk5CUVZNc1ZVRkJOME1zUVVGQldTeEJRVUV5UXl4QlFVTjJSRHR6UWtGQlVTeEJRVUZOTEVsQlFVa3NWVUZCUVN4QlFVRlRMRTlCUVZRc1FVRkJaMElzUjBGQlJ5eEJRVU51UXp0alFVRkpMRmRCUVZjc1ZVRkJWU3hUUVVGNlFpeEJRVUZsTEVGQlFXMUNMRUZCUTJ4RE8ybENRVUZQTEZOQlFVRXNRVUZCVXl4VFFVRlRMRTFCUVd4Q0xFRkJRWGRDTEZOQlFYaENMRUZCUVdsRExGZEJRWGhETEVGQlFXMUVMRUZCUTNCRU8wRkJTRVFzUVVGQlVTeEJRVXRTTEZOQlRGRTdPMnRDUVV0U0xFRkJRVlVzVVVGQlVTeE5RVUZCTEVGQlFVMHNTMEZCZUVJc1FVRkJhMElzUVVGQlZ5eEJRVU01UWp0QlFWSkVMR0ZCVVU4c1FVRkRURHRyUWtGQlFTeEJRVUZWTEZGQlFWRXNWVUZCUVN4QlFVRlZMRTFCUVZZc1FVRkJaMElzVVVGQlVTeFRRVUZUTEZWQlFXcERMRUZCUVRKRExFOUJRVE5ETEVGQlFXdEVMRXRCUVhCRkxFRkJRV3RDTEVGQlFYVkVMRUZCUXpGRk8wRkJRMFE3WjBKQlFWVXNWVUZCVml4QlFVRnZRanM3UVVGSGNFSTdWVUZCU1N4RFFVRkRMRlZCUVV3c1FVRkJaU3hQUVVGUExFRkJRM0JDTzJ0Q1FVRlZMRlZCUVZZc1FVRkJiMElzUVVGRGNrSTdRVUZEUmp0QlFXeENSQ3hYUVd0Q1R5eEJRVU5NTzJkQ1FVRkJMRUZCUVZVc1VVRkJVU3hWUVVGQkxFRkJRVlVzVFVGQlZpeEJRVUZuUWl4UlFVRlJMRk5CUVZNc1ZVRkJha01zUVVGQk1rTXNUMEZCTTBNc1FVRkJhMFFzUzBGQmNFVXNRVUZCYTBJc1FVRkJkVVFzUVVGRGVrVTdaMEpCUVZVc1ZVRkJWaXhCUVVGdlFqczdPenRCUVV0d1FqdFZRVUZKTEdkQ1FVRm5RaXhYUVVGWExHVkJRVmdzUVVGQk1FSXNSMEZCT1VNc1FVRkJhVVFzVDBGQlR5eEJRVU4wUkR0WlFVRkpMRTFCUVUwc1YwRkJWeXhsUVVGeVFpeEJRVUZWTEVGQlFUQkNMRUZCUTNCRE8yMUNRVUZYTEdWQlFWZ3NRVUZCTUVJc1MwRkJTeXhYUVVFdlFpeEJRVUVyUWl4QlFVRlhMRUZCUXpGRE8yMUNRVUZCTEVGQlFWY3NaMEpCUVZnc1FVRkJNa0lzUVVGRE5VSTdRVUZEUmp0QlFVTkdPenM3TzBGQlNVUTdUVUZCU1N4blFrRkJaMElzVjBGQlZ5eGxRVUV2UWl4QlFVRnZRaXhCUVVFd1FpeEJRVU01UXp0TlFVRkpMR1ZCUVVFc1FVRkJaU3hOUVVOWUxHTkJRVUVzUVVGQll5eFRRVUZUTEdOQlJETkNMRUZCUTNsRExGbEJRM1JETEV0QlFVRXNRVUZCU3l4UFFVRk1MRUZCUVZrc1NVRkJTU3hqUVVaMlFpeEJRVVZQTEVGQlFUaENMRkZCUVZFc1FVRkRNME03WlVGQlZ5eGxRVUZZTEVGQlFUQkNMRWRCUVRGQ0xFRkJRVFpDTEZOQlFWTXNZMEZCZEVNc1FVRkJiMFFzUVVGRGNFUTdaVUZCUVN4QlFVRlhMRUZCUTFvN1FVRkZSRHM3VTBGQlFTeEJRVUZQTEVGQlExSTdPenRCUVVWRUxGTkJRVUVzUVVGQlV5eFZRVUZVTEVGQlFXMUNMRTFCUVUwc1FVRkRka0k3VTBGQlR5eEZRVUZGTEZGQlFWRXNTMEZCVml4QlFVRmxMRkZCUVZFc1dVRkJXU3hMUVVGQkxFRkJRVXNzVjBGQlRDeEJRVUZuUWl4TlFVRXhSQ3hCUVVGUExFRkJRVzFETEVGQlFYTkNMRUZCUTJwRklpd2labWxzWlNJNkltSmhjMlV1YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SmxlSEJ2Y25RZ1pHVm1ZWFZzZENCbWRXNWpkR2x2YmlCRWFXWm1LQ2tnZTMxY2JseHVSR2xtWmk1d2NtOTBiM1I1Y0dVZ1BTQjdYRzRnSUdScFptWW9iMnhrVTNSeWFXNW5MQ0J1WlhkVGRISnBibWNzSUc5d2RHbHZibk1nUFNCN2ZTa2dlMXh1SUNBZ0lHeGxkQ0JqWVd4c1ltRmpheUE5SUc5d2RHbHZibk11WTJGc2JHSmhZMnM3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ2Y0hScGIyNXpJRDA5UFNBblpuVnVZM1JwYjI0bktTQjdYRzRnSUNBZ0lDQmpZV3hzWW1GamF5QTlJRzl3ZEdsdmJuTTdYRzRnSUNBZ0lDQnZjSFJwYjI1eklEMGdlMzA3WEc0Z0lDQWdmVnh1SUNBZ0lIUm9hWE11YjNCMGFXOXVjeUE5SUc5d2RHbHZibk03WEc1Y2JpQWdJQ0JzWlhRZ2MyVnNaaUE5SUhSb2FYTTdYRzVjYmlBZ0lDQm1kVzVqZEdsdmJpQmtiMjVsS0haaGJIVmxLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyRnNiR0poWTJzcElIdGNiaUFnSUNBZ0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaWdwSUhzZ1kyRnNiR0poWTJzb2RXNWtaV1pwYm1Wa0xDQjJZV3gxWlNrN0lIMHNJREFwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMllXeDFaVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJCYkd4dmR5QnpkV0pqYkdGemMyVnpJSFJ2SUcxaGMzTmhaMlVnZEdobElHbHVjSFYwSUhCeWFXOXlJSFJ2SUhKMWJtNXBibWRjYmlBZ0lDQnZiR1JUZEhKcGJtY2dQU0IwYUdsekxtTmhjM1JKYm5CMWRDaHZiR1JUZEhKcGJtY3BPMXh1SUNBZ0lHNWxkMU4wY21sdVp5QTlJSFJvYVhNdVkyRnpkRWx1Y0hWMEtHNWxkMU4wY21sdVp5azdYRzVjYmlBZ0lDQnZiR1JUZEhKcGJtY2dQU0IwYUdsekxuSmxiVzkyWlVWdGNIUjVLSFJvYVhNdWRHOXJaVzVwZW1Vb2IyeGtVM1J5YVc1bktTazdYRzRnSUNBZ2JtVjNVM1J5YVc1bklEMGdkR2hwY3k1eVpXMXZkbVZGYlhCMGVTaDBhR2x6TG5SdmEyVnVhWHBsS0c1bGQxTjBjbWx1WnlrcE8xeHVYRzRnSUNBZ2JHVjBJRzVsZDB4bGJpQTlJRzVsZDFOMGNtbHVaeTVzWlc1bmRHZ3NJRzlzWkV4bGJpQTlJRzlzWkZOMGNtbHVaeTVzWlc1bmRHZzdYRzRnSUNBZ2JHVjBJR1ZrYVhSTVpXNW5kR2dnUFNBeE8xeHVJQ0FnSUd4bGRDQnRZWGhGWkdsMFRHVnVaM1JvSUQwZ2JtVjNUR1Z1SUNzZ2IyeGtUR1Z1TzF4dUlDQWdJR3hsZENCaVpYTjBVR0YwYUNBOUlGdDdJRzVsZDFCdmN6b2dMVEVzSUdOdmJYQnZibVZ1ZEhNNklGdGRJSDFkTzF4dVhHNGdJQ0FnTHk4Z1UyVmxaQ0JsWkdsMFRHVnVaM1JvSUQwZ01Dd2dhUzVsTGlCMGFHVWdZMjl1ZEdWdWRDQnpkR0Z5ZEhNZ2QybDBhQ0IwYUdVZ2MyRnRaU0IyWVd4MVpYTmNiaUFnSUNCc1pYUWdiMnhrVUc5eklEMGdkR2hwY3k1bGVIUnlZV04wUTI5dGJXOXVLR0psYzNSUVlYUm9XekJkTENCdVpYZFRkSEpwYm1jc0lHOXNaRk4wY21sdVp5d2dNQ2s3WEc0Z0lDQWdhV1lnS0dKbGMzUlFZWFJvV3pCZExtNWxkMUJ2Y3lBcklERWdQajBnYm1WM1RHVnVJQ1ltSUc5c1pGQnZjeUFySURFZ1BqMGdiMnhrVEdWdUtTQjdYRzRnSUNBZ0lDQXZMeUJKWkdWdWRHbDBlU0J3WlhJZ2RHaGxJR1Z4ZFdGc2FYUjVJR0Z1WkNCMGIydGxibWw2WlhKY2JpQWdJQ0FnSUhKbGRIVnliaUJrYjI1bEtGdDdkbUZzZFdVNklHNWxkMU4wY21sdVp5NXFiMmx1S0NjbktTd2dZMjkxYm5RNklHNWxkMU4wY21sdVp5NXNaVzVuZEdoOVhTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdUV0ZwYmlCM2IzSnJaWElnYldWMGFHOWtMaUJqYUdWamEzTWdZV3hzSUhCbGNtMTFkR0YwYVc5dWN5QnZaaUJoSUdkcGRtVnVJR1ZrYVhRZ2JHVnVaM1JvSUdadmNpQmhZMk5sY0hSaGJtTmxMbHh1SUNBZ0lHWjFibU4wYVc5dUlHVjRaV05GWkdsMFRHVnVaM1JvS0NrZ2UxeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ1pHbGhaMjl1WVd4UVlYUm9JRDBnTFRFZ0tpQmxaR2wwVEdWdVozUm9PeUJrYVdGbmIyNWhiRkJoZEdnZ1BEMGdaV1JwZEV4bGJtZDBhRHNnWkdsaFoyOXVZV3hRWVhSb0lDczlJRElwSUh0Y2JpQWdJQ0FnSUNBZ2JHVjBJR0poYzJWUVlYUm9PMXh1SUNBZ0lDQWdJQ0JzWlhRZ1lXUmtVR0YwYUNBOUlHSmxjM1JRWVhSb1cyUnBZV2R2Ym1Gc1VHRjBhQ0F0SURGZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WdGIzWmxVR0YwYUNBOUlHSmxjM1JRWVhSb1cyUnBZV2R2Ym1Gc1VHRjBhQ0FySURGZExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYjJ4a1VHOXpJRDBnS0hKbGJXOTJaVkJoZEdnZ1B5QnlaVzF2ZG1WUVlYUm9MbTVsZDFCdmN5QTZJREFwSUMwZ1pHbGhaMjl1WVd4UVlYUm9PMXh1SUNBZ0lDQWdJQ0JwWmlBb1lXUmtVR0YwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUU1dklHOXVaU0JsYkhObElHbHpJR2R2YVc1bklIUnZJR0YwZEdWdGNIUWdkRzhnZFhObElIUm9hWE1nZG1Gc2RXVXNJR05zWldGeUlHbDBYRzRnSUNBZ0lDQWdJQ0FnWW1WemRGQmhkR2hiWkdsaFoyOXVZV3hRWVhSb0lDMGdNVjBnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JzWlhRZ1kyRnVRV1JrSUQwZ1lXUmtVR0YwYUNBbUppQmhaR1JRWVhSb0xtNWxkMUJ2Y3lBcklERWdQQ0J1WlhkTVpXNHNYRzRnSUNBZ0lDQWdJQ0FnSUNCallXNVNaVzF2ZG1VZ1BTQnlaVzF2ZG1WUVlYUm9JQ1ltSURBZ1BEMGdiMnhrVUc5eklDWW1JRzlzWkZCdmN5QThJRzlzWkV4bGJqdGNiaUFnSUNBZ0lDQWdhV1lnS0NGallXNUJaR1FnSmlZZ0lXTmhibEpsYlc5MlpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklFbG1JSFJvYVhNZ2NHRjBhQ0JwY3lCaElIUmxjbTFwYm1Gc0lIUm9aVzRnY0hKMWJtVmNiaUFnSUNBZ0lDQWdJQ0JpWlhOMFVHRjBhRnRrYVdGbmIyNWhiRkJoZEdoZElEMGdkVzVrWldacGJtVmtPMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuUnBiblZsTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdMeThnVTJWc1pXTjBJSFJvWlNCa2FXRm5iMjVoYkNCMGFHRjBJSGRsSUhkaGJuUWdkRzhnWW5KaGJtTm9JR1p5YjIwdUlGZGxJSE5sYkdWamRDQjBhR1VnY0hKcGIzSmNiaUFnSUNBZ0lDQWdMeThnY0dGMGFDQjNhRzl6WlNCd2IzTnBkR2x2YmlCcGJpQjBhR1VnYm1WM0lITjBjbWx1WnlCcGN5QjBhR1VnWm1GeWRHaGxjM1FnWm5KdmJTQjBhR1VnYjNKcFoybHVYRzRnSUNBZ0lDQWdJQzh2SUdGdVpDQmtiMlZ6SUc1dmRDQndZWE56SUhSb1pTQmliM1Z1WkhNZ2IyWWdkR2hsSUdScFptWWdaM0poY0doY2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZqWVc1QlpHUWdmSHdnS0dOaGJsSmxiVzkyWlNBbUppQmhaR1JRWVhSb0xtNWxkMUJ2Y3lBOElISmxiVzkyWlZCaGRHZ3VibVYzVUc5ektTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdKaGMyVlFZWFJvSUQwZ1kyeHZibVZRWVhSb0tISmxiVzkyWlZCaGRHZ3BPMXh1SUNBZ0lDQWdJQ0FnSUhObGJHWXVjSFZ6YUVOdmJYQnZibVZ1ZENoaVlYTmxVR0YwYUM1amIyMXdiMjVsYm5SekxDQjFibVJsWm1sdVpXUXNJSFJ5ZFdVcE8xeHVJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQWdJR0poYzJWUVlYUm9JRDBnWVdSa1VHRjBhRHNnSUNBdkx5Qk9ieUJ1WldWa0lIUnZJR05zYjI1bExDQjNaU2QyWlNCd2RXeHNaV1FnYVhRZ1puSnZiU0IwYUdVZ2JHbHpkRnh1SUNBZ0lDQWdJQ0FnSUdKaGMyVlFZWFJvTG01bGQxQnZjeXNyTzF4dUlDQWdJQ0FnSUNBZ0lITmxiR1l1Y0hWemFFTnZiWEJ2Ym1WdWRDaGlZWE5sVUdGMGFDNWpiMjF3YjI1bGJuUnpMQ0IwY25WbExDQjFibVJsWm1sdVpXUXBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2IyeGtVRzl6SUQwZ2MyVnNaaTVsZUhSeVlXTjBRMjl0Ylc5dUtHSmhjMlZRWVhSb0xDQnVaWGRUZEhKcGJtY3NJRzlzWkZOMGNtbHVaeXdnWkdsaFoyOXVZV3hRWVhSb0tUdGNibHh1SUNBZ0lDQWdJQ0F2THlCSlppQjNaU0JvWVhabElHaHBkQ0IwYUdVZ1pXNWtJRzltSUdKdmRHZ2djM1J5YVc1bmN5d2dkR2hsYmlCM1pTQmhjbVVnWkc5dVpWeHVJQ0FnSUNBZ0lDQnBaaUFvWW1GelpWQmhkR2d1Ym1WM1VHOXpJQ3NnTVNBK1BTQnVaWGRNWlc0Z0ppWWdiMnhrVUc5eklDc2dNU0ErUFNCdmJHUk1aVzRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHOXVaU2hpZFdsc1pGWmhiSFZsY3loelpXeG1MQ0JpWVhObFVHRjBhQzVqYjIxd2IyNWxiblJ6TENCdVpYZFRkSEpwYm1jc0lHOXNaRk4wY21sdVp5d2djMlZzWmk1MWMyVk1iMjVuWlhOMFZHOXJaVzRwS1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJQZEdobGNuZHBjMlVnZEhKaFkyc2dkR2hwY3lCd1lYUm9JR0Z6SUdFZ2NHOTBaVzUwYVdGc0lHTmhibVJwWkdGMFpTQmhibVFnWTI5dWRHbHVkV1V1WEc0Z0lDQWdJQ0FnSUNBZ1ltVnpkRkJoZEdoYlpHbGhaMjl1WVd4UVlYUm9YU0E5SUdKaGMyVlFZWFJvTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHVmthWFJNWlc1bmRHZ3JLenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJRWlhKbWIzSnRjeUIwYUdVZ2JHVnVaM1JvSUc5bUlHVmthWFFnYVhSbGNtRjBhVzl1TGlCSmN5QmhJR0pwZENCbWRXZHNlU0JoY3lCMGFHbHpJR2hoY3lCMGJ5QnpkWEJ3YjNKMElIUm9aVnh1SUNBZ0lDOHZJSE41Ym1NZ1lXNWtJR0Z6ZVc1aklHMXZaR1VnZDJocFkyZ2dhWE1nYm1WMlpYSWdablZ1TGlCTWIyOXdjeUJ2ZG1WeUlHVjRaV05GWkdsMFRHVnVaM1JvSUhWdWRHbHNJR0VnZG1Gc2RXVmNiaUFnSUNBdkx5QnBjeUJ3Y205a2RXTmxaQzVjYmlBZ0lDQnBaaUFvWTJGc2JHSmhZMnNwSUh0Y2JpQWdJQ0FnSUNobWRXNWpkR2x2YmlCbGVHVmpLQ2tnZTF4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUtDa2dlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGUm9hWE1nYzJodmRXeGtJRzV2ZENCb1lYQndaVzRzSUdKMWRDQjNaU0IzWVc1MElIUnZJR0psSUhOaFptVXVYRzRnSUNBZ0lDQWdJQ0FnTHlvZ2FYTjBZVzVpZFd3Z2FXZHViM0psSUc1bGVIUWdLaTljYmlBZ0lDQWdJQ0FnSUNCcFppQW9aV1JwZEV4bGJtZDBhQ0ErSUcxaGVFVmthWFJNWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCallXeHNZbUZqYXlncE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNBZ0lHbG1JQ2doWlhobFkwVmthWFJNWlc1bmRHZ29LU2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdaWGhsWXlncE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlN3Z01DazdYRzRnSUNBZ0lDQjlLQ2twTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQjNhR2xzWlNBb1pXUnBkRXhsYm1kMGFDQThQU0J0WVhoRlpHbDBUR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJR3hsZENCeVpYUWdQU0JsZUdWalJXUnBkRXhsYm1kMGFDZ3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2NtVjBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhKbGREdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0J3ZFhOb1EyOXRjRzl1Wlc1MEtHTnZiWEJ2Ym1WdWRITXNJR0ZrWkdWa0xDQnlaVzF2ZG1Wa0tTQjdYRzRnSUNBZ2JHVjBJR3hoYzNRZ1BTQmpiMjF3YjI1bGJuUnpXMk52YlhCdmJtVnVkSE11YkdWdVozUm9JQzBnTVYwN1hHNGdJQ0FnYVdZZ0tHeGhjM1FnSmlZZ2JHRnpkQzVoWkdSbFpDQTlQVDBnWVdSa1pXUWdKaVlnYkdGemRDNXlaVzF2ZG1Wa0lEMDlQU0J5WlcxdmRtVmtLU0I3WEc0Z0lDQWdJQ0F2THlCWFpTQnVaV1ZrSUhSdklHTnNiMjVsSUdobGNtVWdZWE1nZEdobElHTnZiWEJ2Ym1WdWRDQmpiRzl1WlNCdmNHVnlZWFJwYjI0Z2FYTWdhblZ6ZEZ4dUlDQWdJQ0FnTHk4Z1lYTWdjMmhoYkd4dmR5QmhjbkpoZVNCamJHOXVaVnh1SUNBZ0lDQWdZMjl0Y0c5dVpXNTBjMXRqYjIxd2IyNWxiblJ6TG14bGJtZDBhQ0F0SURGZElEMGdlMk52ZFc1ME9pQnNZWE4wTG1OdmRXNTBJQ3NnTVN3Z1lXUmtaV1E2SUdGa1pHVmtMQ0J5WlcxdmRtVmtPaUJ5WlcxdmRtVmtJSDA3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lHTnZiWEJ2Ym1WdWRITXVjSFZ6YUNoN1kyOTFiblE2SURFc0lHRmtaR1ZrT2lCaFpHUmxaQ3dnY21WdGIzWmxaRG9nY21WdGIzWmxaQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lIMHNYRzRnSUdWNGRISmhZM1JEYjIxdGIyNG9ZbUZ6WlZCaGRHZ3NJRzVsZDFOMGNtbHVaeXdnYjJ4a1UzUnlhVzVuTENCa2FXRm5iMjVoYkZCaGRHZ3BJSHRjYmlBZ0lDQnNaWFFnYm1WM1RHVnVJRDBnYm1WM1UzUnlhVzVuTG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnYjJ4a1RHVnVJRDBnYjJ4a1UzUnlhVzVuTG14bGJtZDBhQ3hjYmlBZ0lDQWdJQ0FnYm1WM1VHOXpJRDBnWW1GelpWQmhkR2d1Ym1WM1VHOXpMRnh1SUNBZ0lDQWdJQ0J2YkdSUWIzTWdQU0J1WlhkUWIzTWdMU0JrYVdGbmIyNWhiRkJoZEdnc1hHNWNiaUFnSUNBZ0lDQWdZMjl0Ylc5dVEyOTFiblFnUFNBd08xeHVJQ0FnSUhkb2FXeGxJQ2h1WlhkUWIzTWdLeUF4SUR3Z2JtVjNUR1Z1SUNZbUlHOXNaRkJ2Y3lBcklERWdQQ0J2YkdSTVpXNGdKaVlnZEdocGN5NWxjWFZoYkhNb2JtVjNVM1J5YVc1blcyNWxkMUJ2Y3lBcklERmRMQ0J2YkdSVGRISnBibWRiYjJ4a1VHOXpJQ3NnTVYwcEtTQjdYRzRnSUNBZ0lDQnVaWGRRYjNNckt6dGNiaUFnSUNBZ0lHOXNaRkJ2Y3lzck8xeHVJQ0FnSUNBZ1kyOXRiVzl1UTI5MWJuUXJLenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWTI5dGJXOXVRMjkxYm5RcElIdGNiaUFnSUNBZ0lHSmhjMlZRWVhSb0xtTnZiWEJ2Ym1WdWRITXVjSFZ6YUNoN1kyOTFiblE2SUdOdmJXMXZia052ZFc1MGZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1ltRnpaVkJoZEdndWJtVjNVRzl6SUQwZ2JtVjNVRzl6TzF4dUlDQWdJSEpsZEhWeWJpQnZiR1JRYjNNN1hHNGdJSDBzWEc1Y2JpQWdaWEYxWVd4ektHeGxablFzSUhKcFoyaDBLU0I3WEc0Z0lDQWdjbVYwZFhKdUlHeGxablFnUFQwOUlISnBaMmgwTzF4dUlDQjlMRnh1SUNCeVpXMXZkbVZGYlhCMGVTaGhjbkpoZVNrZ2UxeHVJQ0FnSUd4bGRDQnlaWFFnUFNCYlhUdGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHRnljbUY1TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ0lDQnBaaUFvWVhKeVlYbGJhVjBwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBMbkIxYzJnb1lYSnlZWGxiYVYwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjbVYwTzF4dUlDQjlMRnh1SUNCallYTjBTVzV3ZFhRb2RtRnNkV1VwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVN1hHNGdJSDBzWEc0Z0lIUnZhMlZ1YVhwbEtIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExuTndiR2wwS0NjbktUdGNiaUFnZlZ4dWZUdGNibHh1Wm5WdVkzUnBiMjRnWW5WcGJHUldZV3gxWlhNb1pHbG1aaXdnWTI5dGNHOXVaVzUwY3l3Z2JtVjNVM1J5YVc1bkxDQnZiR1JUZEhKcGJtY3NJSFZ6WlV4dmJtZGxjM1JVYjJ0bGJpa2dlMXh1SUNCc1pYUWdZMjl0Y0c5dVpXNTBVRzl6SUQwZ01DeGNiaUFnSUNBZ0lHTnZiWEJ2Ym1WdWRFeGxiaUE5SUdOdmJYQnZibVZ1ZEhNdWJHVnVaM1JvTEZ4dUlDQWdJQ0FnYm1WM1VHOXpJRDBnTUN4Y2JpQWdJQ0FnSUc5c1pGQnZjeUE5SURBN1hHNWNiaUFnWm05eUlDZzdJR052YlhCdmJtVnVkRkJ2Y3lBOElHTnZiWEJ2Ym1WdWRFeGxianNnWTI5dGNHOXVaVzUwVUc5ekt5c3BJSHRjYmlBZ0lDQnNaWFFnWTI5dGNHOXVaVzUwSUQwZ1kyOXRjRzl1Wlc1MGMxdGpiMjF3YjI1bGJuUlFiM05kTzF4dUlDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MExuSmxiVzkyWldRcElIdGNiaUFnSUNBZ0lHbG1JQ2doWTI5dGNHOXVaVzUwTG1Ga1pHVmtJQ1ltSUhWelpVeHZibWRsYzNSVWIydGxiaWtnZTF4dUlDQWdJQ0FnSUNCc1pYUWdkbUZzZFdVZ1BTQnVaWGRUZEhKcGJtY3VjMnhwWTJVb2JtVjNVRzl6TENCdVpYZFFiM01nS3lCamIyMXdiMjVsYm5RdVkyOTFiblFwTzF4dUlDQWdJQ0FnSUNCMllXeDFaU0E5SUhaaGJIVmxMbTFoY0NobWRXNWpkR2x2YmloMllXeDFaU3dnYVNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR3hsZENCdmJHUldZV3gxWlNBOUlHOXNaRk4wY21sdVoxdHZiR1JRYjNNZ0t5QnBYVHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnYjJ4a1ZtRnNkV1V1YkdWdVozUm9JRDRnZG1Gc2RXVXViR1Z1WjNSb0lEOGdiMnhrVm1Gc2RXVWdPaUIyWVd4MVpUdGNiaUFnSUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXRjRzl1Wlc1MExuWmhiSFZsSUQwZ2RtRnNkV1V1YW05cGJpZ25KeWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JqYjIxd2IyNWxiblF1ZG1Gc2RXVWdQU0J1WlhkVGRISnBibWN1YzJ4cFkyVW9ibVYzVUc5ekxDQnVaWGRRYjNNZ0t5QmpiMjF3YjI1bGJuUXVZMjkxYm5RcExtcHZhVzRvSnljcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2JtVjNVRzl6SUNzOUlHTnZiWEJ2Ym1WdWRDNWpiM1Z1ZER0Y2JseHVJQ0FnSUNBZ0x5OGdRMjl0Ylc5dUlHTmhjMlZjYmlBZ0lDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MExtRmtaR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lHOXNaRkJ2Y3lBclBTQmpiMjF3YjI1bGJuUXVZMjkxYm5RN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR052YlhCdmJtVnVkQzUyWVd4MVpTQTlJRzlzWkZOMGNtbHVaeTV6YkdsalpTaHZiR1JRYjNNc0lHOXNaRkJ2Y3lBcklHTnZiWEJ2Ym1WdWRDNWpiM1Z1ZENrdWFtOXBiaWduSnlrN1hHNGdJQ0FnSUNCdmJHUlFiM01nS3owZ1kyOXRjRzl1Wlc1MExtTnZkVzUwTzF4dVhHNGdJQ0FnSUNBdkx5QlNaWFpsY25ObElHRmtaQ0JoYm1RZ2NtVnRiM1psSUhOdklISmxiVzkyWlhNZ1lYSmxJRzkxZEhCMWRDQm1hWEp6ZENCMGJ5QnRZWFJqYUNCamIyMXRiMjRnWTI5dWRtVnVkR2x2Ymx4dUlDQWdJQ0FnTHk4Z1ZHaGxJR1JwWm1acGJtY2dZV3huYjNKcGRHaHRJR2x6SUhScFpXUWdkRzhnWVdSa0lIUm9aVzRnY21WdGIzWmxJRzkxZEhCMWRDQmhibVFnZEdocGN5QnBjeUIwYUdVZ2MybHRjR3hsYzNSY2JpQWdJQ0FnSUM4dklISnZkWFJsSUhSdklHZGxkQ0IwYUdVZ1pHVnphWEpsWkNCdmRYUndkWFFnZDJsMGFDQnRhVzVwYldGc0lHOTJaWEpvWldGa0xseHVJQ0FnSUNBZ2FXWWdLR052YlhCdmJtVnVkRkJ2Y3lBbUppQmpiMjF3YjI1bGJuUnpXMk52YlhCdmJtVnVkRkJ2Y3lBdElERmRMbUZrWkdWa0tTQjdYRzRnSUNBZ0lDQWdJR3hsZENCMGJYQWdQU0JqYjIxd2IyNWxiblJ6VzJOdmJYQnZibVZ1ZEZCdmN5QXRJREZkTzF4dUlDQWdJQ0FnSUNCamIyMXdiMjVsYm5SelcyTnZiWEJ2Ym1WdWRGQnZjeUF0SURGZElEMGdZMjl0Y0c5dVpXNTBjMXRqYjIxd2IyNWxiblJRYjNOZE8xeHVJQ0FnSUNBZ0lDQmpiMjF3YjI1bGJuUnpXMk52YlhCdmJtVnVkRkJ2YzEwZ1BTQjBiWEE3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHk4Z1UzQmxZMmxoYkNCallYTmxJR2hoYm1Sc1pTQm1iM0lnZDJobGJpQnZibVVnZEdWeWJXbHVZV3dnYVhNZ2FXZHViM0psWkM0Z1JtOXlJSFJvYVhNZ1kyRnpaU0IzWlNCdFpYSm5aU0IwYUdWY2JpQWdMeThnZEdWeWJXbHVZV3dnYVc1MGJ5QjBhR1VnY0hKcGIzSWdjM1J5YVc1bklHRnVaQ0JrY205d0lIUm9aU0JqYUdGdVoyVXVYRzRnSUd4bGRDQnNZWE4wUTI5dGNHOXVaVzUwSUQwZ1kyOXRjRzl1Wlc1MGMxdGpiMjF3YjI1bGJuUk1aVzRnTFNBeFhUdGNiaUFnYVdZZ0tHTnZiWEJ2Ym1WdWRFeGxiaUErSURGY2JpQWdJQ0FnSUNZbUlDaHNZWE4wUTI5dGNHOXVaVzUwTG1Ga1pHVmtJSHg4SUd4aGMzUkRiMjF3YjI1bGJuUXVjbVZ0YjNabFpDbGNiaUFnSUNBZ0lDWW1JR1JwWm1ZdVpYRjFZV3h6S0NjbkxDQnNZWE4wUTI5dGNHOXVaVzUwTG5aaGJIVmxLU2tnZTF4dUlDQWdJR052YlhCdmJtVnVkSE5iWTI5dGNHOXVaVzUwVEdWdUlDMGdNbDB1ZG1Gc2RXVWdLejBnYkdGemRFTnZiWEJ2Ym1WdWRDNTJZV3gxWlR0Y2JpQWdJQ0JqYjIxd2IyNWxiblJ6TG5CdmNDZ3BPMXh1SUNCOVhHNWNiaUFnY21WMGRYSnVJR052YlhCdmJtVnVkSE03WEc1OVhHNWNibVoxYm1OMGFXOXVJR05zYjI1bFVHRjBhQ2h3WVhSb0tTQjdYRzRnSUhKbGRIVnliaUI3SUc1bGQxQnZjem9nY0dGMGFDNXVaWGRRYjNNc0lHTnZiWEJ2Ym1WdWRITTZJSEJoZEdndVkyOXRjRzl1Wlc1MGN5NXpiR2xqWlNnd0tTQjlPMXh1ZlZ4dUlsMTlcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvZGlmZi9iYXNlLmpzXG4vLyBtb2R1bGUgaWQgPSAyNTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 251 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports.characterDiff = undefined;\nexports. /*istanbul ignore end*/diffChars = diffChars;\n\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/;\nfunction diffChars(oldStr, newStr, callback) {\n return characterDiff.diff(oldStr, newStr, callback);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O2dDQUdnQixBLFlBQUEsQTs7QUFIaEIsSSx5QkFBQSxnQixVQUFBOzs7Ozs7Ozs7dUJBRU8sSUFBTSxnQix5QkFBQSxBLGdDQUFBLGdCQUFnQixJLHlCQUFBLE8sYUFBdEI7QUFDQSxTQUFTLEFBQVQsVUFBbUIsQUFBbkIsUUFBMkIsQUFBM0IsUUFBbUMsQUFBbkMsVUFBNkMsQUFBRTtTQUFPLGNBQWMsQUFBZCxLQUFtQixBQUFuQixRQUEyQixBQUEzQixRQUFtQyxBQUFuQyxBQUFQLEFBQXNEIiwiZmlsZSI6ImNoYXJhY3Rlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjaGFyYWN0ZXJEaWZmID0gbmV3IERpZmYoKTtcbmV4cG9ydCBmdW5jdGlvbiBkaWZmQ2hhcnMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBjaGFyYWN0ZXJEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvY2hhcmFjdGVyLmpzPzM2YzgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMiLCJmaWxlIjoiMjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLyd1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuY2hhcmFjdGVyRGlmZiA9IHVuZGVmaW5lZDtcbmV4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovZGlmZkNoYXJzID0gZGlmZkNoYXJzO1xuXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19iYXNlID0gcmVxdWlyZSgnLi9iYXNlJykgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbnZhciBfYmFzZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9iYXNlKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTtcbn1cblxuLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi92YXIgY2hhcmFjdGVyRGlmZiA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2NoYXJhY3RlckRpZmYgPSBuZXcgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19iYXNlMlsnZGVmYXVsdCddKCkgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5mdW5jdGlvbiBkaWZmQ2hhcnMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7XG4gIHJldHVybiBjaGFyYWN0ZXJEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTlrYVdabUwyTm9ZWEpoWTNSbGNpNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3TzJkRFFVZG5RaXhCTEZsQlFVRXNRVHM3UVVGSWFFSXNTU3g1UWtGQlFTeG5RaXhWUVVGQk96czdPenM3T3pzN2RVSkJSVThzU1VGQlRTeG5RaXg1UWtGQlFTeEJMR2REUVVGQkxHZENRVUZuUWl4SkxIbENRVUZCTEU4c1lVRkJkRUk3UVVGRFFTeFRRVUZUTEVGQlFWUXNWVUZCYlVJc1FVRkJia0lzVVVGQk1rSXNRVUZCTTBJc1VVRkJiVU1zUVVGQmJrTXNWVUZCTmtNc1FVRkJSVHRUUVVGUExHTkJRV01zUVVGQlpDeExRVUZ0UWl4QlFVRnVRaXhSUVVFeVFpeEJRVUV6UWl4UlFVRnRReXhCUVVGdVF5eEJRVUZRTEVGQlFYTkVJaXdpWm1sc1pTSTZJbU5vWVhKaFkzUmxjaTVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCRWFXWm1JR1p5YjIwZ0p5NHZZbUZ6WlNjN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCamFHRnlZV04wWlhKRWFXWm1JRDBnYm1WM0lFUnBabVlvS1R0Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXWm1RMmhoY25Nb2IyeGtVM1J5TENCdVpYZFRkSElzSUdOaGJHeGlZV05yS1NCN0lISmxkSFZ5YmlCamFHRnlZV04wWlhKRWFXWm1MbVJwWm1Zb2IyeGtVM1J5TENCdVpYZFRkSElzSUdOaGJHeGlZV05yS1RzZ2ZWeHVJbDE5XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2RpZmYvbGliL2RpZmYvY2hhcmFjdGVyLmpzXG4vLyBtb2R1bGUgaWQgPSAyNTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 252 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports.wordDiff = undefined;\nexports. /*istanbul ignore end*/diffWords = diffWords;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace;\n\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\n/*istanbul ignore end*/\nvar /*istanbul ignore start*/_params = __webpack_require__(253) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/\n\n// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n//\n// Ranges and exceptions:\n// Latin-1 Supplement, 0080–00FF\n// - U+00D7 × Multiplication sign\n// - U+00F7 ÷ Division sign\n// Latin Extended-A, 0100–017F\n// Latin Extended-B, 0180–024F\n// IPA Extensions, 0250–02AF\n// Spacing Modifier Letters, 02B0–02FF\n// - U+02C7 ˇ ˇ Caron\n// - U+02D8 ˘ ˘ Breve\n// - U+02D9 ˙ ˙ Dot Above\n// - U+02DA ˚ ˚ Ring Above\n// - U+02DB ˛ ˛ Ogonek\n// - U+02DC ˜ ˜ Small Tilde\n// - U+02DD ˝ ˝ Double Acute Accent\n// Latin Extended Additional, 1E00–1EFF\nvar extendedWordChars = /^[A-Za-z\\xC0-\\u02C6\\u02C8-\\u02D7\\u02DE-\\u02FF\\u1E00-\\u1EFF]+$/;\n\nvar reWhitespace = /\\S/;\n\nvar wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/;\nwordDiff.equals = function (left, right) {\n return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right);\n};\nwordDiff.tokenize = function (value) {\n var tokens = value.split(/(\\s+|\\b)/);\n\n // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set.\n for (var i = 0; i < tokens.length - 1; i++) {\n // If we have an empty string in the next field and we have only word chars before and after, merge\n if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) {\n tokens[i] += tokens[i + 2];\n tokens.splice(i + 1, 2);\n i--;\n }\n }\n\n return tokens;\n};\n\nfunction diffWords(oldStr, newStr, callback) {\n var options = /*istanbul ignore start*/(0, _params.generateOptions /*istanbul ignore end*/)(callback, { ignoreWhitespace: true });\n return wordDiff.diff(oldStr, newStr, options);\n}\nfunction diffWordsWithSpace(oldStr, newStr, callback) {\n return wordDiff.diff(oldStr, newStr, callback);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0ErQ2dCLEEsWUFBQSxBO3lEQUlBLEEscUJBQUEsQTs7QUFuRGhCLEkseUJBQUEsZ0IsVUFBQTs7Ozs7O0FBQ0EsSSx5QkFBQSxrQixrQkFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQU0sb0JBQW9CLEFBQTFCOztBQUVBLElBQU0sZUFBZSxBQUFyQjs7QUFFTyxJQUFNLFcseUJBQUEsQSxnQ0FBQSxXQUFXLEkseUJBQUEsTyxhQUFqQjtBQUNQLFNBQVMsQUFBVCxTQUFrQixVQUFTLEFBQVQsTUFBZSxBQUFmLE9BQXNCLEFBQ3RDO1NBQU8sU0FBUyxBQUFULFNBQW1CLEtBQUssQUFBTCxRQUFhLEFBQWIsb0JBQWlDLENBQUMsYUFBYSxBQUFiLEtBQWtCLEFBQWxCLEFBQWxDLFNBQTZELENBQUMsYUFBYSxBQUFiLEtBQWtCLEFBQWxCLEFBQXhGLEFBQ0Q7QUFGRDtBQUdBLFNBQVMsQUFBVCxXQUFvQixVQUFTLEFBQVQsT0FBZ0IsQUFDbEM7TUFBSSxTQUFTLE1BQU0sQUFBTixNQUFZLEFBQVosQUFBYjs7QUFHQTtPQUFLLElBQUksSUFBSSxBQUFiLEdBQWdCLElBQUksT0FBTyxBQUFQLFNBQWdCLEFBQXBDLEdBQXVDLEFBQXZDLEtBQTRDO0FBRTFDO1FBQUksQ0FBQyxPQUFPLElBQUksQUFBWCxBQUFELE1BQWtCLE9BQU8sSUFBSSxBQUFYLEFBQWxCLE1BQ0ssa0JBQWtCLEFBQWxCLEtBQXVCLE9BQU8sQUFBUCxBQUF2QixBQURMLE9BRUssa0JBQWtCLEFBQWxCLEtBQXVCLE9BQU8sSUFBSSxBQUFYLEFBQXZCLEFBRlQsS0FFZ0QsQUFDOUM7YUFBTyxBQUFQLE1BQWEsT0FBTyxJQUFJLEFBQVgsQUFBYixBQUNBO2FBQU8sQUFBUCxPQUFjLElBQUksQUFBbEIsR0FBcUIsQUFBckIsQUFDQTtBQUNEO0FBQ0Y7QUFFRDs7U0FBTyxBQUFQLEFBQ0Q7QUFoQkQ7O0FBa0JPLFNBQVMsQUFBVCxVQUFtQixBQUFuQixRQUEyQixBQUEzQixRQUFtQyxBQUFuQyxVQUE2QyxBQUNsRDtNQUFJLFUseUJBQVUsWSxnQkFBQSx5QkFBZ0IsQUFBaEIsVUFBMEIsRUFBQyxrQkFBa0IsQUFBbkIsQUFBMUIsQUFBZCxBQUNBO1NBQU8sU0FBUyxBQUFULEtBQWMsQUFBZCxRQUFzQixBQUF0QixRQUE4QixBQUE5QixBQUFQLEFBQ0Q7O0FBQ00sU0FBUyxBQUFULG1CQUE0QixBQUE1QixRQUFvQyxBQUFwQyxRQUE0QyxBQUE1QyxVQUFzRCxBQUMzRDtTQUFPLFNBQVMsQUFBVCxLQUFjLEFBQWQsUUFBc0IsQUFBdEIsUUFBOEIsQUFBOUIsQUFBUCxBQUNEIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmV29yZHNXaXRoU3BhY2Uob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7XG59XG4iXX0=//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvd29yZC5qcz85NmQ4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCLHNCQUFzQjtBQUN0QixzQkFBc0I7QUFDdEIsc0JBQXNCO0FBQ3RCLHNCQUFzQjtBQUN0QixzQkFBc0I7QUFDdEIsc0JBQXNCO0FBQ3RCO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLHVCQUF1QjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EseUdBQXlHLHlCQUF5QjtBQUNsSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI1Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLndvcmREaWZmID0gdW5kZWZpbmVkO1xuZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmV29yZHMgPSBkaWZmV29yZHM7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmV29yZHNXaXRoU3BhY2UgPSBkaWZmV29yZHNXaXRoU3BhY2U7XG5cbnZhciAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX2Jhc2UgPSByZXF1aXJlKCcuL2Jhc2UnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xudmFyIF9iYXNlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Jhc2UpO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBlbmQqL1xudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fcGFyYW1zID0gcmVxdWlyZSgnLi4vdXRpbC9wYXJhbXMnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHtcbiAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTtcbn1cblxuLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9cblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbnZhciBleHRlbmRlZFdvcmRDaGFycyA9IC9eW0EtWmEtelxceEMwLVxcdTAyQzZcXHUwMkM4LVxcdTAyRDdcXHUwMkRFLVxcdTAyRkZcXHUxRTAwLVxcdTFFRkZdKyQvO1xuXG52YXIgcmVXaGl0ZXNwYWNlID0gL1xcUy87XG5cbnZhciB3b3JkRGlmZiA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3dvcmREaWZmID0gbmV3IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZTJbJ2RlZmF1bHQnXSgpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24gKGxlZnQsIHJpZ2h0KSB7XG4gIHJldHVybiBsZWZ0ID09PSByaWdodCB8fCB0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KTtcbn07XG53b3JkRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICB2YXIgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdICYmIGV4dGVuZGVkV29yZENoYXJzLnRlc3QodG9rZW5zW2ldKSAmJiBleHRlbmRlZFdvcmRDaGFycy50ZXN0KHRva2Vuc1tpICsgMl0pKSB7XG4gICAgICB0b2tlbnNbaV0gKz0gdG9rZW5zW2kgKyAyXTtcbiAgICAgIHRva2Vucy5zcGxpY2UoaSArIDEsIDIpO1xuICAgICAgaS0tO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0b2tlbnM7XG59O1xuXG5mdW5jdGlvbiBkaWZmV29yZHMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7XG4gIHZhciBvcHRpb25zID0gLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLygwLCBfcGFyYW1zLmdlbmVyYXRlT3B0aW9ucyAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLykoY2FsbGJhY2ssIHsgaWdub3JlV2hpdGVzcGFjZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIHdvcmREaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIG9wdGlvbnMpO1xufVxuZnVuY3Rpb24gZGlmZldvcmRzV2l0aFNwYWNlKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNOeVl5OWthV1ptTDNkdmNtUXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3p0blEwRXJRMmRDTEVFc1dVRkJRU3hCTzNsRVFVbEJMRUVzY1VKQlFVRXNRVHM3UVVGdVJHaENMRWtzZVVKQlFVRXNaMElzVlVGQlFUczdPenM3TzBGQlEwRXNTU3g1UWtGQlFTeHJRaXhyUWtGQlFUczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wRkJiMEpCTEVsQlFVMHNiMEpCUVc5Q0xFRkJRVEZDT3p0QlFVVkJMRWxCUVUwc1pVRkJaU3hCUVVGeVFqczdRVUZGVHl4SlFVRk5MRmNzZVVKQlFVRXNRU3huUTBGQlFTeFhRVUZYTEVrc2VVSkJRVUVzVHl4aFFVRnFRanRCUVVOUUxGTkJRVk1zUVVGQlZDeFRRVUZyUWl4VlFVRlRMRUZCUVZRc1RVRkJaU3hCUVVGbUxFOUJRWE5DTEVGQlEzUkRPMU5CUVU4c1UwRkJVeXhCUVVGVUxGTkJRVzFDTEV0QlFVc3NRVUZCVEN4UlFVRmhMRUZCUVdJc2IwSkJRV2xETEVOQlFVTXNZVUZCWVN4QlFVRmlMRXRCUVd0Q0xFRkJRV3hDTEVGQlFXeERMRk5CUVRaRUxFTkJRVU1zWVVGQllTeEJRVUZpTEV0QlFXdENMRUZCUVd4Q0xFRkJRWGhHTEVGQlEwUTdRVUZHUkR0QlFVZEJMRk5CUVZNc1FVRkJWQ3hYUVVGdlFpeFZRVUZUTEVGQlFWUXNUMEZCWjBJc1FVRkRiRU03VFVGQlNTeFRRVUZUTEUxQlFVMHNRVUZCVGl4TlFVRlpMRUZCUVZvc1FVRkJZanM3UVVGSFFUdFBRVUZMTEVsQlFVa3NTVUZCU1N4QlFVRmlMRWRCUVdkQ0xFbEJRVWtzVDBGQlR5eEJRVUZRTEZOQlFXZENMRUZCUVhCRExFZEJRWFZETEVGQlFYWkRMRXRCUVRSRE8wRkJSVEZETzFGQlFVa3NRMEZCUXl4UFFVRlBMRWxCUVVrc1FVRkJXQ3hCUVVGRUxFMUJRV3RDTEU5QlFVOHNTVUZCU1N4QlFVRllMRUZCUVd4Q0xFMUJRMHNzYTBKQlFXdENMRUZCUVd4Q0xFdEJRWFZDTEU5QlFVOHNRVUZCVUN4QlFVRjJRaXhCUVVSTUxFOUJSVXNzYTBKQlFXdENMRUZCUVd4Q0xFdEJRWFZDTEU5QlFVOHNTVUZCU1N4QlFVRllMRUZCUVhaQ0xFRkJSbFFzUzBGRlowUXNRVUZET1VNN1lVRkJUeXhCUVVGUUxFMUJRV0VzVDBGQlR5eEpRVUZKTEVGQlFWZ3NRVUZCWWl4QlFVTkJPMkZCUVU4c1FVRkJVQ3hQUVVGakxFbEJRVWtzUVVGQmJFSXNSMEZCY1VJc1FVRkJja0lzUVVGRFFUdEJRVU5FTzBGQlEwWTdRVUZGUkRzN1UwRkJUeXhCUVVGUUxFRkJRMFE3UVVGb1FrUTdPMEZCYTBKUExGTkJRVk1zUVVGQlZDeFZRVUZ0UWl4QlFVRnVRaXhSUVVFeVFpeEJRVUV6UWl4UlFVRnRReXhCUVVGdVF5eFZRVUUyUXl4QlFVTnNSRHROUVVGSkxGVXNlVUpCUVZVc1dTeG5Ra0ZCUVN4NVFrRkJaMElzUVVGQmFFSXNWVUZCTUVJc1JVRkJReXhyUWtGQmEwSXNRVUZCYmtJc1FVRkJNVUlzUVVGQlpDeEJRVU5CTzFOQlFVOHNVMEZCVXl4QlFVRlVMRXRCUVdNc1FVRkJaQ3hSUVVGelFpeEJRVUYwUWl4UlFVRTRRaXhCUVVFNVFpeEJRVUZRTEVGQlEwUTdPMEZCUTAwc1UwRkJVeXhCUVVGVUxHMUNRVUUwUWl4QlFVRTFRaXhSUVVGdlF5eEJRVUZ3UXl4UlFVRTBReXhCUVVFMVF5eFZRVUZ6UkN4QlFVTXpSRHRUUVVGUExGTkJRVk1zUVVGQlZDeExRVUZqTEVGQlFXUXNVVUZCYzBJc1FVRkJkRUlzVVVGQk9FSXNRVUZCT1VJc1FVRkJVQ3hCUVVORUlpd2labWxzWlNJNkluZHZjbVF1YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ1JHbG1aaUJtY205dElDY3VMMkpoYzJVbk8xeHVhVzF3YjNKMElIdG5aVzVsY21GMFpVOXdkR2x2Ym5OOUlHWnliMjBnSnk0dUwzVjBhV3d2Y0dGeVlXMXpKenRjYmx4dUx5OGdRbUZ6WldRZ2IyNGdhSFIwY0hNNkx5OWxiaTUzYVd0cGNHVmthV0V1YjNKbkwzZHBhMmt2VEdGMGFXNWZjMk55YVhCMFgybHVYMVZ1YVdOdlpHVmNiaTh2WEc0dkx5QlNZVzVuWlhNZ1lXNWtJR1Y0WTJWd2RHbHZibk02WEc0dkx5Qk1ZWFJwYmkweElGTjFjSEJzWlcxbGJuUXNJREF3T0REaWdKTXdNRVpHWEc0dkx5QWdMU0JWS3pBd1JEY2dJTU9YSUUxMWJIUnBjR3hwWTJGMGFXOXVJSE5wWjI1Y2JpOHZJQ0F0SUZVck1EQkdOeUFndzdjZ1JHbDJhWE5wYjI0Z2MybG5ibHh1THk4Z1RHRjBhVzRnUlhoMFpXNWtaV1F0UVN3Z01ERXdNT0tBa3pBeE4wWmNiaTh2SUV4aGRHbHVJRVY0ZEdWdVpHVmtMVUlzSURBeE9ERGlnSk13TWpSR1hHNHZMeUJKVUVFZ1JYaDBaVzV6YVc5dWN5d2dNREkxTU9LQWt6QXlRVVpjYmk4dklGTndZV05wYm1jZ1RXOWthV1pwWlhJZ1RHVjBkR1Z5Y3l3Z01ESkNNT0tBa3pBeVJrWmNiaTh2SUNBdElGVXJNREpETnlBZ3k0Y2dKaU0zTVRFN0lDQkRZWEp2Ymx4dUx5OGdJQzBnVlNzd01rUTRJQ0RMbUNBbUl6Y3lPRHNnSUVKeVpYWmxYRzR2THlBZ0xTQlZLekF5UkRrZ0lNdVpJQ1lqTnpJNU95QWdSRzkwSUVGaWIzWmxYRzR2THlBZ0xTQlZLekF5UkVFZ0lNdWFJQ1lqTnpNd095QWdVbWx1WnlCQlltOTJaVnh1THk4Z0lDMGdWU3N3TWtSQ0lDRExteUFtSXpjek1Uc2dJRTluYjI1bGExeHVMeThnSUMwZ1ZTc3dNa1JESUNETG5DQW1JemN6TWpzZ0lGTnRZV3hzSUZScGJHUmxYRzR2THlBZ0xTQlZLekF5UkVRZ0lNdWRJQ1lqTnpNek95QWdSRzkxWW14bElFRmpkWFJsSUVGalkyVnVkRnh1THk4Z1RHRjBhVzRnUlhoMFpXNWtaV1FnUVdSa2FYUnBiMjVoYkN3Z01VVXdNT0tBa3pGRlJrWmNibU52Ym5OMElHVjRkR1Z1WkdWa1YyOXlaRU5vWVhKeklEMGdMMTViWVMxNlFTMWFYRngxZTBNd2ZTMWNYSFY3UmtaOVhGeDFlMFE0ZlMxY1hIVjdSalo5WEZ4MWUwWTRmUzFjWEhWN01rTTJmVnhjZFhzeVF6aDlMVnhjZFhzeVJEZDlYRngxZXpKRVJYMHRYRngxZXpKR1JuMWNYSFY3TVVVd01IMHRYRngxZXpGRlJrWjlYU3NrTDNVN1hHNWNibU52Ym5OMElISmxWMmhwZEdWemNHRmpaU0E5SUM5Y1hGTXZPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdkMjl5WkVScFptWWdQU0J1WlhjZ1JHbG1aaWdwTzF4dWQyOXlaRVJwWm1ZdVpYRjFZV3h6SUQwZ1puVnVZM1JwYjI0b2JHVm1kQ3dnY21sbmFIUXBJSHRjYmlBZ2NtVjBkWEp1SUd4bFpuUWdQVDA5SUhKcFoyaDBJSHg4SUNoMGFHbHpMbTl3ZEdsdmJuTXVhV2R1YjNKbFYyaHBkR1Z6Y0dGalpTQW1KaUFoY21WWGFHbDBaWE53WVdObExuUmxjM1FvYkdWbWRDa2dKaVlnSVhKbFYyaHBkR1Z6Y0dGalpTNTBaWE4wS0hKcFoyaDBLU2s3WEc1OU8xeHVkMjl5WkVScFptWXVkRzlyWlc1cGVtVWdQU0JtZFc1amRHbHZiaWgyWVd4MVpTa2dlMXh1SUNCc1pYUWdkRzlyWlc1eklEMGdkbUZzZFdVdWMzQnNhWFFvTHloY1hITXJmRnhjWWlrdktUdGNibHh1SUNBdkx5QktiMmx1SUhSb1pTQmliM1Z1WkdGeWVTQnpjR3hwZEhNZ2RHaGhkQ0IzWlNCa2J5QnViM1FnWTI5dWMybGtaWElnZEc4Z1ltVWdZbTkxYm1SaGNtbGxjeTRnVkdocGN5QnBjeUJ3Y21sdFlYSnBiSGtnZEdobElHVjRkR1Z1WkdWa0lFeGhkR2x1SUdOb1lYSmhZM1JsY2lCelpYUXVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RHOXJaVzV6TG14bGJtZDBhQ0F0SURFN0lHa3JLeWtnZTF4dUlDQWdJQzh2SUVsbUlIZGxJR2hoZG1VZ1lXNGdaVzF3ZEhrZ2MzUnlhVzVuSUdsdUlIUm9aU0J1WlhoMElHWnBaV3hrSUdGdVpDQjNaU0JvWVhabElHOXViSGtnZDI5eVpDQmphR0Z5Y3lCaVpXWnZjbVVnWVc1a0lHRm1kR1Z5TENCdFpYSm5aVnh1SUNBZ0lHbG1JQ2doZEc5clpXNXpXMmtnS3lBeFhTQW1KaUIwYjJ0bGJuTmJhU0FySURKZFhHNGdJQ0FnSUNBZ0lDQWdKaVlnWlhoMFpXNWtaV1JYYjNKa1EyaGhjbk11ZEdWemRDaDBiMnRsYm5OYmFWMHBYRzRnSUNBZ0lDQWdJQ0FnSmlZZ1pYaDBaVzVrWldSWGIzSmtRMmhoY25NdWRHVnpkQ2gwYjJ0bGJuTmJhU0FySURKZEtTa2dlMXh1SUNBZ0lDQWdkRzlyWlc1elcybGRJQ3M5SUhSdmEyVnVjMXRwSUNzZ01sMDdYRzRnSUNBZ0lDQjBiMnRsYm5NdWMzQnNhV05sS0drZ0t5QXhMQ0F5S1R0Y2JpQWdJQ0FnSUdrdExUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2RHOXJaVzV6TzF4dWZUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JwWm1aWGIzSmtjeWh2YkdSVGRISXNJRzVsZDFOMGNpd2dZMkZzYkdKaFkyc3BJSHRjYmlBZ2JHVjBJRzl3ZEdsdmJuTWdQU0JuWlc1bGNtRjBaVTl3ZEdsdmJuTW9ZMkZzYkdKaFkyc3NJSHRwWjI1dmNtVlhhR2wwWlhOd1lXTmxPaUIwY25WbGZTazdYRzRnSUhKbGRIVnliaUIzYjNKa1JHbG1aaTVrYVdabUtHOXNaRk4wY2l3Z2JtVjNVM1J5TENCdmNIUnBiMjV6S1R0Y2JuMWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV1ptVjI5eVpITlhhWFJvVTNCaFkyVW9iMnhrVTNSeUxDQnVaWGRUZEhJc0lHTmhiR3hpWVdOcktTQjdYRzRnSUhKbGRIVnliaUIzYjNKa1JHbG1aaTVrYVdabUtHOXNaRk4wY2l3Z2JtVjNVM1J5TENCallXeHNZbUZqYXlrN1hHNTlYRzRpWFgwPVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9kaWZmL2xpYi9kaWZmL3dvcmQuanNcbi8vIG1vZHVsZSBpZCA9IDI1MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 253 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports. /*istanbul ignore end*/generateOptions = generateOptions;\nfunction generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n } else if (options) {\n for (var name in options) {\n /* istanbul ignore else */\n if (options.hasOwnProperty(name)) {\n defaults[name] = options[name];\n }\n }\n }\n return defaults;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCLEEsa0JBQUEsQTtBQUFULFNBQVMsQUFBVCxnQkFBeUIsQUFBekIsU0FBa0MsQUFBbEMsVUFBNEMsQUFDakQ7TUFBSSxPQUFPLEFBQVAsWUFBbUIsQUFBdkIsWUFBbUMsQUFDakM7YUFBUyxBQUFULFdBQW9CLEFBQXBCLEFBQ0Q7QUFGRCxTQUVPLElBQUksQUFBSixTQUFhLEFBQ2xCO1NBQUssSUFBSSxBQUFULFFBQWlCLEFBQWpCLFNBQTBCO0FBRXhCO1VBQUksUUFBUSxBQUFSLGVBQXVCLEFBQXZCLEFBQUosT0FBa0MsQUFDaEM7aUJBQVMsQUFBVCxRQUFpQixRQUFRLEFBQVIsQUFBakIsQUFDRDtBQUNGO0FBQ0Y7QUFDRDtTQUFPLEFBQVAsQUFDRCIsImZpbGUiOiJwYXJhbXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0=//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL3V0aWwvcGFyYW1zLmpzP2UyNjgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMiLCJmaWxlIjoiMjUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLyd1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovZ2VuZXJhdGVPcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zO1xuZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yICh2YXIgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5MWRHbHNMM0JoY21GdGN5NXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3WjBOQlFXZENMRUVzYTBKQlFVRXNRVHRCUVVGVUxGTkJRVk1zUVVGQlZDeG5Ra0ZCZVVJc1FVRkJla0lzVTBGQmEwTXNRVUZCYkVNc1ZVRkJORU1zUVVGRGFrUTdUVUZCU1N4UFFVRlBMRUZCUVZBc1dVRkJiVUlzUVVGQmRrSXNXVUZCYlVNc1FVRkRha003WVVGQlV5eEJRVUZVTEZkQlFXOUNMRUZCUVhCQ0xFRkJRMFE3UVVGR1JDeFRRVVZQTEVsQlFVa3NRVUZCU2l4VFFVRmhMRUZCUTJ4Q08xTkJRVXNzU1VGQlNTeEJRVUZVTEZGQlFXbENMRUZCUVdwQ0xGTkJRVEJDTzBGQlJYaENPMVZCUVVrc1VVRkJVU3hCUVVGU0xHVkJRWFZDTEVGQlFYWkNMRUZCUVVvc1QwRkJhME1zUVVGRGFFTTdhVUpCUVZNc1FVRkJWQ3hSUVVGcFFpeFJRVUZSTEVGQlFWSXNRVUZCYWtJc1FVRkRSRHRCUVVOR08wRkJRMFk3UVVGRFJEdFRRVUZQTEVGQlFWQXNRVUZEUkNJc0ltWnBiR1VpT2lKd1lYSmhiWE11YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SmxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVnVaWEpoZEdWUGNIUnBiMjV6S0c5d2RHbHZibk1zSUdSbFptRjFiSFJ6S1NCN1hHNGdJR2xtSUNoMGVYQmxiMllnYjNCMGFXOXVjeUE5UFQwZ0oyWjFibU4wYVc5dUp5a2dlMXh1SUNBZ0lHUmxabUYxYkhSekxtTmhiR3hpWVdOcklEMGdiM0IwYVc5dWN6dGNiaUFnZlNCbGJITmxJR2xtSUNodmNIUnBiMjV6S1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYm1GdFpTQnBiaUJ2Y0hScGIyNXpLU0I3WEc0Z0lDQWdJQ0F2S2lCcGMzUmhibUoxYkNCcFoyNXZjbVVnWld4elpTQXFMMXh1SUNBZ0lDQWdhV1lnS0c5d2RHbHZibk11YUdGelQzZHVVSEp2Y0dWeWRIa29ibUZ0WlNrcElIdGNiaUFnSUNBZ0lDQWdaR1ZtWVhWc2RITmJibUZ0WlYwZ1BTQnZjSFJwYjI1elcyNWhiV1ZkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdaR1ZtWVhWc2RITTdYRzU5WEc0aVhYMD1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvdXRpbC9wYXJhbXMuanNcbi8vIG1vZHVsZSBpZCA9IDI1M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 254 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports.lineDiff = undefined;\nexports. /*istanbul ignore end*/diffLines = diffLines;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines;\n\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\n/*istanbul ignore end*/\nvar /*istanbul ignore start*/_params = __webpack_require__(253) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/;\nlineDiff.tokenize = function (value) {\n var retLines = [],\n linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n\n // Ignore the final empty token that occurs if the string ends with a new line\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n\n // Merge the content and line separators into single tokens\n for (var i = 0; i < linesAndNewlines.length; i++) {\n var line = linesAndNewlines[i];\n\n if (i % 2 && !this.options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n } else {\n if (this.options.ignoreWhitespace) {\n line = line.trim();\n }\n retLines.push(line);\n }\n }\n\n return retLines;\n};\n\nfunction diffLines(oldStr, newStr, callback) {\n return lineDiff.diff(oldStr, newStr, callback);\n}\nfunction diffTrimmedLines(oldStr, newStr, callback) {\n var options = /*istanbul ignore start*/(0, _params.generateOptions /*istanbul ignore end*/)(callback, { ignoreWhitespace: true });\n return lineDiff.diff(oldStr, newStr, options);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztnQ0E4QmdCLEEsWUFBQSxBO3lEQUNBLEEsbUJBQUEsQTs7QUEvQmhCLEkseUJBQUEsZ0IsVUFBQTs7Ozs7O0FBQ0EsSSx5QkFBQSxrQixrQkFBQTs7Ozs7Ozt1QkFFTyxJQUFNLFcseUJBQUEsQSxnQ0FBQSxXQUFXLEkseUJBQUEsTyxhQUFqQjtBQUNQLFNBQVMsQUFBVCxXQUFvQixVQUFTLEFBQVQsT0FBZ0IsQUFDbEM7TUFBSSxXQUFXLEFBQWY7TUFDSSxtQkFBbUIsTUFBTSxBQUFOLE1BQVksQUFBWixBQUR2Qjs7QUFJQTtNQUFJLENBQUMsaUJBQWlCLGlCQUFpQixBQUFqQixTQUEwQixBQUEzQyxBQUFMLElBQW9ELEFBQ2xEO3FCQUFpQixBQUFqQixBQUNEOzs7QUFHRDtPQUFLLElBQUksSUFBSSxBQUFiLEdBQWdCLElBQUksaUJBQWlCLEFBQXJDLFFBQTZDLEFBQTdDLEtBQWtELEFBQ2hEO1FBQUksT0FBTyxpQkFBaUIsQUFBakIsQUFBWCxBQUVBOztRQUFJLElBQUksQUFBSixLQUFTLENBQUMsS0FBSyxBQUFMLFFBQWEsQUFBM0IsZ0JBQTJDLEFBQ3pDO2VBQVMsU0FBUyxBQUFULFNBQWtCLEFBQTNCLE1BQWlDLEFBQWpDLEFBQ0Q7QUFGRCxXQUVPLEFBQ0w7VUFBSSxLQUFLLEFBQUwsUUFBYSxBQUFqQixrQkFBbUMsQUFDakM7ZUFBTyxLQUFLLEFBQUwsQUFBUCxBQUNEO0FBQ0Q7ZUFBUyxBQUFULEtBQWMsQUFBZCxBQUNEO0FBQ0Y7QUFFRDs7U0FBTyxBQUFQLEFBQ0Q7QUF4QkQ7O0FBMEJPLFNBQVMsQUFBVCxVQUFtQixBQUFuQixRQUEyQixBQUEzQixRQUFtQyxBQUFuQyxVQUE2QyxBQUFFO1NBQU8sU0FBUyxBQUFULEtBQWMsQUFBZCxRQUFzQixBQUF0QixRQUE4QixBQUE5QixBQUFQLEFBQWlEOztBQUNoRyxTQUFTLEFBQVQsaUJBQTBCLEFBQTFCLFFBQWtDLEFBQWxDLFFBQTBDLEFBQTFDLFVBQW9ELEFBQ3pEO01BQUksVSx5QkFBVSxZLGdCQUFBLHlCQUFnQixBQUFoQixVQUEwQixFQUFDLGtCQUFrQixBQUFuQixBQUExQixBQUFkLEFBQ0E7U0FBTyxTQUFTLEFBQVQsS0FBYyxBQUFkLFFBQXNCLEFBQXRCLFFBQThCLEFBQTlCLEFBQVAsQUFDRCIsImZpbGUiOiJsaW5lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7Z2VuZXJhdGVPcHRpb25zfSBmcm9tICcuLi91dGlsL3BhcmFtcyc7XG5cbmV4cG9ydCBjb25zdCBsaW5lRGlmZiA9IG5ldyBEaWZmKCk7XG5saW5lRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGxldCByZXRMaW5lcyA9IFtdLFxuICAgICAgbGluZXNBbmROZXdsaW5lcyA9IHZhbHVlLnNwbGl0KC8oXFxufFxcclxcbikvKTtcblxuICAvLyBJZ25vcmUgdGhlIGZpbmFsIGVtcHR5IHRva2VuIHRoYXQgb2NjdXJzIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIGEgbmV3IGxpbmVcbiAgaWYgKCFsaW5lc0FuZE5ld2xpbmVzW2xpbmVzQW5kTmV3bGluZXMubGVuZ3RoIC0gMV0pIHtcbiAgICBsaW5lc0FuZE5ld2xpbmVzLnBvcCgpO1xuICB9XG5cbiAgLy8gTWVyZ2UgdGhlIGNvbnRlbnQgYW5kIGxpbmUgc2VwYXJhdG9ycyBpbnRvIHNpbmdsZSB0b2tlbnNcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGxpbmUgPSBsaW5lc0FuZE5ld2xpbmVzW2ldO1xuXG4gICAgaWYgKGkgJSAyICYmICF0aGlzLm9wdGlvbnMubmV3bGluZUlzVG9rZW4pIHtcbiAgICAgIHJldExpbmVzW3JldExpbmVzLmxlbmd0aCAtIDFdICs9IGxpbmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSkge1xuICAgICAgICBsaW5lID0gbGluZS50cmltKCk7XG4gICAgICB9XG4gICAgICByZXRMaW5lcy5wdXNoKGxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXRMaW5lcztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmTGluZXMob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbmV4cG9ydCBmdW5jdGlvbiBkaWZmVHJpbW1lZExpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICBsZXQgb3B0aW9ucyA9IGdlbmVyYXRlT3B0aW9ucyhjYWxsYmFjaywge2lnbm9yZVdoaXRlc3BhY2U6IHRydWV9KTtcbiAgcmV0dXJuIGxpbmVEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIG9wdGlvbnMpO1xufVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvbGluZS5qcz9lYmYxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLDZCQUE2QjtBQUM5Qzs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUdBQXlHLHlCQUF5QjtBQUNsSTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI1NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmxpbmVEaWZmID0gdW5kZWZpbmVkO1xuZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmTGluZXMgPSBkaWZmTGluZXM7XG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmVHJpbW1lZExpbmVzID0gZGlmZlRyaW1tZWRMaW5lcztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG52YXIgX2Jhc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYmFzZSk7XG5cbi8qaXN0YW5idWwgaWdub3JlIGVuZCovXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19wYXJhbXMgPSByZXF1aXJlKCcuLi91dGlsL3BhcmFtcycpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9O1xufVxuXG4vKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3ZhciBsaW5lRGlmZiA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2xpbmVEaWZmID0gbmV3IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZTJbJ2RlZmF1bHQnXSgpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xubGluZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgdmFyIHJldExpbmVzID0gW10sXG4gICAgICBsaW5lc0FuZE5ld2xpbmVzID0gdmFsdWUuc3BsaXQoLyhcXG58XFxyXFxuKS8pO1xuXG4gIC8vIElnbm9yZSB0aGUgZmluYWwgZW1wdHkgdG9rZW4gdGhhdCBvY2N1cnMgaWYgdGhlIHN0cmluZyBlbmRzIHdpdGggYSBuZXcgbGluZVxuICBpZiAoIWxpbmVzQW5kTmV3bGluZXNbbGluZXNBbmROZXdsaW5lcy5sZW5ndGggLSAxXSkge1xuICAgIGxpbmVzQW5kTmV3bGluZXMucG9wKCk7XG4gIH1cblxuICAvLyBNZXJnZSB0aGUgY29udGVudCBhbmQgbGluZSBzZXBhcmF0b3JzIGludG8gc2luZ2xlIHRva2Vuc1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpbmVzQW5kTmV3bGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbGluZSA9IGxpbmVzQW5kTmV3bGluZXNbaV07XG5cbiAgICBpZiAoaSAlIDIgJiYgIXRoaXMub3B0aW9ucy5uZXdsaW5lSXNUb2tlbikge1xuICAgICAgcmV0TGluZXNbcmV0TGluZXMubGVuZ3RoIC0gMV0gKz0gbGluZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVXaGl0ZXNwYWNlKSB7XG4gICAgICAgIGxpbmUgPSBsaW5lLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIHJldExpbmVzLnB1c2gobGluZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldExpbmVzO1xufTtcblxuZnVuY3Rpb24gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gZGlmZlRyaW1tZWRMaW5lcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgdmFyIG9wdGlvbnMgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovKDAsIF9wYXJhbXMuZ2VuZXJhdGVPcHRpb25zIC8qaXN0YW5idWwgaWdub3JlIGVuZCovKShjYWxsYmFjaywgeyBpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlIH0pO1xuICByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a2FXWm1MMnhwYm1VdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenRuUTBFNFFtZENMRUVzV1VGQlFTeEJPM2xFUVVOQkxFRXNiVUpCUVVFc1FUczdRVUV2UW1oQ0xFa3NlVUpCUVVFc1owSXNWVUZCUVRzN096czdPMEZCUTBFc1NTeDVRa0ZCUVN4clFpeHJRa0ZCUVRzN096czdPenQxUWtGRlR5eEpRVUZOTEZjc2VVSkJRVUVzUVN4blEwRkJRU3hYUVVGWExFa3NlVUpCUVVFc1R5eGhRVUZxUWp0QlFVTlFMRk5CUVZNc1FVRkJWQ3hYUVVGdlFpeFZRVUZUTEVGQlFWUXNUMEZCWjBJc1FVRkRiRU03VFVGQlNTeFhRVUZYTEVGQlFXWTdUVUZEU1N4dFFrRkJiVUlzVFVGQlRTeEJRVUZPTEUxQlFWa3NRVUZCV2l4QlFVUjJRanM3UVVGSlFUdE5RVUZKTEVOQlFVTXNhVUpCUVdsQ0xHbENRVUZwUWl4QlFVRnFRaXhUUVVFd1FpeEJRVUV6UXl4QlFVRk1MRWxCUVc5RUxFRkJRMnhFTzNGQ1FVRnBRaXhCUVVGcVFpeEJRVU5FT3pzN1FVRkhSRHRQUVVGTExFbEJRVWtzU1VGQlNTeEJRVUZpTEVkQlFXZENMRWxCUVVrc2FVSkJRV2xDTEVGQlFYSkRMRkZCUVRaRExFRkJRVGRETEV0QlFXdEVMRUZCUTJoRU8xRkJRVWtzVDBGQlR5eHBRa0ZCYVVJc1FVRkJha0lzUVVGQldDeEJRVVZCT3p0UlFVRkpMRWxCUVVrc1FVRkJTaXhMUVVGVExFTkJRVU1zUzBGQlN5eEJRVUZNTEZGQlFXRXNRVUZCTTBJc1owSkJRVEpETEVGQlEzcERPMlZCUVZNc1UwRkJVeXhCUVVGVUxGTkJRV3RDTEVGQlFUTkNMRTFCUVdsRExFRkJRV3BETEVGQlEwUTdRVUZHUkN4WFFVVlBMRUZCUTB3N1ZVRkJTU3hMUVVGTExFRkJRVXdzVVVGQllTeEJRVUZxUWl4clFrRkJiVU1zUVVGRGFrTTdaVUZCVHl4TFFVRkxMRUZCUVV3c1FVRkJVQ3hCUVVORU8wRkJRMFE3WlVGQlV5eEJRVUZVTEV0QlFXTXNRVUZCWkN4QlFVTkVPMEZCUTBZN1FVRkZSRHM3VTBGQlR5eEJRVUZRTEVGQlEwUTdRVUY0UWtRN08wRkJNRUpQTEZOQlFWTXNRVUZCVkN4VlFVRnRRaXhCUVVGdVFpeFJRVUV5UWl4QlFVRXpRaXhSUVVGdFF5eEJRVUZ1UXl4VlFVRTJReXhCUVVGRk8xTkJRVThzVTBGQlV5eEJRVUZVTEV0QlFXTXNRVUZCWkN4UlFVRnpRaXhCUVVGMFFpeFJRVUU0UWl4QlFVRTVRaXhCUVVGUUxFRkJRV2xFT3p0QlFVTm9SeXhUUVVGVExFRkJRVlFzYVVKQlFUQkNMRUZCUVRGQ0xGRkJRV3RETEVGQlFXeERMRkZCUVRCRExFRkJRVEZETEZWQlFXOUVMRUZCUTNwRU8wMUJRVWtzVlN4NVFrRkJWU3haTEdkQ1FVRkJMSGxDUVVGblFpeEJRVUZvUWl4VlFVRXdRaXhGUVVGRExHdENRVUZyUWl4QlFVRnVRaXhCUVVFeFFpeEJRVUZrTEVGQlEwRTdVMEZCVHl4VFFVRlRMRUZCUVZRc1MwRkJZeXhCUVVGa0xGRkJRWE5DTEVGQlFYUkNMRkZCUVRoQ0xFRkJRVGxDTEVGQlFWQXNRVUZEUkNJc0ltWnBiR1VpT2lKc2FXNWxMbXB6SWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUVScFptWWdabkp2YlNBbkxpOWlZWE5sSnp0Y2JtbHRjRzl5ZENCN1oyVnVaWEpoZEdWUGNIUnBiMjV6ZlNCbWNtOXRJQ2N1TGk5MWRHbHNMM0JoY21GdGN5YzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnNhVzVsUkdsbVppQTlJRzVsZHlCRWFXWm1LQ2s3WEc1c2FXNWxSR2xtWmk1MGIydGxibWw2WlNBOUlHWjFibU4wYVc5dUtIWmhiSFZsS1NCN1hHNGdJR3hsZENCeVpYUk1hVzVsY3lBOUlGdGRMRnh1SUNBZ0lDQWdiR2x1WlhOQmJtUk9aWGRzYVc1bGN5QTlJSFpoYkhWbExuTndiR2wwS0M4b1hGeHVmRnhjY2x4Y2Jpa3ZLVHRjYmx4dUlDQXZMeUJKWjI1dmNtVWdkR2hsSUdacGJtRnNJR1Z0Y0hSNUlIUnZhMlZ1SUhSb1lYUWdiMk5qZFhKeklHbG1JSFJvWlNCemRISnBibWNnWlc1a2N5QjNhWFJvSUdFZ2JtVjNJR3hwYm1WY2JpQWdhV1lnS0NGc2FXNWxjMEZ1WkU1bGQyeHBibVZ6VzJ4cGJtVnpRVzVrVG1WM2JHbHVaWE11YkdWdVozUm9JQzBnTVYwcElIdGNiaUFnSUNCc2FXNWxjMEZ1WkU1bGQyeHBibVZ6TG5CdmNDZ3BPMXh1SUNCOVhHNWNiaUFnTHk4Z1RXVnlaMlVnZEdobElHTnZiblJsYm5RZ1lXNWtJR3hwYm1VZ2MyVndZWEpoZEc5eWN5QnBiblJ2SUhOcGJtZHNaU0IwYjJ0bGJuTmNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc2FXNWxjMEZ1WkU1bGQyeHBibVZ6TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ2JHVjBJR3hwYm1VZ1BTQnNhVzVsYzBGdVpFNWxkMnhwYm1WelcybGRPMXh1WEc0Z0lDQWdhV1lnS0drZ0pTQXlJQ1ltSUNGMGFHbHpMbTl3ZEdsdmJuTXVibVYzYkdsdVpVbHpWRzlyWlc0cElIdGNiaUFnSUNBZ0lISmxkRXhwYm1WelczSmxkRXhwYm1WekxteGxibWQwYUNBdElERmRJQ3M5SUd4cGJtVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG05d2RHbHZibk11YVdkdWIzSmxWMmhwZEdWemNHRmpaU2tnZTF4dUlDQWdJQ0FnSUNCc2FXNWxJRDBnYkdsdVpTNTBjbWx0S0NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUk1hVzVsY3k1d2RYTm9LR3hwYm1VcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCeVpYUk1hVzVsY3p0Y2JuMDdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrYVdabVRHbHVaWE1vYjJ4a1UzUnlMQ0J1WlhkVGRISXNJR05oYkd4aVlXTnJLU0I3SUhKbGRIVnliaUJzYVc1bFJHbG1aaTVrYVdabUtHOXNaRk4wY2l3Z2JtVjNVM1J5TENCallXeHNZbUZqYXlrN0lIMWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV1ptVkhKcGJXMWxaRXhwYm1WektHOXNaRk4wY2l3Z2JtVjNVM1J5TENCallXeHNZbUZqYXlrZ2UxeHVJQ0JzWlhRZ2IzQjBhVzl1Y3lBOUlHZGxibVZ5WVhSbFQzQjBhVzl1Y3loallXeHNZbUZqYXl3Z2UybG5ibTl5WlZkb2FYUmxjM0JoWTJVNklIUnlkV1Y5S1R0Y2JpQWdjbVYwZFhKdUlHeHBibVZFYVdabUxtUnBabVlvYjJ4a1UzUnlMQ0J1WlhkVGRISXNJRzl3ZEdsdmJuTXBPMXh1ZlZ4dUlsMTlcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvZGlmZi9saW5lLmpzXG4vLyBtb2R1bGUgaWQgPSAyNTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 255 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports.sentenceDiff = undefined;\nexports. /*istanbul ignore end*/diffSentences = diffSentences;\n\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/;\nsentenceDiff.tokenize = function (value) {\n return value.split(/(\\S.+?[.!?])(?=\\s+|$)/);\n};\n\nfunction diffSentences(oldStr, newStr, callback) {\n return sentenceDiff.diff(oldStr, newStr, callback);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCLEEsZ0JBQUEsQTs7QUFSaEIsSSx5QkFBQSxnQixVQUFBOzs7Ozs7Ozs7dUJBR08sSUFBTSxlLHlCQUFBLEEsZ0NBQUEsZUFBZSxJLHlCQUFBLE8sYUFBckI7QUFDUCxhQUFhLEFBQWIsV0FBd0IsVUFBUyxBQUFULE9BQWdCLEFBQ3RDO1NBQU8sTUFBTSxBQUFOLE1BQVksQUFBWixBQUFQLEFBQ0Q7QUFGRDs7QUFJTyxTQUFTLEFBQVQsY0FBdUIsQUFBdkIsUUFBK0IsQUFBL0IsUUFBdUMsQUFBdkMsVUFBaUQsQUFBRTtTQUFPLGFBQWEsQUFBYixLQUFrQixBQUFsQixRQUEwQixBQUExQixRQUFrQyxBQUFsQyxBQUFQLEFBQXFEIiwiZmlsZSI6InNlbnRlbmNlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuXG5leHBvcnQgY29uc3Qgc2VudGVuY2VEaWZmID0gbmV3IERpZmYoKTtcbnNlbnRlbmNlRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS5zcGxpdCgvKFxcUy4rP1suIT9dKSg/PVxccyt8JCkvKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmU2VudGVuY2VzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gc2VudGVuY2VEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvc2VudGVuY2UuanM/OWUzYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHdDQUF3QztBQUN4Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMiLCJmaWxlIjoiMjU1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLyd1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuc2VudGVuY2VEaWZmID0gdW5kZWZpbmVkO1xuZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmU2VudGVuY2VzID0gZGlmZlNlbnRlbmNlcztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG52YXIgX2Jhc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYmFzZSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07XG59XG5cbi8qaXN0YW5idWwgaWdub3JlIGVuZCovdmFyIHNlbnRlbmNlRGlmZiA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3NlbnRlbmNlRGlmZiA9IG5ldyAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX2Jhc2UyWydkZWZhdWx0J10oKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcbnNlbnRlbmNlRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5mdW5jdGlvbiBkaWZmU2VudGVuY2VzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICByZXR1cm4gc2VudGVuY2VEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTlrYVdabUwzTmxiblJsYm1ObExtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3WjBOQlVXZENMRUVzWjBKQlFVRXNRVHM3UVVGU2FFSXNTU3g1UWtGQlFTeG5RaXhWUVVGQk96czdPenM3T3pzN2RVSkJSMDhzU1VGQlRTeGxMSGxDUVVGQkxFRXNaME5CUVVFc1pVRkJaU3hKTEhsQ1FVRkJMRThzWVVGQmNrSTdRVUZEVUN4aFFVRmhMRUZCUVdJc1YwRkJkMElzVlVGQlV5eEJRVUZVTEU5QlFXZENMRUZCUTNSRE8xTkJRVThzVFVGQlRTeEJRVUZPTEUxQlFWa3NRVUZCV2l4QlFVRlFMRUZCUTBRN1FVRkdSRHM3UVVGSlR5eFRRVUZUTEVGQlFWUXNZMEZCZFVJc1FVRkJka0lzVVVGQkswSXNRVUZCTDBJc1VVRkJkVU1zUVVGQmRrTXNWVUZCYVVRc1FVRkJSVHRUUVVGUExHRkJRV0VzUVVGQllpeExRVUZyUWl4QlFVRnNRaXhSUVVFd1FpeEJRVUV4UWl4UlFVRnJReXhCUVVGc1F5eEJRVUZRTEVGQlFYRkVJaXdpWm1sc1pTSTZJbk5sYm5SbGJtTmxMbXB6SWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUVScFptWWdabkp2YlNBbkxpOWlZWE5sSnp0Y2JseHVYRzVsZUhCdmNuUWdZMjl1YzNRZ2MyVnVkR1Z1WTJWRWFXWm1JRDBnYm1WM0lFUnBabVlvS1R0Y2JuTmxiblJsYm1ObFJHbG1aaTUwYjJ0bGJtbDZaU0E5SUdaMWJtTjBhVzl1S0haaGJIVmxLU0I3WEc0Z0lISmxkSFZ5YmlCMllXeDFaUzV6Y0d4cGRDZ3ZLRnhjVXk0clAxc3VJVDlkS1NnL1BWeGNjeXQ4SkNrdktUdGNibjA3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXWm1VMlZ1ZEdWdVkyVnpLRzlzWkZOMGNpd2dibVYzVTNSeUxDQmpZV3hzWW1GamF5a2dleUJ5WlhSMWNtNGdjMlZ1ZEdWdVkyVkVhV1ptTG1ScFptWW9iMnhrVTNSeUxDQnVaWGRUZEhJc0lHTmhiR3hpWVdOcktUc2dmVnh1SWwxOVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9kaWZmL2xpYi9kaWZmL3NlbnRlbmNlLmpzXG4vLyBtb2R1bGUgaWQgPSAyNTVcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 256 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports.cssDiff = undefined;\nexports. /*istanbul ignore end*/diffCss = diffCss;\n\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/;\ncssDiff.tokenize = function (value) {\n return value.split(/([{}:;,]|\\s+)/);\n};\n\nfunction diffCss(oldStr, newStr, callback) {\n return cssDiff.diff(oldStr, newStr, callback);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O2dDQU9nQixBLFVBQUEsQTs7QUFQaEIsSSx5QkFBQSxnQixVQUFBOzs7Ozs7Ozs7dUJBRU8sSUFBTSxVLHlCQUFBLEEsZ0NBQUEsVUFBVSxJLHlCQUFBLE8sYUFBaEI7QUFDUCxRQUFRLEFBQVIsV0FBbUIsVUFBUyxBQUFULE9BQWdCLEFBQ2pDO1NBQU8sTUFBTSxBQUFOLE1BQVksQUFBWixBQUFQLEFBQ0Q7QUFGRDs7QUFJTyxTQUFTLEFBQVQsUUFBaUIsQUFBakIsUUFBeUIsQUFBekIsUUFBaUMsQUFBakMsVUFBMkMsQUFBRTtTQUFPLFFBQVEsQUFBUixLQUFhLEFBQWIsUUFBcUIsQUFBckIsUUFBNkIsQUFBN0IsQUFBUCxBQUFnRCIsImZpbGUiOiJjc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgY29uc3QgY3NzRGlmZiA9IG5ldyBEaWZmKCk7XG5jc3NEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNwbGl0KC8oW3t9OjssXXxcXHMrKS8pO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDc3Mob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKSB7IHJldHVybiBjc3NEaWZmLmRpZmYob2xkU3RyLCBuZXdTdHIsIGNhbGxiYWNrKTsgfVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvY3NzLmpzP2MzODMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBLDBCQUEwQixFQUFFO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyIsImZpbGUiOiIyNTYuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5jc3NEaWZmID0gdW5kZWZpbmVkO1xuZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9kaWZmQ3NzID0gZGlmZkNzcztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG52YXIgX2Jhc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYmFzZSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07XG59XG5cbi8qaXN0YW5idWwgaWdub3JlIGVuZCovdmFyIGNzc0RpZmYgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9jc3NEaWZmID0gbmV3IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZTJbJ2RlZmF1bHQnXSgpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuY3NzRGlmZi50b2tlbml6ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhbe306OyxdfFxccyspLyk7XG59O1xuXG5mdW5jdGlvbiBkaWZmQ3NzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykge1xuICByZXR1cm4gY3NzRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a2FXWm1MMk56Y3k1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPMmREUVU5blFpeEJMRlZCUVVFc1FUczdRVUZRYUVJc1NTeDVRa0ZCUVN4blFpeFZRVUZCT3pzN096czdPenM3ZFVKQlJVOHNTVUZCVFN4VkxIbENRVUZCTEVFc1owTkJRVUVzVlVGQlZTeEpMSGxDUVVGQkxFOHNZVUZCYUVJN1FVRkRVQ3hSUVVGUkxFRkJRVklzVjBGQmJVSXNWVUZCVXl4QlFVRlVMRTlCUVdkQ0xFRkJRMnBETzFOQlFVOHNUVUZCVFN4QlFVRk9MRTFCUVZrc1FVRkJXaXhCUVVGUUxFRkJRMFE3UVVGR1JEczdRVUZKVHl4VFFVRlRMRUZCUVZRc1VVRkJhVUlzUVVGQmFrSXNVVUZCZVVJc1FVRkJla0lzVVVGQmFVTXNRVUZCYWtNc1ZVRkJNa01zUVVGQlJUdFRRVUZQTEZGQlFWRXNRVUZCVWl4TFFVRmhMRUZCUVdJc1VVRkJjVUlzUVVGQmNrSXNVVUZCTmtJc1FVRkJOMElzUVVGQlVDeEJRVUZuUkNJc0ltWnBiR1VpT2lKamMzTXVhbk1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnUkdsbVppQm1jbTl0SUNjdUwySmhjMlVuTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnWTNOelJHbG1aaUE5SUc1bGR5QkVhV1ptS0NrN1hHNWpjM05FYVdabUxuUnZhMlZ1YVhwbElEMGdablZ1WTNScGIyNG9kbUZzZFdVcElIdGNiaUFnY21WMGRYSnVJSFpoYkhWbExuTndiR2wwS0M4b1czdDlPanNzWFh4Y1hITXJLUzhwTzF4dWZUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JwWm1aRGMzTW9iMnhrVTNSeUxDQnVaWGRUZEhJc0lHTmhiR3hpWVdOcktTQjdJSEpsZEhWeWJpQmpjM05FYVdabUxtUnBabVlvYjJ4a1UzUnlMQ0J1WlhkVGRISXNJR05oYkd4aVlXTnJLVHNnZlZ4dUlsMTlcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvZGlmZi9jc3MuanNcbi8vIG1vZHVsZSBpZCA9IDI1NlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 257 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\n/*istanbul ignore start*/var _typeof2 = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*istanbul ignore end*/exports.__esModule = true;\nexports.jsonDiff = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && /*istanbul ignore start*/_typeof2( /*istanbul ignore end*/Symbol.iterator) === \"symbol\" ? function (obj) {\n return (/*istanbul ignore start*/typeof /*istanbul ignore end*/obj === \"undefined\" ? \"undefined\" : _typeof2(obj)\n );\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : /*istanbul ignore start*/typeof /*istanbul ignore end*/obj === \"undefined\" ? \"undefined\" : _typeof2(obj);\n};\n\nexports. /*istanbul ignore end*/diffJson = diffJson;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize;\n\nvar /*istanbul ignore start*/_base = __webpack_require__(250) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _base2 = _interopRequireDefault(_base);\n\n/*istanbul ignore end*/\nvar /*istanbul ignore start*/_line = __webpack_require__(254) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/\n\nvar objectPrototypeToString = Object.prototype.toString;\n\nvar jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default']() /*istanbul ignore end*/;\n// Discriminate between two lines of pretty-printed, serialized JSON where one of them has a\n// dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output:\njsonDiff.useLongestToken = true;\n\njsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff. /*istanbul ignore end*/tokenize;\njsonDiff.castInput = function (value) {\n return typeof value === 'string' ? value : JSON.stringify(canonicalize(value), undefined, ' ');\n};\njsonDiff.equals = function (left, right) {\n return (/*istanbul ignore start*/_base2['default']. /*istanbul ignore end*/prototype.equals(left.replace(/,([\\r\\n])/g, '$1'), right.replace(/,([\\r\\n])/g, '$1'))\n );\n};\n\nfunction diffJson(oldObj, newObj, callback) {\n return jsonDiff.diff(oldObj, newObj, callback);\n}\n\n// This function handles the presence of circular references by bailing out when encountering an\n// object that is already on the \"stack\" of items being processed.\nfunction canonicalize(obj, stack, replacementStack) {\n stack = stack || [];\n replacementStack = replacementStack || [];\n\n var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;\n\n for (i = 0; i < stack.length; i += 1) {\n if (stack[i] === obj) {\n return replacementStack[i];\n }\n }\n\n var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;\n\n if ('[object Array]' === objectPrototypeToString.call(obj)) {\n stack.push(obj);\n canonicalizedObj = new Array(obj.length);\n replacementStack.push(canonicalizedObj);\n for (i = 0; i < obj.length; i += 1) {\n canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack);\n }\n stack.pop();\n replacementStack.pop();\n return canonicalizedObj;\n }\n\n if (obj && obj.toJSON) {\n obj = obj.toJSON();\n }\n\n if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) {\n stack.push(obj);\n canonicalizedObj = {};\n replacementStack.push(canonicalizedObj);\n var sortedKeys = [],\n key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;\n for (key in obj) {\n /* istanbul ignore else */\n if (obj.hasOwnProperty(key)) {\n sortedKeys.push(key);\n }\n }\n sortedKeys.sort();\n for (i = 0; i < sortedKeys.length; i += 1) {\n key = sortedKeys[i];\n canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack);\n }\n stack.pop();\n replacementStack.pop();\n } else {\n canonicalizedObj = obj;\n }\n return canonicalizedObj;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Z0NBbUJnQixBLFdBQUEsQTt5REFLQSxBLGVBQUEsQTs7QUF4QmhCLEkseUJBQUEsZ0IsVUFBQTs7Ozs7O0FBQ0EsSSx5QkFBQSxnQixVQUFBOzs7Ozs7Ozs7QUFFQSxJQUFNLDBCQUEwQixPQUFPLEFBQVAsVUFBaUIsQUFBakQ7O0FBR08sSUFBTSxXLHlCQUFBLEEsZ0NBQUEsV0FBVyxJLHlCQUFBLE8sYUFBakI7OztBQUdQLFNBQVMsQUFBVCxrQkFBMkIsQUFBM0I7O0FBRUEsU0FBUyxBQUFULFcseUJBQW9CLE0saUNBQVMsQUFBN0I7QUFDQSxTQUFTLEFBQVQsWUFBcUIsVUFBUyxBQUFULE9BQWdCLEFBQ25DO1NBQU8sT0FBTyxBQUFQLFVBQWlCLEFBQWpCLFdBQTRCLEFBQTVCLFFBQW9DLEtBQUssQUFBTCxVQUFlLGFBQWEsQUFBYixBQUFmLFFBQW9DLEFBQXBDLFdBQStDLEFBQS9DLEFBQTNDLEFBQ0Q7QUFGRDtBQUdBLFNBQVMsQUFBVCxTQUFrQixVQUFTLEFBQVQsTUFBZSxBQUFmLE9BQXNCLEFBQ3RDO0EsbUNBQU8sTyxtQ0FBSyxBQUFMLFVBQWUsQUFBZixPQUFzQixLQUFLLEFBQUwsUUFBYSxBQUFiLGNBQTJCLEFBQTNCLEFBQXRCLE9BQXdELE1BQU0sQUFBTixRQUFjLEFBQWQsY0FBNEIsQUFBNUIsQUFBeEQsQUFBUCxBQUNEOztBQUZEOztBQUlPLFNBQVMsQUFBVCxTQUFrQixBQUFsQixRQUEwQixBQUExQixRQUFrQyxBQUFsQyxVQUE0QyxBQUFFO1NBQU8sU0FBUyxBQUFULEtBQWMsQUFBZCxRQUFzQixBQUF0QixRQUE4QixBQUE5QixBQUFQLEFBQWlEOzs7OztBQUsvRixTQUFTLEFBQVQsYUFBc0IsQUFBdEIsS0FBMkIsQUFBM0IsT0FBa0MsQUFBbEMsa0JBQW9ELEFBQ3pEO1VBQVEsU0FBUyxBQUFqQixBQUNBO3FCQUFtQixvQkFBb0IsQUFBdkMsQUFFQTs7TUFBSSxJLHlCQUFBLEssRUFBSixBQUVBOztPQUFLLElBQUksQUFBVCxHQUFZLElBQUksTUFBTSxBQUF0QixRQUE4QixLQUFLLEFBQW5DLEdBQXNDLEFBQ3BDO1FBQUksTUFBTSxBQUFOLE9BQWEsQUFBakIsS0FBc0IsQUFDcEI7YUFBTyxpQkFBaUIsQUFBakIsQUFBUCxBQUNEO0FBQ0Y7QUFFRDs7TUFBSSxtQix5QkFBQSxLLEVBQUosQUFFQTs7TUFBSSxxQkFBcUIsd0JBQXdCLEFBQXhCLEtBQTZCLEFBQTdCLEFBQXpCLE1BQTRELEFBQzFEO1VBQU0sQUFBTixLQUFXLEFBQVgsQUFDQTt1QkFBbUIsSUFBSSxBQUFKLE1BQVUsSUFBSSxBQUFkLEFBQW5CLEFBQ0E7cUJBQWlCLEFBQWpCLEtBQXNCLEFBQXRCLEFBQ0E7U0FBSyxJQUFJLEFBQVQsR0FBWSxJQUFJLElBQUksQUFBcEIsUUFBNEIsS0FBSyxBQUFqQyxHQUFvQyxBQUNsQzt1QkFBaUIsQUFBakIsS0FBc0IsYUFBYSxJQUFJLEFBQUosQUFBYixJQUFxQixBQUFyQixPQUE0QixBQUE1QixBQUF0QixBQUNEO0FBQ0Q7VUFBTSxBQUFOLEFBQ0E7cUJBQWlCLEFBQWpCLEFBQ0E7V0FBTyxBQUFQLEFBQ0Q7QUFFRDs7TUFBSSxPQUFPLElBQUksQUFBZixRQUF1QixBQUNyQjtVQUFNLElBQUksQUFBSixBQUFOLEFBQ0Q7QUFFRDs7QSxnQ0FBSSxRLHVCQUFPLEFBQVAsNENBQU8sQUFBUCxVQUFlLEFBQWYsWUFBMkIsUUFBUSxBQUF2QyxNQUE2QyxBQUMzQztVQUFNLEFBQU4sS0FBVyxBQUFYLEFBQ0E7dUJBQW1CLEFBQW5CLEFBQ0E7cUJBQWlCLEFBQWpCLEtBQXNCLEFBQXRCLEFBQ0E7UUFBSSxhQUFhLEFBQWpCO1FBQ0ksTSx5QkFBQSxLLEVBREosQUFFQTtTQUFLLEFBQUwsT0FBWSxBQUFaLEtBQWlCO0FBRWY7VUFBSSxJQUFJLEFBQUosZUFBbUIsQUFBbkIsQUFBSixNQUE2QixBQUMzQjttQkFBVyxBQUFYLEtBQWdCLEFBQWhCLEFBQ0Q7QUFDRjtBQUNEO2VBQVcsQUFBWCxBQUNBO1NBQUssSUFBSSxBQUFULEdBQVksSUFBSSxXQUFXLEFBQTNCLFFBQW1DLEtBQUssQUFBeEMsR0FBMkMsQUFDekM7WUFBTSxXQUFXLEFBQVgsQUFBTixBQUNBO3VCQUFpQixBQUFqQixPQUF3QixhQUFhLElBQUksQUFBSixBQUFiLE1BQXVCLEFBQXZCLE9BQThCLEFBQTlCLEFBQXhCLEFBQ0Q7QUFDRDtVQUFNLEFBQU4sQUFDQTtxQkFBaUIsQUFBakIsQUFDRDtBQW5CRCxTQW1CTyxBQUNMO3VCQUFtQixBQUFuQixBQUNEO0FBQ0Q7U0FBTyxBQUFQLEFBQ0QiLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2xpbmVEaWZmfSBmcm9tICcuL2xpbmUnO1xuXG5jb25zdCBvYmplY3RQcm90b3R5cGVUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cblxuZXhwb3J0IGNvbnN0IGpzb25EaWZmID0gbmV3IERpZmYoKTtcbi8vIERpc2NyaW1pbmF0ZSBiZXR3ZWVuIHR3byBsaW5lcyBvZiBwcmV0dHktcHJpbnRlZCwgc2VyaWFsaXplZCBKU09OIHdoZXJlIG9uZSBvZiB0aGVtIGhhcyBhXG4vLyBkYW5nbGluZyBjb21tYSBhbmQgdGhlIG90aGVyIGRvZXNuJ3QuIFR1cm5zIG91dCBpbmNsdWRpbmcgdGhlIGRhbmdsaW5nIGNvbW1hIHlpZWxkcyB0aGUgbmljZXN0IG91dHB1dDpcbmpzb25EaWZmLnVzZUxvbmdlc3RUb2tlbiA9IHRydWU7XG5cbmpzb25EaWZmLnRva2VuaXplID0gbGluZURpZmYudG9rZW5pemU7XG5qc29uRGlmZi5jYXN0SW5wdXQgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlKSwgdW5kZWZpbmVkLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzKGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgY2FsbGJhY2spIHsgcmV0dXJuIGpzb25EaWZmLmRpZmYob2xkT2JqLCBuZXdPYmosIGNhbGxiYWNrKTsgfVxuXG5cbi8vIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgcHJlc2VuY2Ugb2YgY2lyY3VsYXIgcmVmZXJlbmNlcyBieSBiYWlsaW5nIG91dCB3aGVuIGVuY291bnRlcmluZyBhblxuLy8gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBvbiB0aGUgXCJzdGFja1wiIG9mIGl0ZW1zIGJlaW5nIHByb2Nlc3NlZC5cbmV4cG9ydCBmdW5jdGlvbiBjYW5vbmljYWxpemUob2JqLCBzdGFjaywgcmVwbGFjZW1lbnRTdGFjaykge1xuICBzdGFjayA9IHN0YWNrIHx8IFtdO1xuICByZXBsYWNlbWVudFN0YWNrID0gcmVwbGFjZW1lbnRTdGFjayB8fCBbXTtcblxuICBsZXQgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgc3RhY2subGVuZ3RoOyBpICs9IDEpIHtcbiAgICBpZiAoc3RhY2tbaV0gPT09IG9iaikge1xuICAgICAgcmV0dXJuIHJlcGxhY2VtZW50U3RhY2tbaV07XG4gICAgfVxuICB9XG5cbiAgbGV0IGNhbm9uaWNhbGl6ZWRPYmo7XG5cbiAgaWYgKCdbb2JqZWN0IEFycmF5XScgPT09IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nLmNhbGwob2JqKSkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0gbmV3IEFycmF5KG9iai5sZW5ndGgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjYW5vbmljYWxpemVkT2JqW2ldID0gY2Fub25pY2FsaXplKG9ialtpXSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2spO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICAgIHJldHVybiBjYW5vbmljYWxpemVkT2JqO1xuICB9XG5cbiAgaWYgKG9iaiAmJiBvYmoudG9KU09OKSB7XG4gICAgb2JqID0gb2JqLnRvSlNPTigpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0ge307XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wdXNoKGNhbm9uaWNhbGl6ZWRPYmopO1xuICAgIGxldCBzb3J0ZWRLZXlzID0gW10sXG4gICAgICAgIGtleTtcbiAgICBmb3IgKGtleSBpbiBvYmopIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgc29ydGVkS2V5cy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICAgIHNvcnRlZEtleXMuc29ydCgpO1xuICAgIGZvciAoaSA9IDA7IGkgPCBzb3J0ZWRLZXlzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBrZXkgPSBzb3J0ZWRLZXlzW2ldO1xuICAgICAgY2Fub25pY2FsaXplZE9ialtrZXldID0gY2Fub25pY2FsaXplKG9ialtrZXldLCBzdGFjaywgcmVwbGFjZW1lbnRTdGFjayk7XG4gICAgfVxuICAgIHN0YWNrLnBvcCgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucG9wKCk7XG4gIH0gZWxzZSB7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG9iajtcbiAgfVxuICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbn1cbiJdfQ==//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2RpZmYvanNvbi5qcz8zOTRiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLDhIQUE4SCxtQkFBbUIsRUFBRSxtQkFBbUIsOEhBQThIOztBQUVwUztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxhQUFhLGtCQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsZ0JBQWdCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVCQUF1QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI1Ny5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki92YXIgX3R5cGVvZjIgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PT0gXCJzeW1ib2xcIiA/IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIHR5cGVvZiBvYmo7IH0gOiBmdW5jdGlvbiAob2JqKSB7IHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9O1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2V4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLmpzb25EaWZmID0gdW5kZWZpbmVkO1xuXG52YXIgX3R5cGVvZiA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX3R5cGVvZjIoIC8qaXN0YW5idWwgaWdub3JlIGVuZCovU3ltYm9sLml0ZXJhdG9yKSA9PT0gXCJzeW1ib2xcIiA/IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuICgvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovdHlwZW9mIC8qaXN0YW5idWwgaWdub3JlIGVuZCovb2JqID09PSBcInVuZGVmaW5lZFwiID8gXCJ1bmRlZmluZWRcIiA6IF90eXBlb2YyKG9iailcbiAgKTtcbn0gOiBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiBvYmogJiYgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sID8gXCJzeW1ib2xcIiA6IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki90eXBlb2YgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9vYmogPT09IFwidW5kZWZpbmVkXCIgPyBcInVuZGVmaW5lZFwiIDogX3R5cGVvZjIob2JqKTtcbn07XG5cbmV4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovZGlmZkpzb24gPSBkaWZmSnNvbjtcbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2Nhbm9uaWNhbGl6ZSA9IGNhbm9uaWNhbGl6ZTtcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZSA9IHJlcXVpcmUoJy4vYmFzZScpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG52YXIgX2Jhc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYmFzZSk7XG5cbi8qaXN0YW5idWwgaWdub3JlIGVuZCovXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19saW5lID0gcmVxdWlyZSgnLi9saW5lJykgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7XG4gIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07XG59XG5cbi8qaXN0YW5idWwgaWdub3JlIGVuZCovXG5cbnZhciBvYmplY3RQcm90b3R5cGVUb1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbnZhciBqc29uRGlmZiA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2pzb25EaWZmID0gbmV3IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fYmFzZTJbJ2RlZmF1bHQnXSgpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovX2xpbmUubGluZURpZmYuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovdG9rZW5pemU7XG5qc29uRGlmZi5jYXN0SW5wdXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IEpTT04uc3RyaW5naWZ5KGNhbm9uaWNhbGl6ZSh2YWx1ZSksIHVuZGVmaW5lZCwgJyAgJyk7XG59O1xuanNvbkRpZmYuZXF1YWxzID0gZnVuY3Rpb24gKGxlZnQsIHJpZ2h0KSB7XG4gIHJldHVybiAoLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19iYXNlMlsnZGVmYXVsdCddLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3Byb3RvdHlwZS5lcXVhbHMobGVmdC5yZXBsYWNlKC8sKFtcXHJcXG5dKS9nLCAnJDEnKSwgcmlnaHQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJykpXG4gICk7XG59O1xuXG5mdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgY2FsbGJhY2spIHtcbiAgcmV0dXJuIGpzb25EaWZmLmRpZmYob2xkT2JqLCBuZXdPYmosIGNhbGxiYWNrKTtcbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLlxuZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2spIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgdmFyIGkgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovdm9pZCAwIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4gIGZvciAoaSA9IDA7IGkgPCBzdGFjay5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGlmIChzdGFja1tpXSA9PT0gb2JqKSB7XG4gICAgICByZXR1cm4gcmVwbGFjZW1lbnRTdGFja1tpXTtcbiAgICB9XG4gIH1cblxuICB2YXIgY2Fub25pY2FsaXplZE9iaiA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki92b2lkIDAgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG5cbiAgaWYgKCdbb2JqZWN0IEFycmF5XScgPT09IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nLmNhbGwob2JqKSkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0gbmV3IEFycmF5KG9iai5sZW5ndGgpO1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBjYW5vbmljYWxpemVkT2JqW2ldID0gY2Fub25pY2FsaXplKG9ialtpXSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2spO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICAgIHJldHVybiBjYW5vbmljYWxpemVkT2JqO1xuICB9XG5cbiAgaWYgKG9iaiAmJiBvYmoudG9KU09OKSB7XG4gICAgb2JqID0gb2JqLnRvSlNPTigpO1xuICB9XG5cbiAgaWYgKCAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovKHR5cGVvZiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL29iaiA9PT0gJ3VuZGVmaW5lZCcgPyAndW5kZWZpbmVkJyA6IF90eXBlb2Yob2JqKSkgPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbCkge1xuICAgIHN0YWNrLnB1c2gob2JqKTtcbiAgICBjYW5vbmljYWxpemVkT2JqID0ge307XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wdXNoKGNhbm9uaWNhbGl6ZWRPYmopO1xuICAgIHZhciBzb3J0ZWRLZXlzID0gW10sXG4gICAgICAgIGtleSA9IC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki92b2lkIDAgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi87XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2spO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a2FXWm1MMnB6YjI0dWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3WjBOQmJVSm5RaXhCTEZkQlFVRXNRVHQ1UkVGTFFTeEJMR1ZCUVVFc1FUczdRVUY0UW1oQ0xFa3NlVUpCUVVFc1owSXNWVUZCUVRzN096czdPMEZCUTBFc1NTeDVRa0ZCUVN4blFpeFZRVUZCT3pzN096czdPenM3UVVGRlFTeEpRVUZOTERCQ1FVRXdRaXhQUVVGUExFRkJRVkFzVlVGQmFVSXNRVUZCYWtRN08wRkJSMDhzU1VGQlRTeFhMSGxDUVVGQkxFRXNaME5CUVVFc1YwRkJWeXhKTEhsQ1FVRkJMRThzWVVGQmFrSTdPenRCUVVkUUxGTkJRVk1zUVVGQlZDeHJRa0ZCTWtJc1FVRkJNMEk3TzBGQlJVRXNVMEZCVXl4QlFVRlVMRmNzZVVKQlFXOUNMRTBzYVVOQlFWTXNRVUZCTjBJN1FVRkRRU3hUUVVGVExFRkJRVlFzV1VGQmNVSXNWVUZCVXl4QlFVRlVMRTlCUVdkQ0xFRkJRMjVETzFOQlFVOHNUMEZCVHl4QlFVRlFMRlZCUVdsQ0xFRkJRV3BDTEZkQlFUUkNMRUZCUVRWQ0xGRkJRVzlETEV0QlFVc3NRVUZCVEN4VlFVRmxMR0ZCUVdFc1FVRkJZaXhCUVVGbUxGRkJRVzlETEVGQlFYQkRMRmRCUVN0RExFRkJRUzlETEVGQlFUTkRMRUZCUTBRN1FVRkdSRHRCUVVkQkxGTkJRVk1zUVVGQlZDeFRRVUZyUWl4VlFVRlRMRUZCUVZRc1RVRkJaU3hCUVVGbUxFOUJRWE5DTEVGQlEzUkRPMEVzYlVOQlFVOHNUeXh0UTBGQlN5eEJRVUZNTEZWQlFXVXNRVUZCWml4UFFVRnpRaXhMUVVGTExFRkJRVXdzVVVGQllTeEJRVUZpTEdOQlFUSkNMRUZCUVROQ0xFRkJRWFJDTEU5QlFYZEVMRTFCUVUwc1FVRkJUaXhSUVVGakxFRkJRV1FzWTBGQk5FSXNRVUZCTlVJc1FVRkJlRVFzUVVGQlVDeEJRVU5FT3p0QlFVWkVPenRCUVVsUExGTkJRVk1zUVVGQlZDeFRRVUZyUWl4QlFVRnNRaXhSUVVFd1FpeEJRVUV4UWl4UlFVRnJReXhCUVVGc1F5eFZRVUUwUXl4QlFVRkZPMU5CUVU4c1UwRkJVeXhCUVVGVUxFdEJRV01zUVVGQlpDeFJRVUZ6UWl4QlFVRjBRaXhSUVVFNFFpeEJRVUU1UWl4QlFVRlFMRUZCUVdsRU96czdPenRCUVVzdlJpeFRRVUZUTEVGQlFWUXNZVUZCYzBJc1FVRkJkRUlzUzBGQk1rSXNRVUZCTTBJc1QwRkJhME1zUVVGQmJFTXNhMEpCUVc5RUxFRkJRM3BFTzFWQlFWRXNVMEZCVXl4QlFVRnFRaXhCUVVOQk8zRkNRVUZ0UWl4dlFrRkJiMElzUVVGQmRrTXNRVUZGUVRzN1RVRkJTU3hKTEhsQ1FVRkJMRXNzUlVGQlNpeEJRVVZCT3p0UFFVRkxMRWxCUVVrc1FVRkJWQ3hIUVVGWkxFbEJRVWtzVFVGQlRTeEJRVUYwUWl4UlFVRTRRaXhMUVVGTExFRkJRVzVETEVkQlFYTkRMRUZCUTNCRE8xRkJRVWtzVFVGQlRTeEJRVUZPTEU5QlFXRXNRVUZCYWtJc1MwRkJjMElzUVVGRGNFSTdZVUZCVHl4cFFrRkJhVUlzUVVGQmFrSXNRVUZCVUN4QlFVTkVPMEZCUTBZN1FVRkZSRHM3VFVGQlNTeHRRaXg1UWtGQlFTeExMRVZCUVVvc1FVRkZRVHM3VFVGQlNTeHhRa0ZCY1VJc2QwSkJRWGRDTEVGQlFYaENMRXRCUVRaQ0xFRkJRVGRDTEVGQlFYcENMRTFCUVRSRUxFRkJRekZFTzFWQlFVMHNRVUZCVGl4TFFVRlhMRUZCUVZnc1FVRkRRVHQxUWtGQmJVSXNTVUZCU1N4QlFVRktMRTFCUVZVc1NVRkJTU3hCUVVGa0xFRkJRVzVDTEVGQlEwRTdjVUpCUVdsQ0xFRkJRV3BDTEV0QlFYTkNMRUZCUVhSQ0xFRkJRMEU3VTBGQlN5eEpRVUZKTEVGQlFWUXNSMEZCV1N4SlFVRkpMRWxCUVVrc1FVRkJjRUlzVVVGQk5FSXNTMEZCU3l4QlFVRnFReXhIUVVGdlF5eEJRVU5zUXp0MVFrRkJhVUlzUVVGQmFrSXNTMEZCYzBJc1lVRkJZU3hKUVVGSkxFRkJRVW9zUVVGQllpeEpRVUZ4UWl4QlFVRnlRaXhQUVVFMFFpeEJRVUUxUWl4QlFVRjBRaXhCUVVORU8wRkJRMFE3VlVGQlRTeEJRVUZPTEVGQlEwRTdjVUpCUVdsQ0xFRkJRV3BDTEVGQlEwRTdWMEZCVHl4QlFVRlFMRUZCUTBRN1FVRkZSRHM3VFVGQlNTeFBRVUZQTEVsQlFVa3NRVUZCWml4UlFVRjFRaXhCUVVOeVFqdFZRVUZOTEVsQlFVa3NRVUZCU2l4QlFVRk9MRUZCUTBRN1FVRkZSRHM3UVN4blEwRkJTU3hSTEhWQ1FVRlBMRUZCUVZBc05FTkJRVThzUVVGQlVDeFZRVUZsTEVGQlFXWXNXVUZCTWtJc1VVRkJVU3hCUVVGMlF5eE5RVUUyUXl4QlFVTXpRenRWUVVGTkxFRkJRVTRzUzBGQlZ5eEJRVUZZTEVGQlEwRTdkVUpCUVcxQ0xFRkJRVzVDTEVGQlEwRTdjVUpCUVdsQ0xFRkJRV3BDTEV0QlFYTkNMRUZCUVhSQ0xFRkJRMEU3VVVGQlNTeGhRVUZoTEVGQlFXcENPMUZCUTBrc1RTeDVRa0ZCUVN4TExFVkJSRW9zUVVGRlFUdFRRVUZMTEVGQlFVd3NUMEZCV1N4QlFVRmFMRXRCUVdsQ08wRkJSV1k3VlVGQlNTeEpRVUZKTEVGQlFVb3NaVUZCYlVJc1FVRkJia0lzUVVGQlNpeE5RVUUyUWl4QlFVTXpRanR0UWtGQlZ5eEJRVUZZTEV0QlFXZENMRUZCUVdoQ0xFRkJRMFE3UVVGRFJqdEJRVU5FTzJWQlFWY3NRVUZCV0N4QlFVTkJPMU5CUVVzc1NVRkJTU3hCUVVGVUxFZEJRVmtzU1VGQlNTeFhRVUZYTEVGQlFUTkNMRkZCUVcxRExFdEJRVXNzUVVGQmVFTXNSMEZCTWtNc1FVRkRla003V1VGQlRTeFhRVUZYTEVGQlFWZ3NRVUZCVGl4QlFVTkJPM1ZDUVVGcFFpeEJRVUZxUWl4UFFVRjNRaXhoUVVGaExFbEJRVWtzUVVGQlNpeEJRVUZpTEUxQlFYVkNMRUZCUVhaQ0xFOUJRVGhDTEVGQlFUbENMRUZCUVhoQ0xFRkJRMFE3UVVGRFJEdFZRVUZOTEVGQlFVNHNRVUZEUVR0eFFrRkJhVUlzUVVGQmFrSXNRVUZEUkR0QlFXNUNSQ3hUUVcxQ1R5eEJRVU5NTzNWQ1FVRnRRaXhCUVVGdVFpeEJRVU5FTzBGQlEwUTdVMEZCVHl4QlFVRlFMRUZCUTBRaUxDSm1hV3hsSWpvaWFuTnZiaTVxY3lJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCRWFXWm1JR1p5YjIwZ0p5NHZZbUZ6WlNjN1hHNXBiWEJ2Y25RZ2UyeHBibVZFYVdabWZTQm1jbTl0SUNjdUwyeHBibVVuTzF4dVhHNWpiMjV6ZENCdlltcGxZM1JRY205MGIzUjVjR1ZVYjFOMGNtbHVaeUE5SUU5aWFtVmpkQzV3Y205MGIzUjVjR1V1ZEc5VGRISnBibWM3WEc1Y2JseHVaWGh3YjNKMElHTnZibk4wSUdwemIyNUVhV1ptSUQwZ2JtVjNJRVJwWm1Zb0tUdGNiaTh2SUVScGMyTnlhVzFwYm1GMFpTQmlaWFIzWldWdUlIUjNieUJzYVc1bGN5QnZaaUJ3Y21WMGRIa3RjSEpwYm5SbFpDd2djMlZ5YVdGc2FYcGxaQ0JLVTA5T0lIZG9aWEpsSUc5dVpTQnZaaUIwYUdWdElHaGhjeUJoWEc0dkx5QmtZVzVuYkdsdVp5QmpiMjF0WVNCaGJtUWdkR2hsSUc5MGFHVnlJR1J2WlhOdUozUXVJRlIxY201eklHOTFkQ0JwYm1Oc2RXUnBibWNnZEdobElHUmhibWRzYVc1bklHTnZiVzFoSUhscFpXeGtjeUIwYUdVZ2JtbGpaWE4wSUc5MWRIQjFkRHBjYm1wemIyNUVhV1ptTG5WelpVeHZibWRsYzNSVWIydGxiaUE5SUhSeWRXVTdYRzVjYm1wemIyNUVhV1ptTG5SdmEyVnVhWHBsSUQwZ2JHbHVaVVJwWm1ZdWRHOXJaVzVwZW1VN1hHNXFjMjl1UkdsbVppNWpZWE4wU1c1d2RYUWdQU0JtZFc1amRHbHZiaWgyWVd4MVpTa2dlMXh1SUNCeVpYUjFjbTRnZEhsd1pXOW1JSFpoYkhWbElEMDlQU0FuYzNSeWFXNW5KeUEvSUhaaGJIVmxJRG9nU2xOUFRpNXpkSEpwYm1kcFpua29ZMkZ1YjI1cFkyRnNhWHBsS0haaGJIVmxLU3dnZFc1a1pXWnBibVZrTENBbklDQW5LVHRjYm4wN1hHNXFjMjl1UkdsbVppNWxjWFZoYkhNZ1BTQm1kVzVqZEdsdmJpaHNaV1owTENCeWFXZG9kQ2tnZTF4dUlDQnlaWFIxY200Z1JHbG1aaTV3Y205MGIzUjVjR1V1WlhGMVlXeHpLR3hsWm5RdWNtVndiR0ZqWlNndkxDaGJYRnh5WEZ4dVhTa3ZaeXdnSnlReEp5a3NJSEpwWjJoMExuSmxjR3hoWTJVb0x5d29XMXhjY2x4Y2JsMHBMMmNzSUNja01TY3BLVHRjYm4wN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV1ptU25OdmJpaHZiR1JQWW1vc0lHNWxkMDlpYWl3Z1kyRnNiR0poWTJzcElIc2djbVYwZFhKdUlHcHpiMjVFYVdabUxtUnBabVlvYjJ4a1QySnFMQ0J1WlhkUFltb3NJR05oYkd4aVlXTnJLVHNnZlZ4dVhHNWNiaTh2SUZSb2FYTWdablZ1WTNScGIyNGdhR0Z1Wkd4bGN5QjBhR1VnY0hKbGMyVnVZMlVnYjJZZ1kybHlZM1ZzWVhJZ2NtVm1aWEpsYm1ObGN5QmllU0JpWVdsc2FXNW5JRzkxZENCM2FHVnVJR1Z1WTI5MWJuUmxjbWx1WnlCaGJseHVMeThnYjJKcVpXTjBJSFJvWVhRZ2FYTWdZV3h5WldGa2VTQnZiaUIwYUdVZ1hDSnpkR0ZqYTF3aUlHOW1JR2wwWlcxeklHSmxhVzVuSUhCeWIyTmxjM05sWkM1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCallXNXZibWxqWVd4cGVtVW9iMkpxTENCemRHRmpheXdnY21Wd2JHRmpaVzFsYm5SVGRHRmpheWtnZTF4dUlDQnpkR0ZqYXlBOUlITjBZV05ySUh4OElGdGRPMXh1SUNCeVpYQnNZV05sYldWdWRGTjBZV05ySUQwZ2NtVndiR0ZqWlcxbGJuUlRkR0ZqYXlCOGZDQmJYVHRjYmx4dUlDQnNaWFFnYVR0Y2JseHVJQ0JtYjNJZ0tHa2dQU0F3T3lCcElEd2djM1JoWTJzdWJHVnVaM1JvT3lCcElDczlJREVwSUh0Y2JpQWdJQ0JwWmlBb2MzUmhZMnRiYVYwZ1BUMDlJRzlpYWlrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGNHeGhZMlZ0Wlc1MFUzUmhZMnRiYVYwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2JHVjBJR05oYm05dWFXTmhiR2w2WldSUFltbzdYRzVjYmlBZ2FXWWdLQ2RiYjJKcVpXTjBJRUZ5Y21GNVhTY2dQVDA5SUc5aWFtVmpkRkJ5YjNSdmRIbHdaVlJ2VTNSeWFXNW5MbU5oYkd3b2IySnFLU2tnZTF4dUlDQWdJSE4wWVdOckxuQjFjMmdvYjJKcUtUdGNiaUFnSUNCallXNXZibWxqWVd4cGVtVmtUMkpxSUQwZ2JtVjNJRUZ5Y21GNUtHOWlhaTVzWlc1bmRHZ3BPMXh1SUNBZ0lISmxjR3hoWTJWdFpXNTBVM1JoWTJzdWNIVnphQ2hqWVc1dmJtbGpZV3hwZW1Wa1QySnFLVHRjYmlBZ0lDQm1iM0lnS0drZ1BTQXdPeUJwSUR3Z2IySnFMbXhsYm1kMGFEc2dhU0FyUFNBeEtTQjdYRzRnSUNBZ0lDQmpZVzV2Ym1sallXeHBlbVZrVDJKcVcybGRJRDBnWTJGdWIyNXBZMkZzYVhwbEtHOWlhbHRwWFN3Z2MzUmhZMnNzSUhKbGNHeGhZMlZ0Wlc1MFUzUmhZMnNwTzF4dUlDQWdJSDFjYmlBZ0lDQnpkR0ZqYXk1d2IzQW9LVHRjYmlBZ0lDQnlaWEJzWVdObGJXVnVkRk4wWVdOckxuQnZjQ2dwTzF4dUlDQWdJSEpsZEhWeWJpQmpZVzV2Ym1sallXeHBlbVZrVDJKcU8xeHVJQ0I5WEc1Y2JpQWdhV1lnS0c5aWFpQW1KaUJ2WW1vdWRHOUtVMDlPS1NCN1hHNGdJQ0FnYjJKcUlEMGdiMkpxTG5SdlNsTlBUaWdwTzF4dUlDQjlYRzVjYmlBZ2FXWWdLSFI1Y0dWdlppQnZZbW9nUFQwOUlDZHZZbXBsWTNRbklDWW1JRzlpYWlBaFBUMGdiblZzYkNrZ2UxeHVJQ0FnSUhOMFlXTnJMbkIxYzJnb2IySnFLVHRjYmlBZ0lDQmpZVzV2Ym1sallXeHBlbVZrVDJKcUlEMGdlMzA3WEc0Z0lDQWdjbVZ3YkdGalpXMWxiblJUZEdGamF5NXdkWE5vS0dOaGJtOXVhV05oYkdsNlpXUlBZbW9wTzF4dUlDQWdJR3hsZENCemIzSjBaV1JMWlhseklEMGdXMTBzWEc0Z0lDQWdJQ0FnSUd0bGVUdGNiaUFnSUNCbWIzSWdLR3RsZVNCcGJpQnZZbW9wSUh0Y2JpQWdJQ0FnSUM4cUlHbHpkR0Z1WW5Wc0lHbG5ibTl5WlNCbGJITmxJQ292WEc0Z0lDQWdJQ0JwWmlBb2IySnFMbWhoYzA5M2JsQnliM0JsY25SNUtHdGxlU2twSUh0Y2JpQWdJQ0FnSUNBZ2MyOXlkR1ZrUzJWNWN5NXdkWE5vS0d0bGVTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhOdmNuUmxaRXRsZVhNdWMyOXlkQ2dwTzF4dUlDQWdJR1p2Y2lBb2FTQTlJREE3SUdrZ1BDQnpiM0owWldSTFpYbHpMbXhsYm1kMGFEc2dhU0FyUFNBeEtTQjdYRzRnSUNBZ0lDQnJaWGtnUFNCemIzSjBaV1JMWlhselcybGRPMXh1SUNBZ0lDQWdZMkZ1YjI1cFkyRnNhWHBsWkU5aWFsdHJaWGxkSUQwZ1kyRnViMjVwWTJGc2FYcGxLRzlpYWx0clpYbGRMQ0J6ZEdGamF5d2djbVZ3YkdGalpXMWxiblJUZEdGamF5azdYRzRnSUNBZ2ZWeHVJQ0FnSUhOMFlXTnJMbkJ2Y0NncE8xeHVJQ0FnSUhKbGNHeGhZMlZ0Wlc1MFUzUmhZMnN1Y0c5d0tDazdYRzRnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdZMkZ1YjI1cFkyRnNhWHBsWkU5aWFpQTlJRzlpYWp0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWTJGdWIyNXBZMkZzYVhwbFpFOWlhanRjYm4xY2JpSmRmUT09XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2RpZmYvbGliL2RpZmYvanNvbi5qc1xuLy8gbW9kdWxlIGlkID0gMjU3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 258 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports. /*istanbul ignore end*/applyPatch = applyPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches;\n\nvar /*istanbul ignore start*/_parse = __webpack_require__(259) /*istanbul ignore end*/;\n\nvar /*istanbul ignore start*/_distanceIterator = __webpack_require__(260) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nvar _distanceIterator2 = _interopRequireDefault(_distanceIterator);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { 'default': obj };\n}\n\n/*istanbul ignore end*/function applyPatch(source, uniDiff) {\n /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n if (typeof uniDiff === 'string') {\n uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch /*istanbul ignore end*/)(uniDiff);\n }\n\n if (Array.isArray(uniDiff)) {\n if (uniDiff.length > 1) {\n throw new Error('applyPatch only works with a single input.');\n }\n\n uniDiff = uniDiff[0];\n }\n\n // Apply the diff to the input\n var lines = source.split('\\n'),\n hunks = uniDiff.hunks,\n compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{\n return (/*istanbul ignore end*/line === patchContent\n );\n },\n errorCount = 0,\n fuzzFactor = options.fuzzFactor || 0,\n minLine = 0,\n offset = 0,\n removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/\n ,\n addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;\n\n /**\n * Checks if the hunk exactly fits on the provided location\n */\n function hunkFits(hunk, toPos) {\n for (var j = 0; j < hunk.lines.length; j++) {\n var line = hunk.lines[j],\n operation = line[0],\n content = line.substr(1);\n\n if (operation === ' ' || operation === '-') {\n // Context sanity check\n if (!compareLine(toPos + 1, lines[toPos], operation, content)) {\n errorCount++;\n\n if (errorCount > fuzzFactor) {\n return false;\n }\n }\n toPos++;\n }\n }\n\n return true;\n }\n\n // Search best fit offsets for each hunk based on the previous ones\n for (var i = 0; i < hunks.length; i++) {\n var hunk = hunks[i],\n maxLine = lines.length - hunk.oldLines,\n localOffset = 0,\n toPos = offset + hunk.oldStart - 1;\n\n var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default'] /*istanbul ignore end*/)(toPos, minLine, maxLine);\n\n for (; localOffset !== undefined; localOffset = iterator()) {\n if (hunkFits(hunk, toPos + localOffset)) {\n hunk.offset = offset += localOffset;\n break;\n }\n }\n\n if (localOffset === undefined) {\n return false;\n }\n\n // Set lower text limit to end of the current hunk, so next ones don't try\n // to fit over already patched text\n minLine = hunk.offset + hunk.oldStart + hunk.oldLines;\n }\n\n // Apply patch hunks\n for (var _i = 0; _i < hunks.length; _i++) {\n var _hunk = hunks[_i],\n _toPos = _hunk.offset + _hunk.newStart - 1;\n if (_hunk.newLines == 0) {\n _toPos++;\n }\n\n for (var j = 0; j < _hunk.lines.length; j++) {\n var line = _hunk.lines[j],\n operation = line[0],\n content = line.substr(1);\n\n if (operation === ' ') {\n _toPos++;\n } else if (operation === '-') {\n lines.splice(_toPos, 1);\n /* istanbul ignore else */\n } else if (operation === '+') {\n lines.splice(_toPos, 0, content);\n _toPos++;\n } else if (operation === '\\\\') {\n var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;\n if (previousOperation === '+') {\n removeEOFNL = true;\n } else if (previousOperation === '-') {\n addEOFNL = true;\n }\n }\n }\n }\n\n // Handle EOFNL insertion/removal\n if (removeEOFNL) {\n while (!lines[lines.length - 1]) {\n lines.pop();\n }\n } else if (addEOFNL) {\n lines.push('');\n }\n return lines.join('\\n');\n}\n\n// Wrapper that supports multiple file patches via callbacks.\nfunction applyPatches(uniDiff, options) {\n if (typeof uniDiff === 'string') {\n uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch /*istanbul ignore end*/)(uniDiff);\n }\n\n var currentIndex = 0;\n function processIndex() {\n var index = uniDiff[currentIndex++];\n if (!index) {\n return options.complete();\n }\n\n options.loadFile(index, function (err, data) {\n if (err) {\n return options.complete(err);\n }\n\n var updatedContent = applyPatch(data, index, options);\n options.patched(index, updatedContent, function (err) {\n if (err) {\n return options.complete(err);\n }\n\n processIndex();\n });\n });\n }\n processIndex();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBR2dCLEEsYSxBQUFBO3lELEFBc0hBLGVBQUEsQTs7QUF6SGhCLEkseUJBQUEsaUIsV0FBQTs7QUFDQSxJLHlCQUFBLDRCLDZCQUFBOzs7Ozs7Ozs7dUJBRU8sU0FBQSxBQUFTLFdBQVQsQUFBb0IsUUFBcEIsQUFBNEIsU0FBdUI7MkJBQUEsSSx1QkFBZCxBQUFjLGdFQUFKLEFBQUksZUFDeEQ7O01BQUksT0FBQSxBQUFPLFlBQVgsQUFBdUIsVUFBVSxBQUMvQjtjLHlCQUFVLFcsV0FBQSx5QkFBVixBQUFVLEFBQVcsQUFDdEI7QUFFRDs7TUFBSSxNQUFBLEFBQU0sUUFBVixBQUFJLEFBQWMsVUFBVSxBQUMxQjtRQUFJLFFBQUEsQUFBUSxTQUFaLEFBQXFCLEdBQUcsQUFDdEI7WUFBTSxJQUFBLEFBQUksTUFBVixBQUFNLEFBQVUsQUFDakI7QUFFRDs7Y0FBVSxRQUFWLEFBQVUsQUFBUSxBQUNuQjs7O0FBR0Q7TUFBSSxRQUFRLE9BQUEsQUFBTyxNQUFuQixBQUFZLEFBQWE7TUFDckIsUUFBUSxRQURaLEFBQ29CO01BRWhCLGNBQWMsUUFBQSxBQUFRLGVBQWdCLFVBQUEsQUFBQyxZQUFELEFBQWEsTUFBYixBQUFtQixXQUFuQixBQUE4QixjLHlCQUE5QjtBLG1DQUErQyxTQUEvQyxBQUF3RDs7QUFIbEc7TUFJSSxhQUpKLEFBSWlCO01BQ2IsYUFBYSxRQUFBLEFBQVEsY0FMekIsQUFLdUM7TUFDbkMsVUFOSixBQU1jO01BQ1YsU0FQSixBQU9hO01BRVQsYyx5QkFBQSxLLEVBVEo7O01BVUksVyx5QkFBQSxLLEVBVko7O0FBZUE7OztXQUFBLEFBQVMsU0FBVCxBQUFrQixNQUFsQixBQUF3QixPQUFPLEFBQzdCO1NBQUssSUFBSSxJQUFULEFBQWEsR0FBRyxJQUFJLEtBQUEsQUFBSyxNQUF6QixBQUErQixRQUEvQixBQUF1QyxLQUFLLEFBQzFDO1VBQUksT0FB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QUFBTSxLQUFOLEFBQVcsQUFDWjtBQUNEO1NBQU8sTUFBQSxBQUFNLEtBQWIsQUFBTyxBQUFXLEFBQ25COzs7O0FBR00sU0FBQSxBQUFTLGFBQVQsQUFBc0IsU0FBdEIsQUFBK0IsU0FBUyxBQUM3QztNQUFJLE9BQUEsQUFBTyxZQUFYLEFBQXVCLFVBQVUsQUFDL0I7Yyx5QkFBVSxXLFdBQUEseUJBQVYsQUFBVSxBQUFXLEFBQ3RCO0FBRUQ7O01BQUksZUFBSixBQUFtQixBQUNuQjtXQUFBLEFBQVMsZUFBZSxBQUN0QjtRQUFJLFFBQVEsUUFBWixBQUFZLEFBQVEsQUFDcEI7UUFBSSxDQUFKLEFBQUssT0FBTyxBQUNWO2FBQU8sUUFBUCxBQUFPLEFBQVEsQUFDaEI7QUFFRDs7WUFBQSxBQUFRLFNBQVIsQUFBaUIsT0FBTyxVQUFBLEFBQVMsS0FBVCxBQUFjLE1BQU0sQUFDMUM7VUFBQSxBQUFJLEtBQUssQUFDUDtlQUFPLFFBQUEsQUFBUSxTQUFmLEFBQU8sQUFBaUIsQUFDekI7QUFFRDs7VUFBSSxpQkFBaUIsV0FBQSxBQUFXLE1BQVgsQUFBaUIsT0FBdEMsQUFBcUIsQUFBd0IsQUFDN0M7Y0FBQSxBQUFRLFFBQVIsQUFBZ0IsT0FBaEIsQUFBdUIsZ0JBQWdCLFVBQUEsQUFBUyxLQUFLLEFBQ25EO1lBQUEsQUFBSSxLQUFLLEFBQ1A7aUJBQU8sUUFBQSxBQUFRLFNBQWYsQUFBTyxBQUFpQixBQUN6QjtBQUVEOztBQUNEO0FBTkQsQUFPRDtBQWJELEFBY0Q7QUFDRDtBQUNEIiwiZmlsZSI6ImFwcGx5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcbmltcG9ydCBkaXN0YW5jZUl0ZXJhdG9yIGZyb20gJy4uL3V0aWwvZGlzdGFuY2UtaXRlcmF0b3InO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQYXRjaChzb3VyY2UsIHVuaURpZmYsIG9wdGlvbnMgPSB7fSkge1xuICBpZiAodHlwZW9mIHVuaURpZmYgPT09ICdzdHJpbmcnKSB7XG4gICAgdW5pRGlmZiA9IHBhcnNlUGF0Y2godW5pRGlmZik7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh1bmlEaWZmKSkge1xuICAgIGlmICh1bmlEaWZmLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXBwbHlQYXRjaCBvbmx5IHdvcmtzIHdpdGggYSBzaW5nbGUgaW5wdXQuJyk7XG4gICAgfVxuXG4gICAgdW5pRGlmZiA9IHVuaURpZmZbMF07XG4gIH1cblxuICAvLyBBcHBseSB0aGUgZGlmZiB0byB0aGUgaW5wdXRcbiAgbGV0IGxpbmVzID0gc291cmNlLnNwbGl0KCdcXG4nKSxcbiAgICAgIGh1bmtzID0gdW5pRGlmZi5odW5rcyxcblxuICAgICAgY29tcGFyZUxpbmUgPSBvcHRpb25zLmNvbXBhcmVMaW5lIHx8ICgobGluZU51bWJlciwgbGluZSwgb3BlcmF0aW9uLCBwYXRjaENvbnRlbnQpID0+IGxpbmUgPT09IHBhdGNoQ29udGVudCksXG4gICAgICBlcnJvckNvdW50ID0gMCxcbiAgICAgIGZ1enpGYWN0b3IgPSBvcHRpb25zLmZ1enpGYWN0b3IgfHwgMCxcbiAgICAgIG1pbkxpbmUgPSAwLFxuICAgICAgb2Zmc2V0ID0gMCxcblxuICAgICAgcmVtb3ZlRU9GTkwsXG4gICAgICBhZGRFT0ZOTDtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBodW5rIGV4YWN0bHkgZml0cyBvbiB0aGUgcHJvdmlkZWQgbG9jYXRpb25cbiAgICovXG4gIGZ1bmN0aW9uIGh1bmtGaXRzKGh1bmssIHRvUG9zKSB7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBodW5rLmxpbmVzLmxlbmd0aDsgaisrKSB7XG4gICAgICBsZXQgbGluZSA9IGh1bmsubGluZXNbal0sXG4gICAgICAgICAgb3BlcmF0aW9uID0gbGluZVswXSxcbiAgICAgICAgICBjb250ZW50ID0gbGluZS5zdWJzdHIoMSk7XG5cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICcgJyB8fCBvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAvLyBDb250ZXh0IHNhbml0eSBjaGVja1xuICAgICAgICBpZiAoIWNvbXBhcmVMaW5lKHRvUG9zICsgMSwgbGluZXNbdG9Qb3NdLCBvcGVyYXRpb24sIGNvbnRlbnQpKSB7XG4gICAgICAgICAgZXJyb3JDb3VudCsrO1xuXG4gICAgICAgICAgaWYgKGVycm9yQ291bnQgPiBmdXp6RmFjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBTZWFyY2ggYmVzdCBmaXQgb2Zmc2V0cyBmb3IgZWFjaCBodW5rIGJhc2VkIG9uIHRoZSBwcmV2aW91cyBvbmVzXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgaHVuayA9IGh1bmtzW2ldLFxuICAgICAgICBtYXhMaW5lID0gbGluZXMubGVuZ3RoIC0gaHVuay5vbGRMaW5lcyxcbiAgICAgICAgbG9jYWxPZmZzZXQgPSAwLFxuICAgICAgICB0b1BvcyA9IG9mZnNldCArIGh1bmsub2xkU3RhcnQgLSAxO1xuXG4gICAgbGV0IGl0ZXJhdG9yID0gZGlzdGFuY2VJdGVyYXRvcih0b1BvcywgbWluTGluZSwgbWF4TGluZSk7XG5cbiAgICBmb3IgKDsgbG9jYWxPZmZzZXQgIT09IHVuZGVmaW5lZDsgbG9jYWxPZmZzZXQgPSBpdGVyYXRvcigpKSB7XG4gICAgICBpZiAoaHVua0ZpdHMoaHVuaywgdG9Qb3MgKyBsb2NhbE9mZnNldCkpIHtcbiAgICAgICAgaHVuay5vZmZzZXQgPSBvZmZzZXQgKz0gbG9jYWxPZmZzZXQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChsb2NhbE9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU2V0IGxvd2VyIHRleHQgbGltaXQgdG8gZW5kIG9mIHRoZSBjdXJyZW50IGh1bmssIHNvIG5leHQgb25lcyBkb24ndCB0cnlcbiAgICAvLyB0byBmaXQgb3ZlciBhbHJlYWR5IHBhdGNoZWQgdGV4dFxuICAgIG1pbkxpbmUgPSBodW5rLm9mZnNldCArIGh1bmsub2xkU3RhcnQgKyBodW5rLm9sZExpbmVzO1xuICB9XG5cbiAgLy8gQXBwbHkgcGF0Y2ggaHVua3NcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vZmZzZXQgKyBodW5rLm5ld1N0YXJ0IC0gMTtcbiAgICBpZiAoaHVuay5uZXdMaW5lcyA9PSAwKSB7IHRvUG9zKys7IH1cblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IGxpbmVbMF0sXG4gICAgICAgICAgY29udGVudCA9IGxpbmUuc3Vic3RyKDEpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgdG9Qb3MrKztcbiAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgbGluZXMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJ1xcXFwnKSB7XG4gICAgICAgIGxldCBwcmV2aW91c09wZXJhdGlvbiA9IGh1bmsubGluZXNbaiAtIDFdID8gaHVuay5saW5lc1tqIC0gMV1bMF0gOiBudWxsO1xuICAgICAgICBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICcrJykge1xuICAgICAgICAgIHJlbW92ZUVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c09wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgICAgYWRkRU9GTkwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIEVPRk5MIGluc2VydGlvbi9yZW1vdmFsXG4gIGlmIChyZW1vdmVFT0ZOTCkge1xuICAgIHdoaWxlICghbGluZXNbbGluZXMubGVuZ3RoIC0gMV0pIHtcbiAgICAgIGxpbmVzLnBvcCgpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChhZGRFT0ZOTCkge1xuICAgIGxpbmVzLnB1c2goJycpO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL3BhdGNoL2FwcGx5LmpzP2Y5MjIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQSx3SEFBd0g7O0FBRXhIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix1QkFBdUI7QUFDMUM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUIsa0JBQWtCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLFVBQVUsMkJBQTJCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esa0JBQWtCLG1CQUFtQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1CQUFtQix3QkFBd0I7QUFDM0M7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2FwcGx5UGF0Y2ggPSBhcHBseVBhdGNoO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovYXBwbHlQYXRjaGVzID0gYXBwbHlQYXRjaGVzO1xuXG52YXIgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19wYXJzZSA9IHJlcXVpcmUoJy4vcGFyc2UnKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fZGlzdGFuY2VJdGVyYXRvciA9IHJlcXVpcmUoJy4uL3V0aWwvZGlzdGFuY2UtaXRlcmF0b3InKSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xudmFyIF9kaXN0YW5jZUl0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Rpc3RhbmNlSXRlcmF0b3IpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikge1xuICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9O1xufVxuXG4vKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2Z1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmKSB7XG4gIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki92YXIgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9vcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMl07XG5cbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovKDAsIF9wYXJzZS5wYXJzZVBhdGNoIC8qaXN0YW5idWwgaWdub3JlIGVuZCovKSh1bmlEaWZmKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHVuaURpZmYpKSB7XG4gICAgaWYgKHVuaURpZmYubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhcHBseVBhdGNoIG9ubHkgd29ya3Mgd2l0aCBhIHNpbmdsZSBpbnB1dC4nKTtcbiAgICB9XG5cbiAgICB1bmlEaWZmID0gdW5pRGlmZlswXTtcbiAgfVxuXG4gIC8vIEFwcGx5IHRoZSBkaWZmIHRvIHRoZSBpbnB1dFxuICB2YXIgbGluZXMgPSBzb3VyY2Uuc3BsaXQoJ1xcbicpLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuICAgICAgY29tcGFyZUxpbmUgPSBvcHRpb25zLmNvbXBhcmVMaW5lIHx8IGZ1bmN0aW9uIChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL3tcbiAgICByZXR1cm4gKC8qaXN0YW5idWwgaWdub3JlIGVuZCovbGluZSA9PT0gcGF0Y2hDb250ZW50XG4gICAgKTtcbiAgfSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuICAgICAgcmVtb3ZlRU9GTkwgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovdm9pZCAwIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICxcbiAgICAgIGFkZEVPRk5MID0gLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL3ZvaWQgMCAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLztcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBodW5rIGV4YWN0bHkgZml0cyBvbiB0aGUgcHJvdmlkZWQgbG9jYXRpb25cbiAgICovXG4gIGZ1bmN0aW9uIGh1bmtGaXRzKGh1bmssIHRvUG9zKSB7XG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBodW5rLmxpbmVzLmxlbmd0aDsgaisrKSB7XG4gICAgICB2YXIgbGluZSA9IGh1bmsubGluZXNbal0sXG4gICAgICAgICAgb3BlcmF0aW9uID0gbGluZVswXSxcbiAgICAgICAgICBjb250ZW50ID0gbGluZS5zdWJzdHIoMSk7XG5cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICcgJyB8fCBvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAvLyBDb250ZXh0IHNhbml0eSBjaGVja1xuICAgICAgICBpZiAoIWNvbXBhcmVMaW5lKHRvUG9zICsgMSwgbGluZXNbdG9Qb3NdLCBvcGVyYXRpb24sIGNvbnRlbnQpKSB7XG4gICAgICAgICAgZXJyb3JDb3VudCsrO1xuXG4gICAgICAgICAgaWYgKGVycm9yQ291bnQgPiBmdXp6RmFjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBTZWFyY2ggYmVzdCBmaXQgb2Zmc2V0cyBmb3IgZWFjaCBodW5rIGJhc2VkIG9uIHRoZSBwcmV2aW91cyBvbmVzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaHVuayA9IGh1bmtzW2ldLFxuICAgICAgICBtYXhMaW5lID0gbGluZXMubGVuZ3RoIC0gaHVuay5vbGRMaW5lcyxcbiAgICAgICAgbG9jYWxPZmZzZXQgPSAwLFxuICAgICAgICB0b1BvcyA9IG9mZnNldCArIGh1bmsub2xkU3RhcnQgLSAxO1xuXG4gICAgdmFyIGl0ZXJhdG9yID0gLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLygwLCBfZGlzdGFuY2VJdGVyYXRvcjJbJ2RlZmF1bHQnXSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLykodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGZvciAodmFyIF9pID0gMDsgX2kgPCBodW5rcy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgX2h1bmsgPSBodW5rc1tfaV0sXG4gICAgICAgIF90b1BvcyA9IF9odW5rLm9mZnNldCArIF9odW5rLm5ld1N0YXJ0IC0gMTtcbiAgICBpZiAoX2h1bmsubmV3TGluZXMgPT0gMCkge1xuICAgICAgX3RvUG9zKys7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBfaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgdmFyIGxpbmUgPSBfaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSBsaW5lWzBdLFxuICAgICAgICAgIGNvbnRlbnQgPSBsaW5lLnN1YnN0cigxKTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIF90b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICBsaW5lcy5zcGxpY2UoX3RvUG9zLCAxKTtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgbGluZXMuc3BsaWNlKF90b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIF90b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICB2YXIgcHJldmlvdXNPcGVyYXRpb24gPSBfaHVuay5saW5lc1tqIC0gMV0gPyBfaHVuay5saW5lc1tqIC0gMV1bMF0gOiBudWxsO1xuICAgICAgICBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICcrJykge1xuICAgICAgICAgIHJlbW92ZUVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c09wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgICAgYWRkRU9GTkwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIEVPRk5MIGluc2VydGlvbi9yZW1vdmFsXG4gIGlmIChyZW1vdmVFT0ZOTCkge1xuICAgIHdoaWxlICghbGluZXNbbGluZXMubGVuZ3RoIC0gMV0pIHtcbiAgICAgIGxpbmVzLnBvcCgpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChhZGRFT0ZOTCkge1xuICAgIGxpbmVzLnB1c2goJycpO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZnVuY3Rpb24gYXBwbHlQYXRjaGVzKHVuaURpZmYsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovKDAsIF9wYXJzZS5wYXJzZVBhdGNoIC8qaXN0YW5idWwgaWdub3JlIGVuZCovKSh1bmlEaWZmKTtcbiAgfVxuXG4gIHZhciBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgdmFyIGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbiAoZXJyLCBkYXRhKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICB9XG5cbiAgICAgIHZhciB1cGRhdGVkQ29udGVudCA9IGFwcGx5UGF0Y2goZGF0YSwgaW5kZXgsIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5wYXRjaGVkKGluZGV4LCB1cGRhdGVkQ29udGVudCwgZnVuY3Rpb24gKGVycikge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb2Nlc3NJbmRleCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgcHJvY2Vzc0luZGV4KCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5d1lYUmphQzloY0hCc2VTNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3WjBOQlIyZENMRUVzWVN4QlFVRkJPM2xFTEVGQmMwaEJMR1ZCUVVFc1FUczdRVUY2U0doQ0xFa3NlVUpCUVVFc2FVSXNWMEZCUVRzN1FVRkRRU3hKTEhsQ1FVRkJMRFJDTERaQ1FVRkJPenM3T3pzN096czdkVUpCUlU4c1UwRkJRU3hCUVVGVExGZEJRVlFzUVVGQmIwSXNVVUZCY0VJc1FVRkJORUlzVTBGQmRVSTdNa0pCUVVFc1NTeDFRa0ZCWkN4QlFVRmpMR2RGUVVGS0xFRkJRVWtzWlVGRGVFUTdPMDFCUVVrc1QwRkJRU3hCUVVGUExGbEJRVmdzUVVGQmRVSXNWVUZCVlN4QlFVTXZRanRqTEhsQ1FVRlZMRmNzVjBGQlFTeDVRa0ZCVml4QlFVRlZMRUZCUVZjc1FVRkRkRUk3UVVGRlJEczdUVUZCU1N4TlFVRkJMRUZCUVUwc1VVRkJWaXhCUVVGSkxFRkJRV01zVlVGQlZTeEJRVU14UWp0UlFVRkpMRkZCUVVFc1FVRkJVU3hUUVVGYUxFRkJRWEZDTEVkQlFVY3NRVUZEZEVJN1dVRkJUU3hKUVVGQkxFRkJRVWtzVFVGQlZpeEJRVUZOTEVGQlFWVXNRVUZEYWtJN1FVRkZSRHM3WTBGQlZTeFJRVUZXTEVGQlFWVXNRVUZCVVN4QlFVTnVRanM3TzBGQlIwUTdUVUZCU1N4UlFVRlJMRTlCUVVFc1FVRkJUeXhOUVVGdVFpeEJRVUZaTEVGQlFXRTdUVUZEY2tJc1VVRkJVU3hSUVVSYUxFRkJRMjlDTzAxQlJXaENMR05CUVdNc1VVRkJRU3hCUVVGUkxHVkJRV2RDTEZWQlFVRXNRVUZCUXl4WlFVRkVMRUZCUVdFc1RVRkJZaXhCUVVGdFFpeFhRVUZ1UWl4QlFVRTRRaXhqTEhsQ1FVRTVRanRCTEcxRFFVRXJReXhUUVVFdlF5eEJRVUYzUkRzN1FVRkliRWM3VFVGSlNTeGhRVXBLTEVGQlNXbENPMDFCUTJJc1lVRkJZU3hSUVVGQkxFRkJRVkVzWTBGTWVrSXNRVUZMZFVNN1RVRkRia01zVlVGT1NpeEJRVTFqTzAxQlExWXNVMEZRU2l4QlFVOWhPMDFCUlZRc1l5eDVRa0ZCUVN4TExFVkJWRW83TzAxQlZVa3NWeXg1UWtGQlFTeExMRVZCVmtvN08wRkJaVUU3T3p0WFFVRkJMRUZCUVZNc1UwRkJWQ3hCUVVGclFpeE5RVUZzUWl4QlFVRjNRaXhQUVVGUExFRkJRemRDTzFOQlFVc3NTVUZCU1N4SlFVRlVMRUZCUVdFc1IwRkJSeXhKUVVGSkxFdEJRVUVzUVVGQlN5eE5RVUY2UWl4QlFVRXJRaXhSUVVFdlFpeEJRVUYxUXl4TFFVRkxMRUZCUXpGRE8xVkJRVWtzVDBGQlR5eExRVUZCTEVGQlFVc3NUVUZCYUVJc1FVRkJWeXhCUVVGWE8xVkJRMnhDTEZsQlFWa3NTMEZFYUVJc1FVRkRaMElzUVVGQlN6dFZRVU5xUWl4VlFVRlZMRXRCUVVFc1FVRkJTeXhQUVVadVFpeEJRVVZqTEVGQlFWa3NRVUZGTVVJN08xVkJRVWtzWTBGQlFTeEJRVUZqTEU5QlFVOHNZMEZCZWtJc1FVRkJkVU1zUzBGQlN6dEJRVVV4UXp0WlFVRkpMRU5CUVVNc1dVRkJXU3hSUVVGYUxFRkJRVzlDTEVkQlFVY3NUVUZCZGtJc1FVRkJkVUlzUVVGQlRTeFJRVUUzUWl4QlFVRnhReXhYUVVFeFF5eEJRVUZMTEVGQlFXZEVMRlZCUVZVc1FVRkROMFE3UVVGRlFUczdZMEZCU1N4aFFVRktMRUZCUVdsQ0xGbEJRVmtzUVVGRE0wSTdiVUpCUVVFc1FVRkJUeXhCUVVOU08wRkJRMFk3UVVGRFJEdEJRVU5FTzBGQlEwWTdRVUZGUkRzN1YwRkJRU3hCUVVGUExFRkJRMUk3T3p0QlFVZEVPMDlCUVVzc1NVRkJTU3hKUVVGVUxFRkJRV0VzUjBGQlJ5eEpRVUZKTEUxQlFYQkNMRUZCUVRCQ0xGRkJRVEZDTEVGQlFXdERMRXRCUVVzc1FVRkRja003VVVGQlNTeFBRVUZQTEUxQlFWZ3NRVUZCVnl4QlFVRk5PMUZCUTJJc1ZVRkJWU3hOUVVGQkxFRkJRVTBzVTBGQlV5eExRVVEzUWl4QlFVTnJRenRSUVVNNVFpeGpRVVpLTEVGQlJXdENPMUZCUTJRc1VVRkJVU3hUUVVGVExFdEJRVlFzUVVGQll5eFhRVWd4UWl4QlFVZHhReXhCUVVWeVF6czdVVUZCU1N4WExIbENRVUZYTEhWQ0xGZEJRVUVzZVVKQlFVRXNRVUZCYVVJc1QwRkJha0lzUVVGQmQwSXNVMEZCZGtNc1FVRkJaU3hCUVVGcFF5eEJRVVZvUkRzN1YwRkJUeXhuUWtGQlVDeEJRVUYxUWl4WFFVRlhMR05CUVd4RExFRkJRV2RFTEZsQlFWa3NRVUZETVVRN1ZVRkJTU3hUUVVGQkxFRkJRVk1zVFVGQlRTeFJRVUZ1UWl4QlFVRkpMRUZCUVhWQ0xHTkJRV01zUVVGRGRrTTdZVUZCUVN4QlFVRkxMRk5CUVZNc1ZVRkJaQ3hCUVVGM1FpeEJRVU40UWp0QlFVTkVPMEZCUTBZN1FVRkZSRHM3VVVGQlNTeG5Ra0ZCU2l4QlFVRnZRaXhYUVVGWExFRkJRemRDTzJGQlFVRXNRVUZCVHl4QlFVTlNPenM3TzBGQlNVUTdZMEZCVlN4TFFVRkJMRUZCUVVzc1UwRkJVeXhMUVVGa0xFRkJRVzFDTEZkQlFWY3NTMEZCZUVNc1FVRkJOa01zUVVGRE9VTTdPenRCUVVkRU8wOUJRVXNzU1VGQlNTeExRVUZVTEVGQlFXRXNSMEZCUnl4TFFVRkpMRTFCUVhCQ0xFRkJRVEJDTEZGQlFURkNMRUZCUVd0RExFMUJRVXNzUVVGRGNrTTdVVUZCU1N4UlFVRlBMRTFCUVZnc1FVRkJWeXhCUVVGTk8xRkJRMklzVTBGQlVTeE5RVUZCTEVGQlFVc3NVMEZCVXl4TlFVRmtMRUZCUVcxQ0xGZEJSQzlDTEVGQlF6QkRMRUZCUXpGRE8xRkJRVWtzVFVGQlFTeEJRVUZMTEZsQlFWUXNRVUZCY1VJc1IwRkJSeXhCUVVGRk8wRkJRVlU3UVVGRmNFTTdPMU5CUVVzc1NVRkJTU3hKUVVGVUxFRkJRV0VzUjBGQlJ5eEpRVUZKTEUxQlFVRXNRVUZCU3l4TlFVRjZRaXhCUVVFclFpeFJRVUV2UWl4QlFVRjFReXhMUVVGTExFRkJRekZETzFWQlFVa3NUMEZCVHl4TlFVRkJMRUZCUVVzc1RVRkJhRUlzUVVGQlZ5eEJRVUZYTzFWQlEyeENMRmxCUVZrc1MwRkVhRUlzUVVGRFowSXNRVUZCU3p0VlFVTnFRaXhWUVVGVkxFdEJRVUVzUVVGQlN5eFBRVVp1UWl4QlFVVmpMRUZCUVZrc1FVRkZNVUk3TzFWQlFVa3NZMEZCU2l4QlFVRnJRaXhMUVVGTExFRkJRM0pDTzBGQlEwUTdRVUZHUkN4cFFrRkZWeXhqUVVGS0xFRkJRV3RDTEV0QlFVc3NRVUZETlVJN1kwRkJRU3hCUVVGTkxFOUJRVTRzUVVGQllTeFJRVUZpTEVGQlFXOUNPMEZCUlhKQ08wRkJTRTBzVDBGQlFTeFZRVWRKTEdOQlFVb3NRVUZCYTBJc1MwRkJTeXhCUVVNMVFqdGpRVUZCTEVGQlFVMHNUMEZCVGl4QlFVRmhMRkZCUVdJc1FVRkJiMElzUjBGQmNFSXNRVUZCZFVJc1FVRkRka0k3UVVGRFJEdEJRVWhOTEU5QlFVRXNUVUZIUVN4SlFVRkpMR05CUVVvc1FVRkJhMElzVFVGQlRTeEJRVU0zUWp0WlFVRkpMRzlDUVVGdlFpeE5RVUZCTEVGQlFVc3NUVUZCVFN4SlFVRllMRUZCUVdVc1MwRkJTeXhOUVVGQkxFRkJRVXNzVFVGQlRTeEpRVUZZTEVGQlFXVXNSMEZCYmtNc1FVRkJiMElzUVVGQmEwSXNTMEZCT1VRc1FVRkJiVVVzUVVGRGJrVTdXVUZCU1N4elFrRkJTaXhCUVVFd1FpeExRVUZMTEVGQlF6ZENPM2RDUVVGQkxFRkJRV01zUVVGRFpqdEJRVVpFTEdWQlJVOHNTVUZCU1N4elFrRkJTaXhCUVVFd1FpeExRVUZMTEVGQlEzQkRPM0ZDUVVGQkxFRkJRVmNzUVVGRFdqdEJRVU5HTzBGQlEwWTdRVUZEUmpzN08wRkJSMFE3VFVGQlFTeEJRVUZKTEdGQlFXRXNRVUZEWmp0WFFVRlBMRU5CUVVNc1RVRkJUU3hOUVVGQkxFRkJRVTBzVTBGQmNFSXNRVUZCVVN4QlFVRnhRaXhKUVVGSkxFRkJReTlDTzFsQlFVRXNRVUZCVFN4QlFVTlFPMEZCUTBZN1FVRktSQ3hUUVVsUExFbEJRVUVzUVVGQlNTeFZRVUZWTEVGQlEyNUNPMVZCUVVFc1FVRkJUU3hMUVVGT0xFRkJRVmNzUVVGRFdqdEJRVU5FTzFOQlFVOHNUVUZCUVN4QlFVRk5MRXRCUVdJc1FVRkJUeXhCUVVGWExFRkJRMjVDT3pzN08wRkJSMDBzVTBGQlFTeEJRVUZUTEdGQlFWUXNRVUZCYzBJc1UwRkJkRUlzUVVGQkswSXNVMEZCVXl4QlFVTTNRenROUVVGSkxFOUJRVUVzUVVGQlR5eFpRVUZZTEVGQlFYVkNMRlZCUVZVc1FVRkRMMEk3WXl4NVFrRkJWU3hYTEZkQlFVRXNlVUpCUVZZc1FVRkJWU3hCUVVGWExFRkJRM1JDTzBGQlJVUTdPMDFCUVVrc1pVRkJTaXhCUVVGdFFpeEJRVU51UWp0WFFVRkJMRUZCUVZNc1pVRkJaU3hCUVVOMFFqdFJRVUZKTEZGQlFWRXNVVUZCV2l4QlFVRlpMRUZCUVZFc1FVRkRjRUk3VVVGQlNTeERRVUZLTEVGQlFVc3NUMEZCVHl4QlFVTldPMkZCUVU4c1VVRkJVQ3hCUVVGUExFRkJRVkVzUVVGRGFFSTdRVUZGUkRzN1dVRkJRU3hCUVVGUkxGTkJRVklzUVVGQmFVSXNUMEZCVHl4VlFVRkJMRUZCUVZNc1MwRkJWQ3hCUVVGakxFMUJRVTBzUVVGRE1VTTdWVUZCUVN4QlFVRkpMRXRCUVVzc1FVRkRVRHRsUVVGUExGRkJRVUVzUVVGQlVTeFRRVUZtTEVGQlFVOHNRVUZCYVVJc1FVRkRla0k3UVVGRlJEczdWVUZCU1N4cFFrRkJhVUlzVjBGQlFTeEJRVUZYTEUxQlFWZ3NRVUZCYVVJc1QwRkJkRU1zUVVGQmNVSXNRVUZCZDBJc1FVRkROME03WTBGQlFTeEJRVUZSTEZGQlFWSXNRVUZCWjBJc1QwRkJhRUlzUVVGQmRVSXNaMEpCUVdkQ0xGVkJRVUVzUVVGQlV5eExRVUZMTEVGQlEyNUVPMWxCUVVFc1FVRkJTU3hMUVVGTExFRkJRMUE3YVVKQlFVOHNVVUZCUVN4QlFVRlJMRk5CUVdZc1FVRkJUeXhCUVVGcFFpeEJRVU42UWp0QlFVVkVPenRCUVVORU8wRkJUa1FzUVVGUFJEdEJRV0pFTEVGQlkwUTdRVUZEUkR0QlFVTkVJaXdpWm1sc1pTSTZJbUZ3Y0d4NUxtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHR3WVhKelpWQmhkR05vZlNCbWNtOXRJQ2N1TDNCaGNuTmxKenRjYm1sdGNHOXlkQ0JrYVhOMFlXNWpaVWwwWlhKaGRHOXlJR1p5YjIwZ0p5NHVMM1YwYVd3dlpHbHpkR0Z1WTJVdGFYUmxjbUYwYjNJbk8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWEJ3YkhsUVlYUmphQ2h6YjNWeVkyVXNJSFZ1YVVScFptWXNJRzl3ZEdsdmJuTWdQU0I3ZlNrZ2UxeHVJQ0JwWmlBb2RIbHdaVzltSUhWdWFVUnBabVlnUFQwOUlDZHpkSEpwYm1jbktTQjdYRzRnSUNBZ2RXNXBSR2xtWmlBOUlIQmhjbk5sVUdGMFkyZ29kVzVwUkdsbVppazdYRzRnSUgxY2JseHVJQ0JwWmlBb1FYSnlZWGt1YVhOQmNuSmhlU2gxYm1sRWFXWm1LU2tnZTF4dUlDQWdJR2xtSUNoMWJtbEVhV1ptTG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbllYQndiSGxRWVhSamFDQnZibXg1SUhkdmNtdHpJSGRwZEdnZ1lTQnphVzVuYkdVZ2FXNXdkWFF1SnlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZFc1cFJHbG1aaUE5SUhWdWFVUnBabVpiTUYwN1hHNGdJSDFjYmx4dUlDQXZMeUJCY0hCc2VTQjBhR1VnWkdsbVppQjBieUIwYUdVZ2FXNXdkWFJjYmlBZ2JHVjBJR3hwYm1WeklEMGdjMjkxY21ObExuTndiR2wwS0NkY1hHNG5LU3hjYmlBZ0lDQWdJR2gxYm10eklEMGdkVzVwUkdsbVppNW9kVzVyY3l4Y2JseHVJQ0FnSUNBZ1kyOXRjR0Z5WlV4cGJtVWdQU0J2Y0hScGIyNXpMbU52YlhCaGNtVk1hVzVsSUh4OElDZ29iR2x1WlU1MWJXSmxjaXdnYkdsdVpTd2diM0JsY21GMGFXOXVMQ0J3WVhSamFFTnZiblJsYm5RcElEMCtJR3hwYm1VZ1BUMDlJSEJoZEdOb1EyOXVkR1Z1ZENrc1hHNGdJQ0FnSUNCbGNuSnZja052ZFc1MElEMGdNQ3hjYmlBZ0lDQWdJR1oxZW5wR1lXTjBiM0lnUFNCdmNIUnBiMjV6TG1aMWVucEdZV04wYjNJZ2ZId2dNQ3hjYmlBZ0lDQWdJRzFwYmt4cGJtVWdQU0F3TEZ4dUlDQWdJQ0FnYjJabWMyVjBJRDBnTUN4Y2JseHVJQ0FnSUNBZ2NtVnRiM1psUlU5R1Rrd3NYRzRnSUNBZ0lDQmhaR1JGVDBaT1REdGNibHh1SUNBdktpcGNiaUFnSUNvZ1EyaGxZMnR6SUdsbUlIUm9aU0JvZFc1cklHVjRZV04wYkhrZ1ptbDBjeUJ2YmlCMGFHVWdjSEp2ZG1sa1pXUWdiRzlqWVhScGIyNWNiaUFnSUNvdlhHNGdJR1oxYm1OMGFXOXVJR2gxYm10R2FYUnpLR2gxYm1zc0lIUnZVRzl6S1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlEQTdJR29nUENCb2RXNXJMbXhwYm1WekxteGxibWQwYURzZ2Fpc3JLU0I3WEc0Z0lDQWdJQ0JzWlhRZ2JHbHVaU0E5SUdoMWJtc3ViR2x1WlhOYmFsMHNYRzRnSUNBZ0lDQWdJQ0FnYjNCbGNtRjBhVzl1SUQwZ2JHbHVaVnN3WFN4Y2JpQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MElEMGdiR2x1WlM1emRXSnpkSElvTVNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2h2Y0dWeVlYUnBiMjRnUFQwOUlDY2dKeUI4ZkNCdmNHVnlZWFJwYjI0Z1BUMDlJQ2N0SnlrZ2UxeHVJQ0FnSUNBZ0lDQXZMeUJEYjI1MFpYaDBJSE5oYm1sMGVTQmphR1ZqYTF4dUlDQWdJQ0FnSUNCcFppQW9JV052YlhCaGNtVk1hVzVsS0hSdlVHOXpJQ3NnTVN3Z2JHbHVaWE5iZEc5UWIzTmRMQ0J2Y0dWeVlYUnBiMjRzSUdOdmJuUmxiblFwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdaWEp5YjNKRGIzVnVkQ3NyTzF4dVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dWeWNtOXlRMjkxYm5RZ1BpQm1kWHA2Um1GamRHOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1ptRnNjMlU3WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJ2VUc5ekt5czdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUgxY2JseHVJQ0F2THlCVFpXRnlZMmdnWW1WemRDQm1hWFFnYjJabWMyVjBjeUJtYjNJZ1pXRmphQ0JvZFc1cklHSmhjMlZrSUc5dUlIUm9aU0J3Y21WMmFXOTFjeUJ2Ym1WelhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYUhWdWEzTXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0JzWlhRZ2FIVnVheUE5SUdoMWJtdHpXMmxkTEZ4dUlDQWdJQ0FnSUNCdFlYaE1hVzVsSUQwZ2JHbHVaWE11YkdWdVozUm9JQzBnYUhWdWF5NXZiR1JNYVc1bGN5eGNiaUFnSUNBZ0lDQWdiRzlqWVd4UFptWnpaWFFnUFNBd0xGeHVJQ0FnSUNBZ0lDQjBiMUJ2Y3lBOUlHOW1abk5sZENBcklHaDFibXN1YjJ4a1UzUmhjblFnTFNBeE8xeHVYRzRnSUNBZ2JHVjBJR2wwWlhKaGRHOXlJRDBnWkdsemRHRnVZMlZKZEdWeVlYUnZjaWgwYjFCdmN5d2diV2x1VEdsdVpTd2diV0Y0VEdsdVpTazdYRzVjYmlBZ0lDQm1iM0lnS0RzZ2JHOWpZV3hQWm1aelpYUWdJVDA5SUhWdVpHVm1hVzVsWkRzZ2JHOWpZV3hQWm1aelpYUWdQU0JwZEdWeVlYUnZjaWdwS1NCN1hHNGdJQ0FnSUNCcFppQW9hSFZ1YTBacGRITW9hSFZ1YXl3Z2RHOVFiM01nS3lCc2IyTmhiRTltWm5ObGRDa3BJSHRjYmlBZ0lDQWdJQ0FnYUhWdWF5NXZabVp6WlhRZ1BTQnZabVp6WlhRZ0t6MGdiRzlqWVd4UFptWnpaWFE3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hzYjJOaGJFOW1abk5sZENBOVBUMGdkVzVrWldacGJtVmtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1UyVjBJR3h2ZDJWeUlIUmxlSFFnYkdsdGFYUWdkRzhnWlc1a0lHOW1JSFJvWlNCamRYSnlaVzUwSUdoMWJtc3NJSE52SUc1bGVIUWdiMjVsY3lCa2IyNG5kQ0IwY25sY2JpQWdJQ0F2THlCMGJ5Qm1hWFFnYjNabGNpQmhiSEpsWVdSNUlIQmhkR05vWldRZ2RHVjRkRnh1SUNBZ0lHMXBia3hwYm1VZ1BTQm9kVzVyTG05bVpuTmxkQ0FySUdoMWJtc3ViMnhrVTNSaGNuUWdLeUJvZFc1ckxtOXNaRXhwYm1Wek8xeHVJQ0I5WEc1Y2JpQWdMeThnUVhCd2JIa2djR0YwWTJnZ2FIVnVhM05jYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm9kVzVyY3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lHeGxkQ0JvZFc1cklEMGdhSFZ1YTNOYmFWMHNYRzRnSUNBZ0lDQWdJSFJ2VUc5eklEMGdhSFZ1YXk1dlptWnpaWFFnS3lCb2RXNXJMbTVsZDFOMFlYSjBJQzBnTVR0Y2JpQWdJQ0JwWmlBb2FIVnVheTV1WlhkTWFXNWxjeUE5UFNBd0tTQjdJSFJ2VUc5ekt5czdJSDFjYmx4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnYUhWdWF5NXNhVzVsY3k1c1pXNW5kR2c3SUdvckt5a2dlMXh1SUNBZ0lDQWdiR1YwSUd4cGJtVWdQU0JvZFc1ckxteHBibVZ6VzJwZExGeHVJQ0FnSUNBZ0lDQWdJRzl3WlhKaGRHbHZiaUE5SUd4cGJtVmJNRjBzWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR1Z1ZENBOUlHeHBibVV1YzNWaWMzUnlLREVwTzF4dVhHNGdJQ0FnSUNCcFppQW9iM0JsY21GMGFXOXVJRDA5UFNBbklDY3BJSHRjYmlBZ0lDQWdJQ0FnZEc5UWIzTXJLenRjYmlBZ0lDQWdJSDBnWld4elpTQnBaaUFvYjNCbGNtRjBhVzl1SUQwOVBTQW5MU2NwSUh0Y2JpQWdJQ0FnSUNBZ2JHbHVaWE11YzNCc2FXTmxLSFJ2VUc5ekxDQXhLVHRjYmlBZ0lDQWdJQzhxSUdsemRHRnVZblZzSUdsbmJtOXlaU0JsYkhObElDb3ZYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLRzl3WlhKaGRHbHZiaUE5UFQwZ0p5c25LU0I3WEc0Z0lDQWdJQ0FnSUd4cGJtVnpMbk53YkdsalpTaDBiMUJ2Y3l3Z01Dd2dZMjl1ZEdWdWRDazdYRzRnSUNBZ0lDQWdJSFJ2VUc5ekt5czdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLRzl3WlhKaGRHbHZiaUE5UFQwZ0oxeGNYRnduS1NCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J3Y21WMmFXOTFjMDl3WlhKaGRHbHZiaUE5SUdoMWJtc3ViR2x1WlhOYmFpQXRJREZkSUQ4Z2FIVnVheTVzYVc1bGMxdHFJQzBnTVYxYk1GMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQnBaaUFvY0hKbGRtbHZkWE5QY0dWeVlYUnBiMjRnUFQwOUlDY3JKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lISmxiVzkyWlVWUFJrNU1JRDBnZEhKMVpUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2h3Y21WMmFXOTFjMDl3WlhKaGRHbHZiaUE5UFQwZ0p5MG5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1lXUmtSVTlHVGt3Z1BTQjBjblZsTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdTR0Z1Wkd4bElFVlBSazVNSUdsdWMyVnlkR2x2Ymk5eVpXMXZkbUZzWEc0Z0lHbG1JQ2h5WlcxdmRtVkZUMFpPVENrZ2UxeHVJQ0FnSUhkb2FXeGxJQ2doYkdsdVpYTmJiR2x1WlhNdWJHVnVaM1JvSUMwZ01WMHBJSHRjYmlBZ0lDQWdJR3hwYm1WekxuQnZjQ2dwTzF4dUlDQWdJSDFjYmlBZ2ZTQmxiSE5sSUdsbUlDaGhaR1JGVDBaT1RDa2dlMXh1SUNBZ0lHeHBibVZ6TG5CMWMyZ29KeWNwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJzYVc1bGN5NXFiMmx1S0NkY1hHNG5LVHRjYm4xY2JseHVMeThnVjNKaGNIQmxjaUIwYUdGMElITjFjSEJ2Y25SeklHMTFiSFJwY0d4bElHWnBiR1VnY0dGMFkyaGxjeUIyYVdFZ1kyRnNiR0poWTJ0ekxseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHRndjR3g1VUdGMFkyaGxjeWgxYm1sRWFXWm1MQ0J2Y0hScGIyNXpLU0I3WEc0Z0lHbG1JQ2gwZVhCbGIyWWdkVzVwUkdsbVppQTlQVDBnSjNOMGNtbHVaeWNwSUh0Y2JpQWdJQ0IxYm1sRWFXWm1JRDBnY0dGeWMyVlFZWFJqYUNoMWJtbEVhV1ptS1R0Y2JpQWdmVnh1WEc0Z0lHeGxkQ0JqZFhKeVpXNTBTVzVrWlhnZ1BTQXdPMXh1SUNCbWRXNWpkR2x2YmlCd2NtOWpaWE56U1c1a1pYZ29LU0I3WEc0Z0lDQWdiR1YwSUdsdVpHVjRJRDBnZFc1cFJHbG1abHRqZFhKeVpXNTBTVzVrWlhncksxMDdYRzRnSUNBZ2FXWWdLQ0ZwYm1SbGVDa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHOXdkR2x2Ym5NdVkyOXRjR3hsZEdVb0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCdmNIUnBiMjV6TG14dllXUkdhV3hsS0dsdVpHVjRMQ0JtZFc1amRHbHZiaWhsY25Jc0lHUmhkR0VwSUh0Y2JpQWdJQ0FnSUdsbUlDaGxjbklwSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUc5d2RHbHZibk11WTI5dGNHeGxkR1VvWlhKeUtUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdiR1YwSUhWd1pHRjBaV1JEYjI1MFpXNTBJRDBnWVhCd2JIbFFZWFJqYUNoa1lYUmhMQ0JwYm1SbGVDd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQnZjSFJwYjI1ekxuQmhkR05vWldRb2FXNWtaWGdzSUhWd1pHRjBaV1JEYjI1MFpXNTBMQ0JtZFc1amRHbHZiaWhsY25JcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0dWeWNpa2dlMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ2Y0hScGIyNXpMbU52YlhCc1pYUmxLR1Z5Y2lrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0J3Y205alpYTnpTVzVrWlhnb0tUdGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMHBPMXh1SUNCOVhHNGdJSEJ5YjJObGMzTkpibVJsZUNncE8xeHVmVnh1SWwxOVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9kaWZmL2xpYi9wYXRjaC9hcHBseS5qc1xuLy8gbW9kdWxlIGlkID0gMjU4XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 259 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports. /*istanbul ignore end*/parsePatch = parsePatch;\nfunction parsePatch(uniDiff) {\n /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var diffstr = uniDiff.split('\\n'),\n list = [],\n i = 0;\n\n function parseIndex() {\n var index = {};\n list.push(index);\n\n // Parse diff metadata\n while (i < diffstr.length) {\n var line = diffstr[i];\n\n // File header found, end parsing diff metadata\n if (/^(\\-\\-\\-|\\+\\+\\+|@@)\\s/.test(line)) {\n break;\n }\n\n // Diff index\n var header = /^(?:Index:|diff(?: -r \\w+)+)\\s+(.+?)\\s*$/.exec(line);\n if (header) {\n index.index = header[1];\n }\n\n i++;\n }\n\n // Parse file headers if they are defined. Unified diff requires them, but\n // there's no technical issues to have an isolated hunk without file header\n parseFileHeader(index);\n parseFileHeader(index);\n\n // Parse hunks\n index.hunks = [];\n\n while (i < diffstr.length) {\n var _line = diffstr[i];\n\n if (/^(Index:|diff|\\-\\-\\-|\\+\\+\\+)\\s/.test(_line)) {\n break;\n } else if (/^@@/.test(_line)) {\n index.hunks.push(parseHunk());\n } else if (_line && options.strict) {\n // Ignore unexpected content unless in strict mode\n throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line));\n } else {\n i++;\n }\n }\n }\n\n // Parses the --- and +++ headers, if none are found, no lines\n // are consumed.\n function parseFileHeader(index) {\n var headerPattern = /^(---|\\+\\+\\+)\\s+([\\S ]*)(?:\\t(.*?)\\s*)?$/;\n var fileHeader = headerPattern.exec(diffstr[i]);\n if (fileHeader) {\n var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new';\n index[keyPrefix + 'FileName'] = fileHeader[2];\n index[keyPrefix + 'Header'] = fileHeader[3];\n\n i++;\n }\n }\n\n // Parses a hunk\n // This assumes that we are at the start of a hunk.\n function parseHunk() {\n var chunkHeaderIndex = i,\n chunkHeaderLine = diffstr[i++],\n chunkHeader = chunkHeaderLine.split(/@@ -(\\d+)(?:,(\\d+))? \\+(\\d+)(?:,(\\d+))? @@/);\n\n var hunk = {\n oldStart: +chunkHeader[1],\n oldLines: +chunkHeader[2] || 1,\n newStart: +chunkHeader[3],\n newLines: +chunkHeader[4] || 1,\n lines: []\n };\n\n var addCount = 0,\n removeCount = 0;\n for (; i < diffstr.length; i++) {\n // Lines starting with '---' could be mistaken for the \"remove line\" operation\n // But they could be the header for the next file. Therefore prune such cases out.\n if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) {\n break;\n }\n var operation = diffstr[i][0];\n\n if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\\\') {\n hunk.lines.push(diffstr[i]);\n\n if (operation === '+') {\n addCount++;\n } else if (operation === '-') {\n removeCount++;\n } else if (operation === ' ') {\n addCount++;\n removeCount++;\n }\n } else {\n break;\n }\n }\n\n // Handle the empty block count case\n if (!addCount && hunk.newLines === 1) {\n hunk.newLines = 0;\n }\n if (!removeCount && hunk.oldLines === 1) {\n hunk.oldLines = 0;\n }\n\n // Perform optional sanity checking\n if (options.strict) {\n if (addCount !== hunk.newLines) {\n throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n if (removeCount !== hunk.oldLines) {\n throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1));\n }\n }\n\n return hunk;\n }\n\n while (i < diffstr.length) {\n parseIndex();\n }\n\n return list;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCLEEsYSxBQUFBO0FBQVQsU0FBQSxBQUFTLFdBQVQsQUFBb0IsU0FBdUI7MkJBQUEsSSx1QkFBZCxBQUFjLGdFQUFKLEFBQUksZUFDaEQ7O01BQUksVUFBVSxRQUFBLEFBQVEsTUFBdEIsQUFBYyxBQUFjO01BQ3hCLE9BREosQUFDVztNQUNQLElBRkosQUFFUSxBQUVSOztXQUFBLEFBQVMsYUFBYSxBQUNwQjtRQUFJLFFBQUosQUFBWSxBQUNaO1NBQUEsQUFBSyxLQUFMLEFBQVU7O0FBR1Y7V0FBTyxJQUFJLFFBQVgsQUFBbUIsUUFBUSxBQUN6QjtVQUFJLE9BQU8sUUFBWCxBQUFXLEFBQVE7O0FBR25CO1VBQUksd0JBQUEsQUFBd0IsS0FBNUIsQUFBSSxBQUE2QixPQUFPLEFBQ3RDO0FBQ0Q7OztBQUdEO1VBQUksU0FBUyxBQUFDLDJDQUFELEFBQTZDLEtBQTFELEFBQWEsQUFBa0QsQUFDL0Q7VUFBQSxBQUFJLFFBQVEsQUFDVjtjQUFBLEFBQU0sUUFBUSxPQUFkLEFBQWMsQUFBTyxBQUN0QjtBQUVEOztBQUNEOzs7O0FBSUQ7b0JBQUEsQUFBZ0IsQUFDaEI7b0JBQUEsQUFBZ0I7O0FBR2hCO1VBQUEsQUFBTSxRQUFOLEFBQWMsQUFFZDs7V0FBTyxJQUFJLFFBQVgsQUFBbUIsUUFBUSxBQUN6QjtVQUFJLFFBQU8sUUFBWCxBQUFXLEFBQVEsQUFFbkI7O1VBQUksaUNBQUEsQUFBaUMsS0FBckMsQUFBSSxBQUFzQyxRQUFPLEFBQy9DO0FBQ0Q7QUFGRCxpQkFFVyxNQUFBLEFBQU0sS0FBVixBQUFJLEFBQVcsUUFBTyxBQUMzQjtjQUFBLEFBQU0sTUFBTixBQUFZLEtBQVosQUFBaUIsQUFDbEI7QUFGTSxPQUFBLFVBRUksU0FBUSxRQUFaLEFBQW9CLFFBQVE7QUFFakM7Y0FBTSxJQUFBLEFBQUksTUFBTSxtQkFBbUIsSUFBbkIsQUFBdUIsS0FBdkIsQUFB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LCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KCdcXG4nKSxcbiAgICAgIGxpc3QgPSBbXSxcbiAgICAgIGkgPSAwO1xuXG4gIGZ1bmN0aW9uIHBhcnNlSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0ge307XG4gICAgbGlzdC5wdXNoKGluZGV4KTtcblxuICAgIC8vIFBhcnNlIGRpZmYgbWV0YWRhdGFcbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIC8vIEZpbGUgaGVhZGVyIGZvdW5kLCBlbmQgcGFyc2luZyBkaWZmIG1ldGFkYXRhXG4gICAgICBpZiAoL14oXFwtXFwtXFwtfFxcK1xcK1xcK3xAQClcXHMvLnRlc3QobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIERpZmYgaW5kZXhcbiAgICAgIGxldCBoZWFkZXIgPSAoL14oPzpJbmRleDp8ZGlmZig/OiAtciBcXHcrKSspXFxzKyguKz8pXFxzKiQvKS5leGVjKGxpbmUpO1xuICAgICAgaWYgKGhlYWRlcikge1xuICAgICAgICBpbmRleC5pbmRleCA9IGhlYWRlclsxXTtcbiAgICAgIH1cblxuICAgICAgaSsrO1xuICAgIH1cblxuICAgIC8vIFBhcnNlIGZpbGUgaGVhZGVycyBpZiB0aGV5IGFyZSBkZWZpbmVkLiBVbmlmaWVkIGRpZmYgcmVxdWlyZXMgdGhlbSwgYnV0XG4gICAgLy8gdGhlcmUncyBubyB0ZWNobmljYWwgaXNzdWVzIHRvIGhhdmUgYW4gaXNvbGF0ZWQgaHVuayB3aXRob3V0IGZpbGUgaGVhZGVyXG4gICAgcGFyc2VGaWxlSGVhZGVyKGluZGV4KTtcbiAgICBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgaHVua3NcbiAgICBpbmRleC5odW5rcyA9IFtdO1xuXG4gICAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgICAgbGV0IGxpbmUgPSBkaWZmc3RyW2ldO1xuXG4gICAgICBpZiAoL14oSW5kZXg6fGRpZmZ8XFwtXFwtXFwtfFxcK1xcK1xcKylcXHMvLnRlc3QobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2UgaWYgKC9eQEAvLnRlc3QobGluZSkpIHtcbiAgICAgICAgaW5kZXguaHVua3MucHVzaChwYXJzZUh1bmsoKSk7XG4gICAgICB9IGVsc2UgaWYgKGxpbmUgJiYgb3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgICAgLy8gSWdub3JlIHVuZXhwZWN0ZWQgY29udGVudCB1bmxlc3MgaW4gc3RyaWN0IG1vZGVcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxpbmUgJyArIChpICsgMSkgKyAnICcgKyBKU09OLnN0cmluZ2lmeShsaW5lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2VzIHRoZSAtLS0gYW5kICsrKyBoZWFkZXJzLCBpZiBub25lIGFyZSBmb3VuZCwgbm8gbGluZXNcbiAgLy8gYXJlIGNvbnN1bWVkLlxuICBmdW5jdGlvbiBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpIHtcbiAgICBjb25zdCBoZWFkZXJQYXR0ZXJuID0gL14oLS0tfFxcK1xcK1xcKylcXHMrKFtcXFMgXSopKD86XFx0KC4qPylcXHMqKT8kLztcbiAgICBjb25zdCBmaWxlSGVhZGVyID0gaGVhZGVyUGF0dGVybi5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0ZpbGVOYW1lJ10gPSBmaWxlSGVhZGVyWzJdO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gZmlsZUhlYWRlclszXTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggJy0tLScgY291bGQgYmUgbWlzdGFrZW4gZm9yIHRoZSBcInJlbW92ZSBsaW5lXCIgb3BlcmF0aW9uXG4gICAgICAvLyBCdXQgdGhleSBjb3VsZCBiZSB0aGUgaGVhZGVyIGZvciB0aGUgbmV4dCBmaWxlLiBUaGVyZWZvcmUgcHJ1bmUgc3VjaCBjYXNlcyBvdXQuXG4gICAgICBpZiAoZGlmZnN0cltpXS5pbmRleE9mKCctLS0gJykgPT09IDBcbiAgICAgICAgICAgICYmIChpICsgMiA8IGRpZmZzdHIubGVuZ3RoKVxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMV0uaW5kZXhPZignKysrICcpID09PSAwXG4gICAgICAgICAgICAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsZXQgb3BlcmF0aW9uID0gZGlmZnN0cltpXVswXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnIHx8IG9wZXJhdGlvbiA9PT0gJy0nIHx8IG9wZXJhdGlvbiA9PT0gJyAnIHx8IG9wZXJhdGlvbiA9PT0gJ1xcXFwnKSB7XG4gICAgICAgIGh1bmsubGluZXMucHVzaChkaWZmc3RyW2ldKTtcblxuICAgICAgICBpZiAob3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgICAgcmVtb3ZlQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICcgJykge1xuICAgICAgICAgIGFkZENvdW50Kys7XG4gICAgICAgICAgcmVtb3ZlQ291bnQrKztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRoZSBlbXB0eSBibG9jayBjb3VudCBjYXNlXG4gICAgaWYgKCFhZGRDb3VudCAmJiBodW5rLm5ld0xpbmVzID09PSAxKSB7XG4gICAgICBodW5rLm5ld0xpbmVzID0gMDtcbiAgICB9XG4gICAgaWYgKCFyZW1vdmVDb3VudCAmJiBodW5rLm9sZExpbmVzID09PSAxKSB7XG4gICAgICBodW5rLm9sZExpbmVzID0gMDtcbiAgICB9XG5cbiAgICAvLyBQZXJmb3JtIG9wdGlvbmFsIHNhbml0eSBjaGVja2luZ1xuICAgIGlmIChvcHRpb25zLnN0cmljdCkge1xuICAgICAgaWYgKGFkZENvdW50ICE9PSBodW5rLm5ld0xpbmVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQWRkZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgICAgaWYgKHJlbW92ZUNvdW50ICE9PSBodW5rLm9sZExpbmVzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVtb3ZlZCBsaW5lIGNvdW50IGRpZCBub3QgbWF0Y2ggZm9yIGh1bmsgYXQgbGluZSAnICsgKGNodW5rSGVhZGVySW5kZXggKyAxKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGh1bms7XG4gIH1cblxuICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgcGFyc2VJbmRleCgpO1xuICB9XG5cbiAgcmV0dXJuIGxpc3Q7XG59XG4iXX0=//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL3BhdGNoL3BhcnNlLmpzP2EwNTciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0hBQXdIOztBQUV4SDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVSxvQkFBb0I7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI1OS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3BhcnNlUGF0Y2ggPSBwYXJzZVBhdGNoO1xuZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmKSB7XG4gIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki92YXIgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9vcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8ge30gOiBhcmd1bWVudHNbMV07XG5cbiAgdmFyIGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KCdcXG4nKSxcbiAgICAgIGxpc3QgPSBbXSxcbiAgICAgIGkgPSAwO1xuXG4gIGZ1bmN0aW9uIHBhcnNlSW5kZXgoKSB7XG4gICAgdmFyIGluZGV4ID0ge307XG4gICAgbGlzdC5wdXNoKGluZGV4KTtcblxuICAgIC8vIFBhcnNlIGRpZmYgbWV0YWRhdGFcbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICB2YXIgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIC8vIEZpbGUgaGVhZGVyIGZvdW5kLCBlbmQgcGFyc2luZyBkaWZmIG1ldGFkYXRhXG4gICAgICBpZiAoL14oXFwtXFwtXFwtfFxcK1xcK1xcK3xAQClcXHMvLnRlc3QobGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIC8vIERpZmYgaW5kZXhcbiAgICAgIHZhciBoZWFkZXIgPSAvXig/OkluZGV4OnxkaWZmKD86IC1yIFxcdyspKylcXHMrKC4rPylcXHMqJC8uZXhlYyhsaW5lKTtcbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgaW5kZXguaW5kZXggPSBoZWFkZXJbMV07XG4gICAgICB9XG5cbiAgICAgIGkrKztcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBmaWxlIGhlYWRlcnMgaWYgdGhleSBhcmUgZGVmaW5lZC4gVW5pZmllZCBkaWZmIHJlcXVpcmVzIHRoZW0sIGJ1dFxuICAgIC8vIHRoZXJlJ3Mgbm8gdGVjaG5pY2FsIGlzc3VlcyB0byBoYXZlIGFuIGlzb2xhdGVkIGh1bmsgd2l0aG91dCBmaWxlIGhlYWRlclxuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG4gICAgcGFyc2VGaWxlSGVhZGVyKGluZGV4KTtcblxuICAgIC8vIFBhcnNlIGh1bmtzXG4gICAgaW5kZXguaHVua3MgPSBbXTtcblxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIHZhciBfbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIGlmICgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8udGVzdChfbGluZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2UgaWYgKC9eQEAvLnRlc3QoX2xpbmUpKSB7XG4gICAgICAgIGluZGV4Lmh1bmtzLnB1c2gocGFyc2VIdW5rKCkpO1xuICAgICAgfSBlbHNlIGlmIChfbGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KF9saW5lKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2VzIHRoZSAtLS0gYW5kICsrKyBoZWFkZXJzLCBpZiBub25lIGFyZSBmb3VuZCwgbm8gbGluZXNcbiAgLy8gYXJlIGNvbnN1bWVkLlxuICBmdW5jdGlvbiBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpIHtcbiAgICB2YXIgaGVhZGVyUGF0dGVybiA9IC9eKC0tLXxcXCtcXCtcXCspXFxzKyhbXFxTIF0qKSg/OlxcdCguKj8pXFxzKik/JC87XG4gICAgdmFyIGZpbGVIZWFkZXIgPSBoZWFkZXJQYXR0ZXJuLmV4ZWMoZGlmZnN0cltpXSk7XG4gICAgaWYgKGZpbGVIZWFkZXIpIHtcbiAgICAgIHZhciBrZXlQcmVmaXggPSBmaWxlSGVhZGVyWzFdID09PSAnLS0tJyA/ICdvbGQnIDogJ25ldyc7XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnRmlsZU5hbWUnXSA9IGZpbGVIZWFkZXJbMl07XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnSGVhZGVyJ10gPSBmaWxlSGVhZGVyWzNdO1xuXG4gICAgICBpKys7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFyc2VzIGEgaHVua1xuICAvLyBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhcmUgYXQgdGhlIHN0YXJ0IG9mIGEgaHVuay5cbiAgZnVuY3Rpb24gcGFyc2VIdW5rKCkge1xuICAgIHZhciBjaHVua0hlYWRlckluZGV4ID0gaSxcbiAgICAgICAgY2h1bmtIZWFkZXJMaW5lID0gZGlmZnN0cltpKytdLFxuICAgICAgICBjaHVua0hlYWRlciA9IGNodW5rSGVhZGVyTGluZS5zcGxpdCgvQEAgLShcXGQrKSg/OiwoXFxkKykpPyBcXCsoXFxkKykoPzosKFxcZCspKT8gQEAvKTtcblxuICAgIHZhciBodW5rID0ge1xuICAgICAgb2xkU3RhcnQ6ICtjaHVua0hlYWRlclsxXSxcbiAgICAgIG9sZExpbmVzOiArY2h1bmtIZWFkZXJbMl0gfHwgMSxcbiAgICAgIG5ld1N0YXJ0OiArY2h1bmtIZWFkZXJbM10sXG4gICAgICBuZXdMaW5lczogK2NodW5rSGVhZGVyWzRdIHx8IDEsXG4gICAgICBsaW5lczogW11cbiAgICB9O1xuXG4gICAgdmFyIGFkZENvdW50ID0gMCxcbiAgICAgICAgcmVtb3ZlQ291bnQgPSAwO1xuICAgIGZvciAoOyBpIDwgZGlmZnN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gTGluZXMgc3RhcnRpbmcgd2l0aCAnLS0tJyBjb3VsZCBiZSBtaXN0YWtlbiBmb3IgdGhlIFwicmVtb3ZlIGxpbmVcIiBvcGVyYXRpb25cbiAgICAgIC8vIEJ1dCB0aGV5IGNvdWxkIGJlIHRoZSBoZWFkZXIgZm9yIHRoZSBuZXh0IGZpbGUuIFRoZXJlZm9yZSBwcnVuZSBzdWNoIGNhc2VzIG91dC5cbiAgICAgIGlmIChkaWZmc3RyW2ldLmluZGV4T2YoJy0tLSAnKSA9PT0gMCAmJiBpICsgMiA8IGRpZmZzdHIubGVuZ3RoICYmIGRpZmZzdHJbaSArIDFdLmluZGV4T2YoJysrKyAnKSA9PT0gMCAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgdmFyIG9wZXJhdGlvbiA9IGRpZmZzdHJbaV1bMF07XG5cbiAgICAgIGlmIChvcGVyYXRpb24gPT09ICcrJyB8fCBvcGVyYXRpb24gPT09ICctJyB8fCBvcGVyYXRpb24gPT09ICcgJyB8fCBvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBodW5rLmxpbmVzLnB1c2goZGlmZnN0cltpXSk7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgYmxvY2sgY291bnQgY2FzZVxuICAgIGlmICghYWRkQ291bnQgJiYgaHVuay5uZXdMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5uZXdMaW5lcyA9IDA7XG4gICAgfVxuICAgIGlmICghcmVtb3ZlQ291bnQgJiYgaHVuay5vbGRMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5vbGRMaW5lcyA9IDA7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBvcHRpb25hbCBzYW5pdHkgY2hlY2tpbmdcbiAgICBpZiAob3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIGlmIChhZGRDb3VudCAhPT0gaHVuay5uZXdMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZGVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZW1vdmVDb3VudCAhPT0gaHVuay5vbGRMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW92ZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodW5rO1xuICB9XG5cbiAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgIHBhcnNlSW5kZXgoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYklpNHVMeTR1TDNOeVl5OXdZWFJqYUM5d1lYSnpaUzVxY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN1owTkJRV2RDTEVFc1lTeEJRVUZCTzBGQlFWUXNVMEZCUVN4QlFVRlRMRmRCUVZRc1FVRkJiMElzVTBGQmRVSTdNa0pCUVVFc1NTeDFRa0ZCWkN4QlFVRmpMR2RGUVVGS0xFRkJRVWtzWlVGRGFFUTdPMDFCUVVrc1ZVRkJWU3hSUVVGQkxFRkJRVkVzVFVGQmRFSXNRVUZCWXl4QlFVRmpPMDFCUTNoQ0xFOUJSRW9zUVVGRFZ6dE5RVU5RTEVsQlJrb3NRVUZGVVN4QlFVVlNPenRYUVVGQkxFRkJRVk1zWVVGQllTeEJRVU53UWp0UlFVRkpMRkZCUVVvc1FVRkJXU3hCUVVOYU8xTkJRVUVzUVVGQlN5eExRVUZNTEVGQlFWVTdPMEZCUjFZN1YwRkJUeXhKUVVGSkxGRkJRVmdzUVVGQmJVSXNVVUZCVVN4QlFVTjZRanRWUVVGSkxFOUJRVThzVVVGQldDeEJRVUZYTEVGQlFWRTdPMEZCUjI1Q08xVkJRVWtzZDBKQlFVRXNRVUZCZDBJc1MwRkJOVUlzUVVGQlNTeEJRVUUyUWl4UFFVRlBMRUZCUTNSRE8wRkJRMFE3T3p0QlFVZEVPMVZCUVVrc1UwRkJVeXhCUVVGRExESkRRVUZFTEVGQlFUWkRMRXRCUVRGRUxFRkJRV0VzUVVGQmEwUXNRVUZETDBRN1ZVRkJRU3hCUVVGSkxGRkJRVkVzUVVGRFZqdGpRVUZCTEVGQlFVMHNVVUZCVVN4UFFVRmtMRUZCUVdNc1FVRkJUeXhCUVVOMFFqdEJRVVZFT3p0QlFVTkVPenM3TzBGQlNVUTdiMEpCUVVFc1FVRkJaMElzUVVGRGFFSTdiMEpCUVVFc1FVRkJaMEk3TzBGQlIyaENPMVZCUVVFc1FVRkJUU3hSUVVGT0xFRkJRV01zUVVGRlpEczdWMEZCVHl4SlFVRkpMRkZCUVZnc1FVRkJiVUlzVVVGQlVTeEJRVU42UWp0VlFVRkpMRkZCUVU4c1VVRkJXQ3hCUVVGWExFRkJRVkVzUVVGRmJrSTdPMVZCUVVrc2FVTkJRVUVzUVVGQmFVTXNTMEZCY2tNc1FVRkJTU3hCUVVGelF5eFJRVUZQTEVGQlF5OURPMEZCUTBRN1FVRkdSQ3hwUWtGRlZ5eE5RVUZCTEVGQlFVMHNTMEZCVml4QlFVRkpMRUZCUVZjc1VVRkJUeXhCUVVNelFqdGpRVUZCTEVGQlFVMHNUVUZCVGl4QlFVRlpMRXRCUVZvc1FVRkJhVUlzUVVGRGJFSTdRVUZHVFN4UFFVRkJMRlZCUlVrc1UwRkJVU3hSUVVGYUxFRkJRVzlDTEZGQlFWRTdRVUZGYWtNN1kwRkJUU3hKUVVGQkxFRkJRVWtzVFVGQlRTeHRRa0ZCYlVJc1NVRkJia0lzUVVGQmRVSXNTMEZCZGtJc1FVRkJORUlzVFVGQlRTeExRVUZCTEVGQlFVc3NWVUZCZGtRc1FVRkJUU3hCUVVFMFF5eEJRVUZsTEVGQlEyeEZPMEZCU0Uwc1QwRkJRU3hOUVVkQkxFRkJRMHc3UVVGRFJEdEJRVU5HTzBGQlEwWTdPenM3UVVGSlJEdFhRVUZCTEVGQlFWTXNaMEpCUVZRc1FVRkJlVUlzVDBGQlR5eEJRVU01UWp0UlFVRk5MR2RDUVVGT0xFRkJRWE5DTEVGQlEzUkNPMUZCUVUwc1lVRkJZU3hqUVVGQkxFRkJRV01zUzBGQlN5eFJRVUYwUXl4QlFVRnRRaXhCUVVGdFFpeEJRVUZSTEVGQlF6bERPMUZCUVVFc1FVRkJTU3haUVVGWkxFRkJRMlE3VlVGQlNTeFpRVUZaTEZkQlFVRXNRVUZCVnl4UFFVRllMRUZCUVd0Q0xGRkJRV3hDTEVGQlFUQkNMRkZCUVRGRExFRkJRV3RFTEVGQlEyeEVPMWxCUVUwc1dVRkJUaXhCUVVGclFpeGpRVUZqTEZkQlFXaERMRUZCUVdkRExFRkJRVmNzUVVGRE0wTTdXVUZCVFN4WlFVRk9MRUZCUVd0Q0xGbEJRVmtzVjBGQk9VSXNRVUZCT0VJc1FVRkJWeXhCUVVWNlF6czdRVUZEUkR0QlFVTkdPenM3TzBGQlNVUTdWMEZCUVN4QlFVRlRMRmxCUVZrc1FVRkRia0k3VVVGQlNTeHRRa0ZCU2l4QlFVRjFRanRSUVVOdVFpeHJRa0ZCYTBJc1VVRkVkRUlzUVVGRGMwSXNRVUZCVVR0UlFVTXhRaXhqUVVGakxHZENRVUZCTEVGQlFXZENMRTFCUm14RExFRkJSV3RDTEVGQlFYTkNMRUZCUlhoRE96dFJRVUZKTzJkQ1FVTlJMRU5CUVVNc1dVRkVSaXhCUVVORkxFRkJRVmtzUVVGRGRrSTdaMEpCUVZVc1EwRkJReXhaUVVGRUxFRkJRVU1zUVVGQldTeE5RVVprTEVGQlJXOUNMRUZCUXpkQ08yZENRVUZWTEVOQlFVTXNXVUZJUml4QlFVZEZMRUZCUVZrc1FVRkRka0k3WjBKQlFWVXNRMEZCUXl4WlFVRkVMRUZCUVVNc1FVRkJXU3hOUVVwa0xFRkJTVzlDTEVGQlF6ZENPMkZCVEVZc1FVRkJWeXhCUVV0R0xFRkJSMVE3UVVGU1Z5eEJRVU5VT3p0UlFVOUZMRmRCUVVvc1FVRkJaVHRSUVVOWUxHTkJSRW9zUVVGRGEwSXNRVUZEYkVJN1YwRkJUeXhKUVVGSkxGRkJRVmdzUVVGQmJVSXNVVUZCYmtJc1FVRkJNa0lzUzBGQlN6czdRVUZIT1VJN1ZVRkJTU3hSUVVGQkxFRkJRVkVzUjBGQlVpeEJRVUZYTEZGQlFWZ3NRVUZCYlVJc1dVRkJia0lzUVVGQkswSXNTMEZEZWtJc1NVRkJRU3hCUVVGSkxFbEJRVWtzVVVGRVpDeEJRVU56UWl4VlFVTnFRaXhSUVVGUkxFbEJRVklzUVVGQldTeEhRVUZhTEVGQlFXVXNVVUZCWml4QlFVRjFRaXhaUVVZMVFpeEJRVVYzUXl4TFFVTnVReXhSUVVGUkxFbEJRVklzUVVGQldTeEhRVUZhTEVGQlFXVXNVVUZCWml4QlFVRjFRaXhWUVVob1F5eEJRVWN3UXl4SFFVRkhMRUZCUTNwRE8wRkJRMGc3UVVGRFJEdFZRVUZKTEZsQlFWa3NVVUZCUVN4QlFVRlJMRWRCUVhoQ0xFRkJRV2RDTEVGQlFWY3NRVUZGTTBJN08xVkJRVWtzWTBGQlFTeEJRVUZqTEU5QlFVOHNZMEZCY2tJc1FVRkJiVU1zVDBGQlR5eGpRVUV4UXl4QlFVRjNSQ3hQUVVGUExHTkJRVzVGTEVGQlFXbEdMRTFCUVUwc1FVRkRja1k3WVVGQlFTeEJRVUZMTEUxQlFVd3NRVUZCVnl4TFFVRkxMRkZCUVdoQ0xFRkJRV2RDTEVGQlFWRXNRVUZGZUVJN08xbEJRVWtzWTBGQlNpeEJRVUZyUWl4TFFVRkxMRUZCUTNKQ08wRkJRMFE3UVVGR1JDeHRRa0ZGVnl4alFVRktMRUZCUVd0Q0xFdEJRVXNzUVVGRE5VSTdRVUZEUkR0QlFVWk5MRk5CUVVFc1RVRkZRU3hKUVVGSkxHTkJRVW9zUVVGQmEwSXNTMEZCU3l4QlFVTTFRanRCUVVOQk8wRkJRMFE3UVVGRFJqdEJRVmhFTEdGQlYwOHNRVUZEVER0QlFVTkVPMEZCUTBZN096dEJRVWRFTzFGQlFVa3NRMEZCUVN4QlFVRkRMRmxCUVZrc1MwRkJRU3hCUVVGTExHRkJRWFJDTEVGQlFXMURMRWRCUVVjc1FVRkRjRU03VjBGQlFTeEJRVUZMTEZkQlFVd3NRVUZCWjBJc1FVRkRha0k3UVVGRFJEdFJRVUZKTEVOQlFVRXNRVUZCUXl4bFFVRmxMRXRCUVVFc1FVRkJTeXhoUVVGNlFpeEJRVUZ6UXl4SFFVRkhMRUZCUTNaRE8xZEJRVUVzUVVGQlN5eFhRVUZNTEVGQlFXZENMRUZCUTJwQ096czdRVUZIUkR0UlFVRkpMRkZCUVVvc1FVRkJXU3hSUVVGUkxFRkJRMnhDTzFWQlFVa3NZVUZCWVN4TFFVRnFRaXhCUVVGelFpeFZRVUZWTEVGQlF6bENPMk5CUVUwc1NVRkJRU3hCUVVGSkxFMUJRVTBzYzBSQlFYTkVMRzFDUVVGMFJTeEJRVUZOTEVGQlFWVXNRVUZCZVVVc1FVRkRNVVk3UVVGRFJEdFZRVUZKTEdkQ1FVRm5RaXhMUVVGd1FpeEJRVUY1UWl4VlFVRlZMRUZCUTJwRE8yTkJRVTBzU1VGQlFTeEJRVUZKTEUxQlFVMHNkMFJCUVhkRUxHMUNRVUY0UlN4QlFVRk5MRUZCUVZVc1FVRkJNa1VzUVVGRE5VWTdRVUZEUmp0QlFVVkVPenRYUVVGQkxFRkJRVThzUVVGRFVqdEJRVVZFT3p0VFFVRlBMRWxCUVVrc1VVRkJXQ3hCUVVGdFFpeFJRVUZSTEVGQlEzcENPMEZCUTBRN1FVRkZSRHM3VTBGQlFTeEJRVUZQTEVGQlExSWlMQ0ptYVd4bElqb2ljR0Z5YzJVdWFuTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpsZUhCdmNuUWdablZ1WTNScGIyNGdjR0Z5YzJWUVlYUmphQ2gxYm1sRWFXWm1MQ0J2Y0hScGIyNXpJRDBnZTMwcElIdGNiaUFnYkdWMElHUnBabVp6ZEhJZ1BTQjFibWxFYVdabUxuTndiR2wwS0NkY1hHNG5LU3hjYmlBZ0lDQWdJR3hwYzNRZ1BTQmJYU3hjYmlBZ0lDQWdJR2tnUFNBd08xeHVYRzRnSUdaMWJtTjBhVzl1SUhCaGNuTmxTVzVrWlhnb0tTQjdYRzRnSUNBZ2JHVjBJR2x1WkdWNElEMGdlMzA3WEc0Z0lDQWdiR2x6ZEM1d2RYTm9LR2x1WkdWNEtUdGNibHh1SUNBZ0lDOHZJRkJoY25ObElHUnBabVlnYldWMFlXUmhkR0ZjYmlBZ0lDQjNhR2xzWlNBb2FTQThJR1JwWm1aemRISXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQnNaWFFnYkdsdVpTQTlJR1JwWm1aemRISmJhVjA3WEc1Y2JpQWdJQ0FnSUM4dklFWnBiR1VnYUdWaFpHVnlJR1p2ZFc1a0xDQmxibVFnY0dGeWMybHVaeUJrYVdabUlHMWxkR0ZrWVhSaFhHNGdJQ0FnSUNCcFppQW9MMTRvWEZ3dFhGd3RYRnd0ZkZ4Y0sxeGNLMXhjSzN4QVFDbGNYSE12TG5SbGMzUW9iR2x1WlNrcElIdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDOHZJRVJwWm1ZZ2FXNWtaWGhjYmlBZ0lDQWdJR3hsZENCb1pXRmtaWElnUFNBb0wxNG9QenBKYm1SbGVEcDhaR2xtWmlnL09pQXRjaUJjWEhjcktTc3BYRnh6S3lndUt6OHBYRnh6S2lRdktTNWxlR1ZqS0d4cGJtVXBPMXh1SUNBZ0lDQWdhV1lnS0dobFlXUmxjaWtnZTF4dUlDQWdJQ0FnSUNCcGJtUmxlQzVwYm1SbGVDQTlJR2hsWVdSbGNsc3hYVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnYVNzck8xeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dklGQmhjbk5sSUdacGJHVWdhR1ZoWkdWeWN5QnBaaUIwYUdWNUlHRnlaU0JrWldacGJtVmtMaUJWYm1sbWFXVmtJR1JwWm1ZZ2NtVnhkV2x5WlhNZ2RHaGxiU3dnWW5WMFhHNGdJQ0FnTHk4Z2RHaGxjbVVuY3lCdWJ5QjBaV05vYm1sallXd2dhWE56ZFdWeklIUnZJR2hoZG1VZ1lXNGdhWE52YkdGMFpXUWdhSFZ1YXlCM2FYUm9iM1YwSUdacGJHVWdhR1ZoWkdWeVhHNGdJQ0FnY0dGeWMyVkdhV3hsU0dWaFpHVnlLR2x1WkdWNEtUdGNiaUFnSUNCd1lYSnpaVVpwYkdWSVpXRmtaWElvYVc1a1pYZ3BPMXh1WEc0Z0lDQWdMeThnVUdGeWMyVWdhSFZ1YTNOY2JpQWdJQ0JwYm1SbGVDNW9kVzVyY3lBOUlGdGRPMXh1WEc0Z0lDQWdkMmhwYkdVZ0tHa2dQQ0JrYVdabWMzUnlMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdiR1YwSUd4cGJtVWdQU0JrYVdabWMzUnlXMmxkTzF4dVhHNGdJQ0FnSUNCcFppQW9MMTRvU1c1a1pYZzZmR1JwWm1aOFhGd3RYRnd0WEZ3dGZGeGNLMXhjSzF4Y0t5bGNYSE12TG5SbGMzUW9iR2x1WlNrcElIdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tDOWVRRUF2TG5SbGMzUW9iR2x1WlNrcElIdGNiaUFnSUNBZ0lDQWdhVzVrWlhndWFIVnVhM011Y0hWemFDaHdZWEp6WlVoMWJtc29LU2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0d4cGJtVWdKaVlnYjNCMGFXOXVjeTV6ZEhKcFkzUXBJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1NXZHViM0psSUhWdVpYaHdaV04wWldRZ1kyOXVkR1Z1ZENCMWJteGxjM01nYVc0Z2MzUnlhV04wSUcxdlpHVmNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFZibXR1YjNkdUlHeHBibVVnSnlBcklDaHBJQ3NnTVNrZ0t5QW5JQ2NnS3lCS1UwOU9Mbk4wY21sdVoybG1lU2hzYVc1bEtTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnBLeXM3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHk4Z1VHRnljMlZ6SUhSb1pTQXRMUzBnWVc1a0lDc3JLeUJvWldGa1pYSnpMQ0JwWmlCdWIyNWxJR0Z5WlNCbWIzVnVaQ3dnYm04Z2JHbHVaWE5jYmlBZ0x5OGdZWEpsSUdOdmJuTjFiV1ZrTGx4dUlDQm1kVzVqZEdsdmJpQndZWEp6WlVacGJHVklaV0ZrWlhJb2FXNWtaWGdwSUh0Y2JpQWdJQ0JqYjI1emRDQm9aV0ZrWlhKUVlYUjBaWEp1SUQwZ0wxNG9MUzB0ZkZ4Y0sxeGNLMXhjS3lsY1hITXJLRnRjWEZNZ1hTb3BLRDg2WEZ4MEtDNHFQeWxjWEhNcUtUOGtMenRjYmlBZ0lDQmpiMjV6ZENCbWFXeGxTR1ZoWkdWeUlEMGdhR1ZoWkdWeVVHRjBkR1Z5Ymk1bGVHVmpLR1JwWm1aemRISmJhVjBwTzF4dUlDQWdJR2xtSUNobWFXeGxTR1ZoWkdWeUtTQjdYRzRnSUNBZ0lDQnNaWFFnYTJWNVVISmxabWw0SUQwZ1ptbHNaVWhsWVdSbGNsc3hYU0E5UFQwZ0p5MHRMU2NnUHlBbmIyeGtKeUE2SUNkdVpYY25PMXh1SUNBZ0lDQWdhVzVrWlhoYmEyVjVVSEpsWm1sNElDc2dKMFpwYkdWT1lXMWxKMTBnUFNCbWFXeGxTR1ZoWkdWeVd6SmRPMXh1SUNBZ0lDQWdhVzVrWlhoYmEyVjVVSEpsWm1sNElDc2dKMGhsWVdSbGNpZGRJRDBnWm1sc1pVaGxZV1JsY2xzelhUdGNibHh1SUNBZ0lDQWdhU3NyTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4dklGQmhjbk5sY3lCaElHaDFibXRjYmlBZ0x5OGdWR2hwY3lCaGMzTjFiV1Z6SUhSb1lYUWdkMlVnWVhKbElHRjBJSFJvWlNCemRHRnlkQ0J2WmlCaElHaDFibXN1WEc0Z0lHWjFibU4wYVc5dUlIQmhjbk5sU0hWdWF5Z3BJSHRjYmlBZ0lDQnNaWFFnWTJoMWJtdElaV0ZrWlhKSmJtUmxlQ0E5SUdrc1hHNGdJQ0FnSUNBZ0lHTm9kVzVyU0dWaFpHVnlUR2x1WlNBOUlHUnBabVp6ZEhKYmFTc3JYU3hjYmlBZ0lDQWdJQ0FnWTJoMWJtdElaV0ZrWlhJZ1BTQmphSFZ1YTBobFlXUmxja3hwYm1VdWMzQnNhWFFvTDBCQUlDMG9YRnhrS3lrb1B6b3NLRnhjWkNzcEtUOGdYRndyS0Z4Y1pDc3BLRDg2TENoY1hHUXJLU2svSUVCQUx5azdYRzVjYmlBZ0lDQnNaWFFnYUhWdWF5QTlJSHRjYmlBZ0lDQWdJRzlzWkZOMFlYSjBPaUFyWTJoMWJtdElaV0ZrWlhKYk1WMHNYRzRnSUNBZ0lDQnZiR1JNYVc1bGN6b2dLMk5vZFc1clNHVmhaR1Z5V3pKZElIeDhJREVzWEc0Z0lDQWdJQ0J1WlhkVGRHRnlkRG9nSzJOb2RXNXJTR1ZoWkdWeVd6TmRMRnh1SUNBZ0lDQWdibVYzVEdsdVpYTTZJQ3RqYUhWdWEwaGxZV1JsY2xzMFhTQjhmQ0F4TEZ4dUlDQWdJQ0FnYkdsdVpYTTZJRnRkWEc0Z0lDQWdmVHRjYmx4dUlDQWdJR3hsZENCaFpHUkRiM1Z1ZENBOUlEQXNYRzRnSUNBZ0lDQWdJSEpsYlc5MlpVTnZkVzUwSUQwZ01EdGNiaUFnSUNCbWIzSWdLRHNnYVNBOElHUnBabVp6ZEhJdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQWdJQzh2SUV4cGJtVnpJSE4wWVhKMGFXNW5JSGRwZEdnZ0p5MHRMU2NnWTI5MWJHUWdZbVVnYldsemRHRnJaVzRnWm05eUlIUm9aU0JjSW5KbGJXOTJaU0JzYVc1bFhDSWdiM0JsY21GMGFXOXVYRzRnSUNBZ0lDQXZMeUJDZFhRZ2RHaGxlU0JqYjNWc1pDQmlaU0IwYUdVZ2FHVmhaR1Z5SUdadmNpQjBhR1VnYm1WNGRDQm1hV3hsTGlCVWFHVnlaV1p2Y21VZ2NISjFibVVnYzNWamFDQmpZWE5sY3lCdmRYUXVYRzRnSUNBZ0lDQnBaaUFvWkdsbVpuTjBjbHRwWFM1cGJtUmxlRTltS0NjdExTMGdKeWtnUFQwOUlEQmNiaUFnSUNBZ0lDQWdJQ0FnSUNZbUlDaHBJQ3NnTWlBOElHUnBabVp6ZEhJdWJHVnVaM1JvS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdKaVlnWkdsbVpuTjBjbHRwSUNzZ01WMHVhVzVrWlhoUFppZ25LeXNySUNjcElEMDlQU0F3WEc0Z0lDQWdJQ0FnSUNBZ0lDQW1KaUJrYVdabWMzUnlXMmtnS3lBeVhTNXBibVJsZUU5bUtDZEFRQ2NwSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JzWlhRZ2IzQmxjbUYwYVc5dUlEMGdaR2xtWm5OMGNsdHBYVnN3WFR0Y2JseHVJQ0FnSUNBZ2FXWWdLRzl3WlhKaGRHbHZiaUE5UFQwZ0p5c25JSHg4SUc5d1pYSmhkR2x2YmlBOVBUMGdKeTBuSUh4OElHOXdaWEpoZEdsdmJpQTlQVDBnSnlBbklIeDhJRzl3WlhKaGRHbHZiaUE5UFQwZ0oxeGNYRnduS1NCN1hHNGdJQ0FnSUNBZ0lHaDFibXN1YkdsdVpYTXVjSFZ6YUNoa2FXWm1jM1J5VzJsZEtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2IzQmxjbUYwYVc5dUlEMDlQU0FuS3ljcElIdGNiaUFnSUNBZ0lDQWdJQ0JoWkdSRGIzVnVkQ3NyTzF4dUlDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHOXdaWEpoZEdsdmJpQTlQVDBnSnkwbktTQjdYRzRnSUNBZ0lDQWdJQ0FnY21WdGIzWmxRMjkxYm5Rckt6dGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2h2Y0dWeVlYUnBiMjRnUFQwOUlDY2dKeWtnZTF4dUlDQWdJQ0FnSUNBZ0lHRmtaRU52ZFc1MEt5czdYRzRnSUNBZ0lDQWdJQ0FnY21WdGIzWmxRMjkxYm5Rckt6dGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1NHRnVaR3hsSUhSb1pTQmxiWEIwZVNCaWJHOWpheUJqYjNWdWRDQmpZWE5sWEc0Z0lDQWdhV1lnS0NGaFpHUkRiM1Z1ZENBbUppQm9kVzVyTG01bGQweHBibVZ6SUQwOVBTQXhLU0I3WEc0Z0lDQWdJQ0JvZFc1ckxtNWxkMHhwYm1WeklEMGdNRHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLQ0Z5WlcxdmRtVkRiM1Z1ZENBbUppQm9kVzVyTG05c1pFeHBibVZ6SUQwOVBTQXhLU0I3WEc0Z0lDQWdJQ0JvZFc1ckxtOXNaRXhwYm1WeklEMGdNRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQXZMeUJRWlhKbWIzSnRJRzl3ZEdsdmJtRnNJSE5oYm1sMGVTQmphR1ZqYTJsdVoxeHVJQ0FnSUdsbUlDaHZjSFJwYjI1ekxuTjBjbWxqZENrZ2UxeHVJQ0FnSUNBZ2FXWWdLR0ZrWkVOdmRXNTBJQ0U5UFNCb2RXNXJMbTVsZDB4cGJtVnpLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduUVdSa1pXUWdiR2x1WlNCamIzVnVkQ0JrYVdRZ2JtOTBJRzFoZEdOb0lHWnZjaUJvZFc1cklHRjBJR3hwYm1VZ0p5QXJJQ2hqYUhWdWEwaGxZV1JsY2tsdVpHVjRJQ3NnTVNrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSEpsYlc5MlpVTnZkVzUwSUNFOVBTQm9kVzVyTG05c1pFeHBibVZ6S1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblVtVnRiM1psWkNCc2FXNWxJR052ZFc1MElHUnBaQ0J1YjNRZ2JXRjBZMmdnWm05eUlHaDFibXNnWVhRZ2JHbHVaU0FuSUNzZ0tHTm9kVzVyU0dWaFpHVnlTVzVrWlhnZ0t5QXhLU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHaDFibXM3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYVNBOElHUnBabVp6ZEhJdWJHVnVaM1JvS1NCN1hHNGdJQ0FnY0dGeWMyVkpibVJsZUNncE8xeHVJQ0I5WEc1Y2JpQWdjbVYwZFhKdUlHeHBjM1E3WEc1OVhHNGlYWDA9XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2RpZmYvbGliL3BhdGNoL3BhcnNlLmpzXG4vLyBtb2R1bGUgaWQgPSAyNTlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 260 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/*istanbul ignore start*/\"use strict\";\n\nexports.__esModule = true;\n\nexports[\"default\"] = /*istanbul ignore end*/function (start, minLine, maxLine) {\n var wantForward = true,\n backwardExhausted = false,\n forwardExhausted = false,\n localOffset = 1;\n\n return function iterator() {\n if (wantForward && !forwardExhausted) {\n if (backwardExhausted) {\n localOffset++;\n } else {\n wantForward = false;\n }\n\n // Check if trying to fit beyond text length, and if not, check it fits\n // after offset location (or desired location on first iteration)\n if (start + localOffset <= maxLine) {\n return localOffset;\n }\n\n forwardExhausted = true;\n }\n\n if (!backwardExhausted) {\n if (!forwardExhausted) {\n wantForward = true;\n }\n\n // Check if trying to fit before text beginning, and if not, check it fits\n // before offset location\n if (minLine <= start - localOffset) {\n return -localOffset++;\n }\n\n backwardExhausted = true;\n return iterator();\n }\n\n // We tried to fit hunk before text beginning and beyond text lenght, then\n // hunk can't fit on the text. Return undefined\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7NENBR2UsVUFBUyxBQUFULE9BQWdCLEFBQWhCLFNBQXlCLEFBQXpCLFNBQWtDLEFBQy9DO01BQUksY0FBYyxBQUFsQjtNQUNJLG9CQUFvQixBQUR4QjtNQUVJLG1CQUFtQixBQUZ2QjtNQUdJLGNBQWMsQUFIbEIsQUFLQTs7U0FBTyxTQUFTLEFBQVQsV0FBb0IsQUFDekI7UUFBSSxlQUFlLENBQUMsQUFBcEIsa0JBQXNDLEFBQ3BDO1VBQUksQUFBSixtQkFBdUIsQUFDckI7QUFDRDtBQUZELGFBRU8sQUFDTDtzQkFBYyxBQUFkLEFBQ0Q7Ozs7QUFJRDtVQUFJLFFBQVEsQUFBUixlQUF1QixBQUEzQixTQUFvQyxBQUNsQztlQUFPLEFBQVAsQUFDRDtBQUVEOzt5QkFBbUIsQUFBbkIsQUFDRDtBQUVEOztRQUFJLENBQUMsQUFBTCxtQkFBd0IsQUFDdEI7VUFBSSxDQUFDLEFBQUwsa0JBQXVCLEFBQ3JCO3NCQUFjLEFBQWQsQUFDRDs7OztBQUlEO1VBQUksV0FBVyxRQUFRLEFBQXZCLGFBQW9DLEFBQ2xDO2VBQU8sQ0FBQyxBQUFSLEFBQ0Q7QUFFRDs7MEJBQW9CLEFBQXBCLEFBQ0E7YUFBTyxBQUFQLEFBQ0Q7Ozs7QUFJRjtBQWxDRCxBQW1DRDtBIiwiZmlsZSI6ImRpc3RhbmNlLWl0ZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmdodCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0=//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL3V0aWwvZGlzdGFuY2UtaXRlcmF0b3IuanM/ZTAwNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI2MC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2Z1bmN0aW9uIChzdGFydCwgbWluTGluZSwgbWF4TGluZSkge1xuICB2YXIgd2FudEZvcndhcmQgPSB0cnVlLFxuICAgICAgYmFja3dhcmRFeGhhdXN0ZWQgPSBmYWxzZSxcbiAgICAgIGZvcndhcmRFeGhhdXN0ZWQgPSBmYWxzZSxcbiAgICAgIGxvY2FsT2Zmc2V0ID0gMTtcblxuICByZXR1cm4gZnVuY3Rpb24gaXRlcmF0b3IoKSB7XG4gICAgaWYgKHdhbnRGb3J3YXJkICYmICFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICBpZiAoYmFja3dhcmRFeGhhdXN0ZWQpIHtcbiAgICAgICAgbG9jYWxPZmZzZXQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRyeWluZyB0byBmaXQgYmV5b25kIHRleHQgbGVuZ3RoLCBhbmQgaWYgbm90LCBjaGVjayBpdCBmaXRzXG4gICAgICAvLyBhZnRlciBvZmZzZXQgbG9jYXRpb24gKG9yIGRlc2lyZWQgbG9jYXRpb24gb24gZmlyc3QgaXRlcmF0aW9uKVxuICAgICAgaWYgKHN0YXJ0ICsgbG9jYWxPZmZzZXQgPD0gbWF4TGluZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxPZmZzZXQ7XG4gICAgICB9XG5cbiAgICAgIGZvcndhcmRFeGhhdXN0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghYmFja3dhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmICghZm9yd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICB3YW50Rm9yd2FyZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRyeWluZyB0byBmaXQgYmVmb3JlIHRleHQgYmVnaW5uaW5nLCBhbmQgaWYgbm90LCBjaGVjayBpdCBmaXRzXG4gICAgICAvLyBiZWZvcmUgb2Zmc2V0IGxvY2F0aW9uXG4gICAgICBpZiAobWluTGluZSA8PSBzdGFydCAtIGxvY2FsT2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiAtbG9jYWxPZmZzZXQrKztcbiAgICAgIH1cblxuICAgICAgYmFja3dhcmRFeGhhdXN0ZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yKCk7XG4gICAgfVxuXG4gICAgLy8gV2UgdHJpZWQgdG8gZml0IGh1bmsgYmVmb3JlIHRleHQgYmVnaW5uaW5nIGFuZCBiZXlvbmQgdGV4dCBsZW5naHQsIHRoZW5cbiAgICAvLyBodW5rIGNhbid0IGZpdCBvbiB0aGUgdGV4dC4gUmV0dXJuIHVuZGVmaW5lZFxuICB9O1xufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTkxZEdsc0wyUnBjM1JoYm1ObExXbDBaWEpoZEc5eUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3TkVOQlIyVXNWVUZCVXl4QlFVRlVMRTlCUVdkQ0xFRkJRV2hDTEZOQlFYbENMRUZCUVhwQ0xGTkJRV3RETEVGQlF5OURPMDFCUVVrc1kwRkJZeXhCUVVGc1FqdE5RVU5KTEc5Q1FVRnZRaXhCUVVSNFFqdE5RVVZKTEcxQ1FVRnRRaXhCUVVaMlFqdE5RVWRKTEdOQlFXTXNRVUZJYkVJc1FVRkxRVHM3VTBGQlR5eFRRVUZUTEVGQlFWUXNWMEZCYjBJc1FVRkRla0k3VVVGQlNTeGxRVUZsTEVOQlFVTXNRVUZCY0VJc2EwSkJRWE5ETEVGQlEzQkRPMVZCUVVrc1FVRkJTaXh0UWtGQmRVSXNRVUZEY2tJN1FVRkRSRHRCUVVaRUxHRkJSVThzUVVGRFREdHpRa0ZCWXl4QlFVRmtMRUZCUTBRN096czdRVUZKUkR0VlFVRkpMRkZCUVZFc1FVRkJVaXhsUVVGMVFpeEJRVUV6UWl4VFFVRnZReXhCUVVOc1F6dGxRVUZQTEVGQlFWQXNRVUZEUkR0QlFVVkVPenQ1UWtGQmJVSXNRVUZCYmtJc1FVRkRSRHRCUVVWRU96dFJRVUZKTEVOQlFVTXNRVUZCVEN4dFFrRkJkMElzUVVGRGRFSTdWVUZCU1N4RFFVRkRMRUZCUVV3c2EwSkJRWFZDTEVGQlEzSkNPM05DUVVGakxFRkJRV1FzUVVGRFJEczdPenRCUVVsRU8xVkJRVWtzVjBGQlZ5eFJRVUZSTEVGQlFYWkNMR0ZCUVc5RExFRkJRMnhETzJWQlFVOHNRMEZCUXl4QlFVRlNMRUZCUTBRN1FVRkZSRHM3TUVKQlFXOUNMRUZCUVhCQ0xFRkJRMEU3WVVGQlR5eEJRVUZRTEVGQlEwUTdPenM3UVVGSlJqdEJRV3hEUkN4QlFXMURSRHRCSWl3aVptbHNaU0k2SW1ScGMzUmhibU5sTFdsMFpYSmhkRzl5TG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lMeThnU1hSbGNtRjBiM0lnZEdoaGRDQjBjbUYyWlhKelpYTWdhVzRnZEdobElISmhibWRsSUc5bUlGdHRhVzRzSUcxaGVGMHNJSE4wWlhCd2FXNW5YRzR2THlCaWVTQmthWE4wWVc1alpTQm1jbTl0SUdFZ1oybDJaVzRnYzNSaGNuUWdjRzl6YVhScGIyNHVJRWt1WlM0Z1ptOXlJRnN3TENBMFhTd2dkMmwwYUZ4dUx5OGdjM1JoY25RZ2IyWWdNaXdnZEdocGN5QjNhV3hzSUdsMFpYSmhkR1VnTWl3Z015d2dNU3dnTkN3Z01DNWNibVY0Y0c5eWRDQmtaV1poZFd4MElHWjFibU4wYVc5dUtITjBZWEowTENCdGFXNU1hVzVsTENCdFlYaE1hVzVsS1NCN1hHNGdJR3hsZENCM1lXNTBSbTl5ZDJGeVpDQTlJSFJ5ZFdVc1hHNGdJQ0FnSUNCaVlXTnJkMkZ5WkVWNGFHRjFjM1JsWkNBOUlHWmhiSE5sTEZ4dUlDQWdJQ0FnWm05eWQyRnlaRVY0YUdGMWMzUmxaQ0E5SUdaaGJITmxMRnh1SUNBZ0lDQWdiRzlqWVd4UFptWnpaWFFnUFNBeE8xeHVYRzRnSUhKbGRIVnliaUJtZFc1amRHbHZiaUJwZEdWeVlYUnZjaWdwSUh0Y2JpQWdJQ0JwWmlBb2QyRnVkRVp2Y25kaGNtUWdKaVlnSVdadmNuZGhjbVJGZUdoaGRYTjBaV1FwSUh0Y2JpQWdJQ0FnSUdsbUlDaGlZV05yZDJGeVpFVjRhR0YxYzNSbFpDa2dlMXh1SUNBZ0lDQWdJQ0JzYjJOaGJFOW1abk5sZENzck8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2QyRnVkRVp2Y25kaGNtUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdMeThnUTJobFkyc2dhV1lnZEhKNWFXNW5JSFJ2SUdacGRDQmlaWGx2Ym1RZ2RHVjRkQ0JzWlc1bmRHZ3NJR0Z1WkNCcFppQnViM1FzSUdOb1pXTnJJR2wwSUdacGRITmNiaUFnSUNBZ0lDOHZJR0ZtZEdWeUlHOW1abk5sZENCc2IyTmhkR2x2YmlBb2IzSWdaR1Z6YVhKbFpDQnNiMk5oZEdsdmJpQnZiaUJtYVhKemRDQnBkR1Z5WVhScGIyNHBYRzRnSUNBZ0lDQnBaaUFvYzNSaGNuUWdLeUJzYjJOaGJFOW1abk5sZENBOFBTQnRZWGhNYVc1bEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnNiMk5oYkU5bVpuTmxkRHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWm05eWQyRnlaRVY0YUdGMWMzUmxaQ0E5SUhSeWRXVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLQ0ZpWVdOcmQyRnlaRVY0YUdGMWMzUmxaQ2tnZTF4dUlDQWdJQ0FnYVdZZ0tDRm1iM0ozWVhKa1JYaG9ZWFZ6ZEdWa0tTQjdYRzRnSUNBZ0lDQWdJSGRoYm5SR2IzSjNZWEprSUQwZ2RISjFaVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1EyaGxZMnNnYVdZZ2RISjVhVzVuSUhSdklHWnBkQ0JpWldadmNtVWdkR1Y0ZENCaVpXZHBibTVwYm1jc0lHRnVaQ0JwWmlCdWIzUXNJR05vWldOcklHbDBJR1pwZEhOY2JpQWdJQ0FnSUM4dklHSmxabTl5WlNCdlptWnpaWFFnYkc5allYUnBiMjVjYmlBZ0lDQWdJR2xtSUNodGFXNU1hVzVsSUR3OUlITjBZWEowSUMwZ2JHOWpZV3hQWm1aelpYUXBJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJQzFzYjJOaGJFOW1abk5sZENzck8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQmlZV05yZDJGeVpFVjRhR0YxYzNSbFpDQTlJSFJ5ZFdVN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhSbGNtRjBiM0lvS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0F2THlCWFpTQjBjbWxsWkNCMGJ5Qm1hWFFnYUhWdWF5QmlaV1p2Y21VZ2RHVjRkQ0JpWldkcGJtNXBibWNnWVc1a0lHSmxlVzl1WkNCMFpYaDBJR3hsYm1kb2RDd2dkR2hsYmx4dUlDQWdJQzh2SUdoMWJtc2dZMkZ1SjNRZ1ptbDBJRzl1SUhSb1pTQjBaWGgwTGlCU1pYUjFjbTRnZFc1a1pXWnBibVZrWEc0Z0lIMDdYRzU5WEc0aVhYMD1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvdXRpbC9kaXN0YW5jZS1pdGVyYXRvci5qc1xuLy8gbW9kdWxlIGlkID0gMjYwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
|
||
|
||
/***/ },
|
||
/* 261 */
|
||
/***/ function(module, exports, __webpack_require__) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports. /*istanbul ignore end*/structuredPatch = structuredPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch;\n/*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch;\n\nvar /*istanbul ignore start*/_line = __webpack_require__(254) /*istanbul ignore end*/;\n\n/*istanbul ignore start*/\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\n/*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n if (!options) {\n options = { context: 4 };\n }\n\n var diff = /*istanbul ignore start*/(0, _line.diffLines /*istanbul ignore end*/)(oldStr, newStr);\n diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier\n\n function contextLines(lines) {\n return lines.map(function (entry) {\n return ' ' + entry;\n });\n }\n\n var hunks = [];\n var oldRangeStart = 0,\n newRangeStart = 0,\n curRange = [],\n oldLine = 1,\n newLine = 1;\n /*istanbul ignore start*/\n var _loop = function _loop( /*istanbul ignore end*/i) {\n var current = diff[i],\n lines = current.lines || current.value.replace(/\\n$/, '').split('\\n');\n current.lines = lines;\n\n if (current.added || current.removed) {\n /*istanbul ignore start*/\n var _curRange;\n\n /*istanbul ignore end*/\n // If we have previous context, start with that\n if (!oldRangeStart) {\n var prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n\n if (prev) {\n curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n\n // Output our changes\n /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) {\n return (current.added ? '+' : '-') + entry;\n })));\n\n // Track the updated file position\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n // Identical context lines. Track line changes\n if (oldRangeStart) {\n // Close out any changes that have been output (or join overlapping)\n if (lines.length <= options.context * 2 && i < diff.length - 2) {\n /*istanbul ignore start*/\n var _curRange2;\n\n /*istanbul ignore end*/\n // Overlapping\n /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines)));\n } else {\n /*istanbul ignore start*/\n var _curRange3;\n\n /*istanbul ignore end*/\n // end the range and output\n var contextSize = Math.min(lines.length, options.context);\n /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize))));\n\n var hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n if (i >= diff.length - 2 && lines.length <= options.context) {\n // EOF is inside this hunk\n var oldEOFNewline = /\\n$/.test(oldStr);\n var newEOFNewline = /\\n$/.test(newStr);\n if (lines.length == 0 && !oldEOFNewline) {\n // special case: old has no eol and no trailing context; no-nl can end up before adds\n curRange.splice(hunk.oldLines, 0, '\\\\ No newline at end of file');\n } else if (!oldEOFNewline || !newEOFNewline) {\n curRange.push('\\\\ No newline at end of file');\n }\n }\n hunks.push(hunk);\n\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n };\n\n for (var i = 0; i < diff.length; i++) {\n /*istanbul ignore start*/\n _loop( /*istanbul ignore end*/i);\n }\n\n return {\n oldFileName: oldFileName, newFileName: newFileName,\n oldHeader: oldHeader, newHeader: newHeader,\n hunks: hunks\n };\n}\n\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {\n var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);\n\n var ret = [];\n if (oldFileName == newFileName) {\n ret.push('Index: ' + oldFileName);\n }\n ret.push('===================================================================');\n ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\\t' + diff.oldHeader));\n ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\\t' + diff.newHeader));\n\n for (var i = 0; i < diff.hunks.length; i++) {\n var hunk = diff.hunks[i];\n ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');\n ret.push.apply(ret, hunk.lines);\n }\n\n return ret.join('\\n') + '\\n';\n}\n\nfunction createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {\n return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O2dDQUVnQixBLGtCLEFBQUE7eUQsQUE4RkEsc0IsQUFBQTt5REF3QkEsQSxjLEFBQUE7O0FBeEhoQixJLHlCQUFBLGdCLGdCQUFBOzs7Ozs7Ozs7Ozs7O3VCQUVPLFNBQUEsQUFBUyxnQkFBVCxBQUF5QixhQUF6QixBQUFzQyxhQUF0QyxBQUFtRCxRQUFuRCxBQUEyRCxRQUEzRCxBQUFtRSxXQUFuRSxBQUE4RSxXQUE5RSxBQUF5RjtNQUMxRixDQUFKLEFBQUssU0FBUyxBQUNaO2NBQVUsRUFBRSxTQUFaLEFBQVUsQUFBVyxBQUN0QjtBQUVEOztNQUFNLE8seUJBQU8sVSxVQUFBLHlCQUFBLEFBQVUsUUFBdkIsQUFBYSxBQUFrQixBQUMvQjtPQUFBLEFBQUssS0FBSyxFQUFDLE9BQUQsQUFBUSxJQUFJLE9BQXRCLEFBQVUsQUFBbUIsQSxNQU4wRSxBQUN2RyxDQU9BOztXQUFBLEFBQVMsYUFBVCxBQUFzQixPQUFPLEFBQzNCO2lCQUFPLEFBQU0sSUFBSSxVQUFBLEFBQVMsT0FBTyxBQUFFO2FBQU8sTUFBUCxBQUFhLEFBQVE7QUFBeEQsQUFBTyxBQUNSLEtBRFE7QUFHVDs7TUFBSSxRQUFKLEFBQVksQUFDWjtNQUFJLGdCQUFKLEFBQW9CO01BQUcsZ0JBQXZCLEFBQXVDO01BQUcsV0FBMUMsQUFBcUQ7TUFDakQsVUFESixBQUNjO01BQUcsVUFEakIsQUFDMkI7QUFkNEU7dUIsOEJBQUEsQUFlOUYsR0FDUDtRQUFNLFVBQVUsS0FBaEIsQUFBZ0IsQUFBSztRQUNmLFFBQVEsUUFBQSxBQUFRLFNBQVMsUUFBQSxBQUFRLE1BQVIsQUFBYyxRQUFkLEFBQXNCLE9BQXRCLEFBQTZCLElBQTdCLEFBQWlDLE1BRGhFLEFBQytCLEFBQXVDLEFBQ3RFO1lBQUEsQUFBUSxRQUFSLEFBQWdCLEFBRWhCOztRQUFJLFFBQUEsQUFBUSxTQUFTLFFBQXJCLEFBQTZCLFNBQVM7QUFB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SUFBQSxBQUFJLEtBQUosQUFBUyxRQUFoQixBQUF3QixBQUN6Qjs7O0FBRU0sU0FBQSxBQUFTLFlBQVQsQUFBcUIsVUFBckIsQUFBK0IsUUFBL0IsQUFBdUMsUUFBdkMsQUFBK0MsV0FBL0MsQUFBMEQsV0FBMUQsQUFBcUUsU0FBUyxBQUNuRjtTQUFPLG9CQUFBLEFBQW9CLFVBQXBCLEFBQThCLFVBQTlCLEFBQXdDLFFBQXhDLEFBQWdELFFBQWhELEFBQXdELFdBQXhELEFBQW1FLFdBQTFFLEFBQU8sQUFBOEUsQUFDdEYiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgY29udGV4dDogNCB9O1xuICB9XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZMaW5lcyhvbGRTdHIsIG5ld1N0cik7XG4gIGRpZmYucHVzaCh7dmFsdWU6ICcnLCBsaW5lczogW119KTsgICAvLyBBcHBlbmQgYW4gZW1wdHkgdmFsdWUgdG8gbWFrZSBjbGVhbnVwIGVhc2llclxuXG4gIGZ1bmN0aW9uIGNvbnRleHRMaW5lcyhsaW5lcykge1xuICAgIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24oZW50cnkpIHsgcmV0dXJuICcgJyArIGVudHJ5OyB9KTtcbiAgfVxuXG4gIGxldCBodW5rcyA9IFtdO1xuICBsZXQgb2xkUmFuZ2VTdGFydCA9IDAsIG5ld1JhbmdlU3RhcnQgPSAwLCBjdXJSYW5nZSA9IFtdLFxuICAgICAgb2xkTGluZSA9IDEsIG5ld0xpbmUgPSAxO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjdXJyZW50ID0gZGlmZltpXSxcbiAgICAgICAgICBsaW5lcyA9IGN1cnJlbnQubGluZXMgfHwgY3VycmVudC52YWx1ZS5yZXBsYWNlKC9cXG4kLywgJycpLnNwbGl0KCdcXG4nKTtcbiAgICBjdXJyZW50LmxpbmVzID0gbGluZXM7XG5cbiAgICBpZiAoY3VycmVudC5hZGRlZCB8fCBjdXJyZW50LnJlbW92ZWQpIHtcbiAgICAgIC8vIElmIHdlIGhhdmUgcHJldmlvdXMgY29udGV4dCwgc3RhcnQgd2l0aCB0aGF0XG4gICAgICBpZiAoIW9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgY29uc3QgcHJldiA9IGRpZmZbaSAtIDFdO1xuICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gb2xkTGluZTtcbiAgICAgICAgbmV3UmFuZ2VTdGFydCA9IG5ld0xpbmU7XG5cbiAgICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgICBjdXJSYW5nZSA9IG9wdGlvbnMuY29udGV4dCA+IDAgPyBjb250ZXh0TGluZXMocHJldi5saW5lcy5zbGljZSgtb3B0aW9ucy5jb250ZXh0KSkgOiBbXTtcbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0IC09IGN1clJhbmdlLmxlbmd0aDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0IC09IGN1clJhbmdlLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBPdXRwdXQgb3VyIGNoYW5nZXNcbiAgICAgIGN1clJhbmdlLnB1c2goLi4uIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkge1xuICAgICAgICByZXR1cm4gKGN1cnJlbnQuYWRkZWQgPyAnKycgOiAnLScpICsgZW50cnk7XG4gICAgICB9KSk7XG5cbiAgICAgIC8vIFRyYWNrIHRoZSB1cGRhdGVkIGZpbGUgcG9zaXRpb25cbiAgICAgIGlmIChjdXJyZW50LmFkZGVkKSB7XG4gICAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2xkTGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElkZW50aWNhbCBjb250ZXh0IGxpbmVzLiBUcmFjayBsaW5lIGNoYW5nZXNcbiAgICAgIGlmIChvbGRSYW5nZVN0YXJ0KSB7XG4gICAgICAgIC8vIENsb3NlIG91dCBhbnkgY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBvdXRwdXQgKG9yIGpvaW4gb3ZlcmxhcHBpbmcpXG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggPD0gb3B0aW9ucy5jb250ZXh0ICogMiAmJiBpIDwgZGlmZi5sZW5ndGggLSAyKSB7XG4gICAgICAgICAgLy8gT3ZlcmxhcHBpbmdcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBlbmQgdGhlIHJhbmdlIGFuZCBvdXRwdXRcbiAgICAgICAgICBsZXQgY29udGV4dFNpemUgPSBNYXRoLm1pbihsaW5lcy5sZW5ndGgsIG9wdGlvbnMuY29udGV4dCk7XG4gICAgICAgICAgY3VyUmFuZ2UucHVzaCguLi4gY29udGV4dExpbmVzKGxpbmVzLnNsaWNlKDAsIGNvbnRleHRTaXplKSkpO1xuXG4gICAgICAgICAgbGV0IGh1bmsgPSB7XG4gICAgICAgICAgICBvbGRTdGFydDogb2xkUmFuZ2VTdGFydCxcbiAgICAgICAgICAgIG9sZExpbmVzOiAob2xkTGluZSAtIG9sZFJhbmdlU3RhcnQgKyBjb250ZXh0U2l6ZSksXG4gICAgICAgICAgICBuZXdTdGFydDogbmV3UmFuZ2VTdGFydCxcbiAgICAgICAgICAgIG5ld0xpbmVzOiAobmV3TGluZSAtIG5ld1JhbmdlU3RhcnQgKyBjb250ZXh0U2l6ZSksXG4gICAgICAgICAgICBsaW5lczogY3VyUmFuZ2VcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChpID49IGRpZmYubGVuZ3RoIC0gMiAmJiBsaW5lcy5sZW5ndGggPD0gb3B0aW9ucy5jb250ZXh0KSB7XG4gICAgICAgICAgICAvLyBFT0YgaXMgaW5zaWRlIHRoaXMgaHVua1xuICAgICAgICAgICAgbGV0IG9sZEVPRk5ld2xpbmUgPSAoL1xcbiQvLnRlc3Qob2xkU3RyKSk7XG4gICAgICAgICAgICBsZXQgbmV3RU9GTmV3bGluZSA9ICgvXFxuJC8udGVzdChuZXdTdHIpKTtcbiAgICAgICAgICAgIGlmIChsaW5lcy5sZW5ndGggPT0gMCAmJiAhb2xkRU9GTmV3bGluZSkge1xuICAgICAgICAgICAgICAvLyBzcGVjaWFsIGNhc2U6IG9sZCBoYXMgbm8gZW9sIGFuZCBubyB0cmFpbGluZyBjb250ZXh0OyBuby1ubCBjYW4gZW5kIHVwIGJlZm9yZSBhZGRzXG4gICAgICAgICAgICAgIGN1clJhbmdlLnNwbGljZShodW5rLm9sZExpbmVzLCAwLCAnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFvbGRFT0ZOZXdsaW5lIHx8ICFuZXdFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIGN1clJhbmdlLnB1c2goJ1xcXFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBodW5rcy5wdXNoKGh1bmspO1xuXG4gICAgICAgICAgb2xkUmFuZ2VTdGFydCA9IDA7XG4gICAgICAgICAgbmV3UmFuZ2VTdGFydCA9IDA7XG4gICAgICAgICAgY3VyUmFuZ2UgPSBbXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgb2xkTGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICBuZXdMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9sZEZpbGVOYW1lOiBvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWU6IG5ld0ZpbGVOYW1lLFxuICAgIG9sZEhlYWRlcjogb2xkSGVhZGVyLCBuZXdIZWFkZXI6IG5ld0hlYWRlcixcbiAgICBodW5rczogaHVua3NcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgY29uc3QgZGlmZiA9IHN0cnVjdHVyZWRQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucyk7XG5cbiAgY29uc3QgcmV0ID0gW107XG4gIGlmIChvbGRGaWxlTmFtZSA9PSBuZXdGaWxlTmFtZSkge1xuICAgIHJldC5wdXNoKCdJbmRleDogJyArIG9sZEZpbGVOYW1lKTtcbiAgfVxuICByZXQucHVzaCgnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScpO1xuICByZXQucHVzaCgnLS0tICcgKyBkaWZmLm9sZEZpbGVOYW1lICsgKHR5cGVvZiBkaWZmLm9sZEhlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6ICdcXHQnICsgZGlmZi5vbGRIZWFkZXIpKTtcbiAgcmV0LnB1c2goJysrKyAnICsgZGlmZi5uZXdGaWxlTmFtZSArICh0eXBlb2YgZGlmZi5uZXdIZWFkZXIgPT09ICd1bmRlZmluZWQnID8gJycgOiAnXFx0JyArIGRpZmYubmV3SGVhZGVyKSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmLmh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgaHVuayA9IGRpZmYuaHVua3NbaV07XG4gICAgcmV0LnB1c2goXG4gICAgICAnQEAgLScgKyBodW5rLm9sZFN0YXJ0ICsgJywnICsgaHVuay5vbGRMaW5lc1xuICAgICAgKyAnICsnICsgaHVuay5uZXdTdGFydCArICcsJyArIGh1bmsubmV3TGluZXNcbiAgICAgICsgJyBAQCdcbiAgICApO1xuICAgIHJldC5wdXNoLmFwcGx5KHJldCwgaHVuay5saW5lcyk7XG4gIH1cblxuICByZXR1cm4gcmV0LmpvaW4oJ1xcbicpICsgJ1xcbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXRjaChmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIHJldHVybiBjcmVhdGVUd29GaWxlc1BhdGNoKGZpbGVOYW1lLCBmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcbn1cbiJdfQ==//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL3BhdGNoL2NyZWF0ZS5qcz85NTdhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QyxnQkFBZ0I7QUFDN0Q7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQUVBO0FBQ0EsYUFBYSx1QkFBdUIsRUFBRTs7QUFFdEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIsaUJBQWlCO0FBQ2xDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIsdUJBQXVCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI2MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL3N0cnVjdHVyZWRQYXRjaCA9IHN0cnVjdHVyZWRQYXRjaDtcbi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2NyZWF0ZVR3b0ZpbGVzUGF0Y2ggPSBjcmVhdGVUd29GaWxlc1BhdGNoO1xuLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL2V4cG9ydHMuIC8qaXN0YW5idWwgaWdub3JlIGVuZCovY3JlYXRlUGF0Y2ggPSBjcmVhdGVQYXRjaDtcblxudmFyIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fbGluZSA9IHJlcXVpcmUoJy4uL2RpZmYvbGluZScpIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuXG4vKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnIyW2ldID0gYXJyW2ldO1xuICAgIH1yZXR1cm4gYXJyMjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShhcnIpO1xuICB9XG59XG5cbi8qaXN0YW5idWwgaWdub3JlIGVuZCovZnVuY3Rpb24gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7IGNvbnRleHQ6IDQgfTtcbiAgfVxuXG4gIHZhciBkaWZmID0gLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqLygwLCBfbGluZS5kaWZmTGluZXMgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi8pKG9sZFN0ciwgbmV3U3RyKTtcbiAgZGlmZi5wdXNoKHsgdmFsdWU6ICcnLCBsaW5lczogW10gfSk7IC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbiAoZW50cnkpIHtcbiAgICAgIHJldHVybiAnICcgKyBlbnRyeTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBodW5rcyA9IFtdO1xuICB2YXIgb2xkUmFuZ2VTdGFydCA9IDAsXG4gICAgICBuZXdSYW5nZVN0YXJ0ID0gMCxcbiAgICAgIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSxcbiAgICAgIG5ld0xpbmUgPSAxO1xuICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG4gIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKCAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2kpIHtcbiAgICB2YXIgY3VycmVudCA9IGRpZmZbaV0sXG4gICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuICAgICAgdmFyIF9jdXJSYW5nZTtcblxuICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9cbiAgICAgIC8vIElmIHdlIGhhdmUgcHJldmlvdXMgY29udGV4dCwgc3RhcnQgd2l0aCB0aGF0XG4gICAgICBpZiAoIW9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgdmFyIHByZXYgPSBkaWZmW2kgLSAxXTtcbiAgICAgICAgb2xkUmFuZ2VTdGFydCA9IG9sZExpbmU7XG4gICAgICAgIG5ld1JhbmdlU3RhcnQgPSBuZXdMaW5lO1xuXG4gICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgY3VyUmFuZ2UgPSBvcHRpb25zLmNvbnRleHQgPiAwID8gY29udGV4dExpbmVzKHByZXYubGluZXMuc2xpY2UoLW9wdGlvbnMuY29udGV4dCkpIDogW107XG4gICAgICAgICAgb2xkUmFuZ2VTdGFydCAtPSBjdXJSYW5nZS5sZW5ndGg7XG4gICAgICAgICAgbmV3UmFuZ2VTdGFydCAtPSBjdXJSYW5nZS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gT3V0cHV0IG91ciBjaGFuZ2VzXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovKF9jdXJSYW5nZSA9IC8qaXN0YW5idWwgaWdub3JlIGVuZCovY3VyUmFuZ2UpLnB1c2guIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9hcHBseSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLyggLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19jdXJSYW5nZSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLywgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL190b0NvbnN1bWFibGVBcnJheSggLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9saW5lcy5tYXAoZnVuY3Rpb24gKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKSk7XG5cbiAgICAgIC8vIFRyYWNrIHRoZSB1cGRhdGVkIGZpbGUgcG9zaXRpb25cbiAgICAgIGlmIChjdXJyZW50LmFkZGVkKSB7XG4gICAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb2xkTGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElkZW50aWNhbCBjb250ZXh0IGxpbmVzLiBUcmFjayBsaW5lIGNoYW5nZXNcbiAgICAgIGlmIChvbGRSYW5nZVN0YXJ0KSB7XG4gICAgICAgIC8vIENsb3NlIG91dCBhbnkgY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBvdXRwdXQgKG9yIGpvaW4gb3ZlcmxhcHBpbmcpXG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggPD0gb3B0aW9ucy5jb250ZXh0ICogMiAmJiBpIDwgZGlmZi5sZW5ndGggLSAyKSB7XG4gICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1xuICAgICAgICAgIHZhciBfY3VyUmFuZ2UyO1xuXG4gICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9cbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8oX2N1clJhbmdlMiA9IC8qaXN0YW5idWwgaWdub3JlIGVuZCovY3VyUmFuZ2UpLnB1c2guIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9hcHBseSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLyggLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19jdXJSYW5nZTIgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi8sIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fdG9Db25zdW1hYmxlQXJyYXkoIC8qaXN0YW5idWwgaWdub3JlIGVuZCovY29udGV4dExpbmVzKGxpbmVzKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9cbiAgICAgICAgICB2YXIgX2N1clJhbmdlMztcblxuICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVuZCovXG4gICAgICAgICAgLy8gZW5kIHRoZSByYW5nZSBhbmQgb3V0cHV0XG4gICAgICAgICAgdmFyIGNvbnRleHRTaXplID0gTWF0aC5taW4obGluZXMubGVuZ3RoLCBvcHRpb25zLmNvbnRleHQpO1xuICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8oX2N1clJhbmdlMyA9IC8qaXN0YW5idWwgaWdub3JlIGVuZCovY3VyUmFuZ2UpLnB1c2guIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9hcHBseSAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqLyggLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL19jdXJSYW5nZTMgLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi8sIC8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki9fdG9Db25zdW1hYmxlQXJyYXkoIC8qaXN0YW5idWwgaWdub3JlIGVuZCovY29udGV4dExpbmVzKGxpbmVzLnNsaWNlKDAsIGNvbnRleHRTaXplKSkpKTtcblxuICAgICAgICAgIHZhciBodW5rID0ge1xuICAgICAgICAgICAgb2xkU3RhcnQ6IG9sZFJhbmdlU3RhcnQsXG4gICAgICAgICAgICBvbGRMaW5lczogb2xkTGluZSAtIG9sZFJhbmdlU3RhcnQgKyBjb250ZXh0U2l6ZSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IG5ld0xpbmUgLSBuZXdSYW5nZVN0YXJ0ICsgY29udGV4dFNpemUsXG4gICAgICAgICAgICBsaW5lczogY3VyUmFuZ2VcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChpID49IGRpZmYubGVuZ3RoIC0gMiAmJiBsaW5lcy5sZW5ndGggPD0gb3B0aW9ucy5jb250ZXh0KSB7XG4gICAgICAgICAgICAvLyBFT0YgaXMgaW5zaWRlIHRoaXMgaHVua1xuICAgICAgICAgICAgdmFyIG9sZEVPRk5ld2xpbmUgPSAvXFxuJC8udGVzdChvbGRTdHIpO1xuICAgICAgICAgICAgdmFyIG5ld0VPRk5ld2xpbmUgPSAvXFxuJC8udGVzdChuZXdTdHIpO1xuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PSAwICYmICFvbGRFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogb2xkIGhhcyBubyBlb2wgYW5kIG5vIHRyYWlsaW5nIGNvbnRleHQ7IG5vLW5sIGNhbiBlbmQgdXAgYmVmb3JlIGFkZHNcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9sZEVPRk5ld2xpbmUgfHwgIW5ld0VPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgY3VyUmFuZ2UucHVzaCgnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGh1bmtzLnB1c2goaHVuayk7XG5cbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJSYW5nZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgfTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGRpZmYubGVuZ3RoOyBpKyspIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovXG4gICAgX2xvb3AoIC8qaXN0YW5idWwgaWdub3JlIGVuZCovaSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9sZEZpbGVOYW1lOiBvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWU6IG5ld0ZpbGVOYW1lLFxuICAgIG9sZEhlYWRlcjogb2xkSGVhZGVyLCBuZXdIZWFkZXI6IG5ld0hlYWRlcixcbiAgICBodW5rczogaHVua3NcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICB2YXIgZGlmZiA9IHN0cnVjdHVyZWRQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucyk7XG5cbiAgdmFyIHJldCA9IFtdO1xuICBpZiAob2xkRmlsZU5hbWUgPT0gbmV3RmlsZU5hbWUpIHtcbiAgICByZXQucHVzaCgnSW5kZXg6ICcgKyBvbGRGaWxlTmFtZSk7XG4gIH1cbiAgcmV0LnB1c2goJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgcmV0LnB1c2goJy0tLSAnICsgZGlmZi5vbGRGaWxlTmFtZSArICh0eXBlb2YgZGlmZi5vbGRIZWFkZXIgPT09ICd1bmRlZmluZWQnID8gJycgOiAnXFx0JyArIGRpZmYub2xkSGVhZGVyKSk7XG4gIHJldC5wdXNoKCcrKysgJyArIGRpZmYubmV3RmlsZU5hbWUgKyAodHlwZW9mIGRpZmYubmV3SGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm5ld0hlYWRlcikpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGlmZi5odW5rcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBodW5rID0gZGlmZi5odW5rc1tpXTtcbiAgICByZXQucHVzaCgnQEAgLScgKyBodW5rLm9sZFN0YXJ0ICsgJywnICsgaHVuay5vbGRMaW5lcyArICcgKycgKyBodW5rLm5ld1N0YXJ0ICsgJywnICsgaHVuay5uZXdMaW5lcyArICcgQEAnKTtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIGh1bmsubGluZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJldC5qb2luKCdcXG4nKSArICdcXG4nO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQYXRjaChmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIHJldHVybiBjcmVhdGVUd29GaWxlc1BhdGNoKGZpbGVOYW1lLCBmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTl3WVhSamFDOWpjbVZoZEdVdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPMmREUVVWblFpeEJMR3RDTEVGQlFVRTdlVVFzUVVFNFJrRXNjMElzUVVGQlFUdDVSRUYzUWtFc1FTeGpMRUZCUVVFN08wRkJlRWhvUWl4SkxIbENRVUZCTEdkQ0xHZENRVUZCT3pzN096czdPenM3T3pzN08zVkNRVVZQTEZOQlFVRXNRVUZCVXl4blFrRkJWQ3hCUVVGNVFpeGhRVUY2UWl4QlFVRnpReXhoUVVGMFF5eEJRVUZ0UkN4UlFVRnVSQ3hCUVVFeVJDeFJRVUV6UkN4QlFVRnRSU3hYUVVGdVJTeEJRVUU0UlN4WFFVRTVSU3hCUVVGNVJqdE5RVU14Uml4RFFVRktMRUZCUVVzc1UwRkJVeXhCUVVOYU8yTkJRVlVzUlVGQlJTeFRRVUZhTEVGQlFWVXNRVUZCVnl4QlFVTjBRanRCUVVWRU96dE5RVUZOTEU4c2VVSkJRVThzVlN4VlFVRkJMSGxDUVVGQkxFRkJRVlVzVVVGQmRrSXNRVUZCWVN4QlFVRnJRaXhCUVVNdlFqdFBRVUZCTEVGQlFVc3NTMEZCU3l4RlFVRkRMRTlCUVVRc1FVRkJVU3hKUVVGSkxFOUJRWFJDTEVGQlFWVXNRVUZCYlVJc1FTeE5RVTR3UlN4QlFVTjJSeXhEUVU5Qk96dFhRVUZCTEVGQlFWTXNZVUZCVkN4QlFVRnpRaXhQUVVGUExFRkJRek5DTzJsQ1FVRlBMRUZCUVUwc1NVRkJTU3hWUVVGQkxFRkJRVk1zVDBGQlR5eEJRVUZGTzJGQlFVOHNUVUZCVUN4QlFVRmhMRUZCUVZFN1FVRkJlRVFzUVVGQlR5eEJRVU5TTEV0QlJGRTdRVUZIVkRzN1RVRkJTU3hSUVVGS0xFRkJRVmtzUVVGRFdqdE5RVUZKTEdkQ1FVRktMRUZCUVc5Q08wMUJRVWNzWjBKQlFYWkNMRUZCUVhWRE8wMUJRVWNzVjBGQk1VTXNRVUZCY1VRN1RVRkRha1FzVlVGRVNpeEJRVU5qTzAxQlFVY3NWVUZFYWtJc1FVRkRNa0k3UVVGa05FVTdkVUlzT0VKQlFVRXNRVUZsT1VZc1IwRkRVRHRSUVVGTkxGVkJRVlVzUzBGQmFFSXNRVUZCWjBJc1FVRkJTenRSUVVObUxGRkJRVkVzVVVGQlFTeEJRVUZSTEZOQlFWTXNVVUZCUVN4QlFVRlJMRTFCUVZJc1FVRkJZeXhSUVVGa0xFRkJRWE5DTEU5QlFYUkNMRUZCUVRaQ0xFbEJRVGRDTEVGQlFXbERMRTFCUkdoRkxFRkJReXRDTEVGQlFYVkRMRUZCUTNSRk8xbEJRVUVzUVVGQlVTeFJRVUZTTEVGQlFXZENMRUZCUldoQ096dFJRVUZKTEZGQlFVRXNRVUZCVVN4VFFVRlRMRkZCUVhKQ0xFRkJRVFpDTEZOQlFWTTdRVUZCUVRzN096dEJRVVZ3UXp0VlFVRkpMRU5CUVVvc1FVRkJTeXhsUVVGbExFRkJRMnhDTzFsQlFVMHNUMEZCVHl4TFFVRkxMRWxCUVd4Q0xFRkJRV0VzUVVGQlV5eEJRVU4wUWp0M1FrRkJRU3hCUVVGblFpeEJRVU5vUWp0M1FrRkJRU3hCUVVGblFpeEJRVVZvUWpzN1dVRkJRU3hCUVVGSkxFMUJRVTBzUVVGRFVqdHhRa0ZCVnl4UlFVRkJMRUZCUVZFc1ZVRkJVaXhCUVVGclFpeEpRVUZKTEdGQlFXRXNTMEZCUVN4QlFVRkxMRTFCUVV3c1FVRkJWeXhOUVVGTkxFTkJRVU1zVVVGQmNrUXNRVUZCYzBJc1FVRkJZU3hCUVVFd1FpeFpRVUY0UlN4QlFVRnZSaXhCUVVOd1Jqc3lRa0ZCYVVJc1UwRkJha0lzUVVGQk1FSXNRVUZETVVJN01rSkJRV2xDTEZOQlFXcENMRUZCUVRCQ0xFRkJRek5DTzBGQlEwWTdPenM3TkVNc2RVSkJSMFFzVlVGQlFTeEJRVUZUTEVFc0swSkJRVlFzUVN4TlFVRkJMRUVzYTBSQlFVRXNRU3hWUVVGQkxIbENMREJGUVVGclFpeEJRVUZOTEVsQlFVa3NWVUZCUVN4QlFVRlRMRTlCUVU4c1FVRkRNVU03WlVGQlR5eERRVUZETEZGQlFVRXNRVUZCVVN4UlFVRlNMRUZCUVdkQ0xFMUJRV3BDTEVGQlFYVkNMRTlCUVRsQ0xFRkJRWEZETEVGQlEzUkRPMEZCUmtRc1FVRkJhMElzVDBGQlFTeERMRUZCUVd4Q0xFTkJRVUU3TzBGQlMwRTdWVUZCU1N4UlFVRktMRUZCUVZrc1QwRkJUeXhCUVVOcVFqdHRRa0ZCVnl4TlFVRllMRUZCUVdsQ0xFRkJRMnhDTzBGQlJrUXNZVUZGVHl4QlFVTk1PMjFDUVVGWExFMUJRVmdzUVVGQmFVSXNRVUZEYkVJN1FVRkRSanRCUVhwQ1JDeFhRWGxDVHp0QlFVVk1PMVZCUVVFc1FVRkJTU3hsUVVGbE8wRkJSV3BDTzFsQlFVa3NUVUZCUVN4QlFVRk5MRlZCUVZVc1VVRkJRU3hCUVVGUkxGVkJRWGhDTEVGQlFXdERMRXRCUVVzc1NVRkJTU3hMUVVGQkxFRkJRVXNzVTBGQmNFUXNRVUZCTmtRc1IwRkJSenRCUVVGQk96czdPenR0UTBGRk9VUXNZeXgxUWtGQlFTeFZRVUZCTEVFc1FVRkJVeXdyUWl4QlFVRlVMRTFCUVVFc1FTeHJSRUZCUVN4QkxGZEJRVUVzZVVJc2VVSkJRVUVzUVN3eVEwRkJhMElzWVVGQmJFSXNRVUZCYTBJc1FVRkJZU3hCUVVOb1F6dEJRVWhFTEdWQlIwODdRVUZCUVRzN096dEJRVVZNTzJOQlFVa3NZMEZCWXl4TFFVRkJMRUZCUVVzc1NVRkJTU3hOUVVGVUxFRkJRV1VzVVVGQlVTeFJRVUY2UXl4QlFVRnJRaXhCUVVFclFqdHRRMEZEYWtRc1l5eDFRa0ZCUVN4VlFVRkJMRUZCUVZNc1FTd3JRa0ZCVkN4QkxFMHNRVUZCUVN4clJDeEJRVUZCTEZkQlFVRXNlVUlzZVVKQlFVRXNRU3d5UTBGQmEwSXNZVUZCWVN4TlFVRkJMRUZCUVUwc1RVRkJUaXhCUVVGWkxFZEJRVE5ETEVGQlFXdENMRUZCUVdFc1FVRkJaU3hCUVVVNVF6czdZMEZCU1R0elFrRkJUeXhCUVVORExFRkJRMVk3YzBKQlFWY3NWVUZCUVN4QlFVRlZMR2RDUVVaYUxFRkJSVFJDTEVGQlEzSkRPM05DUVVoVExFRkJSME1zUVVGRFZqdHpRa0ZCVnl4VlFVRkJMRUZCUVZVc1owSkJTbG9zUVVGSk5FSXNRVUZEY2tNN2JVSkJURVlzUVVGQlZ5eEJRVXRHTEVGQlJWUTdRVUZRVnl4QlFVTlVPMk5CVFVVc1MwRkJTeXhMUVVGQkxFRkJRVXNzVTBGQlZpeEJRVUZ0UWl4TFFVRkxMRTFCUVVFc1FVRkJUU3hWUVVGVkxGRkJRVFZETEVGQlFXOUVMRk5CUVZNN1FVRkZNMFE3WjBKQlFVa3NaMEpCUVdsQ0xFMUJRVUVzUVVGQlRTeExRVUV6UWl4QlFVRnhRaXhCUVVGWExFRkJRMmhETzJkQ1FVRkpMR2RDUVVGcFFpeE5RVUZCTEVGQlFVMHNTMEZCTTBJc1FVRkJjVUlzUVVGQlZ5eEJRVU5vUXp0blFrRkJTU3hOUVVGQkxFRkJRVTBzVlVGQlRpeEJRVUZuUWl4TFFVRkxMRU5CUVhwQ0xFRkJRVEJDTEdWQlFXVTdRVUZGZGtNN2RVSkJRVUVzUVVGQlV5eFBRVUZQTEV0QlFXaENMRUZCUVhGQ0xGVkJRWEpDTEVGQlFTdENMRWRCUVM5Q0xFRkJRV3RETEVGQlEyNURPMEZCU0VRc2JVSkJSMDhzU1VGQlNTeERRVUZCTEVGQlFVTXNhVUpCUVdsQ0xFTkJRWFJDTEVGQlFYVkNMR1ZCUVdVc1FVRkRNME03ZFVKQlFVRXNRVUZCVXl4TFFVRlVMRUZCUVdNc1FVRkRaanRCUVVOR08wRkJRMFE3WjBKQlFVRXNRVUZCVFN4TFFVRk9MRUZCUVZjc1FVRkZXRHM3TUVKQlFVRXNRVUZCWjBJc1FVRkRhRUk3TUVKQlFVRXNRVUZCWjBJc1FVRkRhRUk3Y1VKQlFVRXNRVUZCVnl4QlFVTmFPMEZCUTBZN1FVRkRSRHRwUWtGQlZ5eE5RVUZZTEVGQlFXbENMRUZCUTJwQ08ybENRVUZYTEUxQlFWZ3NRVUZCYVVJc1FVRkRiRUk3UVVGd1JtOUhPMEZCWlhaSE96dFBRVUZMTEVsQlFVa3NTVUZCVkN4QlFVRmhMRWRCUVVjc1NVRkJTU3hMUVVGd1FpeEJRVUY1UWl4UlFVRjZRaXhCUVVGcFF5eExRVUZMTzBGQlFVRTdRU3hyUTBGQk4wSXNRVUZCTmtJc1FVRnpSWEpETzBGQlJVUTdPenRwUWtGQlR5eEJRVU5STEdGQlFXRXNZVUZFY2tJc1FVRkRhME1zUVVGRGRrTTdaVUZHU3l4QlFVVk5MRmRCUVZjc1YwRkdha0lzUVVGRk5FSXNRVUZEYWtNN1YwRklSaXhCUVVGUExFRkJSMFVzUVVGRlZqdEJRVXhSTEVGQlEwdzdPenRCUVUxSExGTkJRVUVzUVVGQlV5eHZRa0ZCVkN4QlFVRTJRaXhoUVVFM1FpeEJRVUV3UXl4aFFVRXhReXhCUVVGMVJDeFJRVUYyUkN4QlFVRXJSQ3hSUVVFdlJDeEJRVUYxUlN4WFFVRjJSU3hCUVVGclJpeFhRVUZzUml4QlFVRTJSaXhUUVVGVExFRkJRek5ITzAxQlFVMHNUMEZCVHl4blFrRkJRU3hCUVVGblFpeGhRVUZvUWl4QlFVRTJRaXhoUVVFM1FpeEJRVUV3UXl4UlFVRXhReXhCUVVGclJDeFJRVUZzUkN4QlFVRXdSQ3hYUVVFeFJDeEJRVUZ4UlN4WFFVRnNSaXhCUVVGaExFRkJRV2RHTEVGQlJUZEdPenROUVVGTkxFMUJRVTRzUVVGQldTeEJRVU5hTzAxQlFVa3NaVUZCU2l4QlFVRnRRaXhoUVVGaExFRkJRemxDTzFGQlFVRXNRVUZCU1N4TFFVRkxMRmxCUVZRc1FVRkJjVUlzUVVGRGRFSTdRVUZEUkR0TlFVRkJMRUZCUVVrc1MwRkJTaXhCUVVGVExFRkJRMVE3VFVGQlFTeEJRVUZKTEV0QlFVc3NVMEZCVXl4TFFVRlVMRUZCUVdNc1pVRkJaU3hQUVVGUExFdEJRVkFzUVVGQldTeGpRVUZhTEVGQlFUQkNMR05CUVRGQ0xFRkJRWGRETEV0QlFVc3NUMEZCVHl4TFFVRXhSaXhCUVVGVExFRkJRWE5HTEVGQlF5OUdPMDFCUVVFc1FVRkJTU3hMUVVGTExGTkJRVk1zUzBGQlZDeEJRVUZqTEdWQlFXVXNUMEZCVHl4TFFVRlFMRUZCUVZrc1kwRkJXaXhCUVVFd1FpeGpRVUV4UWl4QlFVRjNReXhMUVVGTExFOUJRVThzUzBGQk1VWXNRVUZCVXl4QlFVRnpSaXhCUVVVdlJqczdUMEZCU3l4SlFVRkpMRWxCUVZRc1FVRkJZU3hIUVVGSExFbEJRVWtzUzBGQlFTeEJRVUZMTEUxQlFYcENMRUZCUVN0Q0xGRkJRUzlDTEVGQlFYVkRMRXRCUVVzc1FVRkRNVU03VVVGQlRTeFBRVUZQTEV0QlFVRXNRVUZCU3l4TlFVRnNRaXhCUVVGaExFRkJRVmNzUVVGRGVFSTdVVUZCUVN4QlFVRkpMRXRCUTBZc1UwRkJVeXhMUVVGVUxFRkJRV01zVjBGQlpDeEJRVUY1UWl4TlFVRk5MRXRCUVM5Q0xFRkJRVzlETEZkQlFYQkRMRUZCUTBVc1QwRkJUeXhMUVVSVUxFRkJRMk1zVjBGRVpDeEJRVU41UWl4TlFVRk5MRXRCUkM5Q0xFRkJRMjlETEZkQlJuUkRMRUZCUjBrc1FVRkZTanRSUVVGQkxFRkJRVWtzUzBGQlNpeEJRVUZUTEUxQlFWUXNRVUZCWlN4TFFVRkxMRXRCUVhCQ0xFRkJRWGxDTEVGQlF6RkNPMEZCUlVRN08xTkJRVThzU1VGQlFTeEJRVUZKTEV0QlFVb3NRVUZCVXl4UlFVRm9RaXhCUVVGM1FpeEJRVU42UWpzN08wRkJSVTBzVTBGQlFTeEJRVUZUTEZsQlFWUXNRVUZCY1VJc1ZVRkJja0lzUVVGQkswSXNVVUZCTDBJc1FVRkJkVU1zVVVGQmRrTXNRVUZCSzBNc1YwRkJMME1zUVVGQk1FUXNWMEZCTVVRc1FVRkJjVVVzVTBGQlV5eEJRVU51Ump0VFFVRlBMRzlDUVVGQkxFRkJRVzlDTEZWQlFYQkNMRUZCUVRoQ0xGVkJRVGxDTEVGQlFYZERMRkZCUVhoRExFRkJRV2RFTEZGQlFXaEVMRUZCUVhkRUxGZEJRWGhFTEVGQlFXMUZMRmRCUVRGRkxFRkJRVThzUVVGQk9FVXNRVUZEZEVZaUxDSm1hV3hsSWpvaVkzSmxZWFJsTG1weklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIdGthV1ptVEdsdVpYTjlJR1p5YjIwZ0p5NHVMMlJwWm1ZdmJHbHVaU2M3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCemRISjFZM1IxY21Wa1VHRjBZMmdvYjJ4a1JtbHNaVTVoYldVc0lHNWxkMFpwYkdWT1lXMWxMQ0J2YkdSVGRISXNJRzVsZDFOMGNpd2diMnhrU0dWaFpHVnlMQ0J1WlhkSVpXRmtaWElzSUc5d2RHbHZibk1wSUh0Y2JpQWdhV1lnS0NGdmNIUnBiMjV6S1NCN1hHNGdJQ0FnYjNCMGFXOXVjeUE5SUhzZ1kyOXVkR1Y0ZERvZ05DQjlPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdaR2xtWmlBOUlHUnBabVpNYVc1bGN5aHZiR1JUZEhJc0lHNWxkMU4wY2lrN1hHNGdJR1JwWm1ZdWNIVnphQ2g3ZG1Gc2RXVTZJQ2NuTENCc2FXNWxjem9nVzExOUtUc2dJQ0F2THlCQmNIQmxibVFnWVc0Z1pXMXdkSGtnZG1Gc2RXVWdkRzhnYldGclpTQmpiR1ZoYm5Wd0lHVmhjMmxsY2x4dVhHNGdJR1oxYm1OMGFXOXVJR052Ym5SbGVIUk1hVzVsY3loc2FXNWxjeWtnZTF4dUlDQWdJSEpsZEhWeWJpQnNhVzVsY3k1dFlYQW9ablZ1WTNScGIyNG9aVzUwY25rcElIc2djbVYwZFhKdUlDY2dKeUFySUdWdWRISjVPeUI5S1R0Y2JpQWdmVnh1WEc0Z0lHeGxkQ0JvZFc1cmN5QTlJRnRkTzF4dUlDQnNaWFFnYjJ4a1VtRnVaMlZUZEdGeWRDQTlJREFzSUc1bGQxSmhibWRsVTNSaGNuUWdQU0F3TENCamRYSlNZVzVuWlNBOUlGdGRMRnh1SUNBZ0lDQWdiMnhrVEdsdVpTQTlJREVzSUc1bGQweHBibVVnUFNBeE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdScFptWXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MElEMGdaR2xtWmx0cFhTeGNiaUFnSUNBZ0lDQWdJQ0JzYVc1bGN5QTlJR04xY25KbGJuUXViR2x1WlhNZ2ZId2dZM1Z5Y21WdWRDNTJZV3gxWlM1eVpYQnNZV05sS0M5Y1hHNGtMeXdnSnljcExuTndiR2wwS0NkY1hHNG5LVHRjYmlBZ0lDQmpkWEp5Wlc1MExteHBibVZ6SUQwZ2JHbHVaWE03WEc1Y2JpQWdJQ0JwWmlBb1kzVnljbVZ1ZEM1aFpHUmxaQ0I4ZkNCamRYSnlaVzUwTG5KbGJXOTJaV1FwSUh0Y2JpQWdJQ0FnSUM4dklFbG1JSGRsSUdoaGRtVWdjSEpsZG1sdmRYTWdZMjl1ZEdWNGRDd2djM1JoY25RZ2QybDBhQ0IwYUdGMFhHNGdJQ0FnSUNCcFppQW9JVzlzWkZKaGJtZGxVM1JoY25RcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NISmxkaUE5SUdScFptWmJhU0F0SURGZE8xeHVJQ0FnSUNBZ0lDQnZiR1JTWVc1blpWTjBZWEowSUQwZ2IyeGtUR2x1WlR0Y2JpQWdJQ0FnSUNBZ2JtVjNVbUZ1WjJWVGRHRnlkQ0E5SUc1bGQweHBibVU3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLSEJ5WlhZcElIdGNiaUFnSUNBZ0lDQWdJQ0JqZFhKU1lXNW5aU0E5SUc5d2RHbHZibk11WTI5dWRHVjRkQ0ErSURBZ1B5QmpiMjUwWlhoMFRHbHVaWE1vY0hKbGRpNXNhVzVsY3k1emJHbGpaU2d0YjNCMGFXOXVjeTVqYjI1MFpYaDBLU2tnT2lCYlhUdGNiaUFnSUNBZ0lDQWdJQ0J2YkdSU1lXNW5aVk4wWVhKMElDMDlJR04xY2xKaGJtZGxMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdJQ0J1WlhkU1lXNW5aVk4wWVhKMElDMDlJR04xY2xKaGJtZGxMbXhsYm1kMGFEdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0F2THlCUGRYUndkWFFnYjNWeUlHTm9ZVzVuWlhOY2JpQWdJQ0FnSUdOMWNsSmhibWRsTG5CMWMyZ29MaTR1SUd4cGJtVnpMbTFoY0NobWRXNWpkR2x2YmlobGJuUnllU2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnS0dOMWNuSmxiblF1WVdSa1pXUWdQeUFuS3ljZ09pQW5MU2NwSUNzZ1pXNTBjbms3WEc0Z0lDQWdJQ0I5S1NrN1hHNWNiaUFnSUNBZ0lDOHZJRlJ5WVdOcklIUm9aU0IxY0dSaGRHVmtJR1pwYkdVZ2NHOXphWFJwYjI1Y2JpQWdJQ0FnSUdsbUlDaGpkWEp5Wlc1MExtRmtaR1ZrS1NCN1hHNGdJQ0FnSUNBZ0lHNWxkMHhwYm1VZ0t6MGdiR2x1WlhNdWJHVnVaM1JvTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnYjJ4a1RHbHVaU0FyUFNCc2FXNWxjeTVzWlc1bmRHZzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklFbGtaVzUwYVdOaGJDQmpiMjUwWlhoMElHeHBibVZ6TGlCVWNtRmpheUJzYVc1bElHTm9ZVzVuWlhOY2JpQWdJQ0FnSUdsbUlDaHZiR1JTWVc1blpWTjBZWEowS1NCN1hHNGdJQ0FnSUNBZ0lDOHZJRU5zYjNObElHOTFkQ0JoYm5rZ1kyaGhibWRsY3lCMGFHRjBJR2hoZG1VZ1ltVmxiaUJ2ZFhSd2RYUWdLRzl5SUdwdmFXNGdiM1psY214aGNIQnBibWNwWEc0Z0lDQWdJQ0FnSUdsbUlDaHNhVzVsY3k1c1pXNW5kR2dnUEQwZ2IzQjBhVzl1Y3k1amIyNTBaWGgwSUNvZ01pQW1KaUJwSUR3Z1pHbG1aaTVzWlc1bmRHZ2dMU0F5S1NCN1hHNGdJQ0FnSUNBZ0lDQWdMeThnVDNabGNteGhjSEJwYm1kY2JpQWdJQ0FnSUNBZ0lDQmpkWEpTWVc1blpTNXdkWE5vS0M0dUxpQmpiMjUwWlhoMFRHbHVaWE1vYkdsdVpYTXBLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QmxibVFnZEdobElISmhibWRsSUdGdVpDQnZkWFJ3ZFhSY2JpQWdJQ0FnSUNBZ0lDQnNaWFFnWTI5dWRHVjRkRk5wZW1VZ1BTQk5ZWFJvTG0xcGJpaHNhVzVsY3k1c1pXNW5kR2dzSUc5d2RHbHZibk11WTI5dWRHVjRkQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1kzVnlVbUZ1WjJVdWNIVnphQ2d1TGk0Z1kyOXVkR1Y0ZEV4cGJtVnpLR3hwYm1WekxuTnNhV05sS0RBc0lHTnZiblJsZUhSVGFYcGxLU2twTzF4dVhHNGdJQ0FnSUNBZ0lDQWdiR1YwSUdoMWJtc2dQU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnZiR1JUZEdGeWREb2diMnhrVW1GdVoyVlRkR0Z5ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzlzWkV4cGJtVnpPaUFvYjJ4a1RHbHVaU0F0SUc5c1pGSmhibWRsVTNSaGNuUWdLeUJqYjI1MFpYaDBVMmw2WlNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkVGRHRnlkRG9nYm1WM1VtRnVaMlZUZEdGeWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUc1bGQweHBibVZ6T2lBb2JtVjNUR2x1WlNBdElHNWxkMUpoYm1kbFUzUmhjblFnS3lCamIyNTBaWGgwVTJsNlpTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCc2FXNWxjem9nWTNWeVVtRnVaMlZjYmlBZ0lDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQWdJR2xtSUNocElENDlJR1JwWm1ZdWJHVnVaM1JvSUMwZ01pQW1KaUJzYVc1bGN5NXNaVzVuZEdnZ1BEMGdiM0IwYVc5dWN5NWpiMjUwWlhoMEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBdkx5QkZUMFlnYVhNZ2FXNXphV1JsSUhSb2FYTWdhSFZ1YTF4dUlDQWdJQ0FnSUNBZ0lDQWdiR1YwSUc5c1pFVlBSazVsZDJ4cGJtVWdQU0FvTDF4Y2JpUXZMblJsYzNRb2IyeGtVM1J5S1NrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzWlhRZ2JtVjNSVTlHVG1WM2JHbHVaU0E5SUNndlhGeHVKQzh1ZEdWemRDaHVaWGRUZEhJcEtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDaHNhVzVsY3k1c1pXNW5kR2dnUFQwZ01DQW1KaUFoYjJ4a1JVOUdUbVYzYkdsdVpTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXZMeUJ6Y0dWamFXRnNJR05oYzJVNklHOXNaQ0JvWVhNZ2JtOGdaVzlzSUdGdVpDQnVieUIwY21GcGJHbHVaeUJqYjI1MFpYaDBPeUJ1YnkxdWJDQmpZVzRnWlc1a0lIVndJR0psWm05eVpTQmhaR1J6WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR04xY2xKaGJtZGxMbk53YkdsalpTaG9kVzVyTG05c1pFeHBibVZ6TENBd0xDQW5YRnhjWENCT2J5QnVaWGRzYVc1bElHRjBJR1Z1WkNCdlppQm1hV3hsSnlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5SUdWc2MyVWdhV1lnS0NGdmJHUkZUMFpPWlhkc2FXNWxJSHg4SUNGdVpYZEZUMFpPWlhkc2FXNWxLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR04xY2xKaGJtZGxMbkIxYzJnb0oxeGNYRndnVG04Z2JtVjNiR2x1WlNCaGRDQmxibVFnYjJZZ1ptbHNaU2NwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQm9kVzVyY3k1d2RYTm9LR2gxYm1zcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnYjJ4a1VtRnVaMlZUZEdGeWRDQTlJREE3WEc0Z0lDQWdJQ0FnSUNBZ2JtVjNVbUZ1WjJWVGRHRnlkQ0E5SURBN1hHNGdJQ0FnSUNBZ0lDQWdZM1Z5VW1GdVoyVWdQU0JiWFR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2IyeGtUR2x1WlNBclBTQnNhVzVsY3k1c1pXNW5kR2c3WEc0Z0lDQWdJQ0J1WlhkTWFXNWxJQ3M5SUd4cGJtVnpMbXhsYm1kMGFEdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2UxeHVJQ0FnSUc5c1pFWnBiR1ZPWVcxbE9pQnZiR1JHYVd4bFRtRnRaU3dnYm1WM1JtbHNaVTVoYldVNklHNWxkMFpwYkdWT1lXMWxMRnh1SUNBZ0lHOXNaRWhsWVdSbGNqb2diMnhrU0dWaFpHVnlMQ0J1WlhkSVpXRmtaWEk2SUc1bGQwaGxZV1JsY2l4Y2JpQWdJQ0JvZFc1cmN6b2dhSFZ1YTNOY2JpQWdmVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHTnlaV0YwWlZSM2IwWnBiR1Z6VUdGMFkyZ29iMnhrUm1sc1pVNWhiV1VzSUc1bGQwWnBiR1ZPWVcxbExDQnZiR1JUZEhJc0lHNWxkMU4wY2l3Z2IyeGtTR1ZoWkdWeUxDQnVaWGRJWldGa1pYSXNJRzl3ZEdsdmJuTXBJSHRjYmlBZ1kyOXVjM1FnWkdsbVppQTlJSE4wY25WamRIVnlaV1JRWVhSamFDaHZiR1JHYVd4bFRtRnRaU3dnYm1WM1JtbHNaVTVoYldVc0lHOXNaRk4wY2l3Z2JtVjNVM1J5TENCdmJHUklaV0ZrWlhJc0lHNWxkMGhsWVdSbGNpd2diM0IwYVc5dWN5azdYRzVjYmlBZ1kyOXVjM1FnY21WMElEMGdXMTA3WEc0Z0lHbG1JQ2h2YkdSR2FXeGxUbUZ0WlNBOVBTQnVaWGRHYVd4bFRtRnRaU2tnZTF4dUlDQWdJSEpsZEM1d2RYTm9LQ2RKYm1SbGVEb2dKeUFySUc5c1pFWnBiR1ZPWVcxbEtUdGNiaUFnZlZ4dUlDQnlaWFF1Y0hWemFDZ25QVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFNjcE8xeHVJQ0J5WlhRdWNIVnphQ2duTFMwdElDY2dLeUJrYVdabUxtOXNaRVpwYkdWT1lXMWxJQ3NnS0hSNWNHVnZaaUJrYVdabUxtOXNaRWhsWVdSbGNpQTlQVDBnSjNWdVpHVm1hVzVsWkNjZ1B5QW5KeUE2SUNkY1hIUW5JQ3NnWkdsbVppNXZiR1JJWldGa1pYSXBLVHRjYmlBZ2NtVjBMbkIxYzJnb0p5c3JLeUFuSUNzZ1pHbG1aaTV1WlhkR2FXeGxUbUZ0WlNBcklDaDBlWEJsYjJZZ1pHbG1aaTV1WlhkSVpXRmtaWElnUFQwOUlDZDFibVJsWm1sdVpXUW5JRDhnSnljZ09pQW5YRngwSnlBcklHUnBabVl1Ym1WM1NHVmhaR1Z5S1NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCa2FXWm1MbWgxYm10ekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ2FIVnVheUE5SUdScFptWXVhSFZ1YTNOYmFWMDdYRzRnSUNBZ2NtVjBMbkIxYzJnb1hHNGdJQ0FnSUNBblFFQWdMU2NnS3lCb2RXNXJMbTlzWkZOMFlYSjBJQ3NnSnl3bklDc2dhSFZ1YXk1dmJHUk1hVzVsYzF4dUlDQWdJQ0FnS3lBbklDc25JQ3NnYUhWdWF5NXVaWGRUZEdGeWRDQXJJQ2NzSnlBcklHaDFibXN1Ym1WM1RHbHVaWE5jYmlBZ0lDQWdJQ3NnSnlCQVFDZGNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRDNXdkWE5vTG1Gd2NHeDVLSEpsZEN3Z2FIVnVheTVzYVc1bGN5azdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjbVYwTG1wdmFXNG9KMXhjYmljcElDc2dKMXhjYmljN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqY21WaGRHVlFZWFJqYUNobWFXeGxUbUZ0WlN3Z2IyeGtVM1J5TENCdVpYZFRkSElzSUc5c1pFaGxZV1JsY2l3Z2JtVjNTR1ZoWkdWeUxDQnZjSFJwYjI1ektTQjdYRzRnSUhKbGRIVnliaUJqY21WaGRHVlVkMjlHYVd4bGMxQmhkR05vS0dacGJHVk9ZVzFsTENCbWFXeGxUbUZ0WlN3Z2IyeGtVM1J5TENCdVpYZFRkSElzSUc5c1pFaGxZV1JsY2l3Z2JtVjNTR1ZoWkdWeUxDQnZjSFJwYjI1ektUdGNibjFjYmlKZGZRPT1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvcGF0Y2gvY3JlYXRlLmpzXG4vLyBtb2R1bGUgaWQgPSAyNjFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
||
|
||
/***/ },
|
||
/* 262 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/*istanbul ignore start*/\"use strict\";\n\nexports.__esModule = true;\nexports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP;\n// See: http://code.google.com/p/google-diff-match-patch/wiki/API\nfunction convertChangesToDMP(changes) {\n var ret = [],\n change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/\n ,\n operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/;\n for (var i = 0; i < changes.length; i++) {\n change = changes[i];\n if (change.added) {\n operation = 1;\n } else if (change.removed) {\n operation = -1;\n } else {\n operation = 0;\n }\n\n ret.push([operation, change.value]);\n }\n return ret;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQ2dCLEEsc0IsQUFBQTs7QUFBVCxTQUFBLEFBQVMsb0JBQVQsQUFBNkIsU0FBUyxBQUMzQztNQUFJLE1BQUosQUFBVTtNQUNOLFMseUJBQUEsSyxFQURKOztNQUVJLFkseUJBQUEsSyxFQUZKLEFBR0E7T0FBSyxJQUFJLElBQVQsQUFBYSxHQUFHLElBQUksUUFBcEIsQUFBNEIsUUFBNUIsQUFBb0MsS0FBSyxBQUN2QzthQUFTLFFBQVQsQUFBUyxBQUFRLEFBQ2pCO1FBQUksT0FBSixBQUFXLE9BQU8sQUFDaEI7a0JBQUEsQUFBWSxBQUNiO0FBRkQsZUFFVyxPQUFKLEFBQVcsU0FBUyxBQUN6QjtrQkFBWSxDQUFaLEFBQWEsQUFDZDtBQUZNLEtBQUEsTUFFQSxBQUNMO2tCQUFBLEFBQVksQUFDYjtBQUVEOztRQUFBLEFBQUksS0FBSyxDQUFBLEFBQUMsV0FBVyxPQUFyQixBQUFTLEFBQW1CLEFBQzdCO0FBQ0Q7U0FBQSxBQUFPLEFBQ1IiLCJmaWxlIjoiZG1wLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU2VlOiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvZ29vZ2xlLWRpZmYtbWF0Y2gtcGF0Y2gvd2lraS9BUElcbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Q2hhbmdlc1RvRE1QKGNoYW5nZXMpIHtcbiAgbGV0IHJldCA9IFtdLFxuICAgICAgY2hhbmdlLFxuICAgICAgb3BlcmF0aW9uO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIG9wZXJhdGlvbiA9IDE7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgb3BlcmF0aW9uID0gLTE7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wZXJhdGlvbiA9IDA7XG4gICAgfVxuXG4gICAgcmV0LnB1c2goW29wZXJhdGlvbiwgY2hhbmdlLnZhbHVlXSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbiJdfQ==//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2NvbnZlcnQvZG1wLmpzPzdjYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixvQkFBb0I7QUFDckM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMiLCJmaWxlIjoiMjYyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL1widXNlIHN0cmljdFwiO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy4gLyppc3RhbmJ1bCBpZ25vcmUgZW5kKi9jb252ZXJ0Q2hhbmdlc1RvRE1QID0gY29udmVydENoYW5nZXNUb0RNUDtcbi8vIFNlZTogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dvb2dsZS1kaWZmLW1hdGNoLXBhdGNoL3dpa2kvQVBJXG5mdW5jdGlvbiBjb252ZXJ0Q2hhbmdlc1RvRE1QKGNoYW5nZXMpIHtcbiAgdmFyIHJldCA9IFtdLFxuICAgICAgY2hhbmdlID0gLyppc3RhbmJ1bCBpZ25vcmUgc3RhcnQqL3ZvaWQgMCAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL1xuICAsXG4gICAgICBvcGVyYXRpb24gPSAvKmlzdGFuYnVsIGlnbm9yZSBzdGFydCovdm9pZCAwIC8qaXN0YW5idWwgaWdub3JlIGVuZCovO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIG9wZXJhdGlvbiA9IDE7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgb3BlcmF0aW9uID0gLTE7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wZXJhdGlvbiA9IDA7XG4gICAgfVxuXG4gICAgcmV0LnB1c2goW29wZXJhdGlvbiwgY2hhbmdlLnZhbHVlXSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUwzTnlZeTlqYjI1MlpYSjBMMlJ0Y0M1cWN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdaME5CUTJkQ0xFRXNjMElzUVVGQlFUczdRVUZCVkN4VFFVRkJMRUZCUVZNc2IwSkJRVlFzUVVGQk5rSXNVMEZCVXl4QlFVTXpRenROUVVGSkxFMUJRVW9zUVVGQlZUdE5RVU5PTEZNc2VVSkJRVUVzU3l4RlFVUktPenROUVVWSkxGa3NlVUpCUVVFc1N5eEZRVVpLTEVGQlIwRTdUMEZCU3l4SlFVRkpMRWxCUVZRc1FVRkJZU3hIUVVGSExFbEJRVWtzVVVGQmNFSXNRVUZCTkVJc1VVRkJOVUlzUVVGQmIwTXNTMEZCU3l4QlFVTjJRenRoUVVGVExGRkJRVlFzUVVGQlV5eEJRVUZSTEVGQlEycENPMUZCUVVrc1QwRkJTaXhCUVVGWExFOUJRVThzUVVGRGFFSTdhMEpCUVVFc1FVRkJXU3hCUVVOaU8wRkJSa1FzWlVGRlZ5eFBRVUZLTEVGQlFWY3NVMEZCVXl4QlFVTjZRanRyUWtGQldTeERRVUZhTEVGQlFXRXNRVUZEWkR0QlFVWk5MRXRCUVVFc1RVRkZRU3hCUVVOTU8ydENRVUZCTEVGQlFWa3NRVUZEWWp0QlFVVkVPenRSUVVGQkxFRkJRVWtzUzBGQlN5eERRVUZCTEVGQlFVTXNWMEZCVnl4UFFVRnlRaXhCUVVGVExFRkJRVzFDTEVGQlF6ZENPMEZCUTBRN1UwRkJRU3hCUVVGUExFRkJRMUlpTENKbWFXeGxJam9pWkcxd0xtcHpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHk4Z1UyVmxPaUJvZEhSd09pOHZZMjlrWlM1bmIyOW5iR1V1WTI5dEwzQXZaMjl2WjJ4bExXUnBabVl0YldGMFkyZ3RjR0YwWTJndmQybHJhUzlCVUVsY2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamIyNTJaWEowUTJoaGJtZGxjMVJ2UkUxUUtHTm9ZVzVuWlhNcElIdGNiaUFnYkdWMElISmxkQ0E5SUZ0ZExGeHVJQ0FnSUNBZ1kyaGhibWRsTEZ4dUlDQWdJQ0FnYjNCbGNtRjBhVzl1TzF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR05vWVc1blpYTXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0JqYUdGdVoyVWdQU0JqYUdGdVoyVnpXMmxkTzF4dUlDQWdJR2xtSUNoamFHRnVaMlV1WVdSa1pXUXBJSHRjYmlBZ0lDQWdJRzl3WlhKaGRHbHZiaUE5SURFN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNoamFHRnVaMlV1Y21WdGIzWmxaQ2tnZTF4dUlDQWdJQ0FnYjNCbGNtRjBhVzl1SUQwZ0xURTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUc5d1pYSmhkR2x2YmlBOUlEQTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBMbkIxYzJnb1cyOXdaWEpoZEdsdmJpd2dZMmhoYm1kbExuWmhiSFZsWFNrN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUhKbGREdGNibjFjYmlKZGZRPT1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvY29udmVydC9kbXAuanNcbi8vIG1vZHVsZSBpZCA9IDI2MlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ },
|
||
/* 263 */
|
||
/***/ function(module, exports) {
|
||
|
||
eval("/*istanbul ignore start*/'use strict';\n\nexports.__esModule = true;\nexports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML;\nfunction convertChangesToXML(changes) {\n var ret = [];\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n if (change.added) {\n ret.push('<ins>');\n } else if (change.removed) {\n ret.push('<del>');\n }\n\n ret.push(escapeHTML(change.value));\n\n if (change.added) {\n ret.push('</ins>');\n } else if (change.removed) {\n ret.push('</del>');\n }\n }\n return ret.join('');\n}\n\nfunction escapeHTML(s) {\n var n = s;\n n = n.replace(/&/g, '&');\n n = n.replace(/</g, '<');\n n = n.replace(/>/g, '>');\n n = n.replace(/\"/g, '"');\n\n return n;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCLEEsc0JBQUEsQTtBQUFULFNBQVMsQUFBVCxvQkFBNkIsQUFBN0IsU0FBc0MsQUFDM0M7TUFBSSxNQUFNLEFBQVYsQUFDQTtPQUFLLElBQUksSUFBSSxBQUFiLEdBQWdCLElBQUksUUFBUSxBQUE1QixRQUFvQyxBQUFwQyxLQUF5QyxBQUN2QztRQUFJLFNBQVMsUUFBUSxBQUFSLEFBQWIsQUFDQTtRQUFJLE9BQU8sQUFBWCxPQUFrQixBQUNoQjtVQUFJLEFBQUosS0FBUyxBQUFULEFBQ0Q7QUFGRCxXQUVPLElBQUksT0FBTyxBQUFYLFNBQW9CLEFBQ3pCO1VBQUksQUFBSixLQUFTLEFBQVQsQUFDRDtBQUVEOztRQUFJLEFBQUosS0FBUyxXQUFXLE9BQU8sQUFBbEIsQUFBVCxBQUVBOztRQUFJLE9BQU8sQUFBWCxPQUFrQixBQUNoQjtVQUFJLEFBQUosS0FBUyxBQUFULEFBQ0Q7QUFGRCxXQUVPLElBQUksT0FBTyxBQUFYLFNBQW9CLEFBQ3pCO1VBQUksQUFBSixLQUFTLEFBQVQsQUFDRDtBQUNGO0FBQ0Q7U0FBTyxJQUFJLEFBQUosS0FBUyxBQUFULEFBQVAsQUFDRDs7O0FBRUQsU0FBUyxBQUFULFdBQW9CLEFBQXBCLEdBQXVCLEFBQ3JCO01BQUksSUFBSSxBQUFSLEFBQ0E7TUFBSSxFQUFFLEFBQUYsUUFBVSxBQUFWLE1BQWdCLEFBQWhCLEFBQUosQUFDQTtNQUFJLEVBQUUsQUFBRixRQUFVLEFBQVYsTUFBZ0IsQUFBaEIsQUFBSixBQUNBO01BQUksRUFBRSxBQUFGLFFBQVUsQUFBVixNQUFnQixBQUFoQixBQUFKLEFBQ0E7TUFBSSxFQUFFLEFBQUYsUUFBVSxBQUFWLE1BQWdCLEFBQWhCLEFBQUosQUFFQTs7U0FBTyxBQUFQLEFBQ0QiLCJmaWxlIjoieG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9YTUwoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8aW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8ZGVsPicpO1xuICAgIH1cblxuICAgIHJldC5wdXNoKGVzY2FwZUhUTUwoY2hhbmdlLnZhbHVlKSk7XG5cbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPC9pbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzwvZGVsPicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIVE1MKHMpIHtcbiAgbGV0IG4gPSBzO1xuICBuID0gbi5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuICBuID0gbi5yZXBsYWNlKC88L2csICcmbHQ7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xuXG4gIHJldHVybiBuO1xufVxuIl19//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L2RpZmYvbGliL2NvbnZlcnQveG1sLmpzP2FiZTgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsb0JBQW9CO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCLDJCQUEyQjtBQUMzQiwyQkFBMkI7QUFDM0IsNkJBQTZCOztBQUU3QjtBQUNBO0FBQ0EsMkNBQTJDIiwiZmlsZSI6IjI2My5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qaXN0YW5idWwgaWdub3JlIHN0YXJ0Ki8ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5leHBvcnRzLiAvKmlzdGFuYnVsIGlnbm9yZSBlbmQqL2NvbnZlcnRDaGFuZ2VzVG9YTUwgPSBjb252ZXJ0Q2hhbmdlc1RvWE1MO1xuZnVuY3Rpb24gY29udmVydENoYW5nZXNUb1hNTChjaGFuZ2VzKSB7XG4gIHZhciByZXQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgcmV0LnB1c2goJzxpbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzxkZWw+Jyk7XG4gICAgfVxuXG4gICAgcmV0LnB1c2goZXNjYXBlSFRNTChjaGFuZ2UudmFsdWUpKTtcblxuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8L2lucz4nKTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICByZXQucHVzaCgnPC9kZWw+Jyk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGVzY2FwZUhUTUwocykge1xuICB2YXIgbiA9IHM7XG4gIG4gPSBuLnJlcGxhY2UoLyYvZywgJyZhbXA7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLzwvZywgJyZsdDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xuICBuID0gbi5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7Jyk7XG5cbiAgcmV0dXJuIG47XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5amIyNTJaWEowTDNodGJDNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3WjBOQlFXZENMRUVzYzBKQlFVRXNRVHRCUVVGVUxGTkJRVk1zUVVGQlZDeHZRa0ZCTmtJc1FVRkJOMElzVTBGQmMwTXNRVUZETTBNN1RVRkJTU3hOUVVGTkxFRkJRVllzUVVGRFFUdFBRVUZMTEVsQlFVa3NTVUZCU1N4QlFVRmlMRWRCUVdkQ0xFbEJRVWtzVVVGQlVTeEJRVUUxUWl4UlFVRnZReXhCUVVGd1F5eExRVUY1UXl4QlFVTjJRenRSUVVGSkxGTkJRVk1zVVVGQlVTeEJRVUZTTEVGQlFXSXNRVUZEUVR0UlFVRkpMRTlCUVU4c1FVRkJXQ3hQUVVGclFpeEJRVU5vUWp0VlFVRkpMRUZCUVVvc1MwRkJVeXhCUVVGVUxFRkJRMFE3UVVGR1JDeFhRVVZQTEVsQlFVa3NUMEZCVHl4QlFVRllMRk5CUVc5Q0xFRkJRM3BDTzFWQlFVa3NRVUZCU2l4TFFVRlRMRUZCUVZRc1FVRkRSRHRCUVVWRU96dFJRVUZKTEVGQlFVb3NTMEZCVXl4WFFVRlhMRTlCUVU4c1FVRkJiRUlzUVVGQlZDeEJRVVZCT3p0UlFVRkpMRTlCUVU4c1FVRkJXQ3hQUVVGclFpeEJRVU5vUWp0VlFVRkpMRUZCUVVvc1MwRkJVeXhCUVVGVUxFRkJRMFE3UVVGR1JDeFhRVVZQTEVsQlFVa3NUMEZCVHl4QlFVRllMRk5CUVc5Q0xFRkJRM3BDTzFWQlFVa3NRVUZCU2l4TFFVRlRMRUZCUVZRc1FVRkRSRHRCUVVOR08wRkJRMFE3VTBGQlR5eEpRVUZKTEVGQlFVb3NTMEZCVXl4QlFVRlVMRUZCUVZBc1FVRkRSRHM3TzBGQlJVUXNVMEZCVXl4QlFVRlVMRmRCUVc5Q0xFRkJRWEJDTEVkQlFYVkNMRUZCUTNKQ08wMUJRVWtzU1VGQlNTeEJRVUZTTEVGQlEwRTdUVUZCU1N4RlFVRkZMRUZCUVVZc1VVRkJWU3hCUVVGV0xFMUJRV2RDTEVGQlFXaENMRUZCUVVvc1FVRkRRVHROUVVGSkxFVkJRVVVzUVVGQlJpeFJRVUZWTEVGQlFWWXNUVUZCWjBJc1FVRkJhRUlzUVVGQlNpeEJRVU5CTzAxQlFVa3NSVUZCUlN4QlFVRkdMRkZCUVZVc1FVRkJWaXhOUVVGblFpeEJRVUZvUWl4QlFVRktMRUZCUTBFN1RVRkJTU3hGUVVGRkxFRkJRVVlzVVVGQlZTeEJRVUZXTEUxQlFXZENMRUZCUVdoQ0xFRkJRVW9zUVVGRlFUczdVMEZCVHl4QlFVRlFMRUZCUTBRaUxDSm1hV3hsSWpvaWVHMXNMbXB6SWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOdmJuWmxjblJEYUdGdVoyVnpWRzlZVFV3b1kyaGhibWRsY3lrZ2UxeHVJQ0JzWlhRZ2NtVjBJRDBnVzEwN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWTJoaGJtZGxjeTVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUd4bGRDQmphR0Z1WjJVZ1BTQmphR0Z1WjJWelcybGRPMXh1SUNBZ0lHbG1JQ2hqYUdGdVoyVXVZV1JrWldRcElIdGNiaUFnSUNBZ0lISmxkQzV3ZFhOb0tDYzhhVzV6UGljcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb1kyaGhibWRsTG5KbGJXOTJaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRDNXdkWE5vS0NjOFpHVnNQaWNwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEM1d2RYTm9LR1Z6WTJGd1pVaFVUVXdvWTJoaGJtZGxMblpoYkhWbEtTazdYRzVjYmlBZ0lDQnBaaUFvWTJoaGJtZGxMbUZrWkdWa0tTQjdYRzRnSUNBZ0lDQnlaWFF1Y0hWemFDZ25QQzlwYm5NK0p5azdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaGphR0Z1WjJVdWNtVnRiM1psWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBMbkIxYzJnb0p6d3ZaR1ZzUGljcE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnY21WMExtcHZhVzRvSnljcE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCbGMyTmhjR1ZJVkUxTUtITXBJSHRjYmlBZ2JHVjBJRzRnUFNCek8xeHVJQ0J1SUQwZ2JpNXlaWEJzWVdObEtDOG1MMmNzSUNjbVlXMXdPeWNwTzF4dUlDQnVJRDBnYmk1eVpYQnNZV05sS0M4OEwyY3NJQ2NtYkhRN0p5azdYRzRnSUc0Z1BTQnVMbkpsY0d4aFkyVW9MejR2Wnl3Z0p5Wm5kRHNuS1R0Y2JpQWdiaUE5SUc0dWNtVndiR0ZqWlNndlhDSXZaeXdnSnlaeGRXOTBPeWNwTzF4dVhHNGdJSEpsZEhWeWJpQnVPMXh1ZlZ4dUlsMTlcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZGlmZi9saWIvY29udmVydC94bWwuanNcbi8vIG1vZHVsZSBpZCA9IDI2M1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
||
|
||
/***/ }
|
||
/******/ ]); |