` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes2.default.any,\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n */\n children: _propTypes2.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes2.default.bool,\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes2.default.bool,\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes2.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes2.default.func\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n\n /**\n * The `` component manages a set of `` components\n * in a list. Like with the `` component, ``, is a\n * state machine for managing the mounting and unmounting of components over\n * time.\n *\n * Consider the example below using the `Fade` CSS transition from before.\n * As items are removed or added to the TodoList the `in` prop is toggled\n * automatically by the ``. You can use _any_ ``\n * component in a ``, not just css.\n *\n * ## Example\n *\n * \n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual ``\n * components. This means you can mix and match animations across different\n * list items.\n */\n};\nvar TransitionGroup = function (_React$Component) {\n _inherits(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n _classCallCheck(this, TransitionGroup);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n var handleExited = _this.handleExited.bind(_this);\n\n // Initial children should all be entering, dependent on appear\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n TransitionGroup.prototype.getChildContext = function getChildContext() {\n return {\n transitionGroup: { isMounting: !this.appeared }\n };\n };\n\n TransitionGroup.prototype.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n TransitionGroup.prototype.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return { children: children };\n });\n };\n\n TransitionGroup.prototype.render = function render() {\n var _props = this.props,\n Component = _props.component,\n childFactory = _props.childFactory,\n props = _objectWithoutProperties(_props, ['component', 'childFactory']);\n\n var children = values(this.state.children).map(childFactory);\n\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n return _react2.default.createElement(\n Component,\n props,\n children\n );\n };\n\n return TransitionGroup;\n}(_react2.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes2.default.object.isRequired\n};\n\n\nTransitionGroup.propTypes = true ? propTypes : undefined;\nTransitionGroup.defaultProps = defaultProps;\n\nexports.default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9UcmFuc2l0aW9uR3JvdXAuanM/NTI3NSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxtREFBbUQsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELDJCQUEyQixFQUFFLEVBQUUsRUFBRSxlQUFlOztBQUU5UDs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQSxzQ0FBc0MsdUNBQXVDLGdCQUFnQjs7QUFFN0YsOENBQThDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxvQkFBb0IsRUFBRSxlQUFlOztBQUUxTixpREFBaUQsMENBQTBDLDBEQUEwRCxFQUFFOztBQUV2SixpREFBaUQsYUFBYSx1RkFBdUYsRUFBRSx1RkFBdUY7O0FBRTlPLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLEtBQUs7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUZBQXlGLGNBQWMsVUFBVSxvQkFBb0IsaUJBQWlCO0FBQ3RKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdDQUFnQzs7QUFFaEM7QUFDQSxjQUFjO0FBQ2QsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9UcmFuc2l0aW9uR3JvdXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcHJvcFR5cGVzID0gcmVxdWlyZSgncHJvcC10eXBlcycpO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZSgncmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQnKTtcblxudmFyIF9DaGlsZE1hcHBpbmcgPSByZXF1aXJlKCcuL3V0aWxzL0NoaWxkTWFwcGluZycpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIHZhbHVlcyA9IE9iamVjdC52YWx1ZXMgfHwgZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICByZXR1cm4gb2JqW2tdO1xuICB9KTtcbn07XG5cbnZhciBwcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiBgPFRyYW5zaXRpb25Hcm91cD5gIHJlbmRlcnMgYSBgPGRpdj5gIGJ5IGRlZmF1bHQuIFlvdSBjYW4gY2hhbmdlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgcHJvdmlkaW5nIGEgYGNvbXBvbmVudGAgcHJvcC5cbiAgICogSWYgeW91IHVzZSBSZWFjdCB2MTYrIGFuZCB3b3VsZCBsaWtlIHRvIGF2b2lkIGEgd3JhcHBpbmcgYDxkaXY+YCBlbGVtZW50XG4gICAqIHlvdSBjYW4gcGFzcyBpbiBgY29tcG9uZW50PXtudWxsfWAuIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSB3cmFwcGluZyBkaXZcbiAgICogYm9ya3MgeW91ciBjc3Mgc3R5bGVzLlxuICAgKi9cbiAgY29tcG9uZW50OiBfcHJvcFR5cGVzMi5kZWZhdWx0LmFueSxcbiAgLyoqXG4gICAqIEEgc2V0IG9mIGA8VHJhbnNpdGlvbj5gIGNvbXBvbmVudHMsIHRoYXQgYXJlIHRvZ2dsZWQgYGluYCBhbmQgb3V0IGFzIHRoZXlcbiAgICogbGVhdmUuIHRoZSBgPFRyYW5zaXRpb25Hcm91cD5gIHdpbGwgaW5qZWN0IHNwZWNpZmljIHRyYW5zaXRpb24gcHJvcHMsIHNvXG4gICAqIHJlbWVtYmVyIHRvIHNwcmVhZCB0aGVtIHRocm91Z2ggaWYgeW91IGFyZSB3cmFwcGluZyB0aGUgYDxUcmFuc2l0aW9uPmAgYXNcbiAgICogd2l0aCBvdXIgYDxGYWRlPmAgZXhhbXBsZS5cbiAgICovXG4gIGNoaWxkcmVuOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm5vZGUsXG5cbiAgLyoqXG4gICAqIEEgY29udmVuaWVuY2UgcHJvcCB0aGF0IGVuYWJsZXMgb3IgZGlzYWJsZXMgYXBwZWFyIGFuaW1hdGlvbnNcbiAgICogZm9yIGFsbCBjaGlsZHJlbi4gTm90ZSB0aGF0IHNwZWNpZnlpbmcgdGhpcyB3aWxsIG92ZXJyaWRlIGFueSBkZWZhdWx0cyBzZXRcbiAgICogb24gaW5kaXZpZHVhbCBjaGlsZHJlbiBUcmFuc2l0aW9ucy5cbiAgICovXG4gIGFwcGVhcjogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICAvKipcbiAgICogQSBjb252ZW5pZW5jZSBwcm9wIHRoYXQgZW5hYmxlcyBvciBkaXNhYmxlcyBlbnRlciBhbmltYXRpb25zXG4gICAqIGZvciBhbGwgY2hpbGRyZW4uIE5vdGUgdGhhdCBzcGVjaWZ5aW5nIHRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZGVmYXVsdHMgc2V0XG4gICAqIG9uIGluZGl2aWR1YWwgY2hpbGRyZW4gVHJhbnNpdGlvbnMuXG4gICAqL1xuICBlbnRlcjogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICAvKipcbiAgICogQSBjb252ZW5pZW5jZSBwcm9wIHRoYXQgZW5hYmxlcyBvciBkaXNhYmxlcyBleGl0IGFuaW1hdGlvbnNcbiAgICogZm9yIGFsbCBjaGlsZHJlbi4gTm90ZSB0aGF0IHNwZWNpZnlpbmcgdGhpcyB3aWxsIG92ZXJyaWRlIGFueSBkZWZhdWx0cyBzZXRcbiAgICogb24gaW5kaXZpZHVhbCBjaGlsZHJlbiBUcmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcblxuICAvKipcbiAgICogWW91IG1heSBuZWVkIHRvIGFwcGx5IHJlYWN0aXZlIHVwZGF0ZXMgdG8gYSBjaGlsZCBhcyBpdCBpcyBleGl0aW5nLlxuICAgKiBUaGlzIGlzIGdlbmVyYWxseSBkb25lIGJ5IHVzaW5nIGBjbG9uZUVsZW1lbnRgIGhvd2V2ZXIgaW4gdGhlIGNhc2Ugb2YgYW4gZXhpdGluZ1xuICAgKiBjaGlsZCB0aGUgZWxlbWVudCBoYXMgYWxyZWFkeSBiZWVuIHJlbW92ZWQgYW5kIG5vdCBhY2Nlc3NpYmxlIHRvIHRoZSBjb25zdW1lci5cbiAgICpcbiAgICogSWYgeW91IGRvIG5lZWQgdG8gdXBkYXRlIGEgY2hpbGQgYXMgaXQgbGVhdmVzIHlvdSBjYW4gcHJvdmlkZSBhIGBjaGlsZEZhY3RvcnlgXG4gICAqIHRvIHdyYXAgZXZlcnkgY2hpbGQsIGV2ZW4gdGhlIG9uZXMgdGhhdCBhcmUgbGVhdmluZy5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24oY2hpbGQ6IFJlYWN0RWxlbWVudCkgLT4gUmVhY3RFbGVtZW50XG4gICAqL1xuICBjaGlsZEZhY3Rvcnk6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuY1xufTtcblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgY29tcG9uZW50OiAnZGl2JyxcbiAgY2hpbGRGYWN0b3J5OiBmdW5jdGlvbiBjaGlsZEZhY3RvcnkoY2hpbGQpIHtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGA8VHJhbnNpdGlvbkdyb3VwPmAgY29tcG9uZW50IG1hbmFnZXMgYSBzZXQgb2YgYDxUcmFuc2l0aW9uPmAgY29tcG9uZW50c1xuICAgKiBpbiBhIGxpc3QuIExpa2Ugd2l0aCB0aGUgYDxUcmFuc2l0aW9uPmAgY29tcG9uZW50LCBgPFRyYW5zaXRpb25Hcm91cD5gLCBpcyBhXG4gICAqIHN0YXRlIG1hY2hpbmUgZm9yIG1hbmFnaW5nIHRoZSBtb3VudGluZyBhbmQgdW5tb3VudGluZyBvZiBjb21wb25lbnRzIG92ZXJcbiAgICogdGltZS5cbiAgICpcbiAgICogQ29uc2lkZXIgdGhlIGV4YW1wbGUgYmVsb3cgdXNpbmcgdGhlIGBGYWRlYCBDU1MgdHJhbnNpdGlvbiBmcm9tIGJlZm9yZS5cbiAgICogQXMgaXRlbXMgYXJlIHJlbW92ZWQgb3IgYWRkZWQgdG8gdGhlIFRvZG9MaXN0IHRoZSBgaW5gIHByb3AgaXMgdG9nZ2xlZFxuICAgKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBgPFRyYW5zaXRpb25Hcm91cD5gLiBZb3UgY2FuIHVzZSBfYW55XyBgPFRyYW5zaXRpb24+YFxuICAgKiBjb21wb25lbnQgaW4gYSBgPFRyYW5zaXRpb25Hcm91cD5gLCBub3QganVzdCBjc3MuXG4gICAqXG4gICAqICMjIEV4YW1wbGVcbiAgICpcbiAgICogPGlmcmFtZSBzcmM9XCJodHRwczovL2NvZGVzYW5kYm94LmlvL2VtYmVkLzAwcnF5bzI2a24/Zm9udHNpemU9MTRcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDo1MDBweDsgYm9yZGVyOjA7IGJvcmRlci1yYWRpdXM6IDRweDsgb3ZlcmZsb3c6aGlkZGVuO1wiIHNhbmRib3g9XCJhbGxvdy1tb2RhbHMgYWxsb3ctZm9ybXMgYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW5cIj48L2lmcmFtZT5cbiAgICpcbiAgICogTm90ZSB0aGF0IGA8VHJhbnNpdGlvbkdyb3VwPmAgIGRvZXMgbm90IGRlZmluZSBhbnkgYW5pbWF0aW9uIGJlaGF2aW9yIVxuICAgKiBFeGFjdGx5IF9ob3dfIGEgbGlzdCBpdGVtIGFuaW1hdGVzIGlzIHVwIHRvIHRoZSBpbmRpdmlkdWFsIGA8VHJhbnNpdGlvbj5gXG4gICAqIGNvbXBvbmVudHMuIFRoaXMgbWVhbnMgeW91IGNhbiBtaXggYW5kIG1hdGNoIGFuaW1hdGlvbnMgYWNyb3NzIGRpZmZlcmVudFxuICAgKiBsaXN0IGl0ZW1zLlxuICAgKi9cbn07XG52YXIgVHJhbnNpdGlvbkdyb3VwID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRyYW5zaXRpb25Hcm91cCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVHJhbnNpdGlvbkdyb3VwKHByb3BzLCBjb250ZXh0KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyYW5zaXRpb25Hcm91cCk7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpKTtcblxuICAgIHZhciBoYW5kbGVFeGl0ZWQgPSBfdGhpcy5oYW5kbGVFeGl0ZWQuYmluZChfdGhpcyk7XG5cbiAgICAvLyBJbml0aWFsIGNoaWxkcmVuIHNob3VsZCBhbGwgYmUgZW50ZXJpbmcsIGRlcGVuZGVudCBvbiBhcHBlYXJcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGhhbmRsZUV4aXRlZDogaGFuZGxlRXhpdGVkLFxuICAgICAgZmlyc3RSZW5kZXI6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIFRyYW5zaXRpb25Hcm91cC5wcm90b3R5cGUuZ2V0Q2hpbGRDb250ZXh0ID0gZnVuY3Rpb24gZ2V0Q2hpbGRDb250ZXh0KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0cmFuc2l0aW9uR3JvdXA6IHsgaXNNb3VudGluZzogIXRoaXMuYXBwZWFyZWQgfVxuICAgIH07XG4gIH07XG5cbiAgVHJhbnNpdGlvbkdyb3VwLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYXBwZWFyZWQgPSB0cnVlO1xuICB9O1xuXG4gIFRyYW5zaXRpb25Hcm91cC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBfcmVmKSB7XG4gICAgdmFyIHByZXZDaGlsZE1hcHBpbmcgPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgICBoYW5kbGVFeGl0ZWQgPSBfcmVmLmhhbmRsZUV4aXRlZCxcbiAgICAgICAgZmlyc3RSZW5kZXIgPSBfcmVmLmZpcnN0UmVuZGVyO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoaWxkcmVuOiBmaXJzdFJlbmRlciA/ICgwLCBfQ2hpbGRNYXBwaW5nLmdldEluaXRpYWxDaGlsZE1hcHBpbmcpKG5leHRQcm9wcywgaGFuZGxlRXhpdGVkKSA6ICgwLCBfQ2hpbGRNYXBwaW5nLmdldE5leHRDaGlsZE1hcHBpbmcpKG5leHRQcm9wcywgcHJldkNoaWxkTWFwcGluZywgaGFuZGxlRXhpdGVkKSxcbiAgICAgIGZpcnN0UmVuZGVyOiBmYWxzZVxuICAgIH07XG4gIH07XG5cbiAgVHJhbnNpdGlvbkdyb3VwLnByb3RvdHlwZS5oYW5kbGVFeGl0ZWQgPSBmdW5jdGlvbiBoYW5kbGVFeGl0ZWQoY2hpbGQsIG5vZGUpIHtcbiAgICB2YXIgY3VycmVudENoaWxkTWFwcGluZyA9ICgwLCBfQ2hpbGRNYXBwaW5nLmdldENoaWxkTWFwcGluZykodGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICBpZiAoY2hpbGQua2V5IGluIGN1cnJlbnRDaGlsZE1hcHBpbmcpIHJldHVybjtcblxuICAgIGlmIChjaGlsZC5wcm9wcy5vbkV4aXRlZCkge1xuICAgICAgY2hpbGQucHJvcHMub25FeGl0ZWQobm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZShmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IF9leHRlbmRzKHt9LCBzdGF0ZS5jaGlsZHJlbik7XG5cbiAgICAgIGRlbGV0ZSBjaGlsZHJlbltjaGlsZC5rZXldO1xuICAgICAgcmV0dXJuIHsgY2hpbGRyZW46IGNoaWxkcmVuIH07XG4gICAgfSk7XG4gIH07XG5cbiAgVHJhbnNpdGlvbkdyb3VwLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIENvbXBvbmVudCA9IF9wcm9wcy5jb21wb25lbnQsXG4gICAgICAgIGNoaWxkRmFjdG9yeSA9IF9wcm9wcy5jaGlsZEZhY3RvcnksXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wcywgWydjb21wb25lbnQnLCAnY2hpbGRGYWN0b3J5J10pO1xuXG4gICAgdmFyIGNoaWxkcmVuID0gdmFsdWVzKHRoaXMuc3RhdGUuY2hpbGRyZW4pLm1hcChjaGlsZEZhY3RvcnkpO1xuXG4gICAgZGVsZXRlIHByb3BzLmFwcGVhcjtcbiAgICBkZWxldGUgcHJvcHMuZW50ZXI7XG4gICAgZGVsZXRlIHByb3BzLmV4aXQ7XG5cbiAgICBpZiAoQ29tcG9uZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfVxuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIHByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBUcmFuc2l0aW9uR3JvdXA7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG5UcmFuc2l0aW9uR3JvdXAuY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QuaXNSZXF1aXJlZFxufTtcblxuXG5UcmFuc2l0aW9uR3JvdXAucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gcHJvcFR5cGVzIDoge307XG5UcmFuc2l0aW9uR3JvdXAuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVHJhbnNpdGlvbkdyb3VwKTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-transition-group/TransitionGroup.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/react-transition-group/utils/ChildMapping.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/react-transition-group/utils/ChildMapping.js ***!
+ \*******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n }\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextKeysPending = Object.create(null);\n\n var pendingKeys = [];\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i = void 0;\n var childMapping = {};\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n childMapping[nextKey] = getValueForKey(nextKey);\n }\n\n // Finally, add the keys which didn't appear before any key in `next`\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n\n if (!(0, _react.isValidElement)(child)) return;\n\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in;\n\n // item is new (entering)\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, { in: false });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n\n return children;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC91dGlscy9DaGlsZE1hcHBpbmcuanM/ZjBmNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixxQ0FBcUM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYSx3QkFBd0I7QUFDckM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBLHVEQUF1RCxZQUFZO0FBQ25FLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7QUFFSDtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvQ2hpbGRNYXBwaW5nLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5nZXRDaGlsZE1hcHBpbmcgPSBnZXRDaGlsZE1hcHBpbmc7XG5leHBvcnRzLm1lcmdlQ2hpbGRNYXBwaW5ncyA9IG1lcmdlQ2hpbGRNYXBwaW5ncztcbmV4cG9ydHMuZ2V0SW5pdGlhbENoaWxkTWFwcGluZyA9IGdldEluaXRpYWxDaGlsZE1hcHBpbmc7XG5leHBvcnRzLmdldE5leHRDaGlsZE1hcHBpbmcgPSBnZXROZXh0Q2hpbGRNYXBwaW5nO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxuLyoqXG4gKiBHaXZlbiBgdGhpcy5wcm9wcy5jaGlsZHJlbmAsIHJldHVybiBhbiBvYmplY3QgbWFwcGluZyBrZXkgdG8gY2hpbGQuXG4gKlxuICogQHBhcmFtIHsqfSBjaGlsZHJlbiBgdGhpcy5wcm9wcy5jaGlsZHJlbmBcbiAqIEByZXR1cm4ge29iamVjdH0gTWFwcGluZyBvZiBrZXkgdG8gY2hpbGRcbiAqL1xuZnVuY3Rpb24gZ2V0Q2hpbGRNYXBwaW5nKGNoaWxkcmVuLCBtYXBGbikge1xuICB2YXIgbWFwcGVyID0gZnVuY3Rpb24gbWFwcGVyKGNoaWxkKSB7XG4gICAgcmV0dXJuIG1hcEZuICYmICgwLCBfcmVhY3QuaXNWYWxpZEVsZW1lbnQpKGNoaWxkKSA/IG1hcEZuKGNoaWxkKSA6IGNoaWxkO1xuICB9O1xuXG4gIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBpZiAoY2hpbGRyZW4pIF9yZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIGM7XG4gIH0pLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgLy8gcnVuIHRoZSBtYXAgZnVuY3Rpb24gaGVyZSBpbnN0ZWFkIHNvIHRoYXQgdGhlIGtleSBpcyB0aGUgY29tcHV0ZWQgb25lXG4gICAgcmVzdWx0W2NoaWxkLmtleV0gPSBtYXBwZXIoY2hpbGQpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBXaGVuIHlvdSdyZSBhZGRpbmcgb3IgcmVtb3ZpbmcgY2hpbGRyZW4gc29tZSBtYXkgYmUgYWRkZWQgb3IgcmVtb3ZlZCBpbiB0aGVcbiAqIHNhbWUgcmVuZGVyIHBhc3MuIFdlIHdhbnQgdG8gc2hvdyAqYm90aCogc2luY2Ugd2Ugd2FudCB0byBzaW11bHRhbmVvdXNseVxuICogYW5pbWF0ZSBlbGVtZW50cyBpbiBhbmQgb3V0LiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgcHJldmlvdXMgc2V0IG9mIGtleXNcbiAqIGFuZCBhIG5ldyBzZXQgb2Yga2V5cyBhbmQgbWVyZ2VzIHRoZW0gd2l0aCBpdHMgYmVzdCBndWVzcyBvZiB0aGUgY29ycmVjdFxuICogb3JkZXJpbmcuIEluIHRoZSBmdXR1cmUgd2UgbWF5IGV4cG9zZSBzb21lIG9mIHRoZSB1dGlsaXRpZXMgaW5cbiAqIFJlYWN0TXVsdGlDaGlsZCB0byBtYWtlIHRoaXMgZWFzeSwgYnV0IGZvciBub3cgUmVhY3QgaXRzZWxmIGRvZXMgbm90XG4gKiBkaXJlY3RseSBoYXZlIHRoaXMgY29uY2VwdCBvZiB0aGUgdW5pb24gb2YgcHJldkNoaWxkcmVuIGFuZCBuZXh0Q2hpbGRyZW5cbiAqIHNvIHdlIGltcGxlbWVudCBpdCBoZXJlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcmV2IHByZXYgY2hpbGRyZW4gYXMgcmV0dXJuZWQgZnJvbVxuICogYFJlYWN0VHJhbnNpdGlvbkNoaWxkTWFwcGluZy5nZXRDaGlsZE1hcHBpbmcoKWAuXG4gKiBAcGFyYW0ge29iamVjdH0gbmV4dCBuZXh0IGNoaWxkcmVuIGFzIHJldHVybmVkIGZyb21cbiAqIGBSZWFjdFRyYW5zaXRpb25DaGlsZE1hcHBpbmcuZ2V0Q2hpbGRNYXBwaW5nKClgLlxuICogQHJldHVybiB7b2JqZWN0fSBhIGtleSBzZXQgdGhhdCBjb250YWlucyBhbGwga2V5cyBpbiBgcHJldmAgYW5kIGFsbCBrZXlzXG4gKiBpbiBgbmV4dGAgaW4gYSByZWFzb25hYmxlIG9yZGVyLlxuICovXG5mdW5jdGlvbiBtZXJnZUNoaWxkTWFwcGluZ3MocHJldiwgbmV4dCkge1xuICBwcmV2ID0gcHJldiB8fCB7fTtcbiAgbmV4dCA9IG5leHQgfHwge307XG5cbiAgZnVuY3Rpb24gZ2V0VmFsdWVGb3JLZXkoa2V5KSB7XG4gICAgcmV0dXJuIGtleSBpbiBuZXh0ID8gbmV4dFtrZXldIDogcHJldltrZXldO1xuICB9XG5cbiAgLy8gRm9yIGVhY2gga2V5IG9mIGBuZXh0YCwgdGhlIGxpc3Qgb2Yga2V5cyB0byBpbnNlcnQgYmVmb3JlIHRoYXQga2V5IGluXG4gIC8vIHRoZSBjb21iaW5lZCBsaXN0XG4gIHZhciBuZXh0S2V5c1BlbmRpbmcgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIHZhciBwZW5kaW5nS2V5cyA9IFtdO1xuICBmb3IgKHZhciBwcmV2S2V5IGluIHByZXYpIHtcbiAgICBpZiAocHJldktleSBpbiBuZXh0KSB7XG4gICAgICBpZiAocGVuZGluZ0tleXMubGVuZ3RoKSB7XG4gICAgICAgIG5leHRLZXlzUGVuZGluZ1twcmV2S2V5XSA9IHBlbmRpbmdLZXlzO1xuICAgICAgICBwZW5kaW5nS2V5cyA9IFtdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nS2V5cy5wdXNoKHByZXZLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBpID0gdm9pZCAwO1xuICB2YXIgY2hpbGRNYXBwaW5nID0ge307XG4gIGZvciAodmFyIG5leHRLZXkgaW4gbmV4dCkge1xuICAgIGlmIChuZXh0S2V5c1BlbmRpbmdbbmV4dEtleV0pIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBuZXh0S2V5c1BlbmRpbmdbbmV4dEtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHBlbmRpbmdOZXh0S2V5ID0gbmV4dEtleXNQZW5kaW5nW25leHRLZXldW2ldO1xuICAgICAgICBjaGlsZE1hcHBpbmdbbmV4dEtleXNQZW5kaW5nW25leHRLZXldW2ldXSA9IGdldFZhbHVlRm9yS2V5KHBlbmRpbmdOZXh0S2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY2hpbGRNYXBwaW5nW25leHRLZXldID0gZ2V0VmFsdWVGb3JLZXkobmV4dEtleSk7XG4gIH1cblxuICAvLyBGaW5hbGx5LCBhZGQgdGhlIGtleXMgd2hpY2ggZGlkbid0IGFwcGVhciBiZWZvcmUgYW55IGtleSBpbiBgbmV4dGBcbiAgZm9yIChpID0gMDsgaSA8IHBlbmRpbmdLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hpbGRNYXBwaW5nW3BlbmRpbmdLZXlzW2ldXSA9IGdldFZhbHVlRm9yS2V5KHBlbmRpbmdLZXlzW2ldKTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZE1hcHBpbmc7XG59XG5cbmZ1bmN0aW9uIGdldFByb3AoY2hpbGQsIHByb3AsIHByb3BzKSB7XG4gIHJldHVybiBwcm9wc1twcm9wXSAhPSBudWxsID8gcHJvcHNbcHJvcF0gOiBjaGlsZC5wcm9wc1twcm9wXTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5pdGlhbENoaWxkTWFwcGluZyhwcm9wcywgb25FeGl0ZWQpIHtcbiAgcmV0dXJuIGdldENoaWxkTWFwcGluZyhwcm9wcy5jaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCwge1xuICAgICAgb25FeGl0ZWQ6IG9uRXhpdGVkLmJpbmQobnVsbCwgY2hpbGQpLFxuICAgICAgaW46IHRydWUsXG4gICAgICBhcHBlYXI6IGdldFByb3AoY2hpbGQsICdhcHBlYXInLCBwcm9wcyksXG4gICAgICBlbnRlcjogZ2V0UHJvcChjaGlsZCwgJ2VudGVyJywgcHJvcHMpLFxuICAgICAgZXhpdDogZ2V0UHJvcChjaGlsZCwgJ2V4aXQnLCBwcm9wcylcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE5leHRDaGlsZE1hcHBpbmcobmV4dFByb3BzLCBwcmV2Q2hpbGRNYXBwaW5nLCBvbkV4aXRlZCkge1xuICB2YXIgbmV4dENoaWxkTWFwcGluZyA9IGdldENoaWxkTWFwcGluZyhuZXh0UHJvcHMuY2hpbGRyZW4pO1xuICB2YXIgY2hpbGRyZW4gPSBtZXJnZUNoaWxkTWFwcGluZ3MocHJldkNoaWxkTWFwcGluZywgbmV4dENoaWxkTWFwcGluZyk7XG5cbiAgT2JqZWN0LmtleXMoY2hpbGRyZW4pLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciBjaGlsZCA9IGNoaWxkcmVuW2tleV07XG5cbiAgICBpZiAoISgwLCBfcmVhY3QuaXNWYWxpZEVsZW1lbnQpKGNoaWxkKSkgcmV0dXJuO1xuXG4gICAgdmFyIGhhc1ByZXYgPSBrZXkgaW4gcHJldkNoaWxkTWFwcGluZztcbiAgICB2YXIgaGFzTmV4dCA9IGtleSBpbiBuZXh0Q2hpbGRNYXBwaW5nO1xuXG4gICAgdmFyIHByZXZDaGlsZCA9IHByZXZDaGlsZE1hcHBpbmdba2V5XTtcbiAgICB2YXIgaXNMZWF2aW5nID0gKDAsIF9yZWFjdC5pc1ZhbGlkRWxlbWVudCkocHJldkNoaWxkKSAmJiAhcHJldkNoaWxkLnByb3BzLmluO1xuXG4gICAgLy8gaXRlbSBpcyBuZXcgKGVudGVyaW5nKVxuICAgIGlmIChoYXNOZXh0ICYmICghaGFzUHJldiB8fCBpc0xlYXZpbmcpKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnZW50ZXJpbmcnLCBrZXkpXG4gICAgICBjaGlsZHJlbltrZXldID0gKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKGNoaWxkLCB7XG4gICAgICAgIG9uRXhpdGVkOiBvbkV4aXRlZC5iaW5kKG51bGwsIGNoaWxkKSxcbiAgICAgICAgaW46IHRydWUsXG4gICAgICAgIGV4aXQ6IGdldFByb3AoY2hpbGQsICdleGl0JywgbmV4dFByb3BzKSxcbiAgICAgICAgZW50ZXI6IGdldFByb3AoY2hpbGQsICdlbnRlcicsIG5leHRQcm9wcylcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIWhhc05leHQgJiYgaGFzUHJldiAmJiAhaXNMZWF2aW5nKSB7XG4gICAgICAvLyBpdGVtIGlzIG9sZCAoZXhpdGluZylcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdsZWF2aW5nJywga2V5KVxuICAgICAgY2hpbGRyZW5ba2V5XSA9ICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCwgeyBpbjogZmFsc2UgfSk7XG4gICAgfSBlbHNlIGlmIChoYXNOZXh0ICYmIGhhc1ByZXYgJiYgKDAsIF9yZWFjdC5pc1ZhbGlkRWxlbWVudCkocHJldkNoaWxkKSkge1xuICAgICAgLy8gaXRlbSBoYXNuJ3QgY2hhbmdlZCB0cmFuc2l0aW9uIHN0YXRlc1xuICAgICAgLy8gY29weSBvdmVyIHRoZSBsYXN0IHRyYW5zaXRpb24gcHJvcHM7XG4gICAgICAvLyBjb25zb2xlLmxvZygndW5jaGFuZ2VkJywga2V5KVxuICAgICAgY2hpbGRyZW5ba2V5XSA9ICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCwge1xuICAgICAgICBvbkV4aXRlZDogb25FeGl0ZWQuYmluZChudWxsLCBjaGlsZCksXG4gICAgICAgIGluOiBwcmV2Q2hpbGQucHJvcHMuaW4sXG4gICAgICAgIGV4aXQ6IGdldFByb3AoY2hpbGQsICdleGl0JywgbmV4dFByb3BzKSxcbiAgICAgICAgZW50ZXI6IGdldFByb3AoY2hpbGQsICdlbnRlcicsIG5leHRQcm9wcylcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-transition-group/utils/ChildMapping.js\n");
+
+/***/ }),
+
/***/ "./node_modules/react-transition-group/utils/PropTypes.js":
/*!****************************************************************!*\
!*** ./node_modules/react-transition-group/utils/PropTypes.js ***!
@@ -3421,7 +3565,7 @@ eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SearchField.jsx */ \"./public/javascripts/src/components/SearchField.jsx\");\n/* harmony import */ var _components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/FilmsList.jsx */ \"./public/javascripts/src/components/FilmsList.jsx\");\n/* harmony import */ var _utils_filmsAPI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/filmsAPI */ \"./public/javascripts/src/utils/filmsAPI.js\");\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\n\n\n// import { withStyles } from '@material-ui/core/styles';\n\nclass Layout extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n filmsList: []\n };\n this.updateQuery = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.debounce(this.updateQuery.bind(this), 300);\n }\n updateQuery(query) {\n console.log('query', query);\n if (query && query.trim().length > 2) {\n Object(_utils_filmsAPI__WEBPACK_IMPORTED_MODULE_6__[\"searchFilms\"])(query).then(data => this.setState({ filmsList: data }));\n }\n }\n\n render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"], { onUpdateQuery: this.updateQuery })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"], { filmsData: this.state.filmsList })\n )\n )\n );\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Layout);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL0xheW91dC5qc3g/NjZmYyJdLCJuYW1lcyI6WyJMYXlvdXQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImZpbG1zTGlzdCIsInVwZGF0ZVF1ZXJ5IiwiXyIsImRlYm91bmNlIiwiYmluZCIsInF1ZXJ5IiwiY29uc29sZSIsImxvZyIsInRyaW0iLCJsZW5ndGgiLCJzZWFyY2hGaWxtcyIsInRoZW4iLCJkYXRhIiwic2V0U3RhdGUiLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLE1BQU1BLE1BQU4sU0FBcUIsNENBQUFDLENBQU1DLFNBQTNCLENBQXFDO0FBQ2pDQyxnQkFBWUMsS0FBWixFQUFtQjtBQUNmLGNBQU1BLEtBQU47QUFDQSxhQUFLQyxLQUFMLEdBQWE7QUFDVEMsdUJBQVc7QUFERixTQUFiO0FBR0EsYUFBS0MsV0FBTCxHQUFtQiw2Q0FBQUMsQ0FBRUMsUUFBRixDQUFXLEtBQUtGLFdBQUwsQ0FBaUJHLElBQWpCLENBQXNCLElBQXRCLENBQVgsRUFBd0MsR0FBeEMsQ0FBbkI7QUFDSDtBQUNESCxnQkFBWUksS0FBWixFQUFtQjtBQUNmQyxnQkFBUUMsR0FBUixDQUFZLE9BQVosRUFBcUJGLEtBQXJCO0FBQ0EsWUFBSUEsU0FBU0EsTUFBTUcsSUFBTixHQUFhQyxNQUFiLEdBQXNCLENBQW5DLEVBQXNDO0FBQ2xDQyxZQUFBLG1FQUFBQSxDQUFZTCxLQUFaLEVBQW1CTSxJQUFuQixDQUF3QkMsUUFBUSxLQUFLQyxRQUFMLENBQWMsRUFBRWIsV0FBV1ksSUFBYixFQUFkLENBQWhDO0FBQ0g7QUFDSjs7QUFFREUsYUFBUztBQUNMLGVBQ0k7QUFBQTtBQUFBO0FBQ0k7QUFBQyw2RUFBRDtBQUFBLGtCQUFNLGVBQU4sRUFBZ0IsU0FBUyxFQUF6QjtBQUNJO0FBQUMsaUZBQUQ7QUFBQSxzQkFBTSxVQUFOLEVBQVcsSUFBSSxFQUFmO0FBQ0ksK0VBQUMsbUVBQUQsSUFBYSxlQUFlLEtBQUtiLFdBQWpDO0FBREosaUJBREo7QUFJSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sVUFBTixFQUFXLElBQUksRUFBZjtBQUNJLCtFQUFDLGlFQUFELElBQVcsV0FBVyxLQUFLRixLQUFMLENBQVdDLFNBQWpDO0FBREo7QUFKSjtBQURKLFNBREo7QUFZSDtBQTVCZ0M7O0FBK0JyQywrREFBZU4sTUFBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvTGF5b3V0LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XHJcbmltcG9ydCBQYXBlciBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9QYXBlcic7XHJcbmltcG9ydCBHcmlkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0dyaWQnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IFNlYXJjaEZpZWxkIGZyb20gJy4vY29tcG9uZW50cy9TZWFyY2hGaWVsZC5qc3gnO1xyXG5pbXBvcnQgRmlsbXNMaXN0IGZyb20gJy4vY29tcG9uZW50cy9GaWxtc0xpc3QuanN4JztcclxuaW1wb3J0IHsgc2VhcmNoRmlsbXMgfSBmcm9tICcuL3V0aWxzL2ZpbG1zQVBJJztcclxuXHJcbi8vIGltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xyXG5cclxuY2xhc3MgTGF5b3V0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGZpbG1zTGlzdDogW11cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkgPSBfLmRlYm91bmNlKHRoaXMudXBkYXRlUXVlcnkuYmluZCh0aGlzKSwgMzAwKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZVF1ZXJ5KHF1ZXJ5KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3F1ZXJ5JywgcXVlcnkpO1xyXG4gICAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS50cmltKCkubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICBzZWFyY2hGaWxtcyhxdWVyeSkudGhlbihkYXRhID0+IHRoaXMuc2V0U3RhdGUoeyBmaWxtc0xpc3Q6IGRhdGEgfSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyNH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoRmllbGQgb25VcGRhdGVRdWVyeT17dGhpcy51cGRhdGVRdWVyeX0gLz5cclxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RmlsbXNMaXN0IGZpbG1zRGF0YT17dGhpcy5zdGF0ZS5maWxtc0xpc3R9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxyXG4gICAgICAgICAgICAgICAgPC9HcmlkPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMYXlvdXQ7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./public/javascripts/src/Layout.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SearchField.jsx */ \"./public/javascripts/src/components/SearchField.jsx\");\n/* harmony import */ var _components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/FilmsList.jsx */ \"./public/javascripts/src/components/FilmsList.jsx\");\n/* harmony import */ var _components_TrailerModal_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/TrailerModal.jsx */ \"./public/javascripts/src/components/TrailerModal.jsx\");\n/* harmony import */ var _utils_filmsAPI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/filmsAPI */ \"./public/javascripts/src/utils/filmsAPI.js\");\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\n\n\n\n// import { withStyles } from '@material-ui/core/styles';\n\nclass Layout extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n filmsList: [],\n trailerId: '',\n isModalOpen: false\n };\n this.updateQuery = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.debounce(this.updateQuery.bind(this), 300);\n this.openTrailerModal = this.openTrailerModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n updateQuery(query) {\n if (query && query.trim().length > 2) {\n Object(_utils_filmsAPI__WEBPACK_IMPORTED_MODULE_7__[\"searchFilms\"])(query).then(data => this.setState({ filmsList: data }));\n }\n }\n openTrailerModal(id) {\n return () => {\n console.log('id', id);\n console.log('this', this);\n this.setState({ trailerId: id, isModalOpen: true });\n };\n }\n closeModal() {\n this.setState({ isModalOpen: false });\n }\n\n render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"], { onUpdateQuery: this.updateQuery })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"], { filmsData: this.state.filmsList, openTrailer: this.openTrailerModal })\n )\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_TrailerModal_jsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n videoId: this.state.trailerId,\n isModalOpen: this.state.isModalOpen,\n handleClose: this.closeModal\n })\n );\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Layout);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL0xheW91dC5qc3g/NjZmYyJdLCJuYW1lcyI6WyJMYXlvdXQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImZpbG1zTGlzdCIsInRyYWlsZXJJZCIsImlzTW9kYWxPcGVuIiwidXBkYXRlUXVlcnkiLCJfIiwiZGVib3VuY2UiLCJiaW5kIiwib3BlblRyYWlsZXJNb2RhbCIsImNsb3NlTW9kYWwiLCJxdWVyeSIsInRyaW0iLCJsZW5ndGgiLCJzZWFyY2hGaWxtcyIsInRoZW4iLCJkYXRhIiwic2V0U3RhdGUiLCJpZCIsImNvbnNvbGUiLCJsb2ciLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLE1BQU1BLE1BQU4sU0FBcUIsNENBQUFDLENBQU1DLFNBQTNCLENBQXFDO0FBQ2pDQyxnQkFBWUMsS0FBWixFQUFtQjtBQUNmLGNBQU1BLEtBQU47QUFDQSxhQUFLQyxLQUFMLEdBQWE7QUFDVEMsdUJBQVcsRUFERjtBQUVUQyx1QkFBVyxFQUZGO0FBR1RDLHlCQUFhO0FBSEosU0FBYjtBQUtBLGFBQUtDLFdBQUwsR0FBbUIsNkNBQUFDLENBQUVDLFFBQUYsQ0FBVyxLQUFLRixXQUFMLENBQWlCRyxJQUFqQixDQUFzQixJQUF0QixDQUFYLEVBQXdDLEdBQXhDLENBQW5CO0FBQ0EsYUFBS0MsZ0JBQUwsR0FBd0IsS0FBS0EsZ0JBQUwsQ0FBc0JELElBQXRCLENBQTJCLElBQTNCLENBQXhCO0FBQ0EsYUFBS0UsVUFBTCxHQUFrQixLQUFLQSxVQUFMLENBQWdCRixJQUFoQixDQUFxQixJQUFyQixDQUFsQjtBQUNIO0FBQ0RILGdCQUFZTSxLQUFaLEVBQW1CO0FBQ2YsWUFBSUEsU0FBU0EsTUFBTUMsSUFBTixHQUFhQyxNQUFiLEdBQXNCLENBQW5DLEVBQXNDO0FBQ2xDQyxZQUFBLG1FQUFBQSxDQUFZSCxLQUFaLEVBQW1CSSxJQUFuQixDQUF3QkMsUUFBUSxLQUFLQyxRQUFMLENBQWMsRUFBRWYsV0FBV2MsSUFBYixFQUFkLENBQWhDO0FBQ0g7QUFDSjtBQUNEUCxxQkFBaUJTLEVBQWpCLEVBQXFCO0FBQ2pCLGVBQU8sTUFBTTtBQUNUQyxvQkFBUUMsR0FBUixDQUFZLElBQVosRUFBa0JGLEVBQWxCO0FBQ0FDLG9CQUFRQyxHQUFSLENBQVksTUFBWixFQUFvQixJQUFwQjtBQUNBLGlCQUFLSCxRQUFMLENBQWMsRUFBRWQsV0FBV2UsRUFBYixFQUFpQmQsYUFBYSxJQUE5QixFQUFkO0FBQ0gsU0FKRDtBQUtIO0FBQ0RNLGlCQUFhO0FBQ1QsYUFBS08sUUFBTCxDQUFjLEVBQUViLGFBQWEsS0FBZixFQUFkO0FBQ0g7O0FBRURpQixhQUFTO0FBQ0wsZUFDSTtBQUFBO0FBQUE7QUFDSTtBQUFDLDZFQUFEO0FBQUEsa0JBQU0sZUFBTixFQUFnQixTQUFTLEVBQXpCO0FBQ0k7QUFBQyxpRkFBRDtBQUFBLHNCQUFNLFVBQU4sRUFBVyxJQUFJLEVBQWY7QUFDSSwrRUFBQyxtRUFBRCxJQUFhLGVBQWUsS0FBS2hCLFdBQWpDO0FBREosaUJBREo7QUFJSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sVUFBTixFQUFXLElBQUksRUFBZjtBQUNJLCtFQUFDLGlFQUFELElBQVcsV0FBVyxLQUFLSixLQUFMLENBQVdDLFNBQWpDLEVBQTRDLGFBQWEsS0FBS08sZ0JBQTlEO0FBREo7QUFKSixhQURKO0FBU0ksdUVBQUMsb0VBQUQ7QUFDSSx5QkFBUyxLQUFLUixLQUFMLENBQVdFLFNBRHhCO0FBRUksNkJBQWEsS0FBS0YsS0FBTCxDQUFXRyxXQUY1QjtBQUdJLDZCQUFhLEtBQUtNO0FBSHRCO0FBVEosU0FESjtBQWlCSDtBQTlDZ0M7O0FBaURyQywrREFBZWQsTUFBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvTGF5b3V0LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XHJcbmltcG9ydCBQYXBlciBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9QYXBlcic7XHJcbmltcG9ydCBHcmlkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0dyaWQnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IFNlYXJjaEZpZWxkIGZyb20gJy4vY29tcG9uZW50cy9TZWFyY2hGaWVsZC5qc3gnO1xyXG5pbXBvcnQgRmlsbXNMaXN0IGZyb20gJy4vY29tcG9uZW50cy9GaWxtc0xpc3QuanN4JztcclxuaW1wb3J0IFRyYWlsZXJNb2RhbCBmcm9tICcuL2NvbXBvbmVudHMvVHJhaWxlck1vZGFsLmpzeCc7XHJcbmltcG9ydCB7IHNlYXJjaEZpbG1zIH0gZnJvbSAnLi91dGlscy9maWxtc0FQSSc7XHJcblxyXG4vLyBpbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcclxuXHJcbmNsYXNzIExheW91dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBmaWxtc0xpc3Q6IFtdLFxyXG4gICAgICAgICAgICB0cmFpbGVySWQ6ICcnLFxyXG4gICAgICAgICAgICBpc01vZGFsT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkgPSBfLmRlYm91bmNlKHRoaXMudXBkYXRlUXVlcnkuYmluZCh0aGlzKSwgMzAwKTtcclxuICAgICAgICB0aGlzLm9wZW5UcmFpbGVyTW9kYWwgPSB0aGlzLm9wZW5UcmFpbGVyTW9kYWwuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSB0aGlzLmNsb3NlTW9kYWwuYmluZCh0aGlzKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZVF1ZXJ5KHF1ZXJ5KSB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5ICYmIHF1ZXJ5LnRyaW0oKS5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICAgIHNlYXJjaEZpbG1zKHF1ZXJ5KS50aGVuKGRhdGEgPT4gdGhpcy5zZXRTdGF0ZSh7IGZpbG1zTGlzdDogZGF0YSB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb3BlblRyYWlsZXJNb2RhbChpZCkge1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpZCcsIGlkKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMnLCB0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHRyYWlsZXJJZDogaWQsIGlzTW9kYWxPcGVuOiB0cnVlIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjbG9zZU1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc01vZGFsT3BlbjogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MjR9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEZpZWxkIG9uVXBkYXRlUXVlcnk9e3RoaXMudXBkYXRlUXVlcnl9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEZpbG1zTGlzdCBmaWxtc0RhdGE9e3RoaXMuc3RhdGUuZmlsbXNMaXN0fSBvcGVuVHJhaWxlcj17dGhpcy5vcGVuVHJhaWxlck1vZGFsfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cclxuICAgICAgICAgICAgICAgIDwvR3JpZD5cclxuICAgICAgICAgICAgICAgIDxUcmFpbGVyTW9kYWxcclxuICAgICAgICAgICAgICAgICAgICB2aWRlb0lkPXt0aGlzLnN0YXRlLnRyYWlsZXJJZH1cclxuICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17dGhpcy5zdGF0ZS5pc01vZGFsT3Blbn1cclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZT17dGhpcy5jbG9zZU1vZGFsfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./public/javascripts/src/Layout.jsx\n");
/***/ }),
@@ -3445,7 +3589,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/styles/index.js\");\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Typography */ \"./node_modules/@material-ui/core/Typography/index.js\");\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__);\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\nconst styles = theme => ({\n poster: {\n maxWidth: '100%',\n height: 300\n },\n paperBlock: {\n padding: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n }\n});\n\nclass FilmsContainer extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n render() {\n const { classes } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n this.props.filmsData ? this.props.filmsData.map(filmData => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default.a,\n { key: filmData.imdbID, className: classes.paperBlock },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 4 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('img', {\n className: classes.poster,\n src: filmData.Poster.replace(/^N\\/A$/i, '/images/noposter.jpg'),\n alt: 'Poster'\n })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 8 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display1', gutterBottom: true },\n filmData.Title\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'body1', gutterBottom: true },\n filmData.Year\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'caption', gutterBottom: true, align: 'center' },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'a',\n { href: 'https://www.youtube.com/watch?v=' + filmData.trailer.id.videoId },\n 'watch trailer'\n )\n )\n )\n )\n )) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display3', gutterBottom: true },\n 'No movies found'\n )\n );\n }\n}\n\nFilmsContainer.propTypes = {\n filmsData: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.array,\n classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__[\"withStyles\"])(styles)(FilmsContainer));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL2NvbXBvbmVudHMvRmlsbXNMaXN0LmpzeD9iYjI5Il0sIm5hbWVzIjpbInN0eWxlcyIsInRoZW1lIiwicG9zdGVyIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJwYXBlckJsb2NrIiwicGFkZGluZyIsInNwYWNpbmciLCJ1bml0IiwibWFyZ2luQm90dG9tIiwiRmlsbXNDb250YWluZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsImNsYXNzZXMiLCJwcm9wcyIsImZpbG1zRGF0YSIsIm1hcCIsImZpbG1EYXRhIiwiaW1kYklEIiwiUG9zdGVyIiwicmVwbGFjZSIsIlRpdGxlIiwiWWVhciIsInRyYWlsZXIiLCJpZCIsInZpZGVvSWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJhcnJheSIsIm9iamVjdCIsIndpdGhTdHlsZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxTQUFTQyxVQUFVO0FBQ3JCQyxZQUFRO0FBQ0pDLGtCQUFVLE1BRE47QUFFSkMsZ0JBQVE7QUFGSixLQURhO0FBS3JCQyxnQkFBWTtBQUNSQyxpQkFBU0wsTUFBTU0sT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRHRCO0FBRVJDLHNCQUFjUixNQUFNTSxPQUFOLENBQWNDO0FBRnBCO0FBTFMsQ0FBVixDQUFmOztBQVdBLE1BQU1FLGNBQU4sU0FBNkIsNENBQUFDLENBQU1DLFNBQW5DLENBQTZDO0FBQ3pDQyxhQUFTO0FBQ0wsY0FBTSxFQUFFQyxPQUFGLEtBQWMsS0FBS0MsS0FBekI7QUFDQSxlQUNJO0FBQUE7QUFBQTtBQUNLLGlCQUFLQSxLQUFMLENBQVdDLFNBQVgsR0FDRyxLQUFLRCxLQUFMLENBQVdDLFNBQVgsQ0FBcUJDLEdBQXJCLENBQXlCQyxZQUNyQjtBQUFDLDhFQUFEO0FBQUEsa0JBQU8sS0FBS0EsU0FBU0MsTUFBckIsRUFBNkIsV0FBV0wsUUFBUVQsVUFBaEQ7QUFDSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sZUFBTixFQUFnQixTQUFTLEVBQXpCO0FBQ0k7QUFBQyxxRkFBRDtBQUFBLDBCQUFNLFVBQU4sRUFBVyxJQUFJLENBQWY7QUFDSTtBQUNJLHVDQUFXUyxRQUFRWixNQUR2QjtBQUVJLGlDQUFLZ0IsU0FBU0UsTUFBVCxDQUFnQkMsT0FBaEIsQ0FBd0IsU0FBeEIsRUFBbUMsc0JBQW5DLENBRlQ7QUFHSSxpQ0FBSTtBQUhSO0FBREoscUJBREo7QUFRSTtBQUFDLHFGQUFEO0FBQUEsMEJBQU0sVUFBTixFQUFXLElBQUksQ0FBZjtBQUNJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLFVBQXBCLEVBQStCLGtCQUEvQjtBQUNLSCxxQ0FBU0k7QUFEZCx5QkFESjtBQUlJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLE9BQXBCLEVBQTRCLGtCQUE1QjtBQUNLSixxQ0FBU0s7QUFEZCx5QkFKSjtBQVFJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLFNBQXBCLEVBQThCLGtCQUE5QixFQUEyQyxPQUFNLFFBQWpEO0FBQ0k7QUFBQTtBQUFBLGtDQUFHLE1BQU0scUNBQXFDTCxTQUFTTSxPQUFULENBQWlCQyxFQUFqQixDQUFvQkMsT0FBbEU7QUFBQTtBQUFBO0FBREo7QUFSSjtBQVJKO0FBREosYUFESixDQURILEdBNkJHO0FBQUMsbUZBQUQ7QUFBQSxrQkFBWSxTQUFRLFVBQXBCLEVBQStCLGtCQUEvQjtBQUFBO0FBQUE7QUE5QlIsU0FESjtBQXFDSDtBQXhDd0M7O0FBMkM3Q2hCLGVBQWVpQixTQUFmLEdBQTJCO0FBQ3ZCWCxlQUFXLGlEQUFBWSxDQUFVQyxLQURFO0FBRXZCZixhQUFTLGlEQUFBYyxDQUFVRTtBQUZJLENBQTNCOztBQUtBLCtEQUFlLDJFQUFBQyxDQUFXL0IsTUFBWCxFQUFtQlUsY0FBbkIsQ0FBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvY29tcG9uZW50cy9GaWxtc0xpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvUGFwZXInO1xuaW1wb3J0IEdyaWQgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvR3JpZCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UeXBvZ3JhcGh5JztcblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICBwb3N0ZXI6IHtcbiAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAzMDBcbiAgICB9LFxuICAgIHBhcGVyQmxvY2s6IHtcbiAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICAgICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXRcbiAgICB9XG59KTtcblxuY2xhc3MgRmlsbXNDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5maWxtc0RhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZmlsbXNEYXRhLm1hcChmaWxtRGF0YSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFwZXIga2V5PXtmaWxtRGF0YS5pbWRiSUR9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXBlckJsb2NrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucG9zdGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17ZmlsbURhdGEuUG9zdGVyLnJlcGxhY2UoL15OXFwvQSQvaSwgJy9pbWFnZXMvbm9wb3N0ZXIuanBnJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUG9zdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17OH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiZGlzcGxheTFcIiBndXR0ZXJCb3R0b20+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbG1EYXRhLlRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImJvZHkxXCIgZ3V0dGVyQm90dG9tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxtRGF0YS5ZZWFyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiY2FwdGlvblwiIGd1dHRlckJvdHRvbSBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9eydodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PScgKyBmaWxtRGF0YS50cmFpbGVyLmlkLnZpZGVvSWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXRjaCB0cmFpbGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiZGlzcGxheTNcIiBndXR0ZXJCb3R0b20+XG4gICAgICAgICAgICAgICAgICAgICAgICBObyBtb3ZpZXMgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkZpbG1zQ29udGFpbmVyLnByb3BUeXBlcyA9IHtcbiAgICBmaWxtc0RhdGE6IFByb3BUeXBlcy5hcnJheSxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0XG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoRmlsbXNDb250YWluZXIpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./public/javascripts/src/components/FilmsList.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/styles/index.js\");\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Typography */ \"./node_modules/@material-ui/core/Typography/index.js\");\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/core/Button */ \"./node_modules/@material-ui/core/Button/index.js\");\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material-ui/icons/Movie */ \"./node_modules/@material-ui/icons/Movie.js\");\n/* harmony import */ var _material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7__);\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\n\n\nconst styles = theme => ({\n poster: {\n maxWidth: '100%',\n height: 300\n },\n paperBlock: {\n padding: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n }\n});\n\nclass FilmsContainer extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n render() {\n const { classes, openTrailer } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n this.props.filmsData ? this.props.filmsData.map(filmData => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default.a,\n { key: filmData.imdbID, className: classes.paperBlock },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 4 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('img', {\n className: classes.poster,\n src: filmData.Poster.replace(/^N\\/A$/i, '/images/noposter.jpg'),\n alt: 'Poster'\n })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 8 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display1', gutterBottom: true },\n filmData.Title\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'body1', gutterBottom: true },\n filmData.Year\n ),\n filmData.trailer ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6___default.a,\n {\n size: 'medium',\n variant: 'contained',\n color: 'primary',\n onClick: openTrailer(filmData.trailer.id.videoId)\n },\n 'Watch trailer',\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7___default.a, null)\n ) : 'No trailer'\n )\n )\n )) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display3', gutterBottom: true },\n 'No movies found'\n )\n );\n }\n}\n\nFilmsContainer.propTypes = {\n filmsData: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.array,\n openTrailer: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func.isRequired,\n classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__[\"withStyles\"])(styles)(FilmsContainer));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL2NvbXBvbmVudHMvRmlsbXNMaXN0LmpzeD9iYjI5Il0sIm5hbWVzIjpbInN0eWxlcyIsInRoZW1lIiwicG9zdGVyIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJwYXBlckJsb2NrIiwicGFkZGluZyIsInNwYWNpbmciLCJ1bml0IiwibWFyZ2luQm90dG9tIiwiRmlsbXNDb250YWluZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsImNsYXNzZXMiLCJvcGVuVHJhaWxlciIsInByb3BzIiwiZmlsbXNEYXRhIiwibWFwIiwiZmlsbURhdGEiLCJpbWRiSUQiLCJQb3N0ZXIiLCJyZXBsYWNlIiwiVGl0bGUiLCJZZWFyIiwidHJhaWxlciIsImlkIiwidmlkZW9JZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJ3aXRoU3R5bGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxTQUFTQyxVQUFVO0FBQ3JCQyxZQUFRO0FBQ0pDLGtCQUFVLE1BRE47QUFFSkMsZ0JBQVE7QUFGSixLQURhO0FBS3JCQyxnQkFBWTtBQUNSQyxpQkFBU0wsTUFBTU0sT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRHRCO0FBRVJDLHNCQUFjUixNQUFNTSxPQUFOLENBQWNDO0FBRnBCO0FBTFMsQ0FBVixDQUFmOztBQVdBLE1BQU1FLGNBQU4sU0FBNkIsNENBQUFDLENBQU1DLFNBQW5DLENBQTZDO0FBQ3pDQyxhQUFTO0FBQ0wsY0FBTSxFQUFFQyxPQUFGLEVBQVdDLFdBQVgsS0FBMkIsS0FBS0MsS0FBdEM7QUFDQSxlQUNJO0FBQUE7QUFBQTtBQUNLLGlCQUFLQSxLQUFMLENBQVdDLFNBQVgsR0FDRyxLQUFLRCxLQUFMLENBQVdDLFNBQVgsQ0FBcUJDLEdBQXJCLENBQXlCQyxZQUNyQjtBQUFDLDhFQUFEO0FBQUEsa0JBQU8sS0FBS0EsU0FBU0MsTUFBckIsRUFBNkIsV0FBV04sUUFBUVQsVUFBaEQ7QUFDSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sZUFBTixFQUFnQixTQUFTLEVBQXpCO0FBQ0k7QUFBQyxxRkFBRDtBQUFBLDBCQUFNLFVBQU4sRUFBVyxJQUFJLENBQWY7QUFDSTtBQUNJLHVDQUFXUyxRQUFRWixNQUR2QjtBQUVJLGlDQUFLaUIsU0FBU0UsTUFBVCxDQUFnQkMsT0FBaEIsQ0FBd0IsU0FBeEIsRUFBbUMsc0JBQW5DLENBRlQ7QUFHSSxpQ0FBSTtBQUhSO0FBREoscUJBREo7QUFRSTtBQUFDLHFGQUFEO0FBQUEsMEJBQU0sVUFBTixFQUFXLElBQUksQ0FBZjtBQUNJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLFVBQXBCLEVBQStCLGtCQUEvQjtBQUNLSCxxQ0FBU0k7QUFEZCx5QkFESjtBQUlJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLE9BQXBCLEVBQTRCLGtCQUE1QjtBQUNLSixxQ0FBU0s7QUFEZCx5QkFKSjtBQU9LTCxpQ0FBU00sT0FBVCxHQUNHO0FBQUMsMkZBQUQ7QUFBQTtBQUNJLHNDQUFLLFFBRFQ7QUFFSSx5Q0FBUSxXQUZaO0FBR0ksdUNBQU0sU0FIVjtBQUlJLHlDQUFTVixZQUFZSSxTQUFTTSxPQUFULENBQWlCQyxFQUFqQixDQUFvQkMsT0FBaEM7QUFKYjtBQUFBO0FBT0ksdUZBQUMsK0RBQUQ7QUFQSix5QkFESCxHQVdHO0FBbEJSO0FBUko7QUFESixhQURKLENBREgsR0FvQ0c7QUFBQyxtRkFBRDtBQUFBLGtCQUFZLFNBQVEsVUFBcEIsRUFBK0Isa0JBQS9CO0FBQUE7QUFBQTtBQXJDUixTQURKO0FBNENIO0FBL0N3Qzs7QUFrRDdDakIsZUFBZWtCLFNBQWYsR0FBMkI7QUFDdkJYLGVBQVcsaURBQUFZLENBQVVDLEtBREU7QUFFdkJmLGlCQUFhLGlEQUFBYyxDQUFVRSxJQUFWLENBQWVDLFVBRkw7QUFHdkJsQixhQUFTLGlEQUFBZSxDQUFVSTtBQUhJLENBQTNCOztBQU1BLCtEQUFlLDJFQUFBQyxDQUFXbEMsTUFBWCxFQUFtQlUsY0FBbkIsQ0FBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvY29tcG9uZW50cy9GaWxtc0xpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvUGFwZXInO1xuaW1wb3J0IEdyaWQgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvR3JpZCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UeXBvZ3JhcGh5JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcbmltcG9ydCBNb3ZpZUljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL01vdmllJztcblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICBwb3N0ZXI6IHtcbiAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAzMDBcbiAgICB9LFxuICAgIHBhcGVyQmxvY2s6IHtcbiAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICAgICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXRcbiAgICB9XG59KTtcblxuY2xhc3MgRmlsbXNDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBjbGFzc2VzLCBvcGVuVHJhaWxlciB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuZmlsbXNEYXRhID8gKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZpbG1zRGF0YS5tYXAoZmlsbURhdGEgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFBhcGVyIGtleT17ZmlsbURhdGEuaW1kYklEfSBjbGFzc05hbWU9e2NsYXNzZXMucGFwZXJCbG9ja30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17NH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnBvc3Rlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2ZpbG1EYXRhLlBvc3Rlci5yZXBsYWNlKC9eTlxcL0EkL2ksICcvaW1hZ2VzL25vcG9zdGVyLmpwZycpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlBvc3RlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImRpc3BsYXkxXCIgZ3V0dGVyQm90dG9tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxtRGF0YS5UaXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJib2R5MVwiIGd1dHRlckJvdHRvbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsbURhdGEuWWVhcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxtRGF0YS50cmFpbGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvcGVuVHJhaWxlcihmaWxtRGF0YS50cmFpbGVyLmlkLnZpZGVvSWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2F0Y2ggdHJhaWxlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TW92aWVJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdObyB0cmFpbGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImRpc3BsYXkzXCIgZ3V0dGVyQm90dG9tPlxuICAgICAgICAgICAgICAgICAgICAgICAgTm8gbW92aWVzIGZvdW5kXG4gICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5GaWxtc0NvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gICAgZmlsbXNEYXRhOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgb3BlblRyYWlsZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKEZpbG1zQ29udGFpbmVyKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./public/javascripts/src/components/FilmsList.jsx\n");
/***/ }),
@@ -3461,6 +3605,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
/***/ }),
+/***/ "./public/javascripts/src/components/TrailerModal.jsx":
+/*!************************************************************!*\
+ !*** ./public/javascripts/src/components/TrailerModal.jsx ***!
+ \************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/styles/index.js\");\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Typography */ \"./node_modules/@material-ui/core/Typography/index.js\");\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Modal */ \"./node_modules/@material-ui/core/Modal/index.js\");\n/* harmony import */ var _material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Button */ \"./node_modules/@material-ui/core/Button/index.js\");\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\n\nconst YOUTUBE_VIDEO_PREFIX = 'https://www.youtube.com/embed/';\n\nfunction getModalStyle() {\n const top = 50;\n const left = 50;\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${top}%, -${left}%)`\n };\n}\n\nconst styles = theme => ({\n paper: {\n position: 'absolute',\n width: theme.spacing.unit * 50,\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n padding: theme.spacing.unit * 4\n }\n});\n\nclass TrailerModal extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n // constructor(props) {\n // super(props);\n // this.handleClose = this.handleClose.bind(this);\n // }\n\n render() {\n const { classes, isModalOpen, videoId, handleClose } = this.props;\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4___default.a,\n {\n 'aria-labelledby': 'Trailer',\n 'aria-describedby': 'Modal with movie trailer video',\n open: isModalOpen,\n onClose: handleClose\n },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n { style: getModalStyle(), className: classes.paper },\n isModalOpen && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('iframe', {\n width: '100%',\n height: '315',\n src: YOUTUBE_VIDEO_PREFIX + videoId,\n frameBorder: '0',\n allow: 'autoplay; encrypted-media',\n allowFullScreen: true\n }),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default.a,\n { variant: 'title', id: 'modal-title' },\n 'Text in a modal'\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default.a,\n { variant: 'subheading', id: 'simple-modal-description' },\n 'Duis mollis, est non commodo luctus, nisi erat porttitor ligula.'\n )\n )\n );\n }\n}\n\nTrailerModal.propTypes = {\n classes: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n videoId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n isModalOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,\n handleClose: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\n\nconst TrailerModalStyled = Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2__[\"withStyles\"])(styles)(TrailerModal);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TrailerModalStyled);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL2NvbXBvbmVudHMvVHJhaWxlck1vZGFsLmpzeD8xZWIyIl0sIm5hbWVzIjpbIllPVVRVQkVfVklERU9fUFJFRklYIiwiZ2V0TW9kYWxTdHlsZSIsInRvcCIsImxlZnQiLCJ0cmFuc2Zvcm0iLCJzdHlsZXMiLCJ0aGVtZSIsInBhcGVyIiwicG9zaXRpb24iLCJ3aWR0aCIsInNwYWNpbmciLCJ1bml0IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJzaGFkb3dzIiwicGFkZGluZyIsIlRyYWlsZXJNb2RhbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwiY2xhc3NlcyIsImlzTW9kYWxPcGVuIiwidmlkZW9JZCIsImhhbmRsZUNsb3NlIiwicHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwiYm9vbCIsImZ1bmMiLCJUcmFpbGVyTW9kYWxTdHlsZWQiLCJ3aXRoU3R5bGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1BLHVCQUF1QixnQ0FBN0I7O0FBRUEsU0FBU0MsYUFBVCxHQUF5QjtBQUNyQixVQUFNQyxNQUFNLEVBQVo7QUFDQSxVQUFNQyxPQUFPLEVBQWI7O0FBRUEsV0FBTztBQUNIRCxhQUFNLEdBQUVBLEdBQUksR0FEVDtBQUVIQyxjQUFPLEdBQUVBLElBQUssR0FGWDtBQUdIQyxtQkFBWSxjQUFhRixHQUFJLE9BQU1DLElBQUs7QUFIckMsS0FBUDtBQUtIOztBQUVELE1BQU1FLFNBQVNDLFVBQVU7QUFDckJDLFdBQU87QUFDSEMsa0JBQVUsVUFEUDtBQUVIQyxlQUFPSCxNQUFNSSxPQUFOLENBQWNDLElBQWQsR0FBcUIsRUFGekI7QUFHSEMseUJBQWlCTixNQUFNTyxPQUFOLENBQWNDLFVBQWQsQ0FBeUJQLEtBSHZDO0FBSUhRLG1CQUFXVCxNQUFNVSxPQUFOLENBQWMsQ0FBZCxDQUpSO0FBS0hDLGlCQUFTWCxNQUFNSSxPQUFOLENBQWNDLElBQWQsR0FBcUI7QUFMM0I7QUFEYyxDQUFWLENBQWY7O0FBVUEsTUFBTU8sWUFBTixTQUEyQiw0Q0FBQUMsQ0FBTUMsU0FBakMsQ0FBMkM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7O0FBRUFDLGFBQVM7QUFDTCxjQUFNLEVBQUVDLE9BQUYsRUFBV0MsV0FBWCxFQUF3QkMsT0FBeEIsRUFBaUNDLFdBQWpDLEtBQWlELEtBQUtDLEtBQTVEOztBQUVBLGVBQ0k7QUFBQywwRUFBRDtBQUFBO0FBQ0ksbUNBQWdCLFNBRHBCO0FBRUksb0NBQWlCLGdDQUZyQjtBQUdJLHNCQUFNSCxXQUhWO0FBSUkseUJBQVNFO0FBSmI7QUFNSTtBQUFBO0FBQUEsa0JBQUssT0FBT3hCLGVBQVosRUFBNkIsV0FBV3FCLFFBQVFmLEtBQWhEO0FBQ0tnQiwrQkFDRztBQUNJLDJCQUFNLE1BRFY7QUFFSSw0QkFBTyxLQUZYO0FBR0kseUJBQUt2Qix1QkFBdUJ3QixPQUhoQztBQUlJLGlDQUFZLEdBSmhCO0FBS0ksMkJBQU0sMkJBTFY7QUFNSTtBQU5KLGtCQUZSO0FBV0k7QUFBQyx1RkFBRDtBQUFBLHNCQUFZLFNBQVEsT0FBcEIsRUFBNEIsSUFBRyxhQUEvQjtBQUFBO0FBQUEsaUJBWEo7QUFjSTtBQUFDLHVGQUFEO0FBQUEsc0JBQVksU0FBUSxZQUFwQixFQUFpQyxJQUFHLDBCQUFwQztBQUFBO0FBQUE7QUFkSjtBQU5KLFNBREo7QUEyQkg7QUFwQ3NDOztBQXVDM0NOLGFBQWFTLFNBQWIsR0FBeUI7QUFDckJMLGFBQVMsaURBQUFNLENBQVVDLE1BQVYsQ0FBaUJDLFVBREw7QUFFckJOLGFBQVMsaURBQUFJLENBQVVHLE1BQVYsQ0FBaUJELFVBRkw7QUFHckJQLGlCQUFhLGlEQUFBSyxDQUFVSSxJQUFWLENBQWVGLFVBSFA7QUFJckJMLGlCQUFhLGlEQUFBRyxDQUFVSyxJQUFWLENBQWVIO0FBSlAsQ0FBekI7O0FBT0EsTUFBTUkscUJBQXFCLDJFQUFBQyxDQUFXOUIsTUFBWCxFQUFtQmEsWUFBbkIsQ0FBM0I7O0FBRUEsK0RBQWVnQixrQkFBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvY29tcG9uZW50cy9UcmFpbGVyTW9kYWwuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1R5cG9ncmFwaHknO1xuaW1wb3J0IE1vZGFsIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL01vZGFsJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcblxuY29uc3QgWU9VVFVCRV9WSURFT19QUkVGSVggPSAnaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJztcblxuZnVuY3Rpb24gZ2V0TW9kYWxTdHlsZSgpIHtcbiAgICBjb25zdCB0b3AgPSA1MDtcbiAgICBjb25zdCBsZWZ0ID0gNTA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0b3A6IGAke3RvcH0lYCxcbiAgICAgICAgbGVmdDogYCR7bGVmdH0lYCxcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlKC0ke3RvcH0lLCAtJHtsZWZ0fSUpYFxuICAgIH07XG59XG5cbmNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgcGFwZXI6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHdpZHRoOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiA1MCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQucGFwZXIsXG4gICAgICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93c1s1XSxcbiAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogNFxuICAgIH1cbn0pO1xuXG5jbGFzcyBUcmFpbGVyTW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIC8vIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgLy8gICAgIHN1cGVyKHByb3BzKTtcbiAgICAvLyAgICAgdGhpcy5oYW5kbGVDbG9zZSA9IHRoaXMuaGFuZGxlQ2xvc2UuYmluZCh0aGlzKTtcbiAgICAvLyB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NlcywgaXNNb2RhbE9wZW4sIHZpZGVvSWQsIGhhbmRsZUNsb3NlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8TW9kYWxcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJUcmFpbGVyXCJcbiAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiTW9kYWwgd2l0aCBtb3ZpZSB0cmFpbGVyIHZpZGVvXCJcbiAgICAgICAgICAgICAgICBvcGVuPXtpc01vZGFsT3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtnZXRNb2RhbFN0eWxlKCl9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXBlcn0+XG4gICAgICAgICAgICAgICAgICAgIHtpc01vZGFsT3BlbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17WU9VVFVCRV9WSURFT19QUkVGSVggKyB2aWRlb0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3c9XCJhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJ0aXRsZVwiIGlkPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgaW4gYSBtb2RhbFxuICAgICAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJzdWJoZWFkaW5nXCIgaWQ9XCJzaW1wbGUtbW9kYWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIER1aXMgbW9sbGlzLCBlc3Qgbm9uIGNvbW1vZG8gbHVjdHVzLCBuaXNpIGVyYXQgcG9ydHRpdG9yIGxpZ3VsYS5cbiAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9Nb2RhbD5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblRyYWlsZXJNb2RhbC5wcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHZpZGVvSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBpc01vZGFsT3BlbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBoYW5kbGVDbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgVHJhaWxlck1vZGFsU3R5bGVkID0gd2l0aFN0eWxlcyhzdHlsZXMpKFRyYWlsZXJNb2RhbCk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYWlsZXJNb2RhbFN0eWxlZDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./public/javascripts/src/components/TrailerModal.jsx\n");
+
+/***/ }),
+
/***/ "./public/javascripts/src/utils/filmsAPI.js":
/*!**************************************************!*\
!*** ./public/javascripts/src/utils/filmsAPI.js ***!
diff --git a/public/javascripts/src/Layout.jsx b/public/javascripts/src/Layout.jsx
index f7ad5f2..9fef219 100644
--- a/public/javascripts/src/Layout.jsx
+++ b/public/javascripts/src/Layout.jsx
@@ -6,6 +6,7 @@ import _ from 'lodash';
import SearchField from './components/SearchField.jsx';
import FilmsList from './components/FilmsList.jsx';
+import TrailerModal from './components/TrailerModal.jsx';
import { searchFilms } from './utils/filmsAPI';
// import { withStyles } from '@material-ui/core/styles';
@@ -14,16 +15,29 @@ class Layout extends React.Component {
constructor(props) {
super(props);
this.state = {
- filmsList: []
+ filmsList: [],
+ trailerId: '',
+ isModalOpen: false
};
this.updateQuery = _.debounce(this.updateQuery.bind(this), 300);
+ this.openTrailerModal = this.openTrailerModal.bind(this);
+ this.closeModal = this.closeModal.bind(this);
}
updateQuery(query) {
- console.log('query', query);
if (query && query.trim().length > 2) {
searchFilms(query).then(data => this.setState({ filmsList: data }));
}
}
+ openTrailerModal(id) {
+ return () => {
+ console.log('id', id);
+ console.log('this', this);
+ this.setState({ trailerId: id, isModalOpen: true });
+ };
+ }
+ closeModal() {
+ this.setState({ isModalOpen: false });
+ }
render() {
return (
@@ -33,9 +47,14 @@ class Layout extends React.Component {
-
+
+
);
}
diff --git a/public/javascripts/src/components/FilmsList.jsx b/public/javascripts/src/components/FilmsList.jsx
index 83417ba..e3378af 100644
--- a/public/javascripts/src/components/FilmsList.jsx
+++ b/public/javascripts/src/components/FilmsList.jsx
@@ -5,6 +5,8 @@ import Grid from '@material-ui/core/Grid';
import { withStyles } from '@material-ui/core/styles';
import PropTypes from 'prop-types';
import Typography from '@material-ui/core/Typography';
+import Button from '@material-ui/core/Button';
+import MovieIcon from '@material-ui/icons/Movie';
const styles = theme => ({
poster: {
@@ -19,7 +21,7 @@ const styles = theme => ({
class FilmsContainer extends React.Component {
render() {
- const { classes } = this.props;
+ const { classes, openTrailer } = this.props;
return (
{this.props.filmsData ? (
@@ -40,11 +42,19 @@ class FilmsContainer extends React.Component {
{filmData.Year}
-
-
- watch trailer
-
-
+ {filmData.trailer ? (
+
+ ) : (
+ 'No trailer'
+ )}
@@ -61,6 +71,7 @@ class FilmsContainer extends React.Component {
FilmsContainer.propTypes = {
filmsData: PropTypes.array,
+ openTrailer: PropTypes.func.isRequired,
classes: PropTypes.object
};
diff --git a/public/javascripts/src/components/TrailerModal.jsx b/public/javascripts/src/components/TrailerModal.jsx
new file mode 100644
index 0000000..883881e
--- /dev/null
+++ b/public/javascripts/src/components/TrailerModal.jsx
@@ -0,0 +1,79 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { withStyles } from '@material-ui/core/styles';
+import Typography from '@material-ui/core/Typography';
+import Modal from '@material-ui/core/Modal';
+import Button from '@material-ui/core/Button';
+
+const YOUTUBE_VIDEO_PREFIX = 'https://www.youtube.com/embed/';
+
+function getModalStyle() {
+ const top = 50;
+ const left = 50;
+
+ return {
+ top: `${top}%`,
+ left: `${left}%`,
+ transform: `translate(-${top}%, -${left}%)`
+ };
+}
+
+const styles = theme => ({
+ paper: {
+ position: 'absolute',
+ width: theme.spacing.unit * 50,
+ backgroundColor: theme.palette.background.paper,
+ boxShadow: theme.shadows[5],
+ padding: theme.spacing.unit * 4
+ }
+});
+
+class TrailerModal extends React.Component {
+ // constructor(props) {
+ // super(props);
+ // this.handleClose = this.handleClose.bind(this);
+ // }
+
+ render() {
+ const { classes, isModalOpen, videoId, handleClose } = this.props;
+
+ return (
+
+
+ {isModalOpen && (
+
+ )}
+
+ Text in a modal
+
+
+ Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
+
+
+
+ );
+ }
+}
+
+TrailerModal.propTypes = {
+ classes: PropTypes.object.isRequired,
+ videoId: PropTypes.string.isRequired,
+ isModalOpen: PropTypes.bool.isRequired,
+ handleClose: PropTypes.func.isRequired
+};
+
+const TrailerModalStyled = withStyles(styles)(TrailerModal);
+
+export default TrailerModalStyled;
diff --git a/routes/imdb.js b/routes/imdb.js
index 2089e7e..1185357 100644
--- a/routes/imdb.js
+++ b/routes/imdb.js
@@ -2,11 +2,12 @@ var express = require('express');
var router = express.Router();
var trailersExtractor = require('../utils/trailersExtractor');
+var imdbClient = require('../utils/imdbClient');
/* GET home page. */
router.get('/', function(req, res) {
- var query = req.param('query');
- var id = req.param('id');
+ var query = req.query['query'];
+ var id = req.query['id'];
if (query) {
trailersExtractor
@@ -19,7 +20,7 @@ router.get('/', function(req, res) {
return res.status(500).send(err);
});
} else if (id) {
- trailersExtractor
+ imdbClient
.get(id)
.then(data => {
res.json(data);
diff --git a/utils/trailersExtractor.js b/utils/trailersExtractor.js
index 629f49e..42bbfbf 100644
--- a/utils/trailersExtractor.js
+++ b/utils/trailersExtractor.js
@@ -3,23 +3,24 @@ const youtubeClient = require('./youtubeClient');
const searchTrailers = query =>
imdbClient.search(query).then(data => {
- var youtubeDataPromises = [];
if (data.length) {
- youtubeDataPromises = data.map(movie => youtubeClient.searchTrailer(movie.Title));
- }
- return Promise.all(youtubeDataPromises)
- .then(searchTrailerResult => ({
- trailers: searchTrailerResult,
- movies: data
- }))
- .then(data => {
- var result = [];
- data.movies.forEach((el, index) => {
- el.trailer = data.trailers[index];
- result.push(el);
+ var youtubeDataPromises = data.map(movie => youtubeClient.searchTrailer(movie.Title));
+ return Promise.all(youtubeDataPromises)
+ .then(searchTrailerResult => ({
+ trailers: searchTrailerResult,
+ movies: data
+ }))
+ .then(data => {
+ var result = [];
+ data.movies.forEach((el, index) => {
+ el.trailer = data.trailers[index];
+ result.push(el);
+ });
+ return result;
});
- return result;
- });
+ } else {
+ return [];
+ }
});
module.exports = {
diff --git a/yarn.lock b/yarn.lock
index 8651350..5f1dff9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -41,6 +41,12 @@
scroll "^2.0.3"
warning "^4.0.1"
+"@material-ui/icons@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-1.1.0.tgz#4d025df7b0ba6ace8d6710079ed76013a4d26595"
+ dependencies:
+ recompose "^0.26.0 || ^0.27.0"
+
"@types/jss@^9.5.3":
version "9.5.3"
resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.3.tgz#0c106de3fe0b324cd4173fac7dab26c12cda624e"
---
package.json | 3 +-
public/javascripts/dist/app.js | 160 +++++++++++++++++-
public/javascripts/src/Layout.jsx | 25 ++-
.../javascripts/src/components/FilmsList.jsx | 23 ++-
.../src/components/TrailerModal.jsx | 79 +++++++++
routes/imdb.js | 7 +-
utils/trailersExtractor.js | 31 ++--
yarn.lock | 6 +
8 files changed, 304 insertions(+), 30 deletions(-)
create mode 100644 public/javascripts/src/components/TrailerModal.jsx
diff --git a/package.json b/package.json
index 2883d09..b31f02d 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
},
"dependencies": {
"@material-ui/core": "1.2.3",
+ "@material-ui/icons": "^1.1.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-es2015": "^6.24.1",
@@ -26,10 +27,10 @@
"webpack": "^4.15.1"
},
"devDependencies": {
- "nodemon": "^1.17.5",
"debug": "~2.6.9",
"eslint": "^5.0.1",
"eslint-plugin-react": "^7.10.0",
+ "nodemon": "^1.17.5",
"webpack-cli": "^3.0.8"
}
}
diff --git a/public/javascripts/dist/app.js b/public/javascripts/dist/app.js
index 557727e..00fcc64 100644
--- a/public/javascripts/dist/app.js
+++ b/public/javascripts/dist/app.js
@@ -297,6 +297,102 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
/***/ }),
+/***/ "./node_modules/@material-ui/core/Button/Button.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/@material-ui/core/Button/Button.js ***!
+ \*********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/extends */ \"./node_modules/@babel/runtime/helpers/builtin/extends.js\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/defineProperty */ \"./node_modules/@babel/runtime/helpers/builtin/defineProperty.js\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/builtin/objectWithoutProperties.js\"));\n\nvar _objectSpread2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/objectSpread */ \"./node_modules/@babel/runtime/helpers/builtin/objectSpread.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _withStyles = _interopRequireDefault(__webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/styles/withStyles.js\"));\n\nvar _colorManipulator = __webpack_require__(/*! ../styles/colorManipulator */ \"./node_modules/@material-ui/core/styles/colorManipulator.js\");\n\nvar _ButtonBase = _interopRequireDefault(__webpack_require__(/*! ../ButtonBase */ \"./node_modules/@material-ui/core/ButtonBase/index.js\"));\n\nvar _helpers = __webpack_require__(/*! ../utils/helpers */ \"./node_modules/@material-ui/core/utils/helpers.js\");\n\n// @inheritedComponent ButtonBase\nvar styles = function styles(theme) {\n return {\n root: (0, _objectSpread2.default)({}, theme.typography.button, {\n lineHeight: '1.4em',\n // Improve readability for multiline button.\n boxSizing: 'border-box',\n minWidth: theme.spacing.unit * 11,\n minHeight: 36,\n padding: \"\".concat(theme.spacing.unit, \"px \").concat(theme.spacing.unit * 2, \"px\"),\n borderRadius: 4,\n color: theme.palette.text.primary,\n transition: theme.transitions.create(['background-color', 'box-shadow'], {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n textDecoration: 'none',\n backgroundColor: (0, _colorManipulator.fade)(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n },\n '&$disabled': {\n backgroundColor: 'transparent'\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n }),\n label: {\n width: '100%',\n display: 'inherit',\n alignItems: 'inherit',\n justifyContent: 'inherit'\n },\n textPrimary: {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: (0, _colorManipulator.fade)(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n textSecondary: {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: (0, _colorManipulator.fade)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n flat: {},\n flatPrimary: {},\n flatSecondary: {},\n outlined: {\n border: \"1px solid \".concat(theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)')\n },\n colorInherit: {\n color: 'inherit'\n },\n contained: {\n color: theme.palette.getContrastText(theme.palette.grey[300]),\n backgroundColor: theme.palette.grey[300],\n boxShadow: theme.shadows[2],\n '&$focusVisible': {\n boxShadow: theme.shadows[6]\n },\n '&:active': {\n boxShadow: theme.shadows[8]\n },\n '&$disabled': {\n color: theme.palette.action.disabled,\n boxShadow: theme.shadows[0],\n backgroundColor: theme.palette.action.disabledBackground\n },\n '&:hover': {\n backgroundColor: theme.palette.grey.A100,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.grey[300]\n },\n '&$disabled': {\n backgroundColor: theme.palette.action.disabledBackground\n }\n }\n },\n containedPrimary: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: theme.palette.primary.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.primary.main\n }\n }\n },\n containedSecondary: {\n color: theme.palette.secondary.contrastText,\n backgroundColor: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: theme.palette.secondary.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.secondary.main\n }\n }\n },\n raised: {},\n raisedPrimary: {},\n raisedSecondary: {},\n focusVisible: {},\n disabled: {},\n fab: {\n borderRadius: '50%',\n padding: 0,\n minWidth: 0,\n width: 56,\n fontSize: 24,\n height: 56,\n boxShadow: theme.shadows[6],\n '&:active': {\n boxShadow: theme.shadows[12]\n }\n },\n mini: {\n width: 40,\n height: 40\n },\n sizeSmall: {\n padding: \"\".concat(theme.spacing.unit - 1, \"px \").concat(theme.spacing.unit, \"px\"),\n minWidth: theme.spacing.unit * 8,\n minHeight: 32,\n fontSize: theme.typography.pxToRem(13)\n },\n sizeLarge: {\n padding: \"\".concat(theme.spacing.unit, \"px \").concat(theme.spacing.unit * 3, \"px\"),\n minWidth: theme.spacing.unit * 14,\n minHeight: 40,\n fontSize: theme.typography.pxToRem(15)\n },\n fullWidth: {\n width: '100%'\n }\n };\n};\n\nexports.styles = styles;\n\nfunction Button(props) {\n var _classNames;\n\n var children = props.children,\n classes = props.classes,\n classNameProp = props.className,\n color = props.color,\n disabled = props.disabled,\n disableFocusRipple = props.disableFocusRipple,\n fullWidth = props.fullWidth,\n focusVisibleClassName = props.focusVisibleClassName,\n mini = props.mini,\n size = props.size,\n variant = props.variant,\n other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"classes\", \"className\", \"color\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"focusVisibleClassName\", \"mini\", \"size\", \"variant\"]);\n var fab = variant === 'fab';\n var contained = variant === 'contained' || variant === 'raised';\n var text = !contained && !fab;\n var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.contained, contained || fab), (0, _defineProperty2.default)(_classNames, classes.fab, fab), (0, _defineProperty2.default)(_classNames, classes.mini, fab && mini), (0, _defineProperty2.default)(_classNames, classes.colorInherit, color === 'inherit'), (0, _defineProperty2.default)(_classNames, classes.textPrimary, text && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.textSecondary, text && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.flat, text), (0, _defineProperty2.default)(_classNames, classes.flatPrimary, text && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.flatSecondary, text && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.containedPrimary, !text && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.containedSecondary, !text && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.raised, contained || fab), (0, _defineProperty2.default)(_classNames, classes.raisedPrimary, (contained || fab) && color === 'primary'), (0, _defineProperty2.default)(_classNames, classes.raisedSecondary, (contained || fab) && color === 'secondary'), (0, _defineProperty2.default)(_classNames, classes.text, variant === 'text'), (0, _defineProperty2.default)(_classNames, classes.outlined, variant === 'outlined'), (0, _defineProperty2.default)(_classNames, classes[\"size\".concat((0, _helpers.capitalize)(size))], size !== 'medium'), (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.fullWidth, fullWidth), _classNames), classNameProp);\n return _react.default.createElement(_ButtonBase.default, (0, _extends2.default)({\n className: className,\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n focusVisibleClassName: (0, _classnames.default)(classes.focusVisible, focusVisibleClassName)\n }, other), _react.default.createElement(\"span\", {\n className: classes.label\n }, children));\n}\n\nButton.propTypes = true ? {\n /**\n * The content of the button.\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css-api) below for more details.\n */\n classes: _propTypes.default.object.isRequired,\n\n /**\n * @ignore\n */\n className: _propTypes.default.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: _propTypes.default.oneOf(['default', 'inherit', 'primary', 'secondary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n */\n component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n /**\n * If `true`, the button will be disabled.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n * `disableRipple` must also be true.\n */\n disableFocusRipple: _propTypes.default.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: _propTypes.default.bool,\n\n /**\n * @ignore\n */\n focusVisibleClassName: _propTypes.default.string,\n\n /**\n * If `true`, the button will take up the full width of its container.\n */\n fullWidth: _propTypes.default.bool,\n\n /**\n * The URL to link to when the button is clicked.\n * If defined, an `a` element will be used as the root node.\n */\n href: _propTypes.default.string,\n\n /**\n * If `true`, and `variant` is `'fab'`, will use mini floating action button styling.\n */\n mini: _propTypes.default.bool,\n\n /**\n * The size of the button.\n * `small` is equivalent to the dense button styling.\n */\n size: _propTypes.default.oneOf(['small', 'medium', 'large']),\n\n /**\n * @ignore\n */\n type: _propTypes.default.string,\n\n /**\n * The type of button.\n */\n variant: _propTypes.default.oneOf(['text', 'flat', 'outlined', 'contained', 'raised', 'fab'])\n} : undefined;\nButton.defaultProps = {\n color: 'default',\n component: 'button',\n disabled: false,\n disableFocusRipple: false,\n fullWidth: false,\n mini: false,\n size: 'medium',\n type: 'button',\n variant: 'text'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n name: 'MuiButton'\n})(Button);\n\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uL0J1dHRvbi5qcz80ZDk5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxZQUFZO0FBQ1osbUJBQW1CO0FBQ25CLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxjQUFjO0FBQ2QscUJBQXFCO0FBQ3JCLHVCQUF1QjtBQUN2QixvQkFBb0I7QUFDcEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEVBQTBFO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwtdWkvY29yZS9CdXR0b24vQnV0dG9uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBleHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcblxudmFyIF9leHRlbmRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9leHRlbmRzXCIpKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiKSk7XG5cbnZhciBfb2JqZWN0U3ByZWFkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9vYmplY3RTcHJlYWRcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF93aXRoU3R5bGVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vc3R5bGVzL3dpdGhTdHlsZXNcIikpO1xuXG52YXIgX2NvbG9yTWFuaXB1bGF0b3IgPSByZXF1aXJlKFwiLi4vc3R5bGVzL2NvbG9yTWFuaXB1bGF0b3JcIik7XG5cbnZhciBfQnV0dG9uQmFzZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL0J1dHRvbkJhc2VcIikpO1xuXG52YXIgX2hlbHBlcnMgPSByZXF1aXJlKFwiLi4vdXRpbHMvaGVscGVyc1wiKTtcblxuLy8gQGluaGVyaXRlZENvbXBvbmVudCBCdXR0b25CYXNlXG52YXIgc3R5bGVzID0gZnVuY3Rpb24gc3R5bGVzKHRoZW1lKSB7XG4gIHJldHVybiB7XG4gICAgcm9vdDogKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHt9LCB0aGVtZS50eXBvZ3JhcGh5LmJ1dHRvbiwge1xuICAgICAgbGluZUhlaWdodDogJzEuNGVtJyxcbiAgICAgIC8vIEltcHJvdmUgcmVhZGFiaWxpdHkgZm9yIG11bHRpbGluZSBidXR0b24uXG4gICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAgIG1pbldpZHRoOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiAxMSxcbiAgICAgIG1pbkhlaWdodDogMzYsXG4gICAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdCh0aGVtZS5zcGFjaW5nLnVuaXQsIFwicHggXCIpLmNvbmNhdCh0aGVtZS5zcGFjaW5nLnVuaXQgKiAyLCBcInB4XCIpLFxuICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5LFxuICAgICAgdHJhbnNpdGlvbjogdGhlbWUudHJhbnNpdGlvbnMuY3JlYXRlKFsnYmFja2dyb3VuZC1jb2xvcicsICdib3gtc2hhZG93J10sIHtcbiAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnNob3J0XG4gICAgICB9KSxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICB0ZXh0RGVjb3JhdGlvbjogJ25vbmUnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICgwLCBfY29sb3JNYW5pcHVsYXRvci5mYWRlKSh0aGVtZS5wYWxldHRlLnRleHQucHJpbWFyeSwgdGhlbWUucGFsZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5KSxcbiAgICAgICAgLy8gUmVzZXQgb24gdG91Y2ggZGV2aWNlcywgaXQgZG9lc24ndCBhZGQgc3BlY2lmaWNpdHlcbiAgICAgICAgJ0BtZWRpYSAoaG92ZXI6IG5vbmUpJzoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50J1xuICAgICAgICB9LFxuICAgICAgICAnJiRkaXNhYmxlZCc6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICcmJGRpc2FibGVkJzoge1xuICAgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5hY3Rpb24uZGlzYWJsZWRcbiAgICAgIH1cbiAgICB9KSxcbiAgICBsYWJlbDoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGRpc3BsYXk6ICdpbmhlcml0JyxcbiAgICAgIGFsaWduSXRlbXM6ICdpbmhlcml0JyxcbiAgICAgIGp1c3RpZnlDb250ZW50OiAnaW5oZXJpdCdcbiAgICB9LFxuICAgIHRleHRQcmltYXJ5OiB7XG4gICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAoMCwgX2NvbG9yTWFuaXB1bGF0b3IuZmFkZSkodGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sIHRoZW1lLnBhbGV0dGUuYWN0aW9uLmhvdmVyT3BhY2l0eSksXG4gICAgICAgIC8vIFJlc2V0IG9uIHRvdWNoIGRldmljZXMsIGl0IGRvZXNuJ3QgYWRkIHNwZWNpZmljaXR5XG4gICAgICAgICdAbWVkaWEgKGhvdmVyOiBub25lKSc6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgdGV4dFNlY29uZGFyeToge1xuICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW4sXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAoMCwgX2NvbG9yTWFuaXB1bGF0b3IuZmFkZSkodGhlbWUucGFsZXR0ZS5zZWNvbmRhcnkubWFpbiwgdGhlbWUucGFsZXR0ZS5hY3Rpb24uaG92ZXJPcGFjaXR5KSxcbiAgICAgICAgLy8gUmVzZXQgb24gdG91Y2ggZGV2aWNlcywgaXQgZG9lc24ndCBhZGQgc3BlY2lmaWNpdHlcbiAgICAgICAgJ0BtZWRpYSAoaG92ZXI6IG5vbmUpJzoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBmbGF0OiB7fSxcbiAgICBmbGF0UHJpbWFyeToge30sXG4gICAgZmxhdFNlY29uZGFyeToge30sXG4gICAgb3V0bGluZWQ6IHtcbiAgICAgIGJvcmRlcjogXCIxcHggc29saWQgXCIuY29uY2F0KHRoZW1lLnBhbGV0dGUudHlwZSA9PT0gJ2xpZ2h0JyA/ICdyZ2JhKDAsIDAsIDAsIDAuMjMpJyA6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjMpJylcbiAgICB9LFxuICAgIGNvbG9ySW5oZXJpdDoge1xuICAgICAgY29sb3I6ICdpbmhlcml0J1xuICAgIH0sXG4gICAgY29udGFpbmVkOiB7XG4gICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5nZXRDb250cmFzdFRleHQodGhlbWUucGFsZXR0ZS5ncmV5WzMwMF0pLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmdyZXlbMzAwXSxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93c1syXSxcbiAgICAgICcmJGZvY3VzVmlzaWJsZSc6IHtcbiAgICAgICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzWzZdXG4gICAgICB9LFxuICAgICAgJyY6YWN0aXZlJzoge1xuICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnNoYWRvd3NbOF1cbiAgICAgIH0sXG4gICAgICAnJiRkaXNhYmxlZCc6IHtcbiAgICAgICAgY29sb3I6IHRoZW1lLnBhbGV0dGUuYWN0aW9uLmRpc2FibGVkLFxuICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnNoYWRvd3NbMF0sXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5hY3Rpb24uZGlzYWJsZWRCYWNrZ3JvdW5kXG4gICAgICB9LFxuICAgICAgJyY6aG92ZXInOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5ncmV5LkExMDAsXG4gICAgICAgIC8vIFJlc2V0IG9uIHRvdWNoIGRldmljZXMsIGl0IGRvZXNuJ3QgYWRkIHNwZWNpZmljaXR5XG4gICAgICAgICdAbWVkaWEgKGhvdmVyOiBub25lKSc6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuZ3JleVszMDBdXG4gICAgICAgIH0sXG4gICAgICAgICcmJGRpc2FibGVkJzoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5hY3Rpb24uZGlzYWJsZWRCYWNrZ3JvdW5kXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGNvbnRhaW5lZFByaW1hcnk6IHtcbiAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkuY29udHJhc3RUZXh0LFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbixcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUucHJpbWFyeS5kYXJrLFxuICAgICAgICAvLyBSZXNldCBvbiB0b3VjaCBkZXZpY2VzLCBpdCBkb2Vzbid0IGFkZCBzcGVjaWZpY2l0eVxuICAgICAgICAnQG1lZGlhIChob3Zlcjogbm9uZSknOiB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBjb250YWluZWRTZWNvbmRhcnk6IHtcbiAgICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLnNlY29uZGFyeS5jb250cmFzdFRleHQsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW4sXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnNlY29uZGFyeS5kYXJrLFxuICAgICAgICAvLyBSZXNldCBvbiB0b3VjaCBkZXZpY2VzLCBpdCBkb2Vzbid0IGFkZCBzcGVjaWZpY2l0eVxuICAgICAgICAnQG1lZGlhIChob3Zlcjogbm9uZSknOiB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnNlY29uZGFyeS5tYWluXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHJhaXNlZDoge30sXG4gICAgcmFpc2VkUHJpbWFyeToge30sXG4gICAgcmFpc2VkU2Vjb25kYXJ5OiB7fSxcbiAgICBmb2N1c1Zpc2libGU6IHt9LFxuICAgIGRpc2FibGVkOiB7fSxcbiAgICBmYWI6IHtcbiAgICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgICBwYWRkaW5nOiAwLFxuICAgICAgbWluV2lkdGg6IDAsXG4gICAgICB3aWR0aDogNTYsXG4gICAgICBmb250U2l6ZTogMjQsXG4gICAgICBoZWlnaHQ6IDU2LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS5zaGFkb3dzWzZdLFxuICAgICAgJyY6YWN0aXZlJzoge1xuICAgICAgICBib3hTaGFkb3c6IHRoZW1lLnNoYWRvd3NbMTJdXG4gICAgICB9XG4gICAgfSxcbiAgICBtaW5pOiB7XG4gICAgICB3aWR0aDogNDAsXG4gICAgICBoZWlnaHQ6IDQwXG4gICAgfSxcbiAgICBzaXplU21hbGw6IHtcbiAgICAgIHBhZGRpbmc6IFwiXCIuY29uY2F0KHRoZW1lLnNwYWNpbmcudW5pdCAtIDEsIFwicHggXCIpLmNvbmNhdCh0aGVtZS5zcGFjaW5nLnVuaXQsIFwicHhcIiksXG4gICAgICBtaW5XaWR0aDogdGhlbWUuc3BhY2luZy51bml0ICogOCxcbiAgICAgIG1pbkhlaWdodDogMzIsXG4gICAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5weFRvUmVtKDEzKVxuICAgIH0sXG4gICAgc2l6ZUxhcmdlOiB7XG4gICAgICBwYWRkaW5nOiBcIlwiLmNvbmNhdCh0aGVtZS5zcGFjaW5nLnVuaXQsIFwicHggXCIpLmNvbmNhdCh0aGVtZS5zcGFjaW5nLnVuaXQgKiAzLCBcInB4XCIpLFxuICAgICAgbWluV2lkdGg6IHRoZW1lLnNwYWNpbmcudW5pdCAqIDE0LFxuICAgICAgbWluSGVpZ2h0OiA0MCxcbiAgICAgIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LnB4VG9SZW0oMTUpXG4gICAgfSxcbiAgICBmdWxsV2lkdGg6IHtcbiAgICAgIHdpZHRoOiAnMTAwJSdcbiAgICB9XG4gIH07XG59O1xuXG5leHBvcnRzLnN0eWxlcyA9IHN0eWxlcztcblxuZnVuY3Rpb24gQnV0dG9uKHByb3BzKSB7XG4gIHZhciBfY2xhc3NOYW1lcztcblxuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICAgIGNsYXNzZXMgPSBwcm9wcy5jbGFzc2VzLFxuICAgICAgY2xhc3NOYW1lUHJvcCA9IHByb3BzLmNsYXNzTmFtZSxcbiAgICAgIGNvbG9yID0gcHJvcHMuY29sb3IsXG4gICAgICBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkLFxuICAgICAgZGlzYWJsZUZvY3VzUmlwcGxlID0gcHJvcHMuZGlzYWJsZUZvY3VzUmlwcGxlLFxuICAgICAgZnVsbFdpZHRoID0gcHJvcHMuZnVsbFdpZHRoLFxuICAgICAgZm9jdXNWaXNpYmxlQ2xhc3NOYW1lID0gcHJvcHMuZm9jdXNWaXNpYmxlQ2xhc3NOYW1lLFxuICAgICAgbWluaSA9IHByb3BzLm1pbmksXG4gICAgICBzaXplID0gcHJvcHMuc2l6ZSxcbiAgICAgIHZhcmlhbnQgPSBwcm9wcy52YXJpYW50LFxuICAgICAgb3RoZXIgPSAoMCwgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMi5kZWZhdWx0KShwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJjbGFzc2VzXCIsIFwiY2xhc3NOYW1lXCIsIFwiY29sb3JcIiwgXCJkaXNhYmxlZFwiLCBcImRpc2FibGVGb2N1c1JpcHBsZVwiLCBcImZ1bGxXaWR0aFwiLCBcImZvY3VzVmlzaWJsZUNsYXNzTmFtZVwiLCBcIm1pbmlcIiwgXCJzaXplXCIsIFwidmFyaWFudFwiXSk7XG4gIHZhciBmYWIgPSB2YXJpYW50ID09PSAnZmFiJztcbiAgdmFyIGNvbnRhaW5lZCA9IHZhcmlhbnQgPT09ICdjb250YWluZWQnIHx8IHZhcmlhbnQgPT09ICdyYWlzZWQnO1xuICB2YXIgdGV4dCA9ICFjb250YWluZWQgJiYgIWZhYjtcbiAgdmFyIGNsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lcy5kZWZhdWx0KShjbGFzc2VzLnJvb3QsIChfY2xhc3NOYW1lcyA9IHt9LCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgY2xhc3Nlcy5jb250YWluZWQsIGNvbnRhaW5lZCB8fCBmYWIpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgY2xhc3Nlcy5mYWIsIGZhYiksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLm1pbmksIGZhYiAmJiBtaW5pKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMuY29sb3JJbmhlcml0LCBjb2xvciA9PT0gJ2luaGVyaXQnKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMudGV4dFByaW1hcnksIHRleHQgJiYgY29sb3IgPT09ICdwcmltYXJ5JyksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLnRleHRTZWNvbmRhcnksIHRleHQgJiYgY29sb3IgPT09ICdzZWNvbmRhcnknKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMuZmxhdCwgdGV4dCksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLmZsYXRQcmltYXJ5LCB0ZXh0ICYmIGNvbG9yID09PSAncHJpbWFyeScpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgY2xhc3Nlcy5mbGF0U2Vjb25kYXJ5LCB0ZXh0ICYmIGNvbG9yID09PSAnc2Vjb25kYXJ5JyksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLmNvbnRhaW5lZFByaW1hcnksICF0ZXh0ICYmIGNvbG9yID09PSAncHJpbWFyeScpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgY2xhc3Nlcy5jb250YWluZWRTZWNvbmRhcnksICF0ZXh0ICYmIGNvbG9yID09PSAnc2Vjb25kYXJ5JyksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLnJhaXNlZCwgY29udGFpbmVkIHx8IGZhYiksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLnJhaXNlZFByaW1hcnksIChjb250YWluZWQgfHwgZmFiKSAmJiBjb2xvciA9PT0gJ3ByaW1hcnknKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMucmFpc2VkU2Vjb25kYXJ5LCAoY29udGFpbmVkIHx8IGZhYikgJiYgY29sb3IgPT09ICdzZWNvbmRhcnknKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMudGV4dCwgdmFyaWFudCA9PT0gJ3RleHQnKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMub3V0bGluZWQsIHZhcmlhbnQgPT09ICdvdXRsaW5lZCcpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgY2xhc3Nlc1tcInNpemVcIi5jb25jYXQoKDAsIF9oZWxwZXJzLmNhcGl0YWxpemUpKHNpemUpKV0sIHNpemUgIT09ICdtZWRpdW0nKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMuZGlzYWJsZWQsIGRpc2FibGVkKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMuZnVsbFdpZHRoLCBmdWxsV2lkdGgpLCBfY2xhc3NOYW1lcyksIGNsYXNzTmFtZVByb3ApO1xuICByZXR1cm4gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfQnV0dG9uQmFzZS5kZWZhdWx0LCAoMCwgX2V4dGVuZHMyLmRlZmF1bHQpKHtcbiAgICBjbGFzc05hbWU6IGNsYXNzTmFtZSxcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgZm9jdXNSaXBwbGU6ICFkaXNhYmxlRm9jdXNSaXBwbGUsXG4gICAgZm9jdXNWaXNpYmxlQ2xhc3NOYW1lOiAoMCwgX2NsYXNzbmFtZXMuZGVmYXVsdCkoY2xhc3Nlcy5mb2N1c1Zpc2libGUsIGZvY3VzVmlzaWJsZUNsYXNzTmFtZSlcbiAgfSwgb3RoZXIpLCBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgY2xhc3NOYW1lOiBjbGFzc2VzLmxhYmVsXG4gIH0sIGNoaWxkcmVuKSk7XG59XG5cbkJ1dHRvbi5wcm9wVHlwZXMgPSBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIgPyB7XG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgYnV0dG9uLlxuICAgKi9cbiAgY2hpbGRyZW46IF9wcm9wVHlwZXMuZGVmYXVsdC5ub2RlLmlzUmVxdWlyZWQsXG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIG9yIGV4dGVuZCB0aGUgc3R5bGVzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICogU2VlIFtDU1MgQVBJXSgjY3NzLWFwaSkgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy5cbiAgICovXG4gIGNsYXNzZXM6IF9wcm9wVHlwZXMuZGVmYXVsdC5vYmplY3QuaXNSZXF1aXJlZCxcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY2xhc3NOYW1lOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgY29sb3Igb2YgdGhlIGNvbXBvbmVudC4gSXQgc3VwcG9ydHMgdGhvc2UgdGhlbWUgY29sb3JzIHRoYXQgbWFrZSBzZW5zZSBmb3IgdGhpcyBjb21wb25lbnQuXG4gICAqL1xuICBjb2xvcjogX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mKFsnZGVmYXVsdCcsICdpbmhlcml0JywgJ3ByaW1hcnknLCAnc2Vjb25kYXJ5J10pLFxuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHVzZWQgZm9yIHRoZSByb290IG5vZGUuXG4gICAqIEVpdGhlciBhIHN0cmluZyB0byB1c2UgYSBET00gZWxlbWVudCBvciBhIGNvbXBvbmVudC5cbiAgICovXG4gIGNvbXBvbmVudDogX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mVHlwZShbX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZywgX3Byb3BUeXBlcy5kZWZhdWx0LmZ1bmMsIF9wcm9wVHlwZXMuZGVmYXVsdC5vYmplY3RdKSxcblxuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgYnV0dG9uIHdpbGwgYmUgZGlzYWJsZWQuXG4gICAqL1xuICBkaXNhYmxlZDogX3Byb3BUeXBlcy5kZWZhdWx0LmJvb2wsXG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlICBrZXlib2FyZCBmb2N1cyByaXBwbGUgd2lsbCBiZSBkaXNhYmxlZC5cbiAgICogYGRpc2FibGVSaXBwbGVgIG11c3QgYWxzbyBiZSB0cnVlLlxuICAgKi9cbiAgZGlzYWJsZUZvY3VzUmlwcGxlOiBfcHJvcFR5cGVzLmRlZmF1bHQuYm9vbCxcblxuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgcmlwcGxlIGVmZmVjdCB3aWxsIGJlIGRpc2FibGVkLlxuICAgKi9cbiAgZGlzYWJsZVJpcHBsZTogX3Byb3BUeXBlcy5kZWZhdWx0LmJvb2wsXG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGZvY3VzVmlzaWJsZUNsYXNzTmFtZTogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcblxuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgYnV0dG9uIHdpbGwgdGFrZSB1cCB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLlxuICAgKi9cbiAgZnVsbFdpZHRoOiBfcHJvcFR5cGVzLmRlZmF1bHQuYm9vbCxcblxuICAvKipcbiAgICogVGhlIFVSTCB0byBsaW5rIHRvIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBJZiBkZWZpbmVkLCBhbiBgYWAgZWxlbWVudCB3aWxsIGJlIHVzZWQgYXMgdGhlIHJvb3Qgbm9kZS5cbiAgICovXG4gIGhyZWY6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgYW5kIGB2YXJpYW50YCBpcyBgJ2ZhYidgLCB3aWxsIHVzZSBtaW5pIGZsb2F0aW5nIGFjdGlvbiBidXR0b24gc3R5bGluZy5cbiAgICovXG4gIG1pbmk6IF9wcm9wVHlwZXMuZGVmYXVsdC5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgYnV0dG9uLlxuICAgKiBgc21hbGxgIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGRlbnNlIGJ1dHRvbiBzdHlsaW5nLlxuICAgKi9cbiAgc2l6ZTogX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mKFsnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ10pLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICB0eXBlOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBidXR0b24uXG4gICAqL1xuICB2YXJpYW50OiBfcHJvcFR5cGVzLmRlZmF1bHQub25lT2YoWyd0ZXh0JywgJ2ZsYXQnLCAnb3V0bGluZWQnLCAnY29udGFpbmVkJywgJ3JhaXNlZCcsICdmYWInXSlcbn0gOiB7fTtcbkJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGNvbG9yOiAnZGVmYXVsdCcsXG4gIGNvbXBvbmVudDogJ2J1dHRvbicsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgZGlzYWJsZUZvY3VzUmlwcGxlOiBmYWxzZSxcbiAgZnVsbFdpZHRoOiBmYWxzZSxcbiAgbWluaTogZmFsc2UsXG4gIHNpemU6ICdtZWRpdW0nLFxuICB0eXBlOiAnYnV0dG9uJyxcbiAgdmFyaWFudDogJ3RleHQnXG59O1xuXG52YXIgX2RlZmF1bHQgPSAoMCwgX3dpdGhTdHlsZXMuZGVmYXVsdCkoc3R5bGVzLCB7XG4gIG5hbWU6ICdNdWlCdXR0b24nXG59KShCdXR0b24pO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/Button/Button.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/Button/index.js":
+/*!********************************************************!*\
+ !*** ./node_modules/@material-ui/core/Button/index.js ***!
+ \********************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _Button.default;\n }\n});\n\nvar _Button = _interopRequireDefault(__webpack_require__(/*! ./Button */ \"./node_modules/@material-ui/core/Button/Button.js\"));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uL2luZGV4LmpzP2Q0ZTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwtdWkvY29yZS9CdXR0b24vaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gX0J1dHRvbi5kZWZhdWx0O1xuICB9XG59KTtcblxudmFyIF9CdXR0b24gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL0J1dHRvblwiKSk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/Button/index.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/ButtonBase/ButtonBase.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@material-ui/core/ButtonBase/ButtonBase.js ***!
+ \*****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/extends */ \"./node_modules/@babel/runtime/helpers/builtin/extends.js\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/defineProperty */ \"./node_modules/@babel/runtime/helpers/builtin/defineProperty.js\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/builtin/objectWithoutProperties.js\"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/classCallCheck */ \"./node_modules/@babel/runtime/helpers/builtin/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/createClass */ \"./node_modules/@babel/runtime/helpers/builtin/createClass.js\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/builtin/possibleConstructorReturn.js\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/inherits */ \"./node_modules/@babel/runtime/helpers/builtin/inherits.js\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/builtin/assertThisInitialized.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _keycode = _interopRequireDefault(__webpack_require__(/*! keycode */ \"./node_modules/keycode/index.js\"));\n\nvar _ownerWindow = _interopRequireDefault(__webpack_require__(/*! ../utils/ownerWindow */ \"./node_modules/@material-ui/core/utils/ownerWindow.js\"));\n\nvar _withStyles = _interopRequireDefault(__webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/styles/withStyles.js\"));\n\nvar _focusVisible = __webpack_require__(/*! ./focusVisible */ \"./node_modules/@material-ui/core/ButtonBase/focusVisible.js\");\n\nvar _TouchRipple = _interopRequireDefault(__webpack_require__(/*! ./TouchRipple */ \"./node_modules/@material-ui/core/ButtonBase/TouchRipple.js\"));\n\nvar _createRippleHandler = _interopRequireDefault(__webpack_require__(/*! ./createRippleHandler */ \"./node_modules/@material-ui/core/ButtonBase/createRippleHandler.js\"));\n\nvar styles = {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n // Remove grey highlight\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 'none',\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native
element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n }\n },\n disabled: {},\n focusVisible: {}\n};\n/* istanbul ignore if */\n\nexports.styles = styles;\n\nif (\"development\" !== 'production' && !_react.default.createContext) {\n throw new Error('Material-UI: react@16.3.0 or greater is required.');\n}\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\n\nvar ButtonBase =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(ButtonBase, _React$Component);\n\n function ButtonBase() {\n var _ref;\n\n var _temp, _this;\n\n (0, _classCallCheck2.default)(this, ButtonBase);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (0, _possibleConstructorReturn2.default)(_this, (_temp = _this = (0, _possibleConstructorReturn2.default)(this, (_ref = ButtonBase.__proto__ || Object.getPrototypeOf(ButtonBase)).call.apply(_ref, [this].concat(args))), _this.state = {}, _this.onFocusVisibleHandler = function (event) {\n _this.keyDown = false;\n\n _this.setState({\n focusVisible: true\n });\n\n if (_this.props.onFocusVisible) {\n _this.props.onFocusVisible(event);\n }\n }, _this.onRippleRef = function (node) {\n _this.ripple = node;\n }, _this.ripple = null, _this.keyDown = false, _this.button = null, _this.focusVisibleTimeout = null, _this.focusVisibleCheckTime = 50, _this.focusVisibleMaxCheckTimes = 5, _this.handleKeyDown = function (event) {\n var _this$props = _this.props,\n component = _this$props.component,\n focusRipple = _this$props.focusRipple,\n onKeyDown = _this$props.onKeyDown,\n onClick = _this$props.onClick;\n var key = (0, _keycode.default)(event); // Check if key is already down to avoid repeats being counted as multiple activations\n\n if (focusRipple && !_this.keyDown && _this.state.focusVisible && _this.ripple && key === 'space') {\n _this.keyDown = true;\n event.persist();\n\n _this.ripple.stop(event, function () {\n _this.ripple.start(event);\n });\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && component && component !== 'button' && (key === 'space' || key === 'enter') && !(_this.button.tagName === 'A' && _this.button.href)) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n }, _this.handleKeyUp = function (event) {\n if (_this.props.focusRipple && (0, _keycode.default)(event) === 'space' && _this.ripple && _this.state.focusVisible) {\n _this.keyDown = false;\n event.persist();\n\n _this.ripple.stop(event, function () {\n _this.ripple.pulsate(event);\n });\n }\n\n if (_this.props.onKeyUp) {\n _this.props.onKeyUp(event);\n }\n }, _this.handleMouseDown = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'MouseDown', 'start', function () {\n clearTimeout(_this.focusVisibleTimeout);\n\n if (_this.state.focusVisible) {\n _this.setState({\n focusVisible: false\n });\n }\n }), _this.handleMouseUp = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'MouseUp', 'stop'), _this.handleMouseLeave = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'MouseLeave', 'stop', function (event) {\n if (_this.state.focusVisible) {\n event.preventDefault();\n }\n }), _this.handleTouchStart = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'TouchStart', 'start'), _this.handleTouchEnd = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'TouchEnd', 'stop'), _this.handleTouchMove = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'TouchMove', 'stop'), _this.handleBlur = (0, _createRippleHandler.default)((0, _assertThisInitialized2.default)(_this), 'Blur', 'stop', function () {\n clearTimeout(_this.focusVisibleTimeout);\n\n if (_this.state.focusVisible) {\n _this.setState({\n focusVisible: false\n });\n }\n }), _this.handleFocus = function (event) {\n if (_this.props.disabled) {\n return;\n } // Fix for https://github.com/facebook/react/issues/7769\n\n\n if (!_this.button) {\n _this.button = event.currentTarget;\n }\n\n event.persist();\n (0, _focusVisible.detectFocusVisible)((0, _assertThisInitialized2.default)(_this), _this.button, function () {\n _this.onFocusVisibleHandler(event);\n });\n\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n }, _temp));\n }\n\n (0, _createClass2.default)(ButtonBase, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.button = _reactDom.default.findDOMNode(this);\n (0, _focusVisible.listenForFocusKeys)((0, _ownerWindow.default)(this.button));\n\n if (this.props.action) {\n this.props.action({\n focusVisible: function focusVisible() {\n _this2.setState({\n focusVisible: true\n });\n\n _this2.button.focus();\n }\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.focusRipple && !this.props.disableRipple && !prevState.focusVisible && this.state.focusVisible) {\n this.ripple.pulsate();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.button = null;\n clearTimeout(this.focusVisibleTimeout);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames;\n\n var _props = this.props,\n action = _props.action,\n buttonRef = _props.buttonRef,\n centerRipple = _props.centerRipple,\n children = _props.children,\n classes = _props.classes,\n classNameProp = _props.className,\n component = _props.component,\n disabled = _props.disabled,\n disableRipple = _props.disableRipple,\n disableTouchRipple = _props.disableTouchRipple,\n focusRipple = _props.focusRipple,\n focusVisibleClassName = _props.focusVisibleClassName,\n onBlur = _props.onBlur,\n onFocus = _props.onFocus,\n onFocusVisible = _props.onFocusVisible,\n onKeyDown = _props.onKeyDown,\n onKeyUp = _props.onKeyUp,\n onMouseDown = _props.onMouseDown,\n onMouseLeave = _props.onMouseLeave,\n onMouseUp = _props.onMouseUp,\n onTouchEnd = _props.onTouchEnd,\n onTouchMove = _props.onTouchMove,\n onTouchStart = _props.onTouchStart,\n tabIndex = _props.tabIndex,\n TouchRippleProps = _props.TouchRippleProps,\n type = _props.type,\n other = (0, _objectWithoutProperties2.default)(_props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n var className = (0, _classnames.default)(classes.root, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.disabled, disabled), (0, _defineProperty2.default)(_classNames, classes.focusVisible, this.state.focusVisible), (0, _defineProperty2.default)(_classNames, focusVisibleClassName, this.state.focusVisible), _classNames), classNameProp);\n var buttonProps = {};\n var ComponentProp = component;\n\n if (ComponentProp === 'button' && other.href) {\n ComponentProp = 'a';\n }\n\n if (ComponentProp === 'button') {\n buttonProps.type = type || 'button';\n buttonProps.disabled = disabled;\n } else {\n buttonProps.role = 'button';\n }\n\n return _react.default.createElement(ComponentProp, (0, _extends2.default)({\n onBlur: this.handleBlur,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyUp: this.handleKeyUp,\n onMouseDown: this.handleMouseDown,\n onMouseLeave: this.handleMouseLeave,\n onMouseUp: this.handleMouseUp,\n onTouchEnd: this.handleTouchEnd,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n tabIndex: disabled ? '-1' : tabIndex,\n className: className,\n ref: buttonRef\n }, buttonProps, other), children, !disableRipple && !disabled ? _react.default.createElement(_TouchRipple.default, (0, _extends2.default)({\n innerRef: this.onRippleRef,\n center: centerRipple\n }, TouchRippleProps)) : null);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (typeof prevState.focusVisible === 'undefined') {\n return {\n focusVisible: false,\n lastDisabled: nextProps.disabled\n };\n } // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n\n\n if (!prevState.prevState && nextProps.disabled && prevState.focusVisible) {\n return {\n focusVisible: false,\n lastDisabled: nextProps.disabled\n };\n }\n\n return {\n lastDisabled: nextProps.disabled\n };\n }\n }]);\n return ButtonBase;\n}(_react.default.Component);\n\nButtonBase.propTypes = true ? {\n /**\n * Callback fired when the component mounts.\n * This is useful when you want to trigger an action programmatically.\n * It currently only supports `focusVisible()` action.\n *\n * @param {object} actions This object contains all possible actions\n * that can be triggered programmatically.\n */\n action: _propTypes.default.func,\n\n /**\n * Use that property to pass a ref callback to the native button component.\n */\n buttonRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),\n\n /**\n * If `true`, the ripples will be centered.\n * They won't start at the cursor interaction position.\n */\n centerRipple: _propTypes.default.bool,\n\n /**\n * The content of the component.\n */\n children: _propTypes.default.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css-api) below for more details.\n */\n classes: _propTypes.default.object.isRequired,\n\n /**\n * @ignore\n */\n className: _propTypes.default.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n */\n component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func, _propTypes.default.object]),\n\n /**\n * If `true`, the base button will be disabled.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: _propTypes.default.bool,\n\n /**\n * If `true`, the touch ripple effect will be disabled.\n */\n disableTouchRipple: _propTypes.default.bool,\n\n /**\n * If `true`, the base button will have a keyboard focus ripple.\n * `disableRipple` must also be `false`.\n */\n focusRipple: _propTypes.default.bool,\n\n /**\n * This property can help a person know which element has the keyboard focus.\n * The class name will be applied when the element gain the focus throught a keyboard interaction.\n * It's a polyfill for the [CSS :focus-visible feature](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).\n * The rational for using this feature [is explain here](https://github.com/WICG/focus-visible/blob/master/explainer.md).\n */\n focusVisibleClassName: _propTypes.default.string,\n\n /**\n * @ignore\n */\n onBlur: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onClick: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onFocus: _propTypes.default.func,\n\n /**\n * Callback fired when the component is focused with a keyboard.\n * We trigger a `onFocus` callback too.\n */\n onFocusVisible: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onKeyDown: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onKeyUp: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseLeave: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onMouseUp: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTouchEnd: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTouchMove: _propTypes.default.func,\n\n /**\n * @ignore\n */\n onTouchStart: _propTypes.default.func,\n\n /**\n * @ignore\n */\n role: _propTypes.default.string,\n\n /**\n * @ignore\n */\n tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n\n /**\n * Properties applied to the `TouchRipple` element.\n */\n TouchRippleProps: _propTypes.default.object,\n\n /**\n * Used to control the button's purpose.\n * This property passes the value to the `type` attribute of the native button component.\n * Valid property values include `button`, `submit`, and `reset`.\n */\n type: _propTypes.default.string\n} : undefined;\nButtonBase.defaultProps = {\n centerRipple: false,\n component: 'button',\n disableRipple: false,\n disableTouchRipple: false,\n focusRipple: false,\n tabIndex: '0',\n type: 'button'\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n name: 'MuiButtonBase'\n})(ButtonBase);\n\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9CdXR0b25CYXNlLmpzPzAzODYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7QUFDRDs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsY0FBYztBQUNkO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBLHVFQUF1RSxhQUFhO0FBQ3BGO0FBQ0E7O0FBRUEsc1BBQXNQO0FBQ3RQOztBQUVBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDOztBQUU3QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0EsT0FBTzs7O0FBR1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLE9BQU87OztBQUdQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOztBQUViO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RUFBOEU7QUFDOUU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsT0FBTztBQUNwQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9CdXR0b25CYXNlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBleHBvcnRzLnN0eWxlcyA9IHZvaWQgMDtcblxudmFyIF9leHRlbmRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9leHRlbmRzXCIpKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vZGVmaW5lUHJvcGVydHlcIikpO1xuXG52YXIgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiKSk7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2NsYXNzQ2FsbENoZWNrXCIpKTtcblxudmFyIF9jcmVhdGVDbGFzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vY3JlYXRlQ2xhc3NcIikpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm5cIikpO1xuXG52YXIgX2luaGVyaXRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9pbmhlcml0c1wiKSk7XG5cbnZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9jbGFzc25hbWVzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiY2xhc3NuYW1lc1wiKSk7XG5cbnZhciBfa2V5Y29kZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImtleWNvZGVcIikpO1xuXG52YXIgX293bmVyV2luZG93ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vdXRpbHMvb3duZXJXaW5kb3dcIikpO1xuXG52YXIgX3dpdGhTdHlsZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zdHlsZXMvd2l0aFN0eWxlc1wiKSk7XG5cbnZhciBfZm9jdXNWaXNpYmxlID0gcmVxdWlyZShcIi4vZm9jdXNWaXNpYmxlXCIpO1xuXG52YXIgX1RvdWNoUmlwcGxlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9Ub3VjaFJpcHBsZVwiKSk7XG5cbnZhciBfY3JlYXRlUmlwcGxlSGFuZGxlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vY3JlYXRlUmlwcGxlSGFuZGxlclwiKSk7XG5cbnZhciBzdHlsZXMgPSB7XG4gIHJvb3Q6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAvLyBSZW1vdmUgZ3JleSBoaWdobGlnaHRcbiAgICBXZWJraXRUYXBIaWdobGlnaHRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgLy8gUmVzZXQgZGVmYXVsdCB2YWx1ZVxuICAgIC8vIFdlIGRpc2FibGUgdGhlIGZvY3VzIHJpbmcgZm9yIG1vdXNlLCB0b3VjaCBhbmQga2V5Ym9hcmQgdXNlcnMuXG4gICAgb3V0bGluZTogJ25vbmUnLFxuICAgIGJvcmRlcjogMCxcbiAgICBtYXJnaW46IDAsXG4gICAgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gU2FmYXJpXG4gICAgYm9yZGVyUmFkaXVzOiAwLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgLy8gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIEZpcmVmb3hcbiAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICB1c2VyU2VsZWN0OiAnbm9uZScsXG4gICAgdmVydGljYWxBbGlnbjogJ21pZGRsZScsXG4gICAgJy1tb3otYXBwZWFyYW5jZSc6ICdub25lJyxcbiAgICAvLyBSZXNldFxuICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgLy8gUmVzZXRcbiAgICB0ZXh0RGVjb3JhdGlvbjogJ25vbmUnLFxuICAgIC8vIFNvIHdlIHRha2UgcHJlY2VkZW50IG92ZXIgdGhlIHN0eWxlIG9mIGEgbmF0aXZlIDxhIC8+IGVsZW1lbnQuXG4gICAgY29sb3I6ICdpbmhlcml0JyxcbiAgICAnJjo6LW1vei1mb2N1cy1pbm5lcic6IHtcbiAgICAgIGJvcmRlclN0eWxlOiAnbm9uZScgLy8gUmVtb3ZlIEZpcmVmb3ggZG90dGVkIG91dGxpbmUuXG5cbiAgICB9LFxuICAgICcmJGRpc2FibGVkJzoge1xuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgLy8gRGlzYWJsZSBsaW5rIGludGVyYWN0aW9uc1xuICAgICAgY3Vyc29yOiAnZGVmYXVsdCdcbiAgICB9XG4gIH0sXG4gIGRpc2FibGVkOiB7fSxcbiAgZm9jdXNWaXNpYmxlOiB7fVxufTtcbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuXG5leHBvcnRzLnN0eWxlcyA9IHN0eWxlcztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIV9yZWFjdC5kZWZhdWx0LmNyZWF0ZUNvbnRleHQpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdNYXRlcmlhbC1VSTogcmVhY3RAMTYuMy4wIG9yIGdyZWF0ZXIgaXMgcmVxdWlyZWQuJyk7XG59XG4vKipcbiAqIGBCdXR0b25CYXNlYCBjb250YWlucyBhcyBmZXcgc3R5bGVzIGFzIHBvc3NpYmxlLlxuICogSXQgYWltcyB0byBiZSBhIHNpbXBsZSBidWlsZGluZyBibG9jayBmb3IgY3JlYXRpbmcgYSBidXR0b24uXG4gKiBJdCBjb250YWlucyBhIGxvYWQgb2Ygc3R5bGUgcmVzZXQgYW5kIHNvbWUgZm9jdXMvcmlwcGxlIGxvZ2ljLlxuICovXG5cblxudmFyIEJ1dHRvbkJhc2UgPVxuLyojX19QVVJFX18qL1xuZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoQnV0dG9uQmFzZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gQnV0dG9uQmFzZSgpIHtcbiAgICB2YXIgX3JlZjtcblxuICAgIHZhciBfdGVtcCwgX3RoaXM7XG5cbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBCdXR0b25CYXNlKTtcblxuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMi5kZWZhdWx0KShfdGhpcywgKF90ZW1wID0gX3RoaXMgPSAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yLmRlZmF1bHQpKHRoaXMsIChfcmVmID0gQnV0dG9uQmFzZS5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKEJ1dHRvbkJhc2UpKS5jYWxsLmFwcGx5KF9yZWYsIFt0aGlzXS5jb25jYXQoYXJncykpKSwgX3RoaXMuc3RhdGUgPSB7fSwgX3RoaXMub25Gb2N1c1Zpc2libGVIYW5kbGVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBfdGhpcy5rZXlEb3duID0gZmFsc2U7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgZm9jdXNWaXNpYmxlOiB0cnVlXG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRm9jdXNWaXNpYmxlKSB7XG4gICAgICAgIF90aGlzLnByb3BzLm9uRm9jdXNWaXNpYmxlKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LCBfdGhpcy5vblJpcHBsZVJlZiA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICBfdGhpcy5yaXBwbGUgPSBub2RlO1xuICAgIH0sIF90aGlzLnJpcHBsZSA9IG51bGwsIF90aGlzLmtleURvd24gPSBmYWxzZSwgX3RoaXMuYnV0dG9uID0gbnVsbCwgX3RoaXMuZm9jdXNWaXNpYmxlVGltZW91dCA9IG51bGwsIF90aGlzLmZvY3VzVmlzaWJsZUNoZWNrVGltZSA9IDUwLCBfdGhpcy5mb2N1c1Zpc2libGVNYXhDaGVja1RpbWVzID0gNSwgX3RoaXMuaGFuZGxlS2V5RG93biA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgdmFyIF90aGlzJHByb3BzID0gX3RoaXMucHJvcHMsXG4gICAgICAgICAgY29tcG9uZW50ID0gX3RoaXMkcHJvcHMuY29tcG9uZW50LFxuICAgICAgICAgIGZvY3VzUmlwcGxlID0gX3RoaXMkcHJvcHMuZm9jdXNSaXBwbGUsXG4gICAgICAgICAgb25LZXlEb3duID0gX3RoaXMkcHJvcHMub25LZXlEb3duLFxuICAgICAgICAgIG9uQ2xpY2sgPSBfdGhpcyRwcm9wcy5vbkNsaWNrO1xuICAgICAgdmFyIGtleSA9ICgwLCBfa2V5Y29kZS5kZWZhdWx0KShldmVudCk7IC8vIENoZWNrIGlmIGtleSBpcyBhbHJlYWR5IGRvd24gdG8gYXZvaWQgcmVwZWF0cyBiZWluZyBjb3VudGVkIGFzIG11bHRpcGxlIGFjdGl2YXRpb25zXG5cbiAgICAgIGlmIChmb2N1c1JpcHBsZSAmJiAhX3RoaXMua2V5RG93biAmJiBfdGhpcy5zdGF0ZS5mb2N1c1Zpc2libGUgJiYgX3RoaXMucmlwcGxlICYmIGtleSA9PT0gJ3NwYWNlJykge1xuICAgICAgICBfdGhpcy5rZXlEb3duID0gdHJ1ZTtcbiAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuXG4gICAgICAgIF90aGlzLnJpcHBsZS5zdG9wKGV2ZW50LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMucmlwcGxlLnN0YXJ0KGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbktleURvd24pIHtcbiAgICAgICAgb25LZXlEb3duKGV2ZW50KTtcbiAgICAgIH0gLy8gS2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSBmb3Igbm9uIGludGVyYWN0aXZlIGVsZW1lbnRzXG5cblxuICAgICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCAmJiBjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnYnV0dG9uJyAmJiAoa2V5ID09PSAnc3BhY2UnIHx8IGtleSA9PT0gJ2VudGVyJykgJiYgIShfdGhpcy5idXR0b24udGFnTmFtZSA9PT0gJ0EnICYmIF90aGlzLmJ1dHRvbi5ocmVmKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgICAgb25DbGljayhldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBfdGhpcy5oYW5kbGVLZXlVcCA9IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgaWYgKF90aGlzLnByb3BzLmZvY3VzUmlwcGxlICYmICgwLCBfa2V5Y29kZS5kZWZhdWx0KShldmVudCkgPT09ICdzcGFjZScgJiYgX3RoaXMucmlwcGxlICYmIF90aGlzLnN0YXRlLmZvY3VzVmlzaWJsZSkge1xuICAgICAgICBfdGhpcy5rZXlEb3duID0gZmFsc2U7XG4gICAgICAgIGV2ZW50LnBlcnNpc3QoKTtcblxuICAgICAgICBfdGhpcy5yaXBwbGUuc3RvcChldmVudCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzLnJpcHBsZS5wdWxzYXRlKGV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfdGhpcy5wcm9wcy5vbktleVVwKSB7XG4gICAgICAgIF90aGlzLnByb3BzLm9uS2V5VXAoZXZlbnQpO1xuICAgICAgfVxuICAgIH0sIF90aGlzLmhhbmRsZU1vdXNlRG93biA9ICgwLCBfY3JlYXRlUmlwcGxlSGFuZGxlci5kZWZhdWx0KSgoMCwgX2Fzc2VydFRoaXNJbml0aWFsaXplZDIuZGVmYXVsdCkoX3RoaXMpLCAnTW91c2VEb3duJywgJ3N0YXJ0JywgZnVuY3Rpb24gKCkge1xuICAgICAgY2xlYXJUaW1lb3V0KF90aGlzLmZvY3VzVmlzaWJsZVRpbWVvdXQpO1xuXG4gICAgICBpZiAoX3RoaXMuc3RhdGUuZm9jdXNWaXNpYmxlKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBmb2N1c1Zpc2libGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pLCBfdGhpcy5oYW5kbGVNb3VzZVVwID0gKDAsIF9jcmVhdGVSaXBwbGVIYW5kbGVyLmRlZmF1bHQpKCgwLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMi5kZWZhdWx0KShfdGhpcyksICdNb3VzZVVwJywgJ3N0b3AnKSwgX3RoaXMuaGFuZGxlTW91c2VMZWF2ZSA9ICgwLCBfY3JlYXRlUmlwcGxlSGFuZGxlci5kZWZhdWx0KSgoMCwgX2Fzc2VydFRoaXNJbml0aWFsaXplZDIuZGVmYXVsdCkoX3RoaXMpLCAnTW91c2VMZWF2ZScsICdzdG9wJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoX3RoaXMuc3RhdGUuZm9jdXNWaXNpYmxlKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfSksIF90aGlzLmhhbmRsZVRvdWNoU3RhcnQgPSAoMCwgX2NyZWF0ZVJpcHBsZUhhbmRsZXIuZGVmYXVsdCkoKDAsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyLmRlZmF1bHQpKF90aGlzKSwgJ1RvdWNoU3RhcnQnLCAnc3RhcnQnKSwgX3RoaXMuaGFuZGxlVG91Y2hFbmQgPSAoMCwgX2NyZWF0ZVJpcHBsZUhhbmRsZXIuZGVmYXVsdCkoKDAsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyLmRlZmF1bHQpKF90aGlzKSwgJ1RvdWNoRW5kJywgJ3N0b3AnKSwgX3RoaXMuaGFuZGxlVG91Y2hNb3ZlID0gKDAsIF9jcmVhdGVSaXBwbGVIYW5kbGVyLmRlZmF1bHQpKCgwLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMi5kZWZhdWx0KShfdGhpcyksICdUb3VjaE1vdmUnLCAnc3RvcCcpLCBfdGhpcy5oYW5kbGVCbHVyID0gKDAsIF9jcmVhdGVSaXBwbGVIYW5kbGVyLmRlZmF1bHQpKCgwLCBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMi5kZWZhdWx0KShfdGhpcyksICdCbHVyJywgJ3N0b3AnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjbGVhclRpbWVvdXQoX3RoaXMuZm9jdXNWaXNpYmxlVGltZW91dCk7XG5cbiAgICAgIGlmIChfdGhpcy5zdGF0ZS5mb2N1c1Zpc2libGUpIHtcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGZvY3VzVmlzaWJsZTogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSksIF90aGlzLmhhbmRsZUZvY3VzID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICBpZiAoX3RoaXMucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSAvLyBGaXggZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzc2OVxuXG5cbiAgICAgIGlmICghX3RoaXMuYnV0dG9uKSB7XG4gICAgICAgIF90aGlzLmJ1dHRvbiA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnBlcnNpc3QoKTtcbiAgICAgICgwLCBfZm9jdXNWaXNpYmxlLmRldGVjdEZvY3VzVmlzaWJsZSkoKDAsIF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQyLmRlZmF1bHQpKF90aGlzKSwgX3RoaXMuYnV0dG9uLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIF90aGlzLm9uRm9jdXNWaXNpYmxlSGFuZGxlcihldmVudCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgICAgX3RoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgICB9XG4gICAgfSwgX3RlbXApKTtcbiAgfVxuXG4gICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKEJ1dHRvbkJhc2UsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudERpZE1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHRoaXMuYnV0dG9uID0gX3JlYWN0RG9tLmRlZmF1bHQuZmluZERPTU5vZGUodGhpcyk7XG4gICAgICAoMCwgX2ZvY3VzVmlzaWJsZS5saXN0ZW5Gb3JGb2N1c0tleXMpKCgwLCBfb3duZXJXaW5kb3cuZGVmYXVsdCkodGhpcy5idXR0b24pKTtcblxuICAgICAgaWYgKHRoaXMucHJvcHMuYWN0aW9uKSB7XG4gICAgICAgIHRoaXMucHJvcHMuYWN0aW9uKHtcbiAgICAgICAgICBmb2N1c1Zpc2libGU6IGZ1bmN0aW9uIGZvY3VzVmlzaWJsZSgpIHtcbiAgICAgICAgICAgIF90aGlzMi5zZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIGZvY3VzVmlzaWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIF90aGlzMi5idXR0b24uZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogXCJjb21wb25lbnREaWRVcGRhdGVcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcywgcHJldlN0YXRlKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5mb2N1c1JpcHBsZSAmJiAhdGhpcy5wcm9wcy5kaXNhYmxlUmlwcGxlICYmICFwcmV2U3RhdGUuZm9jdXNWaXNpYmxlICYmIHRoaXMuc3RhdGUuZm9jdXNWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMucmlwcGxlLnB1bHNhdGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB0aGlzLmJ1dHRvbiA9IG51bGw7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5mb2N1c1Zpc2libGVUaW1lb3V0KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcztcblxuICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgYWN0aW9uID0gX3Byb3BzLmFjdGlvbixcbiAgICAgICAgICBidXR0b25SZWYgPSBfcHJvcHMuYnV0dG9uUmVmLFxuICAgICAgICAgIGNlbnRlclJpcHBsZSA9IF9wcm9wcy5jZW50ZXJSaXBwbGUsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgY2xhc3NlcyA9IF9wcm9wcy5jbGFzc2VzLFxuICAgICAgICAgIGNsYXNzTmFtZVByb3AgPSBfcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIGNvbXBvbmVudCA9IF9wcm9wcy5jb21wb25lbnQsXG4gICAgICAgICAgZGlzYWJsZWQgPSBfcHJvcHMuZGlzYWJsZWQsXG4gICAgICAgICAgZGlzYWJsZVJpcHBsZSA9IF9wcm9wcy5kaXNhYmxlUmlwcGxlLFxuICAgICAgICAgIGRpc2FibGVUb3VjaFJpcHBsZSA9IF9wcm9wcy5kaXNhYmxlVG91Y2hSaXBwbGUsXG4gICAgICAgICAgZm9jdXNSaXBwbGUgPSBfcHJvcHMuZm9jdXNSaXBwbGUsXG4gICAgICAgICAgZm9jdXNWaXNpYmxlQ2xhc3NOYW1lID0gX3Byb3BzLmZvY3VzVmlzaWJsZUNsYXNzTmFtZSxcbiAgICAgICAgICBvbkJsdXIgPSBfcHJvcHMub25CbHVyLFxuICAgICAgICAgIG9uRm9jdXMgPSBfcHJvcHMub25Gb2N1cyxcbiAgICAgICAgICBvbkZvY3VzVmlzaWJsZSA9IF9wcm9wcy5vbkZvY3VzVmlzaWJsZSxcbiAgICAgICAgICBvbktleURvd24gPSBfcHJvcHMub25LZXlEb3duLFxuICAgICAgICAgIG9uS2V5VXAgPSBfcHJvcHMub25LZXlVcCxcbiAgICAgICAgICBvbk1vdXNlRG93biA9IF9wcm9wcy5vbk1vdXNlRG93bixcbiAgICAgICAgICBvbk1vdXNlTGVhdmUgPSBfcHJvcHMub25Nb3VzZUxlYXZlLFxuICAgICAgICAgIG9uTW91c2VVcCA9IF9wcm9wcy5vbk1vdXNlVXAsXG4gICAgICAgICAgb25Ub3VjaEVuZCA9IF9wcm9wcy5vblRvdWNoRW5kLFxuICAgICAgICAgIG9uVG91Y2hNb3ZlID0gX3Byb3BzLm9uVG91Y2hNb3ZlLFxuICAgICAgICAgIG9uVG91Y2hTdGFydCA9IF9wcm9wcy5vblRvdWNoU3RhcnQsXG4gICAgICAgICAgdGFiSW5kZXggPSBfcHJvcHMudGFiSW5kZXgsXG4gICAgICAgICAgVG91Y2hSaXBwbGVQcm9wcyA9IF9wcm9wcy5Ub3VjaFJpcHBsZVByb3BzLFxuICAgICAgICAgIHR5cGUgPSBfcHJvcHMudHlwZSxcbiAgICAgICAgICBvdGhlciA9ICgwLCBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyLmRlZmF1bHQpKF9wcm9wcywgW1wiYWN0aW9uXCIsIFwiYnV0dG9uUmVmXCIsIFwiY2VudGVyUmlwcGxlXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc2VzXCIsIFwiY2xhc3NOYW1lXCIsIFwiY29tcG9uZW50XCIsIFwiZGlzYWJsZWRcIiwgXCJkaXNhYmxlUmlwcGxlXCIsIFwiZGlzYWJsZVRvdWNoUmlwcGxlXCIsIFwiZm9jdXNSaXBwbGVcIiwgXCJmb2N1c1Zpc2libGVDbGFzc05hbWVcIiwgXCJvbkJsdXJcIiwgXCJvbkZvY3VzXCIsIFwib25Gb2N1c1Zpc2libGVcIiwgXCJvbktleURvd25cIiwgXCJvbktleVVwXCIsIFwib25Nb3VzZURvd25cIiwgXCJvbk1vdXNlTGVhdmVcIiwgXCJvbk1vdXNlVXBcIiwgXCJvblRvdWNoRW5kXCIsIFwib25Ub3VjaE1vdmVcIiwgXCJvblRvdWNoU3RhcnRcIiwgXCJ0YWJJbmRleFwiLCBcIlRvdWNoUmlwcGxlUHJvcHNcIiwgXCJ0eXBlXCJdKTtcbiAgICAgIHZhciBjbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXMuZGVmYXVsdCkoY2xhc3Nlcy5yb290LCAoX2NsYXNzTmFtZXMgPSB7fSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMuZGlzYWJsZWQsIGRpc2FibGVkKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMsIGNsYXNzZXMuZm9jdXNWaXNpYmxlLCB0aGlzLnN0YXRlLmZvY3VzVmlzaWJsZSksICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBmb2N1c1Zpc2libGVDbGFzc05hbWUsIHRoaXMuc3RhdGUuZm9jdXNWaXNpYmxlKSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWVQcm9wKTtcbiAgICAgIHZhciBidXR0b25Qcm9wcyA9IHt9O1xuICAgICAgdmFyIENvbXBvbmVudFByb3AgPSBjb21wb25lbnQ7XG5cbiAgICAgIGlmIChDb21wb25lbnRQcm9wID09PSAnYnV0dG9uJyAmJiBvdGhlci5ocmVmKSB7XG4gICAgICAgIENvbXBvbmVudFByb3AgPSAnYSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChDb21wb25lbnRQcm9wID09PSAnYnV0dG9uJykge1xuICAgICAgICBidXR0b25Qcm9wcy50eXBlID0gdHlwZSB8fCAnYnV0dG9uJztcbiAgICAgICAgYnV0dG9uUHJvcHMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJ1dHRvblByb3BzLnJvbGUgPSAnYnV0dG9uJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ29tcG9uZW50UHJvcCwgKDAsIF9leHRlbmRzMi5kZWZhdWx0KSh7XG4gICAgICAgIG9uQmx1cjogdGhpcy5oYW5kbGVCbHVyLFxuICAgICAgICBvbkZvY3VzOiB0aGlzLmhhbmRsZUZvY3VzLFxuICAgICAgICBvbktleURvd246IHRoaXMuaGFuZGxlS2V5RG93bixcbiAgICAgICAgb25LZXlVcDogdGhpcy5oYW5kbGVLZXlVcCxcbiAgICAgICAgb25Nb3VzZURvd246IHRoaXMuaGFuZGxlTW91c2VEb3duLFxuICAgICAgICBvbk1vdXNlTGVhdmU6IHRoaXMuaGFuZGxlTW91c2VMZWF2ZSxcbiAgICAgICAgb25Nb3VzZVVwOiB0aGlzLmhhbmRsZU1vdXNlVXAsXG4gICAgICAgIG9uVG91Y2hFbmQ6IHRoaXMuaGFuZGxlVG91Y2hFbmQsXG4gICAgICAgIG9uVG91Y2hNb3ZlOiB0aGlzLmhhbmRsZVRvdWNoTW92ZSxcbiAgICAgICAgb25Ub3VjaFN0YXJ0OiB0aGlzLmhhbmRsZVRvdWNoU3RhcnQsXG4gICAgICAgIHRhYkluZGV4OiBkaXNhYmxlZCA/ICctMScgOiB0YWJJbmRleCxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgICAgIHJlZjogYnV0dG9uUmVmXG4gICAgICB9LCBidXR0b25Qcm9wcywgb3RoZXIpLCBjaGlsZHJlbiwgIWRpc2FibGVSaXBwbGUgJiYgIWRpc2FibGVkID8gX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfVG91Y2hSaXBwbGUuZGVmYXVsdCwgKDAsIF9leHRlbmRzMi5kZWZhdWx0KSh7XG4gICAgICAgIGlubmVyUmVmOiB0aGlzLm9uUmlwcGxlUmVmLFxuICAgICAgICBjZW50ZXI6IGNlbnRlclJpcHBsZVxuICAgICAgfSwgVG91Y2hSaXBwbGVQcm9wcykpIDogbnVsbCk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhuZXh0UHJvcHMsIHByZXZTdGF0ZSkge1xuICAgICAgaWYgKHR5cGVvZiBwcmV2U3RhdGUuZm9jdXNWaXNpYmxlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZvY3VzVmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgbGFzdERpc2FibGVkOiBuZXh0UHJvcHMuZGlzYWJsZWRcbiAgICAgICAgfTtcbiAgICAgIH0gLy8gVGhlIGJsdXIgd29uJ3QgZmlyZSB3aGVuIHRoZSBkaXNhYmxlZCBzdGF0ZSBpcyBzZXQgb24gYSBmb2N1c2VkIGlucHV0LlxuICAgICAgLy8gV2UgbmVlZCB0byBib29rIGtlZXAgdGhlIGZvY3VzZWQgc3RhdGUgbWFudWFsbHkuXG5cblxuICAgICAgaWYgKCFwcmV2U3RhdGUucHJldlN0YXRlICYmIG5leHRQcm9wcy5kaXNhYmxlZCAmJiBwcmV2U3RhdGUuZm9jdXNWaXNpYmxlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZm9jdXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICBsYXN0RGlzYWJsZWQ6IG5leHRQcm9wcy5kaXNhYmxlZFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYXN0RGlzYWJsZWQ6IG5leHRQcm9wcy5kaXNhYmxlZFxuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIEJ1dHRvbkJhc2U7XG59KF9yZWFjdC5kZWZhdWx0LkNvbXBvbmVudCk7XG5cbkJ1dHRvbkJhc2UucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8ge1xuICAvKipcbiAgICogQ2FsbGJhY2sgZmlyZWQgd2hlbiB0aGUgY29tcG9uZW50IG1vdW50cy5cbiAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byB0cmlnZ2VyIGFuIGFjdGlvbiBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKiBJdCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBgZm9jdXNWaXNpYmxlKClgIGFjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGFjdGlvbnMgVGhpcyBvYmplY3QgY29udGFpbnMgYWxsIHBvc3NpYmxlIGFjdGlvbnNcbiAgICogdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBhY3Rpb246IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBVc2UgdGhhdCBwcm9wZXJ0eSB0byBwYXNzIGEgcmVmIGNhbGxiYWNrIHRvIHRoZSBuYXRpdmUgYnV0dG9uIGNvbXBvbmVudC5cbiAgICovXG4gIGJ1dHRvblJlZjogX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mVHlwZShbX3Byb3BUeXBlcy5kZWZhdWx0LmZ1bmMsIF9wcm9wVHlwZXMuZGVmYXVsdC5vYmplY3RdKSxcblxuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgcmlwcGxlcyB3aWxsIGJlIGNlbnRlcmVkLlxuICAgKiBUaGV5IHdvbid0IHN0YXJ0IGF0IHRoZSBjdXJzb3IgaW50ZXJhY3Rpb24gcG9zaXRpb24uXG4gICAqL1xuICBjZW50ZXJSaXBwbGU6IF9wcm9wVHlwZXMuZGVmYXVsdC5ib29sLFxuXG4gIC8qKlxuICAgKiBUaGUgY29udGVudCBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgY2hpbGRyZW46IF9wcm9wVHlwZXMuZGVmYXVsdC5ub2RlLFxuXG4gIC8qKlxuICAgKiBPdmVycmlkZSBvciBleHRlbmQgdGhlIHN0eWxlcyBhcHBsaWVkIHRvIHRoZSBjb21wb25lbnQuXG4gICAqIFNlZSBbQ1NTIEFQSV0oI2Nzcy1hcGkpIGJlbG93IGZvciBtb3JlIGRldGFpbHMuXG4gICAqL1xuICBjbGFzc2VzOiBfcHJvcFR5cGVzLmRlZmF1bHQub2JqZWN0LmlzUmVxdWlyZWQsXG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNsYXNzTmFtZTogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCB1c2VkIGZvciB0aGUgcm9vdCBub2RlLlxuICAgKiBFaXRoZXIgYSBzdHJpbmcgdG8gdXNlIGEgRE9NIGVsZW1lbnQgb3IgYSBjb21wb25lbnQuXG4gICAqL1xuICBjb21wb25lbnQ6IF9wcm9wVHlwZXMuZGVmYXVsdC5vbmVPZlR5cGUoW19wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmcsIF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLCBfcHJvcFR5cGVzLmRlZmF1bHQub2JqZWN0XSksXG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlIGJhc2UgYnV0dG9uIHdpbGwgYmUgZGlzYWJsZWQuXG4gICAqL1xuICBkaXNhYmxlZDogX3Byb3BUeXBlcy5kZWZhdWx0LmJvb2wsXG5cbiAgLyoqXG4gICAqIElmIGB0cnVlYCwgdGhlIHJpcHBsZSBlZmZlY3Qgd2lsbCBiZSBkaXNhYmxlZC5cbiAgICovXG4gIGRpc2FibGVSaXBwbGU6IF9wcm9wVHlwZXMuZGVmYXVsdC5ib29sLFxuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSB0b3VjaCByaXBwbGUgZWZmZWN0IHdpbGwgYmUgZGlzYWJsZWQuXG4gICAqL1xuICBkaXNhYmxlVG91Y2hSaXBwbGU6IF9wcm9wVHlwZXMuZGVmYXVsdC5ib29sLFxuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSBiYXNlIGJ1dHRvbiB3aWxsIGhhdmUgYSBrZXlib2FyZCBmb2N1cyByaXBwbGUuXG4gICAqIGBkaXNhYmxlUmlwcGxlYCBtdXN0IGFsc28gYmUgYGZhbHNlYC5cbiAgICovXG4gIGZvY3VzUmlwcGxlOiBfcHJvcFR5cGVzLmRlZmF1bHQuYm9vbCxcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBjYW4gaGVscCBhIHBlcnNvbiBrbm93IHdoaWNoIGVsZW1lbnQgaGFzIHRoZSBrZXlib2FyZCBmb2N1cy5cbiAgICogVGhlIGNsYXNzIG5hbWUgd2lsbCBiZSBhcHBsaWVkIHdoZW4gdGhlIGVsZW1lbnQgZ2FpbiB0aGUgZm9jdXMgdGhyb3VnaHQgYSBrZXlib2FyZCBpbnRlcmFjdGlvbi5cbiAgICogSXQncyBhIHBvbHlmaWxsIGZvciB0aGUgW0NTUyA6Zm9jdXMtdmlzaWJsZSBmZWF0dXJlXShodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1mb2N1cy12aXNpYmxlLXBzZXVkbykuXG4gICAqIFRoZSByYXRpb25hbCBmb3IgdXNpbmcgdGhpcyBmZWF0dXJlIFtpcyBleHBsYWluIGhlcmVdKGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL2ZvY3VzLXZpc2libGUvYmxvYi9tYXN0ZXIvZXhwbGFpbmVyLm1kKS5cbiAgICovXG4gIGZvY3VzVmlzaWJsZUNsYXNzTmFtZTogX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZyxcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25CbHVyOiBfcHJvcFR5cGVzLmRlZmF1bHQuZnVuYyxcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25DbGljazogX3Byb3BUeXBlcy5kZWZhdWx0LmZ1bmMsXG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIG9uRm9jdXM6IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmaXJlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZm9jdXNlZCB3aXRoIGEga2V5Ym9hcmQuXG4gICAqIFdlIHRyaWdnZXIgYSBgb25Gb2N1c2AgY2FsbGJhY2sgdG9vLlxuICAgKi9cbiAgb25Gb2N1c1Zpc2libGU6IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbktleURvd246IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbktleVVwOiBfcHJvcFR5cGVzLmRlZmF1bHQuZnVuYyxcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Nb3VzZURvd246IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbk1vdXNlTGVhdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvbk1vdXNlVXA6IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblRvdWNoRW5kOiBfcHJvcFR5cGVzLmRlZmF1bHQuZnVuYyxcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaE1vdmU6IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvblRvdWNoU3RhcnQ6IF9wcm9wVHlwZXMuZGVmYXVsdC5mdW5jLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICByb2xlOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICB0YWJJbmRleDogX3Byb3BUeXBlcy5kZWZhdWx0Lm9uZU9mVHlwZShbX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlciwgX3Byb3BUeXBlcy5kZWZhdWx0LnN0cmluZ10pLFxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGFwcGxpZWQgdG8gdGhlIGBUb3VjaFJpcHBsZWAgZWxlbWVudC5cbiAgICovXG4gIFRvdWNoUmlwcGxlUHJvcHM6IF9wcm9wVHlwZXMuZGVmYXVsdC5vYmplY3QsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gY29udHJvbCB0aGUgYnV0dG9uJ3MgcHVycG9zZS5cbiAgICogVGhpcyBwcm9wZXJ0eSBwYXNzZXMgdGhlIHZhbHVlIHRvIHRoZSBgdHlwZWAgYXR0cmlidXRlIG9mIHRoZSBuYXRpdmUgYnV0dG9uIGNvbXBvbmVudC5cbiAgICogVmFsaWQgcHJvcGVydHkgdmFsdWVzIGluY2x1ZGUgYGJ1dHRvbmAsIGBzdWJtaXRgLCBhbmQgYHJlc2V0YC5cbiAgICovXG4gIHR5cGU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0gOiB7fTtcbkJ1dHRvbkJhc2UuZGVmYXVsdFByb3BzID0ge1xuICBjZW50ZXJSaXBwbGU6IGZhbHNlLFxuICBjb21wb25lbnQ6ICdidXR0b24nLFxuICBkaXNhYmxlUmlwcGxlOiBmYWxzZSxcbiAgZGlzYWJsZVRvdWNoUmlwcGxlOiBmYWxzZSxcbiAgZm9jdXNSaXBwbGU6IGZhbHNlLFxuICB0YWJJbmRleDogJzAnLFxuICB0eXBlOiAnYnV0dG9uJ1xufTtcblxudmFyIF9kZWZhdWx0ID0gKDAsIF93aXRoU3R5bGVzLmRlZmF1bHQpKHN0eWxlcywge1xuICBuYW1lOiAnTXVpQnV0dG9uQmFzZSdcbn0pKEJ1dHRvbkJhc2UpO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/ButtonBase/ButtonBase.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/ButtonBase/Ripple.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/@material-ui/core/ButtonBase/Ripple.js ***!
+ \*************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/extends */ \"./node_modules/@babel/runtime/helpers/builtin/extends.js\"));\n\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/defineProperty */ \"./node_modules/@babel/runtime/helpers/builtin/defineProperty.js\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/builtin/objectWithoutProperties.js\"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/classCallCheck */ \"./node_modules/@babel/runtime/helpers/builtin/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/createClass */ \"./node_modules/@babel/runtime/helpers/builtin/createClass.js\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/builtin/possibleConstructorReturn.js\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/inherits */ \"./node_modules/@babel/runtime/helpers/builtin/inherits.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _Transition = _interopRequireDefault(__webpack_require__(/*! react-transition-group/Transition */ \"./node_modules/react-transition-group/Transition.js\"));\n\n/**\n * @ignore - internal component.\n */\nvar Ripple =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inherits2.default)(Ripple, _React$Component);\n\n function Ripple() {\n var _ref;\n\n var _temp, _this;\n\n (0, _classCallCheck2.default)(this, Ripple);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (0, _possibleConstructorReturn2.default)(_this, (_temp = _this = (0, _possibleConstructorReturn2.default)(this, (_ref = Ripple.__proto__ || Object.getPrototypeOf(Ripple)).call.apply(_ref, [this].concat(args))), _this.state = {\n visible: false,\n leaving: false\n }, _this.handleEnter = function () {\n _this.setState({\n visible: true\n });\n }, _this.handleExit = function () {\n _this.setState({\n leaving: true\n });\n }, _temp));\n }\n\n (0, _createClass2.default)(Ripple, [{\n key: \"render\",\n value: function render() {\n var _classNames, _classNames2;\n\n var _props = this.props,\n classes = _props.classes,\n classNameProp = _props.className,\n pulsate = _props.pulsate,\n rippleX = _props.rippleX,\n rippleY = _props.rippleY,\n rippleSize = _props.rippleSize,\n other = (0, _objectWithoutProperties2.default)(_props, [\"classes\", \"className\", \"pulsate\", \"rippleX\", \"rippleY\", \"rippleSize\"]);\n var _state = this.state,\n visible = _state.visible,\n leaving = _state.leaving;\n var rippleClassName = (0, _classnames.default)(classes.ripple, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.rippleVisible, visible), (0, _defineProperty2.default)(_classNames, classes.ripplePulsate, pulsate), _classNames), classNameProp);\n var rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n var childClassName = (0, _classnames.default)(classes.child, (_classNames2 = {}, (0, _defineProperty2.default)(_classNames2, classes.childLeaving, leaving), (0, _defineProperty2.default)(_classNames2, classes.childPulsate, pulsate), _classNames2));\n return _react.default.createElement(_Transition.default, (0, _extends2.default)({\n onEnter: this.handleEnter,\n onExit: this.handleExit\n }, other), _react.default.createElement(\"span\", {\n className: rippleClassName,\n style: rippleStyles\n }, _react.default.createElement(\"span\", {\n className: childClassName\n })));\n }\n }]);\n return Ripple;\n}(_react.default.Component);\n\nRipple.propTypes = true ? {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css-api) below for more details.\n */\n classes: _propTypes.default.object.isRequired,\n\n /**\n * @ignore\n */\n className: _propTypes.default.string,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: _propTypes.default.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: _propTypes.default.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: _propTypes.default.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: _propTypes.default.number\n} : undefined;\nRipple.defaultProps = {\n pulsate: false\n};\nvar _default = Ripple;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9SaXBwbGUuanM/OWNjMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUEsdUVBQXVFLGFBQWE7QUFDcEY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNGQUFzRjtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC11aS9jb3JlL0J1dHRvbkJhc2UvUmlwcGxlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vZXh0ZW5kc1wiKSk7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2RlZmluZVByb3BlcnR5XCIpKTtcblxudmFyIF9vYmplY3RXaXRob3V0UHJvcGVydGllczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIikpO1xuXG52YXIgX2NsYXNzQ2FsbENoZWNrMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9jbGFzc0NhbGxDaGVja1wiKSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2NyZWF0ZUNsYXNzXCIpKTtcblxudmFyIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuXCIpKTtcblxudmFyIF9pbmhlcml0czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vaW5oZXJpdHNcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJjbGFzc25hbWVzXCIpKTtcblxudmFyIF9UcmFuc2l0aW9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtdHJhbnNpdGlvbi1ncm91cC9UcmFuc2l0aW9uXCIpKTtcblxuLyoqXG4gKiBAaWdub3JlIC0gaW50ZXJuYWwgY29tcG9uZW50LlxuICovXG52YXIgUmlwcGxlID1cbi8qI19fUFVSRV9fKi9cbmZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKFJpcHBsZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gUmlwcGxlKCkge1xuICAgIHZhciBfcmVmO1xuXG4gICAgdmFyIF90ZW1wLCBfdGhpcztcblxuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIFJpcHBsZSk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuICgwLCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIuZGVmYXVsdCkoX3RoaXMsIChfdGVtcCA9IF90aGlzID0gKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMi5kZWZhdWx0KSh0aGlzLCAoX3JlZiA9IFJpcHBsZS5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFJpcHBsZSkpLmNhbGwuYXBwbHkoX3JlZiwgW3RoaXNdLmNvbmNhdChhcmdzKSkpLCBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgbGVhdmluZzogZmFsc2VcbiAgICB9LCBfdGhpcy5oYW5kbGVFbnRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgdmlzaWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfSwgX3RoaXMuaGFuZGxlRXhpdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbGVhdmluZzogdHJ1ZVxuICAgICAgfSk7XG4gICAgfSwgX3RlbXApKTtcbiAgfVxuXG4gICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKFJpcHBsZSwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY2xhc3NOYW1lcywgX2NsYXNzTmFtZXMyO1xuXG4gICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjbGFzc2VzID0gX3Byb3BzLmNsYXNzZXMsXG4gICAgICAgICAgY2xhc3NOYW1lUHJvcCA9IF9wcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgcHVsc2F0ZSA9IF9wcm9wcy5wdWxzYXRlLFxuICAgICAgICAgIHJpcHBsZVggPSBfcHJvcHMucmlwcGxlWCxcbiAgICAgICAgICByaXBwbGVZID0gX3Byb3BzLnJpcHBsZVksXG4gICAgICAgICAgcmlwcGxlU2l6ZSA9IF9wcm9wcy5yaXBwbGVTaXplLFxuICAgICAgICAgIG90aGVyID0gKDAsIF9vYmplY3RXaXRob3V0UHJvcGVydGllczIuZGVmYXVsdCkoX3Byb3BzLCBbXCJjbGFzc2VzXCIsIFwiY2xhc3NOYW1lXCIsIFwicHVsc2F0ZVwiLCBcInJpcHBsZVhcIiwgXCJyaXBwbGVZXCIsIFwicmlwcGxlU2l6ZVwiXSk7XG4gICAgICB2YXIgX3N0YXRlID0gdGhpcy5zdGF0ZSxcbiAgICAgICAgICB2aXNpYmxlID0gX3N0YXRlLnZpc2libGUsXG4gICAgICAgICAgbGVhdmluZyA9IF9zdGF0ZS5sZWF2aW5nO1xuICAgICAgdmFyIHJpcHBsZUNsYXNzTmFtZSA9ICgwLCBfY2xhc3NuYW1lcy5kZWZhdWx0KShjbGFzc2VzLnJpcHBsZSwgKF9jbGFzc05hbWVzID0ge30sICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF9jbGFzc05hbWVzLCBjbGFzc2VzLnJpcHBsZVZpc2libGUsIHZpc2libGUpLCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lcywgY2xhc3Nlcy5yaXBwbGVQdWxzYXRlLCBwdWxzYXRlKSwgX2NsYXNzTmFtZXMpLCBjbGFzc05hbWVQcm9wKTtcbiAgICAgIHZhciByaXBwbGVTdHlsZXMgPSB7XG4gICAgICAgIHdpZHRoOiByaXBwbGVTaXplLFxuICAgICAgICBoZWlnaHQ6IHJpcHBsZVNpemUsXG4gICAgICAgIHRvcDogLShyaXBwbGVTaXplIC8gMikgKyByaXBwbGVZLFxuICAgICAgICBsZWZ0OiAtKHJpcHBsZVNpemUgLyAyKSArIHJpcHBsZVhcbiAgICAgIH07XG4gICAgICB2YXIgY2hpbGRDbGFzc05hbWUgPSAoMCwgX2NsYXNzbmFtZXMuZGVmYXVsdCkoY2xhc3Nlcy5jaGlsZCwgKF9jbGFzc05hbWVzMiA9IHt9LCAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfY2xhc3NOYW1lczIsIGNsYXNzZXMuY2hpbGRMZWF2aW5nLCBsZWF2aW5nKSwgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX2NsYXNzTmFtZXMyLCBjbGFzc2VzLmNoaWxkUHVsc2F0ZSwgcHVsc2F0ZSksIF9jbGFzc05hbWVzMikpO1xuICAgICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX1RyYW5zaXRpb24uZGVmYXVsdCwgKDAsIF9leHRlbmRzMi5kZWZhdWx0KSh7XG4gICAgICAgIG9uRW50ZXI6IHRoaXMuaGFuZGxlRW50ZXIsXG4gICAgICAgIG9uRXhpdDogdGhpcy5oYW5kbGVFeGl0XG4gICAgICB9LCBvdGhlciksIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiByaXBwbGVDbGFzc05hbWUsXG4gICAgICAgIHN0eWxlOiByaXBwbGVTdHlsZXNcbiAgICAgIH0sIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBjaGlsZENsYXNzTmFtZVxuICAgICAgfSkpKTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFJpcHBsZTtcbn0oX3JlYWN0LmRlZmF1bHQuQ29tcG9uZW50KTtcblxuUmlwcGxlLnByb3BUeXBlcyA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiA/IHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIG9yIGV4dGVuZCB0aGUgc3R5bGVzIGFwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICogU2VlIFtDU1MgQVBJXSgjY3NzLWFwaSkgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy5cbiAgICovXG4gIGNsYXNzZXM6IF9wcm9wVHlwZXMuZGVmYXVsdC5vYmplY3QuaXNSZXF1aXJlZCxcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY2xhc3NOYW1lOiBfcHJvcFR5cGVzLmRlZmF1bHQuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBJZiBgdHJ1ZWAsIHRoZSByaXBwbGUgcHVsc2F0ZXMsIHR5cGljYWxseSBpbmRpY2F0aW5nIHRoZSBrZXlib2FyZCBmb2N1cyBzdGF0ZSBvZiBhbiBlbGVtZW50LlxuICAgKi9cbiAgcHVsc2F0ZTogX3Byb3BUeXBlcy5kZWZhdWx0LmJvb2wsXG5cbiAgLyoqXG4gICAqIERpYW1ldGVyIG9mIHRoZSByaXBwbGUuXG4gICAqL1xuICByaXBwbGVTaXplOiBfcHJvcFR5cGVzLmRlZmF1bHQubnVtYmVyLFxuXG4gIC8qKlxuICAgKiBIb3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSByaXBwbGUgY2VudGVyLlxuICAgKi9cbiAgcmlwcGxlWDogX3Byb3BUeXBlcy5kZWZhdWx0Lm51bWJlcixcblxuICAvKipcbiAgICogVmVydGljYWwgcG9zaXRpb24gb2YgdGhlIHJpcHBsZSBjZW50ZXIuXG4gICAqL1xuICByaXBwbGVZOiBfcHJvcFR5cGVzLmRlZmF1bHQubnVtYmVyXG59IDoge307XG5SaXBwbGUuZGVmYXVsdFByb3BzID0ge1xuICBwdWxzYXRlOiBmYWxzZVxufTtcbnZhciBfZGVmYXVsdCA9IFJpcHBsZTtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/ButtonBase/Ripple.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/ButtonBase/TouchRipple.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@material-ui/core/ButtonBase/TouchRipple.js ***!
+ \******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.styles = exports.DELAY_RIPPLE = void 0;\n\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/extends */ \"./node_modules/@babel/runtime/helpers/builtin/extends.js\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/objectWithoutProperties */ \"./node_modules/@babel/runtime/helpers/builtin/objectWithoutProperties.js\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/builtin/toConsumableArray.js\"));\n\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/classCallCheck */ \"./node_modules/@babel/runtime/helpers/builtin/classCallCheck.js\"));\n\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/createClass */ \"./node_modules/@babel/runtime/helpers/builtin/createClass.js\"));\n\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/builtin/possibleConstructorReturn.js\"));\n\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/inherits */ \"./node_modules/@babel/runtime/helpers/builtin/inherits.js\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/builtin/assertThisInitialized */ \"./node_modules/@babel/runtime/helpers/builtin/assertThisInitialized.js\"));\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\n\nvar _reactDom = _interopRequireDefault(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\n\nvar _TransitionGroup = _interopRequireDefault(__webpack_require__(/*! react-transition-group/TransitionGroup */ \"./node_modules/react-transition-group/TransitionGroup.js\"));\n\nvar _classnames = _interopRequireDefault(__webpack_require__(/*! classnames */ \"./node_modules/classnames/index.js\"));\n\nvar _withStyles = _interopRequireDefault(__webpack_require__(/*! ../styles/withStyles */ \"./node_modules/@material-ui/core/styles/withStyles.js\"));\n\nvar _Ripple = _interopRequireDefault(__webpack_require__(/*! ./Ripple */ \"./node_modules/@material-ui/core/ButtonBase/Ripple.js\"));\n\nvar DURATION = 550;\nvar DELAY_RIPPLE = 80;\nexports.DELAY_RIPPLE = DELAY_RIPPLE;\n\nvar styles = function styles(theme) {\n return {\n root: {\n display: 'block',\n position: 'absolute',\n overflow: 'hidden',\n borderRadius: 'inherit',\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n pointerEvents: 'none',\n zIndex: 0\n },\n ripple: {\n width: 50,\n height: 50,\n left: 0,\n top: 0,\n opacity: 0,\n position: 'absolute'\n },\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"mui-ripple-enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n childLeaving: {\n opacity: 0,\n animation: \"mui-ripple-exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"mui-ripple-pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes mui-ripple-enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes mui-ripple-exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes mui-ripple-pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n\nexports.styles = styles;\n\nvar TouchRipple =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n (0, _inherits2.default)(TouchRipple, _React$PureComponent);\n\n function TouchRipple() {\n var _ref;\n\n var _temp, _this;\n\n (0, _classCallCheck2.default)(this, TouchRipple);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (0, _possibleConstructorReturn2.default)(_this, (_temp = _this = (0, _possibleConstructorReturn2.default)(this, (_ref = TouchRipple.__proto__ || Object.getPrototypeOf(TouchRipple)).call.apply(_ref, [this].concat(args))), _this.state = {\n nextKey: 0,\n ripples: []\n }, _this.ignoringMouseDown = false, _this.startTimer = null, _this.startTimerCommit = null, _this.pulsate = function () {\n _this.start({}, {\n pulsate: true\n });\n }, _this.start = function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? _this.props.center || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n if (event.type === 'mousedown' && _this.ignoringMouseDown) {\n _this.ignoringMouseDown = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n _this.ignoringMouseDown = true;\n }\n\n var element = fakeElement ? null : _reactDom.default.findDOMNode((0, _assertThisInitialized2.default)(_this));\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var clientX = event.clientX ? event.clientX : event.touches[0].clientX;\n var clientY = event.clientY ? event.clientY : event.touches[0].clientY;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n\n if (event.touches) {\n // Prepare the ripple effect.\n _this.startTimerCommit = function () {\n _this.startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Deplay the execution of the ripple effect.\n\n\n _this.startTimer = setTimeout(function () {\n if (_this.startTimerCommit) {\n _this.startTimerCommit();\n\n _this.startTimerCommit = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n } else {\n _this.startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, _this.startCommit = function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n var ripples = _this.state.ripples; // Add a ripple to the ripples array.\n\n ripples = (0, _toConsumableArray2.default)(ripples).concat([_react.default.createElement(_Ripple.default, {\n key: _this.state.nextKey,\n classes: _this.props.classes,\n timeout: {\n exit: DURATION,\n enter: DURATION\n },\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n\n _this.setState({\n nextKey: _this.state.nextKey + 1,\n ripples: ripples\n }, cb);\n }, _this.stop = function (event, cb) {\n clearTimeout(_this.startTimer);\n var ripples = _this.state.ripples; // The touch interaction occures to quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && _this.startTimerCommit) {\n event.persist();\n\n _this.startTimerCommit();\n\n _this.startTimerCommit = null;\n _this.startTimer = setTimeout(function () {\n _this.stop(event, cb);\n }, 0);\n return;\n }\n\n _this.startTimerCommit = null;\n\n if (ripples && ripples.length) {\n _this.setState({\n ripples: ripples.slice(1)\n }, cb);\n }\n }, _temp));\n }\n\n (0, _createClass2.default)(TouchRipple, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.startTimer);\n } // Used to filter out mouse emulated events on mobile.\n\n }, {\n key: \"render\",\n value: function render() {\n var _props = this.props,\n center = _props.center,\n classes = _props.classes,\n className = _props.className,\n other = (0, _objectWithoutProperties2.default)(_props, [\"center\", \"classes\", \"className\"]);\n return _react.default.createElement(_TransitionGroup.default, (0, _extends2.default)({\n component: \"span\",\n enter: true,\n exit: true,\n className: (0, _classnames.default)(classes.root, className)\n }, other), this.state.ripples);\n }\n }]);\n return TouchRipple;\n}(_react.default.PureComponent);\n\nTouchRipple.propTypes = true ? {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: _propTypes.default.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css-api) below for more details.\n */\n classes: _propTypes.default.object.isRequired,\n\n /**\n * @ignore\n */\n className: _propTypes.default.string\n} : undefined;\nTouchRipple.defaultProps = {\n center: false\n};\n\nvar _default = (0, _withStyles.default)(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})(TouchRipple);\n\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9Ub3VjaFJpcHBsZS5qcz85ZDFhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSx1RUFBdUUsYUFBYTtBQUNwRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxvQkFBb0I7QUFDcEI7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTs7QUFFUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2RkFBNkY7O0FBRTdGO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPOzs7QUFHUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsVUFBVTs7O0FBR1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTLGdCQUFnQjtBQUN6QixPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBLHdDQUF3QztBQUN4Qzs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUwsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9Ub3VjaFJpcHBsZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZXhwb3J0cy5zdHlsZXMgPSBleHBvcnRzLkRFTEFZX1JJUFBMRSA9IHZvaWQgMDtcblxudmFyIF9leHRlbmRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9leHRlbmRzXCIpKTtcblxudmFyIF9vYmplY3RXaXRob3V0UHJvcGVydGllczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vb2JqZWN0V2l0aG91dFByb3BlcnRpZXNcIikpO1xuXG52YXIgX3RvQ29uc3VtYWJsZUFycmF5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi90b0NvbnN1bWFibGVBcnJheVwiKSk7XG5cbnZhciBfY2xhc3NDYWxsQ2hlY2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2NsYXNzQ2FsbENoZWNrXCIpKTtcblxudmFyIF9jcmVhdGVDbGFzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vY3JlYXRlQ2xhc3NcIikpO1xuXG52YXIgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm5cIikpO1xuXG52YXIgX2luaGVyaXRzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9pbmhlcml0c1wiKSk7XG5cbnZhciBfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9hc3NlcnRUaGlzSW5pdGlhbGl6ZWRcIikpO1xuXG52YXIgX3JlYWN0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInByb3AtdHlwZXNcIikpO1xuXG52YXIgX3JlYWN0RG9tID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcblxudmFyIF9UcmFuc2l0aW9uR3JvdXAgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdC10cmFuc2l0aW9uLWdyb3VwL1RyYW5zaXRpb25Hcm91cFwiKSk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImNsYXNzbmFtZXNcIikpO1xuXG52YXIgX3dpdGhTdHlsZXMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9zdHlsZXMvd2l0aFN0eWxlc1wiKSk7XG5cbnZhciBfUmlwcGxlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9SaXBwbGVcIikpO1xuXG52YXIgRFVSQVRJT04gPSA1NTA7XG52YXIgREVMQVlfUklQUExFID0gODA7XG5leHBvcnRzLkRFTEFZX1JJUFBMRSA9IERFTEFZX1JJUFBMRTtcblxudmFyIHN0eWxlcyA9IGZ1bmN0aW9uIHN0eWxlcyh0aGVtZSkge1xuICByZXR1cm4ge1xuICAgIHJvb3Q6IHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgIGJvcmRlclJhZGl1czogJ2luaGVyaXQnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHRvcDogMCxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgIHpJbmRleDogMFxuICAgIH0sXG4gICAgcmlwcGxlOiB7XG4gICAgICB3aWR0aDogNTAsXG4gICAgICBoZWlnaHQ6IDUwLFxuICAgICAgbGVmdDogMCxcbiAgICAgIHRvcDogMCxcbiAgICAgIG9wYWNpdHk6IDAsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJ1xuICAgIH0sXG4gICAgcmlwcGxlVmlzaWJsZToge1xuICAgICAgb3BhY2l0eTogMC4zLFxuICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMSknLFxuICAgICAgYW5pbWF0aW9uOiBcIm11aS1yaXBwbGUtZW50ZXIgXCIuY29uY2F0KERVUkFUSU9OLCBcIm1zIFwiKS5jb25jYXQodGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dClcbiAgICB9LFxuICAgIHJpcHBsZVB1bHNhdGU6IHtcbiAgICAgIGFuaW1hdGlvbkR1cmF0aW9uOiBcIlwiLmNvbmNhdCh0aGVtZS50cmFuc2l0aW9ucy5kdXJhdGlvbi5zaG9ydGVyLCBcIm1zXCIpXG4gICAgfSxcbiAgICBjaGlsZDoge1xuICAgICAgb3BhY2l0eTogMSxcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJ1xuICAgIH0sXG4gICAgY2hpbGRMZWF2aW5nOiB7XG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgYW5pbWF0aW9uOiBcIm11aS1yaXBwbGUtZXhpdCBcIi5jb25jYXQoRFVSQVRJT04sIFwibXMgXCIpLmNvbmNhdCh0aGVtZS50cmFuc2l0aW9ucy5lYXNpbmcuZWFzZUluT3V0KVxuICAgIH0sXG4gICAgY2hpbGRQdWxzYXRlOiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGxlZnQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgICBhbmltYXRpb246IFwibXVpLXJpcHBsZS1wdWxzYXRlIDI1MDBtcyBcIi5jb25jYXQodGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLmVhc2VJbk91dCwgXCIgMjAwbXMgaW5maW5pdGVcIilcbiAgICB9LFxuICAgICdAa2V5ZnJhbWVzIG11aS1yaXBwbGUtZW50ZXInOiB7XG4gICAgICAnMCUnOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJyxcbiAgICAgICAgb3BhY2l0eTogMC4xXG4gICAgICB9LFxuICAgICAgJzEwMCUnOiB7XG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEpJyxcbiAgICAgICAgb3BhY2l0eTogMC4zXG4gICAgICB9XG4gICAgfSxcbiAgICAnQGtleWZyYW1lcyBtdWktcmlwcGxlLWV4aXQnOiB7XG4gICAgICAnMCUnOiB7XG4gICAgICAgIG9wYWNpdHk6IDFcbiAgICAgIH0sXG4gICAgICAnMTAwJSc6IHtcbiAgICAgICAgb3BhY2l0eTogMFxuICAgICAgfVxuICAgIH0sXG4gICAgJ0BrZXlmcmFtZXMgbXVpLXJpcHBsZS1wdWxzYXRlJzoge1xuICAgICAgJzAlJzoge1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxKSdcbiAgICAgIH0sXG4gICAgICAnNTAlJzoge1xuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjkyKSdcbiAgICAgIH0sXG4gICAgICAnMTAwJSc6IHtcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoMSknXG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxuZXhwb3J0cy5zdHlsZXMgPSBzdHlsZXM7XG5cbnZhciBUb3VjaFJpcHBsZSA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoX1JlYWN0JFB1cmVDb21wb25lbnQpIHtcbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoVG91Y2hSaXBwbGUsIF9SZWFjdCRQdXJlQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUb3VjaFJpcHBsZSgpIHtcbiAgICB2YXIgX3JlZjtcblxuICAgIHZhciBfdGVtcCwgX3RoaXM7XG5cbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBUb3VjaFJpcHBsZSk7XG5cbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuKSwgX2tleSA9IDA7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuICgwLCBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIuZGVmYXVsdCkoX3RoaXMsIChfdGVtcCA9IF90aGlzID0gKDAsIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMi5kZWZhdWx0KSh0aGlzLCAoX3JlZiA9IFRvdWNoUmlwcGxlLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoVG91Y2hSaXBwbGUpKS5jYWxsLmFwcGx5KF9yZWYsIFt0aGlzXS5jb25jYXQoYXJncykpKSwgX3RoaXMuc3RhdGUgPSB7XG4gICAgICBuZXh0S2V5OiAwLFxuICAgICAgcmlwcGxlczogW11cbiAgICB9LCBfdGhpcy5pZ25vcmluZ01vdXNlRG93biA9IGZhbHNlLCBfdGhpcy5zdGFydFRpbWVyID0gbnVsbCwgX3RoaXMuc3RhcnRUaW1lckNvbW1pdCA9IG51bGwsIF90aGlzLnB1bHNhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpcy5zdGFydCh7fSwge1xuICAgICAgICBwdWxzYXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9LCBfdGhpcy5zdGFydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBldmVudCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gICAgICB2YXIgb3B0aW9ucyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gICAgICB2YXIgY2IgPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZDtcbiAgICAgIHZhciBfb3B0aW9ucyRwdWxzYXRlID0gb3B0aW9ucy5wdWxzYXRlLFxuICAgICAgICAgIHB1bHNhdGUgPSBfb3B0aW9ucyRwdWxzYXRlID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJHB1bHNhdGUsXG4gICAgICAgICAgX29wdGlvbnMkY2VudGVyID0gb3B0aW9ucy5jZW50ZXIsXG4gICAgICAgICAgY2VudGVyID0gX29wdGlvbnMkY2VudGVyID09PSB2b2lkIDAgPyBfdGhpcy5wcm9wcy5jZW50ZXIgfHwgb3B0aW9ucy5wdWxzYXRlIDogX29wdGlvbnMkY2VudGVyLFxuICAgICAgICAgIF9vcHRpb25zJGZha2VFbGVtZW50ID0gb3B0aW9ucy5mYWtlRWxlbWVudCxcbiAgICAgICAgICBmYWtlRWxlbWVudCA9IF9vcHRpb25zJGZha2VFbGVtZW50ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9vcHRpb25zJGZha2VFbGVtZW50O1xuXG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlZG93bicgJiYgX3RoaXMuaWdub3JpbmdNb3VzZURvd24pIHtcbiAgICAgICAgX3RoaXMuaWdub3JpbmdNb3VzZURvd24gPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoc3RhcnQnKSB7XG4gICAgICAgIF90aGlzLmlnbm9yaW5nTW91c2VEb3duID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGVsZW1lbnQgPSBmYWtlRWxlbWVudCA/IG51bGwgOiBfcmVhY3REb20uZGVmYXVsdC5maW5kRE9NTm9kZSgoMCwgX2Fzc2VydFRoaXNJbml0aWFsaXplZDIuZGVmYXVsdCkoX3RoaXMpKTtcbiAgICAgIHZhciByZWN0ID0gZWxlbWVudCA/IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgOiB7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIHRvcDogMFxuICAgICAgfTsgLy8gR2V0IHRoZSBzaXplIG9mIHRoZSByaXBwbGVcblxuICAgICAgdmFyIHJpcHBsZVg7XG4gICAgICB2YXIgcmlwcGxlWTtcbiAgICAgIHZhciByaXBwbGVTaXplO1xuXG4gICAgICBpZiAoY2VudGVyIHx8IGV2ZW50LmNsaWVudFggPT09IDAgJiYgZXZlbnQuY2xpZW50WSA9PT0gMCB8fCAhZXZlbnQuY2xpZW50WCAmJiAhZXZlbnQudG91Y2hlcykge1xuICAgICAgICByaXBwbGVYID0gTWF0aC5yb3VuZChyZWN0LndpZHRoIC8gMik7XG4gICAgICAgIHJpcHBsZVkgPSBNYXRoLnJvdW5kKHJlY3QuaGVpZ2h0IC8gMik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgY2xpZW50WCA9IGV2ZW50LmNsaWVudFggPyBldmVudC5jbGllbnRYIDogZXZlbnQudG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICB2YXIgY2xpZW50WSA9IGV2ZW50LmNsaWVudFkgPyBldmVudC5jbGllbnRZIDogZXZlbnQudG91Y2hlc1swXS5jbGllbnRZO1xuICAgICAgICByaXBwbGVYID0gTWF0aC5yb3VuZChjbGllbnRYIC0gcmVjdC5sZWZ0KTtcbiAgICAgICAgcmlwcGxlWSA9IE1hdGgucm91bmQoY2xpZW50WSAtIHJlY3QudG9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNlbnRlcikge1xuICAgICAgICByaXBwbGVTaXplID0gTWF0aC5zcXJ0KCgyICogTWF0aC5wb3cocmVjdC53aWR0aCwgMikgKyBNYXRoLnBvdyhyZWN0LmhlaWdodCwgMikpIC8gMyk7IC8vIEZvciBzb21lIHJlYXNvbiB0aGUgYW5pbWF0aW9uIGlzIGJyb2tlbiBvbiBNb2JpbGUgQ2hyb21lIGlmIHRoZSBzaXplIGlmIGV2ZW4uXG5cbiAgICAgICAgaWYgKHJpcHBsZVNpemUgJSAyID09PSAwKSB7XG4gICAgICAgICAgcmlwcGxlU2l6ZSArPSAxO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgc2l6ZVggPSBNYXRoLm1heChNYXRoLmFicygoZWxlbWVudCA/IGVsZW1lbnQuY2xpZW50V2lkdGggOiAwKSAtIHJpcHBsZVgpLCByaXBwbGVYKSAqIDIgKyAyO1xuICAgICAgICB2YXIgc2l6ZVkgPSBNYXRoLm1heChNYXRoLmFicygoZWxlbWVudCA/IGVsZW1lbnQuY2xpZW50SGVpZ2h0IDogMCkgLSByaXBwbGVZKSwgcmlwcGxlWSkgKiAyICsgMjtcbiAgICAgICAgcmlwcGxlU2l6ZSA9IE1hdGguc3FydChNYXRoLnBvdyhzaXplWCwgMikgKyBNYXRoLnBvdyhzaXplWSwgMikpO1xuICAgICAgfSAvLyBUb3VjaGUgZGV2aWNlc1xuXG5cbiAgICAgIGlmIChldmVudC50b3VjaGVzKSB7XG4gICAgICAgIC8vIFByZXBhcmUgdGhlIHJpcHBsZSBlZmZlY3QuXG4gICAgICAgIF90aGlzLnN0YXJ0VGltZXJDb21taXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgX3RoaXMuc3RhcnRDb21taXQoe1xuICAgICAgICAgICAgcHVsc2F0ZTogcHVsc2F0ZSxcbiAgICAgICAgICAgIHJpcHBsZVg6IHJpcHBsZVgsXG4gICAgICAgICAgICByaXBwbGVZOiByaXBwbGVZLFxuICAgICAgICAgICAgcmlwcGxlU2l6ZTogcmlwcGxlU2l6ZSxcbiAgICAgICAgICAgIGNiOiBjYlxuICAgICAgICAgIH0pO1xuICAgICAgICB9OyAvLyBEZXBsYXkgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgcmlwcGxlIGVmZmVjdC5cblxuXG4gICAgICAgIF90aGlzLnN0YXJ0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAoX3RoaXMuc3RhcnRUaW1lckNvbW1pdCkge1xuICAgICAgICAgICAgX3RoaXMuc3RhcnRUaW1lckNvbW1pdCgpO1xuXG4gICAgICAgICAgICBfdGhpcy5zdGFydFRpbWVyQ29tbWl0ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIERFTEFZX1JJUFBMRSk7IC8vIFdlIGhhdmUgdG8gbWFrZSBhIHRyYWRlb2ZmIHdpdGggdGhpcyB2YWx1ZS5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIF90aGlzLnN0YXJ0Q29tbWl0KHtcbiAgICAgICAgICBwdWxzYXRlOiBwdWxzYXRlLFxuICAgICAgICAgIHJpcHBsZVg6IHJpcHBsZVgsXG4gICAgICAgICAgcmlwcGxlWTogcmlwcGxlWSxcbiAgICAgICAgICByaXBwbGVTaXplOiByaXBwbGVTaXplLFxuICAgICAgICAgIGNiOiBjYlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCBfdGhpcy5zdGFydENvbW1pdCA9IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgIHZhciBwdWxzYXRlID0gcGFyYW1zLnB1bHNhdGUsXG4gICAgICAgICAgcmlwcGxlWCA9IHBhcmFtcy5yaXBwbGVYLFxuICAgICAgICAgIHJpcHBsZVkgPSBwYXJhbXMucmlwcGxlWSxcbiAgICAgICAgICByaXBwbGVTaXplID0gcGFyYW1zLnJpcHBsZVNpemUsXG4gICAgICAgICAgY2IgPSBwYXJhbXMuY2I7XG4gICAgICB2YXIgcmlwcGxlcyA9IF90aGlzLnN0YXRlLnJpcHBsZXM7IC8vIEFkZCBhIHJpcHBsZSB0byB0aGUgcmlwcGxlcyBhcnJheS5cblxuICAgICAgcmlwcGxlcyA9ICgwLCBfdG9Db25zdW1hYmxlQXJyYXkyLmRlZmF1bHQpKHJpcHBsZXMpLmNvbmNhdChbX3JlYWN0LmRlZmF1bHQuY3JlYXRlRWxlbWVudChfUmlwcGxlLmRlZmF1bHQsIHtcbiAgICAgICAga2V5OiBfdGhpcy5zdGF0ZS5uZXh0S2V5LFxuICAgICAgICBjbGFzc2VzOiBfdGhpcy5wcm9wcy5jbGFzc2VzLFxuICAgICAgICB0aW1lb3V0OiB7XG4gICAgICAgICAgZXhpdDogRFVSQVRJT04sXG4gICAgICAgICAgZW50ZXI6IERVUkFUSU9OXG4gICAgICAgIH0sXG4gICAgICAgIHB1bHNhdGU6IHB1bHNhdGUsXG4gICAgICAgIHJpcHBsZVg6IHJpcHBsZVgsXG4gICAgICAgIHJpcHBsZVk6IHJpcHBsZVksXG4gICAgICAgIHJpcHBsZVNpemU6IHJpcHBsZVNpemVcbiAgICAgIH0pXSk7XG5cbiAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgbmV4dEtleTogX3RoaXMuc3RhdGUubmV4dEtleSArIDEsXG4gICAgICAgIHJpcHBsZXM6IHJpcHBsZXNcbiAgICAgIH0sIGNiKTtcbiAgICB9LCBfdGhpcy5zdG9wID0gZnVuY3Rpb24gKGV2ZW50LCBjYikge1xuICAgICAgY2xlYXJUaW1lb3V0KF90aGlzLnN0YXJ0VGltZXIpO1xuICAgICAgdmFyIHJpcHBsZXMgPSBfdGhpcy5zdGF0ZS5yaXBwbGVzOyAvLyBUaGUgdG91Y2ggaW50ZXJhY3Rpb24gb2NjdXJlcyB0byBxdWlja2x5LlxuICAgICAgLy8gV2Ugc3RpbGwgd2FudCB0byBzaG93IHJpcHBsZSBlZmZlY3QuXG5cbiAgICAgIGlmIChldmVudC50eXBlID09PSAndG91Y2hlbmQnICYmIF90aGlzLnN0YXJ0VGltZXJDb21taXQpIHtcbiAgICAgICAgZXZlbnQucGVyc2lzdCgpO1xuXG4gICAgICAgIF90aGlzLnN0YXJ0VGltZXJDb21taXQoKTtcblxuICAgICAgICBfdGhpcy5zdGFydFRpbWVyQ29tbWl0ID0gbnVsbDtcbiAgICAgICAgX3RoaXMuc3RhcnRUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIF90aGlzLnN0b3AoZXZlbnQsIGNiKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgX3RoaXMuc3RhcnRUaW1lckNvbW1pdCA9IG51bGw7XG5cbiAgICAgIGlmIChyaXBwbGVzICYmIHJpcHBsZXMubGVuZ3RoKSB7XG4gICAgICAgIF90aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICByaXBwbGVzOiByaXBwbGVzLnNsaWNlKDEpXG4gICAgICAgIH0sIGNiKTtcbiAgICAgIH1cbiAgICB9LCBfdGVtcCkpO1xuICB9XG5cbiAgKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoVG91Y2hSaXBwbGUsIFt7XG4gICAga2V5OiBcImNvbXBvbmVudFdpbGxVbm1vdW50XCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc3RhcnRUaW1lcik7XG4gICAgfSAvLyBVc2VkIHRvIGZpbHRlciBvdXQgbW91c2UgZW11bGF0ZWQgZXZlbnRzIG9uIG1vYmlsZS5cblxuICB9LCB7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBjZW50ZXIgPSBfcHJvcHMuY2VudGVyLFxuICAgICAgICAgIGNsYXNzZXMgPSBfcHJvcHMuY2xhc3NlcyxcbiAgICAgICAgICBjbGFzc05hbWUgPSBfcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIG90aGVyID0gKDAsIF9vYmplY3RXaXRob3V0UHJvcGVydGllczIuZGVmYXVsdCkoX3Byb3BzLCBbXCJjZW50ZXJcIiwgXCJjbGFzc2VzXCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICAgIHJldHVybiBfcmVhY3QuZGVmYXVsdC5jcmVhdGVFbGVtZW50KF9UcmFuc2l0aW9uR3JvdXAuZGVmYXVsdCwgKDAsIF9leHRlbmRzMi5kZWZhdWx0KSh7XG4gICAgICAgIGNvbXBvbmVudDogXCJzcGFuXCIsXG4gICAgICAgIGVudGVyOiB0cnVlLFxuICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICBjbGFzc05hbWU6ICgwLCBfY2xhc3NuYW1lcy5kZWZhdWx0KShjbGFzc2VzLnJvb3QsIGNsYXNzTmFtZSlcbiAgICAgIH0sIG90aGVyKSwgdGhpcy5zdGF0ZS5yaXBwbGVzKTtcbiAgICB9XG4gIH1dKTtcbiAgcmV0dXJuIFRvdWNoUmlwcGxlO1xufShfcmVhY3QuZGVmYXVsdC5QdXJlQ29tcG9uZW50KTtcblxuVG91Y2hSaXBwbGUucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8ge1xuICAvKipcbiAgICogSWYgYHRydWVgLCB0aGUgcmlwcGxlIHN0YXJ0cyBhdCB0aGUgY2VudGVyIG9mIHRoZSBjb21wb25lbnRcbiAgICogcmF0aGVyIHRoYW4gYXQgdGhlIHBvaW50IG9mIGludGVyYWN0aW9uLlxuICAgKi9cbiAgY2VudGVyOiBfcHJvcFR5cGVzLmRlZmF1bHQuYm9vbCxcblxuICAvKipcbiAgICogT3ZlcnJpZGUgb3IgZXh0ZW5kIHRoZSBzdHlsZXMgYXBwbGllZCB0byB0aGUgY29tcG9uZW50LlxuICAgKiBTZWUgW0NTUyBBUEldKCNjc3MtYXBpKSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgKi9cbiAgY2xhc3NlczogX3Byb3BUeXBlcy5kZWZhdWx0Lm9iamVjdC5pc1JlcXVpcmVkLFxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjbGFzc05hbWU6IF9wcm9wVHlwZXMuZGVmYXVsdC5zdHJpbmdcbn0gOiB7fTtcblRvdWNoUmlwcGxlLmRlZmF1bHRQcm9wcyA9IHtcbiAgY2VudGVyOiBmYWxzZVxufTtcblxudmFyIF9kZWZhdWx0ID0gKDAsIF93aXRoU3R5bGVzLmRlZmF1bHQpKHN0eWxlcywge1xuICBmbGlwOiBmYWxzZSxcbiAgbmFtZTogJ011aVRvdWNoUmlwcGxlJ1xufSkoVG91Y2hSaXBwbGUpO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/ButtonBase/TouchRipple.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/ButtonBase/createRippleHandler.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@material-ui/core/ButtonBase/createRippleHandler.js ***!
+ \**************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction createRippleHandler(instance, eventName, action, cb) {\n return function handleEvent(event) {\n if (cb) {\n cb.call(instance, event);\n }\n\n var ignore = false;\n\n if (event.defaultPrevented) {\n ignore = true;\n }\n\n if (instance.props.disableTouchRipple && eventName !== 'Blur') {\n ignore = true;\n }\n\n if (!ignore && instance.ripple) {\n instance.ripple[action](event);\n }\n\n if (typeof instance.props[\"on\".concat(eventName)] === 'function') {\n instance.props[\"on\".concat(eventName)](event);\n }\n\n return true;\n };\n}\n\nvar _default = createRippleHandler;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9jcmVhdGVSaXBwbGVIYW5kbGVyLmpzPzg1Y2UiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7QUFDRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwtdWkvY29yZS9CdXR0b25CYXNlL2NyZWF0ZVJpcHBsZUhhbmRsZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxuZnVuY3Rpb24gY3JlYXRlUmlwcGxlSGFuZGxlcihpbnN0YW5jZSwgZXZlbnROYW1lLCBhY3Rpb24sIGNiKSB7XG4gIHJldHVybiBmdW5jdGlvbiBoYW5kbGVFdmVudChldmVudCkge1xuICAgIGlmIChjYikge1xuICAgICAgY2IuY2FsbChpbnN0YW5jZSwgZXZlbnQpO1xuICAgIH1cblxuICAgIHZhciBpZ25vcmUgPSBmYWxzZTtcblxuICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICBpZ25vcmUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5wcm9wcy5kaXNhYmxlVG91Y2hSaXBwbGUgJiYgZXZlbnROYW1lICE9PSAnQmx1cicpIHtcbiAgICAgIGlnbm9yZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpZ25vcmUgJiYgaW5zdGFuY2UucmlwcGxlKSB7XG4gICAgICBpbnN0YW5jZS5yaXBwbGVbYWN0aW9uXShldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5wcm9wc1tcIm9uXCIuY29uY2F0KGV2ZW50TmFtZSldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbnN0YW5jZS5wcm9wc1tcIm9uXCIuY29uY2F0KGV2ZW50TmFtZSldKGV2ZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfTtcbn1cblxudmFyIF9kZWZhdWx0ID0gY3JlYXRlUmlwcGxlSGFuZGxlcjtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/ButtonBase/createRippleHandler.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/ButtonBase/focusVisible.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@material-ui/core/ButtonBase/focusVisible.js ***!
+ \*******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.detectFocusVisible = detectFocusVisible;\nexports.listenForFocusKeys = listenForFocusKeys;\n\nvar _keycode = _interopRequireDefault(__webpack_require__(/*! keycode */ \"./node_modules/keycode/index.js\"));\n\nvar _warning = _interopRequireDefault(__webpack_require__(/*! warning */ \"./node_modules/@material-ui/core/node_modules/warning/warning.js\"));\n\nvar _contains = _interopRequireDefault(__webpack_require__(/*! dom-helpers/query/contains */ \"./node_modules/dom-helpers/query/contains.js\"));\n\nvar _ownerDocument = _interopRequireDefault(__webpack_require__(/*! dom-helpers/ownerDocument */ \"./node_modules/dom-helpers/ownerDocument.js\"));\n\n// weak\nvar internal = {\n focusKeyPressed: false,\n keyUpEventTimeout: -1\n};\n\nfunction detectFocusVisible(instance, element, callback) {\n var attempt = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n true ? (0, _warning.default)(instance.focusVisibleCheckTime, 'Material-UI: missing instance.focusVisibleCheckTime.') : undefined;\n true ? (0, _warning.default)(instance.focusVisibleMaxCheckTimes, 'Material-UI: missing instance.focusVisibleMaxCheckTimes.') : undefined;\n instance.focusVisibleTimeout = setTimeout(function () {\n var doc = (0, _ownerDocument.default)(element);\n\n if (internal.focusKeyPressed && (doc.activeElement === element || (0, _contains.default)(element, doc.activeElement))) {\n callback();\n } else if (attempt < instance.focusVisibleMaxCheckTimes) {\n detectFocusVisible(instance, element, callback, attempt + 1);\n }\n }, instance.focusVisibleCheckTime);\n}\n\nvar FOCUS_KEYS = ['tab', 'enter', 'space', 'esc', 'up', 'down', 'left', 'right'];\n\nfunction isFocusKey(event) {\n return FOCUS_KEYS.indexOf((0, _keycode.default)(event)) > -1;\n}\n\nvar handleKeyUpEvent = function handleKeyUpEvent(event) {\n if (isFocusKey(event)) {\n internal.focusKeyPressed = true; // Let's consider that the user is using a keyboard during a window frame of 1s.\n\n clearTimeout(internal.keyUpEventTimeout);\n internal.keyUpEventTimeout = setTimeout(function () {\n internal.focusKeyPressed = false;\n }, 1e3);\n }\n};\n\nfunction listenForFocusKeys(win) {\n // The event listener will only be added once per window.\n // Duplicate event listeners will be ignored by addEventListener.\n // Also, this logic is client side only, we don't need a teardown.\n win.addEventListener('keyup', handleKeyUpEvent);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9mb2N1c1Zpc2libGUuanM/Y2NhZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0NBQW9DOztBQUVwQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9mb2N1c1Zpc2libGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGV0ZWN0Rm9jdXNWaXNpYmxlID0gZGV0ZWN0Rm9jdXNWaXNpYmxlO1xuZXhwb3J0cy5saXN0ZW5Gb3JGb2N1c0tleXMgPSBsaXN0ZW5Gb3JGb2N1c0tleXM7XG5cbnZhciBfa2V5Y29kZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImtleWNvZGVcIikpO1xuXG52YXIgX3dhcm5pbmcgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJ3YXJuaW5nXCIpKTtcblxudmFyIF9jb250YWlucyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcImRvbS1oZWxwZXJzL3F1ZXJ5L2NvbnRhaW5zXCIpKTtcblxudmFyIF9vd25lckRvY3VtZW50ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiZG9tLWhlbHBlcnMvb3duZXJEb2N1bWVudFwiKSk7XG5cbi8vICB3ZWFrXG52YXIgaW50ZXJuYWwgPSB7XG4gIGZvY3VzS2V5UHJlc3NlZDogZmFsc2UsXG4gIGtleVVwRXZlbnRUaW1lb3V0OiAtMVxufTtcblxuZnVuY3Rpb24gZGV0ZWN0Rm9jdXNWaXNpYmxlKGluc3RhbmNlLCBlbGVtZW50LCBjYWxsYmFjaykge1xuICB2YXIgYXR0ZW1wdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogMTtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gKDAsIF93YXJuaW5nLmRlZmF1bHQpKGluc3RhbmNlLmZvY3VzVmlzaWJsZUNoZWNrVGltZSwgJ01hdGVyaWFsLVVJOiBtaXNzaW5nIGluc3RhbmNlLmZvY3VzVmlzaWJsZUNoZWNrVGltZS4nKSA6IHZvaWQgMDtcbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gKDAsIF93YXJuaW5nLmRlZmF1bHQpKGluc3RhbmNlLmZvY3VzVmlzaWJsZU1heENoZWNrVGltZXMsICdNYXRlcmlhbC1VSTogbWlzc2luZyBpbnN0YW5jZS5mb2N1c1Zpc2libGVNYXhDaGVja1RpbWVzLicpIDogdm9pZCAwO1xuICBpbnN0YW5jZS5mb2N1c1Zpc2libGVUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGRvYyA9ICgwLCBfb3duZXJEb2N1bWVudC5kZWZhdWx0KShlbGVtZW50KTtcblxuICAgIGlmIChpbnRlcm5hbC5mb2N1c0tleVByZXNzZWQgJiYgKGRvYy5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50IHx8ICgwLCBfY29udGFpbnMuZGVmYXVsdCkoZWxlbWVudCwgZG9jLmFjdGl2ZUVsZW1lbnQpKSkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9IGVsc2UgaWYgKGF0dGVtcHQgPCBpbnN0YW5jZS5mb2N1c1Zpc2libGVNYXhDaGVja1RpbWVzKSB7XG4gICAgICBkZXRlY3RGb2N1c1Zpc2libGUoaW5zdGFuY2UsIGVsZW1lbnQsIGNhbGxiYWNrLCBhdHRlbXB0ICsgMSk7XG4gICAgfVxuICB9LCBpbnN0YW5jZS5mb2N1c1Zpc2libGVDaGVja1RpbWUpO1xufVxuXG52YXIgRk9DVVNfS0VZUyA9IFsndGFiJywgJ2VudGVyJywgJ3NwYWNlJywgJ2VzYycsICd1cCcsICdkb3duJywgJ2xlZnQnLCAncmlnaHQnXTtcblxuZnVuY3Rpb24gaXNGb2N1c0tleShldmVudCkge1xuICByZXR1cm4gRk9DVVNfS0VZUy5pbmRleE9mKCgwLCBfa2V5Y29kZS5kZWZhdWx0KShldmVudCkpID4gLTE7XG59XG5cbnZhciBoYW5kbGVLZXlVcEV2ZW50ID0gZnVuY3Rpb24gaGFuZGxlS2V5VXBFdmVudChldmVudCkge1xuICBpZiAoaXNGb2N1c0tleShldmVudCkpIHtcbiAgICBpbnRlcm5hbC5mb2N1c0tleVByZXNzZWQgPSB0cnVlOyAvLyBMZXQncyBjb25zaWRlciB0aGF0IHRoZSB1c2VyIGlzIHVzaW5nIGEga2V5Ym9hcmQgZHVyaW5nIGEgd2luZG93IGZyYW1lIG9mIDFzLlxuXG4gICAgY2xlYXJUaW1lb3V0KGludGVybmFsLmtleVVwRXZlbnRUaW1lb3V0KTtcbiAgICBpbnRlcm5hbC5rZXlVcEV2ZW50VGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgaW50ZXJuYWwuZm9jdXNLZXlQcmVzc2VkID0gZmFsc2U7XG4gICAgfSwgMWUzKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gbGlzdGVuRm9yRm9jdXNLZXlzKHdpbikge1xuICAvLyBUaGUgZXZlbnQgbGlzdGVuZXIgd2lsbCBvbmx5IGJlIGFkZGVkIG9uY2UgcGVyIHdpbmRvdy5cbiAgLy8gRHVwbGljYXRlIGV2ZW50IGxpc3RlbmVycyB3aWxsIGJlIGlnbm9yZWQgYnkgYWRkRXZlbnRMaXN0ZW5lci5cbiAgLy8gQWxzbywgdGhpcyBsb2dpYyBpcyBjbGllbnQgc2lkZSBvbmx5LCB3ZSBkb24ndCBuZWVkIGEgdGVhcmRvd24uXG4gIHdpbi5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUtleVVwRXZlbnQpO1xufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/ButtonBase/focusVisible.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/core/ButtonBase/index.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@material-ui/core/ButtonBase/index.js ***!
+ \************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _ButtonBase.default;\n }\n});\n\nvar _ButtonBase = _interopRequireDefault(__webpack_require__(/*! ./ButtonBase */ \"./node_modules/@material-ui/core/ButtonBase/ButtonBase.js\"));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9pbmRleC5qcz81MzQ4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uQmFzZS9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2J1aWx0aW4vaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgIHJldHVybiBfQnV0dG9uQmFzZS5kZWZhdWx0O1xuICB9XG59KTtcblxudmFyIF9CdXR0b25CYXNlID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9CdXR0b25CYXNlXCIpKTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/core/ButtonBase/index.js\n");
+
+/***/ }),
+
/***/ "./node_modules/@material-ui/core/Fade/Fade.js":
/*!*****************************************************!*\
!*** ./node_modules/@material-ui/core/Fade/Fade.js ***!
@@ -1257,6 +1353,30 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
/***/ }),
+/***/ "./node_modules/@material-ui/icons/Movie.js":
+/*!**************************************************!*\
+ !*** ./node_modules/@material-ui/icons/Movie.js ***!
+ \**************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ \"./node_modules/@material-ui/icons/utils/createSvgIcon.js\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"g\", null, _react.default.createElement(\"path\", {\n d: \"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z\"\n})), 'Movie');\n\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2ljb25zL01vdmllLmpzPzk1MTciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7QUFDRDs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWF0ZXJpYWwtdWkvaWNvbnMvTW92aWUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9idWlsdGluL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcblxudmFyIF9yZWFjdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlYWN0XCIpKTtcblxudmFyIF9jcmVhdGVTdmdJY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi91dGlscy9jcmVhdGVTdmdJY29uXCIpKTtcblxudmFyIF9kZWZhdWx0ID0gKDAsIF9jcmVhdGVTdmdJY29uLmRlZmF1bHQpKF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJnXCIsIG51bGwsIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJwYXRoXCIsIHtcbiAgZDogXCJNMTggNGwyIDRoLTNsLTItNGgtMmwyIDRoLTNsLTItNEg4bDIgNEg3TDUgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY0aC00elwiXG59KSksICdNb3ZpZScpO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBfZGVmYXVsdDsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/icons/Movie.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/@material-ui/icons/utils/createSvgIcon.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/@material-ui/icons/utils/createSvgIcon.js ***!
+ \****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/builtin/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/builtin/interopRequireDefault.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\n\nvar _pure = _interopRequireDefault(__webpack_require__(/*! recompose/pure */ \"./node_modules/recompose/pure.js\"));\n\nvar _SvgIcon = _interopRequireDefault(__webpack_require__(/*! @material-ui/core/SvgIcon */ \"./node_modules/@material-ui/core/SvgIcon/index.js\"));\n\nfunction createSvgIcon(path, displayName) {\n var Icon = function Icon(props) {\n return _react.default.createElement(_SvgIcon.default, props, path);\n };\n\n Icon.displayName = displayName;\n Icon = (0, _pure.default)(Icon);\n Icon.muiName = 'SvgIcon';\n return Icon;\n}\n\n;\nvar _default = createSvgIcon;\nexports.default = _default;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1hdGVyaWFsLXVpL2ljb25zL3V0aWxzL2NyZWF0ZVN2Z0ljb24uanM/ZjNmOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC11aS9pY29ucy91dGlscy9jcmVhdGVTdmdJY29uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvYnVpbHRpbi9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7XG5cbnZhciBfcmVhY3QgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cbnZhciBfcHVyZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInJlY29tcG9zZS9wdXJlXCIpKTtcblxudmFyIF9TdmdJY29uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQG1hdGVyaWFsLXVpL2NvcmUvU3ZnSWNvblwiKSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVN2Z0ljb24ocGF0aCwgZGlzcGxheU5hbWUpIHtcbiAgdmFyIEljb24gPSBmdW5jdGlvbiBJY29uKHByb3BzKSB7XG4gICAgcmV0dXJuIF9yZWFjdC5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoX1N2Z0ljb24uZGVmYXVsdCwgcHJvcHMsIHBhdGgpO1xuICB9O1xuXG4gIEljb24uZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZTtcbiAgSWNvbiA9ICgwLCBfcHVyZS5kZWZhdWx0KShJY29uKTtcbiAgSWNvbi5tdWlOYW1lID0gJ1N2Z0ljb24nO1xuICByZXR1cm4gSWNvbjtcbn1cblxuO1xudmFyIF9kZWZhdWx0ID0gY3JlYXRlU3ZnSWNvbjtcbmV4cG9ydHMuZGVmYXVsdCA9IF9kZWZhdWx0OyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@material-ui/icons/utils/createSvgIcon.js\n");
+
+/***/ }),
+
/***/ "./node_modules/babel-runtime/core-js/object/create.js":
/*!*************************************************************!*\
!*** ./node_modules/babel-runtime/core-js/object/create.js ***!
@@ -3224,6 +3344,30 @@ eval("\n\nexports.__esModule = true;\nexports.EXITING = exports.ENTERED = export
/***/ }),
+/***/ "./node_modules/react-transition-group/TransitionGroup.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/react-transition-group/TransitionGroup.js ***!
+ \****************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactLifecyclesCompat = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\n\nvar _ChildMapping = __webpack_require__(/*! ./utils/ChildMapping */ \"./node_modules/react-transition-group/utils/ChildMapping.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\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 values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar propTypes = {\n /**\n * `
` renders a `` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes2.default.any,\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n */\n children: _propTypes2.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes2.default.bool,\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes2.default.bool,\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes2.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes2.default.func\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n\n /**\n * The `` component manages a set of `` components\n * in a list. Like with the `` component, ``, is a\n * state machine for managing the mounting and unmounting of components over\n * time.\n *\n * Consider the example below using the `Fade` CSS transition from before.\n * As items are removed or added to the TodoList the `in` prop is toggled\n * automatically by the ``. You can use _any_ ``\n * component in a ``, not just css.\n *\n * ## Example\n *\n * \n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual ``\n * components. This means you can mix and match animations across different\n * list items.\n */\n};\nvar TransitionGroup = function (_React$Component) {\n _inherits(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n _classCallCheck(this, TransitionGroup);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n var handleExited = _this.handleExited.bind(_this);\n\n // Initial children should all be entering, dependent on appear\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n TransitionGroup.prototype.getChildContext = function getChildContext() {\n return {\n transitionGroup: { isMounting: !this.appeared }\n };\n };\n\n TransitionGroup.prototype.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n TransitionGroup.prototype.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return { children: children };\n });\n };\n\n TransitionGroup.prototype.render = function render() {\n var _props = this.props,\n Component = _props.component,\n childFactory = _props.childFactory,\n props = _objectWithoutProperties(_props, ['component', 'childFactory']);\n\n var children = values(this.state.children).map(childFactory);\n\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n return _react2.default.createElement(\n Component,\n props,\n children\n );\n };\n\n return TransitionGroup;\n}(_react2.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes2.default.object.isRequired\n};\n\n\nTransitionGroup.propTypes = true ? propTypes : undefined;\nTransitionGroup.defaultProps = defaultProps;\n\nexports.default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9UcmFuc2l0aW9uR3JvdXAuanM/NTI3NSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxtREFBbUQsZ0JBQWdCLHNCQUFzQixPQUFPLDJCQUEyQiwwQkFBMEIseURBQXlELDJCQUEyQixFQUFFLEVBQUUsRUFBRSxlQUFlOztBQUU5UDs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQSxzQ0FBc0MsdUNBQXVDLGdCQUFnQjs7QUFFN0YsOENBQThDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxvQkFBb0IsRUFBRSxlQUFlOztBQUUxTixpREFBaUQsMENBQTBDLDBEQUEwRCxFQUFFOztBQUV2SixpREFBaUQsYUFBYSx1RkFBdUYsRUFBRSx1RkFBdUY7O0FBRTlPLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLEtBQUs7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUZBQXlGLGNBQWMsVUFBVSxvQkFBb0IsaUJBQWlCO0FBQ3RKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdDQUFnQzs7QUFFaEM7QUFDQSxjQUFjO0FBQ2QsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC9UcmFuc2l0aW9uR3JvdXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcHJvcFR5cGVzID0gcmVxdWlyZSgncHJvcC10eXBlcycpO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3RMaWZlY3ljbGVzQ29tcGF0ID0gcmVxdWlyZSgncmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQnKTtcblxudmFyIF9DaGlsZE1hcHBpbmcgPSByZXF1aXJlKCcuL3V0aWxzL0NoaWxkTWFwcGluZycpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmZ1bmN0aW9uIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHNlbGYsIGNhbGwpIHsgaWYgKCFzZWxmKSB7IHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTsgfSByZXR1cm4gY2FsbCAmJiAodHlwZW9mIGNhbGwgPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIGNhbGwgPT09IFwiZnVuY3Rpb25cIikgPyBjYWxsIDogc2VsZjsgfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSBcImZ1bmN0aW9uXCIgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCBcIiArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIHZhbHVlcyA9IE9iamVjdC52YWx1ZXMgfHwgZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5tYXAoZnVuY3Rpb24gKGspIHtcbiAgICByZXR1cm4gb2JqW2tdO1xuICB9KTtcbn07XG5cbnZhciBwcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiBgPFRyYW5zaXRpb25Hcm91cD5gIHJlbmRlcnMgYSBgPGRpdj5gIGJ5IGRlZmF1bHQuIFlvdSBjYW4gY2hhbmdlIHRoaXNcbiAgICogYmVoYXZpb3IgYnkgcHJvdmlkaW5nIGEgYGNvbXBvbmVudGAgcHJvcC5cbiAgICogSWYgeW91IHVzZSBSZWFjdCB2MTYrIGFuZCB3b3VsZCBsaWtlIHRvIGF2b2lkIGEgd3JhcHBpbmcgYDxkaXY+YCBlbGVtZW50XG4gICAqIHlvdSBjYW4gcGFzcyBpbiBgY29tcG9uZW50PXtudWxsfWAuIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSB3cmFwcGluZyBkaXZcbiAgICogYm9ya3MgeW91ciBjc3Mgc3R5bGVzLlxuICAgKi9cbiAgY29tcG9uZW50OiBfcHJvcFR5cGVzMi5kZWZhdWx0LmFueSxcbiAgLyoqXG4gICAqIEEgc2V0IG9mIGA8VHJhbnNpdGlvbj5gIGNvbXBvbmVudHMsIHRoYXQgYXJlIHRvZ2dsZWQgYGluYCBhbmQgb3V0IGFzIHRoZXlcbiAgICogbGVhdmUuIHRoZSBgPFRyYW5zaXRpb25Hcm91cD5gIHdpbGwgaW5qZWN0IHNwZWNpZmljIHRyYW5zaXRpb24gcHJvcHMsIHNvXG4gICAqIHJlbWVtYmVyIHRvIHNwcmVhZCB0aGVtIHRocm91Z2ggaWYgeW91IGFyZSB3cmFwcGluZyB0aGUgYDxUcmFuc2l0aW9uPmAgYXNcbiAgICogd2l0aCBvdXIgYDxGYWRlPmAgZXhhbXBsZS5cbiAgICovXG4gIGNoaWxkcmVuOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm5vZGUsXG5cbiAgLyoqXG4gICAqIEEgY29udmVuaWVuY2UgcHJvcCB0aGF0IGVuYWJsZXMgb3IgZGlzYWJsZXMgYXBwZWFyIGFuaW1hdGlvbnNcbiAgICogZm9yIGFsbCBjaGlsZHJlbi4gTm90ZSB0aGF0IHNwZWNpZnlpbmcgdGhpcyB3aWxsIG92ZXJyaWRlIGFueSBkZWZhdWx0cyBzZXRcbiAgICogb24gaW5kaXZpZHVhbCBjaGlsZHJlbiBUcmFuc2l0aW9ucy5cbiAgICovXG4gIGFwcGVhcjogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICAvKipcbiAgICogQSBjb252ZW5pZW5jZSBwcm9wIHRoYXQgZW5hYmxlcyBvciBkaXNhYmxlcyBlbnRlciBhbmltYXRpb25zXG4gICAqIGZvciBhbGwgY2hpbGRyZW4uIE5vdGUgdGhhdCBzcGVjaWZ5aW5nIHRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZGVmYXVsdHMgc2V0XG4gICAqIG9uIGluZGl2aWR1YWwgY2hpbGRyZW4gVHJhbnNpdGlvbnMuXG4gICAqL1xuICBlbnRlcjogX3Byb3BUeXBlczIuZGVmYXVsdC5ib29sLFxuICAvKipcbiAgICogQSBjb252ZW5pZW5jZSBwcm9wIHRoYXQgZW5hYmxlcyBvciBkaXNhYmxlcyBleGl0IGFuaW1hdGlvbnNcbiAgICogZm9yIGFsbCBjaGlsZHJlbi4gTm90ZSB0aGF0IHNwZWNpZnlpbmcgdGhpcyB3aWxsIG92ZXJyaWRlIGFueSBkZWZhdWx0cyBzZXRcbiAgICogb24gaW5kaXZpZHVhbCBjaGlsZHJlbiBUcmFuc2l0aW9ucy5cbiAgICovXG4gIGV4aXQ6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYm9vbCxcblxuICAvKipcbiAgICogWW91IG1heSBuZWVkIHRvIGFwcGx5IHJlYWN0aXZlIHVwZGF0ZXMgdG8gYSBjaGlsZCBhcyBpdCBpcyBleGl0aW5nLlxuICAgKiBUaGlzIGlzIGdlbmVyYWxseSBkb25lIGJ5IHVzaW5nIGBjbG9uZUVsZW1lbnRgIGhvd2V2ZXIgaW4gdGhlIGNhc2Ugb2YgYW4gZXhpdGluZ1xuICAgKiBjaGlsZCB0aGUgZWxlbWVudCBoYXMgYWxyZWFkeSBiZWVuIHJlbW92ZWQgYW5kIG5vdCBhY2Nlc3NpYmxlIHRvIHRoZSBjb25zdW1lci5cbiAgICpcbiAgICogSWYgeW91IGRvIG5lZWQgdG8gdXBkYXRlIGEgY2hpbGQgYXMgaXQgbGVhdmVzIHlvdSBjYW4gcHJvdmlkZSBhIGBjaGlsZEZhY3RvcnlgXG4gICAqIHRvIHdyYXAgZXZlcnkgY2hpbGQsIGV2ZW4gdGhlIG9uZXMgdGhhdCBhcmUgbGVhdmluZy5cbiAgICpcbiAgICogQHR5cGUgRnVuY3Rpb24oY2hpbGQ6IFJlYWN0RWxlbWVudCkgLT4gUmVhY3RFbGVtZW50XG4gICAqL1xuICBjaGlsZEZhY3Rvcnk6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuY1xufTtcblxudmFyIGRlZmF1bHRQcm9wcyA9IHtcbiAgY29tcG9uZW50OiAnZGl2JyxcbiAgY2hpbGRGYWN0b3J5OiBmdW5jdGlvbiBjaGlsZEZhY3RvcnkoY2hpbGQpIHtcbiAgICByZXR1cm4gY2hpbGQ7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGA8VHJhbnNpdGlvbkdyb3VwPmAgY29tcG9uZW50IG1hbmFnZXMgYSBzZXQgb2YgYDxUcmFuc2l0aW9uPmAgY29tcG9uZW50c1xuICAgKiBpbiBhIGxpc3QuIExpa2Ugd2l0aCB0aGUgYDxUcmFuc2l0aW9uPmAgY29tcG9uZW50LCBgPFRyYW5zaXRpb25Hcm91cD5gLCBpcyBhXG4gICAqIHN0YXRlIG1hY2hpbmUgZm9yIG1hbmFnaW5nIHRoZSBtb3VudGluZyBhbmQgdW5tb3VudGluZyBvZiBjb21wb25lbnRzIG92ZXJcbiAgICogdGltZS5cbiAgICpcbiAgICogQ29uc2lkZXIgdGhlIGV4YW1wbGUgYmVsb3cgdXNpbmcgdGhlIGBGYWRlYCBDU1MgdHJhbnNpdGlvbiBmcm9tIGJlZm9yZS5cbiAgICogQXMgaXRlbXMgYXJlIHJlbW92ZWQgb3IgYWRkZWQgdG8gdGhlIFRvZG9MaXN0IHRoZSBgaW5gIHByb3AgaXMgdG9nZ2xlZFxuICAgKiBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBgPFRyYW5zaXRpb25Hcm91cD5gLiBZb3UgY2FuIHVzZSBfYW55XyBgPFRyYW5zaXRpb24+YFxuICAgKiBjb21wb25lbnQgaW4gYSBgPFRyYW5zaXRpb25Hcm91cD5gLCBub3QganVzdCBjc3MuXG4gICAqXG4gICAqICMjIEV4YW1wbGVcbiAgICpcbiAgICogPGlmcmFtZSBzcmM9XCJodHRwczovL2NvZGVzYW5kYm94LmlvL2VtYmVkLzAwcnF5bzI2a24/Zm9udHNpemU9MTRcIiBzdHlsZT1cIndpZHRoOjEwMCU7IGhlaWdodDo1MDBweDsgYm9yZGVyOjA7IGJvcmRlci1yYWRpdXM6IDRweDsgb3ZlcmZsb3c6aGlkZGVuO1wiIHNhbmRib3g9XCJhbGxvdy1tb2RhbHMgYWxsb3ctZm9ybXMgYWxsb3ctcG9wdXBzIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW5cIj48L2lmcmFtZT5cbiAgICpcbiAgICogTm90ZSB0aGF0IGA8VHJhbnNpdGlvbkdyb3VwPmAgIGRvZXMgbm90IGRlZmluZSBhbnkgYW5pbWF0aW9uIGJlaGF2aW9yIVxuICAgKiBFeGFjdGx5IF9ob3dfIGEgbGlzdCBpdGVtIGFuaW1hdGVzIGlzIHVwIHRvIHRoZSBpbmRpdmlkdWFsIGA8VHJhbnNpdGlvbj5gXG4gICAqIGNvbXBvbmVudHMuIFRoaXMgbWVhbnMgeW91IGNhbiBtaXggYW5kIG1hdGNoIGFuaW1hdGlvbnMgYWNyb3NzIGRpZmZlcmVudFxuICAgKiBsaXN0IGl0ZW1zLlxuICAgKi9cbn07XG52YXIgVHJhbnNpdGlvbkdyb3VwID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRyYW5zaXRpb25Hcm91cCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVHJhbnNpdGlvbkdyb3VwKHByb3BzLCBjb250ZXh0KSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRyYW5zaXRpb25Hcm91cCk7XG5cbiAgICB2YXIgX3RoaXMgPSBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfUmVhY3QkQ29tcG9uZW50LmNhbGwodGhpcywgcHJvcHMsIGNvbnRleHQpKTtcblxuICAgIHZhciBoYW5kbGVFeGl0ZWQgPSBfdGhpcy5oYW5kbGVFeGl0ZWQuYmluZChfdGhpcyk7XG5cbiAgICAvLyBJbml0aWFsIGNoaWxkcmVuIHNob3VsZCBhbGwgYmUgZW50ZXJpbmcsIGRlcGVuZGVudCBvbiBhcHBlYXJcbiAgICBfdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGhhbmRsZUV4aXRlZDogaGFuZGxlRXhpdGVkLFxuICAgICAgZmlyc3RSZW5kZXI6IHRydWVcbiAgICB9O1xuICAgIHJldHVybiBfdGhpcztcbiAgfVxuXG4gIFRyYW5zaXRpb25Hcm91cC5wcm90b3R5cGUuZ2V0Q2hpbGRDb250ZXh0ID0gZnVuY3Rpb24gZ2V0Q2hpbGRDb250ZXh0KCkge1xuICAgIHJldHVybiB7XG4gICAgICB0cmFuc2l0aW9uR3JvdXA6IHsgaXNNb3VudGluZzogIXRoaXMuYXBwZWFyZWQgfVxuICAgIH07XG4gIH07XG5cbiAgVHJhbnNpdGlvbkdyb3VwLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudCA9IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuYXBwZWFyZWQgPSB0cnVlO1xuICB9O1xuXG4gIFRyYW5zaXRpb25Hcm91cC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBmdW5jdGlvbiBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBfcmVmKSB7XG4gICAgdmFyIHByZXZDaGlsZE1hcHBpbmcgPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgICBoYW5kbGVFeGl0ZWQgPSBfcmVmLmhhbmRsZUV4aXRlZCxcbiAgICAgICAgZmlyc3RSZW5kZXIgPSBfcmVmLmZpcnN0UmVuZGVyO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNoaWxkcmVuOiBmaXJzdFJlbmRlciA/ICgwLCBfQ2hpbGRNYXBwaW5nLmdldEluaXRpYWxDaGlsZE1hcHBpbmcpKG5leHRQcm9wcywgaGFuZGxlRXhpdGVkKSA6ICgwLCBfQ2hpbGRNYXBwaW5nLmdldE5leHRDaGlsZE1hcHBpbmcpKG5leHRQcm9wcywgcHJldkNoaWxkTWFwcGluZywgaGFuZGxlRXhpdGVkKSxcbiAgICAgIGZpcnN0UmVuZGVyOiBmYWxzZVxuICAgIH07XG4gIH07XG5cbiAgVHJhbnNpdGlvbkdyb3VwLnByb3RvdHlwZS5oYW5kbGVFeGl0ZWQgPSBmdW5jdGlvbiBoYW5kbGVFeGl0ZWQoY2hpbGQsIG5vZGUpIHtcbiAgICB2YXIgY3VycmVudENoaWxkTWFwcGluZyA9ICgwLCBfQ2hpbGRNYXBwaW5nLmdldENoaWxkTWFwcGluZykodGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICBpZiAoY2hpbGQua2V5IGluIGN1cnJlbnRDaGlsZE1hcHBpbmcpIHJldHVybjtcblxuICAgIGlmIChjaGlsZC5wcm9wcy5vbkV4aXRlZCkge1xuICAgICAgY2hpbGQucHJvcHMub25FeGl0ZWQobm9kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZShmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgIHZhciBjaGlsZHJlbiA9IF9leHRlbmRzKHt9LCBzdGF0ZS5jaGlsZHJlbik7XG5cbiAgICAgIGRlbGV0ZSBjaGlsZHJlbltjaGlsZC5rZXldO1xuICAgICAgcmV0dXJuIHsgY2hpbGRyZW46IGNoaWxkcmVuIH07XG4gICAgfSk7XG4gIH07XG5cbiAgVHJhbnNpdGlvbkdyb3VwLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgIENvbXBvbmVudCA9IF9wcm9wcy5jb21wb25lbnQsXG4gICAgICAgIGNoaWxkRmFjdG9yeSA9IF9wcm9wcy5jaGlsZEZhY3RvcnksXG4gICAgICAgIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9wcm9wcywgWydjb21wb25lbnQnLCAnY2hpbGRGYWN0b3J5J10pO1xuXG4gICAgdmFyIGNoaWxkcmVuID0gdmFsdWVzKHRoaXMuc3RhdGUuY2hpbGRyZW4pLm1hcChjaGlsZEZhY3RvcnkpO1xuXG4gICAgZGVsZXRlIHByb3BzLmFwcGVhcjtcbiAgICBkZWxldGUgcHJvcHMuZW50ZXI7XG4gICAgZGVsZXRlIHByb3BzLmV4aXQ7XG5cbiAgICBpZiAoQ29tcG9uZW50ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfVxuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIHByb3BzLFxuICAgICAgY2hpbGRyZW5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBUcmFuc2l0aW9uR3JvdXA7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG5UcmFuc2l0aW9uR3JvdXAuY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gIHRyYW5zaXRpb25Hcm91cDogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QuaXNSZXF1aXJlZFxufTtcblxuXG5UcmFuc2l0aW9uR3JvdXAucHJvcFR5cGVzID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiID8gcHJvcFR5cGVzIDoge307XG5UcmFuc2l0aW9uR3JvdXAuZGVmYXVsdFByb3BzID0gZGVmYXVsdFByb3BzO1xuXG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgX3JlYWN0TGlmZWN5Y2xlc0NvbXBhdC5wb2x5ZmlsbCkoVHJhbnNpdGlvbkdyb3VwKTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-transition-group/TransitionGroup.js\n");
+
+/***/ }),
+
+/***/ "./node_modules/react-transition-group/utils/ChildMapping.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/react-transition-group/utils/ChildMapping.js ***!
+ \*******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n }\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextKeysPending = Object.create(null);\n\n var pendingKeys = [];\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i = void 0;\n var childMapping = {};\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n childMapping[nextKey] = getValueForKey(nextKey);\n }\n\n // Finally, add the keys which didn't appear before any key in `next`\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n\n if (!(0, _react.isValidElement)(child)) return;\n\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in;\n\n // item is new (entering)\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, { in: false });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n\n return children;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtdHJhbnNpdGlvbi1ncm91cC91dGlscy9DaGlsZE1hcHBpbmcuanM/ZjBmNyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixxQ0FBcUM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsYUFBYSx3QkFBd0I7QUFDckM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBLHVEQUF1RCxZQUFZO0FBQ25FLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRzs7QUFFSDtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL3JlYWN0LXRyYW5zaXRpb24tZ3JvdXAvdXRpbHMvQ2hpbGRNYXBwaW5nLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuZXhwb3J0cy5nZXRDaGlsZE1hcHBpbmcgPSBnZXRDaGlsZE1hcHBpbmc7XG5leHBvcnRzLm1lcmdlQ2hpbGRNYXBwaW5ncyA9IG1lcmdlQ2hpbGRNYXBwaW5ncztcbmV4cG9ydHMuZ2V0SW5pdGlhbENoaWxkTWFwcGluZyA9IGdldEluaXRpYWxDaGlsZE1hcHBpbmc7XG5leHBvcnRzLmdldE5leHRDaGlsZE1hcHBpbmcgPSBnZXROZXh0Q2hpbGRNYXBwaW5nO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxuLyoqXG4gKiBHaXZlbiBgdGhpcy5wcm9wcy5jaGlsZHJlbmAsIHJldHVybiBhbiBvYmplY3QgbWFwcGluZyBrZXkgdG8gY2hpbGQuXG4gKlxuICogQHBhcmFtIHsqfSBjaGlsZHJlbiBgdGhpcy5wcm9wcy5jaGlsZHJlbmBcbiAqIEByZXR1cm4ge29iamVjdH0gTWFwcGluZyBvZiBrZXkgdG8gY2hpbGRcbiAqL1xuZnVuY3Rpb24gZ2V0Q2hpbGRNYXBwaW5nKGNoaWxkcmVuLCBtYXBGbikge1xuICB2YXIgbWFwcGVyID0gZnVuY3Rpb24gbWFwcGVyKGNoaWxkKSB7XG4gICAgcmV0dXJuIG1hcEZuICYmICgwLCBfcmVhY3QuaXNWYWxpZEVsZW1lbnQpKGNoaWxkKSA/IG1hcEZuKGNoaWxkKSA6IGNoaWxkO1xuICB9O1xuXG4gIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBpZiAoY2hpbGRyZW4pIF9yZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIGM7XG4gIH0pLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgLy8gcnVuIHRoZSBtYXAgZnVuY3Rpb24gaGVyZSBpbnN0ZWFkIHNvIHRoYXQgdGhlIGtleSBpcyB0aGUgY29tcHV0ZWQgb25lXG4gICAgcmVzdWx0W2NoaWxkLmtleV0gPSBtYXBwZXIoY2hpbGQpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBXaGVuIHlvdSdyZSBhZGRpbmcgb3IgcmVtb3ZpbmcgY2hpbGRyZW4gc29tZSBtYXkgYmUgYWRkZWQgb3IgcmVtb3ZlZCBpbiB0aGVcbiAqIHNhbWUgcmVuZGVyIHBhc3MuIFdlIHdhbnQgdG8gc2hvdyAqYm90aCogc2luY2Ugd2Ugd2FudCB0byBzaW11bHRhbmVvdXNseVxuICogYW5pbWF0ZSBlbGVtZW50cyBpbiBhbmQgb3V0LiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgcHJldmlvdXMgc2V0IG9mIGtleXNcbiAqIGFuZCBhIG5ldyBzZXQgb2Yga2V5cyBhbmQgbWVyZ2VzIHRoZW0gd2l0aCBpdHMgYmVzdCBndWVzcyBvZiB0aGUgY29ycmVjdFxuICogb3JkZXJpbmcuIEluIHRoZSBmdXR1cmUgd2UgbWF5IGV4cG9zZSBzb21lIG9mIHRoZSB1dGlsaXRpZXMgaW5cbiAqIFJlYWN0TXVsdGlDaGlsZCB0byBtYWtlIHRoaXMgZWFzeSwgYnV0IGZvciBub3cgUmVhY3QgaXRzZWxmIGRvZXMgbm90XG4gKiBkaXJlY3RseSBoYXZlIHRoaXMgY29uY2VwdCBvZiB0aGUgdW5pb24gb2YgcHJldkNoaWxkcmVuIGFuZCBuZXh0Q2hpbGRyZW5cbiAqIHNvIHdlIGltcGxlbWVudCBpdCBoZXJlLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBwcmV2IHByZXYgY2hpbGRyZW4gYXMgcmV0dXJuZWQgZnJvbVxuICogYFJlYWN0VHJhbnNpdGlvbkNoaWxkTWFwcGluZy5nZXRDaGlsZE1hcHBpbmcoKWAuXG4gKiBAcGFyYW0ge29iamVjdH0gbmV4dCBuZXh0IGNoaWxkcmVuIGFzIHJldHVybmVkIGZyb21cbiAqIGBSZWFjdFRyYW5zaXRpb25DaGlsZE1hcHBpbmcuZ2V0Q2hpbGRNYXBwaW5nKClgLlxuICogQHJldHVybiB7b2JqZWN0fSBhIGtleSBzZXQgdGhhdCBjb250YWlucyBhbGwga2V5cyBpbiBgcHJldmAgYW5kIGFsbCBrZXlzXG4gKiBpbiBgbmV4dGAgaW4gYSByZWFzb25hYmxlIG9yZGVyLlxuICovXG5mdW5jdGlvbiBtZXJnZUNoaWxkTWFwcGluZ3MocHJldiwgbmV4dCkge1xuICBwcmV2ID0gcHJldiB8fCB7fTtcbiAgbmV4dCA9IG5leHQgfHwge307XG5cbiAgZnVuY3Rpb24gZ2V0VmFsdWVGb3JLZXkoa2V5KSB7XG4gICAgcmV0dXJuIGtleSBpbiBuZXh0ID8gbmV4dFtrZXldIDogcHJldltrZXldO1xuICB9XG5cbiAgLy8gRm9yIGVhY2gga2V5IG9mIGBuZXh0YCwgdGhlIGxpc3Qgb2Yga2V5cyB0byBpbnNlcnQgYmVmb3JlIHRoYXQga2V5IGluXG4gIC8vIHRoZSBjb21iaW5lZCBsaXN0XG4gIHZhciBuZXh0S2V5c1BlbmRpbmcgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG4gIHZhciBwZW5kaW5nS2V5cyA9IFtdO1xuICBmb3IgKHZhciBwcmV2S2V5IGluIHByZXYpIHtcbiAgICBpZiAocHJldktleSBpbiBuZXh0KSB7XG4gICAgICBpZiAocGVuZGluZ0tleXMubGVuZ3RoKSB7XG4gICAgICAgIG5leHRLZXlzUGVuZGluZ1twcmV2S2V5XSA9IHBlbmRpbmdLZXlzO1xuICAgICAgICBwZW5kaW5nS2V5cyA9IFtdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwZW5kaW5nS2V5cy5wdXNoKHByZXZLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBpID0gdm9pZCAwO1xuICB2YXIgY2hpbGRNYXBwaW5nID0ge307XG4gIGZvciAodmFyIG5leHRLZXkgaW4gbmV4dCkge1xuICAgIGlmIChuZXh0S2V5c1BlbmRpbmdbbmV4dEtleV0pIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBuZXh0S2V5c1BlbmRpbmdbbmV4dEtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHBlbmRpbmdOZXh0S2V5ID0gbmV4dEtleXNQZW5kaW5nW25leHRLZXldW2ldO1xuICAgICAgICBjaGlsZE1hcHBpbmdbbmV4dEtleXNQZW5kaW5nW25leHRLZXldW2ldXSA9IGdldFZhbHVlRm9yS2V5KHBlbmRpbmdOZXh0S2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgY2hpbGRNYXBwaW5nW25leHRLZXldID0gZ2V0VmFsdWVGb3JLZXkobmV4dEtleSk7XG4gIH1cblxuICAvLyBGaW5hbGx5LCBhZGQgdGhlIGtleXMgd2hpY2ggZGlkbid0IGFwcGVhciBiZWZvcmUgYW55IGtleSBpbiBgbmV4dGBcbiAgZm9yIChpID0gMDsgaSA8IHBlbmRpbmdLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgY2hpbGRNYXBwaW5nW3BlbmRpbmdLZXlzW2ldXSA9IGdldFZhbHVlRm9yS2V5KHBlbmRpbmdLZXlzW2ldKTtcbiAgfVxuXG4gIHJldHVybiBjaGlsZE1hcHBpbmc7XG59XG5cbmZ1bmN0aW9uIGdldFByb3AoY2hpbGQsIHByb3AsIHByb3BzKSB7XG4gIHJldHVybiBwcm9wc1twcm9wXSAhPSBudWxsID8gcHJvcHNbcHJvcF0gOiBjaGlsZC5wcm9wc1twcm9wXTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5pdGlhbENoaWxkTWFwcGluZyhwcm9wcywgb25FeGl0ZWQpIHtcbiAgcmV0dXJuIGdldENoaWxkTWFwcGluZyhwcm9wcy5jaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCwge1xuICAgICAgb25FeGl0ZWQ6IG9uRXhpdGVkLmJpbmQobnVsbCwgY2hpbGQpLFxuICAgICAgaW46IHRydWUsXG4gICAgICBhcHBlYXI6IGdldFByb3AoY2hpbGQsICdhcHBlYXInLCBwcm9wcyksXG4gICAgICBlbnRlcjogZ2V0UHJvcChjaGlsZCwgJ2VudGVyJywgcHJvcHMpLFxuICAgICAgZXhpdDogZ2V0UHJvcChjaGlsZCwgJ2V4aXQnLCBwcm9wcylcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE5leHRDaGlsZE1hcHBpbmcobmV4dFByb3BzLCBwcmV2Q2hpbGRNYXBwaW5nLCBvbkV4aXRlZCkge1xuICB2YXIgbmV4dENoaWxkTWFwcGluZyA9IGdldENoaWxkTWFwcGluZyhuZXh0UHJvcHMuY2hpbGRyZW4pO1xuICB2YXIgY2hpbGRyZW4gPSBtZXJnZUNoaWxkTWFwcGluZ3MocHJldkNoaWxkTWFwcGluZywgbmV4dENoaWxkTWFwcGluZyk7XG5cbiAgT2JqZWN0LmtleXMoY2hpbGRyZW4pLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciBjaGlsZCA9IGNoaWxkcmVuW2tleV07XG5cbiAgICBpZiAoISgwLCBfcmVhY3QuaXNWYWxpZEVsZW1lbnQpKGNoaWxkKSkgcmV0dXJuO1xuXG4gICAgdmFyIGhhc1ByZXYgPSBrZXkgaW4gcHJldkNoaWxkTWFwcGluZztcbiAgICB2YXIgaGFzTmV4dCA9IGtleSBpbiBuZXh0Q2hpbGRNYXBwaW5nO1xuXG4gICAgdmFyIHByZXZDaGlsZCA9IHByZXZDaGlsZE1hcHBpbmdba2V5XTtcbiAgICB2YXIgaXNMZWF2aW5nID0gKDAsIF9yZWFjdC5pc1ZhbGlkRWxlbWVudCkocHJldkNoaWxkKSAmJiAhcHJldkNoaWxkLnByb3BzLmluO1xuXG4gICAgLy8gaXRlbSBpcyBuZXcgKGVudGVyaW5nKVxuICAgIGlmIChoYXNOZXh0ICYmICghaGFzUHJldiB8fCBpc0xlYXZpbmcpKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnZW50ZXJpbmcnLCBrZXkpXG4gICAgICBjaGlsZHJlbltrZXldID0gKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKGNoaWxkLCB7XG4gICAgICAgIG9uRXhpdGVkOiBvbkV4aXRlZC5iaW5kKG51bGwsIGNoaWxkKSxcbiAgICAgICAgaW46IHRydWUsXG4gICAgICAgIGV4aXQ6IGdldFByb3AoY2hpbGQsICdleGl0JywgbmV4dFByb3BzKSxcbiAgICAgICAgZW50ZXI6IGdldFByb3AoY2hpbGQsICdlbnRlcicsIG5leHRQcm9wcylcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIWhhc05leHQgJiYgaGFzUHJldiAmJiAhaXNMZWF2aW5nKSB7XG4gICAgICAvLyBpdGVtIGlzIG9sZCAoZXhpdGluZylcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdsZWF2aW5nJywga2V5KVxuICAgICAgY2hpbGRyZW5ba2V5XSA9ICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCwgeyBpbjogZmFsc2UgfSk7XG4gICAgfSBlbHNlIGlmIChoYXNOZXh0ICYmIGhhc1ByZXYgJiYgKDAsIF9yZWFjdC5pc1ZhbGlkRWxlbWVudCkocHJldkNoaWxkKSkge1xuICAgICAgLy8gaXRlbSBoYXNuJ3QgY2hhbmdlZCB0cmFuc2l0aW9uIHN0YXRlc1xuICAgICAgLy8gY29weSBvdmVyIHRoZSBsYXN0IHRyYW5zaXRpb24gcHJvcHM7XG4gICAgICAvLyBjb25zb2xlLmxvZygndW5jaGFuZ2VkJywga2V5KVxuICAgICAgY2hpbGRyZW5ba2V5XSA9ICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShjaGlsZCwge1xuICAgICAgICBvbkV4aXRlZDogb25FeGl0ZWQuYmluZChudWxsLCBjaGlsZCksXG4gICAgICAgIGluOiBwcmV2Q2hpbGQucHJvcHMuaW4sXG4gICAgICAgIGV4aXQ6IGdldFByb3AoY2hpbGQsICdleGl0JywgbmV4dFByb3BzKSxcbiAgICAgICAgZW50ZXI6IGdldFByb3AoY2hpbGQsICdlbnRlcicsIG5leHRQcm9wcylcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-transition-group/utils/ChildMapping.js\n");
+
+/***/ }),
+
/***/ "./node_modules/react-transition-group/utils/PropTypes.js":
/*!****************************************************************!*\
!*** ./node_modules/react-transition-group/utils/PropTypes.js ***!
@@ -3421,7 +3565,7 @@ eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SearchField.jsx */ \"./public/javascripts/src/components/SearchField.jsx\");\n/* harmony import */ var _components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/FilmsList.jsx */ \"./public/javascripts/src/components/FilmsList.jsx\");\n/* harmony import */ var _utils_filmsAPI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/filmsAPI */ \"./public/javascripts/src/utils/filmsAPI.js\");\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\n\n\n// import { withStyles } from '@material-ui/core/styles';\n\nclass Layout extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n filmsList: []\n };\n this.updateQuery = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.debounce(this.updateQuery.bind(this), 300);\n }\n updateQuery(query) {\n console.log('query', query);\n if (query && query.trim().length > 2) {\n Object(_utils_filmsAPI__WEBPACK_IMPORTED_MODULE_6__[\"searchFilms\"])(query).then(data => this.setState({ filmsList: data }));\n }\n }\n\n render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"], { onUpdateQuery: this.updateQuery })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"], { filmsData: this.state.filmsList })\n )\n )\n );\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Layout);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL0xheW91dC5qc3g/NjZmYyJdLCJuYW1lcyI6WyJMYXlvdXQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImZpbG1zTGlzdCIsInVwZGF0ZVF1ZXJ5IiwiXyIsImRlYm91bmNlIiwiYmluZCIsInF1ZXJ5IiwiY29uc29sZSIsImxvZyIsInRyaW0iLCJsZW5ndGgiLCJzZWFyY2hGaWxtcyIsInRoZW4iLCJkYXRhIiwic2V0U3RhdGUiLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLE1BQU1BLE1BQU4sU0FBcUIsNENBQUFDLENBQU1DLFNBQTNCLENBQXFDO0FBQ2pDQyxnQkFBWUMsS0FBWixFQUFtQjtBQUNmLGNBQU1BLEtBQU47QUFDQSxhQUFLQyxLQUFMLEdBQWE7QUFDVEMsdUJBQVc7QUFERixTQUFiO0FBR0EsYUFBS0MsV0FBTCxHQUFtQiw2Q0FBQUMsQ0FBRUMsUUFBRixDQUFXLEtBQUtGLFdBQUwsQ0FBaUJHLElBQWpCLENBQXNCLElBQXRCLENBQVgsRUFBd0MsR0FBeEMsQ0FBbkI7QUFDSDtBQUNESCxnQkFBWUksS0FBWixFQUFtQjtBQUNmQyxnQkFBUUMsR0FBUixDQUFZLE9BQVosRUFBcUJGLEtBQXJCO0FBQ0EsWUFBSUEsU0FBU0EsTUFBTUcsSUFBTixHQUFhQyxNQUFiLEdBQXNCLENBQW5DLEVBQXNDO0FBQ2xDQyxZQUFBLG1FQUFBQSxDQUFZTCxLQUFaLEVBQW1CTSxJQUFuQixDQUF3QkMsUUFBUSxLQUFLQyxRQUFMLENBQWMsRUFBRWIsV0FBV1ksSUFBYixFQUFkLENBQWhDO0FBQ0g7QUFDSjs7QUFFREUsYUFBUztBQUNMLGVBQ0k7QUFBQTtBQUFBO0FBQ0k7QUFBQyw2RUFBRDtBQUFBLGtCQUFNLGVBQU4sRUFBZ0IsU0FBUyxFQUF6QjtBQUNJO0FBQUMsaUZBQUQ7QUFBQSxzQkFBTSxVQUFOLEVBQVcsSUFBSSxFQUFmO0FBQ0ksK0VBQUMsbUVBQUQsSUFBYSxlQUFlLEtBQUtiLFdBQWpDO0FBREosaUJBREo7QUFJSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sVUFBTixFQUFXLElBQUksRUFBZjtBQUNJLCtFQUFDLGlFQUFELElBQVcsV0FBVyxLQUFLRixLQUFMLENBQVdDLFNBQWpDO0FBREo7QUFKSjtBQURKLFNBREo7QUFZSDtBQTVCZ0M7O0FBK0JyQywrREFBZU4sTUFBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvTGF5b3V0LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XHJcbmltcG9ydCBQYXBlciBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9QYXBlcic7XHJcbmltcG9ydCBHcmlkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0dyaWQnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IFNlYXJjaEZpZWxkIGZyb20gJy4vY29tcG9uZW50cy9TZWFyY2hGaWVsZC5qc3gnO1xyXG5pbXBvcnQgRmlsbXNMaXN0IGZyb20gJy4vY29tcG9uZW50cy9GaWxtc0xpc3QuanN4JztcclxuaW1wb3J0IHsgc2VhcmNoRmlsbXMgfSBmcm9tICcuL3V0aWxzL2ZpbG1zQVBJJztcclxuXHJcbi8vIGltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xyXG5cclxuY2xhc3MgTGF5b3V0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICAgICAgc3VwZXIocHJvcHMpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgICAgICAgIGZpbG1zTGlzdDogW11cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkgPSBfLmRlYm91bmNlKHRoaXMudXBkYXRlUXVlcnkuYmluZCh0aGlzKSwgMzAwKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZVF1ZXJ5KHF1ZXJ5KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ3F1ZXJ5JywgcXVlcnkpO1xyXG4gICAgICAgIGlmIChxdWVyeSAmJiBxdWVyeS50cmltKCkubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICBzZWFyY2hGaWxtcyhxdWVyeSkudGhlbihkYXRhID0+IHRoaXMuc2V0U3RhdGUoeyBmaWxtc0xpc3Q6IGRhdGEgfSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW5kZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxHcmlkIGNvbnRhaW5lciBzcGFjaW5nPXsyNH0+XHJcbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoRmllbGQgb25VcGRhdGVRdWVyeT17dGhpcy51cGRhdGVRdWVyeX0gLz5cclxuICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17MTJ9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RmlsbXNMaXN0IGZpbG1zRGF0YT17dGhpcy5zdGF0ZS5maWxtc0xpc3R9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxyXG4gICAgICAgICAgICAgICAgPC9HcmlkPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMYXlvdXQ7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./public/javascripts/src/Layout.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/SearchField.jsx */ \"./public/javascripts/src/components/SearchField.jsx\");\n/* harmony import */ var _components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/FilmsList.jsx */ \"./public/javascripts/src/components/FilmsList.jsx\");\n/* harmony import */ var _components_TrailerModal_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/TrailerModal.jsx */ \"./public/javascripts/src/components/TrailerModal.jsx\");\n/* harmony import */ var _utils_filmsAPI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/filmsAPI */ \"./public/javascripts/src/utils/filmsAPI.js\");\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\n\n\n\n// import { withStyles } from '@material-ui/core/styles';\n\nclass Layout extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n filmsList: [],\n trailerId: '',\n isModalOpen: false\n };\n this.updateQuery = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.debounce(this.updateQuery.bind(this), 300);\n this.openTrailerModal = this.openTrailerModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n updateQuery(query) {\n if (query && query.trim().length > 2) {\n Object(_utils_filmsAPI__WEBPACK_IMPORTED_MODULE_7__[\"searchFilms\"])(query).then(data => this.setState({ filmsList: data }));\n }\n }\n openTrailerModal(id) {\n return () => {\n console.log('id', id);\n console.log('this', this);\n this.setState({ trailerId: id, isModalOpen: true });\n };\n }\n closeModal() {\n this.setState({ isModalOpen: false });\n }\n\n render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_SearchField_jsx__WEBPACK_IMPORTED_MODULE_4__[\"default\"], { onUpdateQuery: this.updateQuery })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 12 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_FilmsList_jsx__WEBPACK_IMPORTED_MODULE_5__[\"default\"], { filmsData: this.state.filmsList, openTrailer: this.openTrailerModal })\n )\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_TrailerModal_jsx__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n videoId: this.state.trailerId,\n isModalOpen: this.state.isModalOpen,\n handleClose: this.closeModal\n })\n );\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Layout);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL0xheW91dC5qc3g/NjZmYyJdLCJuYW1lcyI6WyJMYXlvdXQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwicHJvcHMiLCJzdGF0ZSIsImZpbG1zTGlzdCIsInRyYWlsZXJJZCIsImlzTW9kYWxPcGVuIiwidXBkYXRlUXVlcnkiLCJfIiwiZGVib3VuY2UiLCJiaW5kIiwib3BlblRyYWlsZXJNb2RhbCIsImNsb3NlTW9kYWwiLCJxdWVyeSIsInRyaW0iLCJsZW5ndGgiLCJzZWFyY2hGaWxtcyIsInRoZW4iLCJkYXRhIiwic2V0U3RhdGUiLCJpZCIsImNvbnNvbGUiLCJsb2ciLCJyZW5kZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLE1BQU1BLE1BQU4sU0FBcUIsNENBQUFDLENBQU1DLFNBQTNCLENBQXFDO0FBQ2pDQyxnQkFBWUMsS0FBWixFQUFtQjtBQUNmLGNBQU1BLEtBQU47QUFDQSxhQUFLQyxLQUFMLEdBQWE7QUFDVEMsdUJBQVcsRUFERjtBQUVUQyx1QkFBVyxFQUZGO0FBR1RDLHlCQUFhO0FBSEosU0FBYjtBQUtBLGFBQUtDLFdBQUwsR0FBbUIsNkNBQUFDLENBQUVDLFFBQUYsQ0FBVyxLQUFLRixXQUFMLENBQWlCRyxJQUFqQixDQUFzQixJQUF0QixDQUFYLEVBQXdDLEdBQXhDLENBQW5CO0FBQ0EsYUFBS0MsZ0JBQUwsR0FBd0IsS0FBS0EsZ0JBQUwsQ0FBc0JELElBQXRCLENBQTJCLElBQTNCLENBQXhCO0FBQ0EsYUFBS0UsVUFBTCxHQUFrQixLQUFLQSxVQUFMLENBQWdCRixJQUFoQixDQUFxQixJQUFyQixDQUFsQjtBQUNIO0FBQ0RILGdCQUFZTSxLQUFaLEVBQW1CO0FBQ2YsWUFBSUEsU0FBU0EsTUFBTUMsSUFBTixHQUFhQyxNQUFiLEdBQXNCLENBQW5DLEVBQXNDO0FBQ2xDQyxZQUFBLG1FQUFBQSxDQUFZSCxLQUFaLEVBQW1CSSxJQUFuQixDQUF3QkMsUUFBUSxLQUFLQyxRQUFMLENBQWMsRUFBRWYsV0FBV2MsSUFBYixFQUFkLENBQWhDO0FBQ0g7QUFDSjtBQUNEUCxxQkFBaUJTLEVBQWpCLEVBQXFCO0FBQ2pCLGVBQU8sTUFBTTtBQUNUQyxvQkFBUUMsR0FBUixDQUFZLElBQVosRUFBa0JGLEVBQWxCO0FBQ0FDLG9CQUFRQyxHQUFSLENBQVksTUFBWixFQUFvQixJQUFwQjtBQUNBLGlCQUFLSCxRQUFMLENBQWMsRUFBRWQsV0FBV2UsRUFBYixFQUFpQmQsYUFBYSxJQUE5QixFQUFkO0FBQ0gsU0FKRDtBQUtIO0FBQ0RNLGlCQUFhO0FBQ1QsYUFBS08sUUFBTCxDQUFjLEVBQUViLGFBQWEsS0FBZixFQUFkO0FBQ0g7O0FBRURpQixhQUFTO0FBQ0wsZUFDSTtBQUFBO0FBQUE7QUFDSTtBQUFDLDZFQUFEO0FBQUEsa0JBQU0sZUFBTixFQUFnQixTQUFTLEVBQXpCO0FBQ0k7QUFBQyxpRkFBRDtBQUFBLHNCQUFNLFVBQU4sRUFBVyxJQUFJLEVBQWY7QUFDSSwrRUFBQyxtRUFBRCxJQUFhLGVBQWUsS0FBS2hCLFdBQWpDO0FBREosaUJBREo7QUFJSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sVUFBTixFQUFXLElBQUksRUFBZjtBQUNJLCtFQUFDLGlFQUFELElBQVcsV0FBVyxLQUFLSixLQUFMLENBQVdDLFNBQWpDLEVBQTRDLGFBQWEsS0FBS08sZ0JBQTlEO0FBREo7QUFKSixhQURKO0FBU0ksdUVBQUMsb0VBQUQ7QUFDSSx5QkFBUyxLQUFLUixLQUFMLENBQVdFLFNBRHhCO0FBRUksNkJBQWEsS0FBS0YsS0FBTCxDQUFXRyxXQUY1QjtBQUdJLDZCQUFhLEtBQUtNO0FBSHRCO0FBVEosU0FESjtBQWlCSDtBQTlDZ0M7O0FBaURyQywrREFBZWQsTUFBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvTGF5b3V0LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XHJcbmltcG9ydCBQYXBlciBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9QYXBlcic7XHJcbmltcG9ydCBHcmlkIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0dyaWQnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5cclxuaW1wb3J0IFNlYXJjaEZpZWxkIGZyb20gJy4vY29tcG9uZW50cy9TZWFyY2hGaWVsZC5qc3gnO1xyXG5pbXBvcnQgRmlsbXNMaXN0IGZyb20gJy4vY29tcG9uZW50cy9GaWxtc0xpc3QuanN4JztcclxuaW1wb3J0IFRyYWlsZXJNb2RhbCBmcm9tICcuL2NvbXBvbmVudHMvVHJhaWxlck1vZGFsLmpzeCc7XHJcbmltcG9ydCB7IHNlYXJjaEZpbG1zIH0gZnJvbSAnLi91dGlscy9maWxtc0FQSSc7XHJcblxyXG4vLyBpbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcclxuXHJcbmNsYXNzIExheW91dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgICAgIHN1cGVyKHByb3BzKTtcclxuICAgICAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICAgICAgICBmaWxtc0xpc3Q6IFtdLFxyXG4gICAgICAgICAgICB0cmFpbGVySWQ6ICcnLFxyXG4gICAgICAgICAgICBpc01vZGFsT3BlbjogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkgPSBfLmRlYm91bmNlKHRoaXMudXBkYXRlUXVlcnkuYmluZCh0aGlzKSwgMzAwKTtcclxuICAgICAgICB0aGlzLm9wZW5UcmFpbGVyTW9kYWwgPSB0aGlzLm9wZW5UcmFpbGVyTW9kYWwuYmluZCh0aGlzKTtcclxuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSB0aGlzLmNsb3NlTW9kYWwuYmluZCh0aGlzKTtcclxuICAgIH1cclxuICAgIHVwZGF0ZVF1ZXJ5KHF1ZXJ5KSB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5ICYmIHF1ZXJ5LnRyaW0oKS5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICAgIHNlYXJjaEZpbG1zKHF1ZXJ5KS50aGVuKGRhdGEgPT4gdGhpcy5zZXRTdGF0ZSh7IGZpbG1zTGlzdDogZGF0YSB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb3BlblRyYWlsZXJNb2RhbChpZCkge1xyXG4gICAgICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpZCcsIGlkKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMnLCB0aGlzKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHRyYWlsZXJJZDogaWQsIGlzTW9kYWxPcGVuOiB0cnVlIH0pO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjbG9zZU1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc01vZGFsT3BlbjogZmFsc2UgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MjR9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEZpZWxkIG9uVXBkYXRlUXVlcnk9e3RoaXMudXBkYXRlUXVlcnl9IC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezEyfT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPEZpbG1zTGlzdCBmaWxtc0RhdGE9e3RoaXMuc3RhdGUuZmlsbXNMaXN0fSBvcGVuVHJhaWxlcj17dGhpcy5vcGVuVHJhaWxlck1vZGFsfSAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cclxuICAgICAgICAgICAgICAgIDwvR3JpZD5cclxuICAgICAgICAgICAgICAgIDxUcmFpbGVyTW9kYWxcclxuICAgICAgICAgICAgICAgICAgICB2aWRlb0lkPXt0aGlzLnN0YXRlLnRyYWlsZXJJZH1cclxuICAgICAgICAgICAgICAgICAgICBpc01vZGFsT3Blbj17dGhpcy5zdGF0ZS5pc01vZGFsT3Blbn1cclxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZT17dGhpcy5jbG9zZU1vZGFsfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./public/javascripts/src/Layout.jsx\n");
/***/ }),
@@ -3445,7 +3589,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/styles/index.js\");\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Typography */ \"./node_modules/@material-ui/core/Typography/index.js\");\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__);\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\nconst styles = theme => ({\n poster: {\n maxWidth: '100%',\n height: 300\n },\n paperBlock: {\n padding: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n }\n});\n\nclass FilmsContainer extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n render() {\n const { classes } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n this.props.filmsData ? this.props.filmsData.map(filmData => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default.a,\n { key: filmData.imdbID, className: classes.paperBlock },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 4 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('img', {\n className: classes.poster,\n src: filmData.Poster.replace(/^N\\/A$/i, '/images/noposter.jpg'),\n alt: 'Poster'\n })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 8 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display1', gutterBottom: true },\n filmData.Title\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'body1', gutterBottom: true },\n filmData.Year\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'caption', gutterBottom: true, align: 'center' },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'a',\n { href: 'https://www.youtube.com/watch?v=' + filmData.trailer.id.videoId },\n 'watch trailer'\n )\n )\n )\n )\n )) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display3', gutterBottom: true },\n 'No movies found'\n )\n );\n }\n}\n\nFilmsContainer.propTypes = {\n filmsData: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.array,\n classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__[\"withStyles\"])(styles)(FilmsContainer));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL2NvbXBvbmVudHMvRmlsbXNMaXN0LmpzeD9iYjI5Il0sIm5hbWVzIjpbInN0eWxlcyIsInRoZW1lIiwicG9zdGVyIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJwYXBlckJsb2NrIiwicGFkZGluZyIsInNwYWNpbmciLCJ1bml0IiwibWFyZ2luQm90dG9tIiwiRmlsbXNDb250YWluZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsImNsYXNzZXMiLCJwcm9wcyIsImZpbG1zRGF0YSIsIm1hcCIsImZpbG1EYXRhIiwiaW1kYklEIiwiUG9zdGVyIiwicmVwbGFjZSIsIlRpdGxlIiwiWWVhciIsInRyYWlsZXIiLCJpZCIsInZpZGVvSWQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJhcnJheSIsIm9iamVjdCIsIndpdGhTdHlsZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxTQUFTQyxVQUFVO0FBQ3JCQyxZQUFRO0FBQ0pDLGtCQUFVLE1BRE47QUFFSkMsZ0JBQVE7QUFGSixLQURhO0FBS3JCQyxnQkFBWTtBQUNSQyxpQkFBU0wsTUFBTU0sT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRHRCO0FBRVJDLHNCQUFjUixNQUFNTSxPQUFOLENBQWNDO0FBRnBCO0FBTFMsQ0FBVixDQUFmOztBQVdBLE1BQU1FLGNBQU4sU0FBNkIsNENBQUFDLENBQU1DLFNBQW5DLENBQTZDO0FBQ3pDQyxhQUFTO0FBQ0wsY0FBTSxFQUFFQyxPQUFGLEtBQWMsS0FBS0MsS0FBekI7QUFDQSxlQUNJO0FBQUE7QUFBQTtBQUNLLGlCQUFLQSxLQUFMLENBQVdDLFNBQVgsR0FDRyxLQUFLRCxLQUFMLENBQVdDLFNBQVgsQ0FBcUJDLEdBQXJCLENBQXlCQyxZQUNyQjtBQUFDLDhFQUFEO0FBQUEsa0JBQU8sS0FBS0EsU0FBU0MsTUFBckIsRUFBNkIsV0FBV0wsUUFBUVQsVUFBaEQ7QUFDSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sZUFBTixFQUFnQixTQUFTLEVBQXpCO0FBQ0k7QUFBQyxxRkFBRDtBQUFBLDBCQUFNLFVBQU4sRUFBVyxJQUFJLENBQWY7QUFDSTtBQUNJLHVDQUFXUyxRQUFRWixNQUR2QjtBQUVJLGlDQUFLZ0IsU0FBU0UsTUFBVCxDQUFnQkMsT0FBaEIsQ0FBd0IsU0FBeEIsRUFBbUMsc0JBQW5DLENBRlQ7QUFHSSxpQ0FBSTtBQUhSO0FBREoscUJBREo7QUFRSTtBQUFDLHFGQUFEO0FBQUEsMEJBQU0sVUFBTixFQUFXLElBQUksQ0FBZjtBQUNJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLFVBQXBCLEVBQStCLGtCQUEvQjtBQUNLSCxxQ0FBU0k7QUFEZCx5QkFESjtBQUlJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLE9BQXBCLEVBQTRCLGtCQUE1QjtBQUNLSixxQ0FBU0s7QUFEZCx5QkFKSjtBQVFJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLFNBQXBCLEVBQThCLGtCQUE5QixFQUEyQyxPQUFNLFFBQWpEO0FBQ0k7QUFBQTtBQUFBLGtDQUFHLE1BQU0scUNBQXFDTCxTQUFTTSxPQUFULENBQWlCQyxFQUFqQixDQUFvQkMsT0FBbEU7QUFBQTtBQUFBO0FBREo7QUFSSjtBQVJKO0FBREosYUFESixDQURILEdBNkJHO0FBQUMsbUZBQUQ7QUFBQSxrQkFBWSxTQUFRLFVBQXBCLEVBQStCLGtCQUEvQjtBQUFBO0FBQUE7QUE5QlIsU0FESjtBQXFDSDtBQXhDd0M7O0FBMkM3Q2hCLGVBQWVpQixTQUFmLEdBQTJCO0FBQ3ZCWCxlQUFXLGlEQUFBWSxDQUFVQyxLQURFO0FBRXZCZixhQUFTLGlEQUFBYyxDQUFVRTtBQUZJLENBQTNCOztBQUtBLCtEQUFlLDJFQUFBQyxDQUFXL0IsTUFBWCxFQUFtQlUsY0FBbkIsQ0FBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvY29tcG9uZW50cy9GaWxtc0xpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvUGFwZXInO1xuaW1wb3J0IEdyaWQgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvR3JpZCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UeXBvZ3JhcGh5JztcblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICBwb3N0ZXI6IHtcbiAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAzMDBcbiAgICB9LFxuICAgIHBhcGVyQmxvY2s6IHtcbiAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICAgICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXRcbiAgICB9XG59KTtcblxuY2xhc3MgRmlsbXNDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBjbGFzc2VzIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5maWxtc0RhdGEgPyAoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZmlsbXNEYXRhLm1hcChmaWxtRGF0YSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGFwZXIga2V5PXtmaWxtRGF0YS5pbWRiSUR9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXBlckJsb2NrfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjb250YWluZXIgc3BhY2luZz17MjR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBpdGVtIHhzPXs0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMucG9zdGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17ZmlsbURhdGEuUG9zdGVyLnJlcGxhY2UoL15OXFwvQSQvaSwgJy9pbWFnZXMvbm9wb3N0ZXIuanBnJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiUG9zdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17OH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiZGlzcGxheTFcIiBndXR0ZXJCb3R0b20+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbG1EYXRhLlRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImJvZHkxXCIgZ3V0dGVyQm90dG9tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxtRGF0YS5ZZWFyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiY2FwdGlvblwiIGd1dHRlckJvdHRvbSBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9eydodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PScgKyBmaWxtRGF0YS50cmFpbGVyLmlkLnZpZGVvSWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXRjaCB0cmFpbGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9QYXBlcj5cbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB2YXJpYW50PVwiZGlzcGxheTNcIiBndXR0ZXJCb3R0b20+XG4gICAgICAgICAgICAgICAgICAgICAgICBObyBtb3ZpZXMgZm91bmRcbiAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkZpbG1zQ29udGFpbmVyLnByb3BUeXBlcyA9IHtcbiAgICBmaWxtc0RhdGE6IFByb3BUeXBlcy5hcnJheSxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0XG59O1xuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHN0eWxlcykoRmlsbXNDb250YWluZXIpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./public/javascripts/src/components/FilmsList.jsx\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core/Paper */ \"./node_modules/@material-ui/core/Paper/index.js\");\n/* harmony import */ var _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/Grid */ \"./node_modules/@material-ui/core/Grid/index.js\");\n/* harmony import */ var _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/styles/index.js\");\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Typography */ \"./node_modules/@material-ui/core/Typography/index.js\");\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/core/Button */ \"./node_modules/@material-ui/core/Button/index.js\");\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material-ui/icons/Movie */ \"./node_modules/@material-ui/icons/Movie.js\");\n/* harmony import */ var _material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7__);\n\n// import { render } from 'react-dom';\n\n\n\n\n\n\n\n\nconst styles = theme => ({\n poster: {\n maxWidth: '100%',\n height: 300\n },\n paperBlock: {\n padding: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit\n }\n});\n\nclass FilmsContainer extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n render() {\n const { classes, openTrailer } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n null,\n this.props.filmsData ? this.props.filmsData.map(filmData => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_1___default.a,\n { key: filmData.imdbID, className: classes.paperBlock },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { container: true, spacing: 24 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 4 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('img', {\n className: classes.poster,\n src: filmData.Poster.replace(/^N\\/A$/i, '/images/noposter.jpg'),\n alt: 'Poster'\n })\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_2___default.a,\n { item: true, xs: 8 },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display1', gutterBottom: true },\n filmData.Title\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'body1', gutterBottom: true },\n filmData.Year\n ),\n filmData.trailer ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_6___default.a,\n {\n size: 'medium',\n variant: 'contained',\n color: 'primary',\n onClick: openTrailer(filmData.trailer.id.videoId)\n },\n 'Watch trailer',\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_material_ui_icons_Movie__WEBPACK_IMPORTED_MODULE_7___default.a, null)\n ) : 'No trailer'\n )\n )\n )) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_5___default.a,\n { variant: 'display3', gutterBottom: true },\n 'No movies found'\n )\n );\n }\n}\n\nFilmsContainer.propTypes = {\n filmsData: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.array,\n openTrailer: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func.isRequired,\n classes: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.object\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_3__[\"withStyles\"])(styles)(FilmsContainer));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL2NvbXBvbmVudHMvRmlsbXNMaXN0LmpzeD9iYjI5Il0sIm5hbWVzIjpbInN0eWxlcyIsInRoZW1lIiwicG9zdGVyIiwibWF4V2lkdGgiLCJoZWlnaHQiLCJwYXBlckJsb2NrIiwicGFkZGluZyIsInNwYWNpbmciLCJ1bml0IiwibWFyZ2luQm90dG9tIiwiRmlsbXNDb250YWluZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsImNsYXNzZXMiLCJvcGVuVHJhaWxlciIsInByb3BzIiwiZmlsbXNEYXRhIiwibWFwIiwiZmlsbURhdGEiLCJpbWRiSUQiLCJQb3N0ZXIiLCJyZXBsYWNlIiwiVGl0bGUiLCJZZWFyIiwidHJhaWxlciIsImlkIiwidmlkZW9JZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJ3aXRoU3R5bGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNQSxTQUFTQyxVQUFVO0FBQ3JCQyxZQUFRO0FBQ0pDLGtCQUFVLE1BRE47QUFFSkMsZ0JBQVE7QUFGSixLQURhO0FBS3JCQyxnQkFBWTtBQUNSQyxpQkFBU0wsTUFBTU0sT0FBTixDQUFjQyxJQUFkLEdBQXFCLENBRHRCO0FBRVJDLHNCQUFjUixNQUFNTSxPQUFOLENBQWNDO0FBRnBCO0FBTFMsQ0FBVixDQUFmOztBQVdBLE1BQU1FLGNBQU4sU0FBNkIsNENBQUFDLENBQU1DLFNBQW5DLENBQTZDO0FBQ3pDQyxhQUFTO0FBQ0wsY0FBTSxFQUFFQyxPQUFGLEVBQVdDLFdBQVgsS0FBMkIsS0FBS0MsS0FBdEM7QUFDQSxlQUNJO0FBQUE7QUFBQTtBQUNLLGlCQUFLQSxLQUFMLENBQVdDLFNBQVgsR0FDRyxLQUFLRCxLQUFMLENBQVdDLFNBQVgsQ0FBcUJDLEdBQXJCLENBQXlCQyxZQUNyQjtBQUFDLDhFQUFEO0FBQUEsa0JBQU8sS0FBS0EsU0FBU0MsTUFBckIsRUFBNkIsV0FBV04sUUFBUVQsVUFBaEQ7QUFDSTtBQUFDLGlGQUFEO0FBQUEsc0JBQU0sZUFBTixFQUFnQixTQUFTLEVBQXpCO0FBQ0k7QUFBQyxxRkFBRDtBQUFBLDBCQUFNLFVBQU4sRUFBVyxJQUFJLENBQWY7QUFDSTtBQUNJLHVDQUFXUyxRQUFRWixNQUR2QjtBQUVJLGlDQUFLaUIsU0FBU0UsTUFBVCxDQUFnQkMsT0FBaEIsQ0FBd0IsU0FBeEIsRUFBbUMsc0JBQW5DLENBRlQ7QUFHSSxpQ0FBSTtBQUhSO0FBREoscUJBREo7QUFRSTtBQUFDLHFGQUFEO0FBQUEsMEJBQU0sVUFBTixFQUFXLElBQUksQ0FBZjtBQUNJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLFVBQXBCLEVBQStCLGtCQUEvQjtBQUNLSCxxQ0FBU0k7QUFEZCx5QkFESjtBQUlJO0FBQUMsK0ZBQUQ7QUFBQSw4QkFBWSxTQUFRLE9BQXBCLEVBQTRCLGtCQUE1QjtBQUNLSixxQ0FBU0s7QUFEZCx5QkFKSjtBQU9LTCxpQ0FBU00sT0FBVCxHQUNHO0FBQUMsMkZBQUQ7QUFBQTtBQUNJLHNDQUFLLFFBRFQ7QUFFSSx5Q0FBUSxXQUZaO0FBR0ksdUNBQU0sU0FIVjtBQUlJLHlDQUFTVixZQUFZSSxTQUFTTSxPQUFULENBQWlCQyxFQUFqQixDQUFvQkMsT0FBaEM7QUFKYjtBQUFBO0FBT0ksdUZBQUMsK0RBQUQ7QUFQSix5QkFESCxHQVdHO0FBbEJSO0FBUko7QUFESixhQURKLENBREgsR0FvQ0c7QUFBQyxtRkFBRDtBQUFBLGtCQUFZLFNBQVEsVUFBcEIsRUFBK0Isa0JBQS9CO0FBQUE7QUFBQTtBQXJDUixTQURKO0FBNENIO0FBL0N3Qzs7QUFrRDdDakIsZUFBZWtCLFNBQWYsR0FBMkI7QUFDdkJYLGVBQVcsaURBQUFZLENBQVVDLEtBREU7QUFFdkJmLGlCQUFhLGlEQUFBYyxDQUFVRSxJQUFWLENBQWVDLFVBRkw7QUFHdkJsQixhQUFTLGlEQUFBZSxDQUFVSTtBQUhJLENBQTNCOztBQU1BLCtEQUFlLDJFQUFBQyxDQUFXbEMsTUFBWCxFQUFtQlUsY0FBbkIsQ0FBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvY29tcG9uZW50cy9GaWxtc0xpc3QuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0Jztcbi8vIGltcG9ydCB7IHJlbmRlciB9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvUGFwZXInO1xuaW1wb3J0IEdyaWQgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvR3JpZCc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgVHlwb2dyYXBoeSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9UeXBvZ3JhcGh5JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcbmltcG9ydCBNb3ZpZUljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL01vdmllJztcblxuY29uc3Qgc3R5bGVzID0gdGhlbWUgPT4gKHtcbiAgICBwb3N0ZXI6IHtcbiAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAzMDBcbiAgICB9LFxuICAgIHBhcGVyQmxvY2s6IHtcbiAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogMixcbiAgICAgICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXRcbiAgICB9XG59KTtcblxuY2xhc3MgRmlsbXNDb250YWluZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBjbGFzc2VzLCBvcGVuVHJhaWxlciB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMuZmlsbXNEYXRhID8gKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZpbG1zRGF0YS5tYXAoZmlsbURhdGEgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFBhcGVyIGtleT17ZmlsbURhdGEuaW1kYklEfSBjbGFzc05hbWU9e2NsYXNzZXMucGFwZXJCbG9ja30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY29udGFpbmVyIHNwYWNpbmc9ezI0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaXRlbSB4cz17NH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnBvc3Rlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2ZpbG1EYXRhLlBvc3Rlci5yZXBsYWNlKC9eTlxcL0EkL2ksICcvaW1hZ2VzL25vcG9zdGVyLmpwZycpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlBvc3RlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGl0ZW0geHM9ezh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImRpc3BsYXkxXCIgZ3V0dGVyQm90dG9tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxtRGF0YS5UaXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJib2R5MVwiIGd1dHRlckJvdHRvbT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsbURhdGEuWWVhcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxtRGF0YS50cmFpbGVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJjb250YWluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvcGVuVHJhaWxlcihmaWxtRGF0YS50cmFpbGVyLmlkLnZpZGVvSWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2F0Y2ggdHJhaWxlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TW92aWVJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdObyB0cmFpbGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvUGFwZXI+XG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHkgdmFyaWFudD1cImRpc3BsYXkzXCIgZ3V0dGVyQm90dG9tPlxuICAgICAgICAgICAgICAgICAgICAgICAgTm8gbW92aWVzIGZvdW5kXG4gICAgICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5GaWxtc0NvbnRhaW5lci5wcm9wVHlwZXMgPSB7XG4gICAgZmlsbXNEYXRhOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgb3BlblRyYWlsZXI6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKEZpbG1zQ29udGFpbmVyKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./public/javascripts/src/components/FilmsList.jsx\n");
/***/ }),
@@ -3461,6 +3605,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac
/***/ }),
+/***/ "./public/javascripts/src/components/TrailerModal.jsx":
+/*!************************************************************!*\
+ !*** ./public/javascripts/src/components/TrailerModal.jsx ***!
+ \************************************************************/
+/*! exports provided: default */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/core/styles */ \"./node_modules/@material-ui/core/styles/index.js\");\n/* harmony import */ var _material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core/Typography */ \"./node_modules/@material-ui/core/Typography/index.js\");\n/* harmony import */ var _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material-ui/core/Modal */ \"./node_modules/@material-ui/core/Modal/index.js\");\n/* harmony import */ var _material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core/Button */ \"./node_modules/@material-ui/core/Button/index.js\");\n/* harmony import */ var _material_ui_core_Button__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\n\nconst YOUTUBE_VIDEO_PREFIX = 'https://www.youtube.com/embed/';\n\nfunction getModalStyle() {\n const top = 50;\n const left = 50;\n\n return {\n top: `${top}%`,\n left: `${left}%`,\n transform: `translate(-${top}%, -${left}%)`\n };\n}\n\nconst styles = theme => ({\n paper: {\n position: 'absolute',\n width: theme.spacing.unit * 50,\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[5],\n padding: theme.spacing.unit * 4\n }\n});\n\nclass TrailerModal extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n // constructor(props) {\n // super(props);\n // this.handleClose = this.handleClose.bind(this);\n // }\n\n render() {\n const { classes, isModalOpen, videoId, handleClose } = this.props;\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Modal__WEBPACK_IMPORTED_MODULE_4___default.a,\n {\n 'aria-labelledby': 'Trailer',\n 'aria-describedby': 'Modal with movie trailer video',\n open: isModalOpen,\n onClose: handleClose\n },\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n 'div',\n { style: getModalStyle(), className: classes.paper },\n isModalOpen && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement('iframe', {\n width: '100%',\n height: '315',\n src: YOUTUBE_VIDEO_PREFIX + videoId,\n frameBorder: '0',\n allow: 'autoplay; encrypted-media',\n allowFullScreen: true\n }),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default.a,\n { variant: 'title', id: 'modal-title' },\n 'Text in a modal'\n ),\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\n _material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3___default.a,\n { variant: 'subheading', id: 'simple-modal-description' },\n 'Duis mollis, est non commodo luctus, nisi erat porttitor ligula.'\n )\n )\n );\n }\n}\n\nTrailerModal.propTypes = {\n classes: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n videoId: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string.isRequired,\n isModalOpen: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired,\n handleClose: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired\n};\n\nconst TrailerModalStyled = Object(_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_2__[\"withStyles\"])(styles)(TrailerModal);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (TrailerModalStyled);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wdWJsaWMvamF2YXNjcmlwdHMvc3JjL2NvbXBvbmVudHMvVHJhaWxlck1vZGFsLmpzeD8xZWIyIl0sIm5hbWVzIjpbIllPVVRVQkVfVklERU9fUFJFRklYIiwiZ2V0TW9kYWxTdHlsZSIsInRvcCIsImxlZnQiLCJ0cmFuc2Zvcm0iLCJzdHlsZXMiLCJ0aGVtZSIsInBhcGVyIiwicG9zaXRpb24iLCJ3aWR0aCIsInNwYWNpbmciLCJ1bml0IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsImJhY2tncm91bmQiLCJib3hTaGFkb3ciLCJzaGFkb3dzIiwicGFkZGluZyIsIlRyYWlsZXJNb2RhbCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwiY2xhc3NlcyIsImlzTW9kYWxPcGVuIiwidmlkZW9JZCIsImhhbmRsZUNsb3NlIiwicHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwiYm9vbCIsImZ1bmMiLCJUcmFpbGVyTW9kYWxTdHlsZWQiLCJ3aXRoU3R5bGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU1BLHVCQUF1QixnQ0FBN0I7O0FBRUEsU0FBU0MsYUFBVCxHQUF5QjtBQUNyQixVQUFNQyxNQUFNLEVBQVo7QUFDQSxVQUFNQyxPQUFPLEVBQWI7O0FBRUEsV0FBTztBQUNIRCxhQUFNLEdBQUVBLEdBQUksR0FEVDtBQUVIQyxjQUFPLEdBQUVBLElBQUssR0FGWDtBQUdIQyxtQkFBWSxjQUFhRixHQUFJLE9BQU1DLElBQUs7QUFIckMsS0FBUDtBQUtIOztBQUVELE1BQU1FLFNBQVNDLFVBQVU7QUFDckJDLFdBQU87QUFDSEMsa0JBQVUsVUFEUDtBQUVIQyxlQUFPSCxNQUFNSSxPQUFOLENBQWNDLElBQWQsR0FBcUIsRUFGekI7QUFHSEMseUJBQWlCTixNQUFNTyxPQUFOLENBQWNDLFVBQWQsQ0FBeUJQLEtBSHZDO0FBSUhRLG1CQUFXVCxNQUFNVSxPQUFOLENBQWMsQ0FBZCxDQUpSO0FBS0hDLGlCQUFTWCxNQUFNSSxPQUFOLENBQWNDLElBQWQsR0FBcUI7QUFMM0I7QUFEYyxDQUFWLENBQWY7O0FBVUEsTUFBTU8sWUFBTixTQUEyQiw0Q0FBQUMsQ0FBTUMsU0FBakMsQ0FBMkM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7O0FBRUFDLGFBQVM7QUFDTCxjQUFNLEVBQUVDLE9BQUYsRUFBV0MsV0FBWCxFQUF3QkMsT0FBeEIsRUFBaUNDLFdBQWpDLEtBQWlELEtBQUtDLEtBQTVEOztBQUVBLGVBQ0k7QUFBQywwRUFBRDtBQUFBO0FBQ0ksbUNBQWdCLFNBRHBCO0FBRUksb0NBQWlCLGdDQUZyQjtBQUdJLHNCQUFNSCxXQUhWO0FBSUkseUJBQVNFO0FBSmI7QUFNSTtBQUFBO0FBQUEsa0JBQUssT0FBT3hCLGVBQVosRUFBNkIsV0FBV3FCLFFBQVFmLEtBQWhEO0FBQ0tnQiwrQkFDRztBQUNJLDJCQUFNLE1BRFY7QUFFSSw0QkFBTyxLQUZYO0FBR0kseUJBQUt2Qix1QkFBdUJ3QixPQUhoQztBQUlJLGlDQUFZLEdBSmhCO0FBS0ksMkJBQU0sMkJBTFY7QUFNSTtBQU5KLGtCQUZSO0FBV0k7QUFBQyx1RkFBRDtBQUFBLHNCQUFZLFNBQVEsT0FBcEIsRUFBNEIsSUFBRyxhQUEvQjtBQUFBO0FBQUEsaUJBWEo7QUFjSTtBQUFDLHVGQUFEO0FBQUEsc0JBQVksU0FBUSxZQUFwQixFQUFpQyxJQUFHLDBCQUFwQztBQUFBO0FBQUE7QUFkSjtBQU5KLFNBREo7QUEyQkg7QUFwQ3NDOztBQXVDM0NOLGFBQWFTLFNBQWIsR0FBeUI7QUFDckJMLGFBQVMsaURBQUFNLENBQVVDLE1BQVYsQ0FBaUJDLFVBREw7QUFFckJOLGFBQVMsaURBQUFJLENBQVVHLE1BQVYsQ0FBaUJELFVBRkw7QUFHckJQLGlCQUFhLGlEQUFBSyxDQUFVSSxJQUFWLENBQWVGLFVBSFA7QUFJckJMLGlCQUFhLGlEQUFBRyxDQUFVSyxJQUFWLENBQWVIO0FBSlAsQ0FBekI7O0FBT0EsTUFBTUkscUJBQXFCLDJFQUFBQyxDQUFXOUIsTUFBWCxFQUFtQmEsWUFBbkIsQ0FBM0I7O0FBRUEsK0RBQWVnQixrQkFBZiIsImZpbGUiOiIuL3B1YmxpYy9qYXZhc2NyaXB0cy9zcmMvY29tcG9uZW50cy9UcmFpbGVyTW9kYWwuanN4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCBUeXBvZ3JhcGh5IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1R5cG9ncmFwaHknO1xuaW1wb3J0IE1vZGFsIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL01vZGFsJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcblxuY29uc3QgWU9VVFVCRV9WSURFT19QUkVGSVggPSAnaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJztcblxuZnVuY3Rpb24gZ2V0TW9kYWxTdHlsZSgpIHtcbiAgICBjb25zdCB0b3AgPSA1MDtcbiAgICBjb25zdCBsZWZ0ID0gNTA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0b3A6IGAke3RvcH0lYCxcbiAgICAgICAgbGVmdDogYCR7bGVmdH0lYCxcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlKC0ke3RvcH0lLCAtJHtsZWZ0fSUpYFxuICAgIH07XG59XG5cbmNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gICAgcGFwZXI6IHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHdpZHRoOiB0aGVtZS5zcGFjaW5nLnVuaXQgKiA1MCxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQucGFwZXIsXG4gICAgICAgIGJveFNoYWRvdzogdGhlbWUuc2hhZG93c1s1XSxcbiAgICAgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZy51bml0ICogNFxuICAgIH1cbn0pO1xuXG5jbGFzcyBUcmFpbGVyTW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIC8vIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgLy8gICAgIHN1cGVyKHByb3BzKTtcbiAgICAvLyAgICAgdGhpcy5oYW5kbGVDbG9zZSA9IHRoaXMuaGFuZGxlQ2xvc2UuYmluZCh0aGlzKTtcbiAgICAvLyB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIGNvbnN0IHsgY2xhc3NlcywgaXNNb2RhbE9wZW4sIHZpZGVvSWQsIGhhbmRsZUNsb3NlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8TW9kYWxcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJUcmFpbGVyXCJcbiAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiTW9kYWwgd2l0aCBtb3ZpZSB0cmFpbGVyIHZpZGVvXCJcbiAgICAgICAgICAgICAgICBvcGVuPXtpc01vZGFsT3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtnZXRNb2RhbFN0eWxlKCl9IGNsYXNzTmFtZT17Y2xhc3Nlcy5wYXBlcn0+XG4gICAgICAgICAgICAgICAgICAgIHtpc01vZGFsT3BlbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIzMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17WU9VVFVCRV9WSURFT19QUkVGSVggKyB2aWRlb0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3c9XCJhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJ0aXRsZVwiIGlkPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRleHQgaW4gYSBtb2RhbFxuICAgICAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG4gICAgICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJzdWJoZWFkaW5nXCIgaWQ9XCJzaW1wbGUtbW9kYWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIER1aXMgbW9sbGlzLCBlc3Qgbm9uIGNvbW1vZG8gbHVjdHVzLCBuaXNpIGVyYXQgcG9ydHRpdG9yIGxpZ3VsYS5cbiAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9Nb2RhbD5cbiAgICAgICAgKTtcbiAgICB9XG59XG5cblRyYWlsZXJNb2RhbC5wcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgIHZpZGVvSWQ6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBpc01vZGFsT3BlbjogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgICBoYW5kbGVDbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxufTtcblxuY29uc3QgVHJhaWxlck1vZGFsU3R5bGVkID0gd2l0aFN0eWxlcyhzdHlsZXMpKFRyYWlsZXJNb2RhbCk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYWlsZXJNb2RhbFN0eWxlZDtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./public/javascripts/src/components/TrailerModal.jsx\n");
+
+/***/ }),
+
/***/ "./public/javascripts/src/utils/filmsAPI.js":
/*!**************************************************!*\
!*** ./public/javascripts/src/utils/filmsAPI.js ***!
diff --git a/public/javascripts/src/Layout.jsx b/public/javascripts/src/Layout.jsx
index f7ad5f2..9fef219 100644
--- a/public/javascripts/src/Layout.jsx
+++ b/public/javascripts/src/Layout.jsx
@@ -6,6 +6,7 @@ import _ from 'lodash';
import SearchField from './components/SearchField.jsx';
import FilmsList from './components/FilmsList.jsx';
+import TrailerModal from './components/TrailerModal.jsx';
import { searchFilms } from './utils/filmsAPI';
// import { withStyles } from '@material-ui/core/styles';
@@ -14,16 +15,29 @@ class Layout extends React.Component {
constructor(props) {
super(props);
this.state = {
- filmsList: []
+ filmsList: [],
+ trailerId: '',
+ isModalOpen: false
};
this.updateQuery = _.debounce(this.updateQuery.bind(this), 300);
+ this.openTrailerModal = this.openTrailerModal.bind(this);
+ this.closeModal = this.closeModal.bind(this);
}
updateQuery(query) {
- console.log('query', query);
if (query && query.trim().length > 2) {
searchFilms(query).then(data => this.setState({ filmsList: data }));
}
}
+ openTrailerModal(id) {
+ return () => {
+ console.log('id', id);
+ console.log('this', this);
+ this.setState({ trailerId: id, isModalOpen: true });
+ };
+ }
+ closeModal() {
+ this.setState({ isModalOpen: false });
+ }
render() {
return (
@@ -33,9 +47,14 @@ class Layout extends React.Component {
-
+
+
);
}
diff --git a/public/javascripts/src/components/FilmsList.jsx b/public/javascripts/src/components/FilmsList.jsx
index 83417ba..e3378af 100644
--- a/public/javascripts/src/components/FilmsList.jsx
+++ b/public/javascripts/src/components/FilmsList.jsx
@@ -5,6 +5,8 @@ import Grid from '@material-ui/core/Grid';
import { withStyles } from '@material-ui/core/styles';
import PropTypes from 'prop-types';
import Typography from '@material-ui/core/Typography';
+import Button from '@material-ui/core/Button';
+import MovieIcon from '@material-ui/icons/Movie';
const styles = theme => ({
poster: {
@@ -19,7 +21,7 @@ const styles = theme => ({
class FilmsContainer extends React.Component {
render() {
- const { classes } = this.props;
+ const { classes, openTrailer } = this.props;
return (
{this.props.filmsData ? (
@@ -40,11 +42,19 @@ class FilmsContainer extends React.Component {
{filmData.Year}
-
-
- watch trailer
-
-
+ {filmData.trailer ? (
+
+ ) : (
+ 'No trailer'
+ )}
@@ -61,6 +71,7 @@ class FilmsContainer extends React.Component {
FilmsContainer.propTypes = {
filmsData: PropTypes.array,
+ openTrailer: PropTypes.func.isRequired,
classes: PropTypes.object
};
diff --git a/public/javascripts/src/components/TrailerModal.jsx b/public/javascripts/src/components/TrailerModal.jsx
new file mode 100644
index 0000000..883881e
--- /dev/null
+++ b/public/javascripts/src/components/TrailerModal.jsx
@@ -0,0 +1,79 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { withStyles } from '@material-ui/core/styles';
+import Typography from '@material-ui/core/Typography';
+import Modal from '@material-ui/core/Modal';
+import Button from '@material-ui/core/Button';
+
+const YOUTUBE_VIDEO_PREFIX = 'https://www.youtube.com/embed/';
+
+function getModalStyle() {
+ const top = 50;
+ const left = 50;
+
+ return {
+ top: `${top}%`,
+ left: `${left}%`,
+ transform: `translate(-${top}%, -${left}%)`
+ };
+}
+
+const styles = theme => ({
+ paper: {
+ position: 'absolute',
+ width: theme.spacing.unit * 50,
+ backgroundColor: theme.palette.background.paper,
+ boxShadow: theme.shadows[5],
+ padding: theme.spacing.unit * 4
+ }
+});
+
+class TrailerModal extends React.Component {
+ // constructor(props) {
+ // super(props);
+ // this.handleClose = this.handleClose.bind(this);
+ // }
+
+ render() {
+ const { classes, isModalOpen, videoId, handleClose } = this.props;
+
+ return (
+
+
+ {isModalOpen && (
+
+ )}
+
+ Text in a modal
+
+
+ Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
+
+
+
+ );
+ }
+}
+
+TrailerModal.propTypes = {
+ classes: PropTypes.object.isRequired,
+ videoId: PropTypes.string.isRequired,
+ isModalOpen: PropTypes.bool.isRequired,
+ handleClose: PropTypes.func.isRequired
+};
+
+const TrailerModalStyled = withStyles(styles)(TrailerModal);
+
+export default TrailerModalStyled;
diff --git a/routes/imdb.js b/routes/imdb.js
index 2089e7e..1185357 100644
--- a/routes/imdb.js
+++ b/routes/imdb.js
@@ -2,11 +2,12 @@ var express = require('express');
var router = express.Router();
var trailersExtractor = require('../utils/trailersExtractor');
+var imdbClient = require('../utils/imdbClient');
/* GET home page. */
router.get('/', function(req, res) {
- var query = req.param('query');
- var id = req.param('id');
+ var query = req.query['query'];
+ var id = req.query['id'];
if (query) {
trailersExtractor
@@ -19,7 +20,7 @@ router.get('/', function(req, res) {
return res.status(500).send(err);
});
} else if (id) {
- trailersExtractor
+ imdbClient
.get(id)
.then(data => {
res.json(data);
diff --git a/utils/trailersExtractor.js b/utils/trailersExtractor.js
index 629f49e..42bbfbf 100644
--- a/utils/trailersExtractor.js
+++ b/utils/trailersExtractor.js
@@ -3,23 +3,24 @@ const youtubeClient = require('./youtubeClient');
const searchTrailers = query =>
imdbClient.search(query).then(data => {
- var youtubeDataPromises = [];
if (data.length) {
- youtubeDataPromises = data.map(movie => youtubeClient.searchTrailer(movie.Title));
- }
- return Promise.all(youtubeDataPromises)
- .then(searchTrailerResult => ({
- trailers: searchTrailerResult,
- movies: data
- }))
- .then(data => {
- var result = [];
- data.movies.forEach((el, index) => {
- el.trailer = data.trailers[index];
- result.push(el);
+ var youtubeDataPromises = data.map(movie => youtubeClient.searchTrailer(movie.Title));
+ return Promise.all(youtubeDataPromises)
+ .then(searchTrailerResult => ({
+ trailers: searchTrailerResult,
+ movies: data
+ }))
+ .then(data => {
+ var result = [];
+ data.movies.forEach((el, index) => {
+ el.trailer = data.trailers[index];
+ result.push(el);
+ });
+ return result;
});
- return result;
- });
+ } else {
+ return [];
+ }
});
module.exports = {
diff --git a/yarn.lock b/yarn.lock
index 8651350..5f1dff9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -41,6 +41,12 @@
scroll "^2.0.3"
warning "^4.0.1"
+"@material-ui/icons@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-1.1.0.tgz#4d025df7b0ba6ace8d6710079ed76013a4d26595"
+ dependencies:
+ recompose "^0.26.0 || ^0.27.0"
+
"@types/jss@^9.5.3":
version "9.5.3"
resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.3.tgz#0c106de3fe0b324cd4173fac7dab26c12cda624e"