) on an already loaded video,\n // HTMLMediaElement.load() is needed to reset the media element\n // and restart the media resource. Just replacing children source\n // dom nodes is not enough\n this.player.load();\n } else if ((0, _utils.isMediaStream)(url)) {\n try {\n this.player.srcObject = url;\n } catch (e) {\n this.player.src = window.URL.createObjectURL(url);\n }\n }\n }\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.player.play();\n\n if (promise) {\n promise[\"catch\"](this.props.onError);\n }\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.player.pause();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.player.removeAttribute('src');\n\n if (this.dash) {\n this.dash.reset();\n }\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.player.currentTime = seconds;\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.player.volume = fraction;\n }\n }, {\n key: \"enablePIP\",\n value: function enablePIP() {\n if (this.player.requestPictureInPicture && document.pictureInPictureElement !== this.player) {\n this.player.requestPictureInPicture();\n } else if (supportsWebKitPresentationMode(this.player) && this.player.webkitPresentationMode !== 'picture-in-picture') {\n this.player.webkitSetPresentationMode('picture-in-picture');\n }\n }\n }, {\n key: \"disablePIP\",\n value: function disablePIP() {\n if (document.exitPictureInPicture && document.pictureInPictureElement === this.player) {\n document.exitPictureInPicture();\n } else if (supportsWebKitPresentationMode(this.player) && this.player.webkitPresentationMode !== 'inline') {\n this.player.webkitSetPresentationMode('inline');\n }\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.player.playbackRate = rate;\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n if (!this.player) return null;\n var _this$player = this.player,\n duration = _this$player.duration,\n seekable = _this$player.seekable; // on iOS, live streams return Infinity for the duration\n // so instead we use the end of the seekable timerange\n\n if (duration === Infinity && seekable.length > 0) {\n return seekable.end(seekable.length - 1);\n }\n\n return duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n if (!this.player) return null;\n return this.player.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n if (!this.player) return null;\n var buffered = this.player.buffered;\n\n if (buffered.length === 0) {\n return 0;\n }\n\n var end = buffered.end(buffered.length - 1);\n var duration = this.getDuration();\n\n if (end > duration) {\n return duration;\n }\n\n return end;\n }\n }, {\n key: \"getSource\",\n value: function getSource(url) {\n var useHLS = this.shouldUseHLS(url);\n var useDASH = this.shouldUseDASH(url);\n\n if (url instanceof Array || (0, _utils.isMediaStream)(url) || useHLS || useDASH) {\n return undefined;\n }\n\n if (MATCH_DROPBOX_URL.test(url)) {\n return url.replace('www.dropbox.com', 'dl.dropboxusercontent.com');\n }\n\n return url;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n url = _this$props10.url,\n playing = _this$props10.playing,\n loop = _this$props10.loop,\n controls = _this$props10.controls,\n muted = _this$props10.muted,\n config = _this$props10.config,\n width = _this$props10.width,\n height = _this$props10.height;\n var useAudio = this.shouldUseAudio(this.props);\n var Element = useAudio ? 'audio' : 'video';\n var style = {\n width: width === 'auto' ? width : '100%',\n height: height === 'auto' ? height : '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(Element, _extends({\n ref: this.ref,\n src: this.getSource(url),\n style: style,\n preload: \"auto\",\n autoPlay: playing || undefined,\n controls: controls,\n muted: muted,\n loop: loop\n }, config.file.attributes), url instanceof Array && url.map(this.renderSourceElement), config.file.tracks.map(this.renderTrack));\n }\n }]);\n\n return FilePlayer;\n}(_react.Component);\n\nexports.FilePlayer = FilePlayer;\n\n_defineProperty(FilePlayer, \"displayName\", 'FilePlayer');\n\n_defineProperty(FilePlayer, \"canPlay\", canPlay);\n\n_defineProperty(FilePlayer, \"canEnablePIP\", canEnablePIP);\n\nvar _default = (0, _singlePlayer[\"default\"])(FilePlayer);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Mixcloud = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://widget.mixcloud.com/media/js/widgetApi.js';\nvar SDK_GLOBAL = 'Mixcloud';\nvar MATCH_URL = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\n\nvar Mixcloud = /*#__PURE__*/function (_Component) {\n _inherits(Mixcloud, _Component);\n\n var _super = _createSuper(Mixcloud);\n\n function Mixcloud() {\n var _this;\n\n _classCallCheck(this, Mixcloud);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {// No volume support\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {// No volume support\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(Mixcloud, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Mixcloud) {\n _this2.player = Mixcloud.PlayerWidget(_this2.iframe);\n\n _this2.player.ready.then(function () {\n _this2.player.events.play.on(_this2.props.onPlay);\n\n _this2.player.events.pause.on(_this2.props.onPause);\n\n _this2.player.events.ended.on(_this2.props.onEnded);\n\n _this2.player.events.error.on(_this2.props.error);\n\n _this2.player.events.progress.on(function (seconds, duration) {\n _this2.currentTime = seconds;\n _this2.duration = duration;\n });\n\n _this2.props.onReady();\n });\n }, this.props.onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {// No volume support\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n url = _this$props.url,\n config = _this$props.config;\n var id = url.match(MATCH_URL)[1];\n var style = {\n width: '100%',\n height: '100%'\n };\n var query = (0, _utils.queryString)(_objectSpread({}, config.mixcloud.options, {\n feed: \"/\".concat(id, \"/\")\n })); // We have to give the iframe a key here to prevent a\n // weird dialog appearing when loading a new track\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n key: id,\n ref: this.ref,\n style: style,\n src: \"https://www.mixcloud.com/widget/iframe/?\".concat(query),\n frameBorder: \"0\"\n });\n }\n }]);\n\n return Mixcloud;\n}(_react.Component);\n\nexports.Mixcloud = Mixcloud;\n\n_defineProperty(Mixcloud, \"displayName\", 'Mixcloud');\n\n_defineProperty(Mixcloud, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Mixcloud, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Mixcloud);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.SoundCloud = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://w.soundcloud.com/player/api.js';\nvar SDK_GLOBAL = 'SC';\nvar MATCH_URL = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\n\nvar SoundCloud = /*#__PURE__*/function (_Component) {\n _inherits(SoundCloud, _Component);\n\n var _super = _createSuper(SoundCloud);\n\n function SoundCloud() {\n var _this;\n\n _classCallCheck(this, SoundCloud);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"fractionLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.setVolume(0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n if (_this.props.volume !== null) {\n _this.setVolume(_this.props.volume);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(SoundCloud, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (SC) {\n if (!_this2.iframe) return;\n var _SC$Widget$Events = SC.Widget.Events,\n PLAY = _SC$Widget$Events.PLAY,\n PLAY_PROGRESS = _SC$Widget$Events.PLAY_PROGRESS,\n PAUSE = _SC$Widget$Events.PAUSE,\n FINISH = _SC$Widget$Events.FINISH,\n ERROR = _SC$Widget$Events.ERROR;\n\n if (!isReady) {\n _this2.player = SC.Widget(_this2.iframe);\n\n _this2.player.bind(PLAY, _this2.props.onPlay);\n\n _this2.player.bind(PAUSE, _this2.props.onPause);\n\n _this2.player.bind(PLAY_PROGRESS, function (e) {\n _this2.currentTime = e.currentPosition / 1000;\n _this2.fractionLoaded = e.loadedProgress;\n });\n\n _this2.player.bind(FINISH, function () {\n return _this2.props.onEnded();\n });\n\n _this2.player.bind(ERROR, function (e) {\n return _this2.props.onError(e);\n });\n }\n\n _this2.player.load(url, _objectSpread({}, _this2.props.config.soundcloud.options, {\n callback: function callback() {\n _this2.player.getDuration(function (duration) {\n _this2.duration = duration / 1000;\n\n _this2.props.onReady();\n });\n }\n }));\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seekTo', seconds * 1000);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.fractionLoaded * this.duration;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n ref: this.ref,\n src: \"https://w.soundcloud.com/player/?url=\".concat(encodeURIComponent(this.props.url)),\n style: style,\n frameBorder: 0,\n allow: \"autoplay\"\n });\n }\n }]);\n\n return SoundCloud;\n}(_react.Component);\n\nexports.SoundCloud = SoundCloud;\n\n_defineProperty(SoundCloud, \"displayName\", 'SoundCloud');\n\n_defineProperty(SoundCloud, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(SoundCloud, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(SoundCloud);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Streamable = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://cdn.embed.ly/player-0.1.0.min.js';\nvar SDK_GLOBAL = 'playerjs';\nvar MATCH_URL = /streamable\\.com\\/([a-z0-9]+)$/;\n\nvar Streamable = /*#__PURE__*/function (_Component) {\n _inherits(Streamable, _Component);\n\n var _super = _createSuper(Streamable);\n\n function Streamable() {\n var _this;\n\n _classCallCheck(this, Streamable);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (iframe) {\n _this.iframe = iframe;\n });\n\n return _this;\n }\n\n _createClass(Streamable, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (playerjs) {\n if (!_this2.iframe) return;\n _this2.player = new playerjs.Player(_this2.iframe);\n\n _this2.player.setLoop(_this2.props.loop);\n\n _this2.player.on('ready', _this2.props.onReady);\n\n _this2.player.on('play', _this2.props.onPlay);\n\n _this2.player.on('pause', _this2.props.onPause);\n\n _this2.player.on('seeked', _this2.props.onSeek);\n\n _this2.player.on('ended', _this2.props.onEnded);\n\n _this2.player.on('error', _this2.props.onError);\n\n _this2.player.on('timeupdate', function (_ref) {\n var duration = _ref.duration,\n seconds = _ref.seconds;\n _this2.duration = duration;\n _this2.currentTime = seconds;\n });\n\n _this2.player.on('buffered', function (_ref2) {\n var percent = _ref2.percent;\n\n if (_this2.duration) {\n _this2.secondsLoaded = _this2.duration * percent;\n }\n });\n\n if (_this2.props.muted) {\n _this2.player.mute();\n }\n }, this.props.onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {// Nothing to do\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('setCurrentTime', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.secondsLoaded;\n }\n }, {\n key: \"render\",\n value: function render() {\n var id = this.props.url.match(MATCH_URL)[1];\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"iframe\", {\n ref: this.ref,\n src: \"https://streamable.com/o/\".concat(id),\n frameBorder: \"0\",\n scrolling: \"no\",\n style: style,\n allowFullScreen: true\n });\n }\n }]);\n\n return Streamable;\n}(_react.Component);\n\nexports.Streamable = Streamable;\n\n_defineProperty(Streamable, \"displayName\", 'Streamable');\n\n_defineProperty(Streamable, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(Streamable);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Twitch = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://player.twitch.tv/js/embed/v1.js';\nvar SDK_GLOBAL = 'Twitch';\nvar MATCH_VIDEO_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nvar MATCH_CHANNEL_URL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-z0-9_]+)($|\\?)/;\nvar PLAYER_ID_PREFIX = 'twitch-player-';\n\nvar Twitch = /*#__PURE__*/function (_Component) {\n _inherits(Twitch, _Component);\n\n var _super = _createSuper(Twitch);\n\n function Twitch() {\n var _this;\n\n _classCallCheck(this, Twitch);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"playerID\", _this.props.config.twitch.playerId || \"\".concat(PLAYER_ID_PREFIX).concat((0, _utils.randomString)()));\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('setMuted', true);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('setMuted', false);\n });\n\n return _this;\n }\n\n _createClass(Twitch, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n var _this$props = this.props,\n playsinline = _this$props.playsinline,\n onError = _this$props.onError,\n config = _this$props.config,\n controls = _this$props.controls;\n var isChannel = MATCH_CHANNEL_URL.test(url);\n var id = isChannel ? url.match(MATCH_CHANNEL_URL)[1] : url.match(MATCH_VIDEO_URL)[1];\n\n if (isReady) {\n if (isChannel) {\n this.player.setChannel(id);\n } else {\n this.player.setVideo('v' + id);\n }\n\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Twitch) {\n _this2.player = new Twitch.Player(_this2.playerID, _objectSpread({\n video: isChannel ? '' : id,\n channel: isChannel ? id : '',\n height: '100%',\n width: '100%',\n playsinline: playsinline,\n autoplay: _this2.props.playing,\n muted: _this2.props.muted,\n // https://github.com/CookPete/react-player/issues/733#issuecomment-549085859\n controls: isChannel ? true : controls\n }, config.twitch.options));\n var _Twitch$Player = Twitch.Player,\n READY = _Twitch$Player.READY,\n PLAYING = _Twitch$Player.PLAYING,\n PAUSE = _Twitch$Player.PAUSE,\n ENDED = _Twitch$Player.ENDED,\n ONLINE = _Twitch$Player.ONLINE,\n OFFLINE = _Twitch$Player.OFFLINE;\n\n _this2.player.addEventListener(READY, _this2.props.onReady);\n\n _this2.player.addEventListener(PLAYING, _this2.props.onPlay);\n\n _this2.player.addEventListener(PAUSE, _this2.props.onPause);\n\n _this2.player.addEventListener(ENDED, _this2.props.onEnded); // Prevent weird isLoading behaviour when streams are offline\n\n\n _this2.player.addEventListener(ONLINE, _this2.props.onLoaded);\n\n _this2.player.addEventListener(OFFLINE, _this2.props.onLoaded);\n }, onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.callPlayer('pause');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('seek', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentTime');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n id: this.playerID\n });\n }\n }]);\n\n return Twitch;\n}(_react.Component);\n\nexports.Twitch = Twitch;\n\n_defineProperty(Twitch, \"displayName\", 'Twitch');\n\n_defineProperty(Twitch, \"canPlay\", function (url) {\n return MATCH_VIDEO_URL.test(url) || MATCH_CHANNEL_URL.test(url);\n});\n\n_defineProperty(Twitch, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Twitch);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Vimeo = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://player.vimeo.com/api/player.js';\nvar SDK_GLOBAL = 'Vimeo';\nvar MATCH_URL = /vimeo\\.com\\/.+/;\nvar MATCH_FILE_URL = /vimeo\\.com\\/external\\/[0-9]+\\..+/;\n\nvar Vimeo = /*#__PURE__*/function (_Component) {\n _inherits(Vimeo, _Component);\n\n var _super = _createSuper(Vimeo);\n\n function Vimeo() {\n var _this;\n\n _classCallCheck(this, Vimeo);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"duration\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"currentTime\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"secondsLoaded\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.setVolume(0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n if (_this.props.volume !== null) {\n _this.setVolume(_this.props.volume);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(Vimeo, [{\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n this.duration = null;\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Vimeo) {\n if (!_this2.container) return;\n _this2.player = new Vimeo.Player(_this2.container, _objectSpread({\n url: url,\n autoplay: _this2.props.playing,\n muted: _this2.props.muted,\n loop: _this2.props.loop,\n playsinline: _this2.props.playsinline,\n controls: _this2.props.controls\n }, _this2.props.config.vimeo.playerOptions));\n\n _this2.player.ready().then(function () {\n var iframe = _this2.container.querySelector('iframe');\n\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n })[\"catch\"](_this2.props.onError);\n\n _this2.player.on('loaded', function () {\n _this2.props.onReady();\n\n _this2.refreshDuration();\n });\n\n _this2.player.on('play', function () {\n _this2.props.onPlay();\n\n _this2.refreshDuration();\n });\n\n _this2.player.on('pause', _this2.props.onPause);\n\n _this2.player.on('seeked', function (e) {\n return _this2.props.onSeek(e.seconds);\n });\n\n _this2.player.on('ended', _this2.props.onEnded);\n\n _this2.player.on('error', _this2.props.onError);\n\n _this2.player.on('timeupdate', function (_ref) {\n var seconds = _ref.seconds;\n _this2.currentTime = seconds;\n });\n\n _this2.player.on('progress', function (_ref2) {\n var seconds = _ref2.seconds;\n _this2.secondsLoaded = seconds;\n });\n }, this.props.onError);\n }\n }, {\n key: \"refreshDuration\",\n value: function refreshDuration() {\n var _this3 = this;\n\n this.player.getDuration().then(function (duration) {\n _this3.duration = duration;\n });\n }\n }, {\n key: \"play\",\n value: function play() {\n var promise = this.callPlayer('play');\n\n if (promise) {\n promise[\"catch\"](this.props.onError);\n }\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.callPlayer('unload');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('setCurrentTime', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('setPlaybackRate', rate);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.duration;\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.secondsLoaded;\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: this.props.url,\n ref: this.ref,\n style: style\n });\n }\n }]);\n\n return Vimeo;\n}(_react.Component);\n\nexports.Vimeo = Vimeo;\n\n_defineProperty(Vimeo, \"displayName\", 'Vimeo');\n\n_defineProperty(Vimeo, \"forceLoad\", true);\n\n_defineProperty(Vimeo, \"canPlay\", function (url) {\n if (MATCH_FILE_URL.test(url)) {\n return false;\n }\n\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(Vimeo);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.Wistia = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SDK_URL = 'https://fast.wistia.com/assets/external/E-v1.js';\nvar SDK_GLOBAL = 'Wistia';\nvar MATCH_URL = /(?:wistia\\.com|wi\\.st)\\/(?:medias|embed)\\/(.*)$/;\n\nvar Wistia = /*#__PURE__*/function (_Component) {\n _inherits(Wistia, _Component);\n\n var _super = _createSuper(Wistia);\n\n function Wistia() {\n var _this;\n\n _classCallCheck(this, Wistia);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onPlay\", function () {\n var _this$props;\n\n return (_this$props = _this.props).onPlay.apply(_this$props, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onPause\", function () {\n var _this$props2;\n\n return (_this$props2 = _this.props).onPause.apply(_this$props2, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSeek\", function () {\n var _this$props3;\n\n return (_this$props3 = _this.props).onSeek.apply(_this$props3, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnded\", function () {\n var _this$props4;\n\n return (_this$props4 = _this.props).onEnded.apply(_this$props4, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unmute');\n });\n\n return _this;\n }\n\n _createClass(Wistia, [{\n key: \"getID\",\n value: function getID(url) {\n return url && url.match(MATCH_URL)[1];\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n playing = _this$props5.playing,\n muted = _this$props5.muted,\n controls = _this$props5.controls,\n _onReady = _this$props5.onReady,\n config = _this$props5.config,\n onError = _this$props5.onError;\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL).then(function () {\n window._wq = window._wq || [];\n\n window._wq.push({\n id: _this2.getID(url),\n options: _objectSpread({\n autoPlay: playing,\n silentAutoPlay: 'allow',\n muted: muted,\n controlsVisibleOnLoad: controls\n }, config.wistia.options),\n onReady: function onReady(player) {\n _this2.player = player;\n\n _this2.unbind();\n\n _this2.player.bind('play', _this2.onPlay);\n\n _this2.player.bind('pause', _this2.onPause);\n\n _this2.player.bind('seek', _this2.onSeek);\n\n _this2.player.bind('end', _this2.onEnded);\n\n _onReady();\n }\n });\n }, onError);\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n this.player.unbind('play', this.onPlay);\n this.player.unbind('pause', this.onPause);\n this.player.unbind('seek', this.onSeek);\n this.player.unbind('end', this.onEnded);\n } // Proxy methods to prevent listener leaks\n\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('play');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pause');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.unbind();\n this.callPlayer('remove');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(seconds) {\n this.callPlayer('time', seconds);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('volume', fraction);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('playbackRate', rate);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('duration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('time');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var id = this.getID(this.props.url);\n var className = \"wistia_embed wistia_async_\".concat(id);\n var style = {\n width: '100%',\n height: '100%'\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: id,\n className: className,\n style: style\n });\n }\n }]);\n\n return Wistia;\n}(_react.Component);\n\nexports.Wistia = Wistia;\n\n_defineProperty(Wistia, \"displayName\", 'Wistia');\n\n_defineProperty(Wistia, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\n_defineProperty(Wistia, \"loopOnEnded\", true);\n\nvar _default = (0, _singlePlayer[\"default\"])(Wistia);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.YouTube = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _utils = require(\"../utils\");\n\nvar _singlePlayer = _interopRequireDefault(require(\"../singlePlayer\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar SDK_URL = 'https://www.youtube.com/iframe_api';\nvar SDK_GLOBAL = 'YT';\nvar SDK_GLOBAL_READY = 'onYouTubeIframeAPIReady';\nvar MATCH_URL = /(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=/;\nvar MATCH_PLAYLIST = /list=([a-zA-Z0-9_-]+)/;\n\nfunction parsePlaylist(url) {\n if (MATCH_PLAYLIST.test(url)) {\n var _url$match = url.match(MATCH_PLAYLIST),\n _url$match2 = _slicedToArray(_url$match, 2),\n playlistId = _url$match2[1];\n\n return {\n listType: 'playlist',\n list: playlistId\n };\n }\n\n return {};\n}\n\nvar YouTube = /*#__PURE__*/function (_Component) {\n _inherits(YouTube, _Component);\n\n var _super = _createSuper(YouTube);\n\n function YouTube() {\n var _this;\n\n _classCallCheck(this, YouTube);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"callPlayer\", _utils.callPlayer);\n\n _defineProperty(_assertThisInitialized(_this), \"onStateChange\", function (_ref) {\n var data = _ref.data;\n var _this$props = _this.props,\n onPlay = _this$props.onPlay,\n onPause = _this$props.onPause,\n onBuffer = _this$props.onBuffer,\n onBufferEnd = _this$props.onBufferEnd,\n onEnded = _this$props.onEnded,\n onReady = _this$props.onReady,\n loop = _this$props.loop;\n var _window$SDK_GLOBAL$Pl = window[SDK_GLOBAL].PlayerState,\n PLAYING = _window$SDK_GLOBAL$Pl.PLAYING,\n PAUSED = _window$SDK_GLOBAL$Pl.PAUSED,\n BUFFERING = _window$SDK_GLOBAL$Pl.BUFFERING,\n ENDED = _window$SDK_GLOBAL$Pl.ENDED,\n CUED = _window$SDK_GLOBAL$Pl.CUED;\n\n if (data === PLAYING) {\n onPlay();\n onBufferEnd();\n }\n\n if (data === PAUSED) onPause();\n if (data === BUFFERING) onBuffer();\n\n if (data === ENDED) {\n var isPlaylist = !!_this.callPlayer('getPlaylist');\n\n if (loop && !isPlaylist) {\n _this.play(); // Only loop manually if not playing a playlist\n\n }\n\n onEnded();\n }\n\n if (data === CUED) onReady();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mute\", function () {\n _this.callPlayer('mute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"unmute\", function () {\n _this.callPlayer('unMute');\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (container) {\n _this.container = container;\n });\n\n return _this;\n }\n\n _createClass(YouTube, [{\n key: \"load\",\n value: function load(url, isReady) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n playing = _this$props2.playing,\n muted = _this$props2.muted,\n playsinline = _this$props2.playsinline,\n controls = _this$props2.controls,\n loop = _this$props2.loop,\n config = _this$props2.config,\n _onError = _this$props2.onError;\n var _config$youtube = config.youtube,\n playerVars = _config$youtube.playerVars,\n embedOptions = _config$youtube.embedOptions;\n var id = url && url.match(MATCH_URL)[1];\n\n if (isReady) {\n if (MATCH_PLAYLIST.test(url)) {\n this.player.loadPlaylist(parsePlaylist(url));\n return;\n }\n\n this.player.cueVideoById({\n videoId: id,\n startSeconds: (0, _utils.parseStartTime)(url) || playerVars.start,\n endSeconds: (0, _utils.parseEndTime)(url) || playerVars.end\n });\n return;\n }\n\n (0, _utils.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY, function (YT) {\n return YT.loaded;\n }).then(function (YT) {\n if (!_this2.container) return;\n _this2.player = new YT.Player(_this2.container, _objectSpread({\n width: '100%',\n height: '100%',\n videoId: id,\n playerVars: _objectSpread({\n autoplay: playing ? 1 : 0,\n mute: muted ? 1 : 0,\n controls: controls ? 1 : 0,\n start: (0, _utils.parseStartTime)(url),\n end: (0, _utils.parseEndTime)(url),\n origin: window.location.origin,\n playsinline: playsinline\n }, parsePlaylist(url), {}, playerVars),\n events: {\n onReady: function onReady() {\n if (loop) {\n _this2.player.setLoop(true); // Enable playlist looping\n\n }\n\n _this2.props.onReady();\n },\n onStateChange: _this2.onStateChange,\n onError: function onError(event) {\n return _onError(event.data);\n }\n }\n }, embedOptions));\n }, _onError);\n }\n }, {\n key: \"play\",\n value: function play() {\n this.callPlayer('playVideo');\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.callPlayer('pauseVideo');\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (!document.body.contains(this.callPlayer('getIframe'))) return;\n this.callPlayer('stopVideo');\n }\n }, {\n key: \"seekTo\",\n value: function seekTo(amount) {\n this.callPlayer('seekTo', amount);\n\n if (!this.props.playing) {\n this.pause();\n }\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(fraction) {\n this.callPlayer('setVolume', fraction * 100);\n }\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(rate) {\n this.callPlayer('setPlaybackRate', rate);\n }\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n this.callPlayer('setLoop', loop);\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.callPlayer('getDuration');\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.callPlayer('getCurrentTime');\n }\n }, {\n key: \"getSecondsLoaded\",\n value: function getSecondsLoaded() {\n return this.callPlayer('getVideoLoadedFraction') * this.getDuration();\n }\n }, {\n key: \"render\",\n value: function render() {\n var display = this.props.display;\n var style = {\n width: '100%',\n height: '100%',\n display: display\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.ref\n }));\n }\n }]);\n\n return YouTube;\n}(_react.Component);\n\nexports.YouTube = YouTube;\n\n_defineProperty(YouTube, \"displayName\", 'YouTube');\n\n_defineProperty(YouTube, \"canPlay\", function (url) {\n return MATCH_URL.test(url);\n});\n\nvar _default = (0, _singlePlayer[\"default\"])(YouTube);\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _YouTube = require(\"./YouTube\");\n\nvar _SoundCloud = require(\"./SoundCloud\");\n\nvar _Vimeo = require(\"./Vimeo\");\n\nvar _Facebook = require(\"./Facebook\");\n\nvar _Streamable = require(\"./Streamable\");\n\nvar _Wistia = require(\"./Wistia\");\n\nvar _Twitch = require(\"./Twitch\");\n\nvar _DailyMotion = require(\"./DailyMotion\");\n\nvar _Mixcloud = require(\"./Mixcloud\");\n\nvar _FilePlayer = require(\"./FilePlayer\");\n\nvar _default = [_YouTube.YouTube, _SoundCloud.SoundCloud, _Vimeo.Vimeo, _Facebook.Facebook, _Streamable.Streamable, _Wistia.Wistia, _Twitch.Twitch, _DailyMotion.DailyMotion, _Mixcloud.Mixcloud, _FilePlayer.FilePlayer];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = renderPreloadPlayers;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Player = _interopRequireDefault(require(\"./Player\"));\n\nvar _YouTube = require(\"./players/YouTube\");\n\nvar _SoundCloud = require(\"./players/SoundCloud\");\n\nvar _Vimeo = require(\"./players/Vimeo\");\n\nvar _DailyMotion = require(\"./players/DailyMotion\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nvar PRELOAD_PLAYERS = [{\n Player: _YouTube.YouTube,\n configKey: 'youtube',\n url: 'https://www.youtube.com/watch?v=GlCmAC4MHek'\n}, {\n Player: _SoundCloud.SoundCloud,\n configKey: 'soundcloud',\n url: 'https://soundcloud.com/seucheu/john-cage-433-8-bit-version'\n}, {\n Player: _Vimeo.Vimeo,\n configKey: 'vimeo',\n url: 'https://vimeo.com/300970506'\n}, {\n Player: _DailyMotion.DailyMotion,\n configKey: 'dailymotion',\n url: 'http://www.dailymotion.com/video/xqdpyk'\n}];\n\nfunction renderPreloadPlayers(url, controls, config) {\n var players = [];\n\n var _iterator = _createForOfIteratorHelper(PRELOAD_PLAYERS),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var player = _step.value;\n\n if (!player.Player.canPlay(url) && config[player.configKey].preload) {\n players.push( /*#__PURE__*/_react[\"default\"].createElement(_Player[\"default\"], {\n key: player.Player.displayName,\n activePlayer: player.Player,\n url: player.url,\n controls: controls,\n playing: true,\n muted: true,\n display: \"none\"\n }));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return players;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEPRECATED_CONFIG_PROPS = exports.defaultProps = exports.propTypes = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar string = _propTypes[\"default\"].string,\n bool = _propTypes[\"default\"].bool,\n number = _propTypes[\"default\"].number,\n array = _propTypes[\"default\"].array,\n oneOfType = _propTypes[\"default\"].oneOfType,\n shape = _propTypes[\"default\"].shape,\n object = _propTypes[\"default\"].object,\n func = _propTypes[\"default\"].func,\n node = _propTypes[\"default\"].node;\nvar propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n light: oneOfType([bool, string]),\n playIcon: node,\n wrapper: oneOfType([string, func, shape({\n render: func.isRequired\n })]),\n config: shape({\n soundcloud: shape({\n options: object,\n preload: bool\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n preload: bool\n }),\n facebook: shape({\n appId: string,\n version: string,\n playerId: string\n }),\n dailymotion: shape({\n params: object,\n preload: bool\n }),\n vimeo: shape({\n playerOptions: object,\n preload: bool\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceDASH: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string\n }),\n wistia: shape({\n options: object\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object,\n playerId: string\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onProgress: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nexports.propTypes = propTypes;\nvar defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: '640px',\n height: '360px',\n style: {},\n progressInterval: 1000,\n playsinline: false,\n pip: false,\n light: false,\n wrapper: 'div',\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n preload: false\n },\n facebook: {\n appId: '1309697205772819',\n version: 'v3.3',\n playerId: null\n },\n dailymotion: {\n params: {\n api: 1,\n 'endscreen-enable': false\n },\n preload: false\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n preload: false\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n hlsOptions: {},\n hlsVersion: '0.13.1',\n dashVersion: '2.9.2'\n },\n wistia: {\n options: {}\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {},\n playerId: null\n }\n },\n onReady: function onReady() {},\n onStart: function onStart() {},\n onPlay: function onPlay() {},\n onPause: function onPause() {},\n onBuffer: function onBuffer() {},\n onBufferEnd: function onBufferEnd() {},\n onEnded: function onEnded() {},\n onError: function onError() {},\n onDuration: function onDuration() {},\n onSeek: function onSeek() {},\n onProgress: function onProgress() {},\n onEnablePIP: function onEnablePIP() {},\n onDisablePIP: function onDisablePIP() {}\n};\nexports.defaultProps = defaultProps;\nvar DEPRECATED_CONFIG_PROPS = ['soundcloudConfig', 'youtubeConfig', 'facebookConfig', 'dailymotionConfig', 'vimeoConfig', 'fileConfig', 'wistiaConfig'];\nexports.DEPRECATED_CONFIG_PROPS = DEPRECATED_CONFIG_PROPS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = createSinglePlayer;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _props = require(\"./props\");\n\nvar _utils = require(\"./utils\");\n\nvar _Player = _interopRequireDefault(require(\"./Player\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _createSuper(Derived) {\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (_isNativeReflectConstruct()) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar SUPPORTED_PROPS = Object.keys(_props.propTypes);\n\nfunction createSinglePlayer(activePlayer) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(SinglePlayer, _Component);\n\n var _super = _createSuper(SinglePlayer);\n\n function SinglePlayer() {\n var _this;\n\n _classCallCheck(this, SinglePlayer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"config\", (0, _utils.getConfig)(_this.props, _props.defaultProps, true));\n\n _defineProperty(_assertThisInitialized(_this), \"getDuration\", function () {\n if (!_this.player) return null;\n return _this.player.getDuration();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getCurrentTime\", function () {\n if (!_this.player) return null;\n return _this.player.getCurrentTime();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getSecondsLoaded\", function () {\n if (!_this.player) return null;\n return _this.player.getSecondsLoaded();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInternalPlayer\", function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'player';\n if (!_this.player) return null;\n return _this.player.getInternalPlayer(key);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"seekTo\", function (fraction, type) {\n if (!_this.player) return null;\n\n _this.player.seekTo(fraction, type);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (player) {\n _this.player = player;\n });\n\n return _this;\n }\n\n _createClass(SinglePlayer, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return !(0, _utils.isEqual)(this.props, nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.config = (0, _utils.getConfig)(this.props, _props.defaultProps);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$config$file = this.config.file,\n forceVideo = _this$config$file.forceVideo,\n forceAudio = _this$config$file.forceAudio,\n forceHLS = _this$config$file.forceHLS,\n forceDASH = _this$config$file.forceDASH;\n var skipCanPlay = forceVideo || forceAudio || forceHLS || forceDASH;\n\n if (!activePlayer.canPlay(this.props.url) && !skipCanPlay) {\n return null;\n }\n\n var _this$props = this.props,\n style = _this$props.style,\n width = _this$props.width,\n height = _this$props.height,\n Wrapper = _this$props.wrapper;\n var otherProps = (0, _utils.omit)(this.props, SUPPORTED_PROPS, _props.DEPRECATED_CONFIG_PROPS);\n return /*#__PURE__*/_react[\"default\"].createElement(Wrapper, _extends({\n style: _objectSpread({}, style, {\n width: width,\n height: height\n })\n }, otherProps), /*#__PURE__*/_react[\"default\"].createElement(_Player[\"default\"], _extends({}, this.props, {\n ref: this.ref,\n activePlayer: activePlayer,\n config: this.config\n })));\n }\n }]);\n\n return SinglePlayer;\n }(_react.Component), _defineProperty(_class, \"displayName\", \"\".concat(activePlayer.displayName, \"Player\")), _defineProperty(_class, \"propTypes\", _props.propTypes), _defineProperty(_class, \"defaultProps\", _props.defaultProps), _defineProperty(_class, \"canPlay\", activePlayer.canPlay), _temp;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseStartTime = parseStartTime;\nexports.parseEndTime = parseEndTime;\nexports.randomString = randomString;\nexports.queryString = queryString;\nexports.getSDK = getSDK;\nexports.getConfig = getConfig;\nexports.omit = omit;\nexports.callPlayer = callPlayer;\nexports.isObject = isObject;\nexports.isEqual = isEqual;\nexports.isMediaStream = isMediaStream;\n\nvar _react = require(\"react\");\n\nvar _loadScript = _interopRequireDefault(require(\"load-script\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nvar _props = require(\"./props\");\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e2) {\n throw _e2;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e3) {\n didErr = true;\n err = _e3;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar MATCH_START_QUERY = /[?](?:start|t)=([0-9hms]+)/;\nvar MATCH_END_QUERY = /[?]end=([0-9hms]+)/;\nvar MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nvar MATCH_NUMERIC = /^\\d+$/; // Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\n\nfunction parseTimeParam(url, pattern) {\n var match = url.match(pattern);\n\n if (match) {\n var stamp = match[1];\n\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n\n return undefined;\n}\n\nfunction parseTimeString(stamp) {\n var seconds = 0;\n var array = MATCH_START_STAMP.exec(stamp);\n\n while (array !== null) {\n var _array = array,\n _array2 = _slicedToArray(_array, 3),\n count = _array2[1],\n period = _array2[2];\n\n if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;\n if (period === 'm') seconds += parseInt(count, 10) * 60;\n if (period === 's') seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n\n return seconds;\n}\n\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\n\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n} // http://stackoverflow.com/a/38622545\n\n\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\n\nfunction queryString(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(key, \"=\").concat(object[key]);\n }).join('&');\n} // Util function to load an external SDK\n// or return the SDK if it is already loaded\n\n\nvar requests = {};\n\nfunction getSDK(url, sdkGlobal) {\n var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n return true;\n };\n var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript[\"default\"];\n\n if (window[sdkGlobal] && isLoaded(window[sdkGlobal])) {\n return Promise.resolve(window[sdkGlobal]);\n }\n\n return new Promise(function (resolve, reject) {\n // If we are already loading the SDK, add the resolve and reject\n // functions to the existing array of requests\n if (requests[url]) {\n requests[url].push({\n resolve: resolve,\n reject: reject\n });\n return;\n }\n\n requests[url] = [{\n resolve: resolve,\n reject: reject\n }];\n\n var onLoaded = function onLoaded(sdk) {\n // When loaded, resolve all pending request promises\n requests[url].forEach(function (request) {\n return request.resolve(sdk);\n });\n };\n\n if (sdkReady) {\n var previousOnReady = window[sdkReady];\n\n window[sdkReady] = function () {\n if (previousOnReady) previousOnReady();\n onLoaded(window[sdkGlobal]);\n };\n }\n\n fetchScript(url, function (err) {\n if (err) {\n // Loading the SDK failed – reject all requests and\n // reset the array of requests for this SDK\n requests[url].forEach(function (request) {\n return request.reject(err);\n });\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(window[sdkGlobal]);\n }\n });\n });\n}\n\nfunction getConfig(props, defaultProps, showWarning) {\n var config = (0, _deepmerge[\"default\"])(defaultProps.config, props.config);\n\n var _iterator = _createForOfIteratorHelper(_props.DEPRECATED_CONFIG_PROPS),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var p = _step.value;\n\n if (props[p]) {\n var key = p.replace(/Config$/, '');\n config = (0, _deepmerge[\"default\"])(config, _defineProperty({}, key, props[p]));\n\n if (showWarning) {\n var link = 'https://github.com/CookPete/react-player#config-prop';\n var message = \"ReactPlayer: %c\".concat(p, \" %cis deprecated, please use the config prop instead \\u2013 \").concat(link);\n console.warn(message, 'font-weight: bold', '');\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return config;\n}\n\nfunction omit(object) {\n var _ref;\n\n for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n arrays[_key - 1] = arguments[_key];\n }\n\n var omitKeys = (_ref = []).concat.apply(_ref, arrays);\n\n var output = {};\n var keys = Object.keys(object);\n\n for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {\n var key = _keys[_i2];\n\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n\n return output;\n}\n\nfunction callPlayer(method) {\n var _this$player; // Util method for calling a method on this.player\n // but guard against errors and console.warn instead\n\n\n if (!this.player || !this.player[method]) {\n var message = \"ReactPlayer: \".concat(this.constructor.displayName, \" player could not call %c\").concat(method, \"%c \\u2013 \");\n\n if (!this.player) {\n message += 'The player was not available';\n } else if (!this.player[method]) {\n message += 'The method was not available';\n }\n\n console.warn(message, 'font-weight: bold', '');\n return null;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$player = this.player)[method].apply(_this$player, args);\n}\n\nfunction isObject(val) {\n return val !== null && _typeof(val) === 'object';\n} // Deep comparison of two objects, but ignoring functions\n// and React elements, for use in shouldComponentUpdate\n\n\nfunction isEqual(a, b) {\n if (typeof a === 'function' && typeof b === 'function') {\n return true;\n }\n\n if ((0, _react.isValidElement)(a) && (0, _react.isValidElement)(b)) {\n return true;\n }\n\n if (a instanceof Array && b instanceof Array) {\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i !== a.length; i++) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n if (isObject(a) && isObject(b)) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n\n for (var _i3 = 0, _Object$keys = Object.keys(a); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return a === b;\n}\n\nfunction isMediaStream(url) {\n return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","// easing functions from \"Tween.js\"\nexports.linear = function (n) {\n return n;\n};\n\nexports.inQuad = function (n) {\n return n * n;\n};\n\nexports.outQuad = function (n) {\n return n * (2 - n);\n};\n\nexports.inOutQuad = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n;\n return -0.5 * (--n * (n - 2) - 1);\n};\n\nexports.inCube = function (n) {\n return n * n * n;\n};\n\nexports.outCube = function (n) {\n return --n * n * n + 1;\n};\n\nexports.inOutCube = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n;\n return 0.5 * ((n -= 2) * n * n + 2);\n};\n\nexports.inQuart = function (n) {\n return n * n * n * n;\n};\n\nexports.outQuart = function (n) {\n return 1 - --n * n * n * n;\n};\n\nexports.inOutQuart = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n;\n return -0.5 * ((n -= 2) * n * n * n - 2);\n};\n\nexports.inQuint = function (n) {\n return n * n * n * n * n;\n};\n\nexports.outQuint = function (n) {\n return --n * n * n * n * n + 1;\n};\n\nexports.inOutQuint = function (n) {\n n *= 2;\n if (n < 1) return 0.5 * n * n * n * n * n;\n return 0.5 * ((n -= 2) * n * n * n * n + 2);\n};\n\nexports.inSine = function (n) {\n return 1 - Math.cos(n * Math.PI / 2);\n};\n\nexports.outSine = function (n) {\n return Math.sin(n * Math.PI / 2);\n};\n\nexports.inOutSine = function (n) {\n return .5 * (1 - Math.cos(Math.PI * n));\n};\n\nexports.inExpo = function (n) {\n return 0 == n ? 0 : Math.pow(1024, n - 1);\n};\n\nexports.outExpo = function (n) {\n return 1 == n ? n : 1 - Math.pow(2, -10 * n);\n};\n\nexports.inOutExpo = function (n) {\n if (0 == n) return 0;\n if (1 == n) return 1;\n if ((n *= 2) < 1) return .5 * Math.pow(1024, n - 1);\n return .5 * (-Math.pow(2, -10 * (n - 1)) + 2);\n};\n\nexports.inCirc = function (n) {\n return 1 - Math.sqrt(1 - n * n);\n};\n\nexports.outCirc = function (n) {\n return Math.sqrt(1 - --n * n);\n};\n\nexports.inOutCirc = function (n) {\n n *= 2;\n if (n < 1) return -0.5 * (Math.sqrt(1 - n * n) - 1);\n return 0.5 * (Math.sqrt(1 - (n -= 2) * n) + 1);\n};\n\nexports.inBack = function (n) {\n var s = 1.70158;\n return n * n * ((s + 1) * n - s);\n};\n\nexports.outBack = function (n) {\n var s = 1.70158;\n return --n * n * ((s + 1) * n + s) + 1;\n};\n\nexports.inOutBack = function (n) {\n var s = 1.70158 * 1.525;\n if ((n *= 2) < 1) return 0.5 * (n * n * ((s + 1) * n - s));\n return 0.5 * ((n -= 2) * n * ((s + 1) * n + s) + 2);\n};\n\nexports.inBounce = function (n) {\n return 1 - exports.outBounce(1 - n);\n};\n\nexports.outBounce = function (n) {\n if (n < 1 / 2.75) {\n return 7.5625 * n * n;\n } else if (n < 2 / 2.75) {\n return 7.5625 * (n -= 1.5 / 2.75) * n + 0.75;\n } else if (n < 2.5 / 2.75) {\n return 7.5625 * (n -= 2.25 / 2.75) * n + 0.9375;\n } else {\n return 7.5625 * (n -= 2.625 / 2.75) * n + 0.984375;\n }\n};\n\nexports.inOutBounce = function (n) {\n if (n < .5) return exports.inBounce(n * 2) * .5;\n return exports.outBounce(n * 2 - 1) * .5 + .5;\n};\n\nexports.inElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return -(a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n};\n\nexports.outElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n return a * Math.pow(2, -10 * n) * Math.sin((n - s) * (2 * Math.PI) / p) + 1;\n};\n\nexports.inOutElastic = function (n) {\n var s,\n a = 0.1,\n p = 0.4;\n if (n === 0) return 0;\n if (n === 1) return 1;\n\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n } else s = p * Math.asin(1 / a) / (2 * Math.PI);\n\n if ((n *= 2) < 1) return -0.5 * (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p));\n return a * Math.pow(2, -10 * (n -= 1)) * Math.sin((n - s) * (2 * Math.PI) / p) * 0.5 + 1;\n}; // aliases\n\n\nexports['in-quad'] = exports.inQuad;\nexports['out-quad'] = exports.outQuad;\nexports['in-out-quad'] = exports.inOutQuad;\nexports['in-cube'] = exports.inCube;\nexports['out-cube'] = exports.outCube;\nexports['in-out-cube'] = exports.inOutCube;\nexports['in-quart'] = exports.inQuart;\nexports['out-quart'] = exports.outQuart;\nexports['in-out-quart'] = exports.inOutQuart;\nexports['in-quint'] = exports.inQuint;\nexports['out-quint'] = exports.outQuint;\nexports['in-out-quint'] = exports.inOutQuint;\nexports['in-sine'] = exports.inSine;\nexports['out-sine'] = exports.outSine;\nexports['in-out-sine'] = exports.inOutSine;\nexports['in-expo'] = exports.inExpo;\nexports['out-expo'] = exports.outExpo;\nexports['in-out-expo'] = exports.inOutExpo;\nexports['in-circ'] = exports.inCirc;\nexports['out-circ'] = exports.outCirc;\nexports['in-out-circ'] = exports.inOutCirc;\nexports['in-back'] = exports.inBack;\nexports['out-back'] = exports.outBack;\nexports['in-out-back'] = exports.inOutBack;\nexports['in-bounce'] = exports.inBounce;\nexports['out-bounce'] = exports.outBounce;\nexports['in-out-bounce'] = exports.inOutBounce;\nexports['in-elastic'] = exports.inElastic;\nexports['out-elastic'] = exports.outElastic;\nexports['in-out-elastic'] = exports.inOutElastic;","function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n;\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n\n return obj;\n}\n\nEmitter.prototype.on = Emitter.prototype.addEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || []).push(fn);\n return this;\n};\n\nEmitter.prototype.once = function (event, fn) {\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\nEmitter.prototype.off = Emitter.prototype.removeListener = Emitter.prototype.removeAllListeners = Emitter.prototype.removeEventListener = function (event, fn) {\n this._callbacks = this._callbacks || {}; // all\n\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this; // remove all handlers\n\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n } // remove specific handler\n\n\n var cb;\n\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n } // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n\n\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\nEmitter.prototype.emit = function (event) {\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1),\n callbacks = this._callbacks['$' + event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\nEmitter.prototype.listeners = function (event) {\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\nEmitter.prototype.hasListeners = function (event) {\n return !!this.listeners(event).length;\n};\n\nif (typeof module !== 'undefined') {\n module.exports = Emitter;\n}","var scroll = require('./scroll-to');\n\nfunction calculateScrollOffset(elem, additionalOffset, alignment) {\n var body = document.body,\n html = document.documentElement;\n var elemRect = elem.getBoundingClientRect();\n var clientHeight = html.clientHeight;\n var documentHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n additionalOffset = additionalOffset || 0;\n var scrollPosition;\n\n if (alignment === 'bottom') {\n scrollPosition = elemRect.bottom - clientHeight;\n } else if (alignment === 'middle') {\n scrollPosition = elemRect.bottom - clientHeight / 2 - elemRect.height / 2;\n } else {\n // top and default\n scrollPosition = elemRect.top;\n }\n\n var maxScrollPosition = documentHeight - clientHeight;\n return Math.min(scrollPosition + additionalOffset + window.pageYOffset, maxScrollPosition);\n}\n\nmodule.exports = function (elem, options) {\n options = options || {};\n if (typeof elem === 'string') elem = document.querySelector(elem);\n if (elem) return scroll(0, calculateScrollOffset(elem, options.offset, options.align), options);\n};","var Tween = require('./tween');\n\nvar raf = require('raf');\n\nfunction scroll() {\n var y = window.pageYOffset || document.documentElement.scrollTop;\n var x = window.pageXOffset || document.documentElement.scrollLeft;\n return {\n top: y,\n left: x\n };\n}\n\nfunction scrollTo(x, y, options) {\n options = options || {}; // start position\n\n var start = scroll(); // setup tween\n\n var tween = Tween(start).ease(options.ease || 'out-circ').to({\n top: y,\n left: x\n }).duration(options.duration || 1000); // scroll\n\n tween.update(function (o) {\n window.scrollTo(o.left | 0, o.top | 0);\n }); // handle end\n\n tween.on('end', function () {\n animate = function animate() {};\n }); // animate\n\n function animate() {\n raf(animate);\n tween.update();\n }\n\n animate();\n return tween;\n}\n\nmodule.exports = scrollTo;","var ease = require('./ease');\n\nvar Emitter = require('./emitter');\n\nfunction extend(obj, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) obj[key] = src[key];\n }\n\n return obj;\n}\n\nfunction Tween(obj) {\n if (!(this instanceof Tween)) return new Tween(obj);\n this._from = obj;\n this.ease('linear');\n this.duration(500);\n}\n\nEmitter(Tween.prototype);\n\nTween.prototype.reset = function () {\n this.isArray = Object.prototype.toString.call(this._from) === '[object Array]';\n this._curr = extend({}, this._from);\n this._done = false;\n this._start = Date.now();\n return this;\n};\n\nTween.prototype.to = function (obj) {\n this.reset();\n this._to = obj;\n return this;\n};\n\nTween.prototype.duration = function (ms) {\n this._duration = ms;\n return this;\n};\n\nTween.prototype.ease = function (fn) {\n fn = 'function' == typeof fn ? fn : ease[fn];\n if (!fn) throw new TypeError('invalid easing function');\n this._ease = fn;\n return this;\n};\n\nTween.prototype.stop = function () {\n this.stopped = true;\n this._done = true;\n this.emit('stop');\n this.emit('end');\n return this;\n};\n\nTween.prototype.step = function () {\n if (this._done) return;\n var duration = this._duration;\n var now = Date.now();\n var delta = now - this._start;\n var done = delta >= duration;\n\n if (done) {\n this._from = this._to;\n\n this._update(this._to);\n\n this._done = true;\n this.emit('end');\n return this;\n }\n\n var from = this._from;\n var to = this._to;\n var curr = this._curr;\n var fn = this._ease;\n var p = (now - this._start) / duration;\n var n = fn(p);\n\n if (this.isArray) {\n for (var i = 0; i < from.length; ++i) {\n curr[i] = from[i] + (to[i] - from[i]) * n;\n }\n\n this._update(curr);\n\n return this;\n }\n\n for (var k in from) {\n curr[k] = from[k] + (to[k] - from[k]) * n;\n }\n\n this._update(curr);\n\n return this;\n};\n\nTween.prototype.update = function (fn) {\n if (0 == arguments.length) return this.step();\n this._update = fn;\n return this;\n};\n\nmodule.exports = Tween;","//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AnchorLink = AnchorLink;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"../utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nAnchorLink.propTypes = {\n to: _propTypes[\"default\"].string.isRequired,\n title: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].string,\n stripHash: _propTypes[\"default\"].bool,\n gatsbyLinkProps: _propTypes[\"default\"].object,\n onAnchorLinkClick: _propTypes[\"default\"].func,\n children: _propTypes[\"default\"].node\n};\n\nfunction AnchorLink(_ref) {\n var to = _ref.to,\n title = _ref.title,\n children = _ref.children,\n className = _ref.className,\n _ref$stripHash = _ref.stripHash,\n stripHash = _ref$stripHash === void 0 ? false : _ref$stripHash,\n _ref$gatsbyLinkProps = _ref.gatsbyLinkProps,\n gatsbyLinkProps = _ref$gatsbyLinkProps === void 0 ? {} : _ref$gatsbyLinkProps,\n onAnchorLinkClick = _ref.onAnchorLinkClick;\n var onClickHandler = stripHash ? _utils.handleStrippedLinkClick : _utils.handleLinkClick;\n\n var linkProps = _objectSpread(_objectSpread({}, gatsbyLinkProps), {}, {\n /**\n * Spread optional gatsbyLinkProps object in fist, so our specific props will override\n */\n to: stripHash ? (0, _utils.stripHashedLocation)(to) : to,\n onClick: function onClick(e) {\n return onClickHandler(to, e, onAnchorLinkClick);\n }\n });\n /**\n * Optional props\n */\n\n\n if (title) linkProps.title = title;\n if (className) linkProps.className = className;\n return /*#__PURE__*/_react[\"default\"].createElement(_gatsby.Link, linkProps, children ? children : title);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INVALID_HASH = exports.IMPROPPER_FORMATTING = void 0;\nvar IMPROPPER_FORMATTING = 'Anchor path should contain an absolute root path `/` and selector `#` Ex: `/about#team`';\nexports.IMPROPPER_FORMATTING = IMPROPPER_FORMATTING;\nvar INVALID_HASH = 'Anchor Links plugin attempted to scroll to an invalid hash on route change.';\nexports.INVALID_HASH = INVALID_HASH;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"AnchorLink\", {\n enumerable: true,\n get: function get() {\n return _AnchorLink.AnchorLink;\n }\n});\n\nvar _AnchorLink = require(\"./components/AnchorLink\");","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.logWarning = logWarning;\nexports.scroller = scroller;\nexports.handleLinkClick = handleLinkClick;\nexports.handleStrippedLinkClick = handleStrippedLinkClick;\nexports.stripHashedLocation = stripHashedLocation;\nexports.checkHash = checkHash;\nexports.isDevelopment = exports.isBrowser = void 0;\n\nvar _scrollToElement = _interopRequireDefault(require(\"scroll-to-element\"));\n\nvar _gatsby = require(\"gatsby\");\n\nvar errorTypes = _interopRequireWildcard(require(\"./errors\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar isBrowser = typeof window !== 'undefined';\nexports.isBrowser = isBrowser;\nvar isDevelopment = process.env.NODE_ENV !== 'production';\nexports.isDevelopment = isDevelopment;\n\nfunction logWarning(message) {\n if (isDevelopment) console.warn(message);\n}\n\nfunction scroller(target) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n (0, _scrollToElement[\"default\"])(target, {\n duration: duration,\n offset: offset\n });\n}\n\nfunction handleLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n if (isBrowser && to.includes('#')) {\n var _to$split = to.split('#'),\n _to$split2 = _slicedToArray(_to$split, 2),\n anchorPath = _to$split2[0],\n anchor = _to$split2[1];\n\n if (window.location.pathname === (0, _gatsby.withPrefix)(anchorPath)) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction handleStrippedLinkClick(to, e, onAnchorLinkClick) {\n /**\n * Log warnings on click\n */\n var improperFormatting = !to.includes('/') || !to.includes('#');\n if (improperFormatting) logWarning(errorTypes.IMPROPPER_FORMATTING);\n\n var _to$split3 = to.split('#'),\n _to$split4 = _slicedToArray(_to$split3, 2),\n anchorPath = _to$split4[0],\n anchor = _to$split4[1];\n /**\n * Determine location, run scroller or set window variable\n */\n\n\n var isSamePage = isBrowser && window.location.pathname === anchorPath;\n var isDifferentPage = isBrowser && window.location.pathname !== anchorPath;\n\n if (isSamePage) {\n e.preventDefault();\n scroller(\"#\".concat(anchor), window.gatsby_scroll_offset, window.gatsby_scroll_duration);\n }\n\n if (isDifferentPage) {\n window.gatsby_scroll_hash = \"#\".concat(anchor);\n }\n\n if (onAnchorLinkClick) onAnchorLinkClick();\n}\n\nfunction stripHashedLocation(to) {\n return to.split('#')[0];\n}\n\nfunction checkHash(location, offset) {\n var hash = location.hash,\n selector = hash ? hash.substr(1) : null,\n validElement = selector ? document.getElementById(selector) : null;\n if (hash && Boolean(validElement)) scroller(hash, offset);else if (hash && selector && !validElement) logWarning(errorTypes.INVALID_HASH);\n}","import { Link } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport React from \"react\"\nimport classNames from \"classnames\"\nimport { AnchorLink } from \"gatsby-plugin-anchor-links\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faLongArrowLeft } from \"@fortawesome/pro-light-svg-icons/faLongArrowLeft\"\nimport { faFileDownload } from \"@fortawesome/pro-solid-svg-icons/faFileDownload\"\n\nconst Button = ({\n goBack,\n className,\n standalone,\n white,\n whiteMobile,\n border,\n minimal,\n contained,\n tel,\n href,\n buttonText,\n download,\n external,\n destination,\n appearance,\n anchor\n}) => {\n const handleGoBack = () => {\n window.history.back()\n }\n\n const btnClass = classNames(\"standard-button\", className, {\n standalone: standalone,\n \"go-back-button-top-left\": goBack,\n white: white || appearance === \"white\",\n border: border ? border : false,\n minimal: minimal || appearance === \"minimal\",\n contained: contained || appearance === \"contained\"\n })\n\n const backBtnClass = classNames(\"go-back-button\", className, {\n \"go-back-button\": true,\n \"go-back-button-top-left\": goBack,\n white: white ? white : false,\n \"white-mobile\": whiteMobile ? whiteMobile : false,\n minimal: minimal ? minimal : false\n })\n\n // for telephone links\n if (tel || destination === \"tel\") {\n return (\n \n {buttonText}\n \n )\n }\n // for external links\n if (external || destination === \"external\") {\n return (\n \n {buttonText}\n \n )\n }\n if (anchor || destination === \"anchor\") {\n let href = href\n if (href.charAt(href.length - 1) === \"/\")\n href = href.substring(0, href.length - 1)\n return (\n \n {buttonText}\n \n )\n }\n // for downloads\n if (download || destination === \"download\") {\n return (\n \n \n {buttonText}\n \n )\n }\n // Insert long left arrow for Back \"Button\"\n else if (goBack && !href) {\n return (\n \n \n {buttonText}\n \n )\n } else if (goBack) {\n return (\n \n \n {buttonText}\n \n )\n }\n // Classic Gatsby Link styled as a button; assumed to not be external\n else {\n let btnHref = href\n if (href.charAt(0) !== \"/\") btnHref = \"/\" + href\n if (href.charAt(href.length - 1) !== \"/\") btnHref = href + \"/\"\n return (\n \n {buttonText}\n \n )\n }\n}\n\nButton.propTypes = {\n standalone: PropTypes.bool,\n anchor: PropTypes.bool,\n minimal: PropTypes.bool,\n white: PropTypes.bool,\n border: PropTypes.bool,\n contained: PropTypes.bool,\n goBack: PropTypes.bool,\n download: PropTypes.bool,\n textAlign: PropTypes.string,\n href: PropTypes.string,\n buttonText: PropTypes.string,\n className: PropTypes.string\n}\n\nexport default Button\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\nimport classNames from \"classnames\"\n\nconst ButtonGroup = ({\n tight,\n isCentered,\n alignRight,\n alignLeft,\n reverse,\n children,\n className\n}) => {\n const buttonGroupClass = classNames(className, {\n \"button-group\": true,\n tight: tight,\n \"is-centered\": isCentered,\n \"align-right\": alignRight,\n \"align-left\": alignLeft,\n \"reverse-buttons-mobile\": reverse\n })\n return (\n \n {children}\n
\n )\n}\n\nButtonGroup.propTypes = {\n isCentered: PropTypes.bool,\n isCenteredMobile: PropTypes.bool,\n tight: PropTypes.bool,\n alignLeft: PropTypes.bool,\n alignRight: PropTypes.bool,\n children: PropTypes.node,\n reverse: PropTypes.bool\n}\n\nexport default ButtonGroup\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport Button from \"./Button\"\nimport ButtonGroup from \"./ButtonGroup\"\nimport TheaterVideo from \"@components/Theater/TheaterVideo\"\n\nexport default function ButtonGroupMap(props) {\n return (\n \n {props.buttons &&\n props.buttons.map(buttonObj => {\n let button = buttonObj.button\n if (button.appearance === \"video\") {\n return (\n \n )\n } else if (props.hyperlink) {\n return (\n \n {button.buttonText}\n \n )\n } else {\n return (\n \n )\n }\n })}\n \n )\n}\n\nButtonGroupMap.propTypes = {\n buttons: PropTypes.arrayOf(\n PropTypes.shape({\n button: PropTypes.shape({\n buttonText: PropTypes.string,\n href: PropTypes.string,\n youtube: PropTypes.string,\n appearance: PropTypes.string.isRequired,\n destination: PropTypes.string\n })\n })\n )\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\n\nconst Section = ({\n children,\n colorBack,\n smallSpacing,\n zeroTop,\n zeroBottom,\n zeroTopMobile,\n zeroBottomMobile,\n zeroTopDesktop,\n zeroBottomDesktop,\n className\n}) => {\n const wrapperClasses = classNames(className, {\n sctn: true,\n \"sctn--small\": smallSpacing,\n \"color-back\": colorBack,\n \"mt-0\": zeroTop && !colorBack,\n \"mb-0\": zeroBottom && !colorBack,\n \"pt-0\": zeroTop && colorBack,\n \"pb-0\": zeroBottom && colorBack,\n \"mt-0--mobile\": zeroTopMobile && !colorBack,\n \"mb-0--mobile\": zeroBottomMobile && !colorBack,\n \"pt-0--mobile\": zeroTopMobile && colorBack,\n \"pb-0--mobile\": zeroBottomMobile && colorBack,\n \"mt-0--desktop\": zeroTopDesktop && !colorBack,\n \"mb-0--desktop\": zeroBottomDesktop && !colorBack,\n \"pt-0--desktop\": zeroTopDesktop && colorBack,\n \"pb-0--desktop\": zeroBottomDesktop && colorBack\n })\n\n return {children}
\n}\n\nexport default Section\n\nSection.propTypes = {\n children: PropTypes.node.isRequired,\n colorBack: PropTypes.bool,\n smallSpacing: PropTypes.bool,\n zeroTop: PropTypes.bool,\n zeroBottom: PropTypes.bool\n}\n","import React from \"react\"\nimport classNames from \"classnames\"\n\nconst Columns = ({\n children,\n rowReverse,\n className,\n verticallyCentered,\n sideColumnsSize\n}) => {\n const mainClasses = classNames(\"columns\", className, {\n \"is-vcentered\": verticallyCentered,\n \"flex-row-reverse\": rowReverse\n })\n return (\n \n {sideColumnsSize &&
}\n {children}\n {sideColumnsSize &&
}\n
\n )\n}\n\nexport default Columns\n","import React, { Component } from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\n\nclass GeneralHours extends Component {\n constructor(props) {\n super(props)\n this.state = {\n dateLines: []\n }\n }\n\n componentDidMount() {\n this.sortDays(this.props.locationHours)\n }\n\n sortDays(arr) {\n if (!arr) throw \"No array of days to sort, \" + arr + \" was received.\"\n const groupBy = (items, key) =>\n items.reduce(\n (result, item) => ({\n ...result,\n [item[key]]: [...(result[item[key]] || []), item]\n }),\n {}\n )\n\n let newArr = []\n for (let i = 0; i < arr.length; i++) {\n let obj = arr[i]\n obj.combinedTime = `${obj.startTime}–${obj.endTime}`\n obj.shortWeekDay = whatShortWeekDay(obj.weekDay, this.props.language)\n obj.fullWeekDAy = whatWeekDay(obj.weekDay, this.props.language)\n newArr.push(obj)\n }\n\n const sortedDates = groupBy(newArr, \"combinedTime\")\n\n for (let i = 0; i < sortedDates.length; i++) {\n sortedDates[i].sort((a, b) => (a.weekDay > b.weekDay ? 1 : -1))\n }\n\n let dayLineArr = []\n let combinedTimeObjs = []\n\n for (let key in sortedDates) {\n const obj = sortedDates[key]\n let tempArr = []\n let tempArrFullObj = []\n for (let i = 0; i < obj.length; i++) {\n tempArr.push({\n shortWeekDay: obj[i].shortWeekDay,\n weekDay: obj[i].weekDay\n })\n tempArrFullObj.push(obj[i])\n }\n dayLineArr.push(tempArr)\n combinedTimeObjs.push(tempArrFullObj)\n tempArr = []\n tempArrFullObj = []\n }\n\n let dayLineDays = []\n let dayLineTimes = []\n\n function nonConsecutiveDays() {\n if (allDaysAreConsecutive(dayLineArr)) {\n for (let i = 0; i < dayLineArr.length; i++) {\n dayLineDays.push(joinWithDash(dayLineArr[i]))\n\n let tempDayTimes = combinedTimeObjs[i][0].combinedTime\n dayLineTimes.push(tempDayTimes)\n }\n } else {\n for (let i = 0; i < dayLineArr.length; i++) {\n if (dayLineArr[i].length === 1) {\n dayLineDays.push(dayLineArr[i][0].shortWeekDay + \": \")\n } else if (daysInLineAreConsecutive(dayLineArr[i])) {\n dayLineDays.push(joinWithDash(dayLineArr[i]))\n } else {\n dayLineDays.push(joinWithCommas(dayLineArr[i]))\n }\n\n let tempDayTimes = combinedTimeObjs[i][0].combinedTime\n dayLineTimes.push(tempDayTimes)\n }\n }\n\n let finalDateLines = []\n\n for (let i = 0; i < dayLineDays.length; i++) {\n let obj = {}\n\n obj.days = dayLineDays[i]\n obj.times = dayLineTimes[i]\n finalDateLines.push(obj)\n }\n\n return finalDateLines\n }\n\n // Only one array of days\n function allDaysAreConsecutive(days) {\n if (days.length === 1) {\n return true\n }\n return false\n }\n\n // Join length of consecutive days with dash\n function joinWithDash(dayLineArr) {\n let tempDayLine =\n dayLineArr[0].shortWeekDay +\n \"–\" +\n dayLineArr[dayLineArr.length - 1].shortWeekDay\n tempDayLine += \": \"\n return tempDayLine\n }\n\n // Join non-all consecutive days with dash\n function joinWithCommas(dayLineArr) {\n let tempDayLine = []\n for (let j = 0; j < dayLineArr.length; j++) {\n tempDayLine.push(dayLineArr[j].shortWeekDay)\n }\n tempDayLine = tempDayLine.join(\", \")\n tempDayLine += \": \"\n return tempDayLine\n }\n\n // Check if every day - 1 is equal to the day before\n function daysInLineAreConsecutive(daysObj) {\n let consecutive = true\n for (let j = 1; j < daysObj.length; j++) {\n if (\n parseInt(daysObj[j - 1].weekDay) + 1 !==\n parseInt(daysObj[j].weekDay)\n ) {\n consecutive = false\n }\n }\n return consecutive\n }\n\n // One-off for Mon-Fri, needs to be re-worked\n function allConsecutiveDays() {\n let startDay = combinedTimeObjs[0][0]\n let endDay = combinedTimeObjs[0][0]\n\n for (let i = 0; i < combinedTimeObjs[0].length - 1; i++) {\n if (\n parseInt(combinedTimeObjs[0][i + 1].weekDay) ===\n parseInt(endDay.weekDay) + 1\n ) {\n endDay = combinedTimeObjs[0][i + 1]\n }\n }\n\n let tempDayLine = startDay.shortWeekDay + \"–\" + endDay.shortWeekDay + \": \"\n let tempDayTimes = combinedTimeObjs[0][0].combinedTime\n dayLineDays.push(tempDayLine)\n dayLineTimes.push(tempDayTimes)\n let finalDateLines = []\n let obj = {}\n\n obj.days = dayLineDays[0]\n obj.times = dayLineTimes[0]\n finalDateLines.push(obj)\n\n return finalDateLines\n }\n\n // allConsecutiveDays();\n\n let finalDateLines = nonConsecutiveDays()\n // let finalDateLines = allConsecutiveDays()\n\n function linkConsecutiveDays(days) {}\n\n this.setState({\n dateLines: finalDateLines\n })\n\n function whatWeekDay(date, language) {\n let day = date\n if (language && language === \"es\") {\n switch (day) {\n case \"0\":\n day = \"Domingo\"\n return day\n\n case \"1\":\n day = \"Lunes\"\n return day\n\n case \"2\":\n day = \"Martes\"\n return day\n\n case \"3\":\n day = \"Miércoles\"\n return day\n\n case \"4\":\n day = \"Jueves\"\n return day\n\n case \"5\":\n day = \"Viernes\"\n return day\n\n case \"6\":\n day = \"Sábado\"\n return day\n }\n }\n switch (day) {\n case \"0\":\n day = \"Sunday\"\n return day\n\n case \"1\":\n day = \"Monday\"\n return day\n\n case \"2\":\n day = \"Tuesday\"\n return day\n\n case \"3\":\n day = \"Wednesday\"\n return day\n\n case \"4\":\n day = \"Thursday\"\n return day\n\n case \"5\":\n day = \"Friday\"\n return day\n\n case \"6\":\n day = \"Saturday\"\n return day\n }\n }\n\n function whatShortWeekDay(date, language) {\n let day = date\n if (language && language === \"es\") {\n switch (day) {\n case \"0\":\n day = \"Do\"\n return day\n\n case \"1\":\n day = \"Lu\"\n return day\n\n case \"2\":\n day = \"Ma\"\n return day\n\n case \"3\":\n day = \"Mi\"\n return day\n\n case \"4\":\n day = \"Ju\"\n return day\n\n case \"5\":\n day = \"Vi\"\n return day\n\n case \"6\":\n day = \"Sa\"\n return day\n }\n }\n switch (day) {\n case \"0\":\n day = \"Sun\"\n return day\n\n case \"1\":\n day = \"Mon\"\n return day\n\n case \"2\":\n day = \"Tues\"\n return day\n\n case \"3\":\n day = \"Wed\"\n return day\n\n case \"4\":\n day = \"Thur\"\n return day\n\n case \"5\":\n day = \"Fri\"\n return day\n\n case \"6\":\n day = \"Sat\"\n return day\n }\n }\n }\n\n render() {\n let dateLines = this.state.dateLines.map((line, i) => (\n \n {line.times === \"–\" ? (\n <>>\n ) : (\n \n {line.days}\n {line.times}\n
\n \n )}\n \n ))\n\n const wrapperClass = classNames(this.props.className, {\n \"footer-hours\": this.props.footer,\n \"contact-sidebar-block\": this.props.contact\n })\n\n const paragraphClassName = classNames({\n small: this.props.footer,\n \"contact-hours\": this.props.contact\n })\n\n return (\n \n {this.props.heading &&
{this.props.heading}
}\n
{dateLines}
\n
\n )\n }\n}\n\nconst requiredPropsCheck = (props, propName, componentName) => {\n if (!props.footer && !props.contact) {\n return new Error(\n `One of 'footer' or 'contact' is required by '${componentName}' component.`\n )\n }\n if (props.footer && typeof props.footer !== \"boolean\") {\n return new Error(`'footer' is not a boolean`)\n }\n if (props.contact && typeof props.contact !== \"boolean\") {\n return new Error(`'contact' is not a boolean`)\n }\n}\n\nGeneralHours.propTypes = {\n className: PropTypes.string,\n locationHours: PropTypes.array.isRequired,\n language: PropTypes.string\n}\n\nexport default GeneralHours\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import _classCallCheck from \"/codebuild/output/src1535430529/src/gatsby-gofs/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/codebuild/output/src1535430529/src/gatsby-gofs/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _slicedToArray from \"/codebuild/output/src1535430529/src/gatsby-gofs/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport \"core-js/modules/es.string.trim-start.js\";\nimport \"core-js/modules/es.string.trim-end.js\";\n\n/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\nfunction getDefaults() {\n return {\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n}\n\nvar defaults = getDefaults();\n\nfunction changeDefaults(newDefaults) {\n defaults = newDefaults;\n}\n/**\n * Helpers\n */\n\n\nvar escapeTest = /[&<>\"']/;\nvar escapeReplace = /[&<>\"']/g;\nvar escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\nvar escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\nvar escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\nvar getEscapeReplacement = function getEscapeReplacement(ch) {\n return escapeReplacements[ch];\n};\n\nfunction _escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n}\n\nvar unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n/**\n * @param {string} html\n */\n\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, function (_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n\n return '';\n });\n}\n\nvar caret = /(^|[^\\[])\\^/g;\n/**\n * @param {string | RegExp} regex\n * @param {string} opt\n */\n\nfunction edit(regex, opt) {\n regex = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n var obj = {\n replace: function replace(name, val) {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: function getRegex() {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n}\n\nvar nonWordAndColonTest = /[^\\w:]/g;\nvar originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n/**\n * @param {boolean} sanitize\n * @param {string} base\n * @param {string} href\n */\n\nfunction cleanUrl(sanitize, base, href) {\n if (sanitize) {\n var prot;\n\n try {\n prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n } catch (e) {\n return null;\n }\n\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n\n return href;\n}\n\nvar baseUrls = {};\nvar justDomain = /^[^:]+:\\/*[^/]*$/;\nvar protocol = /^([^:]+:)[\\s\\S]*$/;\nvar domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n/**\n * @param {string} base\n * @param {string} href\n */\n\nfunction resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n\n base = baseUrls[' ' + base];\n var relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n}\n\nvar noopTest = {\n exec: function noopTest() {}\n};\n\nfunction merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n}\n\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n\n while (--curr >= 0 && str[curr] === '\\\\') {\n escaped = !escaped;\n }\n\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n\n if (!cells[0].trim()) {\n cells.shift();\n }\n\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) {\n cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param {string} str\n * @param {string} c\n * @param {boolean} invert Remove suffix of non-c chars instead. Default falsey.\n */\n\n\nfunction rtrim(str, c, invert) {\n var l = str.length;\n\n if (l === 0) {\n return '';\n } // Length of suffix matching the invert condition.\n\n\n var suffLen = 0; // Step left until we fail to match the invert condition.\n\n while (suffLen < l) {\n var currChar = str.charAt(l - suffLen - 1);\n\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n}\n\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n var l = str.length;\n var level = 0,\n i = 0;\n\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n\n if (level < 0) {\n return i;\n }\n }\n }\n\n return -1;\n}\n\nfunction checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n} // copied from https://stackoverflow.com/a/5450113/806777\n\n/**\n * @param {string} pattern\n * @param {number} count\n */\n\n\nfunction repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n\n var result = '';\n\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n\n count >>= 1;\n pattern += pattern;\n }\n\n return result + pattern;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n var href = link.href;\n var title = link.title ? _escape(link.title) : null;\n var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n var token = {\n type: 'link',\n raw: raw,\n href: href,\n title: title,\n text: text,\n tokens: lexer.inlineTokens(text, [])\n };\n lexer.state.inLink = false;\n return token;\n }\n\n return {\n type: 'image',\n raw: raw,\n href: href,\n title: title,\n text: _escape(text)\n };\n}\n\nfunction indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(function (node) {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var _matchIndentInNode = _slicedToArray(matchIndentInNode, 1),\n indentInNode = _matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join('\\n');\n}\n/**\n * Tokenizer\n */\n\n\nvar Tokenizer = /*#__PURE__*/function () {\n function Tokenizer(options) {\n _classCallCheck(this, Tokenizer);\n\n this.options = options || defaults;\n }\n\n _createClass(Tokenizer, [{\n key: \"space\",\n value: function space(src) {\n var cap = this.rules.block.newline.exec(src);\n\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n }, {\n key: \"code\",\n value: function code(src) {\n var cap = this.rules.block.code.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim(text, '\\n') : text\n };\n }\n }\n }, {\n key: \"fences\",\n value: function fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw: raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: text\n };\n }\n }\n }, {\n key: \"heading\",\n value: function heading(src) {\n var cap = this.rules.block.heading.exec(src);\n\n if (cap) {\n var text = cap[2].trim(); // remove trailing #s\n\n if (/#$/.test(text)) {\n var trimmed = rtrim(text, '#');\n\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n var token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n }, {\n key: \"hr\",\n value: function hr(src) {\n var cap = this.rules.block.hr.exec(src);\n\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n }, {\n key: \"blockquote\",\n value: function blockquote(src) {\n var cap = this.rules.block.blockquote.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text: text\n };\n }\n }\n }, {\n key: \"list\",\n value: function list(src) {\n var cap = this.rules.block.list.exec(src);\n\n if (cap) {\n var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, nextLine, rawLine, itemContents, endEarly;\n var bull = cap[1].trim();\n var isordered = bull.length > 1;\n var list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? \"\\\\d{1,9}\\\\\".concat(bull.slice(-1)) : \"\\\\\".concat(bull);\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n } // Get next list item\n\n\n var itemRegex = new RegExp(\"^( {0,3}\".concat(bull, \")((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))\")); // Check if current bullet point can start a new List Item\n\n while (src) {\n endEarly = false;\n\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) {\n // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) {\n // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n var nextBulletRegex = new RegExp(\"^ {0,\".concat(Math.min(3, indent - 1), \"}(?:[*+-]|\\\\d{1,9}[.)])((?: [^\\\\n]*)?(?:\\\\n|$))\"));\n var hrRegex = new RegExp(\"^ {0,\".concat(Math.min(3, indent - 1), \"}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)\"));\n var fencesBeginRegex = new RegExp(\"^ {0,\".concat(Math.min(3, indent - 1), \"}(?:```|~~~)\"));\n var headingBeginRegex = new RegExp(\"^ {0,\".concat(Math.min(3, indent - 1), \"}#\")); // Check if following lines should be included in List Item\n\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine; // Re-align to follow commonmark nesting rules\n\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n } // End list item if found code fences\n\n\n if (fencesBeginRegex.test(line)) {\n break;\n } // End list item if found start of new heading\n\n\n if (headingBeginRegex.test(line)) {\n break;\n } // End list item if found start of new bullet\n\n\n if (nextBulletRegex.test(line)) {\n break;\n } // Horizontal rule found\n\n\n if (hrRegex.test(src)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) {\n // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) {\n // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else {\n // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) {\n // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n } // Check for task list items\n\n\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n list.raw += raw;\n } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n\n\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first\n\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n var spacers = list.items[i].tokens.filter(function (t) {\n return t.type === 'space';\n });\n var hasMultipleLineBreaks = spacers.every(function (t) {\n var chars = t.raw.split('');\n var lineBreaks = 0;\n\n var _iterator = _createForOfIteratorHelper(chars),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var char = _step.value;\n\n if (char === '\\n') {\n lineBreaks += 1;\n }\n\n if (lineBreaks > 1) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n }\n }, {\n key: \"html\",\n value: function html(src) {\n var cap = this.rules.block.html.exec(src);\n\n if (cap) {\n var token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n\n if (this.options.sanitize) {\n token.type = 'paragraph';\n token.text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]);\n token.tokens = [];\n this.lexer.inline(token.text, token.tokens);\n }\n\n return token;\n }\n }\n }, {\n key: \"def\",\n value: function def(src) {\n var cap = this.rules.block.def.exec(src);\n\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag: tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n }\n }, {\n key: \"table\",\n value: function table(src) {\n var cap = this.rules.block.table.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells(cap[1]).map(function (c) {\n return {\n text: c\n };\n }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n var l = item.align.length;\n var i, j, k, row;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {\n return {\n text: c\n };\n });\n } // parse child tokens inside headers and cells\n // header child tokens\n\n\n l = item.header.length;\n\n for (j = 0; j < l; j++) {\n item.header[j].tokens = [];\n this.lexer.inline(item.header[j].text, item.header[j].tokens);\n } // cell child tokens\n\n\n l = item.rows.length;\n\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n\n for (k = 0; k < row.length; k++) {\n row[k].tokens = [];\n this.lexer.inline(row[k].text, row[k].tokens);\n }\n }\n\n return item;\n }\n }\n }\n }, {\n key: \"lheading\",\n value: function lheading(src) {\n var cap = this.rules.block.lheading.exec(src);\n\n if (cap) {\n var token = {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n }, {\n key: \"paragraph\",\n value: function paragraph(src) {\n var cap = this.rules.block.paragraph.exec(src);\n\n if (cap) {\n var token = {\n type: 'paragraph',\n raw: cap[0],\n text: cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n }, {\n key: \"text\",\n value: function text(src) {\n var cap = this.rules.block.text.exec(src);\n\n if (cap) {\n var token = {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: []\n };\n this.lexer.inline(token.text, token.tokens);\n return token;\n }\n }\n }, {\n key: \"escape\",\n value: function escape(src) {\n var cap = this.rules.inline.escape.exec(src);\n\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: _escape(cap[1])\n };\n }\n }\n }, {\n key: \"tag\",\n value: function tag(src) {\n var cap = this.rules.inline.tag.exec(src);\n\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize ? 'text' : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0]\n };\n }\n }\n }, {\n key: \"link\",\n value: function link(src) {\n var cap = this.rules.inline.link.exec(src);\n\n if (cap) {\n var trimmedUrl = cap[2].trim();\n\n if (!this.options.pedantic && /^$/.test(trimmedUrl)) {\n return;\n } // ending angle bracket cannot be escaped\n\n\n var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n var lastParenIndex = findClosingBracket(cap[2], '()');\n\n if (lastParenIndex > -1) {\n var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n var linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n\n var href = cap[2];\n var title = '';\n\n if (this.options.pedantic) {\n // split pedantic href and title\n var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n\n if (/^$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n }, {\n key: \"reflink\",\n value: function reflink(src, links) {\n var cap;\n\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n\n if (!link || !link.href) {\n var text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text: text\n };\n }\n\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n }, {\n key: \"emStrong\",\n value: function emStrong(src, maskedSrc) {\n var prevChar = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return;\n var nextChar = match[1] || match[2] || '';\n\n if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n var lLength = match[0].length - 1;\n var rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)\n\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***\n\n if (Math.min(lLength, rLength) % 2) {\n var _text = src.slice(1, lLength + match.index + rLength);\n\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: _text,\n tokens: this.lexer.inlineTokens(_text, [])\n };\n } // Create 'strong' if smallest delimiter has even char count. **a***\n\n\n var text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: text,\n tokens: this.lexer.inlineTokens(text, [])\n };\n }\n }\n }\n }, {\n key: \"codespan\",\n value: function codespan(src) {\n var cap = this.rules.inline.code.exec(src);\n\n if (cap) {\n var text = cap[2].replace(/\\n/g, ' ');\n var hasNonSpaceChars = /[^ ]/.test(text);\n var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n\n text = _escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text: text\n };\n }\n }\n }, {\n key: \"br\",\n value: function br(src) {\n var cap = this.rules.inline.br.exec(src);\n\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n }, {\n key: \"del\",\n value: function del(src) {\n var cap = this.rules.inline.del.exec(src);\n\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2], [])\n };\n }\n }\n }, {\n key: \"autolink\",\n value: function autolink(src, mangle) {\n var cap = this.rules.inline.autolink.exec(src);\n\n if (cap) {\n var text, href;\n\n if (cap[2] === '@') {\n text = _escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = _escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n }\n }, {\n key: \"url\",\n value: function url(src, mangle) {\n var cap;\n\n if (cap = this.rules.inline.url.exec(src)) {\n var text, href;\n\n if (cap[2] === '@') {\n text = _escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n var prevCapZero;\n\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n\n text = _escape(cap[0]);\n\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n }\n }, {\n key: \"inlineText\",\n value: function inlineText(src, smartypants) {\n var cap = this.rules.inline.text.exec(src);\n\n if (cap) {\n var text;\n\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : _escape(cap[0]) : cap[0];\n } else {\n text = _escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n\n return {\n type: 'text',\n raw: cap[0],\n text: text\n };\n }\n }\n }]);\n\n return Tokenizer;\n}();\n/**\n * Block-Level Grammar\n */\n\n\nvar block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?([^\\s>]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n};\nblock._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nblock._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\nblock.def = edit(block.def).replace('label', block._label).replace('title', block._title).getRegex();\nblock.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nblock.listItemStart = edit(/^( *)(bull) */).replace('bull', block.bullet).getRegex();\nblock.list = edit(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\nblock._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\nblock._comment = /|$)/;\nblock.html = edit(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nblock.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n.replace('|table', '').replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n.replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n.getRegex();\nblock.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n/**\n * Normal Block Grammar\n */\n\nblock.normal = merge({}, block);\n/**\n * GFM Block Grammar\n */\n\nblock.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n});\nblock.gfm.table = edit(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n.replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n.getRegex();\nblock.gfm.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n.replace('table', block.gfm.table) // interrupt paragraphs with table\n.replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n.replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n.getRegex();\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\nblock.pedantic = merge({}, block.normal, {\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+?\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n paragraph: edit(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n});\n/**\n * Inline-Level Grammar\n */\n\nvar inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment' + '|^[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan inside strong () Consume to delim (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[^*]+(?=[^*])|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\ninline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, \n\ninline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\ninline.escapedEmSt = /\\\\\\*|\\\\_/g;\ninline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\ninline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\ninline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\ninline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\ninline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\ninline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\ninline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\ninline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\ninline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\ninline.tag = edit(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\ninline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\ninline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\ninline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\ninline.link = edit(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\ninline.reflink = edit(inline.reflink).replace('label', inline._label).replace('ref', block._label).getRegex();\ninline.nolink = edit(inline.nolink).replace('ref', block._label).getRegex();\ninline.reflinkSearch = edit(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n/**\n * Normal Inline Grammar\n */\n\ninline.normal = merge({}, inline);\n/**\n * Pedantic Inline Grammar\n */\n\ninline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n});\n/**\n * GFM Inline Grammar\n */\n\ninline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n\n out += '' + ch + ';';\n }\n\n return out;\n}\n/**\n * Block Lexer\n */\n\n\nvar Lexer = /*#__PURE__*/function () {\n function Lexer(options) {\n _classCallCheck(this, Lexer);\n\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n var rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n\n\n _createClass(Lexer, [{\n key: \"lex\",\n value:\n /**\n * Preprocessing\n */\n function lex(src) {\n src = src.replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n var next;\n\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n /**\n * Lexing\n */\n\n }, {\n key: \"blockTokens\",\n value: function blockTokens(src) {\n var _this = this;\n\n var tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n } else {\n src = src.replace(/^( *)(\\t+)/gm, function (_, leading, tabs) {\n return leading + ' '.repeat(tabs.length);\n });\n }\n\n var token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // newline\n\n\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n\n continue;\n } // code\n\n\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // fences\n\n\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // heading\n\n\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // hr\n\n\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // blockquote\n\n\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // list\n\n\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // html\n\n\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // def\n\n\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n\n continue;\n } // table (gfm)\n\n\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // lheading\n\n\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startBlock) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this.options.extensions.startBlock.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n } // text\n\n\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n }\n }, {\n key: \"inline\",\n value: function inline(src, tokens) {\n this.inlineQueue.push({\n src: src,\n tokens: tokens\n });\n }\n /**\n * Lexing/Compiling\n */\n\n }, {\n key: \"inlineTokens\",\n value: function inlineTokens(src) {\n var _this2 = this;\n\n var tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong\n\n var maskedSrc = src;\n var match;\n var keepPrevChar, prevChar; // Mask out reflinks\n\n if (this.tokens.links) {\n var links = Object.keys(this.tokens.links);\n\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n } // Mask out other blocks\n\n\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n } // Mask out escaped em & strong delimiters\n\n\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n\n keepPrevChar = false; // extensions\n\n if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this2\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // escape\n\n\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // tag\n\n\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // link\n\n\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // reflink, nolink\n\n\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // em & strong\n\n\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // code\n\n\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // br\n\n\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // del (gfm)\n\n\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // autolink\n\n\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // url (gfm)\n\n\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startInline) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this2.options.extensions.startInline.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n }\n }], [{\n key: \"rules\",\n get: function get() {\n return {\n block: block,\n inline: inline\n };\n }\n /**\n * Static Lex Method\n */\n\n }, {\n key: \"lex\",\n value: function lex(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n\n }, {\n key: \"lexInline\",\n value: function lexInline(src, options) {\n var lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n }]);\n\n return Lexer;\n}();\n/**\n * Renderer\n */\n\n\nvar Renderer = /*#__PURE__*/function () {\n function Renderer(options) {\n _classCallCheck(this, Renderer);\n\n this.options = options || defaults;\n }\n\n _createClass(Renderer, [{\n key: \"code\",\n value: function code(_code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n\n if (this.options.highlight) {\n var out = this.options.highlight(_code, lang);\n\n if (out != null && out !== _code) {\n escaped = true;\n _code = out;\n }\n }\n\n _code = _code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '' + (escaped ? _code : _escape(_code, true)) + '
\\n';\n }\n\n return '' + (escaped ? _code : _escape(_code, true)) + '
\\n';\n }\n /**\n * @param {string} quote\n */\n\n }, {\n key: \"blockquote\",\n value: function blockquote(quote) {\n return \"\\n\".concat(quote, \"
\\n\");\n }\n }, {\n key: \"html\",\n value: function html(_html) {\n return _html;\n }\n /**\n * @param {string} text\n * @param {string} level\n * @param {string} raw\n * @param {any} slugger\n */\n\n }, {\n key: \"heading\",\n value: function heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n var id = this.options.headerPrefix + slugger.slug(raw);\n return \"\").concat(text, \"\\n\");\n } // ignore IDs\n\n\n return \"\").concat(text, \"\\n\");\n }\n }, {\n key: \"hr\",\n value: function hr() {\n return this.options.xhtml ? '
\\n' : '
\\n';\n }\n }, {\n key: \"list\",\n value: function list(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '' + type + '>\\n';\n }\n /**\n * @param {string} text\n */\n\n }, {\n key: \"listitem\",\n value: function listitem(text) {\n return \"\".concat(text, \"\\n\");\n }\n }, {\n key: \"checkbox\",\n value: function checkbox(checked) {\n return ' ';\n }\n /**\n * @param {string} text\n */\n\n }, {\n key: \"paragraph\",\n value: function paragraph(text) {\n return \"\".concat(text, \"
\\n\");\n }\n /**\n * @param {string} header\n * @param {string} body\n */\n\n }, {\n key: \"table\",\n value: function table(header, body) {\n if (body) body = \"\".concat(body, \"\");\n return '\\n' + '\\n' + header + '\\n' + body + '
\\n';\n }\n /**\n * @param {string} content\n */\n\n }, {\n key: \"tablerow\",\n value: function tablerow(content) {\n return \"\\n\".concat(content, \"
\\n\");\n }\n }, {\n key: \"tablecell\",\n value: function tablecell(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align ? \"<\".concat(type, \" align=\\\"\").concat(flags.align, \"\\\">\") : \"<\".concat(type, \">\");\n return tag + content + \"\".concat(type, \">\\n\");\n }\n /**\n * span level renderer\n * @param {string} text\n */\n\n }, {\n key: \"strong\",\n value: function strong(text) {\n return \"\".concat(text, \"\");\n }\n /**\n * @param {string} text\n */\n\n }, {\n key: \"em\",\n value: function em(text) {\n return \"\".concat(text, \"\");\n }\n /**\n * @param {string} text\n */\n\n }, {\n key: \"codespan\",\n value: function codespan(text) {\n return \"\".concat(text, \"
\");\n }\n }, {\n key: \"br\",\n value: function br() {\n return this.options.xhtml ? '
' : '
';\n }\n /**\n * @param {string} text\n */\n\n }, {\n key: \"del\",\n value: function del(text) {\n return \"\".concat(text, \"\");\n }\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n\n }, {\n key: \"link\",\n value: function link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '' + text + '';\n return out;\n }\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n\n }, {\n key: \"image\",\n value: function image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = \"
' : '>';\n return out;\n }\n }, {\n key: \"text\",\n value: function text(_text2) {\n return _text2;\n }\n }]);\n\n return Renderer;\n}();\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\n\n\nvar TextRenderer = /*#__PURE__*/function () {\n function TextRenderer() {\n _classCallCheck(this, TextRenderer);\n }\n\n _createClass(TextRenderer, [{\n key: \"strong\",\n value: // no need for block level renderers\n function strong(text) {\n return text;\n }\n }, {\n key: \"em\",\n value: function em(text) {\n return text;\n }\n }, {\n key: \"codespan\",\n value: function codespan(text) {\n return text;\n }\n }, {\n key: \"del\",\n value: function del(text) {\n return text;\n }\n }, {\n key: \"html\",\n value: function html(text) {\n return text;\n }\n }, {\n key: \"text\",\n value: function text(_text3) {\n return _text3;\n }\n }, {\n key: \"link\",\n value: function link(href, title, text) {\n return '' + text;\n }\n }, {\n key: \"image\",\n value: function image(href, title, text) {\n return '' + text;\n }\n }, {\n key: \"br\",\n value: function br() {\n return '';\n }\n }]);\n\n return TextRenderer;\n}();\n/**\n * Slugger generates header id\n */\n\n\nvar Slugger = /*#__PURE__*/function () {\n function Slugger() {\n _classCallCheck(this, Slugger);\n\n this.seen = {};\n }\n /**\n * @param {string} value\n */\n\n\n _createClass(Slugger, [{\n key: \"serialize\",\n value: function serialize(value) {\n return value.toLowerCase().trim() // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n }\n /**\n * Finds the next safe (unique) slug to use\n * @param {string} originalSlug\n * @param {boolean} isDryRun\n */\n\n }, {\n key: \"getNextSafeSlug\",\n value: function getNextSafeSlug(originalSlug, isDryRun) {\n var slug = originalSlug;\n var occurenceAccumulator = 0;\n\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n\n return slug;\n }\n /**\n * Convert string to unique id\n * @param {object} [options]\n * @param {boolean} [options.dryrun] Generates the next unique slug without\n * updating the internal accumulator.\n */\n\n }, {\n key: \"slug\",\n value: function slug(value) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n }\n }]);\n\n return Slugger;\n}();\n/**\n * Parsing & Compiling\n */\n\n\nvar Parser = /*#__PURE__*/function () {\n function Parser(options) {\n _classCallCheck(this, Parser);\n\n this.options = options || defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n /**\n * Static Parse Method\n */\n\n\n _createClass(Parser, [{\n key: \"parse\",\n value:\n /**\n * Parse Loop\n */\n function parse(tokens) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n\n case 'heading':\n {\n out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n continue;\n }\n\n case 'code':\n {\n out += this.renderer.code(token.text, token.lang, token.escaped);\n continue;\n }\n\n case 'table':\n {\n header = ''; // header\n\n cell = '';\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {\n header: true,\n align: token.align[j]\n });\n }\n\n header += this.renderer.tablerow(cell);\n body = '';\n l2 = token.rows.length;\n\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n cell = '';\n l3 = row.length;\n\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {\n header: false,\n align: token.align[k]\n });\n }\n\n body += this.renderer.tablerow(cell);\n }\n\n out += this.renderer.table(header, body);\n continue;\n }\n\n case 'blockquote':\n {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n\n case 'list':\n {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n body = '';\n\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n itemBody = '';\n\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n\n case 'html':\n {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n\n case 'paragraph':\n {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n\n case 'text':\n {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n\n }, {\n key: \"parseInline\",\n value: function parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n var out = '',\n i,\n token,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape':\n {\n out += renderer.text(token.text);\n break;\n }\n\n case 'html':\n {\n out += renderer.html(token.text);\n break;\n }\n\n case 'link':\n {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'image':\n {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n\n case 'strong':\n {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'em':\n {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'codespan':\n {\n out += renderer.codespan(token.text);\n break;\n }\n\n case 'br':\n {\n out += renderer.br();\n break;\n }\n\n case 'del':\n {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'text':\n {\n out += renderer.text(token.text);\n break;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n }], [{\n key: \"parse\",\n value: function parse(tokens, options) {\n var parser = new Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n\n }, {\n key: \"parseInline\",\n value: function parseInline(tokens, options) {\n var parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n }]);\n\n return Parser;\n}();\n/**\n * Marked\n */\n\n\nfunction marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n var highlight = opt.highlight;\n var tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n var done = function done(err) {\n var out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n return err ? callback(err) : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n if (!tokens.length) return done();\n var pending = 0;\n marked.walkTokens(tokens, function (token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(function () {\n highlight(token.text, token.lang, function (err, code) {\n if (err) {\n return done(err);\n }\n\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n try {\n var _tokens = Lexer.lex(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(_tokens, opt.walkTokens);\n }\n\n return Parser.parse(_tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return 'An error occurred:
' + _escape(e.message + '', true) + '
';\n }\n\n throw e;\n }\n}\n/**\n * Options\n */\n\n\nmarked.options = marked.setOptions = function (opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n};\n\nmarked.getDefaults = getDefaults;\nmarked.defaults = defaults;\n/**\n * Use Extension\n */\n\nmarked.use = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var opts = merge.apply(void 0, [{}].concat(args));\n var extensions = marked.defaults.extensions || {\n renderers: {},\n childTokens: {}\n };\n var hasExtensions;\n args.forEach(function (pack) {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach(function (ext) {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n\n if (ext.renderer) {\n // Renderer extensions\n var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var ret = ext.renderer.apply(this, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n\n if (ext.tokenizer) {\n // Tokenizer Extensions\n if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n\n if (ext.start) {\n // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n\n if (ext.childTokens) {\n // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n } // ==-- Parse \"overwrite\" extensions --== //\n\n\n if (pack.renderer) {\n (function () {\n var renderer = marked.defaults.renderer || new Renderer();\n\n var _loop = function _loop(prop) {\n var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false\n\n renderer[prop] = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var ret = pack.renderer[prop].apply(renderer, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.renderer) {\n _loop(prop);\n }\n\n opts.renderer = renderer;\n })();\n }\n\n if (pack.tokenizer) {\n (function () {\n var tokenizer = marked.defaults.tokenizer || new Tokenizer();\n\n var _loop2 = function _loop2(prop) {\n var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false\n\n tokenizer[prop] = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var ret = pack.tokenizer[prop].apply(tokenizer, args);\n\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.tokenizer) {\n _loop2(prop);\n }\n\n opts.tokenizer = tokenizer;\n })();\n } // ==-- Parse WalkTokens extensions --== //\n\n\n if (pack.walkTokens) {\n var _walkTokens = marked.defaults.walkTokens;\n\n opts.walkTokens = function (token) {\n pack.walkTokens.call(this, token);\n\n if (_walkTokens) {\n _walkTokens.call(this, token);\n }\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n};\n/**\n * Run callback for every token\n */\n\n\nmarked.walkTokens = function (tokens, callback) {\n var _iterator2 = _createForOfIteratorHelper(tokens),\n _step2;\n\n try {\n var _loop3 = function _loop3() {\n var token = _step2.value;\n callback.call(marked, token);\n\n switch (token.type) {\n case 'table':\n {\n var _iterator3 = _createForOfIteratorHelper(token.header),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var cell = _step3.value;\n marked.walkTokens(cell.tokens, callback);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n var _iterator4 = _createForOfIteratorHelper(token.rows),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var row = _step4.value;\n\n var _iterator5 = _createForOfIteratorHelper(row),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _cell = _step5.value;\n marked.walkTokens(_cell.tokens, callback);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n break;\n }\n\n case 'list':\n {\n marked.walkTokens(token.items, callback);\n break;\n }\n\n default:\n {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {\n // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {\n marked.walkTokens(token[childTokens], callback);\n });\n } else if (token.tokens) {\n marked.walkTokens(token.tokens, callback);\n }\n }\n }\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop3();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n};\n/**\n * Parse Inline\n * @param {string} src\n */\n\n\nmarked.parseInline = function (src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n var tokens = Lexer.lexInline(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return 'An error occurred:
' + _escape(e.message + '', true) + '
';\n }\n\n throw e;\n }\n};\n/**\n * Expose\n */\n\n\nmarked.Parser = Parser;\nmarked.parser = Parser.parse;\nmarked.Renderer = Renderer;\nmarked.TextRenderer = TextRenderer;\nmarked.Lexer = Lexer;\nmarked.lexer = Lexer.lex;\nmarked.Tokenizer = Tokenizer;\nmarked.Slugger = Slugger;\nmarked.parse = marked;\nvar options = marked.options;\nvar setOptions = marked.setOptions;\nvar use = marked.use;\nvar walkTokens = marked.walkTokens;\nvar parseInline = marked.parseInline;\nvar parse = marked;\nvar parser = Parser.parse;\nvar lexer = Lexer.lex;\nexport { Lexer, Parser, Renderer, Slugger, TextRenderer, Tokenizer, defaults, getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport classNames from \"classnames\"\nimport { marked } from \"marked\"\n\nmarked.setOptions({\n renderer: new marked.Renderer(),\n smartLists: true\n})\n\nconst Text = ({\n text, // text content\n as = \"div\", // element type ex. \"h1\", \"h2\", \"span\" \"p\"...\n className,\n style,\n ...rest\n}) => {\n const viewerClasses = classNames(\"marked\", className)\n\n // superscript symbols\n let convertedText = removeSymbols(text)\n\n // use marked to convert markdown if using default \"div\"\n if (as === \"div\") {\n convertedText = marked(convertedText)\n }\n\n return React.createElement(as, {\n style: style,\n className: viewerClasses,\n ...rest,\n dangerouslySetInnerHTML: { __html: convertedText }\n })\n}\n\nexport default Text\n\nText.propTypes = {\n className: PropTypes.string,\n text: PropTypes.string.isRequired,\n as: PropTypes.string,\n style: PropTypes.object\n}\n\nfunction removeSymbols(str) {\n str = str.replace(/[™®©]/g, \"$&\")\n let title = str.match(/title='(.*?)'/gi)\n if (title) {\n let newStr = str\n for (let i = 0; i < title.length; i++) {\n let newTitle = title[i].replace(\"\", \"\").replace(\"\", \"\")\n newStr = newStr.replace(title[i], newTitle)\n }\n return newStr\n } else {\n return str\n }\n}\n","import React from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\nimport { Image } from \"cloudinary-react\"\nconst cloudinaryData = require(\"../../../config.json\")\nimport { toSentenceCase } from \"../../utils/utils\"\n\nconst cloudinaryImages = cloudinaryData.images.resources\n\nconst NuvoImage = props => {\n if (!cloudinaryData) throw new Error(\"Error retrieving config.json\")\n if (!props.publicId) return <>>\n\n const quality = props.quality ?? 99\n\n let image = { public_id: props.publicId }\n let altTitle = \"\"\n\n const findData = cloudinaryImages.find(\n data => data.public_id === props.publicId\n )\n\n if (findData) {\n image = findData\n }\n\n const imageWrapperClasses = classNames(props.wrapperClassName, {\n \"image-meta__wrapper\": true\n })\n\n const imageClasses = classNames(props.className, {\n \"image-meta__image\": true\n })\n\n if (image.context && image.context.custom.alt) {\n altTitle = image.context.custom.alt\n } else {\n let split = props.publicId.split(\"GOFS/DEV/\")[1] || props.publicId\n split.replace(/[_-]/g, \" \")\n altTitle = toSentenceCase(split)\n }\n\n const { useAR, wrapperClassName, ...rest } = props\n if (props.useAR) {\n return (\n \n \n {props.children}\n \n
\n )\n } else {\n return (\n \n {props.children}\n \n )\n }\n}\n\nNuvoImage.propTypes = {\n publicId: PropTypes.string.isRequired,\n children: PropTypes.element,\n className: PropTypes.string,\n useAR: PropTypes.bool,\n wrapperClassName: PropTypes.string\n}\n\nexport default NuvoImage\n\nNuvoImage.defaultProps = {\n cloudName: \"nuvolum\",\n width: \"auto\"\n}\n","import React from \"react\"\nimport classnames from \"classnames\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport Stars from \"./Stars\"\nimport { Button, ButtonGroup } from \"../Button\"\n\nconst AllSocialReviews = ({\n language,\n heading,\n buttonHref,\n buttonText,\n isColumn,\n colorBack,\n animation,\n office\n}) => {\n const animate = animation ? \"fade-up\" : \"\"\n\n const wrapperClasses = classnames({\n \"home-section\": heading,\n \"ratings-review top-down\": true,\n \"color-back\": colorBack\n })\n\n const data = useStaticQuery(graphql`\n query SocialQuery {\n locations: allLocationsJson(sort: { fields: locationData___order }) {\n nodes {\n locationData {\n gmbId\n facebookId\n cityName\n locationName\n order\n gmbOverride\n }\n }\n }\n facebookSocials: allSocialJson(\n sort: { fields: data___totalReviews, order: DESC }\n filter: { data: { platform: { eq: \"facebook\" } } }\n ) {\n nodes {\n data {\n platformId\n rating\n totalReviews\n url\n platform\n }\n }\n }\n gmbSocials: allSocialJson(\n sort: { fields: data___totalReviews, order: DESC }\n filter: { data: { platform: { eq: \"googleMyBusiness\" } } }\n ) {\n nodes {\n data {\n platformId\n rating\n totalReviews\n url\n platform\n }\n }\n }\n }\n `)\n\n let locations = data.locations.nodes\n\n let googleReviews = []\n let facebookReviews = []\n let googles = data.gmbSocials.nodes\n let facebooks = data.facebookSocials.nodes\n\n googleReviews = matchSocialsWithLocations(locations, googles, \"google\")\n // facebookReviews = matchSocialsWithLocations(locations, facebooks, \"facebook\", false);\n\n function matchSocialsWithLocations(\n locations,\n platformArr,\n platform,\n useCityName = true\n ) {\n let reviews = []\n let map = {}\n\n locations.forEach(location => {\n let reviewObj = {}\n\n if (platform === \"google\" && map[location.locationData.gmbId]) {\n return\n } else {\n map[location.locationData.gmbId] = platform\n }\n\n if (platform === \"facebook\" && map[location.locationData.facebookId]) {\n return\n } else {\n map[location.locationData.facebookId] = platform\n }\n\n for (let i = 0; i < platformArr.length; i++) {\n if (Math.round(platformArr[i].data.rating) < 3) continue\n\n if (\n platformArr[i].data.platformId === location.locationData.facebookId ||\n platformArr[i].data.platformId === location.locationData.gmbId\n ) {\n reviewObj = { ...platformArr[i].data }\n }\n }\n\n if (useCityName) {\n reviewObj.name = location.locationData.locationName\n }\n\n // Override the map google link, to a different gmb link\n if (platform === \"google\" && location.locationData.gmbOverride) {\n reviewObj.url = location.locationData.gmbOverride\n }\n\n reviewObj.order = location.locationData.order\n\n reviews.push(reviewObj)\n })\n\n return reviews\n }\n\n // if (!reviews) {\n // reviews = [\n // {name: \"Franklin\", ...l1},\n // {name: \"Thompson's Station\", ...l2},\n // {name: \"Franklin\", ...l3},\n // {name: \"Thompson's Station\", ...l4},\n // ];\n // }\n\n googleReviews.sort((a, b) => (a.order > b.order ? 1 : -1))\n // facebookReviews.sort((a, b) => (a.order > b.order ? 1 : -1))\n\n // let consolidated = googleReviews.concat(facebookReviews);\n let consolidated = googleReviews\n\n consolidated = consolidated.filter(rev => rev.rating || rev.platform)\n\n if (office) {\n consolidated = consolidated.filter(location => location.name == office)\n }\n\n let gridSize = `reviews-${consolidated.length}`\n\n const reviewsContainer = classnames({\n \"all-reviews-container-flex\": isColumn,\n \"all-reviews-container-grid\": !isColumn,\n [gridSize]: !isColumn\n })\n\n // add AOS animation attributes if using animation\n // otherwise will make links not clickable\n let attrs = {}\n if (animation) {\n ;(attrs[\"data-aos\"] = animate), (attrs[\"data-aos-duration\"] = 1200)\n }\n\n if (consolidated.length === 0) return <>>\n\n return (\n \n \n {heading && (\n
\n
\n
\n
{heading}
\n \n
\n
\n )}\n
\n {/*
*/}\n
\n {consolidated &&\n consolidated.map((review, i) => (\n
\n ))}\n
\n {/*
*/}\n
\n
\n\n {buttonHref && (\n \n )}\n \n )\n}\n\nexport default AllSocialReviews\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMyIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMzIDMyIj4KICAgIDxwYXRoIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjMDA3N2MyIiBkPSJNOS4wMTYgMzAuNzg0bDcuNjU4LTQuMDI2IDcuNjU4IDQuMDI2YzEuMzYuNzE1IDIuOTgyLS40MzQgMi43MTktMS45NzVsLTEuNDY1LTguNTI1IDYuMTkzLTYuMDM1YzEuMTE0LTEuMDg0LjQ5OC0yLjk3Ny0xLjAzNy0zLjJsLTguNTYtMS4yNDctMy44MjctNy43NThjLS42ODUtMS4zODMtMi42NzEtMS40LTMuMzYzIDBsLTMuODI2IDcuNzU4LTguNTYgMS4yNDhjLTEuNTM2LjIyMi0yLjE1IDIuMTE1LTEuMDM4IDMuMTk5bDYuMTk0IDYuMDM1LTEuNDY1IDguNTI1Yy0uMjY0IDEuNTQxIDEuMzYgMi42OTYgMi43MTkgMS45NzV6Ii8+Cjwvc3ZnPgo=\"","import React, { Fragment } from \"react\"\nimport fullStar from \"./s.svg\"\nimport emptyStar from \"./star-empty.svg\"\nimport quarterStar from \"./star-quarter.svg\"\nimport halfStar from \"./star-half.svg\"\nimport threeQuartersStar from \"./star-three-quarters.svg\"\n\nimport PropTypes from \"prop-types\"\n\nfunction Stars(props) {\n let rating = parseFloat(props.rating.toFixed(2))\n const stars = []\n\n let ones = Math.floor((rating / 1) % 10)\n let remainder = 5 - ones\n let decimalNumber = rating - Math.floor(rating)\n\n if (ones !== 5) {\n for (let i = 0; i < ones; i++) {\n stars.push(\n \n \n \n )\n }\n\n stars.push()\n\n for (let i = 0; i < remainder - 1; i++) {\n stars.push()\n }\n } else if (ones === 5) {\n for (let i = 0; i < 5; i++) {\n stars.push()\n }\n }\n\n return {stars}
\n}\n\nfunction Star(props) {\n let number = props.number\n\n if (number === 0) {\n return
\n } else if (number > 0 && number <= 0.25) {\n return
\n } else if (number > 0.25 && number <= 0.5) {\n return
\n } else if (number > 0.5 && number <= 0.9) {\n return (\n
\n )\n } else if (number > 0.9 && number <= 1) {\n return
\n } else {\n return
\n }\n}\n\nStars.propTypes = {\n rating: PropTypes.number\n}\n\nexport default Stars\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIzMSIgdmlld0JveD0iMCAwIDM0IDMxIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjMDA3N2MyIiBkPSJNMjQuNTQyIDMwLjI4NGwtNy42NTgtNC4wMjUtNy42NTggNC4wMjVjLTEuMzYuNzE1LTIuOTgzLS40MzQtMi43Mi0xLjk3NWwxLjQ2Ni04LjUyNS02LjE5NC02LjAzNWMtMS4xMTMtMS4wODQtLjQ5OC0yLjk3NyAxLjAzNy0zLjE5OWw4LjU2LTEuMjQ4IDMuODI3LTcuNzU4Yy42ODYtMS4zODMgMi42NzItMS40MDEgMy4zNjMgMGwzLjgyNyA3Ljc1OCA4LjU2IDEuMjQ4YzEuNTM1LjIyMiAyLjE1IDIuMTE1IDEuMDM3IDMuMTk5bC02LjE5MyA2LjAzNSAxLjQ2NSA4LjUyNWMuMjYzIDEuNTQxLTEuMzYgMi42OTYtMi43MiAxLjk3NXoiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMDA3N2MyIiBkPSJNNy45NzIgMTkuNzg0bC02LjE5NC02LjAzNmMtMS4xMTMtMS4wODQtLjQ5OC0yLjk3NiAxLjAzOC0zLjE5OWw4LjgxMi0xLjI0OHYtLjUxbC4yNTIgMjAuMjMtMi42NTQgMS4yNjNjLTEuMzYuNzE0LTIuOTgzLS40MzQtMi43Mi0xLjk3NWwxLjQ2Ni04LjUyNXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMyIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMzIDMyIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggc3Ryb2tlPSIjMDA3N2MyIiBkPSJNMjQuMzggMzAuOTY4bC03LjY1OC00LjAyNS03LjY1OCA0LjAyNWMtMS4zNi43MTUtMi45ODMtLjQzNC0yLjcyLTEuOTc1bDEuNDY2LTguNTI1LTYuMTk0LTYuMDM1Yy0xLjExMy0xLjA4NC0uNDk4LTIuOTc3IDEuMDM3LTMuMTk5bDguNTYtMS4yNDggMy44MjctNy43NThjLjY4Ni0xLjM4MyAyLjY3Mi0xLjQgMy4zNjMgMGwzLjgyNyA3Ljc1OCA4LjU2IDEuMjQ4YzEuNTM1LjIyMiAyLjE1IDIuMTE1IDEuMDM3IDMuMmwtNi4xOTMgNi4wMzQgMS40NjUgOC41MjVjLjI2MyAxLjU0MS0xLjM2IDIuNjk2LTIuNzIgMS45NzV6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwNzdjMiIgZD0iTTYuMzQ0IDI4Ljk5NGwxLjQ2NS04LjUyNi02LjE5NC02LjAzNmMtMS4xMTMtMS4wODQtLjQ5OC0yLjk3NiAxLjAzOC0zLjE5OWw4LjU2LTEuMjQ4IDMuODI2LTcuNzU3YTEuODYgMS44NiAwIDAgMSAxLjY4Mi0xLjA0NHYyNS43NThsLTcuNjU4IDQuMDI2Yy0xLjM2LjcxNS0yLjk4My0uNDMzLTIuNzE5LTEuOTc0Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNCIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDM0IDMyIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggZmlsbD0iIzAwNzdjMiIgZD0iTTkuMzYgMzAuNzg0Yy0xLjM2My43MTUtMi45OS0uNDM0LTIuNzI2LTEuOTc1bDEuNDY4LTguNTI1LTYuMjA2LTYuMDM1Yy0xLjExNi0xLjA4NC0uNDk5LTIuOTc3IDEuMDQtMy4ybDguNTc4LTEuMjQ3IDMuODM1LTcuNzU4Yy42ODctMS4zODMgMi42NzctMS40IDMuMzcgMGwzLjgzNSA3Ljc1OC4yNjQuMTEydjIwLjE0NWwtNS43ODQtMy4zLTcuNjc1IDQuMDI1eiIvPgogICAgICAgIDxwYXRoIHN0cm9rZT0iIzAwNzdjMiIgZD0iTTkuMzQyIDMwLjc4NEwxNyAyNi43NTlsNy42NTggNC4wMjVjMS4zNi43MTUgMi45ODMtLjQzNCAyLjcxOS0xLjk3NWwtMS40NjUtOC41MjUgNi4xOTQtNi4wMzVjMS4xMTMtMS4wODQuNDk4LTIuOTc3LTEuMDM3LTMuMTk5bC04LjU2MS0xLjI0OC0zLjgyNi03Ljc1OGMtLjY4Ni0xLjM4My0yLjY3Mi0xLjQwMS0zLjM2MyAwbC0zLjgyNyA3Ljc1OC04LjU2IDEuMjQ4Yy0xLjUzNS4yMjItMi4xNTEgMi4xMTUtMS4wMzcgMy4xOTlsNi4xOTMgNi4wMzUtMS40NjUgOC41MjVjLS4yNjMgMS41NDEgMS4zNiAyLjY5NiAyLjcxOSAxLjk3NXoiLz4KICAgIDwvZz4KPC9zdmc+Cg==\"","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMSIgdmlld0JveD0iMCAwIDMyIDMxIj4KICAgIDxwYXRoIGZpbGw9IiMwMDc3YzIiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTguMzQyIDMwLjUzM0wxNiAyNi41MDhsNy42NTggNC4wMjVjMS4zNi43MTUgMi45ODMtLjQzMyAyLjcxOS0xLjk3NGwtMS40NjUtOC41MjYgNi4xOTMtNi4wMzVjMS4xMTQtMS4wODQuNDk4LTIuOTc2LTEuMDM3LTMuMmwtOC41Ni0xLjI0Ny0zLjgyNi03Ljc1OGMtLjY4Ni0xLjM4My0yLjY3Mi0xLjQtMy4zNjQgMGwtMy44MjYgNy43NTgtOC41NiAxLjI0OGMtMS41MzYuMjIzLTIuMTUgMi4xMTUtMS4wMzcgMy4ybDYuMTkzIDYuMDM0LTEuNDY1IDguNTI2Yy0uMjY0IDEuNTQgMS4zNiAyLjY5NSAyLjcxOSAxLjk3NHoiLz4KPC9zdmc+Cg==\"","import PropTypes from \"prop-types\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport React from \"react\"\nimport classNames from \"classnames\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faPlay } from \"@fortawesome/pro-solid-svg-icons/faPlay\"\n\nconst VideoButton = props => {\n const query = useStaticQuery(graphql`\n query HeaderQuery {\n allTranslationsJson {\n nodes {\n watchVideo {\n en\n es\n }\n }\n }\n }\n `)\n\n const btnClass = classNames(props.buttonClass, {\n \"standard-button\": !(props.iconOnly || props.textOnly),\n \"button-video\": true,\n \"video-button\": props.overVideo === false ? false : true,\n \"icon-only\": props.iconOnly,\n \"z-1\": props.overVideo,\n \"sizzle-button-under\": props.sizzleButton,\n minimal: props.minimal ? props.minimal : false,\n \"btn-left\": props.textAlign === \"left\",\n \"btn-right\": props.textAlign === \"right\",\n \"btn-center\": props.textAlign === \"center\"\n })\n\n const { language } = props\n const translations = query.allTranslationsJson.nodes[0]\n\n let buttonText\n\n if (props.buttonText) {\n buttonText = props.buttonText\n } else {\n buttonText = translations.watchVideo[language]\n }\n\n if (props.textOnly) {\n return (\n \n {buttonText}\n \n )\n }\n\n return (\n \n \n {!props.iconOnly && buttonText}\n \n )\n}\n\nVideoButton.defaultProps = {\n language: \"en\"\n}\n\nVideoButton.propTypes = {\n minimal: PropTypes.bool,\n textAlign: PropTypes.string,\n href: PropTypes.string,\n buttonText: PropTypes.string,\n overVideo: PropTypes.bool,\n toggleTheater: PropTypes.func\n}\n\nexport default VideoButton\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nvar classNames = require(\"classnames\")\n\nclass HamburgerIconTheater extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n var HamburgerIconTheaterSpanClass = classNames({\n open: this.props.isOpen && !this.props.isClosing\n })\n\n var cMenuClass = classNames({\n \"c-menu-theater\": true,\n \"c-menu-theater--open\": this.props.isOpen,\n disabled: this.props.isOpening || this.props.isClosing\n })\n\n return (\n \n \n \n
\n )\n }\n}\nHamburgerIconTheater.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n toggleTheater: PropTypes.func\n}\nexport default HamburgerIconTheater\n","import React, { Component } from \"react\"\nimport ReactPlayer from \"react-player\"\nimport aosWatch from \"./animations/aosWatch.js\"\n\nclass ResponsivePlayer extends Component {\n constructor(props) {\n super(props)\n }\n\n render() {\n return (\n \n \n
\n )\n }\n}\n\nexport default ResponsivePlayer\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport VideoButton from \"./VideoButton\"\nimport HamburgerIconTheater from \"./HamburgerIconTheater.js\"\nimport ResponsivePlayer from \"../ResponsivePlayer.js\"\n\nvar classNames = require(\"classnames\")\n\n/* Due to various restrictions, ReactPlayer is not guaranteed to function properly on mobile devices. The YouTube player \ndocumentation, for example, explains that certain mobile browsers require user interaction before playing: */\n\nconst Video = props => {\n var sidebarClass = classNames({\n theater: true,\n \"theater--closed\": !props.isOpen,\n \"theater--open\": props.isOpen,\n \"theater--closing\": props.isClosing\n })\n\n return (\n \n {props.isOpen && !props.isOpening && (\n
\n )}\n
\n )\n}\nVideo.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n videoUrl: PropTypes.string,\n controls: PropTypes.bool,\n playing: PropTypes.bool\n}\n\nexport default Video\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport Video from \"./Video\"\nimport HamburgerIconTheater from \"./HamburgerIconTheater.js\"\n\nvar classNames = require(\"classnames\")\n\nclass Overlay extends React.Component {\n constructor(props) {\n super(props)\n this.state = { width: 0, height: 0 }\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this)\n }\n\n componentDidUpdate() {\n if (this.props.isClosing) {\n document.documentElement.classList.remove(\"theater-is-open\")\n } else if (this.props.isOpen) {\n document.documentElement.classList.add(\"theater-is-open\")\n }\n }\n\n updateWindowDimensions() {\n this.setState({ width: window.innerWidth, height: window.innerHeight })\n }\n\n // Generates keyframe style tag to be document.head.appendChild'ed;\n generateKeyframesStyle(width, height, modifier) {\n let radius = 5000\n if (width > height) {\n radius = width\n } else if (width < height) {\n radius = height\n } else {\n radius = width\n }\n\n // 2 is too low\n if (!modifier) {\n modifier = 3\n }\n\n radius = radius * modifier\n\n return `\n @keyframes menuAnimOpenBottomLeft {\n 0% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: 0;\n height: 0;\n border-radius: 50%;\n }\n 100% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: ${radius}px;\n height: ${radius}px;\n border-radius: 50%;\n }\n }\n @keyframes menuAnimCloseBottomLeft {\n 0% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: ${radius}px;\n height: ${radius}px;\n border-radius: 50%;\n }\n 100% {\n top: unset;\n bottom: ${-0.5 * radius}px;\n left: ${-0.5 * radius}px;\n width: 0;\n height: 0;\n border-radius: 50%;\n }\n }`\n }\n\n componentDidMount() {\n this.updateWindowDimensions()\n window.addEventListener(\"resize\", this.updateWindowDimensions)\n const menuKeyframes = this.generateKeyframesStyle(\n window.innerWidth,\n window.innerHeight\n )\n // TO-DO: Check if animation style already exists from a previous video component, if so, do not add another identical style tag to document head\n const $style = document.createElement(\"style\")\n $style.innerHTML = menuKeyframes\n document.head.appendChild($style)\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions)\n }\n\n render() {\n let iconColor = \"#6d6e6f\"\n let iconClass = classNames({\n \"theater-icon\": true,\n open: this.props.isOpen\n })\n // if (this.props.atTopOfPage) {\n // iconColor = \"white\"\n // }\n\n let containerClasses = classNames(this.props.className, {\n \"theater-container\": true\n })\n\n return (\n \n \n {this.props.isOpen && (\n \n )}\n
\n )\n }\n}\nOverlay.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n toggleTheater: PropTypes.func,\n videoUrl: PropTypes.string,\n controls: PropTypes.bool,\n playing: PropTypes.bool\n}\n\nexport default Overlay\n","import PropTypes from \"prop-types\"\nimport React from \"react\"\n\nimport VideoButton from \"./VideoButton\"\nimport Overlay from \"./Overlay\"\nclass TheaterVideo extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n form: \"two-lines\",\n position: \"right\",\n isOpen: false,\n isOpening: false,\n isClosing: false\n }\n this.toggleTheater = this.toggleTheater.bind(this)\n this.escFunction = this.escFunction.bind(this)\n }\n componentDidMount() {\n var menu = document.getElementById(\"mainNav\")\n var pause = document.getElementById(\"sizzlePause\")\n this.menu = menu\n this.pauseButton = pause\n\n document.addEventListener(\"keydown\", this.escFunction, false)\n }\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.escFunction, false)\n }\n\n escFunction(event) {\n if (event.keyCode === 27 && this.state.isOpen) {\n this.toggleTheater()\n }\n }\n\n toggleTheater() {\n //todo\n\n if (this.state.isOpen) {\n if (this.pauseButton) {\n setTimeout(() => {\n this.pauseButton.style.display = \"block\"\n }, 450)\n }\n\n this.setState(\n prevState => ({\n ...prevState,\n isClosing: !prevState.isClosing,\n playing: false\n }),\n function () {\n setTimeout(() => {\n this.setState(prevState => ({\n ...prevState,\n isOpen: !prevState.isOpen,\n isClosing: !prevState.isClosing\n }))\n this.menu.style.zIndex = \"100\"\n }, 450)\n }\n )\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n } else if (!this.state.isOpen) {\n this.menu.style.zIndex = \"0\"\n if (this.pauseButton) {\n this.pauseButton.style.display = \"none\"\n }\n this.setState(prevState => ({\n ...prevState,\n isOpen: !prevState.isOpen,\n isOpening: !prevState.isOpening\n }))\n setTimeout(() => {\n this.setState(prevState => ({\n ...prevState,\n isOpening: !prevState.isOpening,\n playing: true\n }))\n }, 450)\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n }\n }\n\n render() {\n const childrenWithProps = React.Children.map(this.props.children, child =>\n React.cloneElement(child, { onClick: this.toggleTheater })\n )\n\n var hasWatchVideo = true\n var onlyButton = false\n var overVideo = false\n var controls = true\n var playing = true\n var sizzleButton = false\n\n if (this.props.hasWatchVideo === false) {\n hasWatchVideo = false\n }\n if (this.props.onlyButton === true) {\n onlyButton = true\n } else {\n if (this.props.overVideo === true) {\n overVideo = true\n }\n }\n if (this.props.controls === false) {\n controls = false\n }\n if (this.props.playing === false) {\n playing = false\n }\n if (this.props.sizzleButton === true) {\n sizzleButton = true\n }\n\n return (\n \n
\n {hasWatchVideo && !onlyButton && (\n
\n \n {this.props.children}\n
\n )}\n {onlyButton && sizzleButton && (\n
\n \n
\n )}\n {onlyButton && !sizzleButton && this.props.slideButton && (\n
\n \n
\n )}\n {onlyButton && !sizzleButton && !this.props.slideButton && (\n
\n )}\n {!hasWatchVideo && childrenWithProps}\n
\n )\n }\n}\n\nTheaterVideo.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n videoUrl: PropTypes.string.isRequired,\n controls: PropTypes.bool,\n playing: PropTypes.bool,\n overVideo: PropTypes.bool,\n hasWatchVideo: PropTypes.bool,\n onlyButton: PropTypes.bool,\n sizzleButton: PropTypes.bool\n}\n\nexport default TheaterVideo\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nvar classNames = require(\"classnames\")\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faTimes } from \"@fortawesome/pro-light-svg-icons/faTimes\"\n\nclass SearchInput extends React.Component {\n constructor(props) {\n super(props)\n this.escFunction = this.escFunction.bind(this)\n }\n\n componentDidMount() {\n document.addEventListener(\"keydown\", this.escFunction, false)\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.escFunction, false)\n }\n\n escFunction(event) {\n if (\n event.keyCode === 27 &&\n this.props.isOpen &&\n !this.props.isOpening &&\n !this.props.isClosing\n ) {\n this.props.toggleSearch()\n }\n }\n\n render() {\n return (\n \n )\n }\n}\n\nSearchInput.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n handleSearchInputChange: PropTypes.func,\n toggleSearch: PropTypes.func,\n language: PropTypes.string\n}\n\nclass Search extends React.Component {\n constructor(props) {\n super(props)\n }\n\n componentDidMount() {}\n\n render() {\n var searchClass = classNames({\n section: true,\n \"search-container\": true,\n \"opens-left\": this.props.opensLeft,\n \"search-container--open\": this.props.isOpen,\n \"search-container--closing\": this.props.isClosing\n })\n\n return (\n <>\n \n {/* */}\n >\n )\n }\n}\nSearch.propTypes = {\n isOpen: PropTypes.bool,\n isClosing: PropTypes.bool,\n handleSearchSubmit: PropTypes.func,\n handleSearchInputChange: PropTypes.func,\n toggleSearch: PropTypes.func,\n suggestion: PropTypes.string,\n suggestions: PropTypes.array,\n language: PropTypes.string\n}\nexport default Search\n","import React from \"react\"\n\nfunction Dots(props) {\n return (\n \n )\n}\n\nexport default Dots\n","import React from \"react\"\n\nconst BurgerIcon = () => {\n return (\n \n )\n}\n\nexport default BurgerIcon\n","import React from \"react\"\n\nfunction ThreeLines(props) {\n return (\n \n )\n}\n\nexport default ThreeLines\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport Dots from \"./Dots\"\nimport BurgerIcon from \"./BurgerIcon\"\nimport ThreeLines from \"./ThreeLines\"\n\nconst classNames = require(\"classnames\")\n\nclass HamburgerIcon extends React.Component {\n constructor(props) {\n super(props)\n }\n\n renderIcon(iconType) {\n const HamburgerIconSpanClass = classNames({\n open: this.props.isOpen && !this.props.isClosing\n })\n switch (iconType) {\n case \"twoLines\":\n return (\n <>\n \n \n >\n )\n case \"threeLines\":\n if (this.props.isOpen && !this.props.isClosing) {\n return (\n <>\n \n \n >\n )\n }\n return \n\n case \"burger\":\n if (this.props.isOpen && !this.props.isClosing) {\n return (\n <>\n \n \n >\n )\n }\n return \n\n case \"dots\":\n if (this.props.isOpen && !this.props.isClosing) {\n return (\n <>\n \n \n >\n )\n }\n return \n\n case \"word\":\n var menuWordClass = classNames({\n \"menu-word\": true,\n bold: this.props.boldMenu\n })\n if (this.props.isOpen && !this.props.isClosing) {\n return (\n <>\n \n \n >\n )\n }\n return this.props.language === \"es\" ? (\n menú
\n ) : (\n Menu
\n )\n }\n }\n\n render() {\n const cMenuClass = classNames({\n \"c-menu\":\n this.props.iconType !== \"word\" ||\n (this.props.isOpen && !this.props.isClosing),\n // \"menu-word-adjust\": this.props.iconType === \"word\" && this.props.isOpen,\n \"c-menu--open\": this.props.isOpen,\n disabled: this.props.isOpening || this.props.isClosing\n })\n\n const cMenuBurgerClass = classNames(\"c-menu\", {\n \"with-burger\": this.props.iconType === \"burger\"\n })\n\n return (\n <>\n {}\n : this.props.toggleMenu\n }>\n {this.renderIcon(this.props.iconType)}\n
\n {this.props.isOpen && !this.props.isClosing && (\n {}\n : this.props.toggleMenu\n }>\n {this.renderIcon(this.props.iconType)}\n
\n )}\n >\n )\n }\n}\nHamburgerIcon.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n toggleMenu: PropTypes.func\n}\nexport default HamburgerIcon\n","/* eslint-disable */\nimport { Link } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport React, { Fragment, useState, useEffect } from \"react\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport {\n faChevronRight,\n faChevronDown\n} from \"@fortawesome/free-solid-svg-icons\"\nimport { wrapSup } from \"../../utils/utils\"\n\nimport HamburgerIcon from \"./HamburgerIcon.js\"\n\nconst classNames = require(\"classnames\")\n\nclass HamburgerMenu extends React.Component {\n constructor(props) {\n super(props)\n this.state = { width: 0, height: 0 }\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this)\n }\n\n updateWindowDimensions() {\n this.setState({ width: window.innerWidth, height: window.innerHeight })\n }\n\n // Generates keyframe style tag to be document.head.appendChild'ed;\n generateKeyframesStyle(width, height, modifier) {\n let radius = 5000\n if (width > height) {\n radius = width\n } else if (width < height) {\n radius = height\n } else {\n radius = width\n }\n\n // 2 is too low\n if (!modifier) {\n modifier = 2.5\n }\n\n radius *= modifier\n\n return `\n @keyframes menuAnimOpen {\n 0% {\n top: ${-0.5 * radius}px;\n right: ${-0.5 * radius}px;\n width: 0;\n height: 0;\n border-radius: 50%;\n }\n 100% {\n top: ${-0.5 * radius}px;\n right: ${-0.5 * radius}px;\n width: ${radius}px;\n height: ${radius}px;\n border-radius: 50%;\n }\n }\n\n @keyframes menuAnimClose {\n 0% {\n top: ${-0.5 * radius}px;\n right: ${-0.5 * radius}px;\n width: ${radius}px;\n height: ${radius}px;\n border-radius: 50%;\n }\n\n 100% {\n top: ${-0.5 * radius}px;\n right: ${-0.5 * radius}px;\n width: 0;\n height: 0;\n border-radius: 50%;\n }\n }`\n }\n\n componentDidMount() {\n this.updateWindowDimensions()\n window.addEventListener(\"resize\", this.updateWindowDimensions)\n const menuKeyframes = this.generateKeyframesStyle(\n window.innerWidth,\n window.innerHeight\n )\n const $style = document.createElement(\"style\")\n $style.innerHTML = menuKeyframes\n document.head.appendChild($style)\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.updateWindowDimensions)\n }\n\n render() {\n const iconColor = \"#6d6e6f\"\n const iconClass = classNames({\n \"hamburger-icon\": true,\n open: this.props.isOpen\n })\n // if (this.props.atTopOfPage) {\n // iconColor = \"white\"\n // }\n\n return (\n \n \n \n
\n )\n }\n}\nHamburgerMenu.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool,\n toggleMenu: PropTypes.func\n}\n\nconst Sidebar = props => {\n const [activeMenu, setActiveMenu] = useState(\"\")\n const [activeLinks, setActiveLinks] = useState([])\n\n useEffect(() => {\n if (!props.isOpen) {\n setActiveMenu(\"\")\n setActiveLinks([])\n }\n }, [props.isOpen])\n\n const handleSubMenu = (menuName, menuLinks) => {\n if (activeMenu === menuName) {\n setActiveMenu(\"\")\n setActiveLinks([])\n } else {\n setActiveMenu(menuName)\n setActiveLinks(menuLinks)\n }\n }\n\n const sidebarClass = classNames({\n \"hamburger-menu\": true,\n columns: true,\n \"is-vcentered\": false,\n \"hamburger-menu--closed\": !props.isOpen,\n \"hamburger-menu--open\": props.isOpen,\n \"hamburger-menu--closing\": props.isClosing\n })\n\n const menuContentClass = classNames({\n \"hamburger-menu-content columns is-centered\": true,\n shown: props.isOpen && !props.isOpening && !props.isClosing\n })\n\n const handleSubmit = e => {\n e.preventDefault()\n document.getElementById(\"paymentForm\").submit()\n }\n\n return (\n \n )\n}\nSidebar.propTypes = {\n isOpen: PropTypes.bool,\n isOpening: PropTypes.bool,\n isClosing: PropTypes.bool\n}\n\nconst ActiveListMenu = ({ menu, language, toggleMenu }) => (\n <>\n {menu.map((item, i) => (\n \n \n {item.targetType === \"internal\" && (\n \n {item.title && item.title.includes(\"®\") ? (\n \n ) : (\n item.title\n )}\n \n )}\n {item.targetType === \"external\" && (\n \n {item.title}\n \n )}\n {item.targetType === \"dropdown\" && (\n \n )}\n \n \n ))}\n >\n)\n\nconst DropdownItem = ({ link, language, toggleMenu }) => {\n const [isOpen, setIsOpen] = useState(false)\n\n const chevronClasses = classNames({\n \"silo-chevron\": true,\n \"chevron-active\": isOpen\n })\n\n const siloLinkClasses = classNames({\n \"sub-menu\": true,\n \"silo-links-hidden\": !isOpen\n })\n\n return (\n <>\n setIsOpen(!isOpen)}>\n {link.title}\n \n \n\n {link.subMenu2 &&\n link.subMenu2.map((subLink, i) => (\n \n {subLink.title}\n \n ))}\n >\n )\n}\n\nexport default HamburgerMenu\n","import { Link, StaticQuery, graphql, navigate } from \"gatsby\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\nimport React from \"react\"\nimport Fuse from \"fuse.js\"\nimport Search from \"./Search.js\"\n\nimport HamburgerMenu from \"./HamburgerMenu.js\"\nimport { Image, Text } from \"../Core/\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faSearch } from \"@fortawesome/pro-light-svg-icons/faSearch\"\n\nimport Logo from \"../../images/logo.inline.svg\"\nimport LogoMark from \"../../images/logo-mark.inline.svg\"\n\nclass ComMenu extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n atTopOfPage: true,\n isAlwaysTransparent: false,\n logoChangesOnScroll: false,\n search: {\n hasSearch: true,\n isOpen: false,\n isOpening: false,\n isClosing: false,\n value: \"\",\n suggestions: [],\n items: [],\n searchTime: \"\"\n },\n ada: {\n hasADA: false\n },\n logo: {\n hasLogo: true,\n position: \"center\",\n fullLogo: true\n },\n hamburger: {\n form: \"two-lines\",\n position: \"left\",\n isOpen: false,\n isOpening: false,\n isClosing: false\n }\n }\n this.toggleMenu = this.toggleMenu.bind(this)\n this.toggleSearch = this.toggleSearch.bind(this)\n this.handleSearchInputChange = this.handleSearchInputChange.bind(this)\n this.handleSearchSubmit = this.handleSearchSubmit.bind(this)\n }\n\n componentDidMount() {\n window.onscroll = () => {\n if (this.props.browserStatus !== false) {\n if (window.pageYOffset !== 0) {\n this.setState({\n atTopOfPage: false\n })\n } else {\n this.setState({\n atTopOfPage: true\n })\n }\n }\n }\n if (this.state.hamburger.isOpen) {\n document.documentElement.classList.add(\"hamburger-menu-is-open\")\n } else if (this.state.hamburger.isClosing) {\n document.documentElement.classList.remove(\"hamburger-menu-is-open\")\n }\n\n let items = []\n if (this.props.language === \"es\") {\n items = this.props.searchIndex.es\n } else {\n items = this.props.searchIndex.en\n }\n\n this.setState(prevState => ({\n ...prevState,\n searchItems: items\n }))\n }\n\n componentDidUpdate() {\n if (this.state.hamburger.isClosing) {\n document.documentElement.classList.remove(\"hamburger-menu-is-open\")\n }\n }\n\n componentWillUnmount() {\n window.onscroll = null\n }\n\n toggleMenu() {\n if (this.state.hamburger.isOpen && this.props.browserStatus !== false) {\n this.setState(\n prevState => ({\n hamburger: {\n ...prevState.hamburger,\n isClosing: !prevState.hamburger.isClosing\n }\n }),\n function () {\n setTimeout(() => {\n this.setState(prevState => ({\n hamburger: {\n ...prevState.hamburger,\n isOpen: !prevState.hamburger.isOpen,\n isClosing: !prevState.hamburger.isClosing\n }\n }))\n }, 450)\n }\n )\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n } else if (\n !this.state.hamburger.isOpen &&\n this.props.browserStatus !== false\n ) {\n this.setState(prevState => ({\n hamburger: {\n ...prevState.hamburger,\n isOpen: !prevState.hamburger.isOpen,\n isOpening: !prevState.hamburger.isOpening\n }\n }))\n setTimeout(() => {\n this.setState(prevState => ({\n hamburger: {\n ...prevState.hamburger,\n isOpening: !prevState.hamburger.isOpening\n }\n }))\n }, 450)\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n }\n }\n\n toggleSearch() {\n if (this.state.search.isOpen && this.props.browserStatus !== false) {\n this.setState(prevState => ({\n search: {\n ...prevState.search,\n isClosing: !prevState.search.isClosing\n }\n }))\n setTimeout(() => {\n this.setState(prevState => ({\n search: {\n ...prevState.search,\n isOpen: !prevState.search.isOpen,\n isClosing: !prevState.search.isClosing\n }\n }))\n }, 450)\n // Make sure to sync this setTimeout time with the one in the .scss animation time\n } else if (\n !this.state.search.isOpen &&\n this.props.browserStatus !== false\n ) {\n this.setState(\n prevState => ({\n search: {\n ...prevState.search,\n isOpening: !prevState.search.isOpening,\n isOpen: !prevState.search.isOpen\n }\n }),\n function () {\n setTimeout(() => {\n this.setState(prevState => ({\n search: {\n ...prevState.search,\n isOpening: !prevState.search.isOpening\n }\n }))\n }, 1450)\n }\n )\n }\n }\n\n handleSearchInputChange(event) {\n if (this.props.browserStatus !== false) {\n var t0 = performance.now()\n var options\n this.setState({ value: event.target.value }, () => {\n options = {\n shouldSort: true,\n // tokenize: true,\n threshold: 0.4,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1,\n keys: [\n {\n name: \"searchHeading\",\n weight: 0.7\n },\n {\n name: \"metaDescription\",\n weight: 0.3\n }\n ]\n }\n\n var fuse = new Fuse(this.state.searchItems, options) // \"list\" is the item array\n var result = fuse.search(this.state.value)\n var t1 = performance.now()\n var searchTime = parseFloat(((t1 - t0) / 1000).toFixed(2))\n if (searchTime === 0) {\n searchTime = 0.01\n }\n if (result[0]) {\n this.setState(prevState => ({\n search: {\n ...prevState.search,\n suggestions: result,\n searchTime: searchTime\n }\n }))\n } else {\n this.setState(prevState => ({\n search: {\n ...prevState.search,\n suggestions: [],\n searchTime: searchTime\n }\n }))\n }\n })\n }\n }\n\n handleSearchSubmit(event) {\n event.preventDefault()\n\n let suggestions = this.state.search.suggestions\n let searchInput = this.state.value\n let searchTime = this.state.search.searchTime\n if (this.props.language === \"es\") {\n navigate(\"/es/resultados-de-la-busqueda/\", {\n state: { suggestions, searchInput, searchTime }\n })\n } else {\n navigate(\"/search-results/\", {\n state: { suggestions, searchInput, searchTime }\n })\n }\n this.toggleSearch()\n }\n\n render() {\n var comMenuClass = classNames({\n \"com-menu\": true,\n columns: true,\n \"is-mobile\": true,\n \"is-vcentered\": true,\n \"is-centered\": true,\n \"com-menu--scrolled\": !this.state.atTopOfPage,\n transparent: this.state.isAlwaysTransparent\n })\n\n const desktopLogoHeight = \"55px\"\n const mobileLogoWidth = \"75\"\n\n return (\n {\n // Define menu items from graphQL here\n let topLevelItems = data.allDataJson.nodes[0].topLevelItems\n let openMenuLeft = data.allDataJson.nodes[0].openMenuOrdered\n let openMenuRight = data.allDataJson.nodes[0].openMenuUnordered\n let popularPages = data.allDataJson.nodes[0].popularPages\n\n if (this.props.language === \"es\") {\n topLevelItems = data.navEs.nodes[0].topLevelItems\n openMenuLeft = data.navEs.nodes[0].openMenuOrdered\n openMenuRight = data.navEs.nodes[0].openMenuUnordered\n popularPages = data.navEs.nodes[0].popularPages\n }\n\n let searchOptions\n for (let i = 0; i < topLevelItems.length; i++) {\n if (topLevelItems[i].type === \"search\")\n searchOptions = topLevelItems[i]\n }\n let logoOptions\n for (let i = 0; i < topLevelItems.length; i++) {\n if (topLevelItems[i].type === \"logo\") logoOptions = topLevelItems[i]\n }\n let menuOptions\n for (let i = 0; i < topLevelItems.length; i++) {\n if (topLevelItems[i].type === \"menu\") menuOptions = topLevelItems[i]\n }\n\n const menuIcon = topLevelItems.find(\n item => item.type === \"menu\"\n ).iconType\n\n return (\n \n )\n }}\n />\n )\n }\n}\n\nComMenu.propTypes = {\n pageData: PropTypes.object,\n language: PropTypes.string,\n browserStatus: PropTypes.bool,\n boldMenu: PropTypes.bool\n}\n\nfunction MenuTextLinks(props) {\n if (props.type === \"navTextItem\") {\n if (props.isPhone) {\n return (\n \n {props.title}\n \n )\n } else {\n return (\n <>\n {!props.opensNewTab ? (\n \n {props.title.includes(\"®\") ? (\n \n ) : (\n props.title\n )}\n \n ) : (\n \n {props.title}\n \n )}\n >\n )\n }\n } else {\n return \"\"\n }\n}\n\nfunction TopLevelItem(props) {\n if (props.type === \"logo\") {\n return (\n <>\n \n \n
\n >\n )\n } else if (props.type === \"navTextItem\") {\n if (props.isPhone) {\n return (\n \n )\n } else {\n return (\n \n \n {props.title}\n \n
\n )\n }\n } else if (props.type === \"search\") {\n return (\n \n \n
\n )\n } else if (props.type === \"menu\") {\n return (\n \n \n
\n )\n } else {\n return null\n }\n}\n\nfunction TopLevelItemsMobile(props) {\n return (\n \n
\n
\n {/* {\n props.language === \"es\" ?\n \n English\n \n :\n \n Español\n \n } */}\n
\n\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n )\n}\n\nconst SearchIcon = props => {\n return (\n \n \n
\n )\n}\n\nSearchIcon.propTypes = {\n toggleSearch: PropTypes.func\n}\n\nexport default ComMenu\n","import React from \"react\"\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faFacebookF } from \"@fortawesome/free-brands-svg-icons/faFacebookF\"\nimport { faInstagram } from \"@fortawesome/free-brands-svg-icons/faInstagram\"\n\nimport \"./socialIcons.scss\"\n\nconst SocialIcon = ({ platform }) => {\n let icon\n if (platform === \"Facebook\") {\n icon = faFacebookF\n }\n if (platform === \"Instagram\") {\n icon = faInstagram\n }\n\n return (\n \n \n
\n )\n}\n\nexport default SocialIcon\n","import React from \"react\"\nimport { SocialIcon } from \".\"\n\nconst SocialIconLink = ({\n platform,\n link,\n className = \"\",\n iconColor,\n size,\n borderRadius\n}) => {\n if (!link || !platform) return \"\"\n\n const styles = {\n width: size || \"40px\",\n height: size || \"40px\",\n borderRadius: borderRadius || \"100%\"\n }\n\n return (\n \n \n \n )\n}\n\nexport default SocialIconLink\n","import React from \"react\"\nimport { useStaticQuery, graphql, Link } from \"gatsby\"\n\nimport { SocialIconLink } from \"../SocialReviews\"\nimport { Columns } from \"../../components/Containers\"\nimport GeneralHours from \"../Core/GeneralHours\"\nimport { Office, Phone } from \"../locations\"\n\nconst Footer = ({ language }) => {\n const { site, privacy, trans, socialAccounts, allLocations } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n fullPracticeName\n }\n }\n\n privacy: allPrivacyPagesJson {\n nodes {\n title\n name\n }\n }\n socialAccounts: allDataJson(\n filter: { optionsItem: { eq: \"siteVariables\" } }\n ) {\n nodes {\n socialAccounts {\n link\n platform\n }\n }\n }\n allLocations: allLocationsJson(\n filter: { useOnFooter: { eq: true } }\n sort: { fields: locationData___order }\n ) {\n nodes {\n title\n locationData {\n cityName\n cityZip\n email\n googlePlaceLink\n locationHours {\n endTime\n startTime\n weekDay\n }\n locationName\n phone\n fax\n stateAbbr\n stateName\n streetName\n streetNumber\n }\n }\n }\n trans: allTranslationsJson {\n nodes {\n credit {\n en\n es\n }\n by {\n en\n es\n }\n }\n }\n }\n `\n )\n const translations = trans.nodes[0]\n const social = socialAccounts.nodes[0].socialAccounts\n const locations = allLocations.nodes\n\n return (\n \n )\n}\n\nexport default Footer\n","import React, { PureComponent } from \"react\"\n\nexport function getScrollData (that) {\n let scrollHeight = that.state.scrollHeight\n let scrollOfset = that.state.scrollOfset\n let scrollPercentage = that.state.scrollPercentage\n scrollHeight =\n Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight\n ) - window.innerHeight\n \n scrollOfset = Math.round(window.pageYOffset)\n scrollPercentage = Math.round((scrollOfset / scrollHeight) * 100)\n that.setState({\n scrollPercentage: scrollPercentage,\n scrollHeight: scrollHeight,\n scrollOfset: scrollOfset,\n didScroll: true,\n })\n }\n\nexport function addScrollListener (that) {\n window.addEventListener('scroll', getScrollData(that), false);\n}\n\nexport default class scrollData extends PureComponent {\n constructor(props) {\n super(props)\n this.state = {\n scrollHeight: 0,\n scrollOfset: 0,\n scrollPercentage: 0,\n didScroll: false,\n scrollVal: 10\n }\n\n this.handleScrollAnimation = this.handleScrollAnimation.bind(this)\n }\n\n \n\n handleScrollAnimation(scrolltop) {\n var that = this\n that.setState({\n didScroll: true,\n scrollVal: 0,\n })\n // Create cross browser requestAnimationFrame method:\n window.requestAnimationFrame =\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function(f) {\n setTimeout(f, 1000 / 60)\n }\n var cutoutText = document.getElementById(\"cutoutText\")\n var underText = document.getElementById(\"underText\")\n var homeCarousel = document.getElementById(\"homeCar\")\n var stickyFab = document.getElementById(\"stickyFab\")\n var sizzleTheaterButton = document.getElementById(\"sizzleTheaterButton\")\n var comFooter = document.getElementById(\"main-homepage\");\n let scrollHeight = this.state.scrollHeight\n let scrollOfset = this.state.scrollOfset\n let scrollPercentage = this.state.scrollPercentage\n function parallaxScroll(selectedElement) {\n if (!scrolltop) {\n scrolltop = window.pageYOffset // get number of pixels document has scrolled vertically\n }\n if (scrolltop > 1) {\n //window.scrollTo(0, window.pageYOffset + that.state.scrollVal)\n setTimeout(function() {\n underText.style.opacity = \"1\";\n sizzleTheaterButton.style.opacity = \"1\";\n\n homeCarousel.style.display = \"block\";\n }, 200)\n setTimeout(function() {\n stickyFab.style.opacity = \"1\";\n homeCarousel.style.display = \"block\";\n comFooter.style.display = \"block\";\n }, 1500)\n\n selectedElement.style.top = -100 + \"vh\"\n }\n // else {\n // selectedElement.style.top = 0 + \"vh\"\n // }\n }\n\n function animateOnScroll() {\n cutoutText = document.getElementById(\"cutoutText\")\n requestAnimationFrame(() => {\n if (cutoutText){\n parallaxScroll(cutoutText)\n }\n }) // call parallaxScroll() on next available screen paint\n getScrollData()\n\n return scrollPercentage\n }\n\n animateOnScroll()\n }\n\n componentDidMount() {\n document.documentElement.classList.add(\"beforeWheel\")\n window.addEventListener('DOMMouseScroll', preventDefault, false);\n document.addEventListener('wheel', preventDefault, {passive: false}); // Disable scrolling in Chrome\n window.onwheel = preventDefault; // modern standard\n window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE\n window.ontouchmove = preventDefault; // mobile\n document.onkeydown = preventDefaultForScrollKeys; // keys\n\n var keys = {37: 1, 38: 1, 39: 1, 40: 1};\n var that = this\n\n function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault)\n e.preventDefault();\n e.returnValue = false; \n }\n \n function preventDefaultForScrollKeys(e) {\n if (keys[e.keyCode]) {\n preventDefault(e);\n return false;\n }\n }\n\n function scrollOverride() {\n document.documentElement.classList.remove(\"beforeWheel\")\n that.handleScrollAnimation(2)\n window.removeEventListener(\"wheel\", wheelEvent)\n window.removeEventListener(\"touchstart\", wheelEvent)\n window.removeEventListener('DOMMouseScroll', wheelEvent);\n window.removeEventListener('onwheel', wheelEvent);\n window.removeEventListener('onmousewheel', wheelEvent);\n window.removeEventListener('ontouchmove', wheelEvent);\n window.removeEventListener('keydown', wheelEvent);\n document.removeEventListener('onkeydown', wheelEvent);\n clearTimeout(forceScroll);\n setTimeout(() => {\n window.removeEventListener('DOMMouseScroll', preventDefault, false);\n document.removeEventListener('wheel', preventDefault, {passive: false}); // Enable scrolling in Chrome\n window.onwheel = null;\n window.onmousewheel = document.onmousewheel = null;\n window.ontouchmove = null;\n document.onkeydown = null;\n }, 1500);\n }\n \n const wheelEvent = e => {\n const delta = Math.sign(e.deltaY);\n if (delta != -1) {\n scrollOverride()\n }\n }\n\n var forceScroll = setTimeout(() => {\n scrollOverride()\n }, 7000);\n\n window.addEventListener(\"wheel\", wheelEvent)\n window.addEventListener(\"touchstart\", wheelEvent)\n window.addEventListener('DOMMouseScroll', wheelEvent);\n window.addEventListener('onwheel', wheelEvent);\n window.addEventListener('onmousewheel', wheelEvent);\n window.addEventListener('ontouchmove', wheelEvent);\n document.addEventListener('keydown', wheelEvent);\n window.addEventListener('onkeydown', wheelEvent);\n \n \n // if (this.state.didScroll == false) {\n // setTimeout(function() {\n // //window.scrollTo(0, window.pageYOffset + that.state.scrollVal)\n // //that.handleScrollAnimation()\n // }, 7000)\n // }\n }\n\n render() {\n\n return (\n <>\n >\n )\n }\n}\n","import React, { PureComponent } from \"react\"\nimport { getScrollData } from './scroll-data'\n\nexport default class ScrollTracker extends PureComponent {\n constructor(props) {\n super(props)\n this.state = {\n scrollPercentage: 0\n }\n }\n\n componentDidMount() {\n window.addEventListener('scroll', () => {\n const that = this;\n getScrollData(that); \n });\n }\n\n render() {\n const trackerStyle = {\n width: \"4px\",\n zIndex: 211,\n position: \"fixed\",\n top: \"0px\",\n right: \"0px\",\n height: \"100%\",\n transform: `scaleY(${this.state.scrollPercentage/100})`,\n transformOrigin: \"top\",\n transition: \"all .3s ease-out\",\n }\n\n return (\n <>\n \n >\n )\n }\n}\n","import React from \"react\"\nimport \"./SkipContent.scss\"\n\nconst SkipContent = ({ id }) => {\n return (\n \n Skip to main content\n \n )\n}\n\nexport default SkipContent\n","import React from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\nimport { graphql, StaticQuery } from \"gatsby\"\nimport ComMenu from \"./Menu/ComMenu.js\"\nimport \"../css/main.scss\"\nimport \"../../node_modules/aos/dist/aos.css\"\nimport { config } from \"@fortawesome/fontawesome-svg-core\"\nimport { CloudinaryContext } from \"cloudinary-react\"\nimport Footer from \"../components/footer/Footer\"\nimport { detectIE } from \"../components/Toast/comIEDetect\"\nimport ScrollTracker from \"../../scroll-tracker\"\nimport SkipContent from \"../components/SkipContent/SkipContent\"\n\nconfig.autoAddCss = false\n\nclass Layout extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n showMenu: true,\n browserStatus: false,\n browserName: \"\",\n pageLoaded: false,\n scrollPercentage: 0,\n iPhoneBottomNavVisible: false\n }\n\n this.handleiPhoneScroll = this.handleiPhoneScroll.bind(this)\n }\n\n componentDidMount() {\n const isBrowser = typeof window !== \"undefined\"\n const AOS = isBrowser ? require(\"aos\") : undefined\n\n this.aos = AOS\n this.aos.init({ disable: \"mobile\" })\n\n var that = this\n this.setState({\n innerHeight: window.innerHeight\n })\n var version = detectIE()\n if (version === false) {\n this.setState({ browserStatus: true }, () => {\n afterBrowserStatus(that)\n })\n }\n\n function afterBrowserStatus(that) {\n if (that.state.browserStatus) {\n that.setState({ pageLoaded: true })\n }\n }\n window.addEventListener(\"resize\", this.handleiPhoneScroll)\n }\n\n componentDidUpdate() {\n this.aos.refresh()\n document.documentElement.classList.remove(\"theater-is-open\")\n }\n\n handleiPhoneScroll() {\n let oldHeight = this.state.innerHeight\n if (window.innerHeight > oldHeight) {\n this.setState({\n innerHeight: window.innerHeight,\n iPhoneBottomNavVisible: true\n })\n } else {\n this.setState({\n innerHeight: window.innerHeight,\n iPhoneBottomNavVisible: false\n })\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.handleiPhoneScroll)\n }\n\n render() {\n return (\n {\n const filterPages = (arr, lang) => {\n return arr\n .filter(\n page =>\n page.node.pageContext.hasThisPage &&\n page.node.pageContext.searchHeading &&\n page.node.pageContext.language === lang\n )\n .map(data => data.node.pageContext)\n }\n\n const esSearchIndex = filterPages(data.allStatefulPages.edges, \"es\")\n const enSearchIndex = filterPages(data.allStatefulPages.edges, \"en\")\n\n const mainClasses = classNames(\n this.props.pageTitle,\n this.props.className,\n this.props.language\n )\n\n const bodyClasses = classNames({\n \"nav-spacer\": this.props.navSpacer\n })\n\n return (\n <>\n \n \n \n \n
\n \n \n {this.props.children}\n
\n\n \n \n
\n \n >\n )\n }}\n />\n )\n }\n}\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired\n}\n\nexport default Layout\n","import React from \"react\"\nimport classNames from \"classnames\"\n\nconst Office = ({\n city,\n gmb,\n heading,\n mode = \"dark\", // dark or light\n state,\n streetName,\n streetNumber,\n zip\n}) => {\n const streetFormat = `${streetNumber} ${streetName}`\n const cityStateFormat = `${city}, ${state} ${zip}`\n\n const wrapperClasses = classNames({\n \"office-address\": true,\n [`${mode}`]: true\n })\n\n return (\n \n )\n}\n\nexport default Office\n","import React from \"react\"\nimport classNames from \"classnames\"\nimport { telephoneStrip } from \"../../utils/utils\"\n\nconst Phone = ({ phoneNumber, countryCode = \"1\", textOnly, className }) => {\n const cleanNumber = telephoneStrip(phoneNumber)\n const telTo = `tel:+${countryCode}${cleanNumber}`\n\n const classes = classNames(className, {\n phonenumber: true,\n phonenumber__link: !textOnly\n })\n\n return (\n <>\n {textOnly ? (\n {phoneNumber}
\n ) : (\n \n {phoneNumber}\n \n )}\n >\n )\n}\n\nexport default Phone\n","import React, { Component } from \"react\"\nimport classNames from \"classnames\"\nimport PropTypes from \"prop-types\"\n\nclass GeneralHours extends Component {\n constructor(props) {\n super(props)\n this.state = {\n dateLines: []\n }\n }\n\n componentDidMount() {\n this.sortDays(this.props.locationHours)\n }\n\n sortDays(arr) {\n if (!arr) throw \"No array of days to sort, \" + arr + \" was received.\"\n const groupBy = (items, key) =>\n items.reduce(\n (result, item) => ({\n ...result,\n [item[key]]: [...(result[item[key]] || []), item]\n }),\n {}\n )\n\n let newArr = []\n for (let i = 0; i < arr.length; i++) {\n let obj = arr[i]\n obj.combinedTime = `${obj.startTime}–${obj.endTime}`\n obj.shortWeekDay = whatShortWeekDay(obj.weekDay, this.props.language)\n obj.fullWeekDAy = whatWeekDay(obj.weekDay, this.props.language)\n newArr.push(obj)\n }\n\n const sortedDates = groupBy(newArr, \"combinedTime\")\n\n for (let i = 0; i < sortedDates.length; i++) {\n sortedDates[i].sort((a, b) => (a.weekDay > b.weekDay ? 1 : -1))\n }\n\n let dayLineArr = []\n let combinedTimeObjs = []\n\n for (let key in sortedDates) {\n const obj = sortedDates[key]\n let tempArr = []\n let tempArrFullObj = []\n for (let i = 0; i < obj.length; i++) {\n tempArr.push({\n shortWeekDay: obj[i].shortWeekDay,\n weekDay: obj[i].weekDay\n })\n tempArrFullObj.push(obj[i])\n }\n dayLineArr.push(tempArr)\n combinedTimeObjs.push(tempArrFullObj)\n tempArr = []\n tempArrFullObj = []\n }\n\n let dayLineDays = []\n let dayLineTimes = []\n\n function nonConsecutiveDays() {\n if (allDaysAreConsecutive(dayLineArr)) {\n for (let i = 0; i < dayLineArr.length; i++) {\n dayLineDays.push(joinWithDash(dayLineArr[i]))\n\n let tempDayTimes = combinedTimeObjs[i][0].combinedTime\n dayLineTimes.push(tempDayTimes)\n }\n } else {\n for (let i = 0; i < dayLineArr.length; i++) {\n if (dayLineArr[i].length === 1) {\n dayLineDays.push(dayLineArr[i][0].shortWeekDay + \": \")\n } else if (daysInLineAreConsecutive(dayLineArr[i])) {\n dayLineDays.push(joinWithDash(dayLineArr[i]))\n } else {\n dayLineDays.push(joinWithCommas(dayLineArr[i]))\n }\n\n let tempDayTimes = combinedTimeObjs[i][0].combinedTime\n dayLineTimes.push(tempDayTimes)\n }\n }\n\n let finalDateLines = []\n\n for (let i = 0; i < dayLineDays.length; i++) {\n let obj = {}\n\n obj.days = dayLineDays[i]\n obj.times = dayLineTimes[i]\n finalDateLines.push(obj)\n }\n\n return finalDateLines\n }\n\n // Only one array of days\n function allDaysAreConsecutive(days) {\n if (days.length === 1) {\n return true\n }\n return false\n }\n\n // Join length of consecutive days with dash\n function joinWithDash(dayLineArr) {\n let tempDayLine =\n dayLineArr[0].shortWeekDay +\n \"–\" +\n dayLineArr[dayLineArr.length - 1].shortWeekDay\n tempDayLine += \": \"\n return tempDayLine\n }\n\n // Join non-all consecutive days with dash\n function joinWithCommas(dayLineArr) {\n let tempDayLine = []\n for (let j = 0; j < dayLineArr.length; j++) {\n tempDayLine.push(dayLineArr[j].shortWeekDay)\n }\n tempDayLine = tempDayLine.join(\", \")\n tempDayLine += \": \"\n return tempDayLine\n }\n\n // Check if every day - 1 is equal to the day before\n function daysInLineAreConsecutive(daysObj) {\n let consecutive = true\n for (let j = 1; j < daysObj.length; j++) {\n if (\n parseInt(daysObj[j - 1].weekDay) + 1 !==\n parseInt(daysObj[j].weekDay)\n ) {\n consecutive = false\n }\n }\n return consecutive\n }\n\n // One-off for Mon-Fri, needs to be re-worked\n function allConsecutiveDays() {\n let startDay = combinedTimeObjs[0][0]\n let endDay = combinedTimeObjs[0][0]\n\n for (let i = 0; i < combinedTimeObjs[0].length - 1; i++) {\n if (\n parseInt(combinedTimeObjs[0][i + 1].weekDay) ===\n parseInt(endDay.weekDay) + 1\n ) {\n endDay = combinedTimeObjs[0][i + 1]\n }\n }\n\n let tempDayLine = startDay.shortWeekDay + \"–\" + endDay.shortWeekDay + \": \"\n let tempDayTimes = combinedTimeObjs[0][0].combinedTime\n dayLineDays.push(tempDayLine)\n dayLineTimes.push(tempDayTimes)\n let finalDateLines = []\n let obj = {}\n\n obj.days = dayLineDays[0]\n obj.times = dayLineTimes[0]\n finalDateLines.push(obj)\n\n return finalDateLines\n }\n\n // allConsecutiveDays();\n\n let finalDateLines = nonConsecutiveDays()\n // let finalDateLines = allConsecutiveDays()\n\n function linkConsecutiveDays(days) {}\n\n this.setState({\n dateLines: finalDateLines\n })\n\n function whatWeekDay(date, language) {\n let day = date\n if (language && language === \"es\") {\n switch (day) {\n case \"0\":\n day = \"Domingo\"\n return day\n\n case \"1\":\n day = \"Lunes\"\n return day\n\n case \"2\":\n day = \"Martes\"\n return day\n\n case \"3\":\n day = \"Miércoles\"\n return day\n\n case \"4\":\n day = \"Jueves\"\n return day\n\n case \"5\":\n day = \"Viernes\"\n return day\n\n case \"6\":\n day = \"Sábado\"\n return day\n }\n }\n switch (day) {\n case \"0\":\n day = \"Sunday\"\n return day\n\n case \"1\":\n day = \"Monday\"\n return day\n\n case \"2\":\n day = \"Tuesday\"\n return day\n\n case \"3\":\n day = \"Wednesday\"\n return day\n\n case \"4\":\n day = \"Thursday\"\n return day\n\n case \"5\":\n day = \"Friday\"\n return day\n\n case \"6\":\n day = \"Saturday\"\n return day\n }\n }\n\n function whatShortWeekDay(date, language) {\n let day = date\n if (language && language === \"es\") {\n switch (day) {\n case \"0\":\n day = \"Do\"\n return day\n\n case \"1\":\n day = \"Lu\"\n return day\n\n case \"2\":\n day = \"Ma\"\n return day\n\n case \"3\":\n day = \"Mi\"\n return day\n\n case \"4\":\n day = \"Ju\"\n return day\n\n case \"5\":\n day = \"Vi\"\n return day\n\n case \"6\":\n day = \"Sa\"\n return day\n }\n }\n switch (day) {\n case \"0\":\n day = \"Sun\"\n return day\n\n case \"1\":\n day = \"Mon\"\n return day\n\n case \"2\":\n day = \"Tues\"\n return day\n\n case \"3\":\n day = \"Wed\"\n return day\n\n case \"4\":\n day = \"Thur\"\n return day\n\n case \"5\":\n day = \"Fri\"\n return day\n\n case \"6\":\n day = \"Sat\"\n return day\n }\n }\n }\n\n render() {\n let dateLines = this.state.dateLines.map((line, i) => (\n \n {line.times === \"–\" ? (\n <>>\n ) : (\n \n {line.days}\n {line.times}\n
\n \n )}\n \n ))\n\n const wrapperClass = classNames(this.props.className, {\n \"footer-hours\": this.props.footer,\n \"contact-sidebar-block\": this.props.contact\n })\n\n const paragraphClassName = classNames({\n small: this.props.footer,\n \"contact-hours\": this.props.contact\n })\n\n return (\n \n {this.props.heading &&
{this.props.heading}
}\n
{dateLines}
\n
\n )\n }\n}\n\nconst requiredPropsCheck = (props, propName, componentName) => {\n if (!props.footer && !props.contact) {\n return new Error(\n `One of 'footer' or 'contact' is required by '${componentName}' component.`\n )\n }\n if (props.footer && typeof props.footer !== \"boolean\") {\n return new Error(`'footer' is not a boolean`)\n }\n if (props.contact && typeof props.contact !== \"boolean\") {\n return new Error(`'contact' is not a boolean`)\n }\n}\n\nGeneralHours.propTypes = {\n className: PropTypes.string,\n locationHours: PropTypes.array.isRequired,\n language: PropTypes.string\n}\n\nexport default GeneralHours\n","import { useStaticQuery, graphql } from \"gatsby\"\nimport { telephoneStrip, convertTime12to24 } from \"../utils/utils\"\n\nconst useSchemas = schemaData => {\n const { site, siteVariables, locations } = useStaticQuery(graphql`\n query {\n site {\n siteMetadata {\n title\n siteUrl\n fullPracticeName\n }\n }\n siteVariables: allDataJson(\n filter: { optionsItem: { eq: \"siteVariables\" } }\n ) {\n nodes {\n datePublished\n socialImage\n logo\n clientType\n productontology {\n name\n link\n relatedLinks\n }\n }\n }\n locations: allLocationsJson(filter: { isSilo: { eq: false } }) {\n nodes {\n locationData {\n locationHours {\n startTime\n weekDay\n endTime\n }\n coords {\n lat\n lng\n }\n areaServed\n stateAbbr\n stateName\n streetName\n streetNumber\n cityName\n cityZip\n phone\n googlePlaceLink\n socialAccounts {\n link\n }\n }\n pageData {\n title\n }\n }\n }\n }\n `)\n const locationsFormatted = locations.nodes.map(l => ({\n ...l.locationData,\n slug: l.pageData.title\n }))\n\n const data = {\n ...schemaData,\n ...site.siteMetadata,\n ...siteVariables.nodes[0],\n locations: locationsFormatted\n }\n\n const clientTypes = {\n oms: \"http://www.productontology.org/id/Oral_and_maxillofacial_surgery\",\n dentist: \"http://www.productontology.org/id/Dentist\",\n ortho: \"http://www.productontology.org/id/Orthodontics\",\n endo: \"http://www.productontology.org/id/Endodontics\"\n }\n\n // @type: \"WebPage\"\n const createWebpageSchema = schema => ({\n \"@type\": \"WebPage\",\n \"@id\": `${schema.siteUrl + schema.path}#webpage`,\n url: schema.siteUrl + schema.path,\n inLanguage: schema.language === \"en\" ? \"en-US\" : null,\n name: schema.metaTitle || schema.fullPracticeName,\n datePublished: schema.datePublished,\n dateModified: schema.dateModified,\n description: schema.description\n })\n\n // @type: \"WebSite\"\n const createWebsiteSchema = schema => ({\n \"@type\": \"WebSite\",\n \"@id\": `${schema.siteUrl}/#website`,\n url: `${schema.siteUrl}/`,\n thumbnailUrl: schema.socialImage,\n name: schema.fullPracticeName,\n potentialAction: {\n \"@type\": \"SearchAction\",\n target: `${schema.siteUrl}/?s={search_term_string}`,\n \"query-input\": \"required name=search_term_string\"\n }\n })\n\n // @type: Organization\n const createOrganizationSchema = schema => {\n let sameAsArr = []\n const googleLinks = schema.locations.map(link => link.googlePlaceLink)\n const socials = schema.locations[0].socialAccounts.map(link => link.link)\n\n sameAsArr = [...googleLinks, ...socials]\n\n return {\n \"@type\": \"Organization\",\n \"@id\": `${schema.siteUrl}/`,\n name: schema.fullPracticeName,\n url: `${schema.siteUrl}/`,\n logo: schema.logo,\n sameAs: sameAsArr\n }\n }\n\n // @type: localBusiness\n const createBusinessSchema = (schema, location, isSingle) => {\n // weekday info map\n const weekdays = {\n 0: { abbr: \"Su\", order: 7 },\n 1: { abbr: \"Mo\", order: 1 },\n 2: { abbr: \"Tu\", order: 2 },\n 3: { abbr: \"We\", order: 3 },\n 4: { abbr: \"Th\", order: 4 },\n 5: { abbr: \"Fr\", order: 5 },\n 6: { abbr: \"Sa\", order: 6 }\n }\n const h = location.locationHours\n\n // loop 7 times AKA 1 week\n for (let i = 0; i <= 6; i++) {\n // check if location has hours set for a day in 'weekdays' map\n const find = h.find(day => day.weekDay == i)\n\n if (!find) {\n // if no hours, set them the hours to 00000\n weekdays[i].abbr += \" 00:00-00:00\"\n } else {\n // else format hours to 24hour format\n const hours = `${convertTime12to24(find.startTime)}-${convertTime12to24(\n find.endTime\n )}`\n weekdays[find.weekDay].abbr += ` ${hours}`\n }\n }\n\n // sort hours by weekday. start on monday, end on sunday\n const sortedHours = Object.values(weekdays)\n .sort((a, b) => a.order - b.order)\n .map(days => days.abbr)\n\n // extra schema properties if a single location page\n let singleLocationValues = {}\n if (isSingle) {\n singleLocationValues = {\n geo: {\n \"@type\": \"GeoCoordinates\",\n latitude: location.coords.lat,\n longitude: location.coords.lng\n },\n areaServed: location.areaServed,\n priceRange: \"unset\"\n }\n }\n\n return {\n \"@type\": \"LocalBusiness\",\n additionalType: [clientTypes[schema.clientType]],\n parentOrganization: {\n name: schema.fullPracticeName,\n \"@id\": `${schema.siteUrl}/#organization`\n },\n image: schema.socialImage,\n priceRange: \"unset\",\n name: `${schema.fullPracticeName} - ${location.cityName}`,\n address: {\n \"@type\": \"PostalAddress\",\n streetAddress: `${location.streetNumber} ${location.streetName}`,\n addressLocality: location.cityName,\n addressRegion: location.stateAbbr,\n postalCode: location.cityZip,\n telephone: `+1${telephoneStrip(location.phone)}`\n },\n openingHours: sortedHours,\n hasmap: location.googlePlaceLink,\n ...singleLocationValues\n }\n }\n\n // @type: MedicalProcedure\n const createMedicalProcedureSchema = schema => {\n const medical = {}\n\n // filter all productontology objects to use the ones single procedure page is asking for\n const findMatches = schema.productontology.filter(item =>\n schema.productontologyRelations.includes(item.name)\n )\n\n if (findMatches && findMatches.length > 0) {\n const types = []\n const related = []\n\n // loop through matches and push links to arrays\n findMatches.forEach(item => {\n types.push(item.link)\n if (item.relatedLinks) {\n item.relatedLinks.forEach(link => {\n related.push(link)\n })\n }\n })\n\n // create additionalType key/value\n medical.additionalType = types.length === 1 ? types[0] : types\n\n // create sameAs key/value if there are related links\n if (related.length > 0) {\n medical.sameAs = related\n }\n }\n\n return {\n \"@context\": \"https://schema.org/\",\n \"@type\": \"MedicalProcedure\",\n name: schema.procedureName,\n url: `${schema.siteUrl}${schema.path}`,\n image: schema.socialImage,\n description: schema.pageContent,\n ...medical\n }\n }\n\n // loop through schema presets and push final schemas into array\n const schemas = []\n\n if (data.presets && data.presets.length > 0) {\n // eslint-disable-next-line\n data.presets.forEach(type => {\n switch (type) {\n case \"webpage\":\n schemas.push(createWebpageSchema(data))\n break\n\n case \"website\":\n schemas.push(createWebsiteSchema(data))\n break\n\n case \"organization\":\n schemas.push(createOrganizationSchema(data))\n break\n\n case \"allLocations\":\n data.locations.forEach(location => {\n schemas.push(createBusinessSchema(data, location))\n })\n break\n\n case \"singleLocation\": {\n const find = data.locations.find(\n location =>\n `/${location.slug}` === `/${data.procedureLocation}` ||\n `/${location.slug}` === data.path\n )\n if (find) {\n schemas.push(createBusinessSchema(data, find, true))\n }\n break\n }\n\n case \"medicalQuery\":\n schemas.push(createMedicalProcedureSchema(data))\n break\n\n case \"singleMedical\":\n schemas.push(createMedicalProcedureSchema(data, true))\n break\n\n case \"custom\":\n schemas.push(data.customSchema)\n break\n default:\n return []\n }\n })\n }\n\n return {\n schemas\n }\n}\n\nexport default useSchemas\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Helmet from \"react-helmet\"\nimport { useStaticQuery, graphql } from \"gatsby\"\nimport useSchemas from \"../hooks/useSchemas\"\n\nfunction SEO({\n description,\n lang,\n meta,\n title,\n pathname,\n robots,\n preload,\n youtubeSchemas = [],\n schemaData\n}) {\n const { site, schema, social } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n siteUrl\n fullPracticeName\n }\n }\n schema: allDataJson(filter: { schemaGeneral: { ne: null } }) {\n nodes {\n schemaGeneral\n }\n }\n social: allDataJson(filter: { optionsItem: { eq: \"siteVariables\" } }) {\n nodes {\n socialImage\n }\n }\n }\n `\n )\n\n const { schemas } = useSchemas(schemaData)\n const combinedSchemas = schemas.concat(youtubeSchemas)\n\n let schemaJson = JSON.stringify(\n {\n \"@context\": {\n \"@vocab\": \"https://schema.org/\"\n },\n \"@graph\": combinedSchemas\n },\n null,\n 2\n )\n\n const socialImage = social.nodes[0].socialImage\n\n const metaRobots = robots\n\n const metaDescription = description || site.siteMetadata.description\n\n const siteUrl = site.siteMetadata.siteUrl\n\n const practiceName = site.siteMetadata.fullPracticeName\n\n return (\n \n {preload &&\n preload.map(item => (\n \n ))}\n\n {combinedSchemas.length > 0 && (\n \n )}\n \n )\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n description: ``\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string.isRequired\n}\n\nexport default SEO\n","// CMS utils\nexport function getClientCloudinaryMedia(fileType, keyword, antiKeyword) {\n var cldData = require(\"../../config.json\")\n var cldImages = cldData.images.resources\n var cldImagesFinal = []\n\n if (fileType) {\n for (let i = 0; i < cldImages.length; i++) {\n if (cldImages[i].format === fileType) {\n cldImagesFinal.push(cldImages[i].public_id)\n }\n }\n } else if (keyword) {\n for (let i = 0; i < cldImages.length; i++) {\n if (cldImages[i].public_id.includes(keyword)) {\n if (antiKeyword && !cldImages[i].public_id.includes(antiKeyword)) {\n cldImagesFinal.push(cldImages[i].public_id)\n } else if (!antiKeyword) {\n cldImagesFinal.push(cldImages[i].public_id)\n }\n }\n }\n } else {\n for (let i = 0; i < cldImages.length; i++) {\n cldImagesFinal.push(cldImages[i].public_id)\n }\n }\n return cldImagesFinal\n}\n\nexport function getPostObj(\n pageContext,\n englishNodes,\n spanishNodes,\n russianNodes\n) {\n let post\n let language\n\n try {\n post = setEnglishOrSpanishPost(\n pageContext.language,\n englishNodes,\n spanishNodes,\n russianNodes\n )\n language = pageContext.language\n } catch (err) {\n console.warn(err)\n post = englishNodes\n language = \"en\"\n }\n\n return { post: post, language: language }\n}\n\nfunction setEnglishOrSpanishPost(\n language,\n englishNodes,\n spanishNodes,\n russianNodes\n) {\n let post\n\n switch (language) {\n case \"en\":\n post = englishNodes\n break\n case \"es\":\n post = spanishNodes\n break\n case \"ru\":\n post = russianNodes\n break\n default:\n post = englishNodes\n }\n\n return post\n}\n\n// General Utils\nexport function sortArchive(archiveArray) {\n archiveArray.sort((a, b) => (a.order > b.order ? 1 : -1))\n}\n\nexport function shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1))\n ;[array[i], array[j]] = [array[j], array[i]]\n }\n}\n\nexport function getMonthYearFromStrings(year, month, language) {\n var localeLanguage\n if (language === \"es\") {\n localeLanguage = \"es-ES\"\n }\n const yearInt = parseInt(year)\n const monthInt = parseInt(month) - 1\n const date = new Date(yearInt, monthInt) // 2009-11-10\n const monthStr = date.toLocaleString(localeLanguage, { month: \"long\" })\n return capitalizeFirstLetter(monthStr) + \" \" + yearInt\n}\n\nexport function capitalizeFirstLetter(s) {\n if (typeof s !== \"string\") return \"\"\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nexport function getUnique(startingArray, targetProperty, valueToCompare) {\n let properties = []\n for (let i = 0; i < startingArray.length; i++) {\n properties.push(startingArray[i][targetProperty])\n }\n if (properties.includes(valueToCompare)) {\n return false\n }\n return true\n}\n\nexport function getUnrelatedReviews(targetArray, allElements, targetProperty) {\n var elementsWithTargetProperty = []\n var nonMatching = []\n\n elementsWithTargetProperty = getOnlyElementsWithTargetProperty(\n targetArray,\n targetProperty\n )\n nonMatching = getNonMatchingObjectsFromAllElements(\n elementsWithTargetProperty,\n allElements,\n targetProperty\n )\n return nonMatching\n}\n\nfunction getOnlyElementsWithTargetProperty(array, targetProperty) {\n var elementsWithTargetProperty = []\n for (let i = 0; i < array.length; i++) {\n elementsWithTargetProperty.push(array[i][targetProperty])\n }\n return elementsWithTargetProperty\n}\nfunction getNonMatchingObjectsFromAllElements(\n elementsWithTargetProperty,\n allElements,\n targetProperty\n) {\n var nonMatching = []\n for (let i = 0; i < allElements.length; i++) {\n if (\n elementsWithTargetProperty.includes(allElements[i][targetProperty]) ===\n false\n ) {\n nonMatching.push(allElements[i])\n }\n }\n return nonMatching\n}\n\nexport function sortReviewsByDate(reviews) {\n reviews.sort(function (a, b) {\n var aYear = a.monthYear.year\n var bYear = b.monthYear.year\n var aMonth = a.monthYear.month\n var bMonth = b.monthYear.month\n\n return bYear - aYear || bMonth - aMonth\n })\n return reviews\n}\n\n// Procedures functions\nexport function getFeaturedProceduresAndOtherProceduresObject(procedures) {\n var featuredProcedures = []\n var otherProcedures = []\n for (let i = 0; i < procedures.length; i++) {\n if (procedures[i].procedureLevel === \"featured\") {\n featuredProcedures.push(procedures[i])\n } else {\n otherProcedures.push(procedures[i])\n }\n }\n return { featuredProcedures, otherProcedures }\n}\n\nexport function getHearFromHeadingAndBlurbObject(\n procedure,\n originalReviewCount\n) {\n var heading\n var blurb\n\n if (isFacewallTextGeneric(procedure, originalReviewCount)) {\n heading = \"Hear From Our Patients\"\n blurb = \"\"\n } else {\n heading = \"Hear From \".concat(\n removeRball(procedure.nameSingular),\n \" Patients\"\n )\n if (procedure.nameSingular.toLowerCase() === \"wisdom tooth removal\") {\n heading = \"Hear From Wisdom Teeth Removal Patients\"\n }\n blurb =\n \"These patients can tell you about their firsthand experience undergoing \".concat(\n removeRball(procedure.nameSingular).toLowerCase(),\n \" at our office.\"\n )\n if (procedure.nameSingular.toLowerCase() === \"dental implant\") {\n blurb =\n \"These patients can tell you about their firsthand experience undergoing dental implant treatment at our office.\"\n }\n if (procedure.nameSingular.toLowerCase() === \"impacted canines\") {\n blurb =\n \"These patients can tell you about their firsthand experience undergoing impacted canine treatment at our office.\"\n }\n if (procedure.nameSingular.toLowerCase() === \"oral pathology\") {\n blurb =\n \"These patients can tell you about their firsthand experience undergoing oral pathology treatment at our office.\"\n }\n if (procedure.nameSingular.toLowerCase().includes(\"all-on-4\")) {\n let nameSingular = removeRball(procedure.nameSingular).toLowerCase()\n nameSingular = capitalizeFirstLetter(nameSingular)\n\n blurb =\n \"These patients can tell you about their firsthand experience undergoing \" +\n nameSingular +\n \" at our office.\"\n }\n }\n\n return { heading, blurb }\n}\nexport function isFacewallTextGeneric(procedure, originalReviewCount) {\n // 4 because that is the number of reviews possible in the current FixedFacewall\n if (procedure.nameSingular === null || originalReviewCount < 4) {\n return true\n }\n return false\n}\n\nexport function createHtml(html) {\n return { __html: html }\n}\n\nexport function toCamelCase(string) {\n string = string.trim()\n try {\n let out = \"\"\n string.split(\" \").forEach((el, idx) => {\n let add = el.toLowerCase()\n out += idx === 0 ? add : add[0].toUpperCase() + add.slice(1)\n })\n return out\n } catch (err) {\n console.log(\"toCamelCase failed\")\n }\n}\n\nexport function splitCamelCaseToString(string) {\n return string.replace(/([A-Z])/g, \" $1\").replace(/^./, function (str) {\n return str.toUpperCase()\n })\n}\n\n//Turns query string like hello=1&another=2 into object {hello: 1, another: 2}\nexport function parseSearchQuery(queryString) {\n var query = {}\n var pairs = (\n queryString[0] === \"?\" ? queryString.substr(1) : queryString\n ).split(\"&\")\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i].split(\"=\")\n query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || \"\")\n }\n return query\n}\n\nexport function pluralizeName(name) {\n const lastLetter = name.charAt(name.length - 1)\n if (lastLetter.toLowerCase() === \"s\") {\n return `${name}'`\n } else {\n return `${name}'s`\n }\n}\n\nexport function telephoneStrip(phone) {\n return phone.replace(/[^\\d]/g, \"\")\n}\n\nexport function wrapSup(string) {\n return string.replace(/((?!\\s*))®((?!\\s*<\\/sup>))/gi, \"®\")\n}\n\nexport function removeRball(string) {\n return string.replace(/((?!\\s*))®((?!\\s*<\\/sup>))/gi, \"\")\n}\n\n// Find variables in strings and replace them\n// Variables must be wrapped in curly brackets. ex. {MY_VARIABLE}\n// string = string\n// obj = object of matching variables\n// {\n// MY_VARIABLE: \"replaces variable with this text\"\n// }\nexport function replaceStringVars(string, obj) {\n let s = string\n for (var prop in obj) {\n s = s.replace(new RegExp(\"{\" + prop + \"}\", \"g\"), obj[prop])\n }\n return s\n}\n\n// Removes https, slashes, www from URLs\nexport function cleanURL(url) {\n return url.replace(/^(?:https?:\\/\\/)?(?:www\\.)?/i, \"\").split(\"/\")[0]\n}\n\nexport function convertTime12to24(time12h) {\n const [time, modifier] = time12h.split(\" \")\n\n let [hours, minutes] = time.split(\":\")\n\n if (hours === \"12\") {\n hours = \"00\"\n }\n\n if (modifier === \"PM\") {\n hours = parseInt(hours, 10) + 12\n }\n\n return `${hours}:${minutes}`\n}\n\nexport const toSentenceCase = str => {\n return str.replace(/\\.\\s+([a-z])[^\\.]|^(\\s*[a-z])[^\\.]/g, s =>\n s.replace(/([a-z])/, s => s.toUpperCase())\n )\n}\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","var $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es-x/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","var $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es-x/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n trimRight: trimEnd\n});\n","// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es-x/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n trimStart: trimStart\n});\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var arrayFilter = require('./_arrayFilter'),\n isFunction = require('./isFunction');\n\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nmodule.exports = baseFunctions;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsEndIndex;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\nmodule.exports = charsStartIndex;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = compact;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseFunctions = require('./_baseFunctions'),\n keys = require('./keys');\n\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nmodule.exports = functions;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nmodule.exports = isElement;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseToString = require('./_baseToString'),\n baseTrim = require('./_baseTrim'),\n castSlice = require('./_castSlice'),\n charsEndIndex = require('./_charsEndIndex'),\n charsStartIndex = require('./_charsStartIndex'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return baseTrim(string);\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nmodule.exports = trim;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var React = require('react');\n\nfunction LogoMarkInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},[React.createElement(\"clipPath\",{\"id\":\"i0\",\"key\":0},React.createElement(\"path\",{\"d\":\"M1440,0 L1440,3076 L0,3076 L0,0 L1440,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i1\",\"key\":1},React.createElement(\"path\",{\"d\":\"M39.9359049,0 C40.5982745,0 41.2606442,0.233082707 41.7671621,0.660401003 L58.7939582,14.6065163 C60.2745492,15.8107769 61.0148446,17.7531328 60.6641784,19.6177945 C59.4952908,26.8433584 55.7548504,33.4473684 50.1831529,38.2255639 C44.5724924,43.0426065 37.3253893,45.7230576 29.8834715,45.7230576 C16.3633383,45.7230576 4.44068474,37.0989975 0.23268937,24.2794486 C-0.42968027,22.1817043 0.34957813,19.8508772 2.21979829,18.6077694 L14.6489698,10.3333333 C15.1554877,9.90601504 15.8178574,9.67293233 16.480227,9.67293233 L16.6360787,9.67293233 C17.493263,9.71177945 18.2725214,10.1002506 18.8180022,10.7606516 L22.0129617,14.6453634 L38.0656847,0.69924812 C38.6111656,0.233082707 39.2345723,0 39.9359049,0 Z M40.0138307,5.59398496 L24.6624402,18.9185464 C23.8831818,19.5789474 22.8701459,19.9674185 21.85711,19.9674185 C21.1557774,19.9674185 20.4934078,19.773183 19.8700011,19.462406 C19.5582977,19.3070175 19.2855573,19.112782 19.0907427,18.8408521 L16.1295607,15.2280702 L4.98616562,22.6478697 C4.9472027,22.6867168 4.9472027,22.6867168 4.9472027,22.7255639 C8.49282842,33.5250627 18.5062989,40.7894737 29.9224344,40.7894737 C42.8581239,40.7894737 53.7677415,31.5827068 55.8717392,18.8408521 C55.9107021,18.6854637 55.8327763,18.5300752 55.6769246,18.4135338 L40.0138307,5.59398496 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i2\",\"key\":2},React.createElement(\"path\",{\"d\":\"M31.0144844,0 C47.8464658,0 61.5614137,13.4799499 61.9900058,30.1453634 C61.7562283,29.8345865 61.4834878,29.5626566 61.1717845,29.3295739 L57.002752,25.9110276 C54.6649768,13.7518797 43.9112109,4.50626566 31.0144844,4.50626566 C16.4423523,4.50626566 4.55866165,16.3157895 4.55866165,30.8834586 L4.55866165,31.6215539 L2.18192352,33.2142857 C1.44162804,33.7192982 0.818221321,34.3408521 0.31170336,35.0789474 C0.11688876,33.7192982 0,32.320802 0,30.9223058 C0,13.8684211 13.9097625,0 31.0144844,0 Z\"})),React.createElement(\"linearGradient\",{\"id\":\"i3\",\"x1\":\"31.0018993px\",\"y1\":\"-3.10058271px\",\"x2\":\"31.0018993px\",\"y2\":\"35.7182544px\",\"gradientUnits\":\"userSpaceOnUse\",\"key\":3},[React.createElement(\"stop\",{\"stopColor\":\"#214191\",\"offset\":\"0%\",\"key\":0}),React.createElement(\"stop\",{\"stopColor\":\"#009DE1\",\"offset\":\"50%\",\"key\":1}),React.createElement(\"stop\",{\"stopColor\":\"#00A579\",\"offset\":\"100%\",\"key\":2})])]),React.createElement(\"g\",{\"transform\":\"translate(-159.0 -38.0)\",\"key\":1},React.createElement(\"g\",{\"clipPath\":\"url(#i0)\"},React.createElement(\"g\",{\"transform\":\"translate(159.0 38.0)\"},[React.createElement(\"g\",{\"transform\":\"translate(1.0920499112228264 16.276942355889986)\",\"key\":0},React.createElement(\"g\",{\"clipPath\":\"url(#i1)\"},React.createElement(\"polygon\",{\"points\":\"-4.4408921e-16,0 60.7502291,0 60.7502291,45.7230576 -4.4408921e-16,45.7230576 -4.4408921e-16,0\",\"stroke\":\"none\",\"fill\":\"#F0D118\"}))),React.createElement(\"g\",{\"clipPath\":\"url(#i2)\",\"key\":1},React.createElement(\"polygon\",{\"points\":\"0,0 61.9900058,0 61.9900058,35.0789474 0,35.0789474 0,0\",\"stroke\":\"none\",\"fill\":\"url(#i3)\"}))])))]);\n}\n\nLogoMarkInline.defaultProps = {\"role\":\"presentation\",\"version\":\"1.1\",\"width\":\"62px\",\"height\":\"62px\",\"viewBox\":\"0 0 62.0 62.0\"};\n\nmodule.exports = LogoMarkInline;\n\nLogoMarkInline.default = LogoMarkInline;\n","var React = require('react');\n\nfunction LogoInline (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"defs\",{\"key\":0},[React.createElement(\"clipPath\",{\"id\":\"i0\",\"key\":0},React.createElement(\"path\",{\"d\":\"M1440,0 L1440,3076 L0,3076 L0,0 L1440,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i1\",\"key\":1},React.createElement(\"path\",{\"d\":\"M39.9359049,0 C40.5982745,0 41.2606442,0.233082707 41.7671621,0.660401003 L58.7939582,14.6065163 C60.2745492,15.8107769 61.0148446,17.7531328 60.6641784,19.6177945 C59.4952908,26.8433584 55.7548504,33.4473684 50.1831529,38.2255639 C44.5724924,43.0426065 37.3253893,45.7230576 29.8834715,45.7230576 C16.3633383,45.7230576 4.44068474,37.0989975 0.23268937,24.2794486 C-0.42968027,22.1817043 0.34957813,19.8508772 2.21979829,18.6077694 L14.6489698,10.3333333 C15.1554877,9.90601504 15.8178574,9.67293233 16.480227,9.67293233 L16.6360787,9.67293233 C17.493263,9.71177945 18.2725214,10.1002506 18.8180022,10.7606516 L22.0129617,14.6453634 L38.0656847,0.69924812 C38.6111656,0.233082707 39.2345723,0 39.9359049,0 Z M40.0138307,5.59398496 L24.6624402,18.9185464 C23.8831818,19.5789474 22.8701459,19.9674185 21.85711,19.9674185 C21.1557774,19.9674185 20.4934078,19.773183 19.8700011,19.462406 C19.5582977,19.3070175 19.2855573,19.112782 19.0907427,18.8408521 L16.1295607,15.2280702 L4.98616562,22.6478697 C4.9472027,22.6867168 4.9472027,22.6867168 4.9472027,22.7255639 C8.49282842,33.5250627 18.5062989,40.7894737 29.9224344,40.7894737 C42.8581239,40.7894737 53.7677415,31.5827068 55.8717392,18.8408521 C55.9107021,18.6854637 55.8327763,18.5300752 55.6769246,18.4135338 L40.0138307,5.59398496 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i2\",\"key\":2},React.createElement(\"path\",{\"d\":\"M31.0144844,0 C47.8464658,0 61.5614137,13.4799499 61.9900058,30.1453634 C61.7562283,29.8345865 61.4834878,29.5626566 61.1717845,29.3295739 L57.002752,25.9110276 C54.6649768,13.7518797 43.9112109,4.50626566 31.0144844,4.50626566 C16.4423523,4.50626566 4.55866165,16.3157895 4.55866165,30.8834586 L4.55866165,31.6215539 L2.18192352,33.2142857 C1.44162804,33.7192982 0.818221321,34.3408521 0.31170336,35.0789474 C0.11688876,33.7192982 0,32.320802 0,30.9223058 C0,13.8684211 13.9097625,0 31.0144844,0 Z\"})),React.createElement(\"linearGradient\",{\"id\":\"i3\",\"x1\":\"31.0018993px\",\"y1\":\"-3.10058271px\",\"x2\":\"31.0018993px\",\"y2\":\"35.7182544px\",\"gradientUnits\":\"userSpaceOnUse\",\"key\":3},[React.createElement(\"stop\",{\"stopColor\":\"#214191\",\"offset\":\"0%\",\"key\":0}),React.createElement(\"stop\",{\"stopColor\":\"#009DE1\",\"offset\":\"50%\",\"key\":1}),React.createElement(\"stop\",{\"stopColor\":\"#00A579\",\"offset\":\"100%\",\"key\":2})]),React.createElement(\"clipPath\",{\"id\":\"i4\",\"key\":4},React.createElement(\"path\",{\"d\":\"M9.15628621,0 C11.1823581,0 12.9356895,0.505012531 14.4162804,1.47619048 C15.8968714,2.44736842 16.9488702,3.84586466 17.4943511,5.63283208 L13.4032445,5.63283208 L13.4032445,5.59398496 C12.9746524,4.85588972 12.4291715,4.27318296 11.688876,3.88471178 C10.9875435,3.4962406 10.1303592,3.30200501 9.15628621,3.30200501 C8.10428737,3.30200501 7.16917729,3.53508772 6.31199305,4.00125313 C5.49377173,4.46741855 4.83140209,5.16666667 4.40280997,6.06015038 C3.93525492,6.95363409 3.7014774,7.96365915 3.7014774,9.12907268 C3.7014774,10.3333333 3.93525492,11.3822055 4.40280997,12.2756892 C4.87036501,13.1691729 5.53273465,13.8295739 6.35095597,14.3345865 C7.20814021,14.8007519 8.18221321,15.0338346 9.27317497,15.0338346 C10.6368772,15.0338346 11.7668019,14.6842105 12.6239861,13.9461153 C13.4811703,13.2080201 14.0656141,12.197995 14.3383546,10.9160401 L8.18221321,10.9160401 L8.18221321,8.15789474 L17.9229432,8.15789474 L17.9229432,11.3045113 C17.6891657,12.547619 17.1826477,13.7130326 16.3644264,14.7619048 C15.585168,15.8107769 14.5721321,16.6654135 13.3253187,17.3258145 C12.0785052,17.9473684 10.6758401,18.2969925 9.15628621,18.2969925 C7.44191773,18.2969925 5.84443801,17.9085213 4.48073581,17.1315789 C3.07807068,16.3546366 1.98710892,15.2669173 1.20785052,13.8684211 C0.428592121,12.4699248 0,10.9160401 0,9.1679198 C0,7.4197995 0.3896292,5.82706767 1.20785052,4.42857143 C1.98710892,3.03007519 3.1170336,1.94235589 4.48073581,1.16541353 C5.88340093,0.388471178 7.44191773,0 9.15628621,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i5\",\"key\":5},React.createElement(\"path\",{\"d\":\"M7.36399189,0 C8.72769409,0 9.97450753,0.310776942 11.1044322,0.893483709 C12.2343569,1.51503759 13.0915411,2.36967419 13.7539108,3.45739348 C14.3773175,4.5839599 14.7279838,5.86591479 14.7279838,7.30325815 C14.7279838,8.7406015 14.4162804,10.0225564 13.7539108,11.1491228 C13.0915411,12.2756892 12.195394,13.1303258 11.0654693,13.7130326 C9.93554461,14.3345865 8.68873117,14.6065163 7.28606605,14.6065163 C5.84443801,14.6065163 4.59762457,14.3345865 3.5066628,13.7130326 C2.41570104,13.0914787 1.5585168,12.2368421 0.935110081,11.1491228 C0.31170336,10.0225564 0,8.7406015 0,7.30325815 C0,5.86591479 0.31170336,4.5839599 0.974073001,3.45739348 C1.59747972,2.33082707 2.49362688,1.47619048 3.62355156,0.893483709 C4.75347625,0.271929825 5.96132677,0 7.36399189,0 Z M7.24710313,3.10776942 C6.23406721,3.10776942 5.33792005,3.45739348 4.67555041,4.19548872 C3.97421784,4.93358396 3.62355156,5.94360902 3.62355156,7.30325815 C3.62355156,8.66290727 3.97421784,9.71177945 4.63658749,10.4110276 C5.29895713,11.1491228 6.15614137,11.4987469 7.20814021,11.4987469 C7.87050985,11.4987469 8.49391657,11.3433584 9.03939745,11.0325815 C9.62384125,10.7218045 10.0913963,10.2556391 10.4030997,9.5952381 C10.7537659,8.97368421 10.9096176,8.19674185 10.9096176,7.30325815 C10.9096176,5.94360902 10.5589513,4.89473684 9.85761877,4.19548872 C9.15628621,3.45739348 8.26013905,3.10776942 7.24710313,3.10776942 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i6\",\"key\":6},React.createElement(\"path\",{\"d\":\"M3.58458864,0 L3.58458864,18.9573935 L0,18.9573935 L0,0 L3.58458864,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i7\",\"key\":7},React.createElement(\"path\",{\"d\":\"M14.8059096,0 L14.8059096,18.9573935 L11.1433951,18.9573935 L11.1433951,16.8596491 C10.714803,17.5588972 10.0524334,18.141604 9.27317497,18.5689223 C8.45495365,18.9962406 7.51984357,19.1904762 6.46784473,19.1904762 C5.25999421,19.1904762 4.16903244,18.8796992 3.19495944,18.2581454 C2.18192352,17.6365915 1.40266512,16.7819549 0.857184241,15.6553885 C0.27274044,14.5288221 0,13.2468672 0,11.8095238 C0,10.3721805 0.27274044,9.12907268 0.857184241,8.00250627 C1.44162804,6.87593985 2.22088644,6.02130326 3.19495944,5.43859649 C4.20799537,4.85588972 5.29895713,4.54511278 6.50680765,4.54511278 C7.44191773,4.54511278 8.29910197,4.73934837 9.15628621,5.16666667 C10.0134705,5.55513784 10.6758401,6.09899749 11.1433951,6.7593985 L11.1433951,0 L14.8059096,0 Z M7.40295481,7.69172932 C6.74058517,7.69172932 6.11717845,7.84711779 5.53273465,8.19674185 C4.94829085,8.5075188 4.51969873,9.01253133 4.16903244,9.63408521 C3.81836616,10.2556391 3.62355156,10.9937343 3.62355156,11.8483709 C3.62355156,12.7030075 3.81836616,13.4411028 4.16903244,14.1015038 C4.51969873,14.7230576 4.98725377,15.2280702 5.57169757,15.5776942 C6.15614137,15.9273183 6.74058517,16.0827068 7.40295481,16.0827068 C8.06532445,16.0827068 8.68873117,15.9273183 9.27317497,15.5776942 C9.85761877,15.2280702 10.3251738,14.7619048 10.6758401,14.1403509 C11.0265064,13.518797 11.1823581,12.7807018 11.1823581,11.887218 C11.1823581,10.9937343 11.0265064,10.2556391 10.6758401,9.63408521 C10.3251738,9.01253133 9.85761877,8.54636591 9.27317497,8.19674185 C8.68873117,7.84711779 8.06532445,7.69172932 7.40295481,7.69172932 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i8\",\"key\":8},React.createElement(\"path\",{\"d\":\"M7.16917729,0 C8.53287949,0 9.74073001,0.271929825 10.7927289,0.854636591 C11.8836906,1.43734336 12.7019119,2.25313283 13.2863557,3.34085213 C13.8707995,4.42857143 14.1825029,5.63283208 14.1825029,7.03132832 C14.1045771,7.53634085 14.1045771,8.00250627 14.0266512,8.39097744 L3.62355156,8.39097744 C3.7014774,9.40100251 4.05214368,10.216792 4.71451333,10.7994987 C5.33792005,11.3822055 6.11717845,11.6541353 7.05228853,11.6541353 C8.37702781,11.6541353 9.35110081,11.0714286 9.89658169,9.94486216 L13.7928737,9.94486216 C13.3642816,11.3045113 12.5850232,12.4310777 11.4161356,13.3245614 C10.247248,14.2180451 8.80561993,14.6453634 7.13021437,14.6453634 C5.76651217,14.6453634 4.51969873,14.3345865 3.42873696,13.7518797 C2.3377752,13.1303258 1.48059096,12.2756892 0.896147161,11.1879699 C0.27274044,10.0614035 0,8.77944862 0,7.34210526 C0,5.86591479 0.31170336,4.5839599 0.896147161,3.45739348 C1.48059096,2.33082707 2.3377752,1.47619048 3.42873696,0.893483709 C4.51969873,0.310776942 5.76651217,0 7.16917729,0 Z M7.01332561,2.95238095 C6.11717845,2.95238095 5.37688297,3.22431078 4.75347625,3.76817043 C4.13006952,4.31203008 3.77940324,5.05012531 3.62355156,6.02130326 L10.4030997,6.02130326 L10.4030997,5.98245614 C10.4030997,5.05012531 10.0524334,4.31203008 9.39006373,3.76817043 C8.72769409,3.22431078 7.94843569,2.95238095 7.01332561,2.95238095 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i9\",\"key\":9},React.createElement(\"path\",{\"d\":\"M11.9616165,1.59467563 C13.0136153,2.68239492 13.5201333,4.1585854 13.5201333,6.06209417 L13.5201333,14.4142245 L9.93554461,14.4142245 L9.93554461,6.5671067 C9.93554461,5.44054029 9.66280417,4.5859037 9.07836037,3.96434981 C8.49391657,3.34279593 7.75362109,3.0708661 6.77954809,3.0708661 C5.76651217,3.0708661 4.98725377,3.38164305 4.44177289,3.96434981 C3.85732908,4.5859037 3.58458864,5.44054029 3.58458864,6.5671067 L3.58458864,14.4142245 L0,14.4142245 L0,0.196179386 L3.58458864,0.196179386 L3.58458864,1.9831468 C4.05214368,1.36159292 4.67555041,0.895427506 5.41584589,0.545803446 C6.15614137,0.196179386 6.97436269,0.00194379708 7.87050985,0.00194379708 C9.54591541,-0.0369033207 10.9485805,0.506956328 11.9616165,1.59467563 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i10\",\"key\":10},React.createElement(\"path\",{\"d\":\"M11.0654693,0 L11.0654693,2.91353383 L3.58458864,2.91353383 L3.58458864,7.49749373 L9.31213789,7.49749373 L9.31213789,10.3333333 L3.58458864,10.3333333 L3.58458864,17.9085213 L0,17.9085213 L0,0 L11.0654693,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i11\",\"key\":11},React.createElement(\"path\",{\"d\":\"M7.36399189,0 C8.72769409,0 9.97450753,0.310776942 11.1044322,0.893483709 C12.2343569,1.51503759 13.0915411,2.36967419 13.7539108,3.45739348 C14.3773175,4.5839599 14.7279838,5.86591479 14.7279838,7.30325815 C14.7279838,8.7406015 14.4162804,10.0225564 13.7539108,11.1491228 C13.0915411,12.2756892 12.195394,13.1303258 11.0654693,13.7130326 C9.93554461,14.3345865 8.68873117,14.6065163 7.28606605,14.6065163 C5.84443801,14.6065163 4.59762457,14.3345865 3.5066628,13.7130326 C2.41570104,13.0914787 1.5585168,12.2368421 0.935110081,11.1491228 C0.31170336,10.0225564 0,8.7406015 0,7.30325815 C0,5.86591479 0.31170336,4.5839599 0.974073001,3.45739348 C1.59747972,2.33082707 2.49362688,1.47619048 3.62355156,0.893483709 C4.75347625,0.271929825 5.96132677,0 7.36399189,0 Z M7.28606605,3.10776942 C6.27303013,3.10776942 5.37688297,3.45739348 4.71451333,4.19548872 C4.01318076,4.93358396 3.66251448,5.94360902 3.66251448,7.30325815 C3.66251448,8.66290727 4.01318076,9.71177945 4.67555041,10.4110276 C5.33792005,11.1491228 6.19510429,11.4987469 7.24710313,11.4987469 C7.87050985,11.4987469 8.49391657,11.3433584 9.07836037,11.0325815 C9.66280417,10.7218045 10.1303592,10.2556391 10.4420626,9.5952381 C10.7927289,8.97368421 10.9485805,8.19674185 10.9485805,7.30325815 C10.9485805,5.94360902 10.5979143,4.89473684 9.89658169,4.19548872 C9.19524913,3.45739348 8.29910197,3.10776942 7.28606605,3.10776942 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i12\",\"key\":12},React.createElement(\"path\",{\"d\":\"M7.36399189,0 C8.72769409,0 9.97450753,0.310776942 11.1044322,0.893483709 C12.2343569,1.51503759 13.0915411,2.36967419 13.7539108,3.45739348 C14.3773175,4.5839599 14.7279838,5.86591479 14.7279838,7.30325815 C14.7279838,8.7406015 14.4162804,10.0225564 13.7539108,11.1491228 C13.0915411,12.2756892 12.195394,13.1303258 11.0654693,13.7130326 C9.93554461,14.3345865 8.68873117,14.6065163 7.28606605,14.6065163 C5.84443801,14.6065163 4.59762457,14.3345865 3.5066628,13.7130326 C2.41570104,13.0914787 1.5585168,12.2368421 0.935110081,11.1491228 C0.31170336,10.0225564 0,8.7406015 0,7.30325815 C0,5.86591479 0.31170336,4.5839599 0.974073001,3.45739348 C1.59747972,2.33082707 2.49362688,1.47619048 3.62355156,0.893483709 C4.75347625,0.271929825 5.96132677,0 7.36399189,0 Z M7.24710313,3.10776942 C6.23406721,3.10776942 5.33792005,3.45739348 4.67555041,4.19548872 C3.97421784,4.93358396 3.62355156,5.94360902 3.62355156,7.30325815 C3.62355156,8.66290727 3.97421784,9.71177945 4.63658749,10.4110276 C5.29895713,11.1491228 6.15614137,11.4987469 7.20814021,11.4987469 C7.87050985,11.4987469 8.45495365,11.3433584 9.03939745,11.0325815 C9.62384125,10.7218045 10.0913963,10.2556391 10.4030997,9.5952381 C10.7537659,8.97368421 10.9096176,8.19674185 10.9096176,7.30325815 C10.9096176,5.94360902 10.5589513,4.89473684 9.85761877,4.19548872 C9.15628621,3.45739348 8.26013905,3.10776942 7.24710313,3.10776942 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i13\",\"key\":13},React.createElement(\"path\",{\"d\":\"M5.33792005,0 L5.33792005,3.4962406 L8.53287949,3.4962406 L8.53287949,6.44862155 L5.33792005,6.44862155 L5.33792005,13.3245614 C5.33792005,13.7907268 5.45480881,14.1403509 5.68858633,14.3734336 C5.92236385,14.6065163 6.31199305,14.6842105 6.85747393,14.6842105 L8.53287949,14.6842105 L8.53287949,17.7142857 L6.27303013,17.7142857 C3.23392236,17.7142857 1.71436848,16.2380952 1.71436848,13.2857143 L1.71436848,6.44862155 L0,6.44862155 L0,3.4962406 L1.71436848,3.4962406 L1.71436848,0 L5.33792005,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i14\",\"key\":14},React.createElement(\"path\",{\"d\":\"M3.58458864,0 L3.58458864,6.52631579 C4.05214368,5.9047619 4.67555041,5.43859649 5.45480881,5.08897243 C6.23406721,4.73934837 7.09125145,4.54511278 8.02636153,4.54511278 C9.03939745,4.50626566 9.97450753,4.77819549 10.8316918,5.2443609 C11.688876,5.71052632 12.3122827,6.40977444 12.8188007,7.30325815 C13.2863557,8.23558897 13.5201333,9.32330827 13.5201333,10.6052632 L13.5201333,18.9573935 L9.93554461,18.9573935 L9.93554461,11.1102757 C9.93554461,9.98370927 9.66280417,9.12907268 9.07836037,8.5075188 C8.49391657,7.88596491 7.75362109,7.61403509 6.77954809,7.61403509 C5.76651217,7.61403509 4.98725377,7.92481203 4.44177289,8.5075188 C3.85732908,9.12907268 3.58458864,9.98370927 3.58458864,11.1102757 L3.58458864,18.9573935 L0,18.9573935 L0,0 L3.58458864,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i15\",\"key\":15},React.createElement(\"path\",{\"d\":\"M3.97421784,5.94360902 L3.97421784,20.1616541 L0.3896292,20.1616541 L0.3896292,5.94360902 L3.97421784,5.94360902 Z M2.22088644,0 C2.84429316,0 3.38977404,0.194235589 3.81836616,0.621553885 C4.24695829,1.01002506 4.44177289,1.51503759 4.44177289,2.13659148 C4.44177289,2.71929825 4.24695829,3.22431078 3.81836616,3.65162907 C3.38977404,4.04010025 2.88325608,4.27318296 2.22088644,4.27318296 C1.5585168,4.23433584 1.05199884,4.04010025 0.623406721,3.65162907 C0.1948146,3.26315789 0,2.75814536 0,2.13659148 C0,1.55388471 0.1948146,1.04887218 0.623406721,0.621553885 C1.05199884,0.233082707 1.5585168,0 2.22088644,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i16\",\"key\":16},React.createElement(\"path\",{\"d\":\"M3.58458864,0 L3.58458864,18.9573935 L0,18.9573935 L0,0 L3.58458864,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i17\",\"key\":17},React.createElement(\"path\",{\"d\":\"M3.58458864,0 L3.58458864,18.9573935 L0,18.9573935 L0,0 L3.58458864,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i18\",\"key\":18},React.createElement(\"path\",{\"d\":\"M5.92236385,0 C7.63673233,0 8.96147161,0.427318296 9.97450753,1.28195489 C10.9875435,2.13659148 11.5330243,3.26315789 11.6499131,4.70050125 L8.26013905,4.70050125 C8.22117613,4.11779449 7.98739861,3.69047619 7.55880649,3.34085213 C7.13021437,2.99122807 6.58473349,2.8358396 5.88340093,2.8358396 C5.22103129,2.8358396 4.71451333,2.95238095 4.36384705,3.18546366 C4.01318076,3.41854637 3.81836616,3.76817043 3.81836616,4.19548872 C3.81836616,4.66165414 4.05214368,5.05012531 4.51969873,5.28320802 C4.98725377,5.51629073 5.72754925,5.78822055 6.74058517,6.02130326 C7.75362109,6.29323308 8.61080533,6.52631579 9.27317497,6.79824561 C9.93554461,7.07017544 10.5199884,7.49749373 11.0265064,8.0802005 C11.5330243,8.66290727 11.7668019,9.40100251 11.7668019,10.3333333 C11.7668019,11.1491228 11.5330243,11.887218 11.1044322,12.547619 C10.6368772,13.2080201 10.0134705,13.7130326 9.15628621,14.0626566 C8.29910197,14.4122807 7.32502897,14.6065163 6.19510429,14.6065163 C5.06517961,14.6453634 4.01318076,14.4511278 3.07807068,14.0238095 C2.1429606,13.5964912 1.40266512,13.0526316 0.896147161,12.3145363 C0.35066628,11.6152882 0.0779258401,10.7994987 0,9.94486216 L3.62355156,9.94486216 C3.7014774,10.4887218 3.97421784,10.9548872 4.44177289,11.3045113 C4.90932793,11.6541353 5.49377173,11.8483709 6.19510429,11.8483709 C6.89643685,11.8483709 7.40295481,11.6929825 7.79258401,11.4210526 C8.18221321,11.1491228 8.37702781,10.7994987 8.37702781,10.3721805 C8.37702781,9.90601504 8.14325029,9.55639098 7.67569525,9.32330827 C7.20814021,9.09022556 6.46784473,8.85714286 5.41584589,8.58521303 C4.36384705,8.31328321 3.46769988,8.0802005 2.80533024,7.80827068 C2.1429606,7.53634085 1.5585168,7.10902256 1.05199884,6.56516291 C0.545480881,5.98245614 0.31170336,5.2443609 0.31170336,4.27318296 C0.31170336,3.4962406 0.545480881,2.75814536 0.974073001,2.13659148 C1.44162804,1.47619048 2.06503476,0.971177945 2.922219,0.582706767 C3.77940324,0.194235589 4.75347625,0 5.92236385,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i19\",\"key\":19},React.createElement(\"path\",{\"d\":\"M3.77940324,0 C4.48073581,0 5.14310545,0.155388471 5.68858633,0.505012531 C6.27303013,0.815789474 6.70162225,1.28195489 7.05228853,1.86466165 C7.36399189,2.44736842 7.55880649,3.10776942 7.55880649,3.84586466 C7.55880649,4.5839599 7.40295481,5.2443609 7.05228853,5.82706767 C6.74058517,6.40977444 6.27303013,6.87593985 5.68858633,7.18671679 C5.10414253,7.49749373 4.48073581,7.69172932 3.77940324,7.69172932 C3.07807068,7.65288221 2.45466396,7.49749373 1.87022016,7.18671679 C1.28577636,6.87593985 0.857184241,6.40977444 0.506517961,5.82706767 C0.1948146,5.2443609 0,4.5839599 0,3.84586466 C0,3.10776942 0.15585168,2.44736842 0.506517961,1.86466165 C0.818221321,1.28195489 1.28577636,0.815789474 1.87022016,0.505012531 C2.45466396,0.194235589 3.07807068,0 3.77940324,0 Z M3.77940324,0.582706767 C3.23392236,0.582706767 2.7274044,0.69924812 2.25984936,0.971177945 C1.79229432,1.24310777 1.44162804,1.59273183 1.20785052,2.09774436 C0.935110081,2.56390977 0.818221321,3.14661654 0.818221321,3.76817043 C0.818221321,4.42857143 0.935110081,4.97243108 1.20785052,5.47744361 C1.48059096,5.98245614 1.83125724,6.3320802 2.25984936,6.60401003 C2.7274044,6.87593985 3.23392236,6.9924812 3.77940324,6.9924812 C4.36384705,6.9924812 4.87036501,6.87593985 5.29895713,6.60401003 C5.76651217,6.3320802 6.11717845,5.98245614 6.35095597,5.47744361 C6.62369641,4.97243108 6.74058517,4.42857143 6.74058517,3.76817043 C6.74058517,3.10776942 6.62369641,2.56390977 6.35095597,2.09774436 C6.07821553,1.63157895 5.72754925,1.24310777 5.29895713,0.971177945 C4.83140209,0.69924812 4.36384705,0.582706767 3.77940324,0.582706767 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i20\",\"key\":20},React.createElement(\"path\",{\"d\":\"M2.76636732,0 L2.76636732,0.776942356 L2.57155272,0.776942356 C2.02607184,0.776942356 1.59747972,0.932330827 1.24681344,1.20426065 C0.896147161,1.51503759 0.740295481,1.98120301 0.740295481,2.68045113 L0.740295481,5.98245614 L0,5.98245614 L0,0.0776942356 L0.740295481,0.0776942356 L0.740295481,1.12656642 C0.935110081,0.815789474 1.1688876,0.543859649 1.51955388,0.310776942 C1.87022016,0.116541353 2.29881228,0 2.76636732,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i21\",\"key\":21},React.createElement(\"path\",{\"d\":\"M2.80533024,0 C3.35081112,0 3.85732908,0.116541353 4.24695829,0.388471178 C4.63658749,0.660401003 4.94829085,0.971177945 5.14310545,1.39849624 L5.14310545,0.116541353 L5.88340093,0.116541353 L5.88340093,6.02130326 L5.14310545,6.02130326 L5.14310545,4.70050125 C4.94829085,5.08897243 4.67555041,5.43859649 4.24695829,5.71052632 C3.85732908,5.98245614 3.35081112,6.09899749 2.80533024,6.09899749 C2.25984936,6.09899749 1.79229432,5.98245614 1.3637022,5.71052632 C0.935110081,5.47744361 0.584443801,5.08897243 0.35066628,4.62280702 C0.11688876,4.1566416 0,3.61278195 0,3.03007519 C0,2.44736842 0.11688876,1.90350877 0.35066628,1.43734336 C0.584443801,0.971177945 0.935110081,0.621553885 1.3637022,0.388471178 C1.79229432,0.155388471 2.29881228,0 2.80533024,0 Z M2.96118192,0.69924812 C2.5325898,0.69924812 2.18192352,0.776942356 1.83125724,0.971177945 C1.48059096,1.16541353 1.24681344,1.43734336 1.05199884,1.78696742 C0.857184241,2.13659148 0.779258401,2.56390977 0.779258401,3.06892231 C0.779258401,3.53508772 0.857184241,3.96240602 1.05199884,4.35087719 C1.24681344,4.70050125 1.51955388,5.0112782 1.83125724,5.16666667 C2.18192352,5.36090226 2.5325898,5.43859649 2.96118192,5.43859649 C3.35081112,5.43859649 3.74044032,5.32205514 4.0911066,5.12781955 C4.44177289,4.93358396 4.67555041,4.66165414 4.87036501,4.31203008 C5.06517961,3.96240602 5.18206837,3.53508772 5.18206837,3.06892231 C5.18206837,2.56390977 5.06517961,2.13659148 4.87036501,1.78696742 C4.67555041,1.43734336 4.40280997,1.16541353 4.0911066,0.971177945 C3.74044032,0.776942356 3.38977404,0.69924812 2.96118192,0.69924812 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i22\",\"key\":22},React.createElement(\"path\",{\"d\":\"M0.740295481,0 L0.740295481,8.00250627 L0,8.00250627 L0,0 L0.740295481,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i23\",\"key\":23},React.createElement(\"path\",{\"d\":\"M1.63644264,0 L0.506517961,2.8358396 L0,2.8358396 L0.818221321,0 L1.63644264,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i24\",\"key\":24},React.createElement(\"path\",{\"d\":\"M4.0911066,0 L4.0911066,0.621553885 L0.740295481,0.621553885 L0.740295481,3.45739348 L3.54562572,3.45739348 L3.54562572,4.07894737 L0.740295481,4.07894737 L0.740295481,7.57518797 L0,7.57518797 L0,0 L4.0911066,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i25\",\"key\":25},React.createElement(\"path\",{\"d\":\"M2.81129717,0 C3.35677805,0 3.86329601,0.116541353 4.25292521,0.388471178 C4.64255441,0.660401003 4.95425777,0.971177945 5.14907237,1.39849624 L5.14907237,0.116541353 L5.88936785,0.116541353 L5.88936785,6.02130326 L5.14907237,6.02130326 L5.14907237,4.70050125 C4.95425777,5.08897243 4.68151733,5.43859649 4.25292521,5.71052632 C3.86329601,5.98245614 3.35677805,6.09899749 2.81129717,6.09899749 C2.26581629,6.09899749 1.79826125,5.98245614 1.36966913,5.71052632 C0.941077007,5.47744361 0.590410727,5.08897243 0.356633207,4.62280702 C0.122855686,4.1566416 0.00596692631,3.61278195 0.00596692631,3.03007519 C-0.0329959937,2.44736842 0.122855686,1.90350877 0.356633207,1.43734336 C0.590410727,0.971177945 0.941077007,0.621553885 1.36966913,0.388471178 C1.79826125,0.155388471 2.30477921,0 2.81129717,0 Z M2.96714885,0.69924812 C2.53855673,0.69924812 2.18789045,0.776942356 1.83722417,0.971177945 C1.48655789,1.16541353 1.25278037,1.43734336 1.05796577,1.78696742 C0.863151167,2.13659148 0.785225327,2.56390977 0.785225327,3.06892231 C0.785225327,3.53508772 0.863151167,3.96240602 1.05796577,4.35087719 C1.25278037,4.70050125 1.52552081,5.0112782 1.83722417,5.16666667 C2.18789045,5.36090226 2.53855673,5.43859649 2.96714885,5.43859649 C3.35677805,5.43859649 3.74640725,5.32205514 4.09707353,5.12781955 C4.44773981,4.93358396 4.68151733,4.66165414 4.87633193,4.31203008 C5.07114653,3.96240602 5.18803529,3.53508772 5.18803529,3.06892231 C5.14907237,2.56390977 5.07114653,2.13659148 4.87633193,1.78696742 C4.68151733,1.43734336 4.40877689,1.16541353 4.09707353,0.971177945 C3.74640725,0.776942356 3.39574097,0.69924812 2.96714885,0.69924812 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i26\",\"key\":26},React.createElement(\"path\",{\"d\":\"M2.85026009,0 C3.59055557,0 4.17499937,0.194235589 4.64255441,0.543859649 C5.11010945,0.893483709 5.42181281,1.39849624 5.57766449,2.02005013 L4.75944317,2.02005013 C4.64255441,1.59273183 4.44773981,1.24310777 4.09707353,1.01002506 C3.74640725,0.776942356 3.35677805,0.660401003 2.85026009,0.660401003 C2.46063089,0.660401003 2.10996461,0.738095238 1.75929833,0.932330827 C1.44759497,1.12656642 1.17485453,1.39849624 1.01900285,1.7481203 C0.824188247,2.09774436 0.746262407,2.52506266 0.746262407,3.06892231 C0.746262407,3.57393484 0.824188247,4.04010025 1.01900285,4.38972431 C1.21381745,4.73934837 1.44759497,5.0112782 1.75929833,5.20551378 C2.07100169,5.39974937 2.42166797,5.47744361 2.85026009,5.47744361 C3.35677805,5.47744361 3.78537017,5.36090226 4.09707353,5.12781955 C4.44773981,4.89473684 4.64255441,4.54511278 4.75944317,4.11779449 L5.57766449,4.11779449 C5.42181281,4.73934837 5.14907237,5.20551378 4.64255441,5.59398496 C4.17499937,5.94360902 3.55159265,6.13784461 2.85026009,6.13784461 C2.30477921,6.13784461 1.79826125,6.02130326 1.36966913,5.74937343 C0.941077007,5.51629073 0.590410727,5.12781955 0.356633207,4.70050125 C0.122855686,4.23433584 0.00596692631,3.69047619 0.00596692631,3.10776942 C-0.0329959937,2.44736842 0.122855686,1.90350877 0.356633207,1.43734336 C0.590410727,0.971177945 0.941077007,0.621553885 1.36966913,0.388471178 C1.79826125,0.155388471 2.30477921,0 2.85026009,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i27\",\"key\":27},React.createElement(\"path\",{\"d\":\"M0.896147161,2.1754386 L0.896147161,8.0802005 L0.15585168,8.0802005 L0.15585168,2.1754386 L0.896147161,2.1754386 Z M0.545480881,0 C0.701332561,0 0.818221321,0.0388471178 0.935110081,0.155388471 C1.05199884,0.271929825 1.09096176,0.388471178 1.09096176,0.543859649 C1.09096176,0.69924812 1.05199884,0.854636591 0.935110081,0.932330827 C0.818221321,1.04887218 0.701332561,1.0877193 0.545480881,1.0877193 C0.3896292,1.0877193 0.23377752,1.01002506 0.15585168,0.932330827 C0.03896292,0.815789474 0,0.69924812 0,0.543859649 C0,0.388471178 0.03896292,0.271929825 0.15585168,0.155388471 C0.27274044,0.0388471178 0.3896292,0 0.545480881,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i28\",\"key\":28},React.createElement(\"path\",{\"d\":\"M2.80533024,0 C3.35081112,0 3.85732908,0.116541353 4.24695829,0.388471178 C4.63658749,0.660401003 4.94829085,0.971177945 5.14310545,1.39849624 L5.14310545,0.116541353 L5.88340093,0.116541353 L5.88340093,6.02130326 L5.14310545,6.02130326 L5.14310545,4.70050125 C4.94829085,5.08897243 4.67555041,5.43859649 4.24695829,5.71052632 C3.85732908,5.98245614 3.35081112,6.09899749 2.80533024,6.09899749 C2.25984936,6.09899749 1.79229432,5.98245614 1.3637022,5.71052632 C0.935110081,5.47744361 0.584443801,5.08897243 0.35066628,4.62280702 C0.11688876,4.1566416 0,3.61278195 0,3.03007519 C0,2.44736842 0.11688876,1.90350877 0.35066628,1.43734336 C0.584443801,0.971177945 0.935110081,0.621553885 1.3637022,0.388471178 C1.79229432,0.155388471 2.29881228,0 2.80533024,0 Z M2.96118192,0.69924812 C2.5325898,0.69924812 2.18192352,0.776942356 1.83125724,0.971177945 C1.48059096,1.16541353 1.24681344,1.43734336 1.05199884,1.78696742 C0.857184241,2.13659148 0.779258401,2.56390977 0.779258401,3.06892231 C0.779258401,3.53508772 0.857184241,3.96240602 1.05199884,4.35087719 C1.24681344,4.70050125 1.51955388,5.0112782 1.83125724,5.16666667 C2.18192352,5.36090226 2.5325898,5.43859649 2.96118192,5.43859649 C3.35081112,5.43859649 3.74044032,5.32205514 4.0911066,5.12781955 C4.44177289,4.93358396 4.67555041,4.66165414 4.87036501,4.31203008 C5.06517961,3.96240602 5.18206837,3.53508772 5.18206837,3.06892231 C5.18206837,2.56390977 5.06517961,2.13659148 4.87036501,1.78696742 C4.67555041,1.43734336 4.40280997,1.16541353 4.0911066,0.971177945 C3.74044032,0.776942356 3.38977404,0.69924812 2.96118192,0.69924812 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i29\",\"key\":29},React.createElement(\"path\",{\"d\":\"M0.740295481,0 L0.740295481,8.00250627 L0,8.00250627 L0,0 L0.740295481,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i30\",\"key\":30},React.createElement(\"path\",{\"d\":\"M1.63644264,0 L0.506517961,2.8358396 L0,2.8358396 L0.818221321,0 L1.63644264,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i31\",\"key\":31},React.createElement(\"path\",{\"d\":\"M3.00014484,0 C3.54562572,0 3.97421784,0.155388471 4.32488413,0.466165414 C4.67555041,0.776942356 4.83140209,1.16541353 4.79243917,1.67042607 L3.93525492,1.67042607 C3.93525492,1.35964912 3.85732908,1.0877193 3.62355156,0.893483709 C3.42873696,0.69924812 3.15599652,0.621553885 2.84429316,0.621553885 C2.49362688,0.621553885 2.25984936,0.69924812 2.02607184,0.893483709 C1.83125724,1.0877193 1.71436848,1.32080201 1.71436848,1.59273183 C1.71436848,1.82581454 1.79229432,2.05889724 1.90918308,2.25313283 C2.02607184,2.48621554 2.22088644,2.71929825 2.49362688,3.03007519 L4.98725377,5.55513784 C5.10414253,5.39974937 5.22103129,5.20551378 5.41584589,4.89473684 L6.11717845,3.72932331 L6.93539977,3.72932331 L6.11717845,5.12781955 C5.92236385,5.47744361 5.72754925,5.78822055 5.53273465,6.02130326 L7.13021437,7.61403509 L6.15614137,7.61403509 L6.15614137,7.69172932 L5.14310545,6.64285714 C4.79243917,7.03132832 4.36384705,7.34210526 3.97421784,7.53634085 C3.54562572,7.73057644 3.07807068,7.80827068 2.57155272,7.80827068 C2.06503476,7.80827068 1.59747972,7.73057644 1.20785052,7.53634085 C0.818221321,7.34210526 0.506517961,7.07017544 0.31170336,6.72055138 C0.0779258401,6.37092732 0,5.98245614 0,5.51629073 C0,4.97243108 0.15585168,4.50626566 0.467555041,4.11779449 C0.779258401,3.72932331 1.20785052,3.41854637 1.79229432,3.18546366 C1.5585168,2.91353383 1.3637022,2.64160401 1.24681344,2.4085213 C1.12992468,2.1754386 1.09096176,1.90350877 1.09096176,1.63157895 C1.09096176,1.16541353 1.24681344,0.776942356 1.59747972,0.466165414 C1.948146,0.155388471 2.41570104,0 3.00014484,0 Z M2.22088644,3.69047619 C1.20785052,4.04010025 0.701332561,4.66165414 0.701332561,5.51629073 C0.701332561,5.82706767 0.779258401,6.09899749 0.935110081,6.37092732 C1.09096176,6.60401003 1.32473928,6.79824561 1.59747972,6.95363409 C1.87022016,7.10902256 2.18192352,7.18671679 2.5325898,7.18671679 C2.96118192,7.18671679 3.3118482,7.10902256 3.66251448,6.91478697 C4.01318076,6.7593985 4.32488413,6.48746867 4.63658749,6.13784461 L2.22088644,3.69047619 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i32\",\"key\":32},React.createElement(\"path\",{\"d\":\"M2.25984936,0 C3.1170336,0 3.81836616,0.155388471 4.40280997,0.466165414 C4.98725377,0.776942356 5.45480881,1.20426065 5.76651217,1.78696742 C6.07821553,2.36967419 6.23406721,3.03007519 6.23406721,3.80701754 C6.23406721,4.5839599 6.07821553,5.2443609 5.76651217,5.82706767 C5.45480881,6.40977444 4.98725377,6.83709273 4.40280997,7.10902256 C3.81836616,7.4197995 3.07807068,7.57518797 2.25984936,7.57518797 L0,7.57518797 L0,0 L2.25984936,0 Z M2.25984936,0.621553885 L0.779258401,0.621553885 L0.779258401,6.91478697 L2.25984936,6.91478697 C3.3118482,6.91478697 4.13006952,6.64285714 4.67555041,6.09899749 C5.22103129,5.55513784 5.49377173,4.77819549 5.49377173,3.80701754 C5.49377173,2.79699248 5.22103129,2.02005013 4.67555041,1.47619048 C4.13006952,0.932330827 3.3118482,0.621553885 2.25984936,0.621553885 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i33\",\"key\":33},React.createElement(\"path\",{\"d\":\"M2.88325608,0 C3.42873696,0 3.93525492,0.116541353 4.36384705,0.34962406 C4.79243917,0.582706767 5.10414253,0.932330827 5.33792005,1.32080201 C5.57169757,1.7481203 5.68858633,2.21428571 5.68858633,2.71929825 L5.68858633,3.26315789 L0.779258401,3.26315789 C0.818221321,3.72932331 0.896147161,4.07894737 1.09096176,4.42857143 C1.28577636,4.73934837 1.5585168,4.97243108 1.87022016,5.16666667 C2.18192352,5.32205514 2.5325898,5.39974937 2.922219,5.39974937 C3.42873696,5.39974937 3.81836616,5.28320802 4.16903244,5.05012531 C4.51969873,4.81704261 4.71451333,4.50626566 4.83140209,4.07894737 L5.64962341,4.07894737 C5.49377173,4.66165414 5.18206837,5.12781955 4.71451333,5.47744361 C4.24695829,5.82706767 3.66251448,6.02130326 2.922219,6.02130326 C2.37673812,6.02130326 1.87022016,5.9047619 1.44162804,5.63283208 C1.01303592,5.39974937 0.662369641,5.0112782 0.3896292,4.5839599 C0.15585168,4.11779449 0,3.57393484 0,2.99122807 C0,2.36967419 0.11688876,1.82581454 0.35066628,1.39849624 C0.584443801,0.932330827 0.935110081,0.582706767 1.3637022,0.34962406 C1.79229432,0.116541353 2.29881228,0 2.88325608,0 Z M2.88325608,0.582706767 C2.3377752,0.582706767 1.83125724,0.776942356 1.44162804,1.12656642 C1.05199884,1.47619048 0.818221321,1.98120301 0.779258401,2.64160401 L4.94829085,2.64160401 C4.94829085,2.21428571 4.87036501,1.82581454 4.67555041,1.51503759 C4.48073581,1.20426065 4.24695829,0.971177945 3.93525492,0.815789474 C3.62355156,0.660401003 3.27288528,0.582706767 2.88325608,0.582706767 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i34\",\"key\":34},React.createElement(\"path\",{\"d\":\"M2.76636732,0 C3.46769988,0 4.01318076,0.194235589 4.48073581,0.621553885 C4.94829085,1.04887218 5.14310545,1.70927318 5.14310545,2.52506266 L5.14310545,5.98245614 L4.40280997,5.98245614 L4.40280997,2.60275689 C4.40280997,1.94235589 4.24695829,1.47619048 3.93525492,1.12656642 C3.62355156,0.776942356 3.15599652,0.621553885 2.61051564,0.621553885 C2.02607184,0.621553885 1.59747972,0.815789474 1.24681344,1.16541353 C0.896147161,1.51503759 0.740295481,2.05889724 0.740295481,2.75814536 L0.740295481,5.98245614 L0,5.98245614 L0,0.0776942356 L0.740295481,0.0776942356 L0.740295481,1.0877193 C0.935110081,0.738095238 1.20785052,0.466165414 1.5585168,0.271929825 C1.90918308,0.0776942356 2.29881228,0 2.76636732,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i35\",\"key\":35},React.createElement(\"path\",{\"d\":\"M1.59747972,0 L1.59747972,1.47619048 L3.23392236,1.47619048 L3.23392236,2.09774436 L1.59747972,2.09774436 L1.59747972,5.78822055 C1.59747972,6.13784461 1.67540556,6.40977444 1.79229432,6.52631579 C1.948146,6.68170426 2.18192352,6.72055138 2.5325898,6.72055138 L3.23392236,6.72055138 L3.23392236,7.38095238 L2.41570104,7.38095238 C1.87022016,7.38095238 1.48059096,7.26441103 1.20785052,6.9924812 C0.935110081,6.7593985 0.818221321,6.3320802 0.818221321,5.74937343 L0.818221321,2.09774436 L0,2.09774436 L0,1.47619048 L0.818221321,1.47619048 L0.818221321,0 L1.59747972,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i36\",\"key\":36},React.createElement(\"path\",{\"d\":\"M2.80533024,0 C3.35081112,0 3.85732908,0.116541353 4.24695829,0.388471178 C4.63658749,0.660401003 4.94829085,0.971177945 5.14310545,1.39849624 L5.14310545,0.116541353 L5.88340093,0.116541353 L5.88340093,6.02130326 L5.14310545,6.02130326 L5.14310545,4.70050125 C4.94829085,5.08897243 4.67555041,5.43859649 4.24695829,5.71052632 C3.85732908,5.98245614 3.35081112,6.09899749 2.80533024,6.09899749 C2.25984936,6.09899749 1.79229432,5.98245614 1.3637022,5.71052632 C0.935110081,5.43859649 0.584443801,5.08897243 0.35066628,4.62280702 C0.11688876,4.1566416 0,3.61278195 0,3.03007519 C0,2.44736842 0.11688876,1.90350877 0.35066628,1.43734336 C0.584443801,0.971177945 0.935110081,0.621553885 1.3637022,0.388471178 C1.79229432,0.155388471 2.29881228,0 2.80533024,0 Z M2.96118192,0.69924812 C2.5325898,0.69924812 2.18192352,0.776942356 1.83125724,0.971177945 C1.48059096,1.16541353 1.24681344,1.43734336 1.05199884,1.78696742 C0.857184241,2.13659148 0.779258401,2.56390977 0.779258401,3.06892231 C0.779258401,3.53508772 0.857184241,3.96240602 1.05199884,4.35087719 C1.24681344,4.70050125 1.51955388,5.0112782 1.83125724,5.16666667 C2.18192352,5.36090226 2.5325898,5.43859649 2.96118192,5.43859649 C3.35081112,5.43859649 3.74044032,5.32205514 4.0911066,5.12781955 C4.44177289,4.93358396 4.67555041,4.66165414 4.87036501,4.31203008 C5.06517961,3.96240602 5.18206837,3.53508772 5.18206837,3.06892231 C5.14310545,2.56390977 5.06517961,2.13659148 4.87036501,1.78696742 C4.67555041,1.43734336 4.40280997,1.16541353 4.0911066,0.971177945 C3.74044032,0.776942356 3.38977404,0.69924812 2.96118192,0.69924812 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i37\",\"key\":37},React.createElement(\"path\",{\"d\":\"M0.740295481,0 L0.740295481,7.57518797 L0,7.57518797 L0,0 L0.740295481,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i38\",\"key\":38},React.createElement(\"path\",{\"d\":\"M7.09125145,0 C7.71465817,0.155388471 8.29910197,0.34962406 8.72769409,0.776942356 C9.15628621,1.20426065 9.39006373,1.86466165 9.39006373,2.68045113 L9.39006373,6.13784461 L8.64976825,6.13784461 L8.64976825,2.75814536 C8.64976825,2.09774436 8.49391657,1.63157895 8.18221321,1.28195489 C7.87050985,0.932330827 7.44191773,0.776942356 6.89643685,0.776942356 C6.35095597,0.776942356 5.88340093,0.971177945 5.57169757,1.32080201 C5.22103129,1.67042607 5.06517961,2.21428571 5.06517961,2.91353383 L5.06517961,6.09899749 L4.32488413,6.09899749 L4.32488413,2.71929825 C4.32488413,2.05889724 4.16903244,1.59273183 3.85732908,1.24310777 C3.54562572,0.893483709 3.1170336,0.738095238 2.57155272,0.738095238 C2.02607184,0.738095238 1.5585168,0.932330827 1.24681344,1.28195489 C0.896147161,1.63157895 0.740295481,2.1754386 0.740295481,2.87468672 L0.740295481,6.06015038 L0,6.06015038 L0,0.155388471 L0.740295481,0.155388471 L0.740295481,1.16541353 C0.935110081,0.815789474 1.20785052,0.505012531 1.5585168,0.310776942 C1.90918308,0.116541353 2.29881228,0.0388471178 2.7274044,0.0388471178 C3.23392236,0.0388471178 3.7014774,0.155388471 4.0911066,0.388471178 C4.48073581,0.621553885 4.75347625,1.01002506 4.94829085,1.47619048 C5.10414253,1.01002506 5.37688297,0.660401003 5.76651217,0.388471178 C6.15614137,0.116541353 6.58473349,0 7.09125145,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i39\",\"key\":39},React.createElement(\"path\",{\"d\":\"M3.07807068,0 C3.62355156,0 4.0911066,0.116541353 4.51969873,0.388471178 C4.94829085,0.621553885 5.29895713,1.01002506 5.53273465,1.43734336 C5.76651217,1.90350877 5.88340093,2.4085213 5.88340093,3.03007519 C5.88340093,3.65162907 5.76651217,4.1566416 5.53273465,4.62280702 C5.29895713,5.08897243 4.94829085,5.43859649 4.51969873,5.71052632 C4.0911066,5.94360902 3.62355156,6.09899749 3.07807068,6.09899749 C2.5325898,6.09899749 2.02607184,5.98245614 1.63644264,5.71052632 C1.20785052,5.43859649 0.935110081,5.12781955 0.740295481,4.73934837 L0.740295481,8.81829574 L0,8.81829574 L0,0.116541353 L0.740295481,0.116541353 L0.740295481,1.39849624 C0.935110081,1.01002506 1.20785052,0.660401003 1.63644264,0.388471178 C2.02607184,0.116541353 2.5325898,0 3.07807068,0 Z M2.96118192,0.660401003 C2.57155272,0.660401003 2.18192352,0.738095238 1.83125724,0.932330827 C1.48059096,1.12656642 1.24681344,1.39849624 1.05199884,1.7481203 C0.857184241,2.09774436 0.779258401,2.52506266 0.779258401,2.99122807 C0.779258401,3.45739348 0.857184241,3.88471178 1.05199884,4.23433584 C1.24681344,4.5839599 1.51955388,4.85588972 1.83125724,5.05012531 C2.18192352,5.2443609 2.5325898,5.36090226 2.96118192,5.36090226 C3.38977404,5.36090226 3.74044032,5.28320802 4.0911066,5.08897243 C4.44177289,4.89473684 4.67555041,4.62280702 4.87036501,4.27318296 C5.06517961,3.9235589 5.14310545,3.4962406 5.14310545,2.99122807 C5.14310545,2.56390977 5.06517961,2.13659148 4.87036501,1.7481203 C4.67555041,1.39849624 4.40280997,1.12656642 4.0911066,0.932330827 C3.74044032,0.738095238 3.38977404,0.660401003 2.96118192,0.660401003 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i40\",\"key\":40},React.createElement(\"path\",{\"d\":\"M0.740295481,0 L0.740295481,8.00250627 L0,8.00250627 L0,0 L0.740295481,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i41\",\"key\":41},React.createElement(\"path\",{\"d\":\"M2.80533024,0 C3.35081112,0 3.85732908,0.116541353 4.24695829,0.388471178 C4.63658749,0.660401003 4.94829085,0.971177945 5.14310545,1.39849624 L5.14310545,0.116541353 L5.88340093,0.116541353 L5.88340093,6.02130326 L5.14310545,6.02130326 L5.14310545,4.70050125 C4.94829085,5.08897243 4.67555041,5.43859649 4.24695829,5.71052632 C3.85732908,5.98245614 3.35081112,6.09899749 2.80533024,6.09899749 C2.25984936,6.09899749 1.79229432,5.98245614 1.3637022,5.71052632 C0.935110081,5.43859649 0.584443801,5.08897243 0.35066628,4.62280702 C0.11688876,4.1566416 0,3.61278195 0,3.03007519 C0,2.44736842 0.11688876,1.90350877 0.35066628,1.43734336 C0.584443801,0.971177945 0.935110081,0.621553885 1.3637022,0.388471178 C1.79229432,0.155388471 2.29881228,0 2.80533024,0 Z M2.96118192,0.69924812 C2.5325898,0.69924812 2.18192352,0.776942356 1.83125724,0.971177945 C1.48059096,1.16541353 1.24681344,1.43734336 1.05199884,1.78696742 C0.857184241,2.13659148 0.779258401,2.56390977 0.779258401,3.06892231 C0.779258401,3.53508772 0.857184241,3.96240602 1.05199884,4.35087719 C1.24681344,4.70050125 1.51955388,5.0112782 1.83125724,5.16666667 C2.18192352,5.36090226 2.5325898,5.43859649 2.96118192,5.43859649 C3.35081112,5.43859649 3.74044032,5.32205514 4.0911066,5.12781955 C4.44177289,4.93358396 4.67555041,4.66165414 4.87036501,4.31203008 C5.06517961,3.96240602 5.18206837,3.53508772 5.18206837,3.06892231 C5.14310545,2.56390977 5.06517961,2.13659148 4.87036501,1.78696742 C4.67555041,1.43734336 4.40280997,1.16541353 4.0911066,0.971177945 C3.74044032,0.776942356 3.38977404,0.69924812 2.96118192,0.69924812 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i42\",\"key\":42},React.createElement(\"path\",{\"d\":\"M2.76636732,0 C3.46769988,0 4.05214368,0.194235589 4.48073581,0.621553885 C4.94829085,1.04887218 5.14310545,1.70927318 5.14310545,2.52506266 L5.14310545,5.98245614 L4.40280997,5.98245614 L4.40280997,2.60275689 C4.40280997,1.94235589 4.24695829,1.47619048 3.93525492,1.12656642 C3.62355156,0.776942356 3.15599652,0.621553885 2.61051564,0.621553885 C2.02607184,0.621553885 1.59747972,0.815789474 1.24681344,1.16541353 C0.896147161,1.51503759 0.740295481,2.05889724 0.740295481,2.75814536 L0.740295481,5.98245614 L0,5.98245614 L0,0.0776942356 L0.740295481,0.0776942356 L0.740295481,1.0877193 C0.935110081,0.738095238 1.20785052,0.466165414 1.5585168,0.271929825 C1.90918308,0.0776942356 2.29881228,0 2.76636732,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i43\",\"key\":43},React.createElement(\"path\",{\"d\":\"M1.59747972,0 L1.59747972,1.47619048 L3.23392236,1.47619048 L3.23392236,2.09774436 L1.59747972,2.09774436 L1.59747972,5.78822055 C1.59747972,6.13784461 1.67540556,6.40977444 1.79229432,6.52631579 C1.948146,6.68170426 2.18192352,6.72055138 2.5325898,6.72055138 L3.23392236,6.72055138 L3.23392236,7.38095238 L2.41570104,7.38095238 C1.87022016,7.38095238 1.48059096,7.26441103 1.20785052,6.9924812 C0.935110081,6.7593985 0.818221321,6.3320802 0.818221321,5.74937343 L0.818221321,2.09774436 L0,2.09774436 L0,1.47619048 L0.818221321,1.47619048 L0.818221321,0 L1.59747972,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i44\",\"key\":44},React.createElement(\"path\",{\"d\":\"M2.61051564,0 C3.3118482,0 3.896292,0.155388471 4.32488413,0.505012531 C4.75347625,0.854636591 4.98725377,1.28195489 5.06517961,1.82581454 L4.24695829,1.82581454 C4.20799537,1.51503759 4.01318076,1.24310777 3.74044032,1.01002506 C3.46769988,0.776942356 3.07807068,0.660401003 2.57155272,0.660401003 C2.10399768,0.660401003 1.7533314,0.776942356 1.44162804,1.01002506 C1.12992468,1.24310777 0.974073001,1.59273183 0.974073001,1.98120301 C0.974073001,2.29197995 1.05199884,2.56390977 1.20785052,2.75814536 C1.3637022,2.95238095 1.59747972,3.10776942 1.83125724,3.18546366 C2.06503476,3.30200501 2.41570104,3.37969925 2.84429316,3.4962406 C3.35081112,3.65162907 3.74044032,3.76817043 4.05214368,3.88471178 C4.36384705,4.00125313 4.59762457,4.23433584 4.83140209,4.50626566 C5.02621669,4.77819549 5.14310545,5.16666667 5.14310545,5.59398496 C5.14310545,5.94360902 5.06517961,6.29323308 4.87036501,6.60401003 C4.67555041,6.91478697 4.40280997,7.18671679 4.05214368,7.38095238 C3.7014774,7.57518797 3.23392236,7.69172932 2.7274044,7.69172932 C2.06503476,7.73057644 1.63644264,7.65288221 1.24681344,7.49749373 C0.857184241,7.34210526 0.584443801,7.07017544 0.35066628,6.7593985 C0.11688876,6.44862155 0,6.09899749 0,5.71052632 L0.818221321,5.71052632 C0.857184241,6.06015038 1.01303592,6.40977444 1.32473928,6.68170426 C1.59747972,6.95363409 2.02607184,7.10902256 2.61051564,7.10902256 C3.1170336,7.10902256 3.54562572,6.9924812 3.81836616,6.72055138 C4.13006952,6.44862155 4.28592121,6.13784461 4.28592121,5.71052632 C4.28592121,5.39974937 4.20799537,5.12781955 4.05214368,4.93358396 C3.896292,4.73934837 3.66251448,4.5839599 3.42873696,4.50626566 C3.19495944,4.38972431 2.84429316,4.31203008 2.41570104,4.19548872 C1.90918308,4.04010025 1.51955388,3.9235589 1.20785052,3.80701754 C0.896147161,3.69047619 0.662369641,3.45739348 0.467555041,3.18546366 C0.27274044,2.91353383 0.15585168,2.52506266 0.15585168,2.05889724 C0.15585168,1.67042607 0.27274044,1.32080201 0.467555041,1.01002506 C0.662369641,0.69924812 0.974073001,0.466165414 1.32473928,0.271929825 C1.67540556,0.116541353 2.10399768,0 2.61051564,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i45\",\"key\":45},React.createElement(\"path\",{\"d\":\"M0.740295481,0 L0.740295481,3.37969925 C0.740295481,4.04010025 0.896147161,4.50626566 1.20785052,4.85588972 C1.51955388,5.20551378 1.98710892,5.36090226 2.5325898,5.36090226 C3.1170336,5.36090226 3.54562572,5.16666667 3.896292,4.81704261 C4.24695829,4.46741855 4.40280997,3.9235589 4.40280997,3.22431078 L4.40280997,0 L5.18206837,0 L5.18206837,5.9047619 L4.44177289,5.9047619 L4.44177289,4.85588972 C4.28592121,5.20551378 4.01318076,5.51629073 3.62355156,5.71052632 C3.27288528,5.9047619 2.84429316,6.02130326 2.41570104,6.02130326 C1.71436848,6.02130326 1.12992468,5.78822055 0.662369641,5.36090226 C0.1948146,4.93358396 0,4.27318296 0,3.45739348 L0,0 L0.740295481,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i46\",\"key\":46},React.createElement(\"path\",{\"d\":\"M2.76636732,0 L2.76636732,0.776942356 L2.57155272,0.776942356 C2.02607184,0.776942356 1.59747972,0.932330827 1.24681344,1.20426065 C0.896147161,1.51503759 0.740295481,1.98120301 0.740295481,2.68045113 L0.740295481,5.98245614 L0,5.98245614 L0,0.0776942356 L0.740295481,0.0776942356 L0.740295481,1.12656642 C0.896147161,0.815789474 1.1688876,0.543859649 1.51955388,0.310776942 C1.87022016,0.116541353 2.29881228,0 2.76636732,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i47\",\"key\":47},React.createElement(\"path\",{\"d\":\"M2.80533024,0 C3.42873696,0.0776942356 3.93525492,0.233082707 4.32488413,0.466165414 C4.75347625,0.738095238 5.02621669,1.04887218 5.22103129,1.43734336 L5.22103129,0.155388471 L5.96132677,0.155388471 L5.96132677,6.21553885 C5.96132677,6.7593985 5.84443801,7.22556391 5.61066049,7.65288221 C5.37688297,8.0802005 5.06517961,8.39097744 4.63658749,8.62406015 C4.20799537,8.85714286 3.74044032,8.97368421 3.19495944,8.97368421 C2.41570104,8.97368421 1.79229432,8.77944862 1.28577636,8.42982456 C0.779258401,8.0802005 0.467555041,7.57518797 0.35066628,6.95363409 L1.09096176,6.95363409 C1.20785052,7.38095238 1.48059096,7.69172932 1.83125724,7.92481203 C2.18192352,8.15789474 2.64947856,8.27443609 3.15599652,8.27443609 C3.54562572,8.27443609 3.896292,8.19674185 4.16903244,8.04135338 C4.48073581,7.88596491 4.71451333,7.65288221 4.87036501,7.30325815 C5.02621669,6.9924812 5.14310545,6.60401003 5.14310545,6.17669173 L5.14310545,4.70050125 C4.94829085,5.08897243 4.67555041,5.43859649 4.24695829,5.71052632 C3.85732908,5.98245614 3.35081112,6.09899749 2.80533024,6.09899749 C2.25984936,6.09899749 1.79229432,5.98245614 1.3637022,5.71052632 C0.935110081,5.47744361 0.584443801,5.08897243 0.35066628,4.62280702 C0.11688876,4.1566416 0,3.61278195 0,3.03007519 C0,2.4085213 0.11688876,1.90350877 0.35066628,1.43734336 C0.584443801,0.971177945 0.935110081,0.621553885 1.3637022,0.388471178 C1.79229432,0.155388471 2.29881228,0 2.80533024,0 Z M3.03910776,0.776942356 C2.61051564,0.776942356 2.25984936,0.854636591 1.90918308,1.04887218 C1.5585168,1.24310777 1.32473928,1.51503759 1.12992468,1.86466165 C0.935110081,2.21428571 0.857184241,2.64160401 0.857184241,3.14661654 C0.857184241,3.61278195 0.935110081,4.04010025 1.12992468,4.42857143 C1.32473928,4.77819549 1.59747972,5.08897243 1.90918308,5.2443609 C2.25984936,5.43859649 2.61051564,5.51629073 3.03910776,5.51629073 C3.42873696,5.51629073 3.81836616,5.39974937 4.16903244,5.20551378 C4.51969873,5.0112782 4.75347625,4.73934837 4.94829085,4.38972431 C5.14310545,4.04010025 5.25999421,3.61278195 5.25999421,3.14661654 C5.22103129,2.64160401 5.14310545,2.21428571 4.94829085,1.86466165 C4.75347625,1.51503759 4.48073581,1.24310777 4.16903244,1.04887218 C3.81836616,0.854636591 3.46769988,0.776942356 3.03910776,0.776942356 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i48\",\"key\":48},React.createElement(\"path\",{\"d\":\"M2.88325608,0 C3.46769988,0 3.93525492,0.116541353 4.36384705,0.34962406 C4.79243917,0.582706767 5.10414253,0.932330827 5.33792005,1.32080201 C5.57169757,1.7481203 5.68858633,2.21428571 5.68858633,2.71929825 C5.72754925,2.91353383 5.72754925,3.10776942 5.68858633,3.26315789 L0.779258401,3.26315789 C0.818221321,3.72932331 0.896147161,4.07894737 1.09096176,4.42857143 C1.28577636,4.73934837 1.5585168,4.97243108 1.87022016,5.16666667 C2.18192352,5.32205514 2.5325898,5.39974937 2.922219,5.39974937 C3.42873696,5.39974937 3.81836616,5.28320802 4.16903244,5.05012531 C4.51969873,4.81704261 4.71451333,4.50626566 4.83140209,4.07894737 L5.64962341,4.07894737 C5.49377173,4.66165414 5.18206837,5.12781955 4.71451333,5.47744361 C4.24695829,5.82706767 3.66251448,6.02130326 2.922219,6.02130326 C2.37673812,6.02130326 1.87022016,5.9047619 1.44162804,5.63283208 C1.01303592,5.39974937 0.662369641,5.0112782 0.3896292,4.5839599 C0.15585168,4.11779449 0,3.57393484 0,2.99122807 C0,2.36967419 0.11688876,1.82581454 0.35066628,1.39849624 C0.584443801,0.932330827 0.935110081,0.582706767 1.3637022,0.34962406 C1.79229432,0.116541353 2.29881228,0 2.88325608,0 Z M2.88325608,0.582706767 C2.3377752,0.582706767 1.83125724,0.776942356 1.44162804,1.12656642 C1.05199884,1.47619048 0.818221321,1.98120301 0.779258401,2.64160401 L4.94829085,2.64160401 C4.94829085,2.21428571 4.87036501,1.82581454 4.67555041,1.51503759 C4.48073581,1.20426065 4.24695829,0.971177945 3.93525492,0.815789474 C3.62355156,0.660401003 3.27288528,0.582706767 2.88325608,0.582706767 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i49\",\"key\":49},React.createElement(\"path\",{\"d\":\"M2.76636732,0 L2.76636732,0.776942356 L2.57155272,0.776942356 C2.02607184,0.776942356 1.59747972,0.932330827 1.24681344,1.20426065 C0.896147161,1.51503759 0.740295481,1.98120301 0.740295481,2.68045113 L0.740295481,5.98245614 L0,5.98245614 L0,0.0776942356 L0.740295481,0.0776942356 L0.740295481,1.12656642 C0.896147161,0.815789474 1.1688876,0.543859649 1.51955388,0.310776942 C1.87022016,0.116541353 2.29881228,0 2.76636732,0 Z\"})),React.createElement(\"clipPath\",{\"id\":\"i50\",\"key\":50},React.createElement(\"path\",{\"d\":\"M5.517,0.038 L2.02607184,8.70175439 L1.24681344,8.70175439 L2.41570104,5.9047619 L0,0.0388471178 L0.818221321,0.0388471178 L2.84429316,5.08897243 L4.79243917,0.0388471178 L5.517,0.038 Z\"}))]),React.createElement(\"g\",{\"transform\":\"translate(-159.0 -38.0)\",\"key\":1},React.createElement(\"g\",{\"clipPath\":\"url(#i0)\"},React.createElement(\"g\",{\"transform\":\"translate(159.0 38.0)\"},[React.createElement(\"g\",{\"transform\":\"translate(1.0920499112228264 16.276942355889986)\",\"key\":0},React.createElement(\"g\",{\"clipPath\":\"url(#i1)\"},React.createElement(\"polygon\",{\"points\":\"-4.4408921e-16,0 60.7502291,0 60.7502291,45.7230576 -4.4408921e-16,45.7230576 -4.4408921e-16,0\",\"stroke\":\"none\",\"fill\":\"#F0D118\"}))),React.createElement(\"g\",{\"clipPath\":\"url(#i2)\",\"key\":1},React.createElement(\"polygon\",{\"points\":\"0,0 61.9900058,0 61.9900058,35.0789474 0,35.0789474 0,0\",\"stroke\":\"none\",\"fill\":\"url(#i3)\"})),React.createElement(\"g\",{\"transform\":\"translate(72.04243916569975 13.402255639097348)\",\"key\":2},[React.createElement(\"g\",{\"transform\":\"translate(0.0 2.0200501253129914)\",\"key\":0},React.createElement(\"g\",{\"clipPath\":\"url(#i4)\"},React.createElement(\"polygon\",{\"points\":\"0,0 17.9229432,0 17.9229432,18.2969925 0,18.2969925 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(19.130793742755486 5.74937343358397)\",\"key\":1},React.createElement(\"g\",{\"clipPath\":\"url(#i5)\"},React.createElement(\"polygon\",{\"points\":\"0,0 14.7279838,0 14.7279838,14.6065163 0,14.6065163 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(35.80692352259575 1.1654135338339984)\",\"key\":2},React.createElement(\"g\",{\"clipPath\":\"url(#i6)\"},React.createElement(\"polygon\",{\"points\":\"0,0 3.58458864,0 3.58458864,18.9573935 0,18.9573935 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(41.37862108922127 1.1654135338339984)\",\"key\":3},React.createElement(\"g\",{\"clipPath\":\"url(#i7)\"},React.createElement(\"polygon\",{\"points\":\"0,0 14.8059096,0 14.8059096,19.1904762 0,19.1904762 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(58.21060254925033 5.710526315790049)\",\"key\":4},React.createElement(\"g\",{\"clipPath\":\"url(#i8)\"},React.createElement(\"polygon\",{\"points\":\"0,0 14.1825029,0 14.1825029,14.6453634 0,14.6453634 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(74.34125144843347 5.7474296365089685)\",\"key\":5},React.createElement(\"g\",{\"clipPath\":\"url(#i9)\"},React.createElement(\"polygon\",{\"points\":\"0,1.08120977e-14 13.5201333,1.08120977e-14 13.5201333,14.4142245 0,14.4142245 0,1.08120977e-14\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(96.16048667439463 2.253132832080155)\",\"key\":6},React.createElement(\"g\",{\"clipPath\":\"url(#i10)\"},React.createElement(\"polygon\",{\"points\":\"0,0 11.0654693,0 11.0654693,17.9085213 0,17.9085213 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(108.23899188875657 5.74937343358397)\",\"key\":7},React.createElement(\"g\",{\"clipPath\":\"url(#i11)\"},React.createElement(\"polygon\",{\"points\":\"0,0 14.7279838,0 14.7279838,14.6065163 0,14.6065163 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(124.01897450753675 5.74937343358397)\",\"key\":8},React.createElement(\"g\",{\"clipPath\":\"url(#i12)\"},React.createElement(\"polygon\",{\"points\":\"0,0 14.7279838,0 14.7279838,14.6065163 0,14.6065163 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(139.5262166859793 2.4473684210533975)\",\"key\":9},React.createElement(\"g\",{\"clipPath\":\"url(#i13)\"},React.createElement(\"polygon\",{\"points\":\"0,0 8.53287949,0 8.53287949,17.7142857 0,17.7142857 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(150.0851680185442 1.2042606516297383)\",\"key\":10},React.createElement(\"g\",{\"clipPath\":\"url(#i14)\"},React.createElement(\"polygon\",{\"points\":\"0,0 13.5201333,0 13.5201333,18.9573935 0,18.9573935 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(165.98203939745144 0.0)\",\"key\":11},React.createElement(\"g\",{\"clipPath\":\"url(#i15)\"},React.createElement(\"polygon\",{\"points\":\"0,0 4.44177289,0 4.44177289,20.1616541 0,20.1616541 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(172.8784762456562 1.1654135338339984)\",\"key\":12},React.createElement(\"g\",{\"clipPath\":\"url(#i16)\"},React.createElement(\"polygon\",{\"points\":\"0,0 3.58458864,0 3.58458864,18.9573935 0,18.9573935 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(179.38528389339263 1.1654135338339984)\",\"key\":13},React.createElement(\"g\",{\"clipPath\":\"url(#i17)\"},React.createElement(\"polygon\",{\"points\":\"0,0 3.58458864,0 3.58458864,18.9573935 0,18.9573935 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(185.11283314020693 5.710526315790047)\",\"key\":14},React.createElement(\"g\",{\"clipPath\":\"url(#i18)\"},React.createElement(\"polygon\",{\"points\":\"0,0 11.7668019,0 11.7668019,14.6113722 0,14.6113722 0,0\",\"stroke\":\"none\",\"fill\":\"#00579F\"}))),React.createElement(\"g\",{\"transform\":\"translate(0.0 24.162907268169874)\",\"key\":15},[React.createElement(\"g\",{\"transform\":\"translate(0.0 0.5050125313282483)\",\"key\":0},React.createElement(\"g\",{\"clipPath\":\"url(#i19)\"},React.createElement(\"polygon\",{\"points\":\"0,0 7.55880649,0 7.55880649,7.69172932 0,7.69172932 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(8.922508690611721 2.0588972431069124)\",\"key\":1},React.createElement(\"g\",{\"clipPath\":\"url(#i20)\"},React.createElement(\"polygon\",{\"points\":\"0,0 2.76636732,0 2.76636732,5.98245614 0,5.98245614 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(12.507097334877471 2.0977443609026523)\",\"key\":2},React.createElement(\"g\",{\"clipPath\":\"url(#i21)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.88340093,0 5.88340093,6.09899749 0,6.09899749 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(20.182792584007984 0.07769423558784183)\",\"key\":3},React.createElement(\"g\",{\"clipPath\":\"url(#i22)\"},React.createElement(\"polygon\",{\"points\":\"0,0 0.740295481,0 0.740295481,8.00250627 0,8.00250627 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(21.702346465815936 6.837092731828307)\",\"key\":4},React.createElement(\"g\",{\"clipPath\":\"url(#i23)\"},React.createElement(\"polygon\",{\"points\":\"0,0 1.63644264,0 1.63644264,2.8358396 0,2.8358396 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(27.507821552724636 0.5438596491239882)\",\"key\":5},React.createElement(\"g\",{\"clipPath\":\"url(#i24)\"},React.createElement(\"polygon\",{\"points\":\"0,0 4.0911066,0 4.0911066,7.57518797 0,7.57518797 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(32.5280713123866 2.0977443609026523)\",\"key\":6},React.createElement(\"g\",{\"clipPath\":\"url(#i25)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.88936785,0 5.88936785,6.09899749 0,6.09899749 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(39.85310028110325 2.0977443609026523)\",\"key\":7},React.createElement(\"g\",{\"clipPath\":\"url(#i26)\"},React.createElement(\"polygon\",{\"points\":\"-2.74606726e-15,0 5.57766449,0 5.57766449,6.13784461 -2.74606726e-15,6.13784461 -2.74606726e-15,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(46.67757821553096 0.0)\",\"key\":8},React.createElement(\"g\",{\"clipPath\":\"url(#i27)\"},React.createElement(\"polygon\",{\"points\":\"0,0 1.09096176,0 1.09096176,8.0802005 0,8.0802005 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(48.976390498264664 2.0977443609026523)\",\"key\":9},React.createElement(\"g\",{\"clipPath\":\"url(#i28)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.88340093,0 5.88340093,6.09899749 0,6.09899749 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(56.65208574739154 0.07769423558784183)\",\"key\":10},React.createElement(\"g\",{\"clipPath\":\"url(#i29)\"},React.createElement(\"polygon\",{\"points\":\"0,0 0.740295481,0 0.740295481,8.00250627 0,8.00250627 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(58.17163962919949 6.837092731828307)\",\"key\":11},React.createElement(\"g\",{\"clipPath\":\"url(#i30)\"},React.createElement(\"polygon\",{\"points\":\"0,0 1.63644264,0 1.63644264,2.8358396 0,2.8358396 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(63.58748551564349 0.38847117794466657)\",\"key\":12},React.createElement(\"g\",{\"clipPath\":\"url(#i31)\"},React.createElement(\"polygon\",{\"points\":\"0,0 7.13021437,0 7.13021437,7.80827068 0,7.80827068 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(74.7308806489018 0.5438596491239882)\",\"key\":13},React.createElement(\"g\",{\"clipPath\":\"url(#i32)\"},React.createElement(\"polygon\",{\"points\":\"0,0 6.23406721,0 6.23406721,7.57518797 0,7.57518797 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(82.05590961761118 2.175438596490494)\",\"key\":14},React.createElement(\"g\",{\"clipPath\":\"url(#i33)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.68858633,0 5.68858633,6.02130326 0,6.02130326 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(89.18612398609548 2.0977443609026523)\",\"key\":15},React.createElement(\"g\",{\"clipPath\":\"url(#i34)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.14310545,0 5.14310545,5.98245614 0,5.98245614 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(95.4201911935088 0.699248120299671)\",\"key\":16},React.createElement(\"g\",{\"clipPath\":\"url(#i35)\"},React.createElement(\"polygon\",{\"points\":\"0,0 3.23392236,0 3.23392236,7.38095238 0,7.38095238 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(99.55026071842076 2.0977443609026523)\",\"key\":17},React.createElement(\"g\",{\"clipPath\":\"url(#i36)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.88340093,0 5.88340093,6.09899749 0,6.09899749 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(107.22595596755855 0.07769423558784183)\",\"key\":18},React.createElement(\"g\",{\"clipPath\":\"url(#i29)\"},React.createElement(\"polygon\",{\"points\":\"0,0 0.740295481,0 0.740295481,8.00250627 0,8.00250627 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(112.68076477404611 0.5438596491239882)\",\"key\":19},React.createElement(\"g\",{\"clipPath\":\"url(#i37)\"},React.createElement(\"polygon\",{\"points\":\"0,0 0.740295481,0 0.740295481,7.57518797 0,7.57518797 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(115.17439165701217 1.94235588972515)\",\"key\":20},React.createElement(\"g\",{\"clipPath\":\"url(#i38)\"},React.createElement(\"polygon\",{\"points\":\"0,0 9.39006373,0 9.39006373,6.13784461 0,6.13784461 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(126.23986095017608 2.0977443609026523)\",\"key\":21},React.createElement(\"g\",{\"clipPath\":\"url(#i39)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.88340093,0 5.88340093,8.81829574 0,8.81829574 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(133.56488991889273 0.07769423558784183)\",\"key\":22},React.createElement(\"g\",{\"clipPath\":\"url(#i40)\"},React.createElement(\"polygon\",{\"points\":\"0,0 0.740295481,0 0.740295481,8.00250627 0,8.00250627 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(135.70785052143765 2.0977443609026523)\",\"key\":23},React.createElement(\"g\",{\"clipPath\":\"url(#i41)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.88340093,0 5.88340093,6.09899749 0,6.09899749 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(143.38354577056452 2.0977443609026523)\",\"key\":24},React.createElement(\"g\",{\"clipPath\":\"url(#i42)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.14310545,0 5.14310545,5.98245614 0,5.98245614 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(149.61761297798876 0.699248120299671)\",\"key\":25},React.createElement(\"g\",{\"clipPath\":\"url(#i43)\"},React.createElement(\"polygon\",{\"points\":\"0,0 3.23392236,0 3.23392236,7.38095238 0,7.38095238 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(156.78679026651662 0.42731829573858704)\",\"key\":26},React.createElement(\"g\",{\"clipPath\":\"url(#i44)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.14310545,0 5.14310545,7.70162889 0,7.70162889 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(163.21567207416228 2.175438596490494)\",\"key\":27},React.createElement(\"g\",{\"clipPath\":\"url(#i45)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.18206837,0 5.18206837,6.02130326 0,6.02130326 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(170.15107184241424 2.0588972431069124)\",\"key\":28},React.createElement(\"g\",{\"clipPath\":\"url(#i46)\"},React.createElement(\"polygon\",{\"points\":\"0,0 2.76636732,0 2.76636732,5.98245614 0,5.98245614 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(173.65773464658196 2.0200501253129914)\",\"key\":29},React.createElement(\"g\",{\"clipPath\":\"url(#i47)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.96132677,0 5.96132677,8.97368421 0,8.97368421 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(181.0217265353458 2.175438596490494)\",\"key\":30},React.createElement(\"g\",{\"clipPath\":\"url(#i48)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.71780852,0 5.71780852,6.02130326 0,6.02130326 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(188.15194090382283 2.0588972431069124)\",\"key\":31},React.createElement(\"g\",{\"clipPath\":\"url(#i49)\"},React.createElement(\"polygon\",{\"points\":\"0,0 2.76636732,0 2.76636732,5.98245614 0,5.98245614 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"}))),React.createElement(\"g\",{\"transform\":\"translate(191.42482618772192 2.175438596490494)\",\"key\":32},React.createElement(\"g\",{\"clipPath\":\"url(#i50)\"},React.createElement(\"polygon\",{\"points\":\"0,0 5.53273465,0 5.53273465,8.70175439 0,8.70175439 0,0\",\"stroke\":\"none\",\"fill\":\"#535353\"})))])])])))]);\n}\n\nLogoInline.defaultProps = {\"role\":\"presentation\",\"version\":\"1.1\",\"width\":\"269px\",\"height\":\"62px\",\"viewBox\":\"0 0 269.0 62.0\"};\n\nmodule.exports = LogoInline;\n\nLogoInline.default = LogoInline;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_defineProperty","value","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","err","_iterableToArrayLimit","TypeError","_nonIterableRest","noop","_WINDOW","_DOCUMENT","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","e","_ref$userAgent","navigator","userAgent","WINDOW","DOCUMENT","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","DEFAULT_REPLACEMENT_CLASS","indexOf","DATA_FA_I2SVG","oneToTen","oneToTwenty","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","initial","map","n","FontAwesomeConfig","querySelector","_ref","_ref2","attr","val","coerce","element","getAttribute","getAttrConfig","_config","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","config","w","styles","hooks","shims","namespace","functions","doScroll","test","readyState","listener","removeEventListener","fn","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","isNode","g","process","emit","asyncSetTimer","setImmediate","setTimeout","asyncQueue","asyncFlush","asyncCall","callback","arg","invokeCallback","subscriber","owner","settled","_state","_data","promise","then","reject","handleThenable","resolve","resolved","call","fulfill","reason","publishFulfillment","publishRejection","publish","_then","_handled","notifyRejectionHandled","P","resolver","this","rejectPromise","invokeResolver","onFulfillment","onRejection","fulfilled","rejected","catch","all","promises","results","remaining","index","race","meaninglessTransform","size","x","y","rotate","flipX","flipY","insertCss","css","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","nextUniqueId","id","Math","random","htmlEscape","str","replace","joinStyles","reduce","acc","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","width","height","fillBlack","abstract","force","attributes","fill","makeInlineSvgAbstract","params","_params$icons","icons","main","mask","prefix","iconName","symbol","title","maskId","titleId","extra","_params$watchable","watchable","found","isUploadedIcon","widthClass","ceil","attrClass","c","classes","join","content","children","role","uploadedIconWidthStyle","tag","args","explicitMaskId","mainWidth","mainPath","icon","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","offset","asIcon","noop$1","subject","initialValue","thisContext","result","func","a","b","d","bindInternal4","defineIcons","_params$skipHooks","skipHooks","normalized","addPack","build","lookup","reducer","o","ligatures","ligature","hasRegular","shim","oldName","iconFromMapping","mapping","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","attributeName","trim","joinAttributes","parseTransformString","transformString","toLowerCase","split","parts","first","rest","slice","parseFloat","isNaN","MissingIcon","error","name","message","stack","Error","create","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","cx","cy","r","values","opacity","asFoundIcon","vectorData","class","dfp","drc","fp","rc","s","dPatt","RegExp","customPropPatt","rPatt","Library","instance","Constructor","_classCallCheck","definitions","protoProps","staticProps","_this","_len","_key","additions","_pullDefinitions","definition","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","get","container","html","findIconDefinition","iconLookup","_iconLookup$prefix","library","parse","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","type","maybeIconDefinition","unicode","svgPathData","exports","object","enumerableOnly","symbols","apply","_objectSpread2","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","toString","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","camelize","string","match","chr","substr","_excluded$1","styleToObject","pair","prop","startsWith","charAt","PRODUCTION","normalizeIconArgs","objectWithKey","_excluded","FontAwesomeIcon","forwardedRef","iconArgs","maskArgs","className","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","rotation","pull","swapOpacity","classList","renderedIcon","_console","console","log","extraProps","ref","defaultProps","hasOwnProperty","convertCurry","displayName","propTypes","convert","mixins","attrs","_extraProps$style","existingStyle","bind","module","self","t","NaN","parseInt","u","l","Function","f","m","max","p","min","Date","now","v","h","k","O","leading","maxWait","trailing","cancel","clearTimeout","flush","valueOf","j","E","N","z","C","A","q","L","T","M","S","D","H","$","W","addedNodes","removedNodes","dataset","aos","Y","WebKitMutationObserver","MozMutationObserver","_","isSupported","ready","observe","childList","subtree","B","F","I","assign","K","G","J","Q","R","vendor","opera","U","mobile","phone","V","ie11","createEvent","initCustomEvent","detail","CustomEvent","dispatchEvent","X","options","position","node","data","animated","remove","animatedClassNames","mirror","out","once","in","add","pageYOffset","Z","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","top","left","ee","te","useClassNames","animatedClassName","initClassName","innerHeight","Number","querySelectorAll","offsetHeight","anchorPlacement","ne","oe","ie","ae","delay","easing","duration","disable","startEvent","disableMutationObserver","throttleDelay","debounceDelay","re","atob","ce","se","de","ue","removeAttribute","tablet","init","info","refresh","refreshHard","hasOwn","classNames","argType","default","_extends","_inheritsLoose","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","_excluded$2","_excluded2","_excluded3","_excluded4","camelCase$1","Util","withCamelCaseKeys","isEmpty","CLOUDINARY_REACT_PROPS","VIDEO_MIME_TYPES","flv","mov","mpg","avi","wmv","ogv","AUDIO_MIME_TYPES","m4a","wav","m3u","mp3","aif","aifc","aiff","CLOUDINARY_PROPS","Transformation","accumulator","cloudinaryPropName","getConfiguredCloudinary","extendedProps","ops","entries","_extends2","Cloudinary","getImageTag","tagType","publicId","getTag","makeElementResponsive","img","snakeCaseOptions","cld","cloudinary_update","responsive","extractCloudinaryProps","cloudinaryProps","nonCloudinaryProps","cloudinaryReactProps","camelKey","isCloudinaryComponent","component","normalizeOptions","right","getChildTransformations","context","childOptions","transformation","getTransformation","accessibility","placeholder","ownTransformation","tr","childrenOptions","advancedTransformations","CloudinaryContextType","createContext","camelCase","CloudinaryComponent","_PureComponent","_props","_context","getContext","onIntersect","setState","isInView","getExtendedProps","attachRef","innerRef","current","createRef","render","PureComponent","configParams","types","typesFrom","contextType","CloudinaryContext","_CloudinaryComponent","_extractCloudinaryPro","Provider","includeOwnBody","RESPONSIVE_OVERRIDE_WARNING","Image","isResponsive","_this$getExtendedProp","warn","getOptions","shouldLazyLoad","loading","getAttributes","additionalOptions","imageTag","dataSrc","src","update","getPlaceholderType","removePlaceholderListener","placeholderElement","listenerRemovers","removeImgListener","state","handleImageLoaded","onLoad","isLoaded","renderPlaceholder","placeholderAttributes","Fragment","renderImage","display","find","getChildPlaceholder","_proto","componentDidMount","componentDidUpdate","componentWillUnmount","removeListener","exposesProps","Video","mimeType","mimeSubTypes","getMergedProps","generateVideoUrl","childTransformations","sourceTransformations","sourceType","urlOptions","resource_type","format","url","generateUsingSourceTypes","sourceTypes","toSourceTag","buildMimeType","generateUsingSources","sources","_ref$transformations","transformations","codecs","getVideoTagProps","_this$getMergedProps","_this$getMergedProps$","sourceTransformation","tagAttributes","videoTag","sourceElements","reloadVideo","load","_this$props","fallback","_this$getVideoTagProp","Audio","_Video","poster","Placeholder","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","getKeys","getEnumerableOwnPropertySymbols","propertyIsOnObject","property","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","array","prev","deepmerge_1","toStringTag","__esModule","deepValue","location","distance","threshold","maxPatternLength","caseSensitive","tokenSeparator","findAllMatches","minMatchCharLength","shouldSort","getFn","sortFn","score","tokenize","matchAllTokens","includeMatches","includeScore","verbose","isCaseSensitive","setCollection","_processKeys","list","_keyWeights","_keyNames","weight","limit","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","_computeScore","_sort","_format","_analyze","record","resultMap","arrayIndex","search","pattern","isMatch","matchedIndices","output","item","EPSILON","pow","sort","JSON","stringify","matches","indices","patternAlphabet","errors","currentLocation","expectedLocation","lastIndexOf","floor","abs","isString","isNum","stdOnEnd","script","cb","onload","onerror","ieOnEnd","onreadystatechange","opts","getElementsByTagName","charset","async","setAttributes","text","appendChild","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","uptime","getTime","root","vendors","suffix","raf","caf","last","queue","_now","cp","cancelled","round","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","keyList","hasProp","hasElementType","Element","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","number","_createClass","_react2","_interopRequireDefault","_propTypes2","_reactSideEffect2","_reactFastCompare2","_HelmetUtils","_HelmetConstants","_possibleConstructorReturn","ReferenceError","Component","_class","_temp","HelmetSideEffects","reducePropsToState","handleClientStateChange","mapStateOnServer","HelmetExport","_React$Component","HelmetWrapper","_inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","TAG_NAMES","SCRIPT","NOSCRIPT","STYLE","cssText","flattenArrayTypeChildren","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_extends3","_extends4","newProps","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","set","canUseDOM","base","oneOfType","arrayOf","defaultTitle","defer","bool","encodeSpecialCharacters","link","meta","noscript","onChangeClientState","titleTemplate","peek","rewind","mappedState","baseTag","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","_objectAssign2","clock","encode","String","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","splice","tags","headElement","tagNodes","indexToDelete","newElement","styleSheet","createTextNode","some","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title","_react","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","desc","_interopRequireWildcard","_utils","WeakMap","_assertThisInitialized","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_getPrototypeOf","getPrototypeOf","Player","_Component","Derived","_super","Super","NewTarget","_args","player","isReady","playedSeconds","getCurrentTime","loadedSeconds","getSecondsLoaded","getDuration","progress","played","loaded","prevPlayed","prevLoaded","onProgress","progressTimeout","progressFrequency","progressInterval","mounted","isLoading","onReady","playing","volume","muted","setVolume","loadOnReady","play","handleDurationCheck","isPlaying","_this$props2","onStart","onPlay","playbackRate","startOnPlay","setPlaybackRate","seekOnPlay","seekTo","onPause","_this$props3","activePlayer","loop","onEnded","loopOnEnded","_this$props4","onError","durationCheckTimeout","onDurationCalled","onDuration","stop","disablePIP","prevProps","_this$props5","pip","isEqual","forceLoad","pause","enablePIP","mute","unmute","setLoop","amount","_this3","handleReady","handlePlay","handlePause","handleEnded","onLoaded","handleLoaded","handleError","ICON_SIZE","Preview","image","fetchImage","light","fetch","response","json","thumbnail_url","onClick","playIcon","flexCenter","alignItems","justifyContent","preview","backgroundImage","backgroundSize","backgroundPosition","cursor","shadow","background","borderRadius","borderStyle","borderWidth","borderColor","marginLeft","defaultPlayIcon","_players","_Player4","_Preview","_FilePlayer","_preload","_YouTube","_SoundCloud","_Vimeo","_Facebook","_Streamable","_Wistia","_Twitch","_DailyMotion","_Mixcloud","SUPPORTED_PROPS","customPlayers","ReactPlayer","getConfig","showPreview","getInternalPlayer","fraction","wrapper","nextState","_Player","canPlay","FilePlayer","activePlayerRef","controls","Wrapper","otherProps","omit","DEPRECATED_CONFIG_PROPS","getActivePlayer","renderedActivePlayer","renderActivePlayer","preloadPlayers","players","sortPlayers","handleClickPreview","wrapperRef","_i2","_arr2","_i3","_arr3","_Player3","canEnablePIP","DailyMotion","_singlePlayer","MATCH_URL","callPlayer","start","parseStartTime","autoplay","getSDK","DM","video","origin","dailymotion","events","apiready","seeked","onSeek","video_end","durationchange","onDurationChange","waiting","onBuffer","event","seconds","bufferedTime","_default","Facebook","SDK_URL","SDK_GLOBAL_READY","PLAYER_ID_PREFIX","facebook","playerId","randomString","FB","XFBML","appId","xfbml","version","Event","subscribe","playerID","onBufferEnd","getElementById","visibility","_createForOfIteratorHelper","it","normalCompletion","didErr","step","_e2","IOS","MSStream","AUDIO_EXTENSIONS","VIDEO_EXTENSIONS","HLS_EXTENSIONS","DASH_EXTENSIONS","MATCH_DROPBOX_URL","_step","_iterator","isMediaStream","supportsWebKitPresentationMode","webkitSupportsPresentationMode","webkitSetPresentationMode","_this$props6","_this$props7","_this$props8","onEnablePIP","_this$props9","onDisablePIP","webkitPresentationMode","track","prevPlayer","addListeners","shouldUseAudio","removeListeners","hls","destroy","playsinline","onPresentationModeChange","file","forceVideo","forceAudio","forceHLS","forceDASH","_this$props$config$fi","hlsVersion","dashVersion","shouldUseHLS","Hls","hlsOptions","on","Events","ERROR","loadSource","attachMedia","shouldUseDASH","dashjs","dash","MediaPlayer","initialize","getDebug","setLogToBrowserConsole","srcObject","URL","createObjectURL","reset","requestPictureInPicture","pictureInPictureElement","exitPictureInPicture","rate","_this$player","seekable","Infinity","end","buffered","useHLS","useDASH","_this$props10","getSource","preload","autoPlay","renderSourceElement","tracks","renderTrack","pictureInPictureEnabled","Mixcloud","iframe","PlayerWidget","ended","query","queryString","mixcloud","feed","frameBorder","SoundCloud","SC","_SC$Widget$Events","Widget","PLAY","PLAY_PROGRESS","PAUSE","FINISH","currentPosition","fractionLoaded","loadedProgress","soundcloud","encodeURIComponent","allow","Streamable","playerjs","percent","secondsLoaded","scrolling","allowFullScreen","Twitch","MATCH_VIDEO_URL","MATCH_CHANNEL_URL","twitch","isChannel","setChannel","setVideo","channel","_Twitch$Player","READY","PLAYING","ENDED","ONLINE","OFFLINE","Vimeo","MATCH_FILE_URL","vimeo","playerOptions","refreshDuration","overflow","Wistia","_onReady","_wq","getID","silentAutoPlay","controlsVisibleOnLoad","wistia","unbind","YouTube","SDK_GLOBAL","MATCH_PLAYLIST","parsePlaylist","listType","_window$SDK_GLOBAL$Pl","PlayerState","PAUSED","BUFFERING","CUED","isPlaylist","_onError","_config$youtube","youtube","playerVars","embedOptions","loadPlaylist","cueVideoById","videoId","startSeconds","endSeconds","parseEndTime","YT","onStateChange","body","contains","PRELOAD_PLAYERS","configKey","_propTypes","shape","isRequired","visual","buying","liking","download","sharing","show_comments","show_playcount","showinfo","rel","iv_load_policy","modestbranding","api","autopause","byline","portrait","hide_cover","SinglePlayer","_this$config$file","skipCanPlay","parseTimeParam","MATCH_START_QUERY","MATCH_END_QUERY","sdkGlobal","sdkReady","fetchScript","_loadScript","Promise","requests","sdk","request","previousOnReady","showWarning","_deepmerge","_e3","arrays","omitKeys","_keys","method","_len2","_key2","isObject","isValidElement","_Object$keys","MediaStream","MATCH_START_STAMP","MATCH_NUMERIC","stamp","exec","_array2","count","period","parseTimeString","_interopDefault","ex","React","React__default","shallowEqual","handleStateChangeOnClient","WrappedComponent","mountedInstances","emitChange","SideEffect","recordedState","componentWillMount","getDisplayName","linear","inQuad","outQuad","inOutQuad","inCube","outCube","inOutCube","inQuart","outQuart","inOutQuart","inQuint","outQuint","inOutQuint","inSine","cos","PI","outSine","sin","inOutSine","inExpo","outExpo","inOutExpo","inCirc","sqrt","outCirc","inOutCirc","inBack","outBack","inOutBack","inBounce","outBounce","inOutBounce","inElastic","asin","outElastic","inOutElastic","Emitter","mixin","_callbacks","off","removeAllListeners","callbacks","listeners","hasListeners","scroll","elem","additionalOffset","alignment","scrollPosition","elemRect","getBoundingClientRect","clientHeight","documentHeight","scrollHeight","bottom","maxScrollPosition","calculateScrollOffset","align","Tween","pageXOffset","tween","ease","to","animate","scrollTo","_from","_curr","extend","_done","_start","_to","ms","_duration","_ease","stopped","_update","curr","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","AnchorLink","require","_gatsby","_ref$stripHash","stripHash","_ref$gatsbyLinkProps","gatsbyLinkProps","onAnchorLinkClick","onClickHandler","handleStrippedLinkClick","handleLinkClick","linkProps","stripHashedLocation","Link","INVALID_HASH","IMPROPPER_FORMATTING","_AnchorLink","logWarning","scroller","includes","errorTypes","isBrowser","_to$split2","anchorPath","anchor","pathname","withPrefix","preventDefault","gatsby_scroll_offset","gatsby_scroll_duration","_to$split4","isSamePage","isDifferentPage","gatsby_scroll_hash","checkHash","hash","selector","validElement","Boolean","isDevelopment","_scrollToElement","goBack","standalone","white","whiteMobile","minimal","contained","tel","href","buttonText","external","appearance","btnClass","backBtnClass","substring","faFileDownload","history","back","faLongArrowLeft","btnHref","tight","isCentered","alignRight","alignLeft","buttonGroupClass","ButtonGroupMap","buttons","buttonObj","button","videoUrl","onlyButton","language","buttonClass","hyperlink","colorBack","smallSpacing","zeroTop","zeroBottom","zeroTopMobile","zeroBottomMobile","zeroTopDesktop","zeroBottomDesktop","wrapperClasses","sctn","rowReverse","verticallyCentered","sideColumnsSize","mainClasses","GeneralHours","dateLines","sortDays","locationHours","newArr","combinedTime","startTime","endTime","shortWeekDay","whatShortWeekDay","weekDay","fullWeekDAy","whatWeekDay","sortedDates","items","groupBy","dayLineArr","combinedTimeObjs","tempArr","tempArrFullObj","dayLineDays","dayLineTimes","joinWithDash","tempDayLine","joinWithCommas","daysInLineAreConsecutive","daysObj","consecutive","finalDateLines","days","allDaysAreConsecutive","tempDayTimes","times","nonConsecutiveDays","date","day","line","wrapperClass","footer","contact","paragraphClassName","small","heading","allowArrayLike","return","getDefaults","baseUrl","breaks","extensions","gfm","headerIds","headerPrefix","highlight","langPrefix","mangle","pedantic","renderer","sanitize","sanitizer","silent","smartLists","smartypants","tokenizer","walkTokens","xhtml","defaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","_escape","unescapeTest","fromCharCode","caret","edit","regex","opt","getRegex","nonWordAndColonTest","originIndependentUrl","cleanUrl","prot","decodeURIComponent","baseUrls","justDomain","rtrim","relativeBase","protocol","domain","resolveUrl","encodeURI","noopTest","merge","splitCells","tableRow","cells","escaped","shift","pop","invert","suffLen","currChar","checkSanitizeDeprecation","repeatString","outputLink","cap","raw","lexer","inLink","token","tokens","inlineTokens","Tokenizer","rules","block","newline","code","codeBlockStyle","fences","matchIndentToCode","indentToCode","matchIndentInNode","indentCodeCompensation","lang","trimmed","depth","inline","blockquote","blockTokens","istask","ischecked","indent","blankLine","endsWithBlankLine","nextLine","rawLine","itemContents","endEarly","bull","isordered","ordered","loose","itemRegex","trimLeft","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","task","checked","trimRight","spacers","hasMultipleLineBreaks","every","lineBreaks","pre","def","table","header","rows","row","lheading","paragraph","escape","inRawBlock","trimmedUrl","rtrimSlash","lastParenIndex","level","findClosingBracket","linkLen","_escapes","links","reflink","nolink","maskedSrc","prevChar","emStrong","lDelim","nextChar","punctuation","rDelim","rLength","lLength","delimTotal","midDelimTotal","endReg","rDelimAst","rDelimUnd","lastIndex","_text","hasNonSpaceChars","hasSpaceCharsOnBothEnds","br","del","autolink","prevCapZero","_backpedal","_paragraph","_label","_title","bullet","listItemStart","_tag","_comment","normal","reflinkSearch","charCodeAt","_punctuation","blockSkip","escapedEmSt","_scheme","_email","_attribute","_href","strong","middle","endAst","endUnd","em","_extended_email","Lexer","inlineQueue","lastToken","cutSrc","lastParagraphClipped","tabs","repeat","extTokenizer","space","startBlock","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","codespan","startInline","inlineText","lex","Renderer","_code","infostring","quote","_html","slugger","slug","flags","_text2","TextRenderer","_text3","Slugger","seen","originalSlug","isDryRun","occurenceAccumulator","serialize","getNextSafeSlug","dryrun","Parser","textRenderer","l2","l3","cell","itemBody","checkbox","renderers","parser","parseInline","tablecell","tablerow","unshift","listitem","marked","pending","_tokens","setOptions","newDefaults","use","hasExtensions","childTokens","pack","ext","prevRenderer","_loop","_len3","_key3","_loop2","prevTokenizer","_len4","_key4","_walkTokens","_step2","_iterator2","_loop3","_step3","_iterator3","_step4","_iterator4","_step5","_iterator5","_cell","lexInline","as","viewerClasses","convertedText","newStr","newTitle","removeSymbols","cloudinaryData","cloudinaryImages","images","resources","NuvoImage","quality","public_id","altTitle","findData","imageWrapperClasses","wrapperClassName","imageClasses","custom","alt","toSentenceCase","useAR","paddingTop","cloudName","buttonHref","isColumn","animation","office","classnames","useStaticQuery","locations","nodes","googleReviews","googles","gmbSocials","facebookSocials","platformArr","platform","useCityName","reviews","reviewObj","locationData","gmbId","facebookId","rating","platformId","locationName","gmbOverride","order","matchSocialsWithLocations","consolidated","rev","gridSize","reviewsContainer","marginRight","flexDirection","review","fontSize","lineHeight","color","marginBottom","fontWeight","fontFamily","totalReviews","Star","emptyStar","toFixed","stars","ones","remainder","decimalNumber","VideoButton","iconOnly","textOnly","overVideo","sizzleButton","textAlign","translations","allTranslationsJson","watchVideo","toggleTheater","faPlay","HamburgerIconTheater","HamburgerIconTheaterSpanClass","open","isOpen","isClosing","cMenuClass","disabled","isOpening","ResponsivePlayer","sidebarClass","theater","Overlay","updateWindowDimensions","innerWidth","generateKeyframesStyle","modifier","radius","menuKeyframes","$style","iconClass","containerClasses","compId","TheaterVideo","form","escFunction","menu","pauseButton","keyCode","prevState","zIndex","childrenWithProps","hasWatchVideo","containerClass","slideButton","SearchInput","toggleSearch","onChange","handleSearchInputChange","autoFocus","Search","searchClass","section","opensLeft","onSubmit","handleSearchSubmit","faTimes","xmlns","viewBox","fillRule","stroke","strokeWidth","strokeLinecap","strokeLinejoin","HamburgerIcon","renderIcon","iconType","HamburgerIconSpanClass","menuWordClass","bold","boldMenu","cMenuBurgerClass","toggleMenu","HamburgerMenu","Sidebar","openMenuLeft","openMenuRight","popularPages","useState","activeMenu","setActiveMenu","activeLinks","setActiveLinks","useEffect","columns","menuContentClass","shown","targetType","menuName","menuLinks","subMenu","description","faChevronRight","ActiveListMenu","wrapSup","DropdownItem","setIsOpen","chevronClasses","siloLinkClasses","faChevronDown","subMenu2","subLink","ComMenu","atTopOfPage","isAlwaysTransparent","logoChangesOnScroll","hasSearch","suggestions","searchTime","ada","hasADA","logo","hasLogo","fullLogo","hamburger","onscroll","browserStatus","searchIndex","es","en","searchItems","t0","Fuse","t1","searchInput","navigate","comMenuClass","transparent","StaticQuery","searchOptions","logoOptions","topLevelItems","allDataJson","openMenuOrdered","openMenuUnordered","navEs","menuIcon","opensFromRight","activeClassName","paddingRight","maxHeight","MenuTextLinks","paddingLeft","SearchIcon","TopLevelItemsMobile","logoWidth","logoId","logoTitle","isPhone","opensNewTab","linkTitle","faSearch","faFacebookF","faInstagram","iconColor","site","privacy","socialAccounts","allLocations","social","local","city","cityName","stateAbbr","zip","cityZip","streetName","streetNumber","gmb","googlePlaceLink","phoneNumber","fax","getFullYear","siteMetadata","fullPracticeName","credit","by","priv","soc","getScrollData","that","scrollOfset","scrollPercentage","didScroll","ScrollTracker","trackerStyle","transformOrigin","transition","Layout","showMenu","browserName","pageLoaded","iPhoneBottomNavVisible","handleiPhoneScroll","AOS","detectIE","afterBrowserStatus","oldHeight","filterPages","page","pageContext","hasThisPage","searchHeading","esSearchIndex","allStatefulPages","edges","enSearchIndex","pageTitle","bodyClasses","navSpacer","responsiveUseBreakpoints","secure","crop","fetchFormat","pageData","mode","streetFormat","cityStateFormat","countryCode","telTo","telephoneStrip","phonenumber","phonenumber__link","schemaData","siteVariables","locationsFormatted","clientTypes","oms","dentist","ortho","endo","createBusinessSchema","schema","isSingle","weekdays","abbr","hours","convertTime12to24","sortedHours","singleLocationValues","geo","latitude","coords","lat","longitude","lng","areaServed","priceRange","additionalType","clientType","parentOrganization","siteUrl","socialImage","address","streetAddress","addressLocality","addressRegion","postalCode","telephone","openingHours","hasmap","createMedicalProcedureSchema","medical","findMatches","productontology","productontologyRelations","related","relatedLinks","sameAs","procedureName","pageContent","schemas","presets","inLanguage","metaTitle","datePublished","dateModified","thumbnailUrl","potentialAction","createWebsiteSchema","sameAsArr","googleLinks","socials","createOrganizationSchema","procedureLocation","customSchema","SEO","robots","youtubeSchemas","combinedSchemas","useSchemas","schemaJson","metaRobots","metaDescription","practiceName","Helmet","getPostObj","englishNodes","spanishNodes","russianNodes","post","setEnglishOrSpanishPost","sortArchive","archiveArray","shuffleArray","getMonthYearFromStrings","year","month","localeLanguage","yearInt","monthInt","capitalizeFirstLetter","toLocaleString","getUnrelatedReviews","targetArray","allElements","targetProperty","elementsWithTargetProperty","nonMatching","getOnlyElementsWithTargetProperty","getNonMatchingObjectsFromAllElements","sortReviewsByDate","aYear","monthYear","bYear","aMonth","bMonth","getFeaturedProceduresAndOtherProceduresObject","procedures","featuredProcedures","otherProcedures","procedureLevel","getHearFromHeadingAndBlurbObject","procedure","originalReviewCount","blurb","isFacewallTextGeneric","removeRball","nameSingular","pluralizeName","replaceStringVars","cleanURL","time12h","time","minutes","isCallable","tryToString","$TypeError","argument","isConstructor","$String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","$Object","CORRECT_ARGUMENTS","tryGet","callee","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","DESCRIPTORS","createPropertyDescriptor","bitmap","makeBuiltIn","defineGlobalProperty","simple","global","unsafe","nonConfigurable","nonWritable","fails","EXISTS","getBuiltIn","Deno","versions","v8","createNonEnumerableProperty","defineBuiltIn","copyConstructorProperties","isForced","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","NATIVE_BIND","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","aFunction","aCallable","check","globalThis","toObject","classof","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","TYPE","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","replacement","feature","detection","normalize","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","trunc","V8_VERSION","PromiseCapability","$$resolve","$$reject","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","internalObjectKeys","getOwnPropertyNames","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","newPromiseCapability","promiseCapability","uid","SHARED","IS_PURE","copyright","license","aConstructor","SPECIES","defaultConstructor","$trimEnd","forcedStringTrimMethod","trimEnd","PROPER_FUNCTION_NAME","whitespaces","METHOD_NAME","$trimStart","trimStart","requireObjectCoercible","whitespace","ltrim","toIntegerOrInfinity","integer","IndexedObject","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","NativePromiseConstructor","speciesConstructor","promiseResolve","NativePromisePrototype","proto","real","onFinally","isFunction","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","clear","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Set","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","Uint8Array","thisArg","iteratee","predicate","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseAssignValue","eq","objValue","copyObject","keysIn","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","isFunc","stacked","subValue","objectCreate","baseCreate","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","isCommon","valuesLength","computed","valuesIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","arrayFilter","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","isPrototype","nativeKeys","nativeKeysIn","isProto","assignMergeValue","baseMergeDeep","safeGet","baseMerge","srcIndex","srcValue","newValue","cloneTypedArray","isArrayLikeObject","isPlainObject","toPlainObject","mergeFunc","isTyped","identity","overRest","setToString","constant","baseSetToString","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","baseSlice","strSymbols","chrSymbols","arrayBuffer","byteLength","freeExports","nodeType","freeModule","Buffer","allocUnsafe","buffer","copy","cloneArrayBuffer","dataView","byteOffset","reFlags","regexp","symbolValueOf","typedArray","isNew","getSymbols","getSymbolsIn","coreJsData","baseRest","isIterateeCall","assigner","guard","iterable","freeGlobal","baseGetAllKeys","isKeyable","baseIsNative","getValue","getPrototype","overArg","nativeObjectToString","isOwn","unmasked","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","Ctor","ctorString","reHasUnicode","nativeCreate","cloneDataView","cloneRegExp","cloneSymbol","spreadableSymbol","isConcatSpreadable","reIsUint","isArrayLike","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","freeProcess","nodeUtil","binding","nativeMax","otherArgs","freeSelf","shortOut","nativeNow","lastCalled","pairs","LARGE_ARRAY_SIZE","asciiToArray","hasUnicode","unicodeToArray","reWhitespace","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","createAssigner","CLONE_DEEP_FLAG","baseDifference","difference","other","baseFunctions","toInteger","collection","baseIsArguments","stubFalse","baseIsMap","nodeIsMap","objectCtorString","baseIsSet","nodeIsSet","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseKeysIn","toNumber","INFINITY","toFinite","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","castSlice","charsEndIndex","charsStartIndex","stringToArray","chars","baseValues","LogoMarkInline","LogoInline","unsupportedIterableToArray"],"sourceRoot":""}