diff --git a/client/source/sass/base/_layout.scss b/client/source/sass/base/_layout.scss index 9ab866b9..b184d6e3 100644 --- a/client/source/sass/base/_layout.scss +++ b/client/source/sass/base/_layout.scss @@ -61,7 +61,6 @@ body { &__list { &__wrapper { - display: flex; flex: 1; &--custom-scroll { diff --git a/client/source/sass/components/_torrents.scss b/client/source/sass/components/_torrents.scss index 789062ac..ab7686d4 100644 --- a/client/source/sass/components/_torrents.scss +++ b/client/source/sass/components/_torrents.scss @@ -34,6 +34,7 @@ list-style: none; max-width: 100%; opacity: 1; + overflow: auto; transition: opacity 1s; user-select: none; z-index: 1; diff --git a/client/source/scripts/components/panels/Sidebar.js b/client/source/scripts/components/panels/Sidebar.js index 3878ea30..497e3a71 100644 --- a/client/source/scripts/components/panels/Sidebar.js +++ b/client/source/scripts/components/panels/Sidebar.js @@ -1,7 +1,7 @@ import React from 'react'; import ClientStats from '../sidebar/TransferData'; -import CustomScrollbars from '../ui/CustomScrollbars'; +// import CustomScrollbars from '../ui/CustomScrollbars'; import SearchBox from '../forms/SearchBox'; import SpeedLimitDropdown from '../sidebar/SpeedLimitDropdown'; import StatusFilters from '../sidebar/StatusFilters'; @@ -10,13 +10,13 @@ import TrackerFilters from '../sidebar/TrackerFilters'; class Sidebar extends React.Component { render() { return ( - +
- +
); } } diff --git a/client/source/scripts/components/torrent-list/TorrentList.js b/client/source/scripts/components/torrent-list/TorrentList.js index 7db48c07..da5c19ec 100644 --- a/client/source/scripts/components/torrent-list/TorrentList.js +++ b/client/source/scripts/components/torrent-list/TorrentList.js @@ -4,7 +4,7 @@ import CSSTransitionGroup from 'react-addons-css-transition-group'; import React from 'react'; import ReactDOM from 'react-dom'; -import CustomScrollbars from '../ui/CustomScrollbars'; +// import CustomScrollbars from '../ui/CustomScrollbars'; import EventTypes from '../../constants/EventTypes'; import LoadingIndicator from '../ui/LoadingIndicator'; import Torrent from './Torrent'; @@ -165,7 +165,8 @@ export default class TorrentListContainer extends React.Component { setScrollPosition() { if (this.refs.torrentList) { this.setState({ - scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop() + // scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop() + scrollPosition: ReactDOM.findDOMNode(this.refs.torrentList).scrollTop }); } } @@ -173,7 +174,8 @@ export default class TorrentListContainer extends React.Component { setViewportHeight() { if (this.refs.torrentList) { this.setState({ - viewportHeight: this.refs.torrentList.refs.scrollbar.getHeight() + // viewportHeight: this.refs.torrentList.refs.scrollbar.getHeight() + viewportHeight: ReactDOM.findDOMNode(this.refs.torrentList).offsetHeight }); } } @@ -231,14 +233,12 @@ export default class TorrentListContainer extends React.Component { - - {content} - + {content} ); } diff --git a/server/assets/app.js b/server/assets/app.js index a9d0c2d3..c3c20421 100644 --- a/server/assets/app.js +++ b/server/assets/app.js @@ -1262,7 +1262,7 @@ /* 203 */ /***/ function(module, exports, __webpack_require__) { - eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _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 _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _sidebarTransferData = __webpack_require__(204);\n\nvar _sidebarTransferData2 = _interopRequireDefault(_sidebarTransferData);\n\nvar _uiCustomScrollbars = __webpack_require__(214);\n\nvar _uiCustomScrollbars2 = _interopRequireDefault(_uiCustomScrollbars);\n\nvar _formsSearchBox = __webpack_require__(229);\n\nvar _formsSearchBox2 = _interopRequireDefault(_formsSearchBox);\n\nvar _sidebarSpeedLimitDropdown = __webpack_require__(231);\n\nvar _sidebarSpeedLimitDropdown2 = _interopRequireDefault(_sidebarSpeedLimitDropdown);\n\nvar _sidebarStatusFilters = __webpack_require__(235);\n\nvar _sidebarStatusFilters2 = _interopRequireDefault(_sidebarStatusFilters);\n\nvar _sidebarTrackerFilters = __webpack_require__(250);\n\nvar _sidebarTrackerFilters2 = _interopRequireDefault(_sidebarTrackerFilters);\n\nvar Sidebar = (function (_React$Component) {\n _inherits(Sidebar, _React$Component);\n\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n _get(Object.getPrototypeOf(Sidebar.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(Sidebar, [{\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n _uiCustomScrollbars2['default'],\n { className: 'application__sidebar', inverted: true },\n _react2['default'].createElement(_sidebarSpeedLimitDropdown2['default'], null),\n _react2['default'].createElement(_sidebarTransferData2['default'], null),\n _react2['default'].createElement(_formsSearchBox2['default'], null),\n _react2['default'].createElement(_sidebarStatusFilters2['default'], null),\n _react2['default'].createElement(_sidebarTrackerFilters2['default'], null)\n );\n }\n }]);\n\n return Sidebar;\n})(_react2['default'].Component);\n\nexports['default'] = Sidebar;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9wYW5lbHMvU2lkZWJhci5qcz8zM2E1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwyREFBMkQsRUFBRSxFQUFFLHlEQUF5RCxxRUFBcUUsNkRBQTZELG9CQUFvQixHQUFHLEVBQUU7O0FBRWxqQix1Q0FBdUMsbUJBQW1CLDRCQUE0QixpREFBaUQsZ0JBQWdCLGtEQUFrRCw4REFBOEQsMEJBQTBCLDRDQUE0Qyx1QkFBdUIsa0JBQWtCLEVBQUUsT0FBTyxhQUFhLGdCQUFnQixnQkFBZ0IsZUFBZSwyQkFBMkIsb0JBQW9CLEVBQUUsRUFBRSw0QkFBNEIsbUJBQW1CLEVBQUUsT0FBTyx1QkFBdUIsNEJBQTRCLGtCQUFrQixFQUFFLDhCQUE4QixFQUFFLEVBQUU7O0FBRS9vQixzQ0FBc0MsdUNBQXVDLGtCQUFrQjs7QUFFL0YsaURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0RBQW9EO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyMDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhID0gcmVxdWlyZSgnLi4vc2lkZWJhci9UcmFuc2ZlckRhdGEnKTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJUcmFuc2ZlckRhdGEpO1xuXG52YXIgX3VpQ3VzdG9tU2Nyb2xsYmFycyA9IHJlcXVpcmUoJy4uL3VpL0N1c3RvbVNjcm9sbGJhcnMnKTtcblxudmFyIF91aUN1c3RvbVNjcm9sbGJhcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdWlDdXN0b21TY3JvbGxiYXJzKTtcblxudmFyIF9mb3Jtc1NlYXJjaEJveCA9IHJlcXVpcmUoJy4uL2Zvcm1zL1NlYXJjaEJveCcpO1xuXG52YXIgX2Zvcm1zU2VhcmNoQm94MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Zvcm1zU2VhcmNoQm94KTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TcGVlZExpbWl0RHJvcGRvd24nKTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24pO1xuXG52YXIgX3NpZGViYXJTdGF0dXNGaWx0ZXJzID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TdGF0dXNGaWx0ZXJzJyk7XG5cbnZhciBfc2lkZWJhclN0YXR1c0ZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclN0YXR1c0ZpbHRlcnMpO1xuXG52YXIgX3NpZGViYXJUcmFja2VyRmlsdGVycyA9IHJlcXVpcmUoJy4uL3NpZGViYXIvVHJhY2tlckZpbHRlcnMnKTtcblxudmFyIF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclRyYWNrZXJGaWx0ZXJzKTtcblxudmFyIFNpZGViYXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFNpZGViYXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFNpZGViYXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNpZGViYXIpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoU2lkZWJhci5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNpZGViYXIsIFt7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICBfdWlDdXN0b21TY3JvbGxiYXJzMlsnZGVmYXVsdCddLFxuICAgICAgICB7IGNsYXNzTmFtZTogJ2FwcGxpY2F0aW9uX19zaWRlYmFyJywgaW52ZXJ0ZWQ6IHRydWUgfSxcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24yWydkZWZhdWx0J10sIG51bGwpLFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfc2lkZWJhclRyYW5zZmVyRGF0YTJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9mb3Jtc1NlYXJjaEJveDJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyU3RhdHVzRmlsdGVyczJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyWydkZWZhdWx0J10sIG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTaWRlYmFyO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNpZGViYXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvcGFuZWxzL1NpZGViYXIuanNcbiAqKiBtb2R1bGUgaWQgPSAyMDNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); + eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _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 _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _sidebarTransferData = __webpack_require__(204);\n\nvar _sidebarTransferData2 = _interopRequireDefault(_sidebarTransferData);\n\n// import CustomScrollbars from '../ui/CustomScrollbars';\n\nvar _formsSearchBox = __webpack_require__(229);\n\nvar _formsSearchBox2 = _interopRequireDefault(_formsSearchBox);\n\nvar _sidebarSpeedLimitDropdown = __webpack_require__(231);\n\nvar _sidebarSpeedLimitDropdown2 = _interopRequireDefault(_sidebarSpeedLimitDropdown);\n\nvar _sidebarStatusFilters = __webpack_require__(235);\n\nvar _sidebarStatusFilters2 = _interopRequireDefault(_sidebarStatusFilters);\n\nvar _sidebarTrackerFilters = __webpack_require__(250);\n\nvar _sidebarTrackerFilters2 = _interopRequireDefault(_sidebarTrackerFilters);\n\nvar Sidebar = (function (_React$Component) {\n _inherits(Sidebar, _React$Component);\n\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n _get(Object.getPrototypeOf(Sidebar.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(Sidebar, [{\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n 'div',\n { className: 'application__sidebar' },\n _react2['default'].createElement(_sidebarSpeedLimitDropdown2['default'], null),\n _react2['default'].createElement(_sidebarTransferData2['default'], null),\n _react2['default'].createElement(_formsSearchBox2['default'], null),\n _react2['default'].createElement(_sidebarStatusFilters2['default'], null),\n _react2['default'].createElement(_sidebarTrackerFilters2['default'], null)\n );\n }\n }]);\n\n return Sidebar;\n})(_react2['default'].Component);\n\nexports['default'] = Sidebar;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9wYW5lbHMvU2lkZWJhci5qcz8zM2E1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwyREFBMkQsRUFBRSxFQUFFLHlEQUF5RCxxRUFBcUUsNkRBQTZELG9CQUFvQixHQUFHLEVBQUU7O0FBRWxqQix1Q0FBdUMsbUJBQW1CLDRCQUE0QixpREFBaUQsZ0JBQWdCLGtEQUFrRCw4REFBOEQsMEJBQTBCLDRDQUE0Qyx1QkFBdUIsa0JBQWtCLEVBQUUsT0FBTyxhQUFhLGdCQUFnQixnQkFBZ0IsZUFBZSwyQkFBMkIsb0JBQW9CLEVBQUUsRUFBRSw0QkFBNEIsbUJBQW1CLEVBQUUsT0FBTyx1QkFBdUIsNEJBQTRCLGtCQUFrQixFQUFFLDhCQUE4QixFQUFFLEVBQUU7O0FBRS9vQixzQ0FBc0MsdUNBQXVDLGtCQUFrQjs7QUFFL0YsaURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0NBQW9DO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyMDMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhID0gcmVxdWlyZSgnLi4vc2lkZWJhci9UcmFuc2ZlckRhdGEnKTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJUcmFuc2ZlckRhdGEpO1xuXG4vLyBpbXBvcnQgQ3VzdG9tU2Nyb2xsYmFycyBmcm9tICcuLi91aS9DdXN0b21TY3JvbGxiYXJzJztcblxudmFyIF9mb3Jtc1NlYXJjaEJveCA9IHJlcXVpcmUoJy4uL2Zvcm1zL1NlYXJjaEJveCcpO1xuXG52YXIgX2Zvcm1zU2VhcmNoQm94MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Zvcm1zU2VhcmNoQm94KTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TcGVlZExpbWl0RHJvcGRvd24nKTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24pO1xuXG52YXIgX3NpZGViYXJTdGF0dXNGaWx0ZXJzID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TdGF0dXNGaWx0ZXJzJyk7XG5cbnZhciBfc2lkZWJhclN0YXR1c0ZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclN0YXR1c0ZpbHRlcnMpO1xuXG52YXIgX3NpZGViYXJUcmFja2VyRmlsdGVycyA9IHJlcXVpcmUoJy4uL3NpZGViYXIvVHJhY2tlckZpbHRlcnMnKTtcblxudmFyIF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclRyYWNrZXJGaWx0ZXJzKTtcblxudmFyIFNpZGViYXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFNpZGViYXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFNpZGViYXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNpZGViYXIpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoU2lkZWJhci5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNpZGViYXIsIFt7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZGl2JyxcbiAgICAgICAgeyBjbGFzc05hbWU6ICdhcHBsaWNhdGlvbl9fc2lkZWJhcicgfSxcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24yWydkZWZhdWx0J10sIG51bGwpLFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfc2lkZWJhclRyYW5zZmVyRGF0YTJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9mb3Jtc1NlYXJjaEJveDJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyU3RhdHVzRmlsdGVyczJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyWydkZWZhdWx0J10sIG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTaWRlYmFyO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNpZGViYXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvcGFuZWxzL1NpZGViYXIuanNcbiAqKiBtb2R1bGUgaWQgPSAyMDNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); /***/ }, /* 204 */ @@ -1325,96 +1325,21 @@ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _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 _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _BaseIcon2 = __webpack_require__(176);\n\nvar _BaseIcon3 = _interopRequireDefault(_BaseIcon2);\n\nvar Upload = (function (_BaseIcon) {\n _inherits(Upload, _BaseIcon);\n\n function Upload() {\n _classCallCheck(this, Upload);\n\n _get(Object.getPrototypeOf(Upload.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(Upload, [{\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n 'svg',\n { className: 'icon icon--upload ' + this.props.className,\n xmlns: this.getXmlns(), viewBox: this.getViewBox() },\n _react2['default'].createElement('rect', { x: '28.2', y: '4.5', width: '3.7', height: '55.5' }),\n _react2['default'].createElement('polygon', { points: '30,0 48.2,27.3 45.1,29.3 30,6.7 14.9,29.3 11.8,27.3 ' })\n );\n }\n }]);\n\n return Upload;\n})(_BaseIcon3['default']);\n\nexports['default'] = Upload;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9pY29ucy9VcGxvYWQuanM/N2FkOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsdUNBQXVDLG1CQUFtQiw0QkFBNEIsaURBQWlELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sYUFBYSxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUUvb0Isc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsOERBQThEO0FBQzlELGtEQUFrRCxvREFBb0Q7QUFDdEcscURBQXFELGlFQUFpRTtBQUN0SDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyMTMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9CYXNlSWNvbjIgPSByZXF1aXJlKCcuL0Jhc2VJY29uJyk7XG5cbnZhciBfQmFzZUljb24zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfQmFzZUljb24yKTtcblxudmFyIFVwbG9hZCA9IChmdW5jdGlvbiAoX0Jhc2VJY29uKSB7XG4gIF9pbmhlcml0cyhVcGxvYWQsIF9CYXNlSWNvbik7XG5cbiAgZnVuY3Rpb24gVXBsb2FkKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBVcGxvYWQpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoVXBsb2FkLnByb3RvdHlwZSksICdjb25zdHJ1Y3RvcicsIHRoaXMpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVXBsb2FkLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgJ3N2ZycsXG4gICAgICAgIHsgY2xhc3NOYW1lOiAnaWNvbiBpY29uLS11cGxvYWQgJyArIHRoaXMucHJvcHMuY2xhc3NOYW1lLFxuICAgICAgICAgIHhtbG5zOiB0aGlzLmdldFhtbG5zKCksIHZpZXdCb3g6IHRoaXMuZ2V0Vmlld0JveCgpIH0sXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdyZWN0JywgeyB4OiAnMjguMicsIHk6ICc0LjUnLCB3aWR0aDogJzMuNycsIGhlaWdodDogJzU1LjUnIH0pLFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgncG9seWdvbicsIHsgcG9pbnRzOiAnMzAsMCA0OC4yLDI3LjMgNDUuMSwyOS4zIDMwLDYuNyAxNC45LDI5LjMgMTEuOCwyNy4zICcgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFVwbG9hZDtcbn0pKF9CYXNlSWNvbjNbJ2RlZmF1bHQnXSk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFVwbG9hZDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9pY29ucy9VcGxvYWQuanNcbiAqKiBtb2R1bGUgaWQgPSAyMTNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); /***/ }, -/* 214 */ -/***/ function(module, exports, __webpack_require__) { - - eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\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 _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\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 _classnames2 = __webpack_require__(171);\n\nvar _classnames3 = _interopRequireDefault(_classnames2);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactCustomScrollbars = __webpack_require__(215);\n\nvar CustomScrollbar = (function (_React$Component) {\n _inherits(CustomScrollbar, _React$Component);\n\n function CustomScrollbar() {\n _classCallCheck(this, CustomScrollbar);\n\n _get(Object.getPrototypeOf(CustomScrollbar.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(CustomScrollbar, [{\n key: 'getHorizontalThumb',\n value: function getHorizontalThumb(props) {\n return _react2['default'].createElement('div', _extends({}, props, {\n className: 'scrollbars__thumb scrollbars__thumb--horizontal' }));\n }\n }, {\n key: 'getVerticalThumb',\n value: function getVerticalThumb(props) {\n return _react2['default'].createElement('div', _extends({}, props, {\n className: 'scrollbars__thumb scrollbars__thumb--vertical' }));\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames;\n\n var classes = (0, _classnames3['default'])('scrollbars', (_classnames = {}, _defineProperty(_classnames, this.props.className, this.props.className), _defineProperty(_classnames, 'is-inverted', this.props.inverted), _classnames));\n\n return _react2['default'].createElement(\n _reactCustomScrollbars.Scrollbars,\n {\n className: classes,\n ref: 'scrollbar',\n renderThumbHorizontal: this.getHorizontalThumb,\n renderThumbVertical: this.getVerticalThumb,\n onScroll: this.props.scrollHandler },\n this.props.children\n );\n }\n }]);\n\n return CustomScrollbar;\n})(_react2['default'].Component);\n\nexports['default'] = CustomScrollbar;\n\nCustomScrollbar.defaultProps = {\n className: '',\n inverted: false,\n scrollHandler: null\n};\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy91aS9DdXN0b21TY3JvbGxiYXJzLmpzP2RiN2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsbURBQW1ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsZUFBZTs7QUFFOVAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFLEVBQUUseURBQXlELHFFQUFxRSw2REFBNkQsb0JBQW9CLEdBQUcsRUFBRTs7QUFFbGpCLHVDQUF1QyxtQkFBbUIsNEJBQTRCLGlEQUFpRCxnQkFBZ0Isa0RBQWtELDhEQUE4RCwwQkFBMEIsNENBQTRDLHVCQUF1QixrQkFBa0IsRUFBRSxPQUFPLGFBQWEsZ0JBQWdCLGdCQUFnQixlQUFlLDJCQUEyQixvQkFBb0IsRUFBRSxFQUFFLDRCQUE0QixtQkFBbUIsRUFBRSxPQUFPLHVCQUF1Qiw0QkFBNEIsa0JBQWtCLEVBQUUsOEJBQThCLEVBQUUsRUFBRTs7QUFFL29CLHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRiwyQ0FBMkMsa0JBQWtCLGtDQUFrQyxxRUFBcUUsRUFBRSxFQUFFLE9BQU8sa0JBQWtCLEVBQUUsWUFBWTs7QUFFL00saURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsZ0VBQWdFO0FBQ2hFLG9FQUFvRTtBQUNwRTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUEsZ0ZBQWdGOztBQUVoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjE0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxudmFyIF9nZXQgPSBmdW5jdGlvbiBnZXQoX3gsIF94MiwgX3gzKSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94LCBwcm9wZXJ0eSA9IF94MiwgcmVjZWl2ZXIgPSBfeDM7IF9hZ2FpbiA9IGZhbHNlOyBpZiAob2JqZWN0ID09PSBudWxsKSBvYmplY3QgPSBGdW5jdGlvbi5wcm90b3R5cGU7IHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3BlcnR5KTsgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkgeyB2YXIgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCk7IGlmIChwYXJlbnQgPT09IG51bGwpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSBlbHNlIHsgX3ggPSBwYXJlbnQ7IF94MiA9IHByb3BlcnR5OyBfeDMgPSByZWNlaXZlcjsgX2FnYWluID0gdHJ1ZTsgZGVzYyA9IHBhcmVudCA9IHVuZGVmaW5lZDsgY29udGludWUgX2Z1bmN0aW9uOyB9IH0gZWxzZSBpZiAoJ3ZhbHVlJyBpbiBkZXNjKSB7IHJldHVybiBkZXNjLnZhbHVlOyB9IGVsc2UgeyB2YXIgZ2V0dGVyID0gZGVzYy5nZXQ7IGlmIChnZXR0ZXIgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IHJldHVybiBnZXR0ZXIuY2FsbChyZWNlaXZlcik7IH0gfSB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2NsYXNzbmFtZXMyID0gcmVxdWlyZSgnY2xhc3NuYW1lcycpO1xuXG52YXIgX2NsYXNzbmFtZXMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NuYW1lczIpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3RDdXN0b21TY3JvbGxiYXJzID0gcmVxdWlyZSgncmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMnKTtcblxudmFyIEN1c3RvbVNjcm9sbGJhciA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ3VzdG9tU2Nyb2xsYmFyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBDdXN0b21TY3JvbGxiYXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEN1c3RvbVNjcm9sbGJhcik7XG5cbiAgICBfZ2V0KE9iamVjdC5nZXRQcm90b3R5cGVPZihDdXN0b21TY3JvbGxiYXIucHJvdG90eXBlKSwgJ2NvbnN0cnVjdG9yJywgdGhpcykuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDdXN0b21TY3JvbGxiYXIsIFt7XG4gICAga2V5OiAnZ2V0SG9yaXpvbnRhbFRodW1iJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0SG9yaXpvbnRhbFRodW1iKHByb3BzKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6ICdzY3JvbGxiYXJzX190aHVtYiBzY3JvbGxiYXJzX190aHVtYi0taG9yaXpvbnRhbCcgfSkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZlcnRpY2FsVGh1bWInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWZXJ0aWNhbFRodW1iKHByb3BzKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6ICdzY3JvbGxiYXJzX190aHVtYiBzY3JvbGxiYXJzX190aHVtYi0tdmVydGljYWwnIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzbmFtZXM7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gKDAsIF9jbGFzc25hbWVzM1snZGVmYXVsdCddKSgnc2Nyb2xsYmFycycsIChfY2xhc3NuYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIHRoaXMucHJvcHMuY2xhc3NOYW1lLCB0aGlzLnByb3BzLmNsYXNzTmFtZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NuYW1lcywgJ2lzLWludmVydGVkJywgdGhpcy5wcm9wcy5pbnZlcnRlZCksIF9jbGFzc25hbWVzKSk7XG5cbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgX3JlYWN0Q3VzdG9tU2Nyb2xsYmFycy5TY3JvbGxiYXJzLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgICAgICAgIHJlZjogJ3Njcm9sbGJhcicsXG4gICAgICAgICAgcmVuZGVyVGh1bWJIb3Jpem9udGFsOiB0aGlzLmdldEhvcml6b250YWxUaHVtYixcbiAgICAgICAgICByZW5kZXJUaHVtYlZlcnRpY2FsOiB0aGlzLmdldFZlcnRpY2FsVGh1bWIsXG4gICAgICAgICAgb25TY3JvbGw6IHRoaXMucHJvcHMuc2Nyb2xsSGFuZGxlciB9LFxuICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDdXN0b21TY3JvbGxiYXI7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ3VzdG9tU2Nyb2xsYmFyO1xuXG5DdXN0b21TY3JvbGxiYXIuZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICBpbnZlcnRlZDogZmFsc2UsXG4gIHNjcm9sbEhhbmRsZXI6IG51bGxcbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvdWkvQ3VzdG9tU2Nyb2xsYmFycy5qc1xuICoqIG1vZHVsZSBpZCA9IDIxNFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ=="); - -/***/ }, -/* 215 */ -/***/ function(module, exports, __webpack_require__) { - - eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Scrollbars = undefined;\n\nvar _Scrollbars = __webpack_require__(216);\n\nvar _Scrollbars2 = _interopRequireDefault(_Scrollbars);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Scrollbars = _Scrollbars2.default;//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9pbmRleC5qcz8xM2FkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGIiwiZmlsZSI6IjIxNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuU2Nyb2xsYmFycyA9IHVuZGVmaW5lZDtcblxudmFyIF9TY3JvbGxiYXJzID0gcmVxdWlyZSgnLi9TY3JvbGxiYXJzJyk7XG5cbnZhciBfU2Nyb2xsYmFyczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TY3JvbGxiYXJzKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5TY3JvbGxiYXJzID0gX1Njcm9sbGJhcnMyLmRlZmF1bHQ7XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL2luZGV4LmpzXG4gKiogbW9kdWxlIGlkID0gMjE1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9"); - -/***/ }, -/* 216 */ -/***/ function(module, exports, __webpack_require__) { - - eval("'use strict';\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _raf2 = __webpack_require__(217);\n\nvar _raf3 = _interopRequireDefault(_raf2);\n\nvar _domCss = __webpack_require__(219);\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _getScrollbarWidth = __webpack_require__(225);\n\nvar _getScrollbarWidth2 = _interopRequireDefault(_getScrollbarWidth);\n\nvar _returnFalse = __webpack_require__(226);\n\nvar _returnFalse2 = _interopRequireDefault(_returnFalse);\n\nvar _styles = __webpack_require__(227);\n\nvar _defaultRenderElements = __webpack_require__(228);\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\nexports.default = (0, _react.createClass)({\n\n displayName: 'Scrollbars',\n\n propTypes: {\n onScroll: _react.PropTypes.func,\n renderScrollbarHorizontal: _react.PropTypes.func,\n renderScrollbarVertical: _react.PropTypes.func,\n renderThumbHorizontal: _react.PropTypes.func,\n renderThumbVertical: _react.PropTypes.func,\n renderView: _react.PropTypes.func,\n style: _react.PropTypes.object,\n children: _react.PropTypes.node\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n renderScrollbarHorizontal: _defaultRenderElements.defaultRenderScrollbarHorizontal,\n renderScrollbarVertical: _defaultRenderElements.defaultRenderScrollbarVertical,\n renderThumbHorizontal: _defaultRenderElements.defaultRenderThumbHorizontal,\n renderThumbVertical: _defaultRenderElements.defaultRenderThumbVertical,\n renderView: _defaultRenderElements.defaultRenderView\n };\n },\n componentDidMount: function componentDidMount() {\n this.addListeners();\n this.update();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.update();\n },\n componentWillUnmount: function componentWillUnmount() {\n this.removeListeners();\n if (this.timer) _raf3.default.cancel(this.timer);\n },\n getScrollLeft: function getScrollLeft() {\n var view = this.refs.view;\n\n return view.scrollLeft;\n },\n getScrollTop: function getScrollTop() {\n var view = this.refs.view;\n\n return view.scrollTop;\n },\n getScrollWidth: function getScrollWidth() {\n var view = this.refs.view;\n\n return view.scrollWidth;\n },\n getScrollHeight: function getScrollHeight() {\n var view = this.refs.view;\n\n return view.scrollHeight;\n },\n getWidth: function getWidth() {\n var view = this.refs.view;\n\n return view.clientWidth;\n },\n getHeight: function getHeight() {\n var view = this.refs.view;\n\n return view.clientHeight;\n },\n getValues: function getValues() {\n var view = this.refs.view;\n var scrollTop = view.scrollTop;\n var scrollLeft = view.scrollLeft;\n var scrollHeight = view.scrollHeight;\n var scrollWidth = view.scrollWidth;\n var clientHeight = view.clientHeight;\n var clientWidth = view.clientWidth;\n\n return {\n left: scrollLeft / (scrollWidth - clientWidth) || 0,\n top: scrollTop / (scrollHeight - clientHeight) || 0,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth,\n scrollHeight: scrollHeight,\n clientWidth: clientWidth,\n clientHeight: clientHeight\n };\n },\n scrollTop: function scrollTop() {\n var top = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\n var view = this.refs.view;\n\n view.scrollTop = top;\n },\n scrollToTop: function scrollToTop() {\n var view = this.refs.view;\n\n view.scrollTop = 0;\n },\n scrollToBottom: function scrollToBottom() {\n var view = this.refs.view;\n\n view.scrollTop = view.scrollHeight;\n },\n scrollLeft: function scrollLeft() {\n var left = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\n var view = this.refs.view;\n\n view.scrollLeft = left;\n },\n scrollToLeft: function scrollToLeft() {\n var view = this.refs.view;\n\n view.scrollLeft = 0;\n },\n scrollToRight: function scrollToRight() {\n var view = this.refs.view;\n\n view.scrollLeft = view.scrollWidth;\n },\n addListeners: function addListeners() {\n if (typeof document === 'undefined') return;\n this.refs.view.addEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2.default)()) return;\n this.refs.barVertical.addEventListener('mousedown', this.handleVerticalTrackMouseDown);\n this.refs.barHorizontal.addEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n this.refs.thumbVertical.addEventListener('mousedown', this.handleVerticalThumbMouseDown);\n this.refs.thumbHorizontal.addEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n document.addEventListener('mouseup', this.handleDocumentMouseUp);\n window.addEventListener('resize', this.handleWindowResize);\n },\n removeListeners: function removeListeners() {\n if (typeof document === 'undefined') return;\n this.refs.view.removeEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2.default)()) return;\n this.refs.barVertical.removeEventListener('mousedown', this.handleVerticalTrackMouseDown);\n this.refs.barHorizontal.removeEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n this.refs.thumbVertical.removeEventListener('mousedown', this.handleVerticalThumbMouseDown);\n this.refs.thumbHorizontal.removeEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n document.removeEventListener('mouseup', this.handleDocumentMouseUp);\n window.removeEventListener('resize', this.handleWindowResize);\n },\n handleScroll: function handleScroll(event) {\n var onScroll = this.props.onScroll;\n\n this.update(function (values) {\n if (!onScroll) return;\n onScroll(event, values);\n });\n },\n handleVerticalTrackMouseDown: function handleVerticalTrackMouseDown(event) {\n var _refs = this.refs;\n var thumbVertical = _refs.thumbVertical;\n var barVertical = _refs.barVertical;\n var view = _refs.view;\n\n var offset = Math.abs(event.target.getBoundingClientRect().top - event.clientY);\n var thumbHalf = thumbVertical.offsetHeight / 2;\n var thumbPositionPercentage = (offset - thumbHalf) * 100 / barVertical.offsetHeight;\n view.scrollTop = thumbPositionPercentage * view.scrollHeight / 100;\n },\n handleHorizontalTrackMouseDown: function handleHorizontalTrackMouseDown() {\n var _refs2 = this.refs;\n var thumbHorizontal = _refs2.thumbHorizontal;\n var barHorizontal = _refs2.barHorizontal;\n var view = _refs2.view;\n\n var offset = Math.abs(event.target.getBoundingClientRect().left - event.clientX);\n var thumbHalf = thumbHorizontal.offsetWidth / 2;\n var thumbPositionPercentage = (offset - thumbHalf) * 100 / barHorizontal.offsetWidth;\n view.scrollLeft = thumbPositionPercentage * view.scrollWidth / 100;\n },\n handleVerticalThumbMouseDown: function handleVerticalThumbMouseDown(event) {\n this.handleDragStart(event);\n var currentTarget = event.currentTarget;\n var clientY = event.clientY;\n\n this.prevPageY = currentTarget.offsetHeight - (clientY - currentTarget.getBoundingClientRect().top);\n },\n handleHorizontalThumbMouseDown: function handleHorizontalThumbMouseDown(event) {\n this.handleDragStart(event);\n var currentTarget = event.currentTarget;\n var clientX = event.clientX;\n\n this.prevPageX = currentTarget.offsetWidth - (clientX - currentTarget.getBoundingClientRect().left);\n },\n handleDocumentMouseUp: function handleDocumentMouseUp() {\n this.handleDragEnd();\n },\n handleDocumentMouseMove: function handleDocumentMouseMove(event) {\n if (this.cursorDown === false) return false;\n if (this.prevPageY) {\n var _refs3 = this.refs;\n var barVertical = _refs3.barVertical;\n var thumbVertical = _refs3.thumbVertical;\n var view = _refs3.view;\n\n var offset = (barVertical.getBoundingClientRect().top - event.clientY) * -1;\n var thumbClickPosition = thumbVertical.offsetHeight - this.prevPageY;\n var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / barVertical.offsetHeight;\n view.scrollTop = thumbPositionPercentage * view.scrollHeight / 100;\n return false;\n }\n if (this.prevPageX) {\n var _refs4 = this.refs;\n var barHorizontal = _refs4.barHorizontal;\n var thumbHorizontal = _refs4.thumbHorizontal;\n var view = _refs4.view;\n\n var offset = (barHorizontal.getBoundingClientRect().left - event.clientX) * -1;\n var thumbClickPosition = thumbHorizontal.offsetWidth - this.prevPageX;\n var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / barHorizontal.offsetWidth;\n view.scrollLeft = thumbPositionPercentage * view.scrollWidth / 100;\n return false;\n }\n },\n handleWindowResize: function handleWindowResize() {\n this.update();\n },\n handleDragStart: function handleDragStart(event) {\n if (!document) return;\n event.stopImmediatePropagation();\n this.cursorDown = true;\n (0, _domCss2.default)(document.body, _styles.disableSelectStyle);\n document.addEventListener('mousemove', this.handleDocumentMouseMove);\n document.onselectstart = _returnFalse2.default;\n },\n handleDragEnd: function handleDragEnd() {\n if (!document) return;\n this.cursorDown = false;\n this.prevPageX = this.prevPageY = 0;\n (0, _domCss2.default)(document.body, _styles.resetDisableSelectStyle);\n document.removeEventListener('mousemove', this.handleDocumentMouseMove);\n document.onselectstart = undefined;\n },\n raf: function raf(callback) {\n var _this = this;\n\n if (this.timer) _raf3.default.cancel(this.timer);\n this.timer = (0, _raf3.default)(function () {\n _this.timer = undefined;\n callback();\n });\n },\n update: function update(callback) {\n var values = this.getValues();\n var _refs5 = this.refs;\n var thumbHorizontal = _refs5.thumbHorizontal;\n var thumbVertical = _refs5.thumbVertical;\n var scrollLeft = values.scrollLeft;\n var scrollTop = values.scrollTop;\n var clientWidth = values.clientWidth;\n var clientHeight = values.clientHeight;\n var scrollWidth = values.scrollWidth;\n var scrollHeight = values.scrollHeight;\n\n var thumbHorizontalX = scrollLeft * 100 / clientWidth;\n var thumbHorizontalWidth = clientWidth * 100 / scrollWidth;\n var thumbVerticalY = scrollTop * 100 / clientHeight;\n var thumbVerticalHeight = clientHeight * 100 / scrollHeight;\n\n this.raf(function () {\n if ((0, _getScrollbarWidth2.default)()) {\n var thumbHorizontalStyle = {\n width: thumbHorizontalWidth < 100 ? thumbHorizontalWidth + '%' : 0,\n transform: 'translateX(' + thumbHorizontalX + '%)'\n };\n var thumbVerticalStyle = {\n height: thumbVerticalHeight < 100 ? thumbVerticalHeight + '%' : 0,\n transform: 'translateY(' + thumbVerticalY + '%)'\n };\n (0, _domCss2.default)(thumbHorizontal, thumbHorizontalStyle);\n (0, _domCss2.default)(thumbVertical, thumbVerticalStyle);\n }\n if (typeof callback !== 'function') return;\n callback(values);\n });\n },\n render: function render() {\n var scrollbarWidth = (0, _getScrollbarWidth2.default)();\n var _props = this.props;\n var style = _props.style;\n var renderScrollbarHorizontal = _props.renderScrollbarHorizontal;\n var renderScrollbarVertical = _props.renderScrollbarVertical;\n var renderThumbHorizontal = _props.renderThumbHorizontal;\n var renderThumbVertical = _props.renderThumbVertical;\n var renderView = _props.renderView;\n var onScroll = _props.onScroll;\n var children = _props.children;\n\n var props = _objectWithoutProperties(_props, ['style', 'renderScrollbarHorizontal', 'renderScrollbarVertical', 'renderThumbHorizontal', 'renderThumbVertical', 'renderView', 'onScroll', 'children']);\n\n var containerStyle = _extends({\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n }, style);\n\n var viewStyle = scrollbarWidth ? _extends({}, _styles.scrollbarsVisibleViewStyle, {\n right: -scrollbarWidth,\n bottom: -scrollbarWidth\n }) : _styles.scrollbarsInvisibleViewStyle;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, props, { style: containerStyle }),\n (0, _react.cloneElement)(renderView({ style: viewStyle }), { ref: 'view' }, children),\n scrollbarWidth ? (0, _react.cloneElement)(renderScrollbarHorizontal({ style: _styles.defaultScrollbarHorizontalStyle }), { ref: 'barHorizontal' }, (0, _react.cloneElement)(renderThumbHorizontal({ style: _styles.defaultThumbHorizontalStyle }), { ref: 'thumbHorizontal' })) : undefined,\n scrollbarWidth ? (0, _react.cloneElement)(renderScrollbarVertical({ style: _styles.defaultScrollbarVerticalStyle }), { ref: 'barVertical' }, (0, _react.cloneElement)(renderThumbVertical({ style: _styles.defaultThumbVerticalStyle }), { ref: 'thumbVertical' })) : undefined\n );\n }\n});//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL2luZGV4LmpzP2Y5NzAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsbURBQW1ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsZUFBZTs7QUFFOVA7QUFDQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGLDhDQUE4QyxpQkFBaUIscUJBQXFCLG9DQUFvQyw2REFBNkQsb0JBQW9CLEVBQUUsZUFBZTs7QUFFMU47O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVCxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBLHVCQUF1QixVQUFVLHdCQUF3QjtBQUN6RCxpREFBaUQsbUJBQW1CLElBQUksY0FBYztBQUN0RixpRkFBaUYsaURBQWlELElBQUksdUJBQXVCLGtEQUFrRCw2Q0FBNkMsSUFBSSx5QkFBeUI7QUFDelIsK0VBQStFLCtDQUErQyxJQUFJLHFCQUFxQixnREFBZ0QsMkNBQTJDLElBQUksdUJBQXVCO0FBQzdRO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6IjIxNi5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX3JhZjIgPSByZXF1aXJlKCdyYWYnKTtcblxudmFyIF9yYWYzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmFmMik7XG5cbnZhciBfZG9tQ3NzID0gcmVxdWlyZSgnZG9tLWNzcycpO1xuXG52YXIgX2RvbUNzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kb21Dc3MpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfZ2V0U2Nyb2xsYmFyV2lkdGggPSByZXF1aXJlKCcuLi91dGlscy9nZXRTY3JvbGxiYXJXaWR0aCcpO1xuXG52YXIgX2dldFNjcm9sbGJhcldpZHRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dldFNjcm9sbGJhcldpZHRoKTtcblxudmFyIF9yZXR1cm5GYWxzZSA9IHJlcXVpcmUoJy4uL3V0aWxzL3JldHVybkZhbHNlJyk7XG5cbnZhciBfcmV0dXJuRmFsc2UyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmV0dXJuRmFsc2UpO1xuXG52YXIgX3N0eWxlcyA9IHJlcXVpcmUoJy4vc3R5bGVzJyk7XG5cbnZhciBfZGVmYXVsdFJlbmRlckVsZW1lbnRzID0gcmVxdWlyZSgnLi9kZWZhdWx0UmVuZGVyRWxlbWVudHMnKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKG9iaiwga2V5cykgeyB2YXIgdGFyZ2V0ID0ge307IGZvciAodmFyIGkgaW4gb2JqKSB7IGlmIChrZXlzLmluZGV4T2YoaSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgaSkpIGNvbnRpbnVlOyB0YXJnZXRbaV0gPSBvYmpbaV07IH0gcmV0dXJuIHRhcmdldDsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSAoMCwgX3JlYWN0LmNyZWF0ZUNsYXNzKSh7XG5cbiAgICBkaXNwbGF5TmFtZTogJ1Njcm9sbGJhcnMnLFxuXG4gICAgcHJvcFR5cGVzOiB7XG4gICAgICAgIG9uU2Nyb2xsOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlclNjcm9sbGJhckhvcml6b250YWw6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVuZGVyU2Nyb2xsYmFyVmVydGljYWw6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVuZGVyVGh1bWJIb3Jpem9udGFsOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlclRodW1iVmVydGljYWw6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgcmVuZGVyVmlldzogX3JlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBzdHlsZTogX3JlYWN0LlByb3BUeXBlcy5vYmplY3QsXG4gICAgICAgIGNoaWxkcmVuOiBfcmVhY3QuUHJvcFR5cGVzLm5vZGVcbiAgICB9LFxuXG4gICAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZW5kZXJTY3JvbGxiYXJIb3Jpem9udGFsOiBfZGVmYXVsdFJlbmRlckVsZW1lbnRzLmRlZmF1bHRSZW5kZXJTY3JvbGxiYXJIb3Jpem9udGFsLFxuICAgICAgICAgICAgcmVuZGVyU2Nyb2xsYmFyVmVydGljYWw6IF9kZWZhdWx0UmVuZGVyRWxlbWVudHMuZGVmYXVsdFJlbmRlclNjcm9sbGJhclZlcnRpY2FsLFxuICAgICAgICAgICAgcmVuZGVyVGh1bWJIb3Jpem9udGFsOiBfZGVmYXVsdFJlbmRlckVsZW1lbnRzLmRlZmF1bHRSZW5kZXJUaHVtYkhvcml6b250YWwsXG4gICAgICAgICAgICByZW5kZXJUaHVtYlZlcnRpY2FsOiBfZGVmYXVsdFJlbmRlckVsZW1lbnRzLmRlZmF1bHRSZW5kZXJUaHVtYlZlcnRpY2FsLFxuICAgICAgICAgICAgcmVuZGVyVmlldzogX2RlZmF1bHRSZW5kZXJFbGVtZW50cy5kZWZhdWx0UmVuZGVyVmlld1xuICAgICAgICB9O1xuICAgIH0sXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmFkZExpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH0sXG4gICAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfSxcbiAgICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyKSBfcmFmMy5kZWZhdWx0LmNhbmNlbCh0aGlzLnRpbWVyKTtcbiAgICB9LFxuICAgIGdldFNjcm9sbExlZnQ6IGZ1bmN0aW9uIGdldFNjcm9sbExlZnQoKSB7XG4gICAgICAgIHZhciB2aWV3ID0gdGhpcy5yZWZzLnZpZXc7XG5cbiAgICAgICAgcmV0dXJuIHZpZXcuc2Nyb2xsTGVmdDtcbiAgICB9LFxuICAgIGdldFNjcm9sbFRvcDogZnVuY3Rpb24gZ2V0U2Nyb2xsVG9wKCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB2aWV3LnNjcm9sbFRvcDtcbiAgICB9LFxuICAgIGdldFNjcm9sbFdpZHRoOiBmdW5jdGlvbiBnZXRTY3JvbGxXaWR0aCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICByZXR1cm4gdmlldy5zY3JvbGxXaWR0aDtcbiAgICB9LFxuICAgIGdldFNjcm9sbEhlaWdodDogZnVuY3Rpb24gZ2V0U2Nyb2xsSGVpZ2h0KCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB2aWV3LnNjcm9sbEhlaWdodDtcbiAgICB9LFxuICAgIGdldFdpZHRoOiBmdW5jdGlvbiBnZXRXaWR0aCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICByZXR1cm4gdmlldy5jbGllbnRXaWR0aDtcbiAgICB9LFxuICAgIGdldEhlaWdodDogZnVuY3Rpb24gZ2V0SGVpZ2h0KCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB2aWV3LmNsaWVudEhlaWdodDtcbiAgICB9LFxuICAgIGdldFZhbHVlczogZnVuY3Rpb24gZ2V0VmFsdWVzKCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuICAgICAgICB2YXIgc2Nyb2xsVG9wID0gdmlldy5zY3JvbGxUb3A7XG4gICAgICAgIHZhciBzY3JvbGxMZWZ0ID0gdmlldy5zY3JvbGxMZWZ0O1xuICAgICAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gdmlldy5zY3JvbGxIZWlnaHQ7XG4gICAgICAgIHZhciBzY3JvbGxXaWR0aCA9IHZpZXcuc2Nyb2xsV2lkdGg7XG4gICAgICAgIHZhciBjbGllbnRIZWlnaHQgPSB2aWV3LmNsaWVudEhlaWdodDtcbiAgICAgICAgdmFyIGNsaWVudFdpZHRoID0gdmlldy5jbGllbnRXaWR0aDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogc2Nyb2xsTGVmdCAvIChzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoKSB8fCAwLFxuICAgICAgICAgICAgdG9wOiBzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSB8fCAwLFxuICAgICAgICAgICAgc2Nyb2xsTGVmdDogc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG9wLFxuICAgICAgICAgICAgc2Nyb2xsV2lkdGg6IHNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiBzY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBjbGllbnRXaWR0aDogY2xpZW50V2lkdGgsXG4gICAgICAgICAgICBjbGllbnRIZWlnaHQ6IGNsaWVudEhlaWdodFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgc2Nyb2xsVG9wOiBmdW5jdGlvbiBzY3JvbGxUb3AoKSB7XG4gICAgICAgIHZhciB0b3AgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHZpZXcuc2Nyb2xsVG9wID0gdG9wO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9Ub3A6IGZ1bmN0aW9uIHNjcm9sbFRvVG9wKCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHZpZXcuc2Nyb2xsVG9wID0gMDtcbiAgICB9LFxuICAgIHNjcm9sbFRvQm90dG9tOiBmdW5jdGlvbiBzY3JvbGxUb0JvdHRvbSgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICB2aWV3LnNjcm9sbFRvcCA9IHZpZXcuc2Nyb2xsSGVpZ2h0O1xuICAgIH0sXG4gICAgc2Nyb2xsTGVmdDogZnVuY3Rpb24gc2Nyb2xsTGVmdCgpIHtcbiAgICAgICAgdmFyIGxlZnQgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDAgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyAwIDogYXJndW1lbnRzWzBdO1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHZpZXcuc2Nyb2xsTGVmdCA9IGxlZnQ7XG4gICAgfSxcbiAgICBzY3JvbGxUb0xlZnQ6IGZ1bmN0aW9uIHNjcm9sbFRvTGVmdCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICB2aWV3LnNjcm9sbExlZnQgPSAwO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9SaWdodDogZnVuY3Rpb24gc2Nyb2xsVG9SaWdodCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICB2aWV3LnNjcm9sbExlZnQgPSB2aWV3LnNjcm9sbFdpZHRoO1xuICAgIH0sXG4gICAgYWRkTGlzdGVuZXJzOiBmdW5jdGlvbiBhZGRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcy52aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgaWYgKCEoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcy5iYXJWZXJ0aWNhbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZVZlcnRpY2FsVHJhY2tNb3VzZURvd24pO1xuICAgICAgICB0aGlzLnJlZnMuYmFySG9yaXpvbnRhbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZUhvcml6b250YWxUcmFja01vdXNlRG93bik7XG4gICAgICAgIHRoaXMucmVmcy50aHVtYlZlcnRpY2FsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlVmVydGljYWxUaHVtYk1vdXNlRG93bik7XG4gICAgICAgIHRoaXMucmVmcy50aHVtYkhvcml6b250YWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oYW5kbGVIb3Jpem9udGFsVGh1bWJNb3VzZURvd24pO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlVXApO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUpO1xuICAgIH0sXG4gICAgcmVtb3ZlTGlzdGVuZXJzOiBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcy52aWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgaWYgKCEoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcy5iYXJWZXJ0aWNhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZVZlcnRpY2FsVHJhY2tNb3VzZURvd24pO1xuICAgICAgICB0aGlzLnJlZnMuYmFySG9yaXpvbnRhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZUhvcml6b250YWxUcmFja01vdXNlRG93bik7XG4gICAgICAgIHRoaXMucmVmcy50aHVtYlZlcnRpY2FsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlVmVydGljYWxUaHVtYk1vdXNlRG93bik7XG4gICAgICAgIHRoaXMucmVmcy50aHVtYkhvcml6b250YWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oYW5kbGVIb3Jpem9udGFsVGh1bWJNb3VzZURvd24pO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlVXApO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUpO1xuICAgIH0sXG4gICAgaGFuZGxlU2Nyb2xsOiBmdW5jdGlvbiBoYW5kbGVTY3JvbGwoZXZlbnQpIHtcbiAgICAgICAgdmFyIG9uU2Nyb2xsID0gdGhpcy5wcm9wcy5vblNjcm9sbDtcblxuICAgICAgICB0aGlzLnVwZGF0ZShmdW5jdGlvbiAodmFsdWVzKSB7XG4gICAgICAgICAgICBpZiAoIW9uU2Nyb2xsKSByZXR1cm47XG4gICAgICAgICAgICBvblNjcm9sbChldmVudCwgdmFsdWVzKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICBoYW5kbGVWZXJ0aWNhbFRyYWNrTW91c2VEb3duOiBmdW5jdGlvbiBoYW5kbGVWZXJ0aWNhbFRyYWNrTW91c2VEb3duKGV2ZW50KSB7XG4gICAgICAgIHZhciBfcmVmcyA9IHRoaXMucmVmcztcbiAgICAgICAgdmFyIHRodW1iVmVydGljYWwgPSBfcmVmcy50aHVtYlZlcnRpY2FsO1xuICAgICAgICB2YXIgYmFyVmVydGljYWwgPSBfcmVmcy5iYXJWZXJ0aWNhbDtcbiAgICAgICAgdmFyIHZpZXcgPSBfcmVmcy52aWV3O1xuXG4gICAgICAgIHZhciBvZmZzZXQgPSBNYXRoLmFicyhldmVudC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gZXZlbnQuY2xpZW50WSk7XG4gICAgICAgIHZhciB0aHVtYkhhbGYgPSB0aHVtYlZlcnRpY2FsLm9mZnNldEhlaWdodCAvIDI7XG4gICAgICAgIHZhciB0aHVtYlBvc2l0aW9uUGVyY2VudGFnZSA9IChvZmZzZXQgLSB0aHVtYkhhbGYpICogMTAwIC8gYmFyVmVydGljYWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB2aWV3LnNjcm9sbFRvcCA9IHRodW1iUG9zaXRpb25QZXJjZW50YWdlICogdmlldy5zY3JvbGxIZWlnaHQgLyAxMDA7XG4gICAgfSxcbiAgICBoYW5kbGVIb3Jpem9udGFsVHJhY2tNb3VzZURvd246IGZ1bmN0aW9uIGhhbmRsZUhvcml6b250YWxUcmFja01vdXNlRG93bigpIHtcbiAgICAgICAgdmFyIF9yZWZzMiA9IHRoaXMucmVmcztcbiAgICAgICAgdmFyIHRodW1iSG9yaXpvbnRhbCA9IF9yZWZzMi50aHVtYkhvcml6b250YWw7XG4gICAgICAgIHZhciBiYXJIb3Jpem9udGFsID0gX3JlZnMyLmJhckhvcml6b250YWw7XG4gICAgICAgIHZhciB2aWV3ID0gX3JlZnMyLnZpZXc7XG5cbiAgICAgICAgdmFyIG9mZnNldCA9IE1hdGguYWJzKGV2ZW50LnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gZXZlbnQuY2xpZW50WCk7XG4gICAgICAgIHZhciB0aHVtYkhhbGYgPSB0aHVtYkhvcml6b250YWwub2Zmc2V0V2lkdGggLyAyO1xuICAgICAgICB2YXIgdGh1bWJQb3NpdGlvblBlcmNlbnRhZ2UgPSAob2Zmc2V0IC0gdGh1bWJIYWxmKSAqIDEwMCAvIGJhckhvcml6b250YWwub2Zmc2V0V2lkdGg7XG4gICAgICAgIHZpZXcuc2Nyb2xsTGVmdCA9IHRodW1iUG9zaXRpb25QZXJjZW50YWdlICogdmlldy5zY3JvbGxXaWR0aCAvIDEwMDtcbiAgICB9LFxuICAgIGhhbmRsZVZlcnRpY2FsVGh1bWJNb3VzZURvd246IGZ1bmN0aW9uIGhhbmRsZVZlcnRpY2FsVGh1bWJNb3VzZURvd24oZXZlbnQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEcmFnU3RhcnQoZXZlbnQpO1xuICAgICAgICB2YXIgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIHZhciBjbGllbnRZID0gZXZlbnQuY2xpZW50WTtcblxuICAgICAgICB0aGlzLnByZXZQYWdlWSA9IGN1cnJlbnRUYXJnZXQub2Zmc2V0SGVpZ2h0IC0gKGNsaWVudFkgLSBjdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCk7XG4gICAgfSxcbiAgICBoYW5kbGVIb3Jpem9udGFsVGh1bWJNb3VzZURvd246IGZ1bmN0aW9uIGhhbmRsZUhvcml6b250YWxUaHVtYk1vdXNlRG93bihldmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZURyYWdTdGFydChldmVudCk7XG4gICAgICAgIHZhciBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgdmFyIGNsaWVudFggPSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgIHRoaXMucHJldlBhZ2VYID0gY3VycmVudFRhcmdldC5vZmZzZXRXaWR0aCAtIChjbGllbnRYIC0gY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0KTtcbiAgICB9LFxuICAgIGhhbmRsZURvY3VtZW50TW91c2VVcDogZnVuY3Rpb24gaGFuZGxlRG9jdW1lbnRNb3VzZVVwKCkge1xuICAgICAgICB0aGlzLmhhbmRsZURyYWdFbmQoKTtcbiAgICB9LFxuICAgIGhhbmRsZURvY3VtZW50TW91c2VNb3ZlOiBmdW5jdGlvbiBoYW5kbGVEb2N1bWVudE1vdXNlTW92ZShldmVudCkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JEb3duID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5wcmV2UGFnZVkpIHtcbiAgICAgICAgICAgIHZhciBfcmVmczMgPSB0aGlzLnJlZnM7XG4gICAgICAgICAgICB2YXIgYmFyVmVydGljYWwgPSBfcmVmczMuYmFyVmVydGljYWw7XG4gICAgICAgICAgICB2YXIgdGh1bWJWZXJ0aWNhbCA9IF9yZWZzMy50aHVtYlZlcnRpY2FsO1xuICAgICAgICAgICAgdmFyIHZpZXcgPSBfcmVmczMudmlldztcblxuICAgICAgICAgICAgdmFyIG9mZnNldCA9IChiYXJWZXJ0aWNhbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLSBldmVudC5jbGllbnRZKSAqIC0xO1xuICAgICAgICAgICAgdmFyIHRodW1iQ2xpY2tQb3NpdGlvbiA9IHRodW1iVmVydGljYWwub2Zmc2V0SGVpZ2h0IC0gdGhpcy5wcmV2UGFnZVk7XG4gICAgICAgICAgICB2YXIgdGh1bWJQb3NpdGlvblBlcmNlbnRhZ2UgPSAob2Zmc2V0IC0gdGh1bWJDbGlja1Bvc2l0aW9uKSAqIDEwMCAvIGJhclZlcnRpY2FsLm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIHZpZXcuc2Nyb2xsVG9wID0gdGh1bWJQb3NpdGlvblBlcmNlbnRhZ2UgKiB2aWV3LnNjcm9sbEhlaWdodCAvIDEwMDtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wcmV2UGFnZVgpIHtcbiAgICAgICAgICAgIHZhciBfcmVmczQgPSB0aGlzLnJlZnM7XG4gICAgICAgICAgICB2YXIgYmFySG9yaXpvbnRhbCA9IF9yZWZzNC5iYXJIb3Jpem9udGFsO1xuICAgICAgICAgICAgdmFyIHRodW1iSG9yaXpvbnRhbCA9IF9yZWZzNC50aHVtYkhvcml6b250YWw7XG4gICAgICAgICAgICB2YXIgdmlldyA9IF9yZWZzNC52aWV3O1xuXG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gKGJhckhvcml6b250YWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIGV2ZW50LmNsaWVudFgpICogLTE7XG4gICAgICAgICAgICB2YXIgdGh1bWJDbGlja1Bvc2l0aW9uID0gdGh1bWJIb3Jpem9udGFsLm9mZnNldFdpZHRoIC0gdGhpcy5wcmV2UGFnZVg7XG4gICAgICAgICAgICB2YXIgdGh1bWJQb3NpdGlvblBlcmNlbnRhZ2UgPSAob2Zmc2V0IC0gdGh1bWJDbGlja1Bvc2l0aW9uKSAqIDEwMCAvIGJhckhvcml6b250YWwub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICB2aWV3LnNjcm9sbExlZnQgPSB0aHVtYlBvc2l0aW9uUGVyY2VudGFnZSAqIHZpZXcuc2Nyb2xsV2lkdGggLyAxMDA7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGhhbmRsZVdpbmRvd1Jlc2l6ZTogZnVuY3Rpb24gaGFuZGxlV2luZG93UmVzaXplKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH0sXG4gICAgaGFuZGxlRHJhZ1N0YXJ0OiBmdW5jdGlvbiBoYW5kbGVEcmFnU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgaWYgKCFkb2N1bWVudCkgcmV0dXJuO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5jdXJzb3JEb3duID0gdHJ1ZTtcbiAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKGRvY3VtZW50LmJvZHksIF9zdHlsZXMuZGlzYWJsZVNlbGVjdFN0eWxlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVEb2N1bWVudE1vdXNlTW92ZSk7XG4gICAgICAgIGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgPSBfcmV0dXJuRmFsc2UyLmRlZmF1bHQ7XG4gICAgfSxcbiAgICBoYW5kbGVEcmFnRW5kOiBmdW5jdGlvbiBoYW5kbGVEcmFnRW5kKCkge1xuICAgICAgICBpZiAoIWRvY3VtZW50KSByZXR1cm47XG4gICAgICAgIHRoaXMuY3Vyc29yRG93biA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByZXZQYWdlWCA9IHRoaXMucHJldlBhZ2VZID0gMDtcbiAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKGRvY3VtZW50LmJvZHksIF9zdHlsZXMucmVzZXREaXNhYmxlU2VsZWN0U3R5bGUpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZURvY3VtZW50TW91c2VNb3ZlKTtcbiAgICAgICAgZG9jdW1lbnQub25zZWxlY3RzdGFydCA9IHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIHJhZjogZnVuY3Rpb24gcmFmKGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICAgICAgaWYgKHRoaXMudGltZXIpIF9yYWYzLmRlZmF1bHQuY2FuY2VsKHRoaXMudGltZXIpO1xuICAgICAgICB0aGlzLnRpbWVyID0gKDAsIF9yYWYzLmRlZmF1bHQpKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIF90aGlzLnRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgfSk7XG4gICAgfSxcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShjYWxsYmFjaykge1xuICAgICAgICB2YXIgdmFsdWVzID0gdGhpcy5nZXRWYWx1ZXMoKTtcbiAgICAgICAgdmFyIF9yZWZzNSA9IHRoaXMucmVmcztcbiAgICAgICAgdmFyIHRodW1iSG9yaXpvbnRhbCA9IF9yZWZzNS50aHVtYkhvcml6b250YWw7XG4gICAgICAgIHZhciB0aHVtYlZlcnRpY2FsID0gX3JlZnM1LnRodW1iVmVydGljYWw7XG4gICAgICAgIHZhciBzY3JvbGxMZWZ0ID0gdmFsdWVzLnNjcm9sbExlZnQ7XG4gICAgICAgIHZhciBzY3JvbGxUb3AgPSB2YWx1ZXMuc2Nyb2xsVG9wO1xuICAgICAgICB2YXIgY2xpZW50V2lkdGggPSB2YWx1ZXMuY2xpZW50V2lkdGg7XG4gICAgICAgIHZhciBjbGllbnRIZWlnaHQgPSB2YWx1ZXMuY2xpZW50SGVpZ2h0O1xuICAgICAgICB2YXIgc2Nyb2xsV2lkdGggPSB2YWx1ZXMuc2Nyb2xsV2lkdGg7XG4gICAgICAgIHZhciBzY3JvbGxIZWlnaHQgPSB2YWx1ZXMuc2Nyb2xsSGVpZ2h0O1xuXG4gICAgICAgIHZhciB0aHVtYkhvcml6b250YWxYID0gc2Nyb2xsTGVmdCAqIDEwMCAvIGNsaWVudFdpZHRoO1xuICAgICAgICB2YXIgdGh1bWJIb3Jpem9udGFsV2lkdGggPSBjbGllbnRXaWR0aCAqIDEwMCAvIHNjcm9sbFdpZHRoO1xuICAgICAgICB2YXIgdGh1bWJWZXJ0aWNhbFkgPSBzY3JvbGxUb3AgKiAxMDAgLyBjbGllbnRIZWlnaHQ7XG4gICAgICAgIHZhciB0aHVtYlZlcnRpY2FsSGVpZ2h0ID0gY2xpZW50SGVpZ2h0ICogMTAwIC8gc2Nyb2xsSGVpZ2h0O1xuXG4gICAgICAgIHRoaXMucmFmKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICgoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRodW1iSG9yaXpvbnRhbFN0eWxlID0ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGh1bWJIb3Jpem9udGFsV2lkdGggPCAxMDAgPyB0aHVtYkhvcml6b250YWxXaWR0aCArICclJyA6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoJyArIHRodW1iSG9yaXpvbnRhbFggKyAnJSknXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgdGh1bWJWZXJ0aWNhbFN0eWxlID0ge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHRodW1iVmVydGljYWxIZWlnaHQgPCAxMDAgPyB0aHVtYlZlcnRpY2FsSGVpZ2h0ICsgJyUnIDogMCxcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgnICsgdGh1bWJWZXJ0aWNhbFkgKyAnJSknXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAoMCwgX2RvbUNzczIuZGVmYXVsdCkodGh1bWJIb3Jpem9udGFsLCB0aHVtYkhvcml6b250YWxTdHlsZSk7XG4gICAgICAgICAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKHRodW1iVmVydGljYWwsIHRodW1iVmVydGljYWxTdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSByZXR1cm47XG4gICAgICAgICAgICBjYWxsYmFjayh2YWx1ZXMpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgc2Nyb2xsYmFyV2lkdGggPSAoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpO1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzLnN0eWxlO1xuICAgICAgICB2YXIgcmVuZGVyU2Nyb2xsYmFySG9yaXpvbnRhbCA9IF9wcm9wcy5yZW5kZXJTY3JvbGxiYXJIb3Jpem9udGFsO1xuICAgICAgICB2YXIgcmVuZGVyU2Nyb2xsYmFyVmVydGljYWwgPSBfcHJvcHMucmVuZGVyU2Nyb2xsYmFyVmVydGljYWw7XG4gICAgICAgIHZhciByZW5kZXJUaHVtYkhvcml6b250YWwgPSBfcHJvcHMucmVuZGVyVGh1bWJIb3Jpem9udGFsO1xuICAgICAgICB2YXIgcmVuZGVyVGh1bWJWZXJ0aWNhbCA9IF9wcm9wcy5yZW5kZXJUaHVtYlZlcnRpY2FsO1xuICAgICAgICB2YXIgcmVuZGVyVmlldyA9IF9wcm9wcy5yZW5kZXJWaWV3O1xuICAgICAgICB2YXIgb25TY3JvbGwgPSBfcHJvcHMub25TY3JvbGw7XG4gICAgICAgIHZhciBjaGlsZHJlbiA9IF9wcm9wcy5jaGlsZHJlbjtcblxuICAgICAgICB2YXIgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzLCBbJ3N0eWxlJywgJ3JlbmRlclNjcm9sbGJhckhvcml6b250YWwnLCAncmVuZGVyU2Nyb2xsYmFyVmVydGljYWwnLCAncmVuZGVyVGh1bWJIb3Jpem9udGFsJywgJ3JlbmRlclRodW1iVmVydGljYWwnLCAncmVuZGVyVmlldycsICdvblNjcm9sbCcsICdjaGlsZHJlbiddKTtcblxuICAgICAgICB2YXIgY29udGFpbmVyU3R5bGUgPSBfZXh0ZW5kcyh7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJ1xuICAgICAgICB9LCBzdHlsZSk7XG5cbiAgICAgICAgdmFyIHZpZXdTdHlsZSA9IHNjcm9sbGJhcldpZHRoID8gX2V4dGVuZHMoe30sIF9zdHlsZXMuc2Nyb2xsYmFyc1Zpc2libGVWaWV3U3R5bGUsIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtc2Nyb2xsYmFyV2lkdGgsXG4gICAgICAgICAgICBib3R0b206IC1zY3JvbGxiYXJXaWR0aFxuICAgICAgICB9KSA6IF9zdHlsZXMuc2Nyb2xsYmFyc0ludmlzaWJsZVZpZXdTdHlsZTtcblxuICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAnZGl2JyxcbiAgICAgICAgICAgIF9leHRlbmRzKHt9LCBwcm9wcywgeyBzdHlsZTogY29udGFpbmVyU3R5bGUgfSksXG4gICAgICAgICAgICAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkocmVuZGVyVmlldyh7IHN0eWxlOiB2aWV3U3R5bGUgfSksIHsgcmVmOiAndmlldycgfSwgY2hpbGRyZW4pLFxuICAgICAgICAgICAgc2Nyb2xsYmFyV2lkdGggPyAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkocmVuZGVyU2Nyb2xsYmFySG9yaXpvbnRhbCh7IHN0eWxlOiBfc3R5bGVzLmRlZmF1bHRTY3JvbGxiYXJIb3Jpem9udGFsU3R5bGUgfSksIHsgcmVmOiAnYmFySG9yaXpvbnRhbCcgfSwgKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKHJlbmRlclRodW1iSG9yaXpvbnRhbCh7IHN0eWxlOiBfc3R5bGVzLmRlZmF1bHRUaHVtYkhvcml6b250YWxTdHlsZSB9KSwgeyByZWY6ICd0aHVtYkhvcml6b250YWwnIH0pKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNjcm9sbGJhcldpZHRoID8gKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKHJlbmRlclNjcm9sbGJhclZlcnRpY2FsKHsgc3R5bGU6IF9zdHlsZXMuZGVmYXVsdFNjcm9sbGJhclZlcnRpY2FsU3R5bGUgfSksIHsgcmVmOiAnYmFyVmVydGljYWwnIH0sICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShyZW5kZXJUaHVtYlZlcnRpY2FsKHsgc3R5bGU6IF9zdHlsZXMuZGVmYXVsdFRodW1iVmVydGljYWxTdHlsZSB9KSwgeyByZWY6ICd0aHVtYlZlcnRpY2FsJyB9KSkgOiB1bmRlZmluZWRcbiAgICAgICAgKTtcbiAgICB9XG59KTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9saWIvU2Nyb2xsYmFycy9pbmRleC5qc1xuICoqIG1vZHVsZSBpZCA9IDIxNlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ=="); - -/***/ }, -/* 217 */ -/***/ function(module, exports, __webpack_require__) { - - eval("var now = __webpack_require__(218)\n , global = typeof window === 'undefined' ? {} : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = global['request' + suffix]\n , caf = global['cancel' + suffix] || global['cancelRequest' + suffix]\n\nfor(var i = 0; i < vendors.length && !raf; i++) {\n raf = global[vendors[i] + 'Request' + suffix]\n caf = global[vendors[i] + 'Cancel' + suffix]\n || global[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(global, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(global, arguments)\n}\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vcmFmL2luZGV4LmpzP2UyYjkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYyw0QkFBNEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IscUNBQXFDLFVBQVU7QUFDL0M7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMTcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbm93ID0gcmVxdWlyZSgncGVyZm9ybWFuY2Utbm93JylcbiAgLCBnbG9iYWwgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IHt9IDogd2luZG93XG4gICwgdmVuZG9ycyA9IFsnbW96JywgJ3dlYmtpdCddXG4gICwgc3VmZml4ID0gJ0FuaW1hdGlvbkZyYW1lJ1xuICAsIHJhZiA9IGdsb2JhbFsncmVxdWVzdCcgKyBzdWZmaXhdXG4gICwgY2FmID0gZ2xvYmFsWydjYW5jZWwnICsgc3VmZml4XSB8fCBnbG9iYWxbJ2NhbmNlbFJlcXVlc3QnICsgc3VmZml4XVxuXG5mb3IodmFyIGkgPSAwOyBpIDwgdmVuZG9ycy5sZW5ndGggJiYgIXJhZjsgaSsrKSB7XG4gIHJhZiA9IGdsb2JhbFt2ZW5kb3JzW2ldICsgJ1JlcXVlc3QnICsgc3VmZml4XVxuICBjYWYgPSBnbG9iYWxbdmVuZG9yc1tpXSArICdDYW5jZWwnICsgc3VmZml4XVxuICAgICAgfHwgZ2xvYmFsW3ZlbmRvcnNbaV0gKyAnQ2FuY2VsUmVxdWVzdCcgKyBzdWZmaXhdXG59XG5cbi8vIFNvbWUgdmVyc2lvbnMgb2YgRkYgaGF2ZSByQUYgYnV0IG5vdCBjQUZcbmlmKCFyYWYgfHwgIWNhZikge1xuICB2YXIgbGFzdCA9IDBcbiAgICAsIGlkID0gMFxuICAgICwgcXVldWUgPSBbXVxuICAgICwgZnJhbWVEdXJhdGlvbiA9IDEwMDAgLyA2MFxuXG4gIHJhZiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgaWYocXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YXIgX25vdyA9IG5vdygpXG4gICAgICAgICwgbmV4dCA9IE1hdGgubWF4KDAsIGZyYW1lRHVyYXRpb24gLSAoX25vdyAtIGxhc3QpKVxuICAgICAgbGFzdCA9IG5leHQgKyBfbm93XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY3AgPSBxdWV1ZS5zbGljZSgwKVxuICAgICAgICAvLyBDbGVhciBxdWV1ZSBoZXJlIHRvIHByZXZlbnRcbiAgICAgICAgLy8gY2FsbGJhY2tzIGZyb20gYXBwZW5kaW5nIGxpc3RlbmVyc1xuICAgICAgICAvLyB0byB0aGUgY3VycmVudCBmcmFtZSdzIHF1ZXVlXG4gICAgICAgIHF1ZXVlLmxlbmd0aCA9IDBcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGNwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYoIWNwW2ldLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgdHJ5e1xuICAgICAgICAgICAgICBjcFtpXS5jYWxsYmFjayhsYXN0KVxuICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IGUgfSwgMClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIE1hdGgucm91bmQobmV4dCkpXG4gICAgfVxuICAgIHF1ZXVlLnB1c2goe1xuICAgICAgaGFuZGxlOiArK2lkLFxuICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgY2FuY2VsbGVkOiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGlkXG4gIH1cblxuICBjYWYgPSBmdW5jdGlvbihoYW5kbGUpIHtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmKHF1ZXVlW2ldLmhhbmRsZSA9PT0gaGFuZGxlKSB7XG4gICAgICAgIHF1ZXVlW2ldLmNhbmNlbGxlZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmbikge1xuICAvLyBXcmFwIGluIGEgbmV3IGZ1bmN0aW9uIHRvIHByZXZlbnRcbiAgLy8gYGNhbmNlbGAgcG90ZW50aWFsbHkgYmVpbmcgYXNzaWduZWRcbiAgLy8gdG8gdGhlIG5hdGl2ZSByQUYgZnVuY3Rpb25cbiAgcmV0dXJuIHJhZi5jYWxsKGdsb2JhbCwgZm4pXG59XG5tb2R1bGUuZXhwb3J0cy5jYW5jZWwgPSBmdW5jdGlvbigpIHtcbiAgY2FmLmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvfi9yYWYvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyMTdcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); - -/***/ }, -/* 218 */ -/***/ function(module, exports, __webpack_require__) { - - eval("/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.7.1\n(function() {\n var getNanoSeconds, hrtime, loadTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(184)))//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vcmFmL34vcGVyZm9ybWFuY2Utbm93L2xpYi9wZXJmb3JtYW5jZS1ub3cuanM/YTRlOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDIiwiZmlsZSI6IjIxOC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjFcbihmdW5jdGlvbigpIHtcbiAgdmFyIGdldE5hbm9TZWNvbmRzLCBocnRpbWUsIGxvYWRUaW1lO1xuXG4gIGlmICgodHlwZW9mIHBlcmZvcm1hbmNlICE9PSBcInVuZGVmaW5lZFwiICYmIHBlcmZvcm1hbmNlICE9PSBudWxsKSAmJiBwZXJmb3JtYW5jZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MgIT09IG51bGwpICYmIHByb2Nlc3MuaHJ0aW1lKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiAoZ2V0TmFub1NlY29uZHMoKSAtIGxvYWRUaW1lKSAvIDFlNjtcbiAgICB9O1xuICAgIGhydGltZSA9IHByb2Nlc3MuaHJ0aW1lO1xuICAgIGdldE5hbm9TZWNvbmRzID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgaHI7XG4gICAgICBociA9IGhydGltZSgpO1xuICAgICAgcmV0dXJuIGhyWzBdICogMWU5ICsgaHJbMV07XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IGdldE5hbm9TZWNvbmRzKCk7XG4gIH0gZWxzZSBpZiAoRGF0ZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIERhdGUubm93KCkgLSBsb2FkVGltZTtcbiAgICB9O1xuICAgIGxvYWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbG9hZFRpbWU7XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9XG5cbn0pLmNhbGwodGhpcyk7XG5cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9+L3JhZi9+L3BlcmZvcm1hbmNlLW5vdy9saWIvcGVyZm9ybWFuY2Utbm93LmpzXG4gKiogbW9kdWxlIGlkID0gMjE4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9"); - -/***/ }, -/* 219 */ -/***/ function(module, exports, __webpack_require__) { - - eval("var prefix = __webpack_require__(220)\nvar toCamelCase = __webpack_require__(221)\nvar cache = { 'float': 'cssFloat' }\nvar addPxToStyle = __webpack_require__(224)\n\nfunction style (element, property, value) {\n var camel = cache[property]\n if (typeof camel === 'undefined') {\n camel = detect(property)\n }\n\n // may be false if CSS prop is unsupported\n if (camel) {\n if (value === undefined) {\n return element.style[camel]\n }\n\n element.style[camel] = addPxToStyle(camel, value)\n }\n}\n\nfunction each (element, properties) {\n for (var k in properties) {\n if (properties.hasOwnProperty(k)) {\n style(element, k, properties[k])\n }\n }\n}\n\nfunction detect (cssProp) {\n var camel = toCamelCase(cssProp)\n var result = prefix(camel)\n cache[camel] = cache[cssProp] = cache[result] = result\n return result\n}\n\nfunction set () {\n if (arguments.length === 2) {\n each(arguments[0], arguments[1])\n } else {\n style(arguments[0], arguments[1], arguments[2])\n }\n}\n\nmodule.exports = set\nmodule.exports.set = set\n\nmodule.exports.get = function (element, properties) {\n if (Array.isArray(properties)) {\n return properties.reduce(function (obj, prop) {\n obj[prop] = style(element, prop || '')\n return obj\n }, {})\n } else {\n return style(element, properties || '')\n }\n}\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9pbmRleC5qcz9hMDZlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLElBQUk7QUFDVCxHQUFHO0FBQ0g7QUFDQTtBQUNBIiwiZmlsZSI6IjIxOS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBwcmVmaXggPSByZXF1aXJlKCdwcmVmaXgtc3R5bGUnKVxudmFyIHRvQ2FtZWxDYXNlID0gcmVxdWlyZSgndG8tY2FtZWwtY2FzZScpXG52YXIgY2FjaGUgPSB7ICdmbG9hdCc6ICdjc3NGbG9hdCcgfVxudmFyIGFkZFB4VG9TdHlsZSA9IHJlcXVpcmUoJ2FkZC1weC10by1zdHlsZScpXG5cbmZ1bmN0aW9uIHN0eWxlIChlbGVtZW50LCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgdmFyIGNhbWVsID0gY2FjaGVbcHJvcGVydHldXG4gIGlmICh0eXBlb2YgY2FtZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY2FtZWwgPSBkZXRlY3QocHJvcGVydHkpXG4gIH1cblxuICAvLyBtYXkgYmUgZmFsc2UgaWYgQ1NTIHByb3AgaXMgdW5zdXBwb3J0ZWRcbiAgaWYgKGNhbWVsKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlbGVtZW50LnN0eWxlW2NhbWVsXVxuICAgIH1cblxuICAgIGVsZW1lbnQuc3R5bGVbY2FtZWxdID0gYWRkUHhUb1N0eWxlKGNhbWVsLCB2YWx1ZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBlYWNoIChlbGVtZW50LCBwcm9wZXJ0aWVzKSB7XG4gIGZvciAodmFyIGsgaW4gcHJvcGVydGllcykge1xuICAgIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICBzdHlsZShlbGVtZW50LCBrLCBwcm9wZXJ0aWVzW2tdKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZXRlY3QgKGNzc1Byb3ApIHtcbiAgdmFyIGNhbWVsID0gdG9DYW1lbENhc2UoY3NzUHJvcClcbiAgdmFyIHJlc3VsdCA9IHByZWZpeChjYW1lbClcbiAgY2FjaGVbY2FtZWxdID0gY2FjaGVbY3NzUHJvcF0gPSBjYWNoZVtyZXN1bHRdID0gcmVzdWx0XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gc2V0ICgpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICBlYWNoKGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKVxuICB9IGVsc2Uge1xuICAgIHN0eWxlKGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRcbm1vZHVsZS5leHBvcnRzLnNldCA9IHNldFxuXG5tb2R1bGUuZXhwb3J0cy5nZXQgPSBmdW5jdGlvbiAoZWxlbWVudCwgcHJvcGVydGllcykge1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSkge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZShmdW5jdGlvbiAob2JqLCBwcm9wKSB7XG4gICAgICBvYmpbcHJvcF0gPSBzdHlsZShlbGVtZW50LCBwcm9wIHx8ICcnKVxuICAgICAgcmV0dXJuIG9ialxuICAgIH0sIHt9KVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdHlsZShlbGVtZW50LCBwcm9wZXJ0aWVzIHx8ICcnKVxuICB9XG59XG5cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9+L2RvbS1jc3MvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyMTlcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); - -/***/ }, -/* 220 */ -/***/ function(module, exports) { - - eval("var div = null\nvar prefixes = [ 'Webkit', 'Moz', 'O', 'ms' ]\n\nmodule.exports = function prefixStyle (prop) {\n // re-use a dummy div\n if (!div) {\n div = document.createElement('div')\n }\n\n var style = div.style\n\n // prop exists without prefix\n if (prop in style) {\n return prop\n }\n\n // borderRadius -> BorderRadius\n var titleCase = prop.charAt(0).toUpperCase() + prop.slice(1)\n\n // find the vendor-prefixed prop\n for (var i = prefixes.length; i >= 0; i--) {\n var name = prefixes[i] + titleCase\n // e.g. WebkitBorderRadius or webkitBorderRadius\n if (name in style) {\n return name\n }\n }\n\n return false\n}\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3ByZWZpeC1zdHlsZS9pbmRleC5qcz80NjQ1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCLFFBQVE7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiMjIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGRpdiA9IG51bGxcbnZhciBwcmVmaXhlcyA9IFsgJ1dlYmtpdCcsICdNb3onLCAnTycsICdtcycgXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHByZWZpeFN0eWxlIChwcm9wKSB7XG4gIC8vIHJlLXVzZSBhIGR1bW15IGRpdlxuICBpZiAoIWRpdikge1xuICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIH1cblxuICB2YXIgc3R5bGUgPSBkaXYuc3R5bGVcblxuICAvLyBwcm9wIGV4aXN0cyB3aXRob3V0IHByZWZpeFxuICBpZiAocHJvcCBpbiBzdHlsZSkge1xuICAgIHJldHVybiBwcm9wXG4gIH1cblxuICAvLyBib3JkZXJSYWRpdXMgLT4gQm9yZGVyUmFkaXVzXG4gIHZhciB0aXRsZUNhc2UgPSBwcm9wLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcHJvcC5zbGljZSgxKVxuXG4gIC8vIGZpbmQgdGhlIHZlbmRvci1wcmVmaXhlZCBwcm9wXG4gIGZvciAodmFyIGkgPSBwcmVmaXhlcy5sZW5ndGg7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIG5hbWUgPSBwcmVmaXhlc1tpXSArIHRpdGxlQ2FzZVxuICAgIC8vIGUuZy4gV2Via2l0Qm9yZGVyUmFkaXVzIG9yIHdlYmtpdEJvcmRlclJhZGl1c1xuICAgIGlmIChuYW1lIGluIHN0eWxlKSB7XG4gICAgICByZXR1cm4gbmFtZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvfi9kb20tY3NzL34vcHJlZml4LXN0eWxlL2luZGV4LmpzXG4gKiogbW9kdWxlIGlkID0gMjIwXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9"); - -/***/ }, -/* 221 */ -/***/ function(module, exports, __webpack_require__) { - - eval("\nvar toSpace = __webpack_require__(222);\n\n\n/**\n * Expose `toCamelCase`.\n */\n\nmodule.exports = toCamelCase;\n\n\n/**\n * Convert a `string` to camel case.\n *\n * @param {String} string\n * @return {String}\n */\n\n\nfunction toCamelCase (string) {\n return toSpace(string).replace(/\\s(\\w)/g, function (matches, letter) {\n return letter.toUpperCase();\n });\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3RvLWNhbWVsLWNhc2UvaW5kZXguanM/OTA5ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6IjIyMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxudmFyIHRvU3BhY2UgPSByZXF1aXJlKCd0by1zcGFjZS1jYXNlJyk7XG5cblxuLyoqXG4gKiBFeHBvc2UgYHRvQ2FtZWxDYXNlYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRvQ2FtZWxDYXNlO1xuXG5cbi8qKlxuICogQ29udmVydCBhIGBzdHJpbmdgIHRvIGNhbWVsIGNhc2UuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0cmluZ1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5cblxuZnVuY3Rpb24gdG9DYW1lbENhc2UgKHN0cmluZykge1xuICByZXR1cm4gdG9TcGFjZShzdHJpbmcpLnJlcGxhY2UoL1xccyhcXHcpL2csIGZ1bmN0aW9uIChtYXRjaGVzLCBsZXR0ZXIpIHtcbiAgICByZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3RvLWNhbWVsLWNhc2UvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyMjFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); - -/***/ }, -/* 222 */ -/***/ function(module, exports, __webpack_require__) { - - eval("\nvar clean = __webpack_require__(223);\n\n\n/**\n * Expose `toSpaceCase`.\n */\n\nmodule.exports = toSpaceCase;\n\n\n/**\n * Convert a `string` to space case.\n *\n * @param {String} string\n * @return {String}\n */\n\n\nfunction toSpaceCase (string) {\n return clean(string).replace(/[\\W_]+(.|$)/g, function (matches, match) {\n return match ? ' ' + match : '';\n });\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3RvLWNhbWVsLWNhc2Uvfi90by1zcGFjZS1jYXNlL2luZGV4LmpzPzA4Y2IiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsImZpbGUiOiIyMjIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbnZhciBjbGVhbiA9IHJlcXVpcmUoJ3RvLW5vLWNhc2UnKTtcblxuXG4vKipcbiAqIEV4cG9zZSBgdG9TcGFjZUNhc2VgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gdG9TcGFjZUNhc2U7XG5cblxuLyoqXG4gKiBDb252ZXJ0IGEgYHN0cmluZ2AgdG8gc3BhY2UgY2FzZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiB0b1NwYWNlQ2FzZSAoc3RyaW5nKSB7XG4gIHJldHVybiBjbGVhbihzdHJpbmcpLnJlcGxhY2UoL1tcXFdfXSsoLnwkKS9nLCBmdW5jdGlvbiAobWF0Y2hlcywgbWF0Y2gpIHtcbiAgICByZXR1cm4gbWF0Y2ggPyAnICcgKyBtYXRjaCA6ICcnO1xuICB9KTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9+L2RvbS1jc3Mvfi90by1jYW1lbC1jYXNlL34vdG8tc3BhY2UtY2FzZS9pbmRleC5qc1xuICoqIG1vZHVsZSBpZCA9IDIyMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ=="); - -/***/ }, -/* 223 */ -/***/ function(module, exports) { - - eval("\n/**\n * Expose `toNoCase`.\n */\n\nmodule.exports = toNoCase;\n\n\n/**\n * Test whether a string is camel-case.\n */\n\nvar hasSpace = /\\s/;\nvar hasCamel = /[a-z][A-Z]/;\nvar hasSeparator = /[\\W_]/;\n\n\n/**\n * Remove any starting case from a `string`, like camel or snake, but keep\n * spaces and punctuation that may be important otherwise.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toNoCase (string) {\n if (hasSpace.test(string)) return string.toLowerCase();\n\n if (hasSeparator.test(string)) string = unseparate(string);\n if (hasCamel.test(string)) string = uncamelize(string);\n return string.toLowerCase();\n}\n\n\n/**\n * Separator splitter.\n */\n\nvar separatorSplitter = /[\\W_]+(.|$)/g;\n\n\n/**\n * Un-separate a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction unseparate (string) {\n return string.replace(separatorSplitter, function (m, next) {\n return next ? ' ' + next : '';\n });\n}\n\n\n/**\n * Camelcase splitter.\n */\n\nvar camelSplitter = /(.)([A-Z]+)/g;\n\n\n/**\n * Un-camelcase a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction uncamelize (string) {\n return string.replace(camelSplitter, function (m, previous, uppers) {\n return previous + ' ' + uppers.toLowerCase().split('').join(' ');\n });\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3RvLWNhbWVsLWNhc2Uvfi90by1zcGFjZS1jYXNlL34vdG8tbm8tY2FzZS9pbmRleC5qcz83ZmRlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6IjIyMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBFeHBvc2UgYHRvTm9DYXNlYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRvTm9DYXNlO1xuXG5cbi8qKlxuICogVGVzdCB3aGV0aGVyIGEgc3RyaW5nIGlzIGNhbWVsLWNhc2UuXG4gKi9cblxudmFyIGhhc1NwYWNlID0gL1xccy87XG52YXIgaGFzQ2FtZWwgPSAvW2Etel1bQS1aXS87XG52YXIgaGFzU2VwYXJhdG9yID0gL1tcXFdfXS87XG5cblxuLyoqXG4gKiBSZW1vdmUgYW55IHN0YXJ0aW5nIGNhc2UgZnJvbSBhIGBzdHJpbmdgLCBsaWtlIGNhbWVsIG9yIHNuYWtlLCBidXQga2VlcFxuICogc3BhY2VzIGFuZCBwdW5jdHVhdGlvbiB0aGF0IG1heSBiZSBpbXBvcnRhbnQgb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuXG5mdW5jdGlvbiB0b05vQ2FzZSAoc3RyaW5nKSB7XG4gIGlmIChoYXNTcGFjZS50ZXN0KHN0cmluZykpIHJldHVybiBzdHJpbmcudG9Mb3dlckNhc2UoKTtcblxuICBpZiAoaGFzU2VwYXJhdG9yLnRlc3Qoc3RyaW5nKSkgc3RyaW5nID0gdW5zZXBhcmF0ZShzdHJpbmcpO1xuICBpZiAoaGFzQ2FtZWwudGVzdChzdHJpbmcpKSBzdHJpbmcgPSB1bmNhbWVsaXplKHN0cmluZyk7XG4gIHJldHVybiBzdHJpbmcudG9Mb3dlckNhc2UoKTtcbn1cblxuXG4vKipcbiAqIFNlcGFyYXRvciBzcGxpdHRlci5cbiAqL1xuXG52YXIgc2VwYXJhdG9yU3BsaXR0ZXIgPSAvW1xcV19dKygufCQpL2c7XG5cblxuLyoqXG4gKiBVbi1zZXBhcmF0ZSBhIGBzdHJpbmdgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuXG5mdW5jdGlvbiB1bnNlcGFyYXRlIChzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKHNlcGFyYXRvclNwbGl0dGVyLCBmdW5jdGlvbiAobSwgbmV4dCkge1xuICAgIHJldHVybiBuZXh0ID8gJyAnICsgbmV4dCA6ICcnO1xuICB9KTtcbn1cblxuXG4vKipcbiAqIENhbWVsY2FzZSBzcGxpdHRlci5cbiAqL1xuXG52YXIgY2FtZWxTcGxpdHRlciA9IC8oLikoW0EtWl0rKS9nO1xuXG5cbi8qKlxuICogVW4tY2FtZWxjYXNlIGEgYHN0cmluZ2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0cmluZ1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIHVuY2FtZWxpemUgKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoY2FtZWxTcGxpdHRlciwgZnVuY3Rpb24gKG0sIHByZXZpb3VzLCB1cHBlcnMpIHtcbiAgICByZXR1cm4gcHJldmlvdXMgKyAnICcgKyB1cHBlcnMudG9Mb3dlckNhc2UoKS5zcGxpdCgnJykuam9pbignICcpO1xuICB9KTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9+L2RvbS1jc3Mvfi90by1jYW1lbC1jYXNlL34vdG8tc3BhY2UtY2FzZS9+L3RvLW5vLWNhc2UvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyMjNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); - -/***/ }, -/* 224 */ -/***/ function(module, exports) { - - eval("/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L2FkZC1weC10by1zdHlsZS9pbmRleC5qcz8yMDkyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJmaWxlIjoiMjI0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogVGhlIGZvbGxvd2luZyBsaXN0IGlzIGRlZmluZWQgaW4gUmVhY3QncyBjb3JlICovXG52YXIgSVNfVU5JVExFU1MgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB0cnVlLFxuICBib3hGbGV4OiB0cnVlLFxuICBib3hGbGV4R3JvdXA6IHRydWUsXG4gIGJveE9yZGluYWxHcm91cDogdHJ1ZSxcbiAgY29sdW1uQ291bnQ6IHRydWUsXG4gIGZsZXg6IHRydWUsXG4gIGZsZXhHcm93OiB0cnVlLFxuICBmbGV4UG9zaXRpdmU6IHRydWUsXG4gIGZsZXhTaHJpbms6IHRydWUsXG4gIGZsZXhOZWdhdGl2ZTogdHJ1ZSxcbiAgZmxleE9yZGVyOiB0cnVlLFxuICBncmlkUm93OiB0cnVlLFxuICBncmlkQ29sdW1uOiB0cnVlLFxuICBmb250V2VpZ2h0OiB0cnVlLFxuICBsaW5lQ2xhbXA6IHRydWUsXG4gIGxpbmVIZWlnaHQ6IHRydWUsXG4gIG9wYWNpdHk6IHRydWUsXG4gIG9yZGVyOiB0cnVlLFxuICBvcnBoYW5zOiB0cnVlLFxuICB0YWJTaXplOiB0cnVlLFxuICB3aWRvd3M6IHRydWUsXG4gIHpJbmRleDogdHJ1ZSxcbiAgem9vbTogdHJ1ZSxcblxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiB0cnVlLFxuICBzdG9wT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlRGFzaG9mZnNldDogdHJ1ZSxcbiAgc3Ryb2tlT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlV2lkdGg6IHRydWVcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgaWYodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiAhSVNfVU5JVExFU1NbIG5hbWUgXSkge1xuICAgIHJldHVybiB2YWx1ZSArICdweCc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L2FkZC1weC10by1zdHlsZS9pbmRleC5qc1xuICoqIG1vZHVsZSBpZCA9IDIyNFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ=="); - -/***/ }, -/* 225 */ -/***/ function(module, exports, __webpack_require__) { - - eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getScrollbarWidth;\n\nvar _domCss = __webpack_require__(219);\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollbarWidth = false;\n\nfunction getScrollbarWidth() {\n if (scrollbarWidth !== false) return scrollbarWidth;\n if (typeof document !== 'undefined') {\n var div = document.createElement('div');\n (0, _domCss2.default)(div, {\n width: 100,\n height: 100,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll',\n '-ms-overflow-style': 'scrollbar'\n });\n document.body.appendChild(div);\n scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n } else {\n scrollbarWidth = 0;\n }\n return scrollbarWidth;\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9nZXRTY3JvbGxiYXJXaWR0aC5qcz84YTJlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIyNS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZ2V0U2Nyb2xsYmFyV2lkdGg7XG5cbnZhciBfZG9tQ3NzID0gcmVxdWlyZSgnZG9tLWNzcycpO1xuXG52YXIgX2RvbUNzczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kb21Dc3MpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG52YXIgc2Nyb2xsYmFyV2lkdGggPSBmYWxzZTtcblxuZnVuY3Rpb24gZ2V0U2Nyb2xsYmFyV2lkdGgoKSB7XG4gICAgaWYgKHNjcm9sbGJhcldpZHRoICE9PSBmYWxzZSkgcmV0dXJuIHNjcm9sbGJhcldpZHRoO1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKGRpdiwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIGhlaWdodDogMTAwLFxuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICB0b3A6IC05OTk5LFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgICAgICAgJy1tcy1vdmVyZmxvdy1zdHlsZSc6ICdzY3JvbGxiYXInXG4gICAgICAgIH0pO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gICAgICAgIHNjcm9sbGJhcldpZHRoID0gZGl2Lm9mZnNldFdpZHRoIC0gZGl2LmNsaWVudFdpZHRoO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2Nyb2xsYmFyV2lkdGggPSAwO1xuICAgIH1cbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL3V0aWxzL2dldFNjcm9sbGJhcldpZHRoLmpzXG4gKiogbW9kdWxlIGlkID0gMjI1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9"); - -/***/ }, -/* 226 */ -/***/ function(module, exports) { - - eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = returnFalse;\nfunction returnFalse() {\n return false;\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9yZXR1cm5GYWxzZS5qcz8yMTA3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjI2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHJldHVybkZhbHNlO1xuZnVuY3Rpb24gcmV0dXJuRmFsc2UoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9yZXR1cm5GYWxzZS5qc1xuICoqIG1vZHVsZSBpZCA9IDIyNlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ=="); - -/***/ }, -/* 227 */ -/***/ function(module, exports) { - - eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar defaultThumbHorizontalStyle = exports.defaultThumbHorizontalStyle = {\n position: 'relative',\n display: 'block',\n height: '100%'\n};\n\nvar defaultThumbVerticalStyle = exports.defaultThumbVerticalStyle = {\n position: 'relative',\n display: 'block',\n width: '100%'\n};\n\nvar defaultScrollbarHorizontalStyle = exports.defaultScrollbarHorizontalStyle = {\n position: 'absolute'\n};\n\nvar defaultScrollbarVerticalStyle = exports.defaultScrollbarVerticalStyle = {\n position: 'absolute'\n};\n\nvar scrollbarsVisibleViewStyle = exports.scrollbarsVisibleViewStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'scroll',\n WebkitOverflowScrolling: 'touch'\n};\n\nvar scrollbarsInvisibleViewStyle = exports.scrollbarsInvisibleViewStyle = {\n position: 'relative',\n width: '100%',\n height: '100%',\n overflow: 'scroll',\n WebkitOverflowScrolling: 'touch'\n};\n\nvar disableSelectStyle = exports.disableSelectStyle = {\n '-webkit-touch-callout': 'none',\n '-webkit-user-select': 'none',\n '-khtml-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n 'user-select': 'none'\n};\n\nvar resetDisableSelectStyle = exports.resetDisableSelectStyle = {\n '-webkit-touch-callout': '',\n '-webkit-user-select': '',\n '-khtml-user-select': '',\n '-moz-user-select': '',\n '-ms-user-select': '',\n 'user-select': ''\n};//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL3N0eWxlcy5qcz81ZTkxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjIyNy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xudmFyIGRlZmF1bHRUaHVtYkhvcml6b250YWxTdHlsZSA9IGV4cG9ydHMuZGVmYXVsdFRodW1iSG9yaXpvbnRhbFN0eWxlID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgaGVpZ2h0OiAnMTAwJSdcbn07XG5cbnZhciBkZWZhdWx0VGh1bWJWZXJ0aWNhbFN0eWxlID0gZXhwb3J0cy5kZWZhdWx0VGh1bWJWZXJ0aWNhbFN0eWxlID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgd2lkdGg6ICcxMDAlJ1xufTtcblxudmFyIGRlZmF1bHRTY3JvbGxiYXJIb3Jpem9udGFsU3R5bGUgPSBleHBvcnRzLmRlZmF1bHRTY3JvbGxiYXJIb3Jpem9udGFsU3R5bGUgPSB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbn07XG5cbnZhciBkZWZhdWx0U2Nyb2xsYmFyVmVydGljYWxTdHlsZSA9IGV4cG9ydHMuZGVmYXVsdFNjcm9sbGJhclZlcnRpY2FsU3R5bGUgPSB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZSdcbn07XG5cbnZhciBzY3JvbGxiYXJzVmlzaWJsZVZpZXdTdHlsZSA9IGV4cG9ydHMuc2Nyb2xsYmFyc1Zpc2libGVWaWV3U3R5bGUgPSB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgIFdlYmtpdE92ZXJmbG93U2Nyb2xsaW5nOiAndG91Y2gnXG59O1xuXG52YXIgc2Nyb2xsYmFyc0ludmlzaWJsZVZpZXdTdHlsZSA9IGV4cG9ydHMuc2Nyb2xsYmFyc0ludmlzaWJsZVZpZXdTdHlsZSA9IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnLFxuICAgIG92ZXJmbG93OiAnc2Nyb2xsJyxcbiAgICBXZWJraXRPdmVyZmxvd1Njcm9sbGluZzogJ3RvdWNoJ1xufTtcblxudmFyIGRpc2FibGVTZWxlY3RTdHlsZSA9IGV4cG9ydHMuZGlzYWJsZVNlbGVjdFN0eWxlID0ge1xuICAgICctd2Via2l0LXRvdWNoLWNhbGxvdXQnOiAnbm9uZScsXG4gICAgJy13ZWJraXQtdXNlci1zZWxlY3QnOiAnbm9uZScsXG4gICAgJy1raHRtbC11c2VyLXNlbGVjdCc6ICdub25lJyxcbiAgICAnLW1vei11c2VyLXNlbGVjdCc6ICdub25lJyxcbiAgICAnLW1zLXVzZXItc2VsZWN0JzogJ25vbmUnLFxuICAgICd1c2VyLXNlbGVjdCc6ICdub25lJ1xufTtcblxudmFyIHJlc2V0RGlzYWJsZVNlbGVjdFN0eWxlID0gZXhwb3J0cy5yZXNldERpc2FibGVTZWxlY3RTdHlsZSA9IHtcbiAgICAnLXdlYmtpdC10b3VjaC1jYWxsb3V0JzogJycsXG4gICAgJy13ZWJraXQtdXNlci1zZWxlY3QnOiAnJyxcbiAgICAnLWtodG1sLXVzZXItc2VsZWN0JzogJycsXG4gICAgJy1tb3otdXNlci1zZWxlY3QnOiAnJyxcbiAgICAnLW1zLXVzZXItc2VsZWN0JzogJycsXG4gICAgJ3VzZXItc2VsZWN0JzogJydcbn07XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL1Njcm9sbGJhcnMvc3R5bGVzLmpzXG4gKiogbW9kdWxlIGlkID0gMjI3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9"); - -/***/ }, -/* 228 */ -/***/ function(module, exports, __webpack_require__) { - - eval("'use strict';\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultRenderScrollbarHorizontal = defaultRenderScrollbarHorizontal;\nexports.defaultRenderScrollbarVertical = defaultRenderScrollbarVertical;\nexports.defaultRenderThumbHorizontal = defaultRenderThumbHorizontal;\nexports.defaultRenderThumbVertical = defaultRenderThumbVertical;\nexports.defaultRenderView = defaultRenderView;\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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 defaultRenderScrollbarHorizontal(_ref) {\n var style = _ref.style;\n\n var props = _objectWithoutProperties(_ref, ['style']);\n\n var finalStyle = _extends({}, style, {\n height: 6,\n right: 2,\n bottom: 2,\n left: 2,\n borderRadius: 3\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction defaultRenderScrollbarVertical(_ref2) {\n var style = _ref2.style;\n\n var props = _objectWithoutProperties(_ref2, ['style']);\n\n var finalStyle = _extends({}, style, {\n width: 6,\n right: 2,\n bottom: 2,\n top: 2,\n borderRadius: 3\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction defaultRenderThumbHorizontal(_ref3) {\n var style = _ref3.style;\n\n var props = _objectWithoutProperties(_ref3, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction defaultRenderThumbVertical(_ref4) {\n var style = _ref4.style;\n\n var props = _objectWithoutProperties(_ref4, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction defaultRenderView(props) {\n return _react2.default.createElement('div', props);\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL2RlZmF1bHRSZW5kZXJFbGVtZW50cy5qcz80MDE5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLG1EQUFtRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLGVBQWU7O0FBRTlQO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQSxzQ0FBc0MsdUNBQXVDLGdCQUFnQjs7QUFFN0YsOENBQThDLGlCQUFpQixxQkFBcUIsb0NBQW9DLDZEQUE2RCxvQkFBb0IsRUFBRSxlQUFlOztBQUUxTjtBQUNBOztBQUVBOztBQUVBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDBEQUEwRCxvQkFBb0I7QUFDOUU7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwwREFBMEQsb0JBQW9CO0FBQzlFOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwwREFBMEQsb0JBQW9CO0FBQzlFOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCwwREFBMEQsb0JBQW9CO0FBQzlFOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIyMjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdFJlbmRlclNjcm9sbGJhckhvcml6b250YWwgPSBkZWZhdWx0UmVuZGVyU2Nyb2xsYmFySG9yaXpvbnRhbDtcbmV4cG9ydHMuZGVmYXVsdFJlbmRlclNjcm9sbGJhclZlcnRpY2FsID0gZGVmYXVsdFJlbmRlclNjcm9sbGJhclZlcnRpY2FsO1xuZXhwb3J0cy5kZWZhdWx0UmVuZGVyVGh1bWJIb3Jpem9udGFsID0gZGVmYXVsdFJlbmRlclRodW1iSG9yaXpvbnRhbDtcbmV4cG9ydHMuZGVmYXVsdFJlbmRlclRodW1iVmVydGljYWwgPSBkZWZhdWx0UmVuZGVyVGh1bWJWZXJ0aWNhbDtcbmV4cG9ydHMuZGVmYXVsdFJlbmRlclZpZXcgPSBkZWZhdWx0UmVuZGVyVmlldztcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIGRlZmF1bHRSZW5kZXJTY3JvbGxiYXJIb3Jpem9udGFsKF9yZWYpIHtcbiAgICB2YXIgc3R5bGUgPSBfcmVmLnN0eWxlO1xuXG4gICAgdmFyIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYsIFsnc3R5bGUnXSk7XG5cbiAgICB2YXIgZmluYWxTdHlsZSA9IF9leHRlbmRzKHt9LCBzdHlsZSwge1xuICAgICAgICBoZWlnaHQ6IDYsXG4gICAgICAgIHJpZ2h0OiAyLFxuICAgICAgICBib3R0b206IDIsXG4gICAgICAgIGxlZnQ6IDIsXG4gICAgICAgIGJvcmRlclJhZGl1czogM1xuICAgIH0pO1xuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnZGl2JywgX2V4dGVuZHMoeyBzdHlsZTogZmluYWxTdHlsZSB9LCBwcm9wcykpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0UmVuZGVyU2Nyb2xsYmFyVmVydGljYWwoX3JlZjIpIHtcbiAgICB2YXIgc3R5bGUgPSBfcmVmMi5zdHlsZTtcblxuICAgIHZhciBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmMiwgWydzdHlsZSddKTtcblxuICAgIHZhciBmaW5hbFN0eWxlID0gX2V4dGVuZHMoe30sIHN0eWxlLCB7XG4gICAgICAgIHdpZHRoOiA2LFxuICAgICAgICByaWdodDogMixcbiAgICAgICAgYm90dG9tOiAyLFxuICAgICAgICB0b3A6IDIsXG4gICAgICAgIGJvcmRlclJhZGl1czogM1xuICAgIH0pO1xuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnZGl2JywgX2V4dGVuZHMoeyBzdHlsZTogZmluYWxTdHlsZSB9LCBwcm9wcykpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0UmVuZGVyVGh1bWJIb3Jpem9udGFsKF9yZWYzKSB7XG4gICAgdmFyIHN0eWxlID0gX3JlZjMuc3R5bGU7XG5cbiAgICB2YXIgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjMsIFsnc3R5bGUnXSk7XG5cbiAgICB2YXIgZmluYWxTdHlsZSA9IF9leHRlbmRzKHt9LCBzdHlsZSwge1xuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnaW5oZXJpdCcsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsLjIpJ1xuICAgIH0pO1xuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnZGl2JywgX2V4dGVuZHMoeyBzdHlsZTogZmluYWxTdHlsZSB9LCBwcm9wcykpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0UmVuZGVyVGh1bWJWZXJ0aWNhbChfcmVmNCkge1xuICAgIHZhciBzdHlsZSA9IF9yZWY0LnN0eWxlO1xuXG4gICAgdmFyIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY0LCBbJ3N0eWxlJ10pO1xuXG4gICAgdmFyIGZpbmFsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgc3R5bGUsIHtcbiAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgIGJvcmRlclJhZGl1czogJ2luaGVyaXQnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLC4yKSdcbiAgICB9KTtcbiAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIF9leHRlbmRzKHsgc3R5bGU6IGZpbmFsU3R5bGUgfSwgcHJvcHMpKTtcbn1cblxuZnVuY3Rpb24gZGVmYXVsdFJlbmRlclZpZXcocHJvcHMpIHtcbiAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHByb3BzKTtcbn1cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9saWIvU2Nyb2xsYmFycy9kZWZhdWx0UmVuZGVyRWxlbWVudHMuanNcbiAqKiBtb2R1bGUgaWQgPSAyMjhcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); - -/***/ }, +/* 214 */, +/* 215 */, +/* 216 */, +/* 217 */, +/* 218 */, +/* 219 */, +/* 220 */, +/* 221 */, +/* 222 */, +/* 223 */, +/* 224 */, +/* 225 */, +/* 226 */, +/* 227 */, +/* 228 */, /* 229 */ /***/ function(module, exports, __webpack_require__) { @@ -1730,7 +1655,7 @@ /* 281 */ /***/ function(module, exports, __webpack_require__) { - eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _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 _lodash = __webpack_require__(161);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _classnames = __webpack_require__(171);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactAddonsCssTransitionGroup = __webpack_require__(163);\n\nvar _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(157);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _uiCustomScrollbars = __webpack_require__(214);\n\nvar _uiCustomScrollbars2 = _interopRequireDefault(_uiCustomScrollbars);\n\nvar _constantsEventTypes = __webpack_require__(172);\n\nvar _constantsEventTypes2 = _interopRequireDefault(_constantsEventTypes);\n\nvar _uiLoadingIndicator = __webpack_require__(209);\n\nvar _uiLoadingIndicator2 = _interopRequireDefault(_uiLoadingIndicator);\n\nvar _Torrent = __webpack_require__(284);\n\nvar _Torrent2 = _interopRequireDefault(_Torrent);\n\nvar _storesTorrentFilterStore = __webpack_require__(245);\n\nvar _storesTorrentFilterStore2 = _interopRequireDefault(_storesTorrentFilterStore);\n\nvar _storesTorrentStore = __webpack_require__(246);\n\nvar _storesTorrentStore2 = _interopRequireDefault(_storesTorrentStore);\n\nvar _actionsUIActions = __webpack_require__(198);\n\nvar _actionsUIActions2 = _interopRequireDefault(_actionsUIActions);\n\nvar _storesUIStore = __webpack_require__(199);\n\nvar _storesUIStore2 = _interopRequireDefault(_storesUIStore);\n\nvar METHODS_TO_BIND = ['onReceiveTorrentsError', 'onReceiveTorrentsSuccess', 'handleDetailsClick', 'handleTorrentClick', 'onTorrentFilterChange', 'onTorrentSelectionChange', 'getListPadding', 'getViewportLimits', 'setScrollPosition', 'setViewportHeight'];\n\nvar TorrentListContainer = (function (_React$Component) {\n _inherits(TorrentListContainer, _React$Component);\n\n function TorrentListContainer() {\n var _this = this;\n\n _classCallCheck(this, TorrentListContainer);\n\n _get(Object.getPrototypeOf(TorrentListContainer.prototype), 'constructor', this).call(this);\n\n this.state = {\n maxTorrentIndex: 10,\n minTorrentIndex: 0,\n scrollPosition: 0,\n torrentCount: 0,\n torrentHeight: 64,\n torrents: null,\n torrentRequestError: false,\n torrentRequestSuccess: false,\n viewportHeight: 0\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n\n this.handleScroll = _lodash2['default'].throttle(this.setScrollPosition, 100, {\n leading: true,\n trailing: true\n });\n\n this.handleWindowResize = _lodash2['default'].throttle(this.setViewportHeight, 350, {\n leading: true,\n trailing: true\n });\n }\n\n _createClass(TorrentListContainer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n _storesTorrentStore2['default'].fetchTorrents();\n window.addEventListener('resize', this.handleWindowResize);\n this.setViewportHeight();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n }\n }, {\n key: 'handleDetailsClick',\n value: function handleDetailsClick(torrent, event) {\n _actionsUIActions2['default'].handleDetailsClick({\n hash: torrent.hash,\n event: event\n });\n }\n }, {\n key: 'handleTorrentClick',\n value: function handleTorrentClick(hash, event) {\n _actionsUIActions2['default'].handleTorrentClick({ hash: hash, event: event });\n }\n }, {\n key: 'onReceiveTorrentsError',\n value: function onReceiveTorrentsError() {\n this.setState({ torrentRequestError: true, torrentRequestSuccess: false });\n }\n }, {\n key: 'onReceiveTorrentsSuccess',\n value: function onReceiveTorrentsSuccess() {\n var torrents = _storesTorrentStore2['default'].getTorrents();\n\n this.setState({\n torrents: torrents,\n torrentCount: torrents.length,\n torrentRequestError: false,\n torrentRequestSuccess: true\n });\n }\n }, {\n key: 'onTorrentFilterChange',\n value: function onTorrentFilterChange() {\n this.forceUpdate();\n }\n }, {\n key: 'onTorrentSelectionChange',\n value: function onTorrentSelectionChange() {\n if (_storesTorrentStore2['default'].getSelectedTorrents().length !== 1) {\n _storesUIStore2['default'].closeTorrentDetailsPanel();\n }\n\n this.forceUpdate();\n }\n }, {\n key: 'getListPadding',\n value: function getListPadding(minTorrentIndex, maxTorrentIndex, torrentCount) {\n // Calculate the number of pixels to pad the visible item list.\n // If the minimum item index is less than 0, then we're already at the top\n // of the list and don't need to render any padding there.\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n if (maxTorrentIndex > torrentCount) {\n maxTorrentIndex = torrentCount;\n }\n\n var hiddenBottom = torrentCount - maxTorrentIndex;\n var hiddenTop = minTorrentIndex;\n\n var bottom = hiddenBottom * this.state.torrentHeight;\n var top = hiddenTop * this.state.torrentHeight;\n\n return { bottom: bottom, top: top };\n }\n }, {\n key: 'getLoadingIndicator',\n value: function getLoadingIndicator() {\n return _react2['default'].createElement(_uiLoadingIndicator2['default'], null);\n }\n }, {\n key: 'getViewportLimits',\n value: function getViewportLimits() {\n // Calculate the number of items that should be rendered based on the height\n // of the viewport. We offset this to render a few more outide of the\n // container's dimensions, which looks nicer when the user scrolls.\n var offset = 10;\n\n // The number of elements in view is the height of the viewport divided\n // by the height of the elements.\n var elementsInView = Math.floor(this.state.viewportHeight / this.state.torrentHeight);\n\n // The minimum item index to render is the number of items above the\n // viewport's current scroll position, minus the offset.\n var minTorrentIndex = Math.floor(this.state.scrollPosition / this.state.torrentHeight) - offset;\n\n // The maximum item index to render is the minimum item rendered, plus the\n // number of items in view, plus double the offset.\n var maxTorrentIndex = minTorrentIndex + elementsInView + offset * 2;\n\n return { minTorrentIndex: minTorrentIndex, maxTorrentIndex: maxTorrentIndex };\n }\n }, {\n key: 'setScrollPosition',\n value: function setScrollPosition() {\n if (this.refs.torrentList) {\n this.setState({\n scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop()\n });\n }\n }\n }, {\n key: 'setViewportHeight',\n value: function setViewportHeight() {\n if (this.refs.torrentList) {\n this.setState({\n viewportHeight: this.refs.torrentList.refs.scrollbar.getHeight()\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var content = this.getLoadingIndicator();\n\n if (this.state.torrentRequestSuccess) {\n (function () {\n var selectedTorrents = _storesTorrentStore2['default'].getSelectedTorrents();\n var torrents = _this2.state.torrents;\n var viewportLimits = _this2.getViewportLimits();\n\n var listPadding = _this2.getListPadding(viewportLimits.minTorrentIndex, viewportLimits.maxTorrentIndex, torrents.length);\n\n var maxTorrentIndex = viewportLimits.maxTorrentIndex;\n var minTorrentIndex = viewportLimits.minTorrentIndex;\n\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n var visibleTorrents = torrents.slice(minTorrentIndex, maxTorrentIndex);\n\n var torrentList = visibleTorrents.map(function (torrent, index) {\n var isSelected = false;\n var hash = torrent.hash;\n\n if (selectedTorrents.indexOf(hash) > -1) {\n isSelected = true;\n }\n\n return _react2['default'].createElement(_Torrent2['default'], { key: hash, data: torrent, selected: isSelected,\n handleClick: _this2.handleTorrentClick,\n handleDetailsClick: _this2.handleDetailsClick });\n });\n\n content = _react2['default'].createElement(\n 'ul',\n { className: 'torrent__list', key: 'torrent__list' },\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--top',\n style: { height: listPadding.top + 'px' } }),\n torrentList,\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--bottom',\n style: { height: listPadding.bottom + 'px' } })\n );\n })();\n }\n\n return _react2['default'].createElement(\n _reactAddonsCssTransitionGroup2['default'],\n {\n component: 'div',\n className: 'torrent__list__wrapper',\n transitionName: 'torrent__list--loading',\n transitionEnterTimeout: 1000,\n transitionLeaveTimeout: 1000 },\n _react2['default'].createElement(\n _uiCustomScrollbars2['default'],\n { className: 'torrent__list__wrapper--custom-scroll',\n ref: 'torrentList',\n scrollHandler: this.handleScroll, key: 'torrent-list__scroll-wrapper' },\n content\n )\n );\n }\n }]);\n\n return TorrentListContainer;\n})(_react2['default'].Component);\n\nexports['default'] = TorrentListContainer;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanM/ZDcyYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsdUNBQXVDLG1CQUFtQiw0QkFBNEIsaURBQWlELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sYUFBYSxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUUvb0Isc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0Esd0RBQXdELDJCQUEyQjtBQUNuRjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EscUJBQXFCLDBEQUEwRDtBQUMvRTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGNBQWM7QUFDZDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYztBQUNkO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwyRUFBMkU7QUFDM0U7QUFDQSw2REFBNkQ7QUFDN0QsV0FBVzs7QUFFWDtBQUNBO0FBQ0EsYUFBYSxtREFBbUQ7QUFDaEUsb0RBQW9EO0FBQ3BELHNCQUFzQixpQ0FBaUMsRUFBRTtBQUN6RDtBQUNBLG9EQUFvRDtBQUNwRCxzQkFBc0Isb0NBQW9DLEVBQUU7QUFDNUQ7QUFDQSxTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLG1GQUFtRjtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVEO0FBQ0EiLCJmaWxlIjoiMjgxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxudmFyIF9nZXQgPSBmdW5jdGlvbiBnZXQoX3gsIF94MiwgX3gzKSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94LCBwcm9wZXJ0eSA9IF94MiwgcmVjZWl2ZXIgPSBfeDM7IF9hZ2FpbiA9IGZhbHNlOyBpZiAob2JqZWN0ID09PSBudWxsKSBvYmplY3QgPSBGdW5jdGlvbi5wcm90b3R5cGU7IHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3BlcnR5KTsgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkgeyB2YXIgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCk7IGlmIChwYXJlbnQgPT09IG51bGwpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSBlbHNlIHsgX3ggPSBwYXJlbnQ7IF94MiA9IHByb3BlcnR5OyBfeDMgPSByZWNlaXZlcjsgX2FnYWluID0gdHJ1ZTsgZGVzYyA9IHBhcmVudCA9IHVuZGVmaW5lZDsgY29udGludWUgX2Z1bmN0aW9uOyB9IH0gZWxzZSBpZiAoJ3ZhbHVlJyBpbiBkZXNjKSB7IHJldHVybiBkZXNjLnZhbHVlOyB9IGVsc2UgeyB2YXIgZ2V0dGVyID0gZGVzYy5nZXQ7IGlmIChnZXR0ZXIgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IHJldHVybiBnZXR0ZXIuY2FsbChyZWNlaXZlcik7IH0gfSB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2xvZGFzaCA9IHJlcXVpcmUoJ2xvZGFzaCcpO1xuXG52YXIgX2xvZGFzaDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sb2Rhc2gpO1xuXG52YXIgX2NsYXNzbmFtZXMgPSByZXF1aXJlKCdjbGFzc25hbWVzJyk7XG5cbnZhciBfY2xhc3NuYW1lczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jbGFzc25hbWVzKTtcblxudmFyIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cCA9IHJlcXVpcmUoJ3JlYWN0LWFkZG9ucy1jc3MtdHJhbnNpdGlvbi1ncm91cCcpO1xuXG52YXIgX3JlYWN0QWRkb25zQ3NzVHJhbnNpdGlvbkdyb3VwMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0QWRkb25zQ3NzVHJhbnNpdGlvbkdyb3VwKTtcblxudmFyIF9yZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX3JlYWN0RG9tID0gcmVxdWlyZSgncmVhY3QtZG9tJyk7XG5cbnZhciBfcmVhY3REb20yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3REb20pO1xuXG52YXIgX3VpQ3VzdG9tU2Nyb2xsYmFycyA9IHJlcXVpcmUoJy4uL3VpL0N1c3RvbVNjcm9sbGJhcnMnKTtcblxudmFyIF91aUN1c3RvbVNjcm9sbGJhcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdWlDdXN0b21TY3JvbGxiYXJzKTtcblxudmFyIF9jb25zdGFudHNFdmVudFR5cGVzID0gcmVxdWlyZSgnLi4vLi4vY29uc3RhbnRzL0V2ZW50VHlwZXMnKTtcblxudmFyIF9jb25zdGFudHNFdmVudFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NvbnN0YW50c0V2ZW50VHlwZXMpO1xuXG52YXIgX3VpTG9hZGluZ0luZGljYXRvciA9IHJlcXVpcmUoJy4uL3VpL0xvYWRpbmdJbmRpY2F0b3InKTtcblxudmFyIF91aUxvYWRpbmdJbmRpY2F0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdWlMb2FkaW5nSW5kaWNhdG9yKTtcblxudmFyIF9Ub3JyZW50ID0gcmVxdWlyZSgnLi9Ub3JyZW50Jyk7XG5cbnZhciBfVG9ycmVudDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9Ub3JyZW50KTtcblxudmFyIF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUgPSByZXF1aXJlKCcuLi8uLi9zdG9yZXMvVG9ycmVudEZpbHRlclN0b3JlJyk7XG5cbnZhciBfc3RvcmVzVG9ycmVudEZpbHRlclN0b3JlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZSk7XG5cbnZhciBfc3RvcmVzVG9ycmVudFN0b3JlID0gcmVxdWlyZSgnLi4vLi4vc3RvcmVzL1RvcnJlbnRTdG9yZScpO1xuXG52YXIgX3N0b3Jlc1RvcnJlbnRTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdG9yZXNUb3JyZW50U3RvcmUpO1xuXG52YXIgX2FjdGlvbnNVSUFjdGlvbnMgPSByZXF1aXJlKCcuLi8uLi9hY3Rpb25zL1VJQWN0aW9ucycpO1xuXG52YXIgX2FjdGlvbnNVSUFjdGlvbnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfYWN0aW9uc1VJQWN0aW9ucyk7XG5cbnZhciBfc3RvcmVzVUlTdG9yZSA9IHJlcXVpcmUoJy4uLy4uL3N0b3Jlcy9VSVN0b3JlJyk7XG5cbnZhciBfc3RvcmVzVUlTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdG9yZXNVSVN0b3JlKTtcblxudmFyIE1FVEhPRFNfVE9fQklORCA9IFsnb25SZWNlaXZlVG9ycmVudHNFcnJvcicsICdvblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MnLCAnaGFuZGxlRGV0YWlsc0NsaWNrJywgJ2hhbmRsZVRvcnJlbnRDbGljaycsICdvblRvcnJlbnRGaWx0ZXJDaGFuZ2UnLCAnb25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlJywgJ2dldExpc3RQYWRkaW5nJywgJ2dldFZpZXdwb3J0TGltaXRzJywgJ3NldFNjcm9sbFBvc2l0aW9uJywgJ3NldFZpZXdwb3J0SGVpZ2h0J107XG5cbnZhciBUb3JyZW50TGlzdENvbnRhaW5lciA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoVG9ycmVudExpc3RDb250YWluZXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFRvcnJlbnRMaXN0Q29udGFpbmVyKCkge1xuICAgIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVG9ycmVudExpc3RDb250YWluZXIpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoVG9ycmVudExpc3RDb250YWluZXIucHJvdG90eXBlKSwgJ2NvbnN0cnVjdG9yJywgdGhpcykuY2FsbCh0aGlzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBtYXhUb3JyZW50SW5kZXg6IDEwLFxuICAgICAgbWluVG9ycmVudEluZGV4OiAwLFxuICAgICAgc2Nyb2xsUG9zaXRpb246IDAsXG4gICAgICB0b3JyZW50Q291bnQ6IDAsXG4gICAgICB0b3JyZW50SGVpZ2h0OiA2NCxcbiAgICAgIHRvcnJlbnRzOiBudWxsLFxuICAgICAgdG9ycmVudFJlcXVlc3RFcnJvcjogZmFsc2UsXG4gICAgICB0b3JyZW50UmVxdWVzdFN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgdmlld3BvcnRIZWlnaHQ6IDBcbiAgICB9O1xuXG4gICAgTUVUSE9EU19UT19CSU5ELmZvckVhY2goZnVuY3Rpb24gKG1ldGhvZCkge1xuICAgICAgX3RoaXNbbWV0aG9kXSA9IF90aGlzW21ldGhvZF0uYmluZChfdGhpcyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbCA9IF9sb2Rhc2gyWydkZWZhdWx0J10udGhyb3R0bGUodGhpcy5zZXRTY3JvbGxQb3NpdGlvbiwgMTAwLCB7XG4gICAgICBsZWFkaW5nOiB0cnVlLFxuICAgICAgdHJhaWxpbmc6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlV2luZG93UmVzaXplID0gX2xvZGFzaDJbJ2RlZmF1bHQnXS50aHJvdHRsZSh0aGlzLnNldFZpZXdwb3J0SGVpZ2h0LCAzNTAsIHtcbiAgICAgIGxlYWRpbmc6IHRydWUsXG4gICAgICB0cmFpbGluZzogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRvcnJlbnRMaXN0Q29udGFpbmVyLCBbe1xuICAgIGtleTogJ2NvbXBvbmVudERpZE1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5VSV9UT1JSRU5UX1NFTEVDVElPTl9DSEFOR0UsIHRoaXMub25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10ubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9UT1JSRU5UU19SRVFVRVNUX1NVQ0NFU1MsIHRoaXMub25SZWNlaXZlVG9ycmVudHNTdWNjZXNzKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10ubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9UT1JSRU5UU19SRVFVRVNUX0VSUk9SLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzRXJyb3IpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZTJbJ2RlZmF1bHQnXS5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uVUlfVE9SUkVOVFNfRklMVEVSX0NIQU5HRSwgdGhpcy5vblRvcnJlbnRGaWx0ZXJDaGFuZ2UpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5mZXRjaFRvcnJlbnRzKCk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUpO1xuICAgICAgdGhpcy5zZXRWaWV3cG9ydEhlaWdodCgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUpO1xuXG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLnVubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLlVJX1RPUlJFTlRfU0VMRUNUSU9OX0NIQU5HRSwgdGhpcy5vblRvcnJlbnRTZWxlY3Rpb25DaGFuZ2UpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9TVUNDRVNTLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzU3VjY2Vzcyk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLnVubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9UT1JSRU5UU19SRVFVRVNUX0VSUk9SLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzRXJyb3IpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5VSV9UT1JSRU5UU19GSUxURVJfQ0hBTkdFLCB0aGlzLm9uVG9ycmVudEZpbHRlckNoYW5nZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaGFuZGxlRGV0YWlsc0NsaWNrJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlRGV0YWlsc0NsaWNrKHRvcnJlbnQsIGV2ZW50KSB7XG4gICAgICBfYWN0aW9uc1VJQWN0aW9uczJbJ2RlZmF1bHQnXS5oYW5kbGVEZXRhaWxzQ2xpY2soe1xuICAgICAgICBoYXNoOiB0b3JyZW50Lmhhc2gsXG4gICAgICAgIGV2ZW50OiBldmVudFxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaGFuZGxlVG9ycmVudENsaWNrJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlVG9ycmVudENsaWNrKGhhc2gsIGV2ZW50KSB7XG4gICAgICBfYWN0aW9uc1VJQWN0aW9uczJbJ2RlZmF1bHQnXS5oYW5kbGVUb3JyZW50Q2xpY2soeyBoYXNoOiBoYXNoLCBldmVudDogZXZlbnQgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25SZWNlaXZlVG9ycmVudHNFcnJvcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uUmVjZWl2ZVRvcnJlbnRzRXJyb3IoKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdG9ycmVudFJlcXVlc3RFcnJvcjogdHJ1ZSwgdG9ycmVudFJlcXVlc3RTdWNjZXNzOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdvblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MoKSB7XG4gICAgICB2YXIgdG9ycmVudHMgPSBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmdldFRvcnJlbnRzKCk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICB0b3JyZW50czogdG9ycmVudHMsXG4gICAgICAgIHRvcnJlbnRDb3VudDogdG9ycmVudHMubGVuZ3RoLFxuICAgICAgICB0b3JyZW50UmVxdWVzdEVycm9yOiBmYWxzZSxcbiAgICAgICAgdG9ycmVudFJlcXVlc3RTdWNjZXNzOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdvblRvcnJlbnRGaWx0ZXJDaGFuZ2UnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvblRvcnJlbnRGaWx0ZXJDaGFuZ2UoKSB7XG4gICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgICAgaWYgKF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10uZ2V0U2VsZWN0ZWRUb3JyZW50cygpLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICBfc3RvcmVzVUlTdG9yZTJbJ2RlZmF1bHQnXS5jbG9zZVRvcnJlbnREZXRhaWxzUGFuZWwoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldExpc3RQYWRkaW5nJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TGlzdFBhZGRpbmcobWluVG9ycmVudEluZGV4LCBtYXhUb3JyZW50SW5kZXgsIHRvcnJlbnRDb3VudCkge1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHBhZCB0aGUgdmlzaWJsZSBpdGVtIGxpc3QuXG4gICAgICAvLyBJZiB0aGUgbWluaW11bSBpdGVtIGluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGVuIHdlJ3JlIGFscmVhZHkgYXQgdGhlIHRvcFxuICAgICAgLy8gb2YgdGhlIGxpc3QgYW5kIGRvbid0IG5lZWQgdG8gcmVuZGVyIGFueSBwYWRkaW5nIHRoZXJlLlxuICAgICAgaWYgKG1pblRvcnJlbnRJbmRleCA8IDApIHtcbiAgICAgICAgbWluVG9ycmVudEluZGV4ID0gMDtcbiAgICAgIH1cblxuICAgICAgaWYgKG1heFRvcnJlbnRJbmRleCA+IHRvcnJlbnRDb3VudCkge1xuICAgICAgICBtYXhUb3JyZW50SW5kZXggPSB0b3JyZW50Q291bnQ7XG4gICAgICB9XG5cbiAgICAgIHZhciBoaWRkZW5Cb3R0b20gPSB0b3JyZW50Q291bnQgLSBtYXhUb3JyZW50SW5kZXg7XG4gICAgICB2YXIgaGlkZGVuVG9wID0gbWluVG9ycmVudEluZGV4O1xuXG4gICAgICB2YXIgYm90dG9tID0gaGlkZGVuQm90dG9tICogdGhpcy5zdGF0ZS50b3JyZW50SGVpZ2h0O1xuICAgICAgdmFyIHRvcCA9IGhpZGRlblRvcCAqIHRoaXMuc3RhdGUudG9ycmVudEhlaWdodDtcblxuICAgICAgcmV0dXJuIHsgYm90dG9tOiBib3R0b20sIHRvcDogdG9wIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0TG9hZGluZ0luZGljYXRvcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExvYWRpbmdJbmRpY2F0b3IoKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3VpTG9hZGluZ0luZGljYXRvcjJbJ2RlZmF1bHQnXSwgbnVsbCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0Vmlld3BvcnRMaW1pdHMnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWaWV3cG9ydExpbWl0cygpIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIGJhc2VkIG9uIHRoZSBoZWlnaHRcbiAgICAgIC8vIG9mIHRoZSB2aWV3cG9ydC4gV2Ugb2Zmc2V0IHRoaXMgdG8gcmVuZGVyIGEgZmV3IG1vcmUgb3V0aWRlIG9mIHRoZVxuICAgICAgLy8gY29udGFpbmVyJ3MgZGltZW5zaW9ucywgd2hpY2ggbG9va3MgbmljZXIgd2hlbiB0aGUgdXNlciBzY3JvbGxzLlxuICAgICAgdmFyIG9mZnNldCA9IDEwO1xuXG4gICAgICAvLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHZpZXcgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgZGl2aWRlZFxuICAgICAgLy8gYnkgdGhlIGhlaWdodCBvZiB0aGUgZWxlbWVudHMuXG4gICAgICB2YXIgZWxlbWVudHNJblZpZXcgPSBNYXRoLmZsb29yKHRoaXMuc3RhdGUudmlld3BvcnRIZWlnaHQgLyB0aGlzLnN0YXRlLnRvcnJlbnRIZWlnaHQpO1xuXG4gICAgICAvLyBUaGUgbWluaW11bSBpdGVtIGluZGV4IHRvIHJlbmRlciBpcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGFib3ZlIHRoZVxuICAgICAgLy8gdmlld3BvcnQncyBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiwgbWludXMgdGhlIG9mZnNldC5cbiAgICAgIHZhciBtaW5Ub3JyZW50SW5kZXggPSBNYXRoLmZsb29yKHRoaXMuc3RhdGUuc2Nyb2xsUG9zaXRpb24gLyB0aGlzLnN0YXRlLnRvcnJlbnRIZWlnaHQpIC0gb2Zmc2V0O1xuXG4gICAgICAvLyBUaGUgbWF4aW11bSBpdGVtIGluZGV4IHRvIHJlbmRlciBpcyB0aGUgbWluaW11bSBpdGVtIHJlbmRlcmVkLCBwbHVzIHRoZVxuICAgICAgLy8gbnVtYmVyIG9mIGl0ZW1zIGluIHZpZXcsIHBsdXMgZG91YmxlIHRoZSBvZmZzZXQuXG4gICAgICB2YXIgbWF4VG9ycmVudEluZGV4ID0gbWluVG9ycmVudEluZGV4ICsgZWxlbWVudHNJblZpZXcgKyBvZmZzZXQgKiAyO1xuXG4gICAgICByZXR1cm4geyBtaW5Ub3JyZW50SW5kZXg6IG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4OiBtYXhUb3JyZW50SW5kZXggfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzZXRTY3JvbGxQb3NpdGlvbicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldFNjcm9sbFBvc2l0aW9uKCkge1xuICAgICAgaWYgKHRoaXMucmVmcy50b3JyZW50TGlzdCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBzY3JvbGxQb3NpdGlvbjogdGhpcy5yZWZzLnRvcnJlbnRMaXN0LnJlZnMuc2Nyb2xsYmFyLmdldFNjcm9sbFRvcCgpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3NldFZpZXdwb3J0SGVpZ2h0JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0Vmlld3BvcnRIZWlnaHQoKSB7XG4gICAgICBpZiAodGhpcy5yZWZzLnRvcnJlbnRMaXN0KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0OiB0aGlzLnJlZnMudG9ycmVudExpc3QucmVmcy5zY3JvbGxiYXIuZ2V0SGVpZ2h0KClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBjb250ZW50ID0gdGhpcy5nZXRMb2FkaW5nSW5kaWNhdG9yKCk7XG5cbiAgICAgIGlmICh0aGlzLnN0YXRlLnRvcnJlbnRSZXF1ZXN0U3VjY2Vzcykge1xuICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBzZWxlY3RlZFRvcnJlbnRzID0gX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5nZXRTZWxlY3RlZFRvcnJlbnRzKCk7XG4gICAgICAgICAgdmFyIHRvcnJlbnRzID0gX3RoaXMyLnN0YXRlLnRvcnJlbnRzO1xuICAgICAgICAgIHZhciB2aWV3cG9ydExpbWl0cyA9IF90aGlzMi5nZXRWaWV3cG9ydExpbWl0cygpO1xuXG4gICAgICAgICAgdmFyIGxpc3RQYWRkaW5nID0gX3RoaXMyLmdldExpc3RQYWRkaW5nKHZpZXdwb3J0TGltaXRzLm1pblRvcnJlbnRJbmRleCwgdmlld3BvcnRMaW1pdHMubWF4VG9ycmVudEluZGV4LCB0b3JyZW50cy5sZW5ndGgpO1xuXG4gICAgICAgICAgdmFyIG1heFRvcnJlbnRJbmRleCA9IHZpZXdwb3J0TGltaXRzLm1heFRvcnJlbnRJbmRleDtcbiAgICAgICAgICB2YXIgbWluVG9ycmVudEluZGV4ID0gdmlld3BvcnRMaW1pdHMubWluVG9ycmVudEluZGV4O1xuXG4gICAgICAgICAgaWYgKG1pblRvcnJlbnRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIG1pblRvcnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHZpc2libGVUb3JyZW50cyA9IHRvcnJlbnRzLnNsaWNlKG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4KTtcblxuICAgICAgICAgIHZhciB0b3JyZW50TGlzdCA9IHZpc2libGVUb3JyZW50cy5tYXAoZnVuY3Rpb24gKHRvcnJlbnQsIGluZGV4KSB7XG4gICAgICAgICAgICB2YXIgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGhhc2ggPSB0b3JyZW50Lmhhc2g7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFRvcnJlbnRzLmluZGV4T2YoaGFzaCkgPiAtMSkge1xuICAgICAgICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Ub3JyZW50MlsnZGVmYXVsdCddLCB7IGtleTogaGFzaCwgZGF0YTogdG9ycmVudCwgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgIGhhbmRsZUNsaWNrOiBfdGhpczIuaGFuZGxlVG9ycmVudENsaWNrLFxuICAgICAgICAgICAgICBoYW5kbGVEZXRhaWxzQ2xpY2s6IF90aGlzMi5oYW5kbGVEZXRhaWxzQ2xpY2sgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb250ZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAndWwnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICd0b3JyZW50X19saXN0Jywga2V5OiAndG9ycmVudF9fbGlzdCcgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tdG9wJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy50b3AgKyAncHgnIH0gfSksXG4gICAgICAgICAgICB0b3JyZW50TGlzdCxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tYm90dG9tJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy5ib3R0b20gKyAncHgnIH0gfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cDJbJ2RlZmF1bHQnXSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogJ2RpdicsXG4gICAgICAgICAgY2xhc3NOYW1lOiAndG9ycmVudF9fbGlzdF9fd3JhcHBlcicsXG4gICAgICAgICAgdHJhbnNpdGlvbk5hbWU6ICd0b3JyZW50X19saXN0LS1sb2FkaW5nJyxcbiAgICAgICAgICB0cmFuc2l0aW9uRW50ZXJUaW1lb3V0OiAxMDAwLFxuICAgICAgICAgIHRyYW5zaXRpb25MZWF2ZVRpbWVvdXQ6IDEwMDAgfSxcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgX3VpQ3VzdG9tU2Nyb2xsYmFyczJbJ2RlZmF1bHQnXSxcbiAgICAgICAgICB7IGNsYXNzTmFtZTogJ3RvcnJlbnRfX2xpc3RfX3dyYXBwZXItLWN1c3RvbS1zY3JvbGwnLFxuICAgICAgICAgICAgcmVmOiAndG9ycmVudExpc3QnLFxuICAgICAgICAgICAgc2Nyb2xsSGFuZGxlcjogdGhpcy5oYW5kbGVTY3JvbGwsIGtleTogJ3RvcnJlbnQtbGlzdF9fc2Nyb2xsLXdyYXBwZXInIH0sXG4gICAgICAgICAgY29udGVudFxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUb3JyZW50TGlzdENvbnRhaW5lcjtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUb3JyZW50TGlzdENvbnRhaW5lcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanNcbiAqKiBtb2R1bGUgaWQgPSAyODFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); + eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _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 _lodash = __webpack_require__(161);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _classnames = __webpack_require__(171);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactAddonsCssTransitionGroup = __webpack_require__(163);\n\nvar _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(157);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\n// import CustomScrollbars from '../ui/CustomScrollbars';\n\nvar _constantsEventTypes = __webpack_require__(172);\n\nvar _constantsEventTypes2 = _interopRequireDefault(_constantsEventTypes);\n\nvar _uiLoadingIndicator = __webpack_require__(209);\n\nvar _uiLoadingIndicator2 = _interopRequireDefault(_uiLoadingIndicator);\n\nvar _Torrent = __webpack_require__(284);\n\nvar _Torrent2 = _interopRequireDefault(_Torrent);\n\nvar _storesTorrentFilterStore = __webpack_require__(245);\n\nvar _storesTorrentFilterStore2 = _interopRequireDefault(_storesTorrentFilterStore);\n\nvar _storesTorrentStore = __webpack_require__(246);\n\nvar _storesTorrentStore2 = _interopRequireDefault(_storesTorrentStore);\n\nvar _actionsUIActions = __webpack_require__(198);\n\nvar _actionsUIActions2 = _interopRequireDefault(_actionsUIActions);\n\nvar _storesUIStore = __webpack_require__(199);\n\nvar _storesUIStore2 = _interopRequireDefault(_storesUIStore);\n\nvar METHODS_TO_BIND = ['onReceiveTorrentsError', 'onReceiveTorrentsSuccess', 'handleDetailsClick', 'handleTorrentClick', 'onTorrentFilterChange', 'onTorrentSelectionChange', 'getListPadding', 'getViewportLimits', 'setScrollPosition', 'setViewportHeight'];\n\nvar TorrentListContainer = (function (_React$Component) {\n _inherits(TorrentListContainer, _React$Component);\n\n function TorrentListContainer() {\n var _this = this;\n\n _classCallCheck(this, TorrentListContainer);\n\n _get(Object.getPrototypeOf(TorrentListContainer.prototype), 'constructor', this).call(this);\n\n this.state = {\n maxTorrentIndex: 10,\n minTorrentIndex: 0,\n scrollPosition: 0,\n torrentCount: 0,\n torrentHeight: 64,\n torrents: null,\n torrentRequestError: false,\n torrentRequestSuccess: false,\n viewportHeight: 0\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n\n this.handleScroll = _lodash2['default'].throttle(this.setScrollPosition, 100, {\n leading: true,\n trailing: true\n });\n\n this.handleWindowResize = _lodash2['default'].throttle(this.setViewportHeight, 350, {\n leading: true,\n trailing: true\n });\n }\n\n _createClass(TorrentListContainer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n _storesTorrentStore2['default'].fetchTorrents();\n window.addEventListener('resize', this.handleWindowResize);\n this.setViewportHeight();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n }\n }, {\n key: 'handleDetailsClick',\n value: function handleDetailsClick(torrent, event) {\n _actionsUIActions2['default'].handleDetailsClick({\n hash: torrent.hash,\n event: event\n });\n }\n }, {\n key: 'handleTorrentClick',\n value: function handleTorrentClick(hash, event) {\n _actionsUIActions2['default'].handleTorrentClick({ hash: hash, event: event });\n }\n }, {\n key: 'onReceiveTorrentsError',\n value: function onReceiveTorrentsError() {\n this.setState({ torrentRequestError: true, torrentRequestSuccess: false });\n }\n }, {\n key: 'onReceiveTorrentsSuccess',\n value: function onReceiveTorrentsSuccess() {\n var torrents = _storesTorrentStore2['default'].getTorrents();\n\n this.setState({\n torrents: torrents,\n torrentCount: torrents.length,\n torrentRequestError: false,\n torrentRequestSuccess: true\n });\n }\n }, {\n key: 'onTorrentFilterChange',\n value: function onTorrentFilterChange() {\n this.forceUpdate();\n }\n }, {\n key: 'onTorrentSelectionChange',\n value: function onTorrentSelectionChange() {\n if (_storesTorrentStore2['default'].getSelectedTorrents().length !== 1) {\n _storesUIStore2['default'].closeTorrentDetailsPanel();\n }\n\n this.forceUpdate();\n }\n }, {\n key: 'getListPadding',\n value: function getListPadding(minTorrentIndex, maxTorrentIndex, torrentCount) {\n // Calculate the number of pixels to pad the visible item list.\n // If the minimum item index is less than 0, then we're already at the top\n // of the list and don't need to render any padding there.\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n if (maxTorrentIndex > torrentCount) {\n maxTorrentIndex = torrentCount;\n }\n\n var hiddenBottom = torrentCount - maxTorrentIndex;\n var hiddenTop = minTorrentIndex;\n\n var bottom = hiddenBottom * this.state.torrentHeight;\n var top = hiddenTop * this.state.torrentHeight;\n\n return { bottom: bottom, top: top };\n }\n }, {\n key: 'getLoadingIndicator',\n value: function getLoadingIndicator() {\n return _react2['default'].createElement(_uiLoadingIndicator2['default'], null);\n }\n }, {\n key: 'getViewportLimits',\n value: function getViewportLimits() {\n // Calculate the number of items that should be rendered based on the height\n // of the viewport. We offset this to render a few more outide of the\n // container's dimensions, which looks nicer when the user scrolls.\n var offset = 10;\n\n // The number of elements in view is the height of the viewport divided\n // by the height of the elements.\n var elementsInView = Math.floor(this.state.viewportHeight / this.state.torrentHeight);\n\n // The minimum item index to render is the number of items above the\n // viewport's current scroll position, minus the offset.\n var minTorrentIndex = Math.floor(this.state.scrollPosition / this.state.torrentHeight) - offset;\n\n // The maximum item index to render is the minimum item rendered, plus the\n // number of items in view, plus double the offset.\n var maxTorrentIndex = minTorrentIndex + elementsInView + offset * 2;\n\n return { minTorrentIndex: minTorrentIndex, maxTorrentIndex: maxTorrentIndex };\n }\n }, {\n key: 'setScrollPosition',\n value: function setScrollPosition() {\n if (this.refs.torrentList) {\n this.setState({\n // scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop()\n scrollPosition: _reactDom2['default'].findDOMNode(this.refs.torrentList).scrollTop\n });\n }\n }\n }, {\n key: 'setViewportHeight',\n value: function setViewportHeight() {\n if (this.refs.torrentList) {\n this.setState({\n // viewportHeight: this.refs.torrentList.refs.scrollbar.getHeight()\n viewportHeight: _reactDom2['default'].findDOMNode(this.refs.torrentList).offsetHeight\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var content = this.getLoadingIndicator();\n\n if (this.state.torrentRequestSuccess) {\n (function () {\n var selectedTorrents = _storesTorrentStore2['default'].getSelectedTorrents();\n var torrents = _this2.state.torrents;\n var viewportLimits = _this2.getViewportLimits();\n\n var listPadding = _this2.getListPadding(viewportLimits.minTorrentIndex, viewportLimits.maxTorrentIndex, torrents.length);\n\n var maxTorrentIndex = viewportLimits.maxTorrentIndex;\n var minTorrentIndex = viewportLimits.minTorrentIndex;\n\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n var visibleTorrents = torrents.slice(minTorrentIndex, maxTorrentIndex);\n\n var torrentList = visibleTorrents.map(function (torrent, index) {\n var isSelected = false;\n var hash = torrent.hash;\n\n if (selectedTorrents.indexOf(hash) > -1) {\n isSelected = true;\n }\n\n return _react2['default'].createElement(_Torrent2['default'], { key: hash, data: torrent, selected: isSelected,\n handleClick: _this2.handleTorrentClick,\n handleDetailsClick: _this2.handleDetailsClick });\n });\n\n content = _react2['default'].createElement(\n 'ul',\n { className: 'torrent__list', key: 'torrent__list' },\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--top',\n style: { height: listPadding.top + 'px' } }),\n torrentList,\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--bottom',\n style: { height: listPadding.bottom + 'px' } })\n );\n })();\n }\n\n return _react2['default'].createElement(\n _reactAddonsCssTransitionGroup2['default'],\n {\n component: 'div',\n className: 'torrent__list__wrapper',\n onScroll: this.handleScroll,\n ref: 'torrentList',\n transitionName: 'torrent__list--loading',\n transitionEnterTimeout: 1000,\n transitionLeaveTimeout: 1000 },\n content\n );\n }\n }]);\n\n return TorrentListContainer;\n})(_react2['default'].Component);\n\nexports['default'] = TorrentListContainer;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanM/ZDcyYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsdUNBQXVDLG1CQUFtQiw0QkFBNEIsaURBQWlELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sYUFBYSxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUUvb0Isc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0Esd0RBQXdELDJCQUEyQjtBQUNuRjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EscUJBQXFCLDBEQUEwRDtBQUMvRTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGNBQWM7QUFDZDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYztBQUNkO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsMkVBQTJFO0FBQzNFO0FBQ0EsNkRBQTZEO0FBQzdELFdBQVc7O0FBRVg7QUFDQTtBQUNBLGFBQWEsbURBQW1EO0FBQ2hFLG9EQUFvRDtBQUNwRCxzQkFBc0IsaUNBQWlDLEVBQUU7QUFDekQ7QUFDQSxvREFBb0Q7QUFDcEQsc0JBQXNCLG9DQUFvQyxFQUFFO0FBQzVEO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBIiwiZmlsZSI6IjI4MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbnZhciBfZ2V0ID0gZnVuY3Rpb24gZ2V0KF94LCBfeDIsIF94MykgeyB2YXIgX2FnYWluID0gdHJ1ZTsgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7IHZhciBvYmplY3QgPSBfeCwgcHJvcGVydHkgPSBfeDIsIHJlY2VpdmVyID0gX3gzOyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94ID0gcGFyZW50OyBfeDIgPSBwcm9wZXJ0eTsgX3gzID0gcmVjZWl2ZXI7IF9hZ2FpbiA9IHRydWU7IGRlc2MgPSBwYXJlbnQgPSB1bmRlZmluZWQ7IGNvbnRpbnVlIF9mdW5jdGlvbjsgfSB9IGVsc2UgaWYgKCd2YWx1ZScgaW4gZGVzYykgeyByZXR1cm4gZGVzYy52YWx1ZTsgfSBlbHNlIHsgdmFyIGdldHRlciA9IGRlc2MuZ2V0OyBpZiAoZ2V0dGVyID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSByZXR1cm4gZ2V0dGVyLmNhbGwocmVjZWl2ZXIpOyB9IH0gfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sb2Rhc2ggPSByZXF1aXJlKCdsb2Rhc2gnKTtcblxudmFyIF9sb2Rhc2gyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbG9kYXNoKTtcblxudmFyIF9jbGFzc25hbWVzID0gcmVxdWlyZSgnY2xhc3NuYW1lcycpO1xuXG52YXIgX2NsYXNzbmFtZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NuYW1lcyk7XG5cbnZhciBfcmVhY3RBZGRvbnNDc3NUcmFuc2l0aW9uR3JvdXAgPSByZXF1aXJlKCdyZWFjdC1hZGRvbnMtY3NzLXRyYW5zaXRpb24tZ3JvdXAnKTtcblxudmFyIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cCk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9yZWFjdERvbSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuXG52YXIgX3JlYWN0RG9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0RG9tKTtcblxuLy8gaW1wb3J0IEN1c3RvbVNjcm9sbGJhcnMgZnJvbSAnLi4vdWkvQ3VzdG9tU2Nyb2xsYmFycyc7XG5cbnZhciBfY29uc3RhbnRzRXZlbnRUeXBlcyA9IHJlcXVpcmUoJy4uLy4uL2NvbnN0YW50cy9FdmVudFR5cGVzJyk7XG5cbnZhciBfY29uc3RhbnRzRXZlbnRUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb25zdGFudHNFdmVudFR5cGVzKTtcblxudmFyIF91aUxvYWRpbmdJbmRpY2F0b3IgPSByZXF1aXJlKCcuLi91aS9Mb2FkaW5nSW5kaWNhdG9yJyk7XG5cbnZhciBfdWlMb2FkaW5nSW5kaWNhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VpTG9hZGluZ0luZGljYXRvcik7XG5cbnZhciBfVG9ycmVudCA9IHJlcXVpcmUoJy4vVG9ycmVudCcpO1xuXG52YXIgX1RvcnJlbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVG9ycmVudCk7XG5cbnZhciBfc3RvcmVzVG9ycmVudEZpbHRlclN0b3JlID0gcmVxdWlyZSgnLi4vLi4vc3RvcmVzL1RvcnJlbnRGaWx0ZXJTdG9yZScpO1xuXG52YXIgX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUpO1xuXG52YXIgX3N0b3Jlc1RvcnJlbnRTdG9yZSA9IHJlcXVpcmUoJy4uLy4uL3N0b3Jlcy9Ub3JyZW50U3RvcmUnKTtcblxudmFyIF9zdG9yZXNUb3JyZW50U3RvcmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3RvcmVzVG9ycmVudFN0b3JlKTtcblxudmFyIF9hY3Rpb25zVUlBY3Rpb25zID0gcmVxdWlyZSgnLi4vLi4vYWN0aW9ucy9VSUFjdGlvbnMnKTtcblxudmFyIF9hY3Rpb25zVUlBY3Rpb25zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FjdGlvbnNVSUFjdGlvbnMpO1xuXG52YXIgX3N0b3Jlc1VJU3RvcmUgPSByZXF1aXJlKCcuLi8uLi9zdG9yZXMvVUlTdG9yZScpO1xuXG52YXIgX3N0b3Jlc1VJU3RvcmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3RvcmVzVUlTdG9yZSk7XG5cbnZhciBNRVRIT0RTX1RPX0JJTkQgPSBbJ29uUmVjZWl2ZVRvcnJlbnRzRXJyb3InLCAnb25SZWNlaXZlVG9ycmVudHNTdWNjZXNzJywgJ2hhbmRsZURldGFpbHNDbGljaycsICdoYW5kbGVUb3JyZW50Q2xpY2snLCAnb25Ub3JyZW50RmlsdGVyQ2hhbmdlJywgJ29uVG9ycmVudFNlbGVjdGlvbkNoYW5nZScsICdnZXRMaXN0UGFkZGluZycsICdnZXRWaWV3cG9ydExpbWl0cycsICdzZXRTY3JvbGxQb3NpdGlvbicsICdzZXRWaWV3cG9ydEhlaWdodCddO1xuXG52YXIgVG9ycmVudExpc3RDb250YWluZXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRvcnJlbnRMaXN0Q29udGFpbmVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUb3JyZW50TGlzdENvbnRhaW5lcigpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRvcnJlbnRMaXN0Q29udGFpbmVyKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKFRvcnJlbnRMaXN0Q29udGFpbmVyLnByb3RvdHlwZSksICdjb25zdHJ1Y3RvcicsIHRoaXMpLmNhbGwodGhpcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbWF4VG9ycmVudEluZGV4OiAxMCxcbiAgICAgIG1pblRvcnJlbnRJbmRleDogMCxcbiAgICAgIHNjcm9sbFBvc2l0aW9uOiAwLFxuICAgICAgdG9ycmVudENvdW50OiAwLFxuICAgICAgdG9ycmVudEhlaWdodDogNjQsXG4gICAgICB0b3JyZW50czogbnVsbCxcbiAgICAgIHRvcnJlbnRSZXF1ZXN0RXJyb3I6IGZhbHNlLFxuICAgICAgdG9ycmVudFJlcXVlc3RTdWNjZXNzOiBmYWxzZSxcbiAgICAgIHZpZXdwb3J0SGVpZ2h0OiAwXG4gICAgfTtcblxuICAgIE1FVEhPRFNfVE9fQklORC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgIF90aGlzW21ldGhvZF0gPSBfdGhpc1ttZXRob2RdLmJpbmQoX3RoaXMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5oYW5kbGVTY3JvbGwgPSBfbG9kYXNoMlsnZGVmYXVsdCddLnRocm90dGxlKHRoaXMuc2V0U2Nyb2xsUG9zaXRpb24sIDEwMCwge1xuICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgIHRyYWlsaW5nOiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZVdpbmRvd1Jlc2l6ZSA9IF9sb2Rhc2gyWydkZWZhdWx0J10udGhyb3R0bGUodGhpcy5zZXRWaWV3cG9ydEhlaWdodCwgMzUwLCB7XG4gICAgICBsZWFkaW5nOiB0cnVlLFxuICAgICAgdHJhaWxpbmc6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUb3JyZW50TGlzdENvbnRhaW5lciwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uVUlfVE9SUkVOVF9TRUxFQ1RJT05fQ0hBTkdFLCB0aGlzLm9uVG9ycmVudFNlbGVjdGlvbkNoYW5nZSk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9TVUNDRVNTLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzU3VjY2Vzcyk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9FUlJPUiwgdGhpcy5vblJlY2VpdmVUb3JyZW50c0Vycm9yKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUyWydkZWZhdWx0J10ubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLlVJX1RPUlJFTlRTX0ZJTFRFUl9DSEFOR0UsIHRoaXMub25Ub3JyZW50RmlsdGVyQ2hhbmdlKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10uZmV0Y2hUb3JyZW50cygpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcbiAgICAgIHRoaXMuc2V0Vmlld3BvcnRIZWlnaHQoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcblxuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5VSV9UT1JSRU5UX1NFTEVDVElPTl9DSEFOR0UsIHRoaXMub25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10udW5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1RPUlJFTlRTX1JFUVVFU1RfU1VDQ0VTUywgdGhpcy5vblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9FUlJPUiwgdGhpcy5vblJlY2VpdmVUb3JyZW50c0Vycm9yKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUyWydkZWZhdWx0J10udW5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uVUlfVE9SUkVOVFNfRklMVEVSX0NIQU5HRSwgdGhpcy5vblRvcnJlbnRGaWx0ZXJDaGFuZ2UpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZURldGFpbHNDbGljaycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhbmRsZURldGFpbHNDbGljayh0b3JyZW50LCBldmVudCkge1xuICAgICAgX2FjdGlvbnNVSUFjdGlvbnMyWydkZWZhdWx0J10uaGFuZGxlRGV0YWlsc0NsaWNrKHtcbiAgICAgICAgaGFzaDogdG9ycmVudC5oYXNoLFxuICAgICAgICBldmVudDogZXZlbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZVRvcnJlbnRDbGljaycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhbmRsZVRvcnJlbnRDbGljayhoYXNoLCBldmVudCkge1xuICAgICAgX2FjdGlvbnNVSUFjdGlvbnMyWydkZWZhdWx0J10uaGFuZGxlVG9ycmVudENsaWNrKHsgaGFzaDogaGFzaCwgZXZlbnQ6IGV2ZW50IH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ29uUmVjZWl2ZVRvcnJlbnRzRXJyb3InLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvblJlY2VpdmVUb3JyZW50c0Vycm9yKCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHRvcnJlbnRSZXF1ZXN0RXJyb3I6IHRydWUsIHRvcnJlbnRSZXF1ZXN0U3VjY2VzczogZmFsc2UgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25SZWNlaXZlVG9ycmVudHNTdWNjZXNzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25SZWNlaXZlVG9ycmVudHNTdWNjZXNzKCkge1xuICAgICAgdmFyIHRvcnJlbnRzID0gX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5nZXRUb3JyZW50cygpO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgdG9ycmVudHM6IHRvcnJlbnRzLFxuICAgICAgICB0b3JyZW50Q291bnQ6IHRvcnJlbnRzLmxlbmd0aCxcbiAgICAgICAgdG9ycmVudFJlcXVlc3RFcnJvcjogZmFsc2UsXG4gICAgICAgIHRvcnJlbnRSZXF1ZXN0U3VjY2VzczogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25Ub3JyZW50RmlsdGVyQ2hhbmdlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Ub3JyZW50RmlsdGVyQ2hhbmdlKCkge1xuICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ29uVG9ycmVudFNlbGVjdGlvbkNoYW5nZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uVG9ycmVudFNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAgIGlmIChfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmdldFNlbGVjdGVkVG9ycmVudHMoKS5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgX3N0b3Jlc1VJU3RvcmUyWydkZWZhdWx0J10uY2xvc2VUb3JyZW50RGV0YWlsc1BhbmVsKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRMaXN0UGFkZGluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExpc3RQYWRkaW5nKG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4LCB0b3JyZW50Q291bnQpIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHBpeGVscyB0byBwYWQgdGhlIHZpc2libGUgaXRlbSBsaXN0LlxuICAgICAgLy8gSWYgdGhlIG1pbmltdW0gaXRlbSBpbmRleCBpcyBsZXNzIHRoYW4gMCwgdGhlbiB3ZSdyZSBhbHJlYWR5IGF0IHRoZSB0b3BcbiAgICAgIC8vIG9mIHRoZSBsaXN0IGFuZCBkb24ndCBuZWVkIHRvIHJlbmRlciBhbnkgcGFkZGluZyB0aGVyZS5cbiAgICAgIGlmIChtaW5Ub3JyZW50SW5kZXggPCAwKSB7XG4gICAgICAgIG1pblRvcnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXhUb3JyZW50SW5kZXggPiB0b3JyZW50Q291bnQpIHtcbiAgICAgICAgbWF4VG9ycmVudEluZGV4ID0gdG9ycmVudENvdW50O1xuICAgICAgfVxuXG4gICAgICB2YXIgaGlkZGVuQm90dG9tID0gdG9ycmVudENvdW50IC0gbWF4VG9ycmVudEluZGV4O1xuICAgICAgdmFyIGhpZGRlblRvcCA9IG1pblRvcnJlbnRJbmRleDtcblxuICAgICAgdmFyIGJvdHRvbSA9IGhpZGRlbkJvdHRvbSAqIHRoaXMuc3RhdGUudG9ycmVudEhlaWdodDtcbiAgICAgIHZhciB0b3AgPSBoaWRkZW5Ub3AgKiB0aGlzLnN0YXRlLnRvcnJlbnRIZWlnaHQ7XG5cbiAgICAgIHJldHVybiB7IGJvdHRvbTogYm90dG9tLCB0b3A6IHRvcCB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldExvYWRpbmdJbmRpY2F0b3InLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRMb2FkaW5nSW5kaWNhdG9yKCkge1xuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF91aUxvYWRpbmdJbmRpY2F0b3IyWydkZWZhdWx0J10sIG51bGwpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZpZXdwb3J0TGltaXRzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Vmlld3BvcnRMaW1pdHMoKSB7XG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBpdGVtcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBiYXNlZCBvbiB0aGUgaGVpZ2h0XG4gICAgICAvLyBvZiB0aGUgdmlld3BvcnQuIFdlIG9mZnNldCB0aGlzIHRvIHJlbmRlciBhIGZldyBtb3JlIG91dGlkZSBvZiB0aGVcbiAgICAgIC8vIGNvbnRhaW5lcidzIGRpbWVuc2lvbnMsIHdoaWNoIGxvb2tzIG5pY2VyIHdoZW4gdGhlIHVzZXIgc2Nyb2xscy5cbiAgICAgIHZhciBvZmZzZXQgPSAxMDtcblxuICAgICAgLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB2aWV3IGlzIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IGRpdmlkZWRcbiAgICAgIC8vIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGVsZW1lbnRzLlxuICAgICAgdmFyIGVsZW1lbnRzSW5WaWV3ID0gTWF0aC5mbG9vcih0aGlzLnN0YXRlLnZpZXdwb3J0SGVpZ2h0IC8gdGhpcy5zdGF0ZS50b3JyZW50SGVpZ2h0KTtcblxuICAgICAgLy8gVGhlIG1pbmltdW0gaXRlbSBpbmRleCB0byByZW5kZXIgaXMgdGhlIG51bWJlciBvZiBpdGVtcyBhYm92ZSB0aGVcbiAgICAgIC8vIHZpZXdwb3J0J3MgY3VycmVudCBzY3JvbGwgcG9zaXRpb24sIG1pbnVzIHRoZSBvZmZzZXQuXG4gICAgICB2YXIgbWluVG9ycmVudEluZGV4ID0gTWF0aC5mbG9vcih0aGlzLnN0YXRlLnNjcm9sbFBvc2l0aW9uIC8gdGhpcy5zdGF0ZS50b3JyZW50SGVpZ2h0KSAtIG9mZnNldDtcblxuICAgICAgLy8gVGhlIG1heGltdW0gaXRlbSBpbmRleCB0byByZW5kZXIgaXMgdGhlIG1pbmltdW0gaXRlbSByZW5kZXJlZCwgcGx1cyB0aGVcbiAgICAgIC8vIG51bWJlciBvZiBpdGVtcyBpbiB2aWV3LCBwbHVzIGRvdWJsZSB0aGUgb2Zmc2V0LlxuICAgICAgdmFyIG1heFRvcnJlbnRJbmRleCA9IG1pblRvcnJlbnRJbmRleCArIGVsZW1lbnRzSW5WaWV3ICsgb2Zmc2V0ICogMjtcblxuICAgICAgcmV0dXJuIHsgbWluVG9ycmVudEluZGV4OiBtaW5Ub3JyZW50SW5kZXgsIG1heFRvcnJlbnRJbmRleDogbWF4VG9ycmVudEluZGV4IH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2V0U2Nyb2xsUG9zaXRpb24nLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRTY3JvbGxQb3NpdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLnJlZnMudG9ycmVudExpc3QpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgLy8gc2Nyb2xsUG9zaXRpb246IHRoaXMucmVmcy50b3JyZW50TGlzdC5yZWZzLnNjcm9sbGJhci5nZXRTY3JvbGxUb3AoKVxuICAgICAgICAgIHNjcm9sbFBvc2l0aW9uOiBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUodGhpcy5yZWZzLnRvcnJlbnRMaXN0KS5zY3JvbGxUb3BcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2V0Vmlld3BvcnRIZWlnaHQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRWaWV3cG9ydEhlaWdodCgpIHtcbiAgICAgIGlmICh0aGlzLnJlZnMudG9ycmVudExpc3QpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgLy8gdmlld3BvcnRIZWlnaHQ6IHRoaXMucmVmcy50b3JyZW50TGlzdC5yZWZzLnNjcm9sbGJhci5nZXRIZWlnaHQoKVxuICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0OiBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUodGhpcy5yZWZzLnRvcnJlbnRMaXN0KS5vZmZzZXRIZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBjb250ZW50ID0gdGhpcy5nZXRMb2FkaW5nSW5kaWNhdG9yKCk7XG5cbiAgICAgIGlmICh0aGlzLnN0YXRlLnRvcnJlbnRSZXF1ZXN0U3VjY2Vzcykge1xuICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBzZWxlY3RlZFRvcnJlbnRzID0gX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5nZXRTZWxlY3RlZFRvcnJlbnRzKCk7XG4gICAgICAgICAgdmFyIHRvcnJlbnRzID0gX3RoaXMyLnN0YXRlLnRvcnJlbnRzO1xuICAgICAgICAgIHZhciB2aWV3cG9ydExpbWl0cyA9IF90aGlzMi5nZXRWaWV3cG9ydExpbWl0cygpO1xuXG4gICAgICAgICAgdmFyIGxpc3RQYWRkaW5nID0gX3RoaXMyLmdldExpc3RQYWRkaW5nKHZpZXdwb3J0TGltaXRzLm1pblRvcnJlbnRJbmRleCwgdmlld3BvcnRMaW1pdHMubWF4VG9ycmVudEluZGV4LCB0b3JyZW50cy5sZW5ndGgpO1xuXG4gICAgICAgICAgdmFyIG1heFRvcnJlbnRJbmRleCA9IHZpZXdwb3J0TGltaXRzLm1heFRvcnJlbnRJbmRleDtcbiAgICAgICAgICB2YXIgbWluVG9ycmVudEluZGV4ID0gdmlld3BvcnRMaW1pdHMubWluVG9ycmVudEluZGV4O1xuXG4gICAgICAgICAgaWYgKG1pblRvcnJlbnRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIG1pblRvcnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHZpc2libGVUb3JyZW50cyA9IHRvcnJlbnRzLnNsaWNlKG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4KTtcblxuICAgICAgICAgIHZhciB0b3JyZW50TGlzdCA9IHZpc2libGVUb3JyZW50cy5tYXAoZnVuY3Rpb24gKHRvcnJlbnQsIGluZGV4KSB7XG4gICAgICAgICAgICB2YXIgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGhhc2ggPSB0b3JyZW50Lmhhc2g7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFRvcnJlbnRzLmluZGV4T2YoaGFzaCkgPiAtMSkge1xuICAgICAgICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Ub3JyZW50MlsnZGVmYXVsdCddLCB7IGtleTogaGFzaCwgZGF0YTogdG9ycmVudCwgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgIGhhbmRsZUNsaWNrOiBfdGhpczIuaGFuZGxlVG9ycmVudENsaWNrLFxuICAgICAgICAgICAgICBoYW5kbGVEZXRhaWxzQ2xpY2s6IF90aGlzMi5oYW5kbGVEZXRhaWxzQ2xpY2sgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb250ZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAndWwnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICd0b3JyZW50X19saXN0Jywga2V5OiAndG9ycmVudF9fbGlzdCcgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tdG9wJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy50b3AgKyAncHgnIH0gfSksXG4gICAgICAgICAgICB0b3JyZW50TGlzdCxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tYm90dG9tJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy5ib3R0b20gKyAncHgnIH0gfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cDJbJ2RlZmF1bHQnXSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogJ2RpdicsXG4gICAgICAgICAgY2xhc3NOYW1lOiAndG9ycmVudF9fbGlzdF9fd3JhcHBlcicsXG4gICAgICAgICAgb25TY3JvbGw6IHRoaXMuaGFuZGxlU2Nyb2xsLFxuICAgICAgICAgIHJlZjogJ3RvcnJlbnRMaXN0JyxcbiAgICAgICAgICB0cmFuc2l0aW9uTmFtZTogJ3RvcnJlbnRfX2xpc3QtLWxvYWRpbmcnLFxuICAgICAgICAgIHRyYW5zaXRpb25FbnRlclRpbWVvdXQ6IDEwMDAsXG4gICAgICAgICAgdHJhbnNpdGlvbkxlYXZlVGltZW91dDogMTAwMCB9LFxuICAgICAgICBjb250ZW50XG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUb3JyZW50TGlzdENvbnRhaW5lcjtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUb3JyZW50TGlzdENvbnRhaW5lcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanNcbiAqKiBtb2R1bGUgaWQgPSAyODFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0="); /***/ }, /* 282 */, diff --git a/server/assets/style.css b/server/assets/style.css index cbcaaf9f..f6061f61 100644 --- a/server/assets/style.css +++ b/server/assets/style.css @@ -628,10 +628,6 @@ body { max-height: 35px; } .torrent__list__wrapper { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; @@ -1582,6 +1578,7 @@ body { list-style: none; max-width: 100%; opacity: 1; + overflow: auto; -webkit-transition: opacity 1s; transition: opacity 1s; -webkit-user-select: none; diff --git a/server/assets/style.css.map b/server/assets/style.css.map index 5363de3f..b718d493 100644 --- a/server/assets/style.css.map +++ b/server/assets/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.css","../../../node_modules/inuit-defaults/_settings.defaults.scss","../../../node_modules/inuit-normalize/_generic.normalize.scss","tools/_variables.scss","base/_typography.scss","../../../node_modules/inuit-reset/_generic.reset.scss","../../../node_modules/inuit-box-sizing/_generic.box-sizing.scss","../../../node_modules/inuit-page/_base.page.scss","tools/_reset.scss","base/_animations.scss","base/_form-elements.scss","tools/_colors.scss","base/_layout.scss","base/_main.scss","components/_action-bar.scss","components/_application-content.scss","components/_badge.scss","components/_client-stats.scss","components/_directory-tree.scss","components/_dropdown.scss","components/_floating-action.scss","components/_icons.scss","components/_loading-indicator.scss","components/_modals.scss","components/_progress-bar.scss","components/_scrollbars.scss","components/_sidebar.scss","components/_sidebar-filter.scss","components/_textbox-repeater.scss","components/_torrent-details-panel.scss","components/_torrents.scss","components/_transfer-data.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n@import url(\"http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400\");\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */ }\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0; }\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block; }\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */ }\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0; }\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none; }\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent; }\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0; }\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted; }\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold; }\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic; }\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000; }\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%; }\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsup {\n top: -0.5em; }\n\nsub {\n bottom: -0.25em; }\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0; }\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden; }\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px; }\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0; }\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto; }\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em; }\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */ }\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible; }\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none; }\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */ }\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal; }\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */ }\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto; }\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold; }\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n\ntd,\nth {\n padding: 0; }\n\n/*------------------------------------* #RESET\n\\*------------------------------------*/\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0; }\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help; }\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none; }\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid; }\n\n/*------------------------------------* #BOX-SIZING\n\\*------------------------------------*/\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n*, *:before, *:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n\n/*------------------------------------* #PAGE\n\\*------------------------------------*/\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: 1em;\n /* [1] */\n line-height: 1.5;\n /* [1] */\n background-color: #fff;\n color: #333;\n overflow-y: scroll;\n /* [2] */\n min-height: 100%;\n /* [3] */\n -webkit-text-size-adjust: 100%;\n /* [4] */\n -ms-text-size-adjust: 100%;\n /* [4] */\n -moz-osx-font-smoothing: grayscale;\n /* [5] */\n -webkit-font-smoothing: antialiased;\n /* [5] */ }\n\nth {\n font-weight: inherit;\n text-align: left; }\n\n@keyframes fade-in {\n 0% {\n opacity: 0; }\n 100% {\n opacity: 1; } }\n\n@keyframes fade-out {\n 0% {\n opacity: 1; }\n 100% {\n opacity: 0; } }\n\n.textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none; }\n\n.textbox {\n background: rgba(233, 238, 242, 0.3);\n border-radius: 4px;\n border: 1px solid #e9eef2;\n color: #53718a;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .textbox::placeholder {\n color: #abbac7;\n font-style: italic;\n transition: color 0.25s; }\n .textbox:focus {\n background: rgba(233, 238, 242, 0.3);\n border-color: #e9eef2;\n color: #258de5; }\n .textbox:focus::placeholder {\n color: #abbac7; }\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s; }\n .button--deemphasize {\n background: #e9eef2;\n color: #66717a; }\n .button--deemphasize:hover {\n background: #d9e2e9;\n color: #5a646c; }\n .button--primary {\n background: #258de5;\n color: #fff;\n white-space: nowrap; }\n .button--primary:hover {\n background: #1a80d7; }\n\n.form__label {\n color: #53718a;\n display: block;\n margin-bottom: 0.1em; }\n\n.form__row + .form__row {\n margin-top: 20px; }\n\nhtml,\nbody {\n height: 100%;\n overflow: hidden; }\n\n.container {\n height: 100%;\n width: 100%; }\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%; }\n\n.application__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative; }\n\n.application__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n .application__panel--torrent-list {\n transition: transform 0.5s;\n z-index: 2; }\n .application__panel--torrent-list.is-open {\n transform: translateX(85%); }\n .application__panel--torrent-details {\n right: 15%;\n width: 85%;\n z-index: 1; }\n\n.torrent__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px; }\n\n.torrent__list__wrapper {\n display: flex;\n flex: 1; }\n .torrent__list__wrapper--custom-scroll {\n flex: 1;\n height: auto !important; }\n\nbody {\n background: #1a2f3d; }\n\nul {\n list-style: none; }\n\nbody {\n color: #53718a;\n font-family: \"Roboto\", sans-srif; }\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8; }\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis; }\n\n.action-bar {\n background: transparent;\n color: #1b1a1c;\n display: flex;\n flex: 0 0 60px;\n position: relative; }\n .action-bar:after {\n background: rgba(26, 47, 61, 0.15);\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto; }\n .action-bar__item {\n flex: 3; }\n .action-bar__item:first-child {\n text-align: left; }\n .action-bar__item:last-child {\n text-align: right; }\n .action-bar__item--sort-torrents {\n max-width: 225px; }\n .action-bar__item--sort-torrents .dropdown {\n margin: 5px 0 0 15px; }\n .action-bar__item--sort-torrents .dropdown__content {\n min-width: 250px; }\n .action-bar__item--torrent-operations .dropdown {\n display: inline-block;\n height: 60px; }\n .action-bar__item--torrent-operations .dropdown__content {\n min-width: 430px;\n right: 4px; }\n .action-bar__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px; }\n .action-bar__group--has-divider {\n position: relative; }\n .action-bar__group--has-divider:before {\n background: rgba(122, 128, 128, 0.15);\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px; }\n\n.actions {\n list-style: none; }\n\n.action {\n box-shadow: 1px 0 transparent, -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s; }\n .action:hover {\n background: rgba(51, 62, 74, 0.05);\n box-shadow: 1px 0 rgba(51, 62, 74, 0.15), -1px 0 rgba(51, 62, 74, 0.15); }\n .action:hover .icon {\n fill: #258de5; }\n .action__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden; }\n .action .icon {\n fill: #909799;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px; }\n\n.application__content {\n background: #e9eef2; }\n\n.badge {\n background: #2b4456;\n border-radius: 100px;\n color: #132532;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline; }\n\n.client-stat {\n display: flex;\n padding: 30px 20px 20px 20px; }\n .client-stat__icon, .client-stat__data {\n position: relative;\n vertical-align: top;\n z-index: 1; }\n .client-stat__icon {\n flex: 0 0 23px; }\n .client-stat__icon .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto; }\n .client-stat__data {\n flex: 1; }\n .client-stat__data--primary, .client-stat__data--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2; }\n .client-stat__data--primary {\n font-size: 1.75em;\n white-space: nowrap; }\n .client-stat__data--primary .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em; }\n .client-stat__data--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400; }\n\n.client-stat--limits {\n background: none;\n border: none;\n color: #53718a;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%; }\n .client-stat--limits .icon {\n display: inline-block;\n fill: #53718a;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px; }\n .client-stat--limits .icon .limits__bars--top {\n opacity: 0.4; }\n .client-stat--limits .icon .limits__bars--bottom {\n opacity: 0.6; }\n .client-stat--limits:hover {\n color: #258de5; }\n .client-stat--limits:hover .icon {\n fill: #258de5; }\n\n.client-stat {\n position: relative; }\n .client-stat .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0; }\n .client-stat .graph svg {\n height: 100%;\n width: 100%; }\n .client-stat .graph__line {\n fill: none; }\n .client-stat .graph__line--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px; }\n .client-stat .graph__line--rate {\n stroke-width: 1.1px; }\n .client-stat--download .icon {\n fill: rgba(43, 174, 108, 0.75); }\n .client-stat--download .client-stat__data--primary {\n color: #2bae6c; }\n .client-stat--download .client-stat__data--secondary {\n color: rgba(43, 174, 108, 0.75); }\n .client-stat--download .graph .graph--download--gradient--top {\n stop-color: rgba(43, 174, 108, 0.2); }\n .client-stat--download .graph .graph--download--gradient--bottom {\n stop-color: rgba(43, 174, 108, 0); }\n .client-stat--download .graph__area {\n fill: url(\"#graph--download--gradient\"); }\n .client-stat--download .graph__line--limit {\n stroke: rgba(102, 217, 159, 0.15); }\n .client-stat--download .graph__line--rate {\n stroke: rgba(43, 174, 108, 0.4); }\n .client-stat--upload .icon {\n fill: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .client-stat__data--primary {\n color: #2387d9; }\n .client-stat--upload .client-stat__data--secondary {\n color: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .graph .graph--upload--gradient--top {\n stop-color: rgba(35, 135, 217, 0.2); }\n .client-stat--upload .graph .graph--upload--gradient--bottom {\n stop-color: rgba(35, 135, 217, 0); }\n .client-stat--upload .graph__area {\n fill: url(\"#graph--upload--gradient\"); }\n .client-stat--upload .graph__line--limit {\n stroke: rgba(121, 183, 233, 0.15); }\n .client-stat--upload .graph__line--rate {\n stroke: rgba(35, 135, 217, 0.4); }\n\n.directory-tree .icon {\n display: inline-block;\n fill: rgba(82, 120, 147, 0.4);\n height: 14px;\n margin-right: 6px;\n width: 14px; }\n\n.directory-tree__node {\n color: #527893;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap; }\n .directory-tree__node--group {\n padding-left: 10px;\n position: relative; }\n .directory-tree__node--group:after {\n background: rgba(82, 120, 147, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px; }\n .directory-tree__node--directory {\n color: #527893;\n cursor: pointer;\n transition: color 0.125s; }\n .directory-tree__node--directory.is-expanded {\n color: #719bb7;\n font-weight: 500; }\n .directory-tree__node--directory.is-expanded .icon {\n fill: rgba(130, 170, 197, 0.5); }\n .directory-tree__node--directory .icon {\n fill: rgba(82, 120, 147, 0.4); }\n .directory-tree__node .file {\n display: flex;\n line-height: 1.7;\n width: 100%; }\n .directory-tree__node .file:hover .file__size, .directory-tree__node .file:hover .file__priority {\n color: #527893; }\n .directory-tree__node .file .icon {\n fill: #344b5b; }\n .directory-tree__node .file__name {\n flex: 1 1 auto; }\n .directory-tree__node .file__size, .directory-tree__node .file__priority {\n color: #2b4456;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s; }\n .directory-tree__node .file__size {\n padding-right: 6.25px; }\n .directory-tree__node--file-list {\n margin-bottom: 3px; }\n\n.directory-tree__parent-directory {\n margin-left: -1px; }\n .directory-tree__parent-directory .icon {\n fill: rgba(58, 92, 116, 0.5);\n margin-right: 8px;\n vertical-align: middle; }\n\n.directory-tree__tree .directory-tree__tree {\n padding-left: 6px; }\n\n.dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2; }\n .dropdown__button, .dropdown__trigger {\n cursor: pointer; }\n .dropdown__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none; }\n .dropdown__content {\n background: rgba(255, 255, 255, 0.98);\n border-radius: 3px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n color: #95a2ad;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2; }\n .dropdown.is-expanded .dropdown__header .dropdown__value {\n color: #4e6a7c; }\n .dropdown__label {\n color: #abbac7;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase; }\n .dropdown__button .dropdown__label {\n cursor: pointer; }\n .dropdown__value {\n color: #8899a8;\n transition: color 0.25s; }\n .dropdown__value:after {\n border-top: 5px solid #8899a8;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle; }\n .dropdown__header {\n position: relative; }\n .dropdown__header:after {\n background: rgba(26, 47, 61, 0.05);\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%; }\n .dropdown__items {\n display: flex;\n padding: 10px 0; }\n .dropdown__list {\n flex: 1; }\n .dropdown__item {\n padding: 5px 15px; }\n .dropdown__item.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s; }\n .dropdown__item.is-selectable:hover {\n background: rgba(233, 238, 242, 0.4);\n color: #788997; }\n .dropdown__item.is-selectable.is-selected {\n color: #258de5; }\n .dropdown--align-right .dropdown {\n left: auto;\n right: 0; }\n\n.dropdown__content-enter {\n animation: fade-in 0.25s both; }\n\n.dropdown__content-leave {\n animation: fade-out 0.25s both; }\n\n.dropdown__content__container {\n padding: 25px 30px; }\n\n.floating-action__button {\n background: #fff;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1);\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px; }\n .floating-action__button:last-child {\n margin-right: 0; }\n .floating-action__button:hover {\n background: #e9eef2;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.2); }\n .floating-action__button:hover .icon {\n fill: rgba(26, 47, 61, 0.5); }\n .floating-action__button .icon {\n height: 8px;\n fill: rgba(26, 47, 61, 0.3);\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px; }\n\n.icon--eta .icon__ring {\n fill-opacity: 1; }\n\n@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%); }\n 50% {\n transform: translateX(400%); }\n 100% {\n transform: translateX(400%); } }\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px; }\n .loading-indicator__bar {\n background: #e9eef2;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%; }\n .loading-indicator__bar:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: rgba(37, 141, 229, 0.75);\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%; }\n .loading-indicator__bar--1 {\n top: 0; }\n .loading-indicator__bar--2 {\n top: 50%;\n transform: translateY(-50%); }\n .loading-indicator__bar--2:after {\n animation-delay: 0.5s; }\n .loading-indicator__bar--3 {\n bottom: 0; }\n .loading-indicator__bar--3:after {\n animation-delay: 1s; }\n\n.modal {\n background: rgba(26, 47, 61, 0.5);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100; }\n .modal__content {\n background: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px; }\n .modal__content--align-center {\n text-align: center; }\n .modal__footer {\n margin-top: 25px; }\n .modal__button-group {\n text-align: right; }\n .modal__button-group .button + .button {\n margin-left: 20px; }\n .modal__header {\n color: #313436;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px; }\n .modal__animation-enter {\n opacity: 0; }\n .modal__animation-enter-active {\n opacity: 1; }\n .modal__animation-leave {\n opacity: 1;\n pointer-events: none; }\n .modal__animation-leave-active {\n opacity: 0; }\n\n.progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1; }\n .is-selected.is-stopped .progress-bar {\n opacity: 0.5; }\n .progress-bar:after {\n background: #e3e5e5;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%; }\n .is-selected .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .is-selected.is-stopped .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .progress-bar__fill {\n background: #39ce83;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1; }\n .is-seeding .progress-bar__fill {\n background: #258de5; }\n .is-completed .progress-bar__fill,\n .is-stopped .progress-bar__fill {\n background: #e3e5e5; }\n .is-selected .progress-bar__fill {\n background: #fff; }\n .has-error .progress-bar__fill {\n background: #e95779; }\n\n.scrollbars__thumb {\n background: rgba(26, 47, 61, 0.3);\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.25s; }\n .scrollbars__thumb:active {\n opacity: 1; }\n .scrollbars__thumb:hover, .scrollbars__thumb:active {\n background: rgba(26, 47, 61, 0.6); }\n .is-inverted .scrollbars__thumb {\n background: rgba(233, 238, 242, 0.3); }\n .is-inverted .scrollbars__thumb:hover, .is-inverted .scrollbars__thumb:active {\n background: rgba(233, 238, 242, 0.6); }\n\n.scrollbars:hover .scrollbars__thumb {\n opacity: 1; }\n\n.application__sidebar {\n box-shadow: 1px 0 rgba(6, 9, 11, 0.3);\n color: #53718a;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2; }\n\n.sidebar__item--search {\n position: relative; }\n .sidebar__item--search .icon {\n fill: #53718a;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px; }\n .sidebar__item--search .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid rgba(9, 24, 36, 0.4);\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: rgba(9, 24, 36, 0.3);\n box-shadow: none;\n color: #53718a;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .sidebar__item--search .textbox::placeholder {\n color: rgba(83, 113, 138, 0.4);\n font-style: italic;\n transition: color 0.25s; }\n .sidebar__item--search.is-in-use .icon {\n fill: #2c9e65;\n opacity: 1; }\n .sidebar__item--search.is-in-use .textbox {\n background: #39ce83;\n border-bottom: 1px solid #39ce83;\n border-top: 1px solid #39ce83;\n color: #1e8954; }\n .sidebar__item--search.is-in-use .textbox::placeholder {\n color: #2cad6d; }\n\n.sidebar__item--speed-limit {\n padding-left: 5px;\n padding-top: 5px; }\n .sidebar__item--speed-limit .dropdown__content {\n min-width: 180px; }\n .sidebar__item--speed-limit .dropdown__items {\n font-size: 0.9em; }\n\n.sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0; }\n .sidebar-filter + .sidebar-filter {\n padding-top: 0; }\n .sidebar-filter__item {\n color: #53718a;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s; }\n .sidebar-filter__item:hover {\n color: #7a97af; }\n .sidebar-filter__item:hover .icon {\n fill: #7a97af; }\n .sidebar-filter__item.is-active {\n color: #258de5;\n font-weight: 700; }\n .sidebar-filter__item.is-active .badge {\n background: #3b586d; }\n .sidebar-filter__item.is-active .icon {\n fill: #258de5; }\n .sidebar-filter__item .icon {\n display: inline-block;\n fill: #53718a;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto; }\n .sidebar-filter .badge {\n background: #2b4456;\n color: #132532; }\n\n.sidebar-filter__item--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .sidebar-filter__item--heading, .sidebar-filter__item--heading:hover {\n color: rgba(83, 113, 138, 0.5); }\n\n.textbox-repeater .floating-action__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%; }\n\n.textbox-repeater .floating-action__button {\n position: relative; }\n\n.textbox-repeater .textbox__wrapper {\n position: relative; }\n\n.application__panel--torrent-details {\n background: #0e2231; }\n\n.torrent-details {\n background: #0e2231;\n bottom: 0;\n box-shadow: -1px 0 0 rgba(26, 47, 61, 0.1);\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2; }\n .torrent-details__heading {\n box-shadow: 0 1px 0 rgba(4, 13, 19, 0.3);\n flex: 0 0 auto;\n padding: 12.5px 25px 16.66667px 25px; }\n .torrent-details__heading.is-stopped .torrent__details--tertiary {\n color: #7b9cb4; }\n .torrent-details__heading.has-error .progress-bar__fill {\n background: #be2558; }\n .torrent-details__heading .torrent__details--name {\n color: #c7dbeb;\n font-size: 1.7em;\n font-weight: 300; }\n .torrent-details__heading .torrent__details--tertiary {\n color: #7b9cb4;\n font-size: 1em;\n margin-bottom: 12.5px; }\n .torrent-details__heading .torrent__details--download .icon, .torrent-details__heading .torrent__details--upload .icon, .torrent-details__heading .torrent__details--eta .icon, .torrent-details__heading .torrent__details--ratio .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px; }\n .torrent-details__heading .torrent__details--ratio .icon, .torrent-details__heading .torrent__details--eta .icon {\n fill: rgba(77, 111, 135, 0.5); }\n .torrent-details__heading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n .torrent-details__heading .progress-bar:after {\n background: #2a3e4c; }\n .torrent-details__table {\n color: #527893;\n width: 100%; }\n .torrent-details__table__heading--primary {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__table__heading--secondary {\n color: rgba(82, 120, 147, 0.5);\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .torrent-details__content {\n flex: 1;\n overflow: auto;\n padding: 16.66667px 25px; }\n .torrent-details__content__wrapper {\n background: rgba(16, 26, 34, 0.4);\n display: flex;\n flex: 1;\n overflow: hidden; }\n .torrent-details__navigation {\n background: rgba(16, 26, 34, 0.1);\n box-shadow: 1px 0 0 rgba(4, 13, 19, 0.35);\n min-width: 125px;\n padding: 12.5px 0; }\n .torrent-details__navigation .navigation__item {\n cursor: pointer;\n padding: 6.25px 25px;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s; }\n .torrent-details__navigation .navigation__item.is-active {\n background: rgba(52, 156, 244, 0.07);\n box-shadow: 1px 0 0 #349cf4;\n color: #349cf4; }\n .torrent-details__section__heading, .torrent-details__section__null-data {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__section__heading .badge {\n background: rgba(82, 120, 147, 0.5);\n color: #0c1b26; }\n\n.torrent-details-enter {\n opacity: 0; }\n\n.torrent-details-enter-active {\n opacity: 1; }\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s; }\n\n.torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative; }\n .torrents:after {\n background: #fff;\n bottom: 0;\n box-shadow: -1px 0 0 0 rgba(26, 47, 61, 0.15);\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0; }\n .torrents .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%); }\n\n.torrent__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative; }\n .torrent__list__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n transition: opacity 1s;\n user-select: none;\n z-index: 1; }\n .torrent__list--loading-enter {\n opacity: 0;\n transition: opacity 1s; }\n .torrent__list--loading-enter-active {\n opacity: 1; }\n .torrent__list--loading-leave {\n opacity: 1;\n transition: opacity 1s; }\n .torrent__list--loading-leave-active {\n opacity: 0; }\n .torrent__list--empty {\n opacity: 0; }\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s; }\n .torrent:hover {\n background: #f6f8fa; }\n .torrent:hover .torrent__more-info {\n opacity: 1; }\n .torrent.is-selected {\n background: #258de5; }\n .torrent__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px; }\n\n.torrent__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none; }\n .torrent__details--primary, .torrent__details--secondary, .torrent__details--tertiary {\n transition: color 0.25s; }\n .torrent__details--primary {\n color: #333332;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap; }\n .is-stopped .torrent__details--primary {\n color: rgba(51, 51, 50, 0.5); }\n .is-selected .torrent__details--primary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--primary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--secondary {\n align-items: flex-end;\n color: #807f7e;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px; }\n .torrent__details--secondary li {\n flex: 1 1 auto;\n min-width: 15%; }\n .torrent__details--secondary li.torrent__details--ratio {\n max-width: 30px; }\n .is-stopped .torrent__details--secondary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--secondary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--secondary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--tertiary {\n color: #807f7e;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0; }\n .torrent__details--tertiary li {\n display: inline-block;\n margin-right: 1em; }\n .torrent__details--tertiary li:last-child {\n margin-right: 0; }\n .is-stopped .torrent__details--tertiary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.9); }\n .is-selected.is-stopped .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.5); }\n .torrent__details__label {\n margin-right: 0.5em;\n opacity: 0.5; }\n\n.torrent__details--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden; }\n .torrent__details--eta .torrent__details--segment {\n margin-right: 0.25em; }\n .torrent__details--eta .torrent__details--segment:last-child {\n margin-right: 0; }\n .is-actively-downloading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n\n.view--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 rgba(26, 47, 61, 0.15);\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%; }\n\n.transfer-data--download {\n color: #39ce83; }\n .transfer-data--download .icon {\n fill: #39ce83; }\n\n.transfer-data--upload {\n color: #258de5; }\n .transfer-data--upload .icon {\n fill: #258de5; }\n","/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n///*------------------------------------*\\\n// #DEFAULTS\n//\\*------------------------------------*/\n\n// These variables are inuitcss’ defaults; they should not be modified or\n// adjusted directly; you should predefine the variables in your own project.\n\n\n\n\n\n// High-level base settings.\n$inuit-base-font-size: 16px !default;\n$inuit-base-line-height: 24px !default;\n$inuit-base-text-color: #333 !default;\n$inuit-base-background-color: #fff !default;\n\n\n\n\n\n// Namespace.\n//\n// Would you like inuitcss’ classes to be prepended with a namespace? If so,\n// define it here.\n$inuit-namespace: null !default;\n\n\n\n\n\n// These variables are framework variables, sourced from variables defined\n// above. Feel free to use these variables throughout your project, but do not\n// modify or reassign them.\n$inuit-base-spacing-unit: $inuit-base-line-height;\n$inuit-base-spacing-unit--tiny: round($inuit-base-spacing-unit / 4);\n$inuit-base-spacing-unit--small: round($inuit-base-spacing-unit / 2);\n$inuit-base-spacing-unit--large: round($inuit-base-spacing-unit * 2);\n$inuit-base-spacing-unit--huge: round($inuit-base-spacing-unit * 4);\n","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n box-sizing: content-box; /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@import 'colors';\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n\n$font: 'Roboto', sans-srif;\n\n$spacing-unit: 25px;\n$torrent-details--width: 85%;\n","@import url('http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400');\n\nbody {\n color: $foreground;\n font-family: $font;\n}\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8;\n}\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis;\n}\n","/*------------------------------------*\\\n #RESET\n\\*------------------------------------*/\n\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0;\n}\n\n\n\n\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help;\n}\n\n\n\n\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none;\n}\n\n\n\n\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid;\n}\n","/*------------------------------------*\\\n #BOX-SIZING\n\\*------------------------------------*/\n\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n* {\n\n &,\n &:before,\n &:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n}\n\n\n\n\n\n// If we have included this file, set a variable to tell the rest of the\n// framework that global `box-sizing: border-box` has been set.\n$inuit-global-border-box: true;\n","/*------------------------------------*\\\n #PAGE\n\\*------------------------------------*/\n\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: ($inuit-base-font-size / 16px) * 1em; /* [1] */\n line-height: $inuit-base-line-height / $inuit-base-font-size; /* [1] */\n background-color: $inuit-base-background-color;\n color: $inuit-base-text-color;\n overflow-y: scroll; /* [2] */\n min-height: 100%; /* [3] */\n -webkit-text-size-adjust: 100%; /* [4] */\n -ms-text-size-adjust: 100%; /* [4] */\n -moz-osx-font-smoothing: grayscale; /* [5] */\n -webkit-font-smoothing: antialiased; /* [5] */\n}\n","th {\n font-weight: inherit;\n text-align: left;\n}\n","@keyframes fade-in {\n\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n\n}\n\n@keyframes fade-out {\n\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n\n}\n",".textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none;\n}\n\n.textbox {\n background: $textbox--background;\n border-radius: 4px;\n border: 1px solid $textbox--border;\n color: $textbox--foreground;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $textbox--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n\n &:focus {\n background: $textbox--active--background;\n border-color: $textbox--active--border;\n color: $textbox--active--foreground;\n\n &::placeholder {\n color: $textbox--active--placeholder;\n }\n }\n\n}\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s;\n\n &--deemphasize {\n background: $button--deemphasized--background;\n color: $button--deemphasized--foreground;\n\n &:hover {\n background: $button--deemphasized--background--hover;\n color: $button--deemphasized--foreground--hover;\n }\n }\n\n &--primary {\n background: $button--primary--background;\n color: $button--primary--foreground;\n white-space: nowrap;\n\n &:hover {\n background: $button--primary--background--hover;\n }\n }\n\n}\n\n.form {\n\n &__label {\n color: $form--label--foreground;\n display: block;\n margin-bottom: 0.1em;\n }\n\n &__row {\n\n & + .form__row {\n margin-top: 20px;\n }\n }\n\n}\n","$blue: #258de5;\n$green: #39ce83;\n\n$background: #1a2f3d;\n$foreground: #53718a;\n\n$main-content--background: #e9eef2;\n\n$header--foreground: #313436;\n\n// form elements\n$form--label--foreground: #53718a;\n\n$textbox--background: rgba($main-content--background, 0.3);\n$textbox--foreground: $foreground;\n$textbox--placeholder: #abbac7;\n$textbox--border: $main-content--background;\n$textbox--active--background: $textbox--background;\n$textbox--active--border: $main-content--background;\n$textbox--active--foreground: $blue;\n$textbox--active--placeholder: $textbox--placeholder;\n\n$textbox-repeater--button--background: #fff;\n$textbox-repeater--button--background--hover: $main-content--background;\n$textbox-repeater--button--border: rgba($background, 0.1);\n$textbox-repeater--button--border--hover: rgba($background, 0.2);\n$textbox-repeater--button--foreground: rgba($background, 0.3);\n$textbox-repeater--button--foreground--hover: rgba($background, 0.5);\n\n$button--primary--foreground: #fff;\n$button--primary--background: $blue;\n$button--primary--background--hover: darken($button--primary--background, 5%);\n$button--deemphasized--foreground: #66717a;\n$button--deemphasized--background: $main-content--background;\n$button--deemphasized--foreground--hover: darken($button--deemphasized--foreground, 5%);\n$button--deemphasized--background--hover: darken($button--deemphasized--background, 5%);\n\n// action bar\n$action-bar--background: transparent;\n$action-bar--foreground: #1b1a1c;\n$action-bar--group--border: rgba(#7a8080, 0.15);\n\n$action--foreground: #909799;\n$action--foreground--hover: $blue;\n$action--background--hover: rgba(#333e4a, 0.05);\n$action--border--hover: rgba(#333e4a, 0.15);\n\n// filter bar\n$sidebar--foreground: #53718a;\n$sidebar--border: rgba(darken($sidebar--foreground, 40%), 0.3);\n\n$client-stats--limits--opacity: 0.15;\n$client-stats--speed--fill--top--opacity: 0.2;\n$client-stats--speed--fill--bottom--opacity: 0;\n$client-stats--speed--stroke--opacity: 0.4;\n\n$client-stats--download--primary--foreground: #2bae6c;\n$client-stats--download--secondary--foreground: rgba($client-stats--download--primary--foreground, 0.75);\n$client-stats--download--graph--stroke: rgba(#2bae6c, $client-stats--speed--stroke--opacity);\n$client-stats--download--graph--fill--top: rgba(#2bae6c, $client-stats--speed--fill--top--opacity);\n$client-stats--download--graph--fill--bottom: rgba(#2bae6c, $client-stats--speed--fill--bottom--opacity);\n$client-stats--download--limits--line: rgba(lighten($client-stats--download--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--upload--primary--foreground: #2387d9;\n$client-stats--upload--secondary--foreground: rgba($client-stats--upload--primary--foreground, 0.75);\n$client-stats--upload--graph--stroke: rgba(#2387d9, $client-stats--speed--stroke--opacity);\n$client-stats--upload--graph--fill--top: rgba(#2387d9, $client-stats--speed--fill--top--opacity);\n$client-stats--upload--graph--fill--bottom: rgba(#2387d9, $client-stats--speed--fill--bottom--opacity);\n$client-stats--upload--limits--line: rgba(lighten($client-stats--upload--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--limits--foreground: $foreground;\n$client-stats--limits--icon--hover: $blue;\n\n$search-torrents--base: #091824;\n$search-torrents--background: rgba($search-torrents--base, 0.3);\n$search-torrents--background--active: $green;\n$search-torrents--border: rgba($search-torrents--background, 0.4);\n$search-torrents--border--active: $search-torrents--background--active;\n$search-torrents--foreground: $sidebar--foreground;\n$search-torrents--foreground--active: #1e8954;\n$search-torrents--placeholder: rgba($sidebar--foreground, 0.4);\n$search-torrents--placeholder--active: #2cad6d;\n\n$search-torrents--icon--foreground: $sidebar--foreground;\n$search-torrents--icon--foreground--active: #2c9e65;\n\n$sidebar-filter--foreground: $sidebar--foreground;\n$sidebar-filter--foreground--header: rgba($sidebar-filter--foreground, 0.5);\n$sidebar-filter--foreground--active: $blue;\n$sidebar-filter--foreground--hover: lighten($sidebar-filter--foreground, 15%);\n\n$sidebar-filter--count--foreground: #132532;\n$sidebar-filter--count--background: #2b4456;\n$sidebar-filter--count--background--active: #3b586d;\n\n\n// torrents list\n$torrent-list--background: #fff;\n$torrent-list--border: rgba($background, 0.15);\n\n$torrent--primary--foreground: #333332;\n$torrent--primary--foreground--stopped: rgba(#333332, 0.5);\n$torrent--primary--foreground--selected: #fff;\n$torrent--primary--foreground--selected--stopped: rgba($torrent--primary--foreground--selected, 0.6);\n$torrent--secondary--foreground: #807f7e;\n$torrent--secondary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--secondary--foreground--selected: #fff;\n$torrent--secondary--foreground--selected--stopped: rgba(#fff, 0.6);\n$torrent--tertiary--foreground: #807f7e;\n$torrent--tertiary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--tertiary--foreground--selected: rgba(#fff, 0.9);\n$torrent--tertiary--foreground--selected--stopped: rgba(#fff, 0.5);\n\n$torrent--background--hover: #f6f8fa;\n$torrent--background--selected: $blue;\n\n$progress-bar--background: #e3e5e5;\n$progress-bar--background--selected: rgba(#fff, 0.5);\n$progress-bar--background--selected--stopped: rgba(#fff, 0.5);\n$progress-bar--fill: $green;\n\n$progress-bar--fill--stopped: #e3e5e5;\n$progress-bar--fill--completed: $blue;\n$progress-bar--fill--selected: #fff;\n$progress-bar--fill--error: #e95779;\n\n// torrent details\n$torrent-details--background: saturate(lighten(#0c1b26, 2.5%), 4%); //#162835;\n$torrent-details--border: rgba($background, 0.1);\n\n$torrent-details--header--border: rgba(#040d13, 0.3);\n$torrent-details--header--name--foreground: #c7dbeb;\n$torrent-details--header--tertiary--foreground: #7b9cb4;\n$torrent-details--header--progress-bar--track: #2a3e4c;\n$torrent-details--header--progress-bar--fill--error: #be2558;\n\n$torrent-details--navigation--border: rgba(#040d13, 0.35);\n$torrent-details--navigation--item--background--active: rgba(#349cf4, 0.07);\n$torrent-details--navigation--item--foreground--active: #349cf4;\n$torrent-details--navigation--item--border--active: #349cf4;\n$torrent-details--navigation--background: rgba(desaturate(#0c1b26, 15%), 0.1);\n\n$torrent-details--content--background: rgba(desaturate(#0c1b26, 15%), 0.4);\n\n$torrent-details--directory-tree--parent-directory--foreground: #3a5c74;\n$torrent-details--directory-tree--parent-directory--icon--fill: rgba(#3a5c74, 0.5);\n\n$torrent-details--table--foreground: #527893;\n$torrent-details--table--header: rgba(#527893, 0.5);\n$torrent-details--table--header--count--background: rgba(#527893, 0.5);\n$torrent-details--table--header--count--foreground: #0c1b26;\n\n$torrent-details--header--icon--default--fill: rgba(#4d6f87, 0.5);\n\n// tansfer data\n$transfer-data--download: $green;\n$transfer-data--upload: $blue;\n\n// dropdown menu\n$dropdown--background: rgba(#fff, 0.98);\n$dropdown--foreground: #95a2ad;\n$dropdown--container--border: rgba($background, 0.1);\n$dropdown--container--shadow: rgba($background, 0.3);\n$dropdown--label: #abbac7;\n$dropdown--value: #8899a8;\n$dropdown--value--active: #4e6a7c;\n$dropdown--header--border: rgba($background, 0.05);\n$dropdown--item--background--hover: rgba($main-content--background, 0.4);\n$dropdown--item--foreground--hover: darken($dropdown--foreground, 10%);\n$dropdown--item--foreground--active: $blue;\n\n// modal windows\n$modal--background: #fff;\n$modal--overlay: rgba($background, 0.5);\n$modal--header--foreground: $header--foreground;\n$modal--content--border: rgba($background, 0.1);\n$modal--content--shadow: rgba($background, 0.3);\n\n// directory torrent-details--directory-tree--icon-fill\n$directory-tree--filename--foreground: #527893;\n$directory-tree--directory--foreground: $directory-tree--filename--foreground;\n$directory-tree--directory--foreground--open: #719bb7;\n\n$directory-tree--icon--file: #344b5b;\n$directory-tree--icon--folder: rgba(#527893, 0.4);\n$directory-tree--icon--folder--active: rgba(#82aac5, 0.5);\n$directory-tree--icon--folder--open: rgba(#82aac5, 0.5);\n\n$directory-tree--file-details--foreground: #2b4456;\n$directory-tree--file-details--hover--foreground: #527893;\n\n// scrollbars\n$scrollbar--thumb--background--inactive: rgba(#1a2f3d, 0.3);\n$scrollbar--thumb--background--hover: rgba(#1a2f3d, 0.6);\n$scrollbar--thumb--background--inverted--inactive: rgba(#e9eef2, 0.3);\n$scrollbar--thumb--background--inverted--hover: rgba(#e9eef2, 0.6);\n","html,\nbody {\n height: 100%;\n overflow: hidden;\n}\n\n.container {\n height: 100%;\n width: 100%;\n}\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%;\n}\n\n.application {\n\n &__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative;\n }\n\n &__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n\n &--torrent-list {\n transition: transform 0.5s;\n z-index: 2;\n\n &.is-open {\n transform: translateX($torrent-details--width);\n }\n }\n\n &--torrent-details {\n right: 100% - $torrent-details--width;\n width: $torrent-details--width;\n z-index: 1;\n }\n }\n}\n\n.torrent {\n\n &__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px;\n }\n\n &__list {\n\n &__wrapper {\n display: flex;\n flex: 1;\n\n &--custom-scroll {\n flex: 1;\n height: auto !important;\n }\n }\n }\n}\n","body {\n background: $background;\n}\n\nul {\n list-style: none;\n}\n",".action-bar {\n background: $action-bar--background;\n color: $action-bar--foreground;\n display: flex;\n flex: 0 0 60px;\n position: relative;\n\n &:after {\n background: $torrent-list--border;\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto;\n }\n\n &__item {\n flex: 3;\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &--sort-torrents {\n max-width: 225px;\n\n .dropdown {\n margin: 5px 0 0 15px;\n\n &__content {\n min-width: 250px;\n }\n }\n }\n\n &--torrent-operations {\n\n .dropdown {\n display: inline-block;\n height: 60px;\n\n &__content {\n min-width: 430px;\n right: 4px;\n }\n }\n }\n }\n\n &__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px;\n\n &--has-divider {\n position: relative;\n\n &:before {\n background: $action-bar--group--border;\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px;\n }\n }\n }\n}\n\n.actions {\n list-style: none;\n}\n\n.action {\n box-shadow:\n 1px 0 transparent,\n -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s;\n\n &:hover {\n background: $action--background--hover;\n box-shadow:\n 1px 0 $action--border--hover,\n -1px 0 $action--border--hover;\n\n .icon {\n fill: $action--foreground--hover;\n }\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden;\n }\n\n .icon {\n fill: $action--foreground;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px;\n }\n}\n",".application {\n\n &__content {\n background: $main-content--background;\n }\n}\n",".badge {\n background: $sidebar-filter--count--background;\n border-radius: 100px;\n color: $sidebar-filter--count--foreground;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline;\n}\n",".client-stat {\n display: flex;\n padding: 30px 20px 20px 20px;\n\n &__icon,\n &__data {\n position: relative;\n vertical-align: top;\n z-index: 1;\n }\n\n &__icon {\n flex: 0 0 23px;\n\n .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto;\n }\n }\n\n &__data {\n flex: 1;\n\n &--primary,\n &--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2;\n }\n\n &--primary {\n font-size: 1.75em;\n white-space: nowrap;\n\n .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em;\n }\n }\n\n &--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400;\n }\n }\n}\n\n.client-stat {\n\n &--limits {\n background: none;\n border: none;\n color: $client-stats--limits--foreground;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%;\n\n .icon {\n display: inline-block;\n fill: $client-stats--limits--foreground;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px;\n\n .limits {\n\n &__bars {\n\n &--top {\n opacity: 0.4;\n }\n\n &--bottom {\n opacity: 0.6;\n }\n }\n }\n }\n\n &:hover {\n color: $client-stats--limits--icon--hover;\n\n .icon {\n fill: $client-stats--limits--icon--hover;\n }\n }\n }\n}\n\n.client-stat {\n position: relative;\n\n .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0;\n\n svg {\n height: 100%;\n width: 100%;\n }\n\n &__line {\n fill: none;\n\n &--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px;\n }\n\n &--rate {\n stroke-width: 1.1px;\n }\n }\n\n }\n\n &--download {\n\n .icon {\n fill: $client-stats--download--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--download--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--download--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--download--gradient--top {\n stop-color: $client-stats--download--graph--fill--top;\n }\n\n .graph--download--gradient--bottom {\n stop-color: $client-stats--download--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--download--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--download--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--download--graph--stroke;\n }\n }\n\n }\n\n }\n\n &--upload {\n\n .icon {\n fill: $client-stats--upload--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--upload--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--upload--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--upload--gradient--top {\n stop-color: $client-stats--upload--graph--fill--top;\n }\n\n .graph--upload--gradient--bottom {\n stop-color: $client-stats--upload--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--upload--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--upload--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--upload--graph--stroke;\n }\n }\n\n }\n\n }\n\n}\n",".directory-tree {\n\n .icon {\n display: inline-block;\n fill: $directory-tree--icon--folder;\n height: 14px;\n margin-right: 6px;\n width: 14px;\n }\n\n &__node {\n color: $directory-tree--filename--foreground;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n &--group {\n padding-left: 10px;\n position: relative;\n\n &:after {\n background: rgba(#527893, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px;\n }\n }\n\n &--directory {\n color: $directory-tree--directory--foreground;\n cursor: pointer;\n transition: color 0.125s;\n\n &.is-expanded {\n color: $directory-tree--directory--foreground--open;\n font-weight: 500;\n\n .icon {\n fill: $directory-tree--icon--folder--active;\n }\n }\n\n .icon {\n fill: $directory-tree--icon--folder;\n }\n }\n\n .file {\n display: flex;\n line-height: 1.7;\n width: 100%;\n\n &:hover {\n\n .file {\n\n &__size,\n &__priority {\n color: $directory-tree--file-details--hover--foreground;\n }\n }\n }\n\n .icon {\n fill: $directory-tree--icon--file;\n }\n\n &__name {\n flex: 1 1 auto;\n }\n\n &__size,\n &__priority {\n color: $directory-tree--file-details--foreground;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s;\n }\n\n &__size {\n padding-right: $spacing-unit * 1/4;\n }\n }\n\n &--file-list {\n margin-bottom: 3px;\n }\n }\n\n &__parent-directory {\n margin-left: -1px;\n\n .icon {\n fill: $torrent-details--directory-tree--parent-directory--icon--fill;\n margin-right: 8px;\n vertical-align: middle;\n }\n }\n\n &__tree {\n\n .directory-tree__tree {\n padding-left: 6px;\n }\n }\n}\n",".dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2;\n\n &__button,\n &__trigger {\n cursor: pointer;\n }\n\n &__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none;\n }\n\n &__content {\n background: $dropdown--background;\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px $dropdown--container--border,\n 0 0 35px $dropdown--container--shadow;\n color: $dropdown--foreground;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2;\n }\n\n &.is-expanded {\n\n .dropdown {\n\n &__header {\n\n .dropdown {\n\n &__value {\n color: $dropdown--value--active;\n }\n }\n }\n }\n }\n\n &__label {\n color: $dropdown--label;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase;\n\n .dropdown__button & {\n cursor: pointer;\n }\n }\n\n &__value {\n color: $dropdown--value;\n transition: color 0.25s;\n\n &:after {\n border-top: 5px solid $dropdown--value;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle;\n }\n }\n\n &__header {\n position: relative;\n\n &:after {\n background: $dropdown--header--border;\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%;\n }\n }\n\n &__items {\n display: flex;\n padding: 10px 0;\n }\n\n &__list {\n flex: 1;\n }\n\n &__item {\n padding: 5px 15px;\n\n &.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s;\n\n &:hover {\n background: $dropdown--item--background--hover;\n color: $dropdown--item--foreground--hover;\n }\n\n &.is-selected {\n color: $dropdown--item--foreground--active;\n }\n }\n }\n\n &--align-right & {\n left: auto;\n right: 0;\n }\n}\n\n.dropdown {\n\n &__content {\n\n &-enter {\n animation: fade-in 0.25s both;\n }\n\n &-leave {\n animation: fade-out 0.25s both;\n }\n }\n}\n\n.dropdown {\n\n &__content {\n\n &__container {\n padding: 25px 30px;\n }\n }\n}\n",".floating-action {\n\n &__button {\n background: $textbox-repeater--button--background;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border;\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background: $textbox-repeater--button--background--hover;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border--hover;\n\n .icon {\n fill: $textbox-repeater--button--foreground--hover;\n }\n }\n\n .icon {\n height: 8px;\n fill: $textbox-repeater--button--foreground;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px;\n }\n }\n}\n",".icon {\n\n &--eta {\n\n .icon {\n\n &__ring {\n fill-opacity: 1;\n }\n }\n }\n}\n","@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n transform: translateX(400%);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px;\n\n &__bar {\n background: #e9eef2;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%;\n\n &:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: rgba($blue, 0.75);\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%;\n }\n\n &--1 {\n top: 0;\n }\n\n &--2 {\n top: 50%;\n transform: translateY(-50%);\n\n &:after {\n animation-delay: 0.5s;\n }\n }\n\n &--3 {\n bottom: 0;\n\n &:after {\n animation-delay: 1s;\n }\n }\n }\n}\n",".modal {\n background: $modal--overlay;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100;\n\n &__content {\n background: $modal--background;\n border-radius: 5px;\n box-shadow:\n 0 0 0 1px $modal--content--border,\n 0 0 35px $modal--content--shadow;\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px;\n\n &--align-center {\n text-align: center;\n }\n }\n\n &__footer {\n margin-top: $spacing-unit;\n }\n\n &__button-group {\n text-align: right;\n\n .button {\n\n & + .button {\n margin-left: 20px;\n }\n }\n }\n\n &__header {\n color: $modal--header--foreground;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px;\n }\n\n &__animation-enter {\n opacity: 0;\n }\n\n &__animation-enter-active {\n opacity: 1;\n }\n\n &__animation-leave {\n opacity: 1;\n pointer-events: none;\n }\n\n &__animation-leave-active {\n opacity: 0;\n }\n}\n",".progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1;\n\n .is-selected.is-stopped & {\n opacity: 0.5;\n }\n\n &:after {\n background: $progress-bar--background;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%;\n\n .is-selected & {\n background: $progress-bar--background--selected;\n }\n\n .is-selected.is-stopped & {\n background: $progress-bar--background--selected--stopped;\n }\n }\n\n &__fill {\n background: $progress-bar--fill;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1;\n\n .is-seeding & {\n background: $progress-bar--fill--completed;\n }\n\n .is-completed &,\n .is-stopped & {\n background: $progress-bar--fill--stopped;\n }\n\n .is-selected & {\n background: $progress-bar--fill--selected;\n }\n\n .has-error & {\n background: $progress-bar--fill--error;\n }\n }\n}\n",".scrollbars {\n\n &__thumb {\n background: $scrollbar--thumb--background--inactive;\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.25s;\n\n &:active {\n opacity: 1;\n }\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--hover;\n }\n\n .is-inverted & {\n background: $scrollbar--thumb--background--inverted--inactive;\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--inverted--hover;\n }\n }\n }\n\n &:hover {\n\n .scrollbars__thumb {\n opacity: 1;\n }\n }\n}\n",".application {\n\n &__sidebar {\n box-shadow: 1px 0 $sidebar--border;\n color: $sidebar--foreground;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2;\n }\n}\n\n.sidebar {\n\n &__item {\n\n &--search {\n position: relative;\n\n .icon {\n fill: $search-torrents--icon--foreground;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px;\n }\n\n .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid $search-torrents--border;\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: $search-torrents--background;\n box-shadow: none;\n color: $search-torrents--foreground;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $search-torrents--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n }\n\n &.is-in-use {\n\n .icon {\n fill: $search-torrents--icon--foreground--active;\n opacity: 1;\n }\n\n .textbox {\n background: $search-torrents--background--active;\n border-bottom: 1px solid $search-torrents--border--active;\n border-top: 1px solid $search-torrents--border--active;\n color: $search-torrents--foreground--active;\n\n &::placeholder {\n color: $search-torrents--placeholder--active;\n }\n }\n }\n }\n\n &--speed-limit {\n padding-left: 5px;\n padding-top: 5px;\n\n .dropdown {\n\n &__content {\n min-width: 180px;\n }\n\n &__items {\n font-size: 0.9em;\n }\n }\n }\n }\n}\n",".sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0;\n\n & + .sidebar-filter {\n padding-top: 0;\n }\n\n &__item {\n color: $sidebar-filter--foreground;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s;\n\n &:hover {\n color: $sidebar-filter--foreground--hover;\n\n .icon {\n fill: $sidebar-filter--foreground--hover;\n }\n }\n\n &.is-active {\n color: $sidebar-filter--foreground--active;\n font-weight: 700;\n\n .badge {\n background: $sidebar-filter--count--background--active;\n }\n\n .icon {\n fill: $sidebar-filter--foreground--active;\n }\n }\n\n .icon {\n display: inline-block;\n fill: $sidebar-filter--foreground;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto;\n }\n }\n\n .badge {\n background: $sidebar-filter--count--background;\n color: $sidebar-filter--count--foreground;\n }\n}\n\n\n.sidebar-filter {\n\n &__item {\n\n &--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n\n &,\n &:hover {\n color: $sidebar-filter--foreground--header;\n }\n }\n }\n}\n",".textbox-repeater {\n\n .floating-action {\n\n &__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%;\n }\n\n &__button {\n position: relative;\n }\n }\n\n .textbox {\n\n &__wrapper {\n position: relative;\n }\n }\n}\n",".application {\n\n &__panel {\n\n &--torrent-details {\n background: $torrent-details--background;\n }\n }\n}\n\n.torrent-details {\n background: $torrent-details--background;\n bottom: 0;\n box-shadow: -1px 0 0 $torrent-details--border;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2;\n\n &__heading {\n box-shadow: 0 1px 0 $torrent-details--header--border;\n flex: 0 0 auto;\n padding: $spacing-unit * 1/2 $spacing-unit $spacing-unit * 2/3 $spacing-unit;\n\n &.is-stopped {\n\n .torrent {\n\n &__details {\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n }\n }\n }\n }\n\n &.has-error {\n\n .progress-bar {\n\n &__fill {\n background: $torrent-details--header--progress-bar--fill--error;\n }\n }\n }\n\n .torrent {\n\n &__details {\n\n &--name {\n color: $torrent-details--header--name--foreground;\n font-size: 1.7em;\n font-weight: 300;\n }\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n font-size: 1em;\n margin-bottom: $spacing-unit * 1/2;\n }\n\n &--download,\n &--upload,\n &--eta,\n &--ratio {\n\n .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px;\n }\n }\n\n &--ratio,\n &--eta {\n\n .icon {\n fill: $torrent-details--header--icon--default--fill;\n }\n }\n\n &--eta {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n .progress-bar {\n\n &:after {\n background: $torrent-details--header--progress-bar--track;\n }\n }\n }\n\n &__table {\n color: $torrent-details--table--foreground;\n width: 100%;\n\n &__heading {\n\n &--primary {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &--secondary {\n color: $torrent-details--table--header;\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n }\n }\n }\n\n &__content {\n flex: 1;\n overflow: auto;\n padding: $spacing-unit * 2/3 $spacing-unit;\n\n &__wrapper {\n background: $torrent-details--content--background;\n display: flex;\n flex: 1;\n overflow: hidden;\n }\n }\n\n &__navigation {\n background: $torrent-details--navigation--background;\n box-shadow: 1px 0 0 $torrent-details--navigation--border;\n min-width: 125px;\n padding: $spacing-unit * 1/2 0;\n\n .navigation {\n\n &__item {\n cursor: pointer;\n padding: $spacing-unit * 1/4 $spacing-unit;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s;\n\n &.is-active {\n background: $torrent-details--navigation--item--background--active;\n box-shadow: 1px 0 0 $torrent-details--navigation--item--border--active;\n color: $torrent-details--navigation--item--foreground--active;\n }\n }\n }\n }\n\n &__section {\n\n &__heading,\n &__null-data {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &__heading {\n\n .badge {\n background: $torrent-details--table--header--count--background;\n color: $torrent-details--table--header--count--foreground;\n }\n }\n }\n}\n\n.torrent-details-enter {\n opacity: 0;\n}\n\n.torrent-details-enter-active {\n opacity: 1;\n}\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s;\n}\n",".torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative;\n\n &:after {\n background: $torrent-list--background;\n bottom: 0;\n box-shadow: -1px 0 0 0 $torrent-list--border;\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.torrent {\n\n &__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative;\n\n &__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n transition: opacity 1s;\n user-select: none;\n z-index: 1;\n }\n\n &--loading {\n\n &-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n transition: opacity 1s;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &--empty {\n opacity: 0;\n }\n }\n}\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s;\n\n &:hover {\n background: $torrent--background--hover;\n\n .torrent {\n\n &__more-info {\n opacity: 1;\n }\n }\n }\n\n &.is-selected {\n background: $torrent--background--selected;\n }\n\n &__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px;\n }\n}\n\n.torrent {\n\n &__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none;\n\n &--primary,\n &--secondary,\n &--tertiary {\n transition: color 0.25s;\n }\n\n &--primary {\n color: $torrent--primary--foreground;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap;\n\n .is-stopped & {\n color: $torrent--primary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--primary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--primary--foreground--selected--stopped;\n }\n }\n\n &--secondary {\n align-items: flex-end;\n color: $torrent--secondary--foreground;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px;\n\n li {\n flex: 1 1 auto;\n min-width: 15%;\n\n &.torrent__details--ratio {\n max-width: 30px;\n }\n }\n\n .is-stopped & {\n color: $torrent--secondary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--secondary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--secondary--foreground--selected--stopped;\n }\n }\n\n &--tertiary {\n color: $torrent--tertiary--foreground;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0;\n\n li {\n display: inline-block;\n margin-right: 1em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-stopped & {\n color: $torrent--tertiary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--tertiary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--tertiary--foreground--selected--stopped;\n }\n }\n\n &__label {\n margin-right: 0.5em;\n opacity: 0.5;\n }\n }\n}\n\n.torrent {\n\n &__details {\n\n &--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden;\n\n .torrent__details--segment {\n margin-right: 0.25em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-actively-downloading & {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n}\n\n.view {\n\n &--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 $torrent-list--border;\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%;\n }\n}\n",".transfer-data {\n\n &--download {\n color: $transfer-data--download;\n\n .icon {\n fill: $transfer-data--download;\n }\n }\n\n &--upload {\n color: $transfer-data--upload;\n\n .icon {\n fill: $transfer-data--upload;\n }\n }\n}\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["style.css","../../../node_modules/inuit-defaults/_settings.defaults.scss","../../../node_modules/inuit-normalize/_generic.normalize.scss","tools/_variables.scss","base/_typography.scss","../../../node_modules/inuit-reset/_generic.reset.scss","../../../node_modules/inuit-box-sizing/_generic.box-sizing.scss","../../../node_modules/inuit-page/_base.page.scss","tools/_reset.scss","base/_animations.scss","base/_form-elements.scss","tools/_colors.scss","base/_layout.scss","base/_main.scss","components/_action-bar.scss","components/_application-content.scss","components/_badge.scss","components/_client-stats.scss","components/_directory-tree.scss","components/_dropdown.scss","components/_floating-action.scss","components/_icons.scss","components/_loading-indicator.scss","components/_modals.scss","components/_progress-bar.scss","components/_scrollbars.scss","components/_sidebar.scss","components/_sidebar-filter.scss","components/_textbox-repeater.scss","components/_torrent-details-panel.scss","components/_torrents.scss","components/_transfer-data.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n@import url(\"http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400\");\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */ }\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0; }\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block; }\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */ }\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0; }\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none; }\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent; }\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0; }\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted; }\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold; }\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic; }\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000; }\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%; }\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsup {\n top: -0.5em; }\n\nsub {\n bottom: -0.25em; }\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0; }\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden; }\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px; }\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0; }\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto; }\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em; }\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */ }\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible; }\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none; }\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */ }\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal; }\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */ }\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto; }\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold; }\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n\ntd,\nth {\n padding: 0; }\n\n/*------------------------------------* #RESET\n\\*------------------------------------*/\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0; }\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help; }\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none; }\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid; }\n\n/*------------------------------------* #BOX-SIZING\n\\*------------------------------------*/\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n*, *:before, *:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n\n/*------------------------------------* #PAGE\n\\*------------------------------------*/\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: 1em;\n /* [1] */\n line-height: 1.5;\n /* [1] */\n background-color: #fff;\n color: #333;\n overflow-y: scroll;\n /* [2] */\n min-height: 100%;\n /* [3] */\n -webkit-text-size-adjust: 100%;\n /* [4] */\n -ms-text-size-adjust: 100%;\n /* [4] */\n -moz-osx-font-smoothing: grayscale;\n /* [5] */\n -webkit-font-smoothing: antialiased;\n /* [5] */ }\n\nth {\n font-weight: inherit;\n text-align: left; }\n\n@keyframes fade-in {\n 0% {\n opacity: 0; }\n 100% {\n opacity: 1; } }\n\n@keyframes fade-out {\n 0% {\n opacity: 1; }\n 100% {\n opacity: 0; } }\n\n.textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none; }\n\n.textbox {\n background: rgba(233, 238, 242, 0.3);\n border-radius: 4px;\n border: 1px solid #e9eef2;\n color: #53718a;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .textbox::placeholder {\n color: #abbac7;\n font-style: italic;\n transition: color 0.25s; }\n .textbox:focus {\n background: rgba(233, 238, 242, 0.3);\n border-color: #e9eef2;\n color: #258de5; }\n .textbox:focus::placeholder {\n color: #abbac7; }\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s; }\n .button--deemphasize {\n background: #e9eef2;\n color: #66717a; }\n .button--deemphasize:hover {\n background: #d9e2e9;\n color: #5a646c; }\n .button--primary {\n background: #258de5;\n color: #fff;\n white-space: nowrap; }\n .button--primary:hover {\n background: #1a80d7; }\n\n.form__label {\n color: #53718a;\n display: block;\n margin-bottom: 0.1em; }\n\n.form__row + .form__row {\n margin-top: 20px; }\n\nhtml,\nbody {\n height: 100%;\n overflow: hidden; }\n\n.container {\n height: 100%;\n width: 100%; }\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%; }\n\n.application__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative; }\n\n.application__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n .application__panel--torrent-list {\n transition: transform 0.5s;\n z-index: 2; }\n .application__panel--torrent-list.is-open {\n transform: translateX(85%); }\n .application__panel--torrent-details {\n right: 15%;\n width: 85%;\n z-index: 1; }\n\n.torrent__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px; }\n\n.torrent__list__wrapper {\n flex: 1; }\n .torrent__list__wrapper--custom-scroll {\n flex: 1;\n height: auto !important; }\n\nbody {\n background: #1a2f3d; }\n\nul {\n list-style: none; }\n\nbody {\n color: #53718a;\n font-family: \"Roboto\", sans-srif; }\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8; }\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis; }\n\n.action-bar {\n background: transparent;\n color: #1b1a1c;\n display: flex;\n flex: 0 0 60px;\n position: relative; }\n .action-bar:after {\n background: rgba(26, 47, 61, 0.15);\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto; }\n .action-bar__item {\n flex: 3; }\n .action-bar__item:first-child {\n text-align: left; }\n .action-bar__item:last-child {\n text-align: right; }\n .action-bar__item--sort-torrents {\n max-width: 225px; }\n .action-bar__item--sort-torrents .dropdown {\n margin: 5px 0 0 15px; }\n .action-bar__item--sort-torrents .dropdown__content {\n min-width: 250px; }\n .action-bar__item--torrent-operations .dropdown {\n display: inline-block;\n height: 60px; }\n .action-bar__item--torrent-operations .dropdown__content {\n min-width: 430px;\n right: 4px; }\n .action-bar__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px; }\n .action-bar__group--has-divider {\n position: relative; }\n .action-bar__group--has-divider:before {\n background: rgba(122, 128, 128, 0.15);\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px; }\n\n.actions {\n list-style: none; }\n\n.action {\n box-shadow: 1px 0 transparent, -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s; }\n .action:hover {\n background: rgba(51, 62, 74, 0.05);\n box-shadow: 1px 0 rgba(51, 62, 74, 0.15), -1px 0 rgba(51, 62, 74, 0.15); }\n .action:hover .icon {\n fill: #258de5; }\n .action__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden; }\n .action .icon {\n fill: #909799;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px; }\n\n.application__content {\n background: #e9eef2; }\n\n.badge {\n background: #2b4456;\n border-radius: 100px;\n color: #132532;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline; }\n\n.client-stat {\n display: flex;\n padding: 30px 20px 20px 20px; }\n .client-stat__icon, .client-stat__data {\n position: relative;\n vertical-align: top;\n z-index: 1; }\n .client-stat__icon {\n flex: 0 0 23px; }\n .client-stat__icon .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto; }\n .client-stat__data {\n flex: 1; }\n .client-stat__data--primary, .client-stat__data--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2; }\n .client-stat__data--primary {\n font-size: 1.75em;\n white-space: nowrap; }\n .client-stat__data--primary .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em; }\n .client-stat__data--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400; }\n\n.client-stat--limits {\n background: none;\n border: none;\n color: #53718a;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%; }\n .client-stat--limits .icon {\n display: inline-block;\n fill: #53718a;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px; }\n .client-stat--limits .icon .limits__bars--top {\n opacity: 0.4; }\n .client-stat--limits .icon .limits__bars--bottom {\n opacity: 0.6; }\n .client-stat--limits:hover {\n color: #258de5; }\n .client-stat--limits:hover .icon {\n fill: #258de5; }\n\n.client-stat {\n position: relative; }\n .client-stat .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0; }\n .client-stat .graph svg {\n height: 100%;\n width: 100%; }\n .client-stat .graph__line {\n fill: none; }\n .client-stat .graph__line--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px; }\n .client-stat .graph__line--rate {\n stroke-width: 1.1px; }\n .client-stat--download .icon {\n fill: rgba(43, 174, 108, 0.75); }\n .client-stat--download .client-stat__data--primary {\n color: #2bae6c; }\n .client-stat--download .client-stat__data--secondary {\n color: rgba(43, 174, 108, 0.75); }\n .client-stat--download .graph .graph--download--gradient--top {\n stop-color: rgba(43, 174, 108, 0.2); }\n .client-stat--download .graph .graph--download--gradient--bottom {\n stop-color: rgba(43, 174, 108, 0); }\n .client-stat--download .graph__area {\n fill: url(\"#graph--download--gradient\"); }\n .client-stat--download .graph__line--limit {\n stroke: rgba(102, 217, 159, 0.15); }\n .client-stat--download .graph__line--rate {\n stroke: rgba(43, 174, 108, 0.4); }\n .client-stat--upload .icon {\n fill: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .client-stat__data--primary {\n color: #2387d9; }\n .client-stat--upload .client-stat__data--secondary {\n color: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .graph .graph--upload--gradient--top {\n stop-color: rgba(35, 135, 217, 0.2); }\n .client-stat--upload .graph .graph--upload--gradient--bottom {\n stop-color: rgba(35, 135, 217, 0); }\n .client-stat--upload .graph__area {\n fill: url(\"#graph--upload--gradient\"); }\n .client-stat--upload .graph__line--limit {\n stroke: rgba(121, 183, 233, 0.15); }\n .client-stat--upload .graph__line--rate {\n stroke: rgba(35, 135, 217, 0.4); }\n\n.directory-tree .icon {\n display: inline-block;\n fill: rgba(82, 120, 147, 0.4);\n height: 14px;\n margin-right: 6px;\n width: 14px; }\n\n.directory-tree__node {\n color: #527893;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap; }\n .directory-tree__node--group {\n padding-left: 10px;\n position: relative; }\n .directory-tree__node--group:after {\n background: rgba(82, 120, 147, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px; }\n .directory-tree__node--directory {\n color: #527893;\n cursor: pointer;\n transition: color 0.125s; }\n .directory-tree__node--directory.is-expanded {\n color: #719bb7;\n font-weight: 500; }\n .directory-tree__node--directory.is-expanded .icon {\n fill: rgba(130, 170, 197, 0.5); }\n .directory-tree__node--directory .icon {\n fill: rgba(82, 120, 147, 0.4); }\n .directory-tree__node .file {\n display: flex;\n line-height: 1.7;\n width: 100%; }\n .directory-tree__node .file:hover .file__size, .directory-tree__node .file:hover .file__priority {\n color: #527893; }\n .directory-tree__node .file .icon {\n fill: #344b5b; }\n .directory-tree__node .file__name {\n flex: 1 1 auto; }\n .directory-tree__node .file__size, .directory-tree__node .file__priority {\n color: #2b4456;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s; }\n .directory-tree__node .file__size {\n padding-right: 6.25px; }\n .directory-tree__node--file-list {\n margin-bottom: 3px; }\n\n.directory-tree__parent-directory {\n margin-left: -1px; }\n .directory-tree__parent-directory .icon {\n fill: rgba(58, 92, 116, 0.5);\n margin-right: 8px;\n vertical-align: middle; }\n\n.directory-tree__tree .directory-tree__tree {\n padding-left: 6px; }\n\n.dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2; }\n .dropdown__button, .dropdown__trigger {\n cursor: pointer; }\n .dropdown__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none; }\n .dropdown__content {\n background: rgba(255, 255, 255, 0.98);\n border-radius: 3px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n color: #95a2ad;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2; }\n .dropdown.is-expanded .dropdown__header .dropdown__value {\n color: #4e6a7c; }\n .dropdown__label {\n color: #abbac7;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase; }\n .dropdown__button .dropdown__label {\n cursor: pointer; }\n .dropdown__value {\n color: #8899a8;\n transition: color 0.25s; }\n .dropdown__value:after {\n border-top: 5px solid #8899a8;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle; }\n .dropdown__header {\n position: relative; }\n .dropdown__header:after {\n background: rgba(26, 47, 61, 0.05);\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%; }\n .dropdown__items {\n display: flex;\n padding: 10px 0; }\n .dropdown__list {\n flex: 1; }\n .dropdown__item {\n padding: 5px 15px; }\n .dropdown__item.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s; }\n .dropdown__item.is-selectable:hover {\n background: rgba(233, 238, 242, 0.4);\n color: #788997; }\n .dropdown__item.is-selectable.is-selected {\n color: #258de5; }\n .dropdown--align-right .dropdown {\n left: auto;\n right: 0; }\n\n.dropdown__content-enter {\n animation: fade-in 0.25s both; }\n\n.dropdown__content-leave {\n animation: fade-out 0.25s both; }\n\n.dropdown__content__container {\n padding: 25px 30px; }\n\n.floating-action__button {\n background: #fff;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1);\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px; }\n .floating-action__button:last-child {\n margin-right: 0; }\n .floating-action__button:hover {\n background: #e9eef2;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.2); }\n .floating-action__button:hover .icon {\n fill: rgba(26, 47, 61, 0.5); }\n .floating-action__button .icon {\n height: 8px;\n fill: rgba(26, 47, 61, 0.3);\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px; }\n\n.icon--eta .icon__ring {\n fill-opacity: 1; }\n\n@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%); }\n 50% {\n transform: translateX(400%); }\n 100% {\n transform: translateX(400%); } }\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px; }\n .loading-indicator__bar {\n background: #e9eef2;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%; }\n .loading-indicator__bar:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: rgba(37, 141, 229, 0.75);\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%; }\n .loading-indicator__bar--1 {\n top: 0; }\n .loading-indicator__bar--2 {\n top: 50%;\n transform: translateY(-50%); }\n .loading-indicator__bar--2:after {\n animation-delay: 0.5s; }\n .loading-indicator__bar--3 {\n bottom: 0; }\n .loading-indicator__bar--3:after {\n animation-delay: 1s; }\n\n.modal {\n background: rgba(26, 47, 61, 0.5);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100; }\n .modal__content {\n background: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px; }\n .modal__content--align-center {\n text-align: center; }\n .modal__footer {\n margin-top: 25px; }\n .modal__button-group {\n text-align: right; }\n .modal__button-group .button + .button {\n margin-left: 20px; }\n .modal__header {\n color: #313436;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px; }\n .modal__animation-enter {\n opacity: 0; }\n .modal__animation-enter-active {\n opacity: 1; }\n .modal__animation-leave {\n opacity: 1;\n pointer-events: none; }\n .modal__animation-leave-active {\n opacity: 0; }\n\n.progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1; }\n .is-selected.is-stopped .progress-bar {\n opacity: 0.5; }\n .progress-bar:after {\n background: #e3e5e5;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%; }\n .is-selected .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .is-selected.is-stopped .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .progress-bar__fill {\n background: #39ce83;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1; }\n .is-seeding .progress-bar__fill {\n background: #258de5; }\n .is-completed .progress-bar__fill,\n .is-stopped .progress-bar__fill {\n background: #e3e5e5; }\n .is-selected .progress-bar__fill {\n background: #fff; }\n .has-error .progress-bar__fill {\n background: #e95779; }\n\n.scrollbars__thumb {\n background: rgba(26, 47, 61, 0.3);\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.25s; }\n .scrollbars__thumb:active {\n opacity: 1; }\n .scrollbars__thumb:hover, .scrollbars__thumb:active {\n background: rgba(26, 47, 61, 0.6); }\n .is-inverted .scrollbars__thumb {\n background: rgba(233, 238, 242, 0.3); }\n .is-inverted .scrollbars__thumb:hover, .is-inverted .scrollbars__thumb:active {\n background: rgba(233, 238, 242, 0.6); }\n\n.scrollbars:hover .scrollbars__thumb {\n opacity: 1; }\n\n.application__sidebar {\n box-shadow: 1px 0 rgba(6, 9, 11, 0.3);\n color: #53718a;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2; }\n\n.sidebar__item--search {\n position: relative; }\n .sidebar__item--search .icon {\n fill: #53718a;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px; }\n .sidebar__item--search .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid rgba(9, 24, 36, 0.4);\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: rgba(9, 24, 36, 0.3);\n box-shadow: none;\n color: #53718a;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .sidebar__item--search .textbox::placeholder {\n color: rgba(83, 113, 138, 0.4);\n font-style: italic;\n transition: color 0.25s; }\n .sidebar__item--search.is-in-use .icon {\n fill: #2c9e65;\n opacity: 1; }\n .sidebar__item--search.is-in-use .textbox {\n background: #39ce83;\n border-bottom: 1px solid #39ce83;\n border-top: 1px solid #39ce83;\n color: #1e8954; }\n .sidebar__item--search.is-in-use .textbox::placeholder {\n color: #2cad6d; }\n\n.sidebar__item--speed-limit {\n padding-left: 5px;\n padding-top: 5px; }\n .sidebar__item--speed-limit .dropdown__content {\n min-width: 180px; }\n .sidebar__item--speed-limit .dropdown__items {\n font-size: 0.9em; }\n\n.sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0; }\n .sidebar-filter + .sidebar-filter {\n padding-top: 0; }\n .sidebar-filter__item {\n color: #53718a;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s; }\n .sidebar-filter__item:hover {\n color: #7a97af; }\n .sidebar-filter__item:hover .icon {\n fill: #7a97af; }\n .sidebar-filter__item.is-active {\n color: #258de5;\n font-weight: 700; }\n .sidebar-filter__item.is-active .badge {\n background: #3b586d; }\n .sidebar-filter__item.is-active .icon {\n fill: #258de5; }\n .sidebar-filter__item .icon {\n display: inline-block;\n fill: #53718a;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto; }\n .sidebar-filter .badge {\n background: #2b4456;\n color: #132532; }\n\n.sidebar-filter__item--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .sidebar-filter__item--heading, .sidebar-filter__item--heading:hover {\n color: rgba(83, 113, 138, 0.5); }\n\n.textbox-repeater .floating-action__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%; }\n\n.textbox-repeater .floating-action__button {\n position: relative; }\n\n.textbox-repeater .textbox__wrapper {\n position: relative; }\n\n.application__panel--torrent-details {\n background: #0e2231; }\n\n.torrent-details {\n background: #0e2231;\n bottom: 0;\n box-shadow: -1px 0 0 rgba(26, 47, 61, 0.1);\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2; }\n .torrent-details__heading {\n box-shadow: 0 1px 0 rgba(4, 13, 19, 0.3);\n flex: 0 0 auto;\n padding: 12.5px 25px 16.66667px 25px; }\n .torrent-details__heading.is-stopped .torrent__details--tertiary {\n color: #7b9cb4; }\n .torrent-details__heading.has-error .progress-bar__fill {\n background: #be2558; }\n .torrent-details__heading .torrent__details--name {\n color: #c7dbeb;\n font-size: 1.7em;\n font-weight: 300; }\n .torrent-details__heading .torrent__details--tertiary {\n color: #7b9cb4;\n font-size: 1em;\n margin-bottom: 12.5px; }\n .torrent-details__heading .torrent__details--download .icon, .torrent-details__heading .torrent__details--upload .icon, .torrent-details__heading .torrent__details--eta .icon, .torrent-details__heading .torrent__details--ratio .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px; }\n .torrent-details__heading .torrent__details--ratio .icon, .torrent-details__heading .torrent__details--eta .icon {\n fill: rgba(77, 111, 135, 0.5); }\n .torrent-details__heading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n .torrent-details__heading .progress-bar:after {\n background: #2a3e4c; }\n .torrent-details__table {\n color: #527893;\n width: 100%; }\n .torrent-details__table__heading--primary {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__table__heading--secondary {\n color: rgba(82, 120, 147, 0.5);\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .torrent-details__content {\n flex: 1;\n overflow: auto;\n padding: 16.66667px 25px; }\n .torrent-details__content__wrapper {\n background: rgba(16, 26, 34, 0.4);\n display: flex;\n flex: 1;\n overflow: hidden; }\n .torrent-details__navigation {\n background: rgba(16, 26, 34, 0.1);\n box-shadow: 1px 0 0 rgba(4, 13, 19, 0.35);\n min-width: 125px;\n padding: 12.5px 0; }\n .torrent-details__navigation .navigation__item {\n cursor: pointer;\n padding: 6.25px 25px;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s; }\n .torrent-details__navigation .navigation__item.is-active {\n background: rgba(52, 156, 244, 0.07);\n box-shadow: 1px 0 0 #349cf4;\n color: #349cf4; }\n .torrent-details__section__heading, .torrent-details__section__null-data {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__section__heading .badge {\n background: rgba(82, 120, 147, 0.5);\n color: #0c1b26; }\n\n.torrent-details-enter {\n opacity: 0; }\n\n.torrent-details-enter-active {\n opacity: 1; }\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s; }\n\n.torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative; }\n .torrents:after {\n background: #fff;\n bottom: 0;\n box-shadow: -1px 0 0 0 rgba(26, 47, 61, 0.15);\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0; }\n .torrents .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%); }\n\n.torrent__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative; }\n .torrent__list__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n overflow: auto;\n transition: opacity 1s;\n user-select: none;\n z-index: 1; }\n .torrent__list--loading-enter {\n opacity: 0;\n transition: opacity 1s; }\n .torrent__list--loading-enter-active {\n opacity: 1; }\n .torrent__list--loading-leave {\n opacity: 1;\n transition: opacity 1s; }\n .torrent__list--loading-leave-active {\n opacity: 0; }\n .torrent__list--empty {\n opacity: 0; }\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s; }\n .torrent:hover {\n background: #f6f8fa; }\n .torrent:hover .torrent__more-info {\n opacity: 1; }\n .torrent.is-selected {\n background: #258de5; }\n .torrent__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px; }\n\n.torrent__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none; }\n .torrent__details--primary, .torrent__details--secondary, .torrent__details--tertiary {\n transition: color 0.25s; }\n .torrent__details--primary {\n color: #333332;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap; }\n .is-stopped .torrent__details--primary {\n color: rgba(51, 51, 50, 0.5); }\n .is-selected .torrent__details--primary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--primary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--secondary {\n align-items: flex-end;\n color: #807f7e;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px; }\n .torrent__details--secondary li {\n flex: 1 1 auto;\n min-width: 15%; }\n .torrent__details--secondary li.torrent__details--ratio {\n max-width: 30px; }\n .is-stopped .torrent__details--secondary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--secondary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--secondary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--tertiary {\n color: #807f7e;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0; }\n .torrent__details--tertiary li {\n display: inline-block;\n margin-right: 1em; }\n .torrent__details--tertiary li:last-child {\n margin-right: 0; }\n .is-stopped .torrent__details--tertiary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.9); }\n .is-selected.is-stopped .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.5); }\n .torrent__details__label {\n margin-right: 0.5em;\n opacity: 0.5; }\n\n.torrent__details--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden; }\n .torrent__details--eta .torrent__details--segment {\n margin-right: 0.25em; }\n .torrent__details--eta .torrent__details--segment:last-child {\n margin-right: 0; }\n .is-actively-downloading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n\n.view--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 rgba(26, 47, 61, 0.15);\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%; }\n\n.transfer-data--download {\n color: #39ce83; }\n .transfer-data--download .icon {\n fill: #39ce83; }\n\n.transfer-data--upload {\n color: #258de5; }\n .transfer-data--upload .icon {\n fill: #258de5; }\n","/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n///*------------------------------------*\\\n// #DEFAULTS\n//\\*------------------------------------*/\n\n// These variables are inuitcss’ defaults; they should not be modified or\n// adjusted directly; you should predefine the variables in your own project.\n\n\n\n\n\n// High-level base settings.\n$inuit-base-font-size: 16px !default;\n$inuit-base-line-height: 24px !default;\n$inuit-base-text-color: #333 !default;\n$inuit-base-background-color: #fff !default;\n\n\n\n\n\n// Namespace.\n//\n// Would you like inuitcss’ classes to be prepended with a namespace? If so,\n// define it here.\n$inuit-namespace: null !default;\n\n\n\n\n\n// These variables are framework variables, sourced from variables defined\n// above. Feel free to use these variables throughout your project, but do not\n// modify or reassign them.\n$inuit-base-spacing-unit: $inuit-base-line-height;\n$inuit-base-spacing-unit--tiny: round($inuit-base-spacing-unit / 4);\n$inuit-base-spacing-unit--small: round($inuit-base-spacing-unit / 2);\n$inuit-base-spacing-unit--large: round($inuit-base-spacing-unit * 2);\n$inuit-base-spacing-unit--huge: round($inuit-base-spacing-unit * 4);\n","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n box-sizing: content-box; /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@import 'colors';\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n\n$font: 'Roboto', sans-srif;\n\n$spacing-unit: 25px;\n$torrent-details--width: 85%;\n","@import url('http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400');\n\nbody {\n color: $foreground;\n font-family: $font;\n}\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8;\n}\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis;\n}\n","/*------------------------------------*\\\n #RESET\n\\*------------------------------------*/\n\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0;\n}\n\n\n\n\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help;\n}\n\n\n\n\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none;\n}\n\n\n\n\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid;\n}\n","/*------------------------------------*\\\n #BOX-SIZING\n\\*------------------------------------*/\n\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n* {\n\n &,\n &:before,\n &:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n}\n\n\n\n\n\n// If we have included this file, set a variable to tell the rest of the\n// framework that global `box-sizing: border-box` has been set.\n$inuit-global-border-box: true;\n","/*------------------------------------*\\\n #PAGE\n\\*------------------------------------*/\n\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: ($inuit-base-font-size / 16px) * 1em; /* [1] */\n line-height: $inuit-base-line-height / $inuit-base-font-size; /* [1] */\n background-color: $inuit-base-background-color;\n color: $inuit-base-text-color;\n overflow-y: scroll; /* [2] */\n min-height: 100%; /* [3] */\n -webkit-text-size-adjust: 100%; /* [4] */\n -ms-text-size-adjust: 100%; /* [4] */\n -moz-osx-font-smoothing: grayscale; /* [5] */\n -webkit-font-smoothing: antialiased; /* [5] */\n}\n","th {\n font-weight: inherit;\n text-align: left;\n}\n","@keyframes fade-in {\n\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n\n}\n\n@keyframes fade-out {\n\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n\n}\n",".textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none;\n}\n\n.textbox {\n background: $textbox--background;\n border-radius: 4px;\n border: 1px solid $textbox--border;\n color: $textbox--foreground;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $textbox--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n\n &:focus {\n background: $textbox--active--background;\n border-color: $textbox--active--border;\n color: $textbox--active--foreground;\n\n &::placeholder {\n color: $textbox--active--placeholder;\n }\n }\n\n}\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s;\n\n &--deemphasize {\n background: $button--deemphasized--background;\n color: $button--deemphasized--foreground;\n\n &:hover {\n background: $button--deemphasized--background--hover;\n color: $button--deemphasized--foreground--hover;\n }\n }\n\n &--primary {\n background: $button--primary--background;\n color: $button--primary--foreground;\n white-space: nowrap;\n\n &:hover {\n background: $button--primary--background--hover;\n }\n }\n\n}\n\n.form {\n\n &__label {\n color: $form--label--foreground;\n display: block;\n margin-bottom: 0.1em;\n }\n\n &__row {\n\n & + .form__row {\n margin-top: 20px;\n }\n }\n\n}\n","$blue: #258de5;\n$green: #39ce83;\n\n$background: #1a2f3d;\n$foreground: #53718a;\n\n$main-content--background: #e9eef2;\n\n$header--foreground: #313436;\n\n// form elements\n$form--label--foreground: #53718a;\n\n$textbox--background: rgba($main-content--background, 0.3);\n$textbox--foreground: $foreground;\n$textbox--placeholder: #abbac7;\n$textbox--border: $main-content--background;\n$textbox--active--background: $textbox--background;\n$textbox--active--border: $main-content--background;\n$textbox--active--foreground: $blue;\n$textbox--active--placeholder: $textbox--placeholder;\n\n$textbox-repeater--button--background: #fff;\n$textbox-repeater--button--background--hover: $main-content--background;\n$textbox-repeater--button--border: rgba($background, 0.1);\n$textbox-repeater--button--border--hover: rgba($background, 0.2);\n$textbox-repeater--button--foreground: rgba($background, 0.3);\n$textbox-repeater--button--foreground--hover: rgba($background, 0.5);\n\n$button--primary--foreground: #fff;\n$button--primary--background: $blue;\n$button--primary--background--hover: darken($button--primary--background, 5%);\n$button--deemphasized--foreground: #66717a;\n$button--deemphasized--background: $main-content--background;\n$button--deemphasized--foreground--hover: darken($button--deemphasized--foreground, 5%);\n$button--deemphasized--background--hover: darken($button--deemphasized--background, 5%);\n\n// action bar\n$action-bar--background: transparent;\n$action-bar--foreground: #1b1a1c;\n$action-bar--group--border: rgba(#7a8080, 0.15);\n\n$action--foreground: #909799;\n$action--foreground--hover: $blue;\n$action--background--hover: rgba(#333e4a, 0.05);\n$action--border--hover: rgba(#333e4a, 0.15);\n\n// filter bar\n$sidebar--foreground: #53718a;\n$sidebar--border: rgba(darken($sidebar--foreground, 40%), 0.3);\n\n$client-stats--limits--opacity: 0.15;\n$client-stats--speed--fill--top--opacity: 0.2;\n$client-stats--speed--fill--bottom--opacity: 0;\n$client-stats--speed--stroke--opacity: 0.4;\n\n$client-stats--download--primary--foreground: #2bae6c;\n$client-stats--download--secondary--foreground: rgba($client-stats--download--primary--foreground, 0.75);\n$client-stats--download--graph--stroke: rgba(#2bae6c, $client-stats--speed--stroke--opacity);\n$client-stats--download--graph--fill--top: rgba(#2bae6c, $client-stats--speed--fill--top--opacity);\n$client-stats--download--graph--fill--bottom: rgba(#2bae6c, $client-stats--speed--fill--bottom--opacity);\n$client-stats--download--limits--line: rgba(lighten($client-stats--download--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--upload--primary--foreground: #2387d9;\n$client-stats--upload--secondary--foreground: rgba($client-stats--upload--primary--foreground, 0.75);\n$client-stats--upload--graph--stroke: rgba(#2387d9, $client-stats--speed--stroke--opacity);\n$client-stats--upload--graph--fill--top: rgba(#2387d9, $client-stats--speed--fill--top--opacity);\n$client-stats--upload--graph--fill--bottom: rgba(#2387d9, $client-stats--speed--fill--bottom--opacity);\n$client-stats--upload--limits--line: rgba(lighten($client-stats--upload--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--limits--foreground: $foreground;\n$client-stats--limits--icon--hover: $blue;\n\n$search-torrents--base: #091824;\n$search-torrents--background: rgba($search-torrents--base, 0.3);\n$search-torrents--background--active: $green;\n$search-torrents--border: rgba($search-torrents--background, 0.4);\n$search-torrents--border--active: $search-torrents--background--active;\n$search-torrents--foreground: $sidebar--foreground;\n$search-torrents--foreground--active: #1e8954;\n$search-torrents--placeholder: rgba($sidebar--foreground, 0.4);\n$search-torrents--placeholder--active: #2cad6d;\n\n$search-torrents--icon--foreground: $sidebar--foreground;\n$search-torrents--icon--foreground--active: #2c9e65;\n\n$sidebar-filter--foreground: $sidebar--foreground;\n$sidebar-filter--foreground--header: rgba($sidebar-filter--foreground, 0.5);\n$sidebar-filter--foreground--active: $blue;\n$sidebar-filter--foreground--hover: lighten($sidebar-filter--foreground, 15%);\n\n$sidebar-filter--count--foreground: #132532;\n$sidebar-filter--count--background: #2b4456;\n$sidebar-filter--count--background--active: #3b586d;\n\n\n// torrents list\n$torrent-list--background: #fff;\n$torrent-list--border: rgba($background, 0.15);\n\n$torrent--primary--foreground: #333332;\n$torrent--primary--foreground--stopped: rgba(#333332, 0.5);\n$torrent--primary--foreground--selected: #fff;\n$torrent--primary--foreground--selected--stopped: rgba($torrent--primary--foreground--selected, 0.6);\n$torrent--secondary--foreground: #807f7e;\n$torrent--secondary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--secondary--foreground--selected: #fff;\n$torrent--secondary--foreground--selected--stopped: rgba(#fff, 0.6);\n$torrent--tertiary--foreground: #807f7e;\n$torrent--tertiary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--tertiary--foreground--selected: rgba(#fff, 0.9);\n$torrent--tertiary--foreground--selected--stopped: rgba(#fff, 0.5);\n\n$torrent--background--hover: #f6f8fa;\n$torrent--background--selected: $blue;\n\n$progress-bar--background: #e3e5e5;\n$progress-bar--background--selected: rgba(#fff, 0.5);\n$progress-bar--background--selected--stopped: rgba(#fff, 0.5);\n$progress-bar--fill: $green;\n\n$progress-bar--fill--stopped: #e3e5e5;\n$progress-bar--fill--completed: $blue;\n$progress-bar--fill--selected: #fff;\n$progress-bar--fill--error: #e95779;\n\n// torrent details\n$torrent-details--background: saturate(lighten(#0c1b26, 2.5%), 4%); //#162835;\n$torrent-details--border: rgba($background, 0.1);\n\n$torrent-details--header--border: rgba(#040d13, 0.3);\n$torrent-details--header--name--foreground: #c7dbeb;\n$torrent-details--header--tertiary--foreground: #7b9cb4;\n$torrent-details--header--progress-bar--track: #2a3e4c;\n$torrent-details--header--progress-bar--fill--error: #be2558;\n\n$torrent-details--navigation--border: rgba(#040d13, 0.35);\n$torrent-details--navigation--item--background--active: rgba(#349cf4, 0.07);\n$torrent-details--navigation--item--foreground--active: #349cf4;\n$torrent-details--navigation--item--border--active: #349cf4;\n$torrent-details--navigation--background: rgba(desaturate(#0c1b26, 15%), 0.1);\n\n$torrent-details--content--background: rgba(desaturate(#0c1b26, 15%), 0.4);\n\n$torrent-details--directory-tree--parent-directory--foreground: #3a5c74;\n$torrent-details--directory-tree--parent-directory--icon--fill: rgba(#3a5c74, 0.5);\n\n$torrent-details--table--foreground: #527893;\n$torrent-details--table--header: rgba(#527893, 0.5);\n$torrent-details--table--header--count--background: rgba(#527893, 0.5);\n$torrent-details--table--header--count--foreground: #0c1b26;\n\n$torrent-details--header--icon--default--fill: rgba(#4d6f87, 0.5);\n\n// tansfer data\n$transfer-data--download: $green;\n$transfer-data--upload: $blue;\n\n// dropdown menu\n$dropdown--background: rgba(#fff, 0.98);\n$dropdown--foreground: #95a2ad;\n$dropdown--container--border: rgba($background, 0.1);\n$dropdown--container--shadow: rgba($background, 0.3);\n$dropdown--label: #abbac7;\n$dropdown--value: #8899a8;\n$dropdown--value--active: #4e6a7c;\n$dropdown--header--border: rgba($background, 0.05);\n$dropdown--item--background--hover: rgba($main-content--background, 0.4);\n$dropdown--item--foreground--hover: darken($dropdown--foreground, 10%);\n$dropdown--item--foreground--active: $blue;\n\n// modal windows\n$modal--background: #fff;\n$modal--overlay: rgba($background, 0.5);\n$modal--header--foreground: $header--foreground;\n$modal--content--border: rgba($background, 0.1);\n$modal--content--shadow: rgba($background, 0.3);\n\n// directory torrent-details--directory-tree--icon-fill\n$directory-tree--filename--foreground: #527893;\n$directory-tree--directory--foreground: $directory-tree--filename--foreground;\n$directory-tree--directory--foreground--open: #719bb7;\n\n$directory-tree--icon--file: #344b5b;\n$directory-tree--icon--folder: rgba(#527893, 0.4);\n$directory-tree--icon--folder--active: rgba(#82aac5, 0.5);\n$directory-tree--icon--folder--open: rgba(#82aac5, 0.5);\n\n$directory-tree--file-details--foreground: #2b4456;\n$directory-tree--file-details--hover--foreground: #527893;\n\n// scrollbars\n$scrollbar--thumb--background--inactive: rgba(#1a2f3d, 0.3);\n$scrollbar--thumb--background--hover: rgba(#1a2f3d, 0.6);\n$scrollbar--thumb--background--inverted--inactive: rgba(#e9eef2, 0.3);\n$scrollbar--thumb--background--inverted--hover: rgba(#e9eef2, 0.6);\n","html,\nbody {\n height: 100%;\n overflow: hidden;\n}\n\n.container {\n height: 100%;\n width: 100%;\n}\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%;\n}\n\n.application {\n\n &__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative;\n }\n\n &__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n\n &--torrent-list {\n transition: transform 0.5s;\n z-index: 2;\n\n &.is-open {\n transform: translateX($torrent-details--width);\n }\n }\n\n &--torrent-details {\n right: 100% - $torrent-details--width;\n width: $torrent-details--width;\n z-index: 1;\n }\n }\n}\n\n.torrent {\n\n &__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px;\n }\n\n &__list {\n\n &__wrapper {\n flex: 1;\n\n &--custom-scroll {\n flex: 1;\n height: auto !important;\n }\n }\n }\n}\n","body {\n background: $background;\n}\n\nul {\n list-style: none;\n}\n",".action-bar {\n background: $action-bar--background;\n color: $action-bar--foreground;\n display: flex;\n flex: 0 0 60px;\n position: relative;\n\n &:after {\n background: $torrent-list--border;\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto;\n }\n\n &__item {\n flex: 3;\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &--sort-torrents {\n max-width: 225px;\n\n .dropdown {\n margin: 5px 0 0 15px;\n\n &__content {\n min-width: 250px;\n }\n }\n }\n\n &--torrent-operations {\n\n .dropdown {\n display: inline-block;\n height: 60px;\n\n &__content {\n min-width: 430px;\n right: 4px;\n }\n }\n }\n }\n\n &__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px;\n\n &--has-divider {\n position: relative;\n\n &:before {\n background: $action-bar--group--border;\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px;\n }\n }\n }\n}\n\n.actions {\n list-style: none;\n}\n\n.action {\n box-shadow:\n 1px 0 transparent,\n -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s;\n\n &:hover {\n background: $action--background--hover;\n box-shadow:\n 1px 0 $action--border--hover,\n -1px 0 $action--border--hover;\n\n .icon {\n fill: $action--foreground--hover;\n }\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden;\n }\n\n .icon {\n fill: $action--foreground;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px;\n }\n}\n",".application {\n\n &__content {\n background: $main-content--background;\n }\n}\n",".badge {\n background: $sidebar-filter--count--background;\n border-radius: 100px;\n color: $sidebar-filter--count--foreground;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline;\n}\n",".client-stat {\n display: flex;\n padding: 30px 20px 20px 20px;\n\n &__icon,\n &__data {\n position: relative;\n vertical-align: top;\n z-index: 1;\n }\n\n &__icon {\n flex: 0 0 23px;\n\n .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto;\n }\n }\n\n &__data {\n flex: 1;\n\n &--primary,\n &--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2;\n }\n\n &--primary {\n font-size: 1.75em;\n white-space: nowrap;\n\n .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em;\n }\n }\n\n &--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400;\n }\n }\n}\n\n.client-stat {\n\n &--limits {\n background: none;\n border: none;\n color: $client-stats--limits--foreground;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%;\n\n .icon {\n display: inline-block;\n fill: $client-stats--limits--foreground;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px;\n\n .limits {\n\n &__bars {\n\n &--top {\n opacity: 0.4;\n }\n\n &--bottom {\n opacity: 0.6;\n }\n }\n }\n }\n\n &:hover {\n color: $client-stats--limits--icon--hover;\n\n .icon {\n fill: $client-stats--limits--icon--hover;\n }\n }\n }\n}\n\n.client-stat {\n position: relative;\n\n .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0;\n\n svg {\n height: 100%;\n width: 100%;\n }\n\n &__line {\n fill: none;\n\n &--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px;\n }\n\n &--rate {\n stroke-width: 1.1px;\n }\n }\n\n }\n\n &--download {\n\n .icon {\n fill: $client-stats--download--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--download--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--download--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--download--gradient--top {\n stop-color: $client-stats--download--graph--fill--top;\n }\n\n .graph--download--gradient--bottom {\n stop-color: $client-stats--download--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--download--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--download--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--download--graph--stroke;\n }\n }\n\n }\n\n }\n\n &--upload {\n\n .icon {\n fill: $client-stats--upload--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--upload--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--upload--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--upload--gradient--top {\n stop-color: $client-stats--upload--graph--fill--top;\n }\n\n .graph--upload--gradient--bottom {\n stop-color: $client-stats--upload--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--upload--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--upload--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--upload--graph--stroke;\n }\n }\n\n }\n\n }\n\n}\n",".directory-tree {\n\n .icon {\n display: inline-block;\n fill: $directory-tree--icon--folder;\n height: 14px;\n margin-right: 6px;\n width: 14px;\n }\n\n &__node {\n color: $directory-tree--filename--foreground;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n &--group {\n padding-left: 10px;\n position: relative;\n\n &:after {\n background: rgba(#527893, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px;\n }\n }\n\n &--directory {\n color: $directory-tree--directory--foreground;\n cursor: pointer;\n transition: color 0.125s;\n\n &.is-expanded {\n color: $directory-tree--directory--foreground--open;\n font-weight: 500;\n\n .icon {\n fill: $directory-tree--icon--folder--active;\n }\n }\n\n .icon {\n fill: $directory-tree--icon--folder;\n }\n }\n\n .file {\n display: flex;\n line-height: 1.7;\n width: 100%;\n\n &:hover {\n\n .file {\n\n &__size,\n &__priority {\n color: $directory-tree--file-details--hover--foreground;\n }\n }\n }\n\n .icon {\n fill: $directory-tree--icon--file;\n }\n\n &__name {\n flex: 1 1 auto;\n }\n\n &__size,\n &__priority {\n color: $directory-tree--file-details--foreground;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s;\n }\n\n &__size {\n padding-right: $spacing-unit * 1/4;\n }\n }\n\n &--file-list {\n margin-bottom: 3px;\n }\n }\n\n &__parent-directory {\n margin-left: -1px;\n\n .icon {\n fill: $torrent-details--directory-tree--parent-directory--icon--fill;\n margin-right: 8px;\n vertical-align: middle;\n }\n }\n\n &__tree {\n\n .directory-tree__tree {\n padding-left: 6px;\n }\n }\n}\n",".dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2;\n\n &__button,\n &__trigger {\n cursor: pointer;\n }\n\n &__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none;\n }\n\n &__content {\n background: $dropdown--background;\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px $dropdown--container--border,\n 0 0 35px $dropdown--container--shadow;\n color: $dropdown--foreground;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2;\n }\n\n &.is-expanded {\n\n .dropdown {\n\n &__header {\n\n .dropdown {\n\n &__value {\n color: $dropdown--value--active;\n }\n }\n }\n }\n }\n\n &__label {\n color: $dropdown--label;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase;\n\n .dropdown__button & {\n cursor: pointer;\n }\n }\n\n &__value {\n color: $dropdown--value;\n transition: color 0.25s;\n\n &:after {\n border-top: 5px solid $dropdown--value;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle;\n }\n }\n\n &__header {\n position: relative;\n\n &:after {\n background: $dropdown--header--border;\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%;\n }\n }\n\n &__items {\n display: flex;\n padding: 10px 0;\n }\n\n &__list {\n flex: 1;\n }\n\n &__item {\n padding: 5px 15px;\n\n &.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s;\n\n &:hover {\n background: $dropdown--item--background--hover;\n color: $dropdown--item--foreground--hover;\n }\n\n &.is-selected {\n color: $dropdown--item--foreground--active;\n }\n }\n }\n\n &--align-right & {\n left: auto;\n right: 0;\n }\n}\n\n.dropdown {\n\n &__content {\n\n &-enter {\n animation: fade-in 0.25s both;\n }\n\n &-leave {\n animation: fade-out 0.25s both;\n }\n }\n}\n\n.dropdown {\n\n &__content {\n\n &__container {\n padding: 25px 30px;\n }\n }\n}\n",".floating-action {\n\n &__button {\n background: $textbox-repeater--button--background;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border;\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background: $textbox-repeater--button--background--hover;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border--hover;\n\n .icon {\n fill: $textbox-repeater--button--foreground--hover;\n }\n }\n\n .icon {\n height: 8px;\n fill: $textbox-repeater--button--foreground;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px;\n }\n }\n}\n",".icon {\n\n &--eta {\n\n .icon {\n\n &__ring {\n fill-opacity: 1;\n }\n }\n }\n}\n","@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n transform: translateX(400%);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px;\n\n &__bar {\n background: #e9eef2;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%;\n\n &:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: rgba($blue, 0.75);\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%;\n }\n\n &--1 {\n top: 0;\n }\n\n &--2 {\n top: 50%;\n transform: translateY(-50%);\n\n &:after {\n animation-delay: 0.5s;\n }\n }\n\n &--3 {\n bottom: 0;\n\n &:after {\n animation-delay: 1s;\n }\n }\n }\n}\n",".modal {\n background: $modal--overlay;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100;\n\n &__content {\n background: $modal--background;\n border-radius: 5px;\n box-shadow:\n 0 0 0 1px $modal--content--border,\n 0 0 35px $modal--content--shadow;\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px;\n\n &--align-center {\n text-align: center;\n }\n }\n\n &__footer {\n margin-top: $spacing-unit;\n }\n\n &__button-group {\n text-align: right;\n\n .button {\n\n & + .button {\n margin-left: 20px;\n }\n }\n }\n\n &__header {\n color: $modal--header--foreground;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px;\n }\n\n &__animation-enter {\n opacity: 0;\n }\n\n &__animation-enter-active {\n opacity: 1;\n }\n\n &__animation-leave {\n opacity: 1;\n pointer-events: none;\n }\n\n &__animation-leave-active {\n opacity: 0;\n }\n}\n",".progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1;\n\n .is-selected.is-stopped & {\n opacity: 0.5;\n }\n\n &:after {\n background: $progress-bar--background;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%;\n\n .is-selected & {\n background: $progress-bar--background--selected;\n }\n\n .is-selected.is-stopped & {\n background: $progress-bar--background--selected--stopped;\n }\n }\n\n &__fill {\n background: $progress-bar--fill;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1;\n\n .is-seeding & {\n background: $progress-bar--fill--completed;\n }\n\n .is-completed &,\n .is-stopped & {\n background: $progress-bar--fill--stopped;\n }\n\n .is-selected & {\n background: $progress-bar--fill--selected;\n }\n\n .has-error & {\n background: $progress-bar--fill--error;\n }\n }\n}\n",".scrollbars {\n\n &__thumb {\n background: $scrollbar--thumb--background--inactive;\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.25s;\n\n &:active {\n opacity: 1;\n }\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--hover;\n }\n\n .is-inverted & {\n background: $scrollbar--thumb--background--inverted--inactive;\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--inverted--hover;\n }\n }\n }\n\n &:hover {\n\n .scrollbars__thumb {\n opacity: 1;\n }\n }\n}\n",".application {\n\n &__sidebar {\n box-shadow: 1px 0 $sidebar--border;\n color: $sidebar--foreground;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2;\n }\n}\n\n.sidebar {\n\n &__item {\n\n &--search {\n position: relative;\n\n .icon {\n fill: $search-torrents--icon--foreground;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px;\n }\n\n .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid $search-torrents--border;\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: $search-torrents--background;\n box-shadow: none;\n color: $search-torrents--foreground;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $search-torrents--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n }\n\n &.is-in-use {\n\n .icon {\n fill: $search-torrents--icon--foreground--active;\n opacity: 1;\n }\n\n .textbox {\n background: $search-torrents--background--active;\n border-bottom: 1px solid $search-torrents--border--active;\n border-top: 1px solid $search-torrents--border--active;\n color: $search-torrents--foreground--active;\n\n &::placeholder {\n color: $search-torrents--placeholder--active;\n }\n }\n }\n }\n\n &--speed-limit {\n padding-left: 5px;\n padding-top: 5px;\n\n .dropdown {\n\n &__content {\n min-width: 180px;\n }\n\n &__items {\n font-size: 0.9em;\n }\n }\n }\n }\n}\n",".sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0;\n\n & + .sidebar-filter {\n padding-top: 0;\n }\n\n &__item {\n color: $sidebar-filter--foreground;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s;\n\n &:hover {\n color: $sidebar-filter--foreground--hover;\n\n .icon {\n fill: $sidebar-filter--foreground--hover;\n }\n }\n\n &.is-active {\n color: $sidebar-filter--foreground--active;\n font-weight: 700;\n\n .badge {\n background: $sidebar-filter--count--background--active;\n }\n\n .icon {\n fill: $sidebar-filter--foreground--active;\n }\n }\n\n .icon {\n display: inline-block;\n fill: $sidebar-filter--foreground;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto;\n }\n }\n\n .badge {\n background: $sidebar-filter--count--background;\n color: $sidebar-filter--count--foreground;\n }\n}\n\n\n.sidebar-filter {\n\n &__item {\n\n &--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n\n &,\n &:hover {\n color: $sidebar-filter--foreground--header;\n }\n }\n }\n}\n",".textbox-repeater {\n\n .floating-action {\n\n &__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%;\n }\n\n &__button {\n position: relative;\n }\n }\n\n .textbox {\n\n &__wrapper {\n position: relative;\n }\n }\n}\n",".application {\n\n &__panel {\n\n &--torrent-details {\n background: $torrent-details--background;\n }\n }\n}\n\n.torrent-details {\n background: $torrent-details--background;\n bottom: 0;\n box-shadow: -1px 0 0 $torrent-details--border;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2;\n\n &__heading {\n box-shadow: 0 1px 0 $torrent-details--header--border;\n flex: 0 0 auto;\n padding: $spacing-unit * 1/2 $spacing-unit $spacing-unit * 2/3 $spacing-unit;\n\n &.is-stopped {\n\n .torrent {\n\n &__details {\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n }\n }\n }\n }\n\n &.has-error {\n\n .progress-bar {\n\n &__fill {\n background: $torrent-details--header--progress-bar--fill--error;\n }\n }\n }\n\n .torrent {\n\n &__details {\n\n &--name {\n color: $torrent-details--header--name--foreground;\n font-size: 1.7em;\n font-weight: 300;\n }\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n font-size: 1em;\n margin-bottom: $spacing-unit * 1/2;\n }\n\n &--download,\n &--upload,\n &--eta,\n &--ratio {\n\n .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px;\n }\n }\n\n &--ratio,\n &--eta {\n\n .icon {\n fill: $torrent-details--header--icon--default--fill;\n }\n }\n\n &--eta {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n .progress-bar {\n\n &:after {\n background: $torrent-details--header--progress-bar--track;\n }\n }\n }\n\n &__table {\n color: $torrent-details--table--foreground;\n width: 100%;\n\n &__heading {\n\n &--primary {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &--secondary {\n color: $torrent-details--table--header;\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n }\n }\n }\n\n &__content {\n flex: 1;\n overflow: auto;\n padding: $spacing-unit * 2/3 $spacing-unit;\n\n &__wrapper {\n background: $torrent-details--content--background;\n display: flex;\n flex: 1;\n overflow: hidden;\n }\n }\n\n &__navigation {\n background: $torrent-details--navigation--background;\n box-shadow: 1px 0 0 $torrent-details--navigation--border;\n min-width: 125px;\n padding: $spacing-unit * 1/2 0;\n\n .navigation {\n\n &__item {\n cursor: pointer;\n padding: $spacing-unit * 1/4 $spacing-unit;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s;\n\n &.is-active {\n background: $torrent-details--navigation--item--background--active;\n box-shadow: 1px 0 0 $torrent-details--navigation--item--border--active;\n color: $torrent-details--navigation--item--foreground--active;\n }\n }\n }\n }\n\n &__section {\n\n &__heading,\n &__null-data {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &__heading {\n\n .badge {\n background: $torrent-details--table--header--count--background;\n color: $torrent-details--table--header--count--foreground;\n }\n }\n }\n}\n\n.torrent-details-enter {\n opacity: 0;\n}\n\n.torrent-details-enter-active {\n opacity: 1;\n}\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s;\n}\n",".torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative;\n\n &:after {\n background: $torrent-list--background;\n bottom: 0;\n box-shadow: -1px 0 0 0 $torrent-list--border;\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.torrent {\n\n &__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative;\n\n &__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n overflow: auto;\n transition: opacity 1s;\n user-select: none;\n z-index: 1;\n }\n\n &--loading {\n\n &-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n transition: opacity 1s;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &--empty {\n opacity: 0;\n }\n }\n}\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s;\n\n &:hover {\n background: $torrent--background--hover;\n\n .torrent {\n\n &__more-info {\n opacity: 1;\n }\n }\n }\n\n &.is-selected {\n background: $torrent--background--selected;\n }\n\n &__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px;\n }\n}\n\n.torrent {\n\n &__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none;\n\n &--primary,\n &--secondary,\n &--tertiary {\n transition: color 0.25s;\n }\n\n &--primary {\n color: $torrent--primary--foreground;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap;\n\n .is-stopped & {\n color: $torrent--primary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--primary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--primary--foreground--selected--stopped;\n }\n }\n\n &--secondary {\n align-items: flex-end;\n color: $torrent--secondary--foreground;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px;\n\n li {\n flex: 1 1 auto;\n min-width: 15%;\n\n &.torrent__details--ratio {\n max-width: 30px;\n }\n }\n\n .is-stopped & {\n color: $torrent--secondary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--secondary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--secondary--foreground--selected--stopped;\n }\n }\n\n &--tertiary {\n color: $torrent--tertiary--foreground;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0;\n\n li {\n display: inline-block;\n margin-right: 1em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-stopped & {\n color: $torrent--tertiary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--tertiary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--tertiary--foreground--selected--stopped;\n }\n }\n\n &__label {\n margin-right: 0.5em;\n opacity: 0.5;\n }\n }\n}\n\n.torrent {\n\n &__details {\n\n &--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden;\n\n .torrent__details--segment {\n margin-right: 0.25em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-actively-downloading & {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n}\n\n.view {\n\n &--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 $torrent-list--border;\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%;\n }\n}\n",".transfer-data {\n\n &--download {\n color: $transfer-data--download;\n\n .icon {\n fill: $transfer-data--download;\n }\n }\n\n &--upload {\n color: $transfer-data--upload;\n\n .icon {\n fill: $transfer-data--upload;\n }\n }\n}\n"],"sourceRoot":"/source/"} \ No newline at end of file