{"version":3,"file":"js/370-1821d2aa5a1e5573fa4e.js","mappings":"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,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU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","sources":["webpack://app/./node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack://app/./node_modules/bootstrap-select/dist/js/bootstrap-select.js","webpack://app/./node_modules/bootstrap-tagsinput/dist/bootstrap-tagsinput.js","webpack://app/./node_modules/bootstrap/dist/js/bootstrap.js","webpack://app/./node_modules/daterangepicker/daterangepicker.js","webpack://app/./node_modules/jquery.nicescroll/jquery.nicescroll.js","webpack://app/./node_modules/moment/locale/af.js","webpack://app/./node_modules/moment/locale/ar-dz.js","webpack://app/./node_modules/moment/locale/ar-kw.js","webpack://app/./node_modules/moment/locale/ar-ly.js","webpack://app/./node_modules/moment/locale/ar-ma.js","webpack://app/./node_modules/moment/locale/ar-ps.js","webpack://app/./node_modules/moment/locale/ar-sa.js","webpack://app/./node_modules/moment/locale/ar-tn.js","webpack://app/./node_modules/moment/locale/ar.js","webpack://app/./node_modules/moment/locale/az.js","webpack://app/./node_modules/moment/locale/be.js","webpack://app/./node_modules/moment/locale/bg.js","webpack://app/./node_modules/moment/locale/bm.js","webpack://app/./node_modules/moment/locale/bn-bd.js","webpack://app/./node_modules/moment/locale/bn.js","webpack://app/./node_modules/moment/locale/bo.js","webpack://app/./node_modules/moment/locale/br.js","webpack://app/./node_modules/moment/locale/bs.js","webpack://app/./node_modules/moment/locale/ca.js","webpack://app/./node_modules/moment/locale/cs.js","webpack://app/./node_modules/moment/locale/cv.js","webpack://app/./node_modules/moment/locale/cy.js","webpack://app/./node_modules/moment/locale/da.js","webpack://app/./node_modules/moment/locale/de-at.js","webpack://app/./node_modules/moment/locale/de-ch.js","webpack://app/./node_modules/moment/locale/de.js","webpack://app/./node_modules/moment/locale/dv.js","webpack://app/./node_modules/moment/locale/el.js","webpack://app/./node_modules/moment/locale/en-au.js","webpack://app/./node_modules/moment/locale/en-ca.js","webpack://app/./node_modules/moment/locale/en-gb.js","webpack://app/./node_modules/moment/locale/en-ie.js","webpack://app/./node_modules/moment/locale/en-il.js","webpack://app/./node_modules/moment/locale/en-in.js","webpack://app/./node_modules/moment/locale/en-nz.js","webpack://app/./node_modules/moment/locale/en-sg.js","webpack://app/./node_modules/moment/locale/eo.js","webpack://app/./node_modules/moment/locale/es-do.js","webpack://app/./node_modules/moment/locale/es-mx.js","webpack://app/./node_modules/moment/locale/es-us.js","webpack://app/./node_modules/moment/locale/es.js","webpack://app/./node_modules/moment/locale/et.js","webpack://app/./node_modules/moment/locale/eu.js","webpack://app/./node_modules/moment/locale/fa.js","webpack://app/./node_modules/moment/locale/fi.js","webpack://app/./node_modules/moment/locale/fil.js","webpack://app/./node_modules/moment/locale/fo.js","webpack://app/./node_modules/moment/locale/fr-ca.js","webpack://app/./node_modules/moment/locale/fr-ch.js","webpack://app/./node_modules/moment/locale/fr.js","webpack://app/./node_modules/moment/locale/fy.js","webpack://app/./node_modules/moment/locale/ga.js","webpack://app/./node_modules/moment/locale/gd.js","webpack://app/./node_modules/moment/locale/gl.js","webpack://app/./node_modules/moment/locale/gom-deva.js","webpack://app/./node_modules/moment/locale/gom-latn.js","webpack://app/./node_modules/moment/locale/gu.js","webpack://app/./node_modules/moment/locale/he.js","webpack://app/./node_modules/moment/locale/hi.js","webpack://app/./node_modules/moment/locale/hr.js","webpack://app/./node_modules/moment/locale/hu.js","webpack://app/./node_modules/moment/locale/hy-am.js","webpack://app/./node_modules/moment/locale/id.js","webpack://app/./node_modules/moment/locale/is.js","webpack://app/./node_modules/moment/locale/it-ch.js","webpack://app/./node_modules/moment/locale/it.js","webpack://app/./node_modules/moment/locale/ja.js","webpack://app/./node_modules/moment/locale/jv.js","webpack://app/./node_modules/moment/locale/ka.js","webpack://app/./node_modules/moment/locale/kk.js","webpack://app/./node_modules/moment/locale/km.js","webpack://app/./node_modules/moment/locale/kn.js","webpack://app/./node_modules/moment/locale/ko.js","webpack://app/./node_modules/moment/locale/ku-kmr.js","webpack://app/./node_modules/moment/locale/ku.js","webpack://app/./node_modules/moment/locale/ky.js","webpack://app/./node_modules/moment/locale/lb.js","webpack://app/./node_modules/moment/locale/lo.js","webpack://app/./node_modules/moment/locale/lt.js","webpack://app/./node_modules/moment/locale/lv.js","webpack://app/./node_modules/moment/locale/me.js","webpack://app/./node_modules/moment/locale/mi.js","webpack://app/./node_modules/moment/locale/mk.js","webpack://app/./node_modules/moment/locale/ml.js","webpack://app/./node_modules/moment/locale/mn.js","webpack://app/./node_modules/moment/locale/mr.js","webpack://app/./node_modules/moment/locale/ms-my.js","webpack://app/./node_modules/moment/locale/ms.js","webpack://app/./node_modules/moment/locale/mt.js","webpack://app/./node_modules/moment/locale/my.js","webpack://app/./node_modules/moment/locale/nb.js","webpack://app/./node_modules/moment/locale/ne.js","webpack://app/./node_modules/moment/locale/nl-be.js","webpack://app/./node_modules/moment/locale/nl.js","webpack://app/./node_modules/moment/locale/nn.js","webpack://app/./node_modules/moment/locale/oc-lnc.js","webpack://app/./node_modules/moment/locale/pa-in.js","webpack://app/./node_modules/moment/locale/pl.js","webpack://app/./node_modules/moment/locale/pt-br.js","webpack://app/./node_modules/moment/locale/pt.js","webpack://app/./node_modules/moment/locale/ro.js","webpack://app/./node_modules/moment/locale/ru.js","webpack://app/./node_modules/moment/locale/sd.js","webpack://app/./node_modules/moment/locale/se.js","webpack://app/./node_modules/moment/locale/si.js","webpack://app/./node_modules/moment/locale/sk.js","webpack://app/./node_modules/moment/locale/sl.js","webpack://app/./node_modules/moment/locale/sq.js","webpack://app/./node_modules/moment/locale/sr-cyrl.js","webpack://app/./node_modules/moment/locale/sr.js","webpack://app/./node_modules/moment/locale/ss.js","webpack://app/./node_modules/moment/locale/sv.js","webpack://app/./node_modules/moment/locale/sw.js","webpack://app/./node_modules/moment/locale/ta.js","webpack://app/./node_modules/moment/locale/te.js","webpack://app/./node_modules/moment/locale/tet.js","webpack://app/./node_modules/moment/locale/tg.js","webpack://app/./node_modules/moment/locale/th.js","webpack://app/./node_modules/moment/locale/tk.js","webpack://app/./node_modules/moment/locale/tl-ph.js","webpack://app/./node_modules/moment/locale/tlh.js","webpack://app/./node_modules/moment/locale/tr.js","webpack://app/./node_modules/moment/locale/tzl.js","webpack://app/./node_modules/moment/locale/tzm-latn.js","webpack://app/./node_modules/moment/locale/tzm.js","webpack://app/./node_modules/moment/locale/ug-cn.js","webpack://app/./node_modules/moment/locale/uk.js","webpack://app/./node_modules/moment/locale/ur.js","webpack://app/./node_modules/moment/locale/uz-latn.js","webpack://app/./node_modules/moment/locale/uz.js","webpack://app/./node_modules/moment/locale/vi.js","webpack://app/./node_modules/moment/locale/x-pseudo.js","webpack://app/./node_modules/moment/locale/yo.js","webpack://app/./node_modules/moment/locale/zh-cn.js","webpack://app/./node_modules/moment/locale/zh-hk.js","webpack://app/./node_modules/moment/locale/zh-mo.js","webpack://app/./node_modules/moment/locale/zh-tw.js","webpack://app/./node_modules/moment/moment.js","webpack://app/./node_modules/popper.js/dist/esm/popper.js","webpack://app/./node_modules/turbolinks/dist/turbolinks.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://app/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://app/./node_modules/just-extend/index.esm.js","webpack://app/./node_modules/dropzone/dist/dropzone.mjs"],"sourcesContent":["(function(global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([ \"exports\" ], factory) : factory(global.ActionCable = {});\n})(this, function(exports) {\n \"use strict\";\n var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n };\n var logger = {\n log: function log() {\n if (this.enabled) {\n var _adapters$logger;\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n messages.push(Date.now());\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [ \"[ActionCable]\" ].concat(messages));\n }\n }\n };\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n var classCallCheck = function(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function() {\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 return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var now = function now() {\n return new Date().getTime();\n };\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n var ConnectionMonitor = function() {\n function ConnectionMonitor(connection) {\n classCallCheck(this, ConnectionMonitor);\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n ConnectionMonitor.prototype.start = function start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n ConnectionMonitor.prototype.stop = function stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n };\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\n ConnectionMonitor.prototype.recordConnect = function recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n };\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n this.pollTimeout = setTimeout(function() {\n _this.reconnectIfStale();\n _this.poll();\n }, this.getPollInterval());\n };\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval, min = _constructor$pollInte.min, max = _constructor$pollInte.max, multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\n ConnectionMonitor.prototype.reconnectIfStale = function reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n };\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n if (document.visibilityState === \"visible\") {\n setTimeout(function() {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = \" + document.visibilityState);\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n return ConnectionMonitor;\n }();\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30,\n multiplier: 5\n };\n ConnectionMonitor.staleThreshold = 6;\n var INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n };\n var message_types = INTERNAL.message_types, protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n var Connection = function() {\n function Connection(consumer) {\n classCallCheck(this, Connection);\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n Connection.prototype.send = function send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n Connection.prototype.open = function open() {\n if (this.isActive()) {\n logger.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n logger.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n }, allowReconnect = _ref.allowReconnect;\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\n Connection.prototype.isState = function isState() {\n for (var _len = arguments.length, states = Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n return indexOf.call(states, this.getState()) >= 0;\n };\n Connection.prototype.getState = function getState() {\n if (this.webSocket) {\n for (var state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n };\n Connection.prototype.installEventHandlers = function installEventHandlers() {\n for (var eventName in this.events) {\n var handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function() {};\n }\n };\n return Connection;\n }();\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n var _JSON$parse = JSON.parse(event.data), identifier = _JSON$parse.identifier, message = _JSON$parse.message, reason = _JSON$parse.reason, reconnect = _JSON$parse.reconnect, type = _JSON$parse.type;\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(\"Disconnecting. Reason: \" + reason);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function open() {\n logger.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function error() {\n logger.log(\"WebSocket onerror event\");\n }\n };\n var extend = function extend(object, properties) {\n if (properties != null) {\n for (var key in properties) {\n var value = properties[key];\n object[key] = value;\n }\n }\n return object;\n };\n var Subscription = function() {\n function Subscription(consumer) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var mixin = arguments[2];\n classCallCheck(this, Subscription);\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n Subscription.prototype.perform = function perform(action) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n data.action = action;\n return this.send(data);\n };\n Subscription.prototype.send = function send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n return Subscription;\n }();\n var SubscriptionGuarantor = function() {\n function SubscriptionGuarantor(subscriptions) {\n classCallCheck(this, SubscriptionGuarantor);\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n SubscriptionGuarantor.prototype.guarantee = function guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(\"SubscriptionGuarantor guaranteeing \" + subscription.identifier);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(\"SubscriptionGuarantor already guaranteeing \" + subscription.identifier);\n }\n this.startGuaranteeing();\n };\n SubscriptionGuarantor.prototype.forget = function forget(subscription) {\n logger.log(\"SubscriptionGuarantor forgetting \" + subscription.identifier);\n this.pendingSubscriptions = this.pendingSubscriptions.filter(function(s) {\n return s !== subscription;\n });\n };\n SubscriptionGuarantor.prototype.startGuaranteeing = function startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n };\n SubscriptionGuarantor.prototype.stopGuaranteeing = function stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n };\n SubscriptionGuarantor.prototype.retrySubscribing = function retrySubscribing() {\n var _this = this;\n this.retryTimeout = setTimeout(function() {\n if (_this.subscriptions && typeof _this.subscriptions.subscribe === \"function\") {\n _this.pendingSubscriptions.map(function(subscription) {\n logger.log(\"SubscriptionGuarantor resubscribing \" + subscription.identifier);\n _this.subscriptions.subscribe(subscription);\n });\n }\n }, 500);\n };\n return SubscriptionGuarantor;\n }();\n var Subscriptions = function() {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n Subscriptions.prototype.create = function create(channelName, mixin) {\n var channel = channelName;\n var params = (typeof channel === \"undefined\" ? \"undefined\" : _typeof(channel)) === \"object\" ? channel : {\n channel: channel\n };\n var subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n };\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n };\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n return this.findAll(identifier).map(function(subscription) {\n _this.forget(subscription);\n _this.notify(subscription, \"rejected\");\n return subscription;\n });\n };\n Subscriptions.prototype.forget = function forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter(function(s) {\n return s !== subscription;\n });\n return subscription;\n };\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function(s) {\n return s.identifier === identifier;\n });\n };\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n return this.subscriptions.map(function(subscription) {\n return _this2.subscribe(subscription);\n });\n };\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return this.subscriptions.map(function(subscription) {\n return _this3.notify.apply(_this3, [ subscription, callbackName ].concat(args));\n });\n };\n Subscriptions.prototype.notify = function notify(subscription, callbackName) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n var subscriptions = void 0;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map(function(subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\n };\n Subscriptions.prototype.subscribe = function subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n };\n Subscriptions.prototype.confirmSubscription = function confirmSubscription(identifier) {\n var _this4 = this;\n logger.log(\"Subscription confirmed \" + identifier);\n this.findAll(identifier).map(function(subscription) {\n return _this4.guarantor.forget(subscription);\n });\n };\n Subscriptions.prototype.sendCommand = function sendCommand(subscription, command) {\n var identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n return Subscriptions;\n }();\n var Consumer = function() {\n function Consumer(url) {\n classCallCheck(this, Consumer);\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n createClass(Consumer, [ {\n key: \"url\",\n get: function get$$1() {\n return createWebSocketURL(this._url);\n }\n } ]);\n return Consumer;\n }();\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n var a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n }\n function createConsumer() {\n var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getConfig(\"url\") || INTERNAL.default_mount_path;\n return new Consumer(url);\n }\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n exports.Connection = Connection;\n exports.ConnectionMonitor = ConnectionMonitor;\n exports.Consumer = Consumer;\n exports.INTERNAL = INTERNAL;\n exports.Subscription = Subscription;\n exports.Subscriptions = Subscriptions;\n exports.SubscriptionGuarantor = SubscriptionGuarantor;\n exports.adapters = adapters;\n exports.createWebSocketURL = createWebSocketURL;\n exports.logger = logger;\n exports.createConsumer = createConsumer;\n exports.getConfig = getConfig;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\n","/*!\r\n * Bootstrap-select v1.13.14 (https://developer.snapappointments.com/bootstrap-select)\r\n *\r\n * Copyright 2012-2020 SnapAppointments, LLC\r\n * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)\r\n */\r\n\r\n(function (root, factory) {\r\n if (root === undefined && window !== undefined) root = window;\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module unless amdModuleId is set\r\n define([\"jquery\"], function (a0) {\r\n return (factory(a0));\r\n });\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory(require(\"jquery\"));\r\n } else {\r\n factory(root[\"jQuery\"]);\r\n }\r\n}(this, function (jQuery) {\r\n\r\n(function ($) {\r\n 'use strict';\r\n\r\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\r\n\r\n var uriAttrs = [\r\n 'background',\r\n 'cite',\r\n 'href',\r\n 'itemtype',\r\n 'longdesc',\r\n 'poster',\r\n 'src',\r\n 'xlink:href'\r\n ];\r\n\r\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\r\n\r\n var DefaultWhitelist = {\r\n // Global attributes allowed on any supplied element below.\r\n '*': ['class', 'dir', 'id', 'lang', 'role', 'tabindex', 'style', ARIA_ATTRIBUTE_PATTERN],\r\n a: ['target', 'href', 'title', 'rel'],\r\n area: [],\r\n b: [],\r\n br: [],\r\n col: [],\r\n code: [],\r\n div: [],\r\n em: [],\r\n hr: [],\r\n h1: [],\r\n h2: [],\r\n h3: [],\r\n h4: [],\r\n h5: [],\r\n h6: [],\r\n i: [],\r\n img: ['src', 'alt', 'title', 'width', 'height'],\r\n li: [],\r\n ol: [],\r\n p: [],\r\n pre: [],\r\n s: [],\r\n small: [],\r\n span: [],\r\n sub: [],\r\n sup: [],\r\n strong: [],\r\n u: [],\r\n ul: []\r\n }\r\n\r\n /**\r\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\r\n\r\n /**\r\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\r\n *\r\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\r\n\r\n function allowedAttribute (attr, allowedAttributeList) {\r\n var attrName = attr.nodeName.toLowerCase()\r\n\r\n if ($.inArray(attrName, allowedAttributeList) !== -1) {\r\n if ($.inArray(attrName, uriAttrs) !== -1) {\r\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\r\n }\r\n\r\n return true\r\n }\r\n\r\n var regExp = $(allowedAttributeList).filter(function (index, value) {\r\n return value instanceof RegExp\r\n })\r\n\r\n // Check if a regular expression validates the attribute.\r\n for (var i = 0, l = regExp.length; i < l; i++) {\r\n if (attrName.match(regExp[i])) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n function sanitizeHtml (unsafeElements, whiteList, sanitizeFn) {\r\n if (sanitizeFn && typeof sanitizeFn === 'function') {\r\n return sanitizeFn(unsafeElements);\r\n }\r\n\r\n var whitelistKeys = Object.keys(whiteList);\r\n\r\n for (var i = 0, len = unsafeElements.length; i < len; i++) {\r\n var elements = unsafeElements[i].querySelectorAll('*');\r\n\r\n for (var j = 0, len2 = elements.length; j < len2; j++) {\r\n var el = elements[j];\r\n var elName = el.nodeName.toLowerCase();\r\n\r\n if (whitelistKeys.indexOf(elName) === -1) {\r\n el.parentNode.removeChild(el);\r\n\r\n continue;\r\n }\r\n\r\n var attributeList = [].slice.call(el.attributes);\r\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\r\n\r\n for (var k = 0, len3 = attributeList.length; k < len3; k++) {\r\n var attr = attributeList[k];\r\n\r\n if (!allowedAttribute(attr, whitelistedAttributes)) {\r\n el.removeAttribute(attr.nodeName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Polyfill for browsers with no classList support\r\n // Remove in v2\r\n if (!('classList' in document.createElement('_'))) {\r\n (function (view) {\r\n if (!('Element' in view)) return;\r\n\r\n var classListProp = 'classList',\r\n protoProp = 'prototype',\r\n elemCtrProto = view.Element[protoProp],\r\n objCtr = Object,\r\n classListGetter = function () {\r\n var $elem = $(this);\r\n\r\n return {\r\n add: function (classes) {\r\n classes = Array.prototype.slice.call(arguments).join(' ');\r\n return $elem.addClass(classes);\r\n },\r\n remove: function (classes) {\r\n classes = Array.prototype.slice.call(arguments).join(' ');\r\n return $elem.removeClass(classes);\r\n },\r\n toggle: function (classes, force) {\r\n return $elem.toggleClass(classes, force);\r\n },\r\n contains: function (classes) {\r\n return $elem.hasClass(classes);\r\n }\r\n }\r\n };\r\n\r\n if (objCtr.defineProperty) {\r\n var classListPropDesc = {\r\n get: classListGetter,\r\n enumerable: true,\r\n configurable: true\r\n };\r\n try {\r\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n } catch (ex) { // IE 8 doesn't support enumerable:true\r\n // adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\r\n // modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\r\n if (ex.number === undefined || ex.number === -0x7FF5EC54) {\r\n classListPropDesc.enumerable = false;\r\n objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\r\n }\r\n }\r\n } else if (objCtr[protoProp].__defineGetter__) {\r\n elemCtrProto.__defineGetter__(classListProp, classListGetter);\r\n }\r\n }(window));\r\n }\r\n\r\n var testElement = document.createElement('_');\r\n\r\n testElement.classList.add('c1', 'c2');\r\n\r\n if (!testElement.classList.contains('c2')) {\r\n var _add = DOMTokenList.prototype.add,\r\n _remove = DOMTokenList.prototype.remove;\r\n\r\n DOMTokenList.prototype.add = function () {\r\n Array.prototype.forEach.call(arguments, _add.bind(this));\r\n }\r\n\r\n DOMTokenList.prototype.remove = function () {\r\n Array.prototype.forEach.call(arguments, _remove.bind(this));\r\n }\r\n }\r\n\r\n testElement.classList.toggle('c3', false);\r\n\r\n // Polyfill for IE 10 and Firefox <24, where classList.toggle does not\r\n // support the second argument.\r\n if (testElement.classList.contains('c3')) {\r\n var _toggle = DOMTokenList.prototype.toggle;\r\n\r\n DOMTokenList.prototype.toggle = function (token, force) {\r\n if (1 in arguments && !this.contains(token) === !force) {\r\n return force;\r\n } else {\r\n return _toggle.call(this, token);\r\n }\r\n };\r\n }\r\n\r\n testElement = null;\r\n\r\n // shallow array comparison\r\n function isEqual (array1, array2) {\r\n return array1.length === array2.length && array1.every(function (element, index) {\r\n return element === array2[index];\r\n });\r\n };\r\n\r\n // \r\n if (!String.prototype.startsWith) {\r\n (function () {\r\n 'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\r\n var defineProperty = (function () {\r\n // IE 8 only supports `Object.defineProperty` on DOM elements\r\n try {\r\n var object = {};\r\n var $defineProperty = Object.defineProperty;\r\n var result = $defineProperty(object, object, object) && $defineProperty;\r\n } catch (error) {\r\n }\r\n return result;\r\n }());\r\n var toString = {}.toString;\r\n var startsWith = function (search) {\r\n if (this == null) {\r\n throw new TypeError();\r\n }\r\n var string = String(this);\r\n if (search && toString.call(search) == '[object RegExp]') {\r\n throw new TypeError();\r\n }\r\n var stringLength = string.length;\r\n var searchString = String(search);\r\n var searchLength = searchString.length;\r\n var position = arguments.length > 1 ? arguments[1] : undefined;\r\n // `ToInteger`\r\n var pos = position ? Number(position) : 0;\r\n if (pos != pos) { // better `isNaN`\r\n pos = 0;\r\n }\r\n var start = Math.min(Math.max(pos, 0), stringLength);\r\n // Avoid the `indexOf` call if no match is possible\r\n if (searchLength + start > stringLength) {\r\n return false;\r\n }\r\n var index = -1;\r\n while (++index < searchLength) {\r\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n if (defineProperty) {\r\n defineProperty(String.prototype, 'startsWith', {\r\n 'value': startsWith,\r\n 'configurable': true,\r\n 'writable': true\r\n });\r\n } else {\r\n String.prototype.startsWith = startsWith;\r\n }\r\n }());\r\n }\r\n\r\n if (!Object.keys) {\r\n Object.keys = function (\r\n o, // object\r\n k, // key\r\n r // result array\r\n ) {\r\n // initialize object and result\r\n r = [];\r\n // iterate over object keys\r\n for (k in o) {\r\n // fill result array with non-prototypical keys\r\n r.hasOwnProperty.call(o, k) && r.push(k);\r\n }\r\n // return result\r\n return r;\r\n };\r\n }\r\n\r\n if (HTMLSelectElement && !HTMLSelectElement.prototype.hasOwnProperty('selectedOptions')) {\r\n Object.defineProperty(HTMLSelectElement.prototype, 'selectedOptions', {\r\n get: function () {\r\n return this.querySelectorAll(':checked');\r\n }\r\n });\r\n }\r\n\r\n function getSelectedOptions (select, ignoreDisabled) {\r\n var selectedOptions = select.selectedOptions,\r\n options = [],\r\n opt;\r\n\r\n if (ignoreDisabled) {\r\n for (var i = 0, len = selectedOptions.length; i < len; i++) {\r\n opt = selectedOptions[i];\r\n\r\n if (!(opt.disabled || opt.parentNode.tagName === 'OPTGROUP' && opt.parentNode.disabled)) {\r\n options.push(opt);\r\n }\r\n }\r\n\r\n return options;\r\n }\r\n\r\n return selectedOptions;\r\n }\r\n\r\n // much faster than $.val()\r\n function getSelectValues (select, selectedOptions) {\r\n var value = [],\r\n options = selectedOptions || select.selectedOptions,\r\n opt;\r\n\r\n for (var i = 0, len = options.length; i < len; i++) {\r\n opt = options[i];\r\n\r\n if (!(opt.disabled || opt.parentNode.tagName === 'OPTGROUP' && opt.parentNode.disabled)) {\r\n value.push(opt.value);\r\n }\r\n }\r\n\r\n if (!select.multiple) {\r\n return !value.length ? null : value[0];\r\n }\r\n\r\n return value;\r\n }\r\n\r\n // set data-selected on select element if the value has been programmatically selected\r\n // prior to initialization of bootstrap-select\r\n // * consider removing or replacing an alternative method *\r\n var valHooks = {\r\n useDefault: false,\r\n _set: $.valHooks.select.set\r\n };\r\n\r\n $.valHooks.select.set = function (elem, value) {\r\n if (value && !valHooks.useDefault) $(elem).data('selected', true);\r\n\r\n return valHooks._set.apply(this, arguments);\r\n };\r\n\r\n var changedArguments = null;\r\n\r\n var EventIsSupported = (function () {\r\n try {\r\n new Event('change');\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n })();\r\n\r\n $.fn.triggerNative = function (eventName) {\r\n var el = this[0],\r\n event;\r\n\r\n if (el.dispatchEvent) { // for modern browsers & IE9+\r\n if (EventIsSupported) {\r\n // For modern browsers\r\n event = new Event(eventName, {\r\n bubbles: true\r\n });\r\n } else {\r\n // For IE since it doesn't support Event constructor\r\n event = document.createEvent('Event');\r\n event.initEvent(eventName, true, false);\r\n }\r\n\r\n el.dispatchEvent(event);\r\n } else if (el.fireEvent) { // for IE8\r\n event = document.createEventObject();\r\n event.eventType = eventName;\r\n el.fireEvent('on' + eventName, event);\r\n } else {\r\n // fall back to jQuery.trigger\r\n this.trigger(eventName);\r\n }\r\n };\r\n // \r\n\r\n function stringSearch (li, searchString, method, normalize) {\r\n var stringTypes = [\r\n 'display',\r\n 'subtext',\r\n 'tokens'\r\n ],\r\n searchSuccess = false;\r\n\r\n for (var i = 0; i < stringTypes.length; i++) {\r\n var stringType = stringTypes[i],\r\n string = li[stringType];\r\n\r\n if (string) {\r\n string = string.toString();\r\n\r\n // Strip HTML tags. This isn't perfect, but it's much faster than any other method\r\n if (stringType === 'display') {\r\n string = string.replace(/<[^>]+>/g, '');\r\n }\r\n\r\n if (normalize) string = normalizeToBase(string);\r\n string = string.toUpperCase();\r\n\r\n if (method === 'contains') {\r\n searchSuccess = string.indexOf(searchString) >= 0;\r\n } else {\r\n searchSuccess = string.startsWith(searchString);\r\n }\r\n\r\n if (searchSuccess) break;\r\n }\r\n }\r\n\r\n return searchSuccess;\r\n }\r\n\r\n function toInteger (value) {\r\n return parseInt(value, 10) || 0;\r\n }\r\n\r\n // Borrowed from Lodash (_.deburr)\r\n /** Used to map Latin Unicode letters to basic Latin letters. */\r\n var deburredLetters = {\r\n // Latin-1 Supplement block.\r\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\r\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\r\n '\\xc7': 'C', '\\xe7': 'c',\r\n '\\xd0': 'D', '\\xf0': 'd',\r\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\r\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\r\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\r\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\r\n '\\xd1': 'N', '\\xf1': 'n',\r\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\r\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\r\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\r\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\r\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\r\n '\\xc6': 'Ae', '\\xe6': 'ae',\r\n '\\xde': 'Th', '\\xfe': 'th',\r\n '\\xdf': 'ss',\r\n // Latin Extended-A block.\r\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\r\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\r\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\r\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\r\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\r\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\r\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\r\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\r\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\r\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\r\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\r\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\r\n '\\u0134': 'J', '\\u0135': 'j',\r\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\r\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\r\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\r\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\r\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\r\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\r\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\r\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\r\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\r\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\r\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\r\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\r\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\r\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\r\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\r\n '\\u0174': 'W', '\\u0175': 'w',\r\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\r\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\r\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\r\n '\\u0132': 'IJ', '\\u0133': 'ij',\r\n '\\u0152': 'Oe', '\\u0153': 'oe',\r\n '\\u0149': \"'n\", '\\u017f': 's'\r\n };\r\n\r\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\r\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\r\n\r\n /** Used to compose unicode character classes. */\r\n var rsComboMarksRange = '\\\\u0300-\\\\u036f',\r\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\r\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\r\n rsComboMarksExtendedRange = '\\\\u1ab0-\\\\u1aff',\r\n rsComboMarksSupplementRange = '\\\\u1dc0-\\\\u1dff',\r\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange + rsComboMarksExtendedRange + rsComboMarksSupplementRange;\r\n\r\n /** Used to compose unicode capture groups. */\r\n var rsCombo = '[' + rsComboRange + ']';\r\n\r\n /**\r\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\r\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\r\n */\r\n var reComboMark = RegExp(rsCombo, 'g');\r\n\r\n function deburrLetter (key) {\r\n return deburredLetters[key];\r\n };\r\n\r\n function normalizeToBase (string) {\r\n string = string.toString();\r\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\r\n }\r\n\r\n // List of HTML entities for escaping.\r\n var escapeMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n '`': '`'\r\n };\r\n\r\n // Functions for escaping and unescaping strings to/from HTML interpolation.\r\n var createEscaper = function (map) {\r\n var escaper = function (match) {\r\n return map[match];\r\n };\r\n // Regexes for identifying a key that needs to be escaped.\r\n var source = '(?:' + Object.keys(map).join('|') + ')';\r\n var testRegexp = RegExp(source);\r\n var replaceRegexp = RegExp(source, 'g');\r\n return function (string) {\r\n string = string == null ? '' : '' + string;\r\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\r\n };\r\n };\r\n\r\n var htmlEscape = createEscaper(escapeMap);\r\n\r\n /**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\n var keyCodeMap = {\r\n 32: ' ',\r\n 48: '0',\r\n 49: '1',\r\n 50: '2',\r\n 51: '3',\r\n 52: '4',\r\n 53: '5',\r\n 54: '6',\r\n 55: '7',\r\n 56: '8',\r\n 57: '9',\r\n 59: ';',\r\n 65: 'A',\r\n 66: 'B',\r\n 67: 'C',\r\n 68: 'D',\r\n 69: 'E',\r\n 70: 'F',\r\n 71: 'G',\r\n 72: 'H',\r\n 73: 'I',\r\n 74: 'J',\r\n 75: 'K',\r\n 76: 'L',\r\n 77: 'M',\r\n 78: 'N',\r\n 79: 'O',\r\n 80: 'P',\r\n 81: 'Q',\r\n 82: 'R',\r\n 83: 'S',\r\n 84: 'T',\r\n 85: 'U',\r\n 86: 'V',\r\n 87: 'W',\r\n 88: 'X',\r\n 89: 'Y',\r\n 90: 'Z',\r\n 96: '0',\r\n 97: '1',\r\n 98: '2',\r\n 99: '3',\r\n 100: '4',\r\n 101: '5',\r\n 102: '6',\r\n 103: '7',\r\n 104: '8',\r\n 105: '9'\r\n };\r\n\r\n var keyCodes = {\r\n ESCAPE: 27, // KeyboardEvent.which value for Escape (Esc) key\r\n ENTER: 13, // KeyboardEvent.which value for Enter key\r\n SPACE: 32, // KeyboardEvent.which value for space key\r\n TAB: 9, // KeyboardEvent.which value for tab key\r\n ARROW_UP: 38, // KeyboardEvent.which value for up arrow key\r\n ARROW_DOWN: 40 // KeyboardEvent.which value for down arrow key\r\n }\r\n\r\n var version = {\r\n success: false,\r\n major: '3'\r\n };\r\n\r\n try {\r\n version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.');\r\n version.major = version.full[0];\r\n version.success = true;\r\n } catch (err) {\r\n // do nothing\r\n }\r\n\r\n var selectId = 0;\r\n\r\n var EVENT_KEY = '.bs.select';\r\n\r\n var classNames = {\r\n DISABLED: 'disabled',\r\n DIVIDER: 'divider',\r\n SHOW: 'open',\r\n DROPUP: 'dropup',\r\n MENU: 'dropdown-menu',\r\n MENURIGHT: 'dropdown-menu-right',\r\n MENULEFT: 'dropdown-menu-left',\r\n // to-do: replace with more advanced template/customization options\r\n BUTTONCLASS: 'btn-default',\r\n POPOVERHEADER: 'popover-title',\r\n ICONBASE: 'glyphicon',\r\n TICKICON: 'glyphicon-ok'\r\n }\r\n\r\n var Selector = {\r\n MENU: '.' + classNames.MENU\r\n }\r\n\r\n var elementTemplates = {\r\n span: document.createElement('span'),\r\n i: document.createElement('i'),\r\n subtext: document.createElement('small'),\r\n a: document.createElement('a'),\r\n li: document.createElement('li'),\r\n whitespace: document.createTextNode('\\u00A0'),\r\n fragment: document.createDocumentFragment()\r\n }\r\n\r\n elementTemplates.a.setAttribute('role', 'option');\r\n if (version.major === '4') elementTemplates.a.className = 'dropdown-item';\r\n\r\n elementTemplates.subtext.className = 'text-muted';\r\n\r\n elementTemplates.text = elementTemplates.span.cloneNode(false);\r\n elementTemplates.text.className = 'text';\r\n\r\n elementTemplates.checkMark = elementTemplates.span.cloneNode(false);\r\n\r\n var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN);\r\n var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE);\r\n\r\n var generateOption = {\r\n li: function (content, classes, optgroup) {\r\n var li = elementTemplates.li.cloneNode(false);\r\n\r\n if (content) {\r\n if (content.nodeType === 1 || content.nodeType === 11) {\r\n li.appendChild(content);\r\n } else {\r\n li.innerHTML = content;\r\n }\r\n }\r\n\r\n if (typeof classes !== 'undefined' && classes !== '') li.className = classes;\r\n if (typeof optgroup !== 'undefined' && optgroup !== null) li.classList.add('optgroup-' + optgroup);\r\n\r\n return li;\r\n },\r\n\r\n a: function (text, classes, inline) {\r\n var a = elementTemplates.a.cloneNode(true);\r\n\r\n if (text) {\r\n if (text.nodeType === 11) {\r\n a.appendChild(text);\r\n } else {\r\n a.insertAdjacentHTML('beforeend', text);\r\n }\r\n }\r\n\r\n if (typeof classes !== 'undefined' && classes !== '') a.classList.add.apply(a.classList, classes.split(' '));\r\n if (inline) a.setAttribute('style', inline);\r\n\r\n return a;\r\n },\r\n\r\n text: function (options, useFragment) {\r\n var textElement = elementTemplates.text.cloneNode(false),\r\n subtextElement,\r\n iconElement;\r\n\r\n if (options.content) {\r\n textElement.innerHTML = options.content;\r\n } else {\r\n textElement.textContent = options.text;\r\n\r\n if (options.icon) {\r\n var whitespace = elementTemplates.whitespace.cloneNode(false);\r\n\r\n // need to use for icons in the button to prevent a breaking change\r\n // note: switch to span in next major release\r\n iconElement = (useFragment === true ? elementTemplates.i : elementTemplates.span).cloneNode(false);\r\n iconElement.className = this.options.iconBase + ' ' + options.icon;\r\n\r\n elementTemplates.fragment.appendChild(iconElement);\r\n elementTemplates.fragment.appendChild(whitespace);\r\n }\r\n\r\n if (options.subtext) {\r\n subtextElement = elementTemplates.subtext.cloneNode(false);\r\n subtextElement.textContent = options.subtext;\r\n textElement.appendChild(subtextElement);\r\n }\r\n }\r\n\r\n if (useFragment === true) {\r\n while (textElement.childNodes.length > 0) {\r\n elementTemplates.fragment.appendChild(textElement.childNodes[0]);\r\n }\r\n } else {\r\n elementTemplates.fragment.appendChild(textElement);\r\n }\r\n\r\n return elementTemplates.fragment;\r\n },\r\n\r\n label: function (options) {\r\n var textElement = elementTemplates.text.cloneNode(false),\r\n subtextElement,\r\n iconElement;\r\n\r\n textElement.innerHTML = options.display;\r\n\r\n if (options.icon) {\r\n var whitespace = elementTemplates.whitespace.cloneNode(false);\r\n\r\n iconElement = elementTemplates.span.cloneNode(false);\r\n iconElement.className = this.options.iconBase + ' ' + options.icon;\r\n\r\n elementTemplates.fragment.appendChild(iconElement);\r\n elementTemplates.fragment.appendChild(whitespace);\r\n }\r\n\r\n if (options.subtext) {\r\n subtextElement = elementTemplates.subtext.cloneNode(false);\r\n subtextElement.textContent = options.subtext;\r\n textElement.appendChild(subtextElement);\r\n }\r\n\r\n elementTemplates.fragment.appendChild(textElement);\r\n\r\n return elementTemplates.fragment;\r\n }\r\n }\r\n\r\n var Selectpicker = function (element, options) {\r\n var that = this;\r\n\r\n // bootstrap-select has been initialized - revert valHooks.select.set back to its original function\r\n if (!valHooks.useDefault) {\r\n $.valHooks.select.set = valHooks._set;\r\n valHooks.useDefault = true;\r\n }\r\n\r\n this.$element = $(element);\r\n this.$newElement = null;\r\n this.$button = null;\r\n this.$menu = null;\r\n this.options = options;\r\n this.selectpicker = {\r\n main: {},\r\n search: {},\r\n current: {}, // current changes if a search is in progress\r\n view: {},\r\n isSearching: false,\r\n keydown: {\r\n keyHistory: '',\r\n resetKeyHistory: {\r\n start: function () {\r\n return setTimeout(function () {\r\n that.selectpicker.keydown.keyHistory = '';\r\n }, 800);\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.sizeInfo = {};\r\n\r\n // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a\r\n // data-attribute)\r\n if (this.options.title === null) {\r\n this.options.title = this.$element.attr('title');\r\n }\r\n\r\n // Format window padding\r\n var winPad = this.options.windowPadding;\r\n if (typeof winPad === 'number') {\r\n this.options.windowPadding = [winPad, winPad, winPad, winPad];\r\n }\r\n\r\n // Expose public methods\r\n this.val = Selectpicker.prototype.val;\r\n this.render = Selectpicker.prototype.render;\r\n this.refresh = Selectpicker.prototype.refresh;\r\n this.setStyle = Selectpicker.prototype.setStyle;\r\n this.selectAll = Selectpicker.prototype.selectAll;\r\n this.deselectAll = Selectpicker.prototype.deselectAll;\r\n this.destroy = Selectpicker.prototype.destroy;\r\n this.remove = Selectpicker.prototype.remove;\r\n this.show = Selectpicker.prototype.show;\r\n this.hide = Selectpicker.prototype.hide;\r\n\r\n this.init();\r\n };\r\n\r\n Selectpicker.VERSION = '1.13.14';\r\n\r\n // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\r\n Selectpicker.DEFAULTS = {\r\n noneSelectedText: 'Nothing selected',\r\n noneResultsText: 'No results matched {0}',\r\n countSelectedText: function (numSelected, numTotal) {\r\n return (numSelected == 1) ? '{0} item selected' : '{0} items selected';\r\n },\r\n maxOptionsText: function (numAll, numGroup) {\r\n return [\r\n (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',\r\n (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'\r\n ];\r\n },\r\n selectAllText: 'Select All',\r\n deselectAllText: 'Deselect All',\r\n doneButton: false,\r\n doneButtonText: 'Close',\r\n multipleSeparator: ', ',\r\n styleBase: 'btn',\r\n style: classNames.BUTTONCLASS,\r\n size: 'auto',\r\n title: null,\r\n selectedTextFormat: 'values',\r\n width: false,\r\n container: false,\r\n hideDisabled: false,\r\n showSubtext: false,\r\n showIcon: true,\r\n showContent: true,\r\n dropupAuto: true,\r\n header: false,\r\n liveSearch: false,\r\n liveSearchPlaceholder: null,\r\n liveSearchNormalize: false,\r\n liveSearchStyle: 'contains',\r\n actionsBox: false,\r\n iconBase: classNames.ICONBASE,\r\n tickIcon: classNames.TICKICON,\r\n showTick: false,\r\n template: {\r\n caret: ''\r\n },\r\n maxOptions: false,\r\n mobile: false,\r\n selectOnTab: false,\r\n dropdownAlignRight: false,\r\n windowPadding: 0,\r\n virtualScroll: 600,\r\n display: false,\r\n sanitize: true,\r\n sanitizeFn: null,\r\n whiteList: DefaultWhitelist\r\n };\r\n\r\n Selectpicker.prototype = {\r\n\r\n constructor: Selectpicker,\r\n\r\n init: function () {\r\n var that = this,\r\n id = this.$element.attr('id');\r\n\r\n selectId++;\r\n this.selectId = 'bs-select-' + selectId;\r\n\r\n this.$element[0].classList.add('bs-select-hidden');\r\n\r\n this.multiple = this.$element.prop('multiple');\r\n this.autofocus = this.$element.prop('autofocus');\r\n\r\n if (this.$element[0].classList.contains('show-tick')) {\r\n this.options.showTick = true;\r\n }\r\n\r\n this.$newElement = this.createDropdown();\r\n this.buildData();\r\n this.$element\r\n .after(this.$newElement)\r\n .prependTo(this.$newElement);\r\n\r\n this.$button = this.$newElement.children('button');\r\n this.$menu = this.$newElement.children(Selector.MENU);\r\n this.$menuInner = this.$menu.children('.inner');\r\n this.$searchbox = this.$menu.find('input');\r\n\r\n this.$element[0].classList.remove('bs-select-hidden');\r\n\r\n if (this.options.dropdownAlignRight === true) this.$menu[0].classList.add(classNames.MENURIGHT);\r\n\r\n if (typeof id !== 'undefined') {\r\n this.$button.attr('data-id', id);\r\n }\r\n\r\n this.checkDisabled();\r\n this.clickListener();\r\n\r\n if (this.options.liveSearch) {\r\n this.liveSearchListener();\r\n this.focusedParent = this.$searchbox[0];\r\n } else {\r\n this.focusedParent = this.$menuInner[0];\r\n }\r\n\r\n this.setStyle();\r\n this.render();\r\n this.setWidth();\r\n if (this.options.container) {\r\n this.selectPosition();\r\n } else {\r\n this.$element.on('hide' + EVENT_KEY, function () {\r\n if (that.isVirtual()) {\r\n // empty menu on close\r\n var menuInner = that.$menuInner[0],\r\n emptyMenu = menuInner.firstChild.cloneNode(false);\r\n\r\n // replace the existing UL with an empty one - this is faster than $.empty() or innerHTML = ''\r\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\r\n menuInner.scrollTop = 0;\r\n }\r\n });\r\n }\r\n this.$menu.data('this', this);\r\n this.$newElement.data('this', this);\r\n if (this.options.mobile) this.mobile();\r\n\r\n this.$newElement.on({\r\n 'hide.bs.dropdown': function (e) {\r\n that.$element.trigger('hide' + EVENT_KEY, e);\r\n },\r\n 'hidden.bs.dropdown': function (e) {\r\n that.$element.trigger('hidden' + EVENT_KEY, e);\r\n },\r\n 'show.bs.dropdown': function (e) {\r\n that.$element.trigger('show' + EVENT_KEY, e);\r\n },\r\n 'shown.bs.dropdown': function (e) {\r\n that.$element.trigger('shown' + EVENT_KEY, e);\r\n }\r\n });\r\n\r\n if (that.$element[0].hasAttribute('required')) {\r\n this.$element.on('invalid' + EVENT_KEY, function () {\r\n that.$button[0].classList.add('bs-invalid');\r\n\r\n that.$element\r\n .on('shown' + EVENT_KEY + '.invalid', function () {\r\n that.$element\r\n .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\r\n .off('shown' + EVENT_KEY + '.invalid');\r\n })\r\n .on('rendered' + EVENT_KEY, function () {\r\n // if select is no longer invalid, remove the bs-invalid class\r\n if (this.validity.valid) that.$button[0].classList.remove('bs-invalid');\r\n that.$element.off('rendered' + EVENT_KEY);\r\n });\r\n\r\n that.$button.on('blur' + EVENT_KEY, function () {\r\n that.$element.trigger('focus').trigger('blur');\r\n that.$button.off('blur' + EVENT_KEY);\r\n });\r\n });\r\n }\r\n\r\n setTimeout(function () {\r\n that.buildList();\r\n that.$element.trigger('loaded' + EVENT_KEY);\r\n });\r\n },\r\n\r\n createDropdown: function () {\r\n // Options\r\n // If we are multiple or showTick option is set, then add the show-tick class\r\n var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '',\r\n multiselectable = this.multiple ? ' aria-multiselectable=\"true\"' : '',\r\n inputGroup = '',\r\n autofocus = this.autofocus ? ' autofocus' : '';\r\n\r\n if (version.major < 4 && this.$element.parent().hasClass('input-group')) {\r\n inputGroup = ' input-group-btn';\r\n }\r\n\r\n // Elements\r\n var drop,\r\n header = '',\r\n searchbox = '',\r\n actionsbox = '',\r\n donebutton = '';\r\n\r\n if (this.options.header) {\r\n header =\r\n '' +\r\n '×' +\r\n this.options.header +\r\n '';\r\n }\r\n\r\n if (this.options.liveSearch) {\r\n searchbox =\r\n '' +\r\n '' +\r\n '';\r\n }\r\n\r\n if (this.multiple && this.options.actionsBox) {\r\n actionsbox =\r\n '' +\r\n '' +\r\n '' +\r\n this.options.selectAllText +\r\n '' +\r\n '' +\r\n this.options.deselectAllText +\r\n '' +\r\n '' +\r\n '';\r\n }\r\n\r\n if (this.multiple && this.options.doneButton) {\r\n donebutton =\r\n '' +\r\n '' +\r\n '' +\r\n this.options.doneButtonText +\r\n '' +\r\n '' +\r\n '';\r\n }\r\n\r\n drop =\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n ' ' +\r\n '' +\r\n (\r\n version.major === '4' ? ''\r\n :\r\n '' +\r\n this.options.template.caret +\r\n ''\r\n ) +\r\n '' +\r\n '' +\r\n header +\r\n searchbox +\r\n actionsbox +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n donebutton +\r\n '' +\r\n '';\r\n\r\n return $(drop);\r\n },\r\n\r\n setPositionData: function () {\r\n this.selectpicker.view.canHighlight = [];\r\n this.selectpicker.view.size = 0;\r\n\r\n for (var i = 0; i < this.selectpicker.current.data.length; i++) {\r\n var li = this.selectpicker.current.data[i],\r\n canHighlight = true;\r\n\r\n if (li.type === 'divider') {\r\n canHighlight = false;\r\n li.height = this.sizeInfo.dividerHeight;\r\n } else if (li.type === 'optgroup-label') {\r\n canHighlight = false;\r\n li.height = this.sizeInfo.dropdownHeaderHeight;\r\n } else {\r\n li.height = this.sizeInfo.liHeight;\r\n }\r\n\r\n if (li.disabled) canHighlight = false;\r\n\r\n this.selectpicker.view.canHighlight.push(canHighlight);\r\n\r\n if (canHighlight) {\r\n this.selectpicker.view.size++;\r\n li.posinset = this.selectpicker.view.size;\r\n }\r\n\r\n li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height;\r\n }\r\n },\r\n\r\n isVirtual: function () {\r\n return (this.options.virtualScroll !== false) && (this.selectpicker.main.elements.length >= this.options.virtualScroll) || this.options.virtualScroll === true;\r\n },\r\n\r\n createView: function (isSearching, setSize, refresh) {\r\n var that = this,\r\n scrollTop = 0,\r\n active = [],\r\n selected,\r\n prevActive;\r\n\r\n this.selectpicker.isSearching = isSearching;\r\n this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main;\r\n\r\n this.setPositionData();\r\n\r\n if (setSize) {\r\n if (refresh) {\r\n scrollTop = this.$menuInner[0].scrollTop;\r\n } else if (!that.multiple) {\r\n var element = that.$element[0],\r\n selectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\r\n\r\n if (typeof selectedIndex === 'number' && that.options.size !== false) {\r\n var selectedData = that.selectpicker.main.data[selectedIndex],\r\n position = selectedData && selectedData.position;\r\n\r\n if (position) {\r\n scrollTop = position - ((that.sizeInfo.menuInnerHeight + that.sizeInfo.liHeight) / 2);\r\n }\r\n }\r\n }\r\n }\r\n\r\n scroll(scrollTop, true);\r\n\r\n this.$menuInner.off('scroll.createView').on('scroll.createView', function (e, updateValue) {\r\n if (!that.noScroll) scroll(this.scrollTop, updateValue);\r\n that.noScroll = false;\r\n });\r\n\r\n function scroll (scrollTop, init) {\r\n var size = that.selectpicker.current.elements.length,\r\n chunks = [],\r\n chunkSize,\r\n chunkCount,\r\n firstChunk,\r\n lastChunk,\r\n currentChunk,\r\n prevPositions,\r\n positionIsDifferent,\r\n previousElements,\r\n menuIsDifferent = true,\r\n isVirtual = that.isVirtual();\r\n\r\n that.selectpicker.view.scrollTop = scrollTop;\r\n\r\n chunkSize = Math.ceil(that.sizeInfo.menuInnerHeight / that.sizeInfo.liHeight * 1.5); // number of options in a chunk\r\n chunkCount = Math.round(size / chunkSize) || 1; // number of chunks\r\n\r\n for (var i = 0; i < chunkCount; i++) {\r\n var endOfChunk = (i + 1) * chunkSize;\r\n\r\n if (i === chunkCount - 1) {\r\n endOfChunk = size;\r\n }\r\n\r\n chunks[i] = [\r\n (i) * chunkSize + (!i ? 0 : 1),\r\n endOfChunk\r\n ];\r\n\r\n if (!size) break;\r\n\r\n if (currentChunk === undefined && scrollTop - 1 <= that.selectpicker.current.data[endOfChunk - 1].position - that.sizeInfo.menuInnerHeight) {\r\n currentChunk = i;\r\n }\r\n }\r\n\r\n if (currentChunk === undefined) currentChunk = 0;\r\n\r\n prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1];\r\n\r\n // always display previous, current, and next chunks\r\n firstChunk = Math.max(0, currentChunk - 1);\r\n lastChunk = Math.min(chunkCount - 1, currentChunk + 1);\r\n\r\n that.selectpicker.view.position0 = isVirtual === false ? 0 : (Math.max(0, chunks[firstChunk][0]) || 0);\r\n that.selectpicker.view.position1 = isVirtual === false ? size : (Math.min(size, chunks[lastChunk][1]) || 0);\r\n\r\n positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1;\r\n\r\n if (that.activeIndex !== undefined) {\r\n prevActive = that.selectpicker.main.elements[that.prevActiveIndex];\r\n active = that.selectpicker.main.elements[that.activeIndex];\r\n selected = that.selectpicker.main.elements[that.selectedIndex];\r\n\r\n if (init) {\r\n if (that.activeIndex !== that.selectedIndex) {\r\n that.defocusItem(active);\r\n }\r\n that.activeIndex = undefined;\r\n }\r\n\r\n if (that.activeIndex && that.activeIndex !== that.selectedIndex) {\r\n that.defocusItem(selected);\r\n }\r\n }\r\n\r\n if (that.prevActiveIndex !== undefined && that.prevActiveIndex !== that.activeIndex && that.prevActiveIndex !== that.selectedIndex) {\r\n that.defocusItem(prevActive);\r\n }\r\n\r\n if (init || positionIsDifferent) {\r\n previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : [];\r\n\r\n if (isVirtual === false) {\r\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements;\r\n } else {\r\n that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1);\r\n }\r\n\r\n that.setOptionStatus();\r\n\r\n // if searching, check to make sure the list has actually been updated before updating DOM\r\n // this prevents unnecessary repaints\r\n if (isSearching || (isVirtual === false && init)) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements);\r\n\r\n // if virtual scroll is disabled and not searching,\r\n // menu should never need to be updated more than once\r\n if ((init || isVirtual === true) && menuIsDifferent) {\r\n var menuInner = that.$menuInner[0],\r\n menuFragment = document.createDocumentFragment(),\r\n emptyMenu = menuInner.firstChild.cloneNode(false),\r\n marginTop,\r\n marginBottom,\r\n elements = that.selectpicker.view.visibleElements,\r\n toSanitize = [];\r\n\r\n // replace the existing UL with an empty one - this is faster than $.empty()\r\n menuInner.replaceChild(emptyMenu, menuInner.firstChild);\r\n\r\n for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) {\r\n var element = elements[i],\r\n elText,\r\n elementData;\r\n\r\n if (that.options.sanitize) {\r\n elText = element.lastChild;\r\n\r\n if (elText) {\r\n elementData = that.selectpicker.current.data[i + that.selectpicker.view.position0];\r\n\r\n if (elementData && elementData.content && !elementData.sanitized) {\r\n toSanitize.push(elText);\r\n elementData.sanitized = true;\r\n }\r\n }\r\n }\r\n\r\n menuFragment.appendChild(element);\r\n }\r\n\r\n if (that.options.sanitize && toSanitize.length) {\r\n sanitizeHtml(toSanitize, that.options.whiteList, that.options.sanitizeFn);\r\n }\r\n\r\n if (isVirtual === true) {\r\n marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position);\r\n marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position);\r\n\r\n menuInner.firstChild.style.marginTop = marginTop + 'px';\r\n menuInner.firstChild.style.marginBottom = marginBottom + 'px';\r\n } else {\r\n menuInner.firstChild.style.marginTop = 0;\r\n menuInner.firstChild.style.marginBottom = 0;\r\n }\r\n\r\n menuInner.firstChild.appendChild(menuFragment);\r\n\r\n // if an option is encountered that is wider than the current menu width, update the menu width accordingly\r\n // switch to ResizeObserver with increased browser support\r\n if (isVirtual === true && that.sizeInfo.hasScrollBar) {\r\n var menuInnerInnerWidth = menuInner.firstChild.offsetWidth;\r\n\r\n if (init && menuInnerInnerWidth < that.sizeInfo.menuInnerInnerWidth && that.sizeInfo.totalMenuWidth > that.sizeInfo.selectWidth) {\r\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\r\n } else if (menuInnerInnerWidth > that.sizeInfo.menuInnerInnerWidth) {\r\n // set to 0 to get actual width of menu\r\n that.$menu[0].style.minWidth = 0;\r\n\r\n var actualMenuWidth = menuInner.firstChild.offsetWidth;\r\n\r\n if (actualMenuWidth > that.sizeInfo.menuInnerInnerWidth) {\r\n that.sizeInfo.menuInnerInnerWidth = actualMenuWidth;\r\n menuInner.firstChild.style.minWidth = that.sizeInfo.menuInnerInnerWidth + 'px';\r\n }\r\n\r\n // reset to default CSS styling\r\n that.$menu[0].style.minWidth = '';\r\n }\r\n }\r\n }\r\n }\r\n\r\n that.prevActiveIndex = that.activeIndex;\r\n\r\n if (!that.options.liveSearch) {\r\n that.$menuInner.trigger('focus');\r\n } else if (isSearching && init) {\r\n var index = 0,\r\n newActive;\r\n\r\n if (!that.selectpicker.view.canHighlight[index]) {\r\n index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true);\r\n }\r\n\r\n newActive = that.selectpicker.view.visibleElements[index];\r\n\r\n that.defocusItem(that.selectpicker.view.currentActive);\r\n\r\n that.activeIndex = (that.selectpicker.current.data[index] || {}).index;\r\n\r\n that.focusItem(newActive);\r\n }\r\n }\r\n\r\n $(window)\r\n .off('resize' + EVENT_KEY + '.' + this.selectId + '.createView')\r\n .on('resize' + EVENT_KEY + '.' + this.selectId + '.createView', function () {\r\n var isActive = that.$newElement.hasClass(classNames.SHOW);\r\n\r\n if (isActive) scroll(that.$menuInner[0].scrollTop);\r\n });\r\n },\r\n\r\n focusItem: function (li, liData, noStyle) {\r\n if (li) {\r\n liData = liData || this.selectpicker.main.data[this.activeIndex];\r\n var a = li.firstChild;\r\n\r\n if (a) {\r\n a.setAttribute('aria-setsize', this.selectpicker.view.size);\r\n a.setAttribute('aria-posinset', liData.posinset);\r\n\r\n if (noStyle !== true) {\r\n this.focusedParent.setAttribute('aria-activedescendant', a.id);\r\n li.classList.add('active');\r\n a.classList.add('active');\r\n }\r\n }\r\n }\r\n },\r\n\r\n defocusItem: function (li) {\r\n if (li) {\r\n li.classList.remove('active');\r\n if (li.firstChild) li.firstChild.classList.remove('active');\r\n }\r\n },\r\n\r\n setPlaceholder: function () {\r\n var updateIndex = false;\r\n\r\n if (this.options.title && !this.multiple) {\r\n if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option');\r\n\r\n // this option doesn't create a new element, but does add a new option at the start,\r\n // so startIndex should increase to prevent having to check every option for the bs-title-option class\r\n updateIndex = true;\r\n\r\n var element = this.$element[0],\r\n isSelected = false,\r\n titleNotAppended = !this.selectpicker.view.titleOption.parentNode;\r\n\r\n if (titleNotAppended) {\r\n // Use native JS to prepend option (faster)\r\n this.selectpicker.view.titleOption.className = 'bs-title-option';\r\n this.selectpicker.view.titleOption.value = '';\r\n\r\n // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\r\n // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\r\n // if so, the select will have the data-selected attribute\r\n var $opt = $(element.options[element.selectedIndex]);\r\n isSelected = $opt.attr('selected') === undefined && this.$element.data('selected') === undefined;\r\n }\r\n\r\n if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) {\r\n element.insertBefore(this.selectpicker.view.titleOption, element.firstChild);\r\n }\r\n\r\n // Set selected *after* appending to select,\r\n // otherwise the option doesn't get selected in IE\r\n // set using selectedIndex, as setting the selected attr to true here doesn't work in IE11\r\n if (isSelected) element.selectedIndex = 0;\r\n }\r\n\r\n return updateIndex;\r\n },\r\n\r\n buildData: function () {\r\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"])',\r\n mainData = [],\r\n optID = 0,\r\n startIndex = this.setPlaceholder() ? 1 : 0; // append the titleOption if necessary and skip the first option in the loop\r\n\r\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\r\n\r\n var selectOptions = this.$element[0].querySelectorAll('select > *' + optionSelector);\r\n\r\n function addDivider (config) {\r\n var previousData = mainData[mainData.length - 1];\r\n\r\n // ensure optgroup doesn't create back-to-back dividers\r\n if (\r\n previousData &&\r\n previousData.type === 'divider' &&\r\n (previousData.optID || config.optID)\r\n ) {\r\n return;\r\n }\r\n\r\n config = config || {};\r\n config.type = 'divider';\r\n\r\n mainData.push(config);\r\n }\r\n\r\n function addOption (option, config) {\r\n config = config || {};\r\n\r\n config.divider = option.getAttribute('data-divider') === 'true';\r\n\r\n if (config.divider) {\r\n addDivider({\r\n optID: config.optID\r\n });\r\n } else {\r\n var liIndex = mainData.length,\r\n cssText = option.style.cssText,\r\n inlineStyle = cssText ? htmlEscape(cssText) : '',\r\n optionClass = (option.className || '') + (config.optgroupClass || '');\r\n\r\n if (config.optID) optionClass = 'opt ' + optionClass;\r\n\r\n config.optionClass = optionClass.trim();\r\n config.inlineStyle = inlineStyle;\r\n config.text = option.textContent;\r\n\r\n config.content = option.getAttribute('data-content');\r\n config.tokens = option.getAttribute('data-tokens');\r\n config.subtext = option.getAttribute('data-subtext');\r\n config.icon = option.getAttribute('data-icon');\r\n\r\n option.liIndex = liIndex;\r\n\r\n config.display = config.content || config.text;\r\n config.type = 'option';\r\n config.index = liIndex;\r\n config.option = option;\r\n config.selected = !!option.selected;\r\n config.disabled = config.disabled || !!option.disabled;\r\n\r\n mainData.push(config);\r\n }\r\n }\r\n\r\n function addOptgroup (index, selectOptions) {\r\n var optgroup = selectOptions[index],\r\n previous = selectOptions[index - 1],\r\n next = selectOptions[index + 1],\r\n options = optgroup.querySelectorAll('option' + optionSelector);\r\n\r\n if (!options.length) return;\r\n\r\n var config = {\r\n display: htmlEscape(optgroup.label),\r\n subtext: optgroup.getAttribute('data-subtext'),\r\n icon: optgroup.getAttribute('data-icon'),\r\n type: 'optgroup-label',\r\n optgroupClass: ' ' + (optgroup.className || '')\r\n },\r\n headerIndex,\r\n lastIndex;\r\n\r\n optID++;\r\n\r\n if (previous) {\r\n addDivider({ optID: optID });\r\n }\r\n\r\n config.optID = optID;\r\n\r\n mainData.push(config);\r\n\r\n for (var j = 0, len = options.length; j < len; j++) {\r\n var option = options[j];\r\n\r\n if (j === 0) {\r\n headerIndex = mainData.length - 1;\r\n lastIndex = headerIndex + len;\r\n }\r\n\r\n addOption(option, {\r\n headerIndex: headerIndex,\r\n lastIndex: lastIndex,\r\n optID: config.optID,\r\n optgroupClass: config.optgroupClass,\r\n disabled: optgroup.disabled\r\n });\r\n }\r\n\r\n if (next) {\r\n addDivider({ optID: optID });\r\n }\r\n }\r\n\r\n for (var len = selectOptions.length; startIndex < len; startIndex++) {\r\n var item = selectOptions[startIndex];\r\n\r\n if (item.tagName !== 'OPTGROUP') {\r\n addOption(item, {});\r\n } else {\r\n addOptgroup(startIndex, selectOptions);\r\n }\r\n }\r\n\r\n this.selectpicker.main.data = this.selectpicker.current.data = mainData;\r\n },\r\n\r\n buildList: function () {\r\n var that = this,\r\n selectData = this.selectpicker.main.data,\r\n mainElements = [],\r\n widestOptionLength = 0;\r\n\r\n if ((that.options.showTick || that.multiple) && !elementTemplates.checkMark.parentNode) {\r\n elementTemplates.checkMark.className = this.options.iconBase + ' ' + that.options.tickIcon + ' check-mark';\r\n elementTemplates.a.appendChild(elementTemplates.checkMark);\r\n }\r\n\r\n function buildElement (item) {\r\n var liElement,\r\n combinedLength = 0;\r\n\r\n switch (item.type) {\r\n case 'divider':\r\n liElement = generateOption.li(\r\n false,\r\n classNames.DIVIDER,\r\n (item.optID ? item.optID + 'div' : undefined)\r\n );\r\n\r\n break;\r\n\r\n case 'option':\r\n liElement = generateOption.li(\r\n generateOption.a(\r\n generateOption.text.call(that, item),\r\n item.optionClass,\r\n item.inlineStyle\r\n ),\r\n '',\r\n item.optID\r\n );\r\n\r\n if (liElement.firstChild) {\r\n liElement.firstChild.id = that.selectId + '-' + item.index;\r\n }\r\n\r\n break;\r\n\r\n case 'optgroup-label':\r\n liElement = generateOption.li(\r\n generateOption.label.call(that, item),\r\n 'dropdown-header' + item.optgroupClass,\r\n item.optID\r\n );\r\n\r\n break;\r\n }\r\n\r\n mainElements.push(liElement);\r\n\r\n // count the number of characters in the option - not perfect, but should work in most cases\r\n if (item.display) combinedLength += item.display.length;\r\n if (item.subtext) combinedLength += item.subtext.length;\r\n // if there is an icon, ensure this option's width is checked\r\n if (item.icon) combinedLength += 1;\r\n\r\n if (combinedLength > widestOptionLength) {\r\n widestOptionLength = combinedLength;\r\n\r\n // guess which option is the widest\r\n // use this when calculating menu width\r\n // not perfect, but it's fast, and the width will be updating accordingly when scrolling\r\n that.selectpicker.view.widestOption = mainElements[mainElements.length - 1];\r\n }\r\n }\r\n\r\n for (var len = selectData.length, i = 0; i < len; i++) {\r\n var item = selectData[i];\r\n\r\n buildElement(item);\r\n }\r\n\r\n this.selectpicker.main.elements = this.selectpicker.current.elements = mainElements;\r\n },\r\n\r\n findLis: function () {\r\n return this.$menuInner.find('.inner > li');\r\n },\r\n\r\n render: function () {\r\n var that = this,\r\n element = this.$element[0],\r\n // ensure titleOption is appended and selected (if necessary) before getting selectedOptions\r\n placeholderSelected = this.setPlaceholder() && element.selectedIndex === 0,\r\n selectedOptions = getSelectedOptions(element, this.options.hideDisabled),\r\n selectedCount = selectedOptions.length,\r\n button = this.$button[0],\r\n buttonInner = button.querySelector('.filter-option-inner-inner'),\r\n multipleSeparator = document.createTextNode(this.options.multipleSeparator),\r\n titleFragment = elementTemplates.fragment.cloneNode(false),\r\n showCount,\r\n countMax,\r\n hasContent = false;\r\n\r\n button.classList.toggle('bs-placeholder', that.multiple ? !selectedCount : !getSelectValues(element, selectedOptions));\r\n\r\n this.tabIndex();\r\n\r\n if (this.options.selectedTextFormat === 'static') {\r\n titleFragment = generateOption.text.call(this, { text: this.options.title }, true);\r\n } else {\r\n showCount = this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1 && selectedCount > 1;\r\n\r\n // determine if the number of selected options will be shown (showCount === true)\r\n if (showCount) {\r\n countMax = this.options.selectedTextFormat.split('>');\r\n showCount = (countMax.length > 1 && selectedCount > countMax[1]) || (countMax.length === 1 && selectedCount >= 2);\r\n }\r\n\r\n // only loop through all selected options if the count won't be shown\r\n if (showCount === false) {\r\n if (!placeholderSelected) {\r\n for (var selectedIndex = 0; selectedIndex < selectedCount; selectedIndex++) {\r\n if (selectedIndex < 50) {\r\n var option = selectedOptions[selectedIndex],\r\n thisData = this.selectpicker.main.data[option.liIndex],\r\n titleOptions = {};\r\n\r\n if (this.multiple && selectedIndex > 0) {\r\n titleFragment.appendChild(multipleSeparator.cloneNode(false));\r\n }\r\n\r\n if (option.title) {\r\n titleOptions.text = option.title;\r\n } else if (thisData) {\r\n if (thisData.content && that.options.showContent) {\r\n titleOptions.content = thisData.content.toString();\r\n hasContent = true;\r\n } else {\r\n if (that.options.showIcon) {\r\n titleOptions.icon = thisData.icon;\r\n }\r\n if (that.options.showSubtext && !that.multiple && thisData.subtext) titleOptions.subtext = ' ' + thisData.subtext;\r\n titleOptions.text = option.textContent.trim();\r\n }\r\n }\r\n\r\n titleFragment.appendChild(generateOption.text.call(this, titleOptions, true));\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // add ellipsis\r\n if (selectedCount > 49) {\r\n titleFragment.appendChild(document.createTextNode('...'));\r\n }\r\n }\r\n } else {\r\n var optionSelector = ':not([hidden]):not([data-hidden=\"true\"]):not([data-divider=\"true\"])';\r\n if (this.options.hideDisabled) optionSelector += ':not(:disabled)';\r\n\r\n // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected, etc.\r\n var totalCount = this.$element[0].querySelectorAll('select > option' + optionSelector + ', optgroup' + optionSelector + ' option' + optionSelector).length,\r\n tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedCount, totalCount) : this.options.countSelectedText;\r\n\r\n titleFragment = generateOption.text.call(this, {\r\n text: tr8nText.replace('{0}', selectedCount.toString()).replace('{1}', totalCount.toString())\r\n }, true);\r\n }\r\n }\r\n\r\n if (this.options.title == undefined) {\r\n // use .attr to ensure undefined is returned if title attribute is not set\r\n this.options.title = this.$element.attr('title');\r\n }\r\n\r\n // If the select doesn't have a title, then use the default, or if nothing is set at all, use noneSelectedText\r\n if (!titleFragment.childNodes.length) {\r\n titleFragment = generateOption.text.call(this, {\r\n text: typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText\r\n }, true);\r\n }\r\n\r\n // strip all HTML tags and trim the result, then unescape any escaped tags\r\n button.title = titleFragment.textContent.replace(/<[^>]*>?/g, '').trim();\r\n\r\n if (this.options.sanitize && hasContent) {\r\n sanitizeHtml([titleFragment], that.options.whiteList, that.options.sanitizeFn);\r\n }\r\n\r\n buttonInner.innerHTML = '';\r\n buttonInner.appendChild(titleFragment);\r\n\r\n if (version.major < 4 && this.$newElement[0].classList.contains('bs3-has-addon')) {\r\n var filterExpand = button.querySelector('.filter-expand'),\r\n clone = buttonInner.cloneNode(true);\r\n\r\n clone.className = 'filter-expand';\r\n\r\n if (filterExpand) {\r\n button.replaceChild(clone, filterExpand);\r\n } else {\r\n button.appendChild(clone);\r\n }\r\n }\r\n\r\n this.$element.trigger('rendered' + EVENT_KEY);\r\n },\r\n\r\n /**\r\n * @param [style]\r\n * @param [status]\r\n */\r\n setStyle: function (newStyle, status) {\r\n var button = this.$button[0],\r\n newElement = this.$newElement[0],\r\n style = this.options.style.trim(),\r\n buttonClass;\r\n\r\n if (this.$element.attr('class')) {\r\n this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi, ''));\r\n }\r\n\r\n if (version.major < 4) {\r\n newElement.classList.add('bs3');\r\n\r\n if (newElement.parentNode.classList.contains('input-group') &&\r\n (newElement.previousElementSibling || newElement.nextElementSibling) &&\r\n (newElement.previousElementSibling || newElement.nextElementSibling).classList.contains('input-group-addon')\r\n ) {\r\n newElement.classList.add('bs3-has-addon');\r\n }\r\n }\r\n\r\n if (newStyle) {\r\n buttonClass = newStyle.trim();\r\n } else {\r\n buttonClass = style;\r\n }\r\n\r\n if (status == 'add') {\r\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\r\n } else if (status == 'remove') {\r\n if (buttonClass) button.classList.remove.apply(button.classList, buttonClass.split(' '));\r\n } else {\r\n if (style) button.classList.remove.apply(button.classList, style.split(' '));\r\n if (buttonClass) button.classList.add.apply(button.classList, buttonClass.split(' '));\r\n }\r\n },\r\n\r\n liHeight: function (refresh) {\r\n if (!refresh && (this.options.size === false || Object.keys(this.sizeInfo).length)) return;\r\n\r\n var newElement = document.createElement('div'),\r\n menu = document.createElement('div'),\r\n menuInner = document.createElement('div'),\r\n menuInnerInner = document.createElement('ul'),\r\n divider = document.createElement('li'),\r\n dropdownHeader = document.createElement('li'),\r\n li = document.createElement('li'),\r\n a = document.createElement('a'),\r\n text = document.createElement('span'),\r\n header = this.options.header && this.$menu.find('.' + classNames.POPOVERHEADER).length > 0 ? this.$menu.find('.' + classNames.POPOVERHEADER)[0].cloneNode(true) : null,\r\n search = this.options.liveSearch ? document.createElement('div') : null,\r\n actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\r\n doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null,\r\n firstOption = this.$element.find('option')[0];\r\n\r\n this.sizeInfo.selectWidth = this.$newElement[0].offsetWidth;\r\n\r\n text.className = 'text';\r\n a.className = 'dropdown-item ' + (firstOption ? firstOption.className : '');\r\n newElement.className = this.$menu[0].parentNode.className + ' ' + classNames.SHOW;\r\n newElement.style.width = 0; // ensure button width doesn't affect natural width of menu when calculating\r\n if (this.options.width === 'auto') menu.style.minWidth = 0;\r\n menu.className = classNames.MENU + ' ' + classNames.SHOW;\r\n menuInner.className = 'inner ' + classNames.SHOW;\r\n menuInnerInner.className = classNames.MENU + ' inner ' + (version.major === '4' ? classNames.SHOW : '');\r\n divider.className = classNames.DIVIDER;\r\n dropdownHeader.className = 'dropdown-header';\r\n\r\n text.appendChild(document.createTextNode('\\u200b'));\r\n a.appendChild(text);\r\n li.appendChild(a);\r\n dropdownHeader.appendChild(text.cloneNode(true));\r\n\r\n if (this.selectpicker.view.widestOption) {\r\n menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true));\r\n }\r\n\r\n menuInnerInner.appendChild(li);\r\n menuInnerInner.appendChild(divider);\r\n menuInnerInner.appendChild(dropdownHeader);\r\n if (header) menu.appendChild(header);\r\n if (search) {\r\n var input = document.createElement('input');\r\n search.className = 'bs-searchbox';\r\n input.className = 'form-control';\r\n search.appendChild(input);\r\n menu.appendChild(search);\r\n }\r\n if (actions) menu.appendChild(actions);\r\n menuInner.appendChild(menuInnerInner);\r\n menu.appendChild(menuInner);\r\n if (doneButton) menu.appendChild(doneButton);\r\n newElement.appendChild(menu);\r\n\r\n document.body.appendChild(newElement);\r\n\r\n var liHeight = li.offsetHeight,\r\n dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0,\r\n headerHeight = header ? header.offsetHeight : 0,\r\n searchHeight = search ? search.offsetHeight : 0,\r\n actionsHeight = actions ? actions.offsetHeight : 0,\r\n doneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\r\n dividerHeight = $(divider).outerHeight(true),\r\n // fall back to jQuery if getComputedStyle is not supported\r\n menuStyle = window.getComputedStyle ? window.getComputedStyle(menu) : false,\r\n menuWidth = menu.offsetWidth,\r\n $menu = menuStyle ? null : $(menu),\r\n menuPadding = {\r\n vert: toInteger(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) +\r\n toInteger(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) +\r\n toInteger(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) +\r\n toInteger(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')),\r\n horiz: toInteger(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) +\r\n toInteger(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) +\r\n toInteger(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) +\r\n toInteger(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth'))\r\n },\r\n menuExtras = {\r\n vert: menuPadding.vert +\r\n toInteger(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +\r\n toInteger(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2,\r\n horiz: menuPadding.horiz +\r\n toInteger(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) +\r\n toInteger(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2\r\n },\r\n scrollBarWidth;\r\n\r\n menuInner.style.overflowY = 'scroll';\r\n\r\n scrollBarWidth = menu.offsetWidth - menuWidth;\r\n\r\n document.body.removeChild(newElement);\r\n\r\n this.sizeInfo.liHeight = liHeight;\r\n this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight;\r\n this.sizeInfo.headerHeight = headerHeight;\r\n this.sizeInfo.searchHeight = searchHeight;\r\n this.sizeInfo.actionsHeight = actionsHeight;\r\n this.sizeInfo.doneButtonHeight = doneButtonHeight;\r\n this.sizeInfo.dividerHeight = dividerHeight;\r\n this.sizeInfo.menuPadding = menuPadding;\r\n this.sizeInfo.menuExtras = menuExtras;\r\n this.sizeInfo.menuWidth = menuWidth;\r\n this.sizeInfo.menuInnerInnerWidth = menuWidth - menuPadding.horiz;\r\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth;\r\n this.sizeInfo.scrollBarWidth = scrollBarWidth;\r\n this.sizeInfo.selectHeight = this.$newElement[0].offsetHeight;\r\n\r\n this.setPositionData();\r\n },\r\n\r\n getSelectPosition: function () {\r\n var that = this,\r\n $window = $(window),\r\n pos = that.$newElement.offset(),\r\n $container = $(that.options.container),\r\n containerPos;\r\n\r\n if (that.options.container && $container.length && !$container.is('body')) {\r\n containerPos = $container.offset();\r\n containerPos.top += parseInt($container.css('borderTopWidth'));\r\n containerPos.left += parseInt($container.css('borderLeftWidth'));\r\n } else {\r\n containerPos = { top: 0, left: 0 };\r\n }\r\n\r\n var winPad = that.options.windowPadding;\r\n\r\n this.sizeInfo.selectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\r\n this.sizeInfo.selectOffsetBot = $window.height() - this.sizeInfo.selectOffsetTop - this.sizeInfo.selectHeight - containerPos.top - winPad[2];\r\n this.sizeInfo.selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft();\r\n this.sizeInfo.selectOffsetRight = $window.width() - this.sizeInfo.selectOffsetLeft - this.sizeInfo.selectWidth - containerPos.left - winPad[1];\r\n this.sizeInfo.selectOffsetTop -= winPad[0];\r\n this.sizeInfo.selectOffsetLeft -= winPad[3];\r\n },\r\n\r\n setMenuSize: function (isAuto) {\r\n this.getSelectPosition();\r\n\r\n var selectWidth = this.sizeInfo.selectWidth,\r\n liHeight = this.sizeInfo.liHeight,\r\n headerHeight = this.sizeInfo.headerHeight,\r\n searchHeight = this.sizeInfo.searchHeight,\r\n actionsHeight = this.sizeInfo.actionsHeight,\r\n doneButtonHeight = this.sizeInfo.doneButtonHeight,\r\n divHeight = this.sizeInfo.dividerHeight,\r\n menuPadding = this.sizeInfo.menuPadding,\r\n menuInnerHeight,\r\n menuHeight,\r\n divLength = 0,\r\n minHeight,\r\n _minHeight,\r\n maxHeight,\r\n menuInnerMinHeight,\r\n estimate,\r\n isDropup;\r\n\r\n if (this.options.dropupAuto) {\r\n // Get the estimated height of the menu without scrollbars.\r\n // This is useful for smaller menus, where there might be plenty of room\r\n // below the button without setting dropup, but we can't know\r\n // the exact height of the menu until createView is called later\r\n estimate = liHeight * this.selectpicker.current.elements.length + menuPadding.vert;\r\n\r\n isDropup = this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot;\r\n\r\n // ensure dropup doesn't change while searching (so menu doesn't bounce back and forth)\r\n if (this.selectpicker.isSearching === true) {\r\n isDropup = this.selectpicker.dropup;\r\n }\r\n\r\n this.$newElement.toggleClass(classNames.DROPUP, isDropup);\r\n this.selectpicker.dropup = isDropup;\r\n }\r\n\r\n if (this.options.size === 'auto') {\r\n _minHeight = this.selectpicker.current.elements.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0;\r\n menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert;\r\n minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\r\n menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0);\r\n\r\n if (this.$newElement.hasClass(classNames.DROPUP)) {\r\n menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert;\r\n }\r\n\r\n maxHeight = menuHeight;\r\n menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert;\r\n } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) {\r\n for (var i = 0; i < this.options.size; i++) {\r\n if (this.selectpicker.current.data[i].type === 'divider') divLength++;\r\n }\r\n\r\n menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert;\r\n menuInnerHeight = menuHeight - menuPadding.vert;\r\n maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight;\r\n minHeight = menuInnerMinHeight = '';\r\n }\r\n\r\n this.$menu.css({\r\n 'max-height': maxHeight + 'px',\r\n 'overflow': 'hidden',\r\n 'min-height': minHeight + 'px'\r\n });\r\n\r\n this.$menuInner.css({\r\n 'max-height': menuInnerHeight + 'px',\r\n 'overflow-y': 'auto',\r\n 'min-height': menuInnerMinHeight + 'px'\r\n });\r\n\r\n // ensure menuInnerHeight is always a positive number to prevent issues calculating chunkSize in createView\r\n this.sizeInfo.menuInnerHeight = Math.max(menuInnerHeight, 1);\r\n\r\n if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) {\r\n this.sizeInfo.hasScrollBar = true;\r\n this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth;\r\n }\r\n\r\n if (this.options.dropdownAlignRight === 'auto') {\r\n this.$menu.toggleClass(classNames.MENURIGHT, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.sizeInfo.totalMenuWidth - selectWidth));\r\n }\r\n\r\n if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update();\r\n },\r\n\r\n setSize: function (refresh) {\r\n this.liHeight(refresh);\r\n\r\n if (this.options.header) this.$menu.css('padding-top', 0);\r\n\r\n if (this.options.size !== false) {\r\n var that = this,\r\n $window = $(window);\r\n\r\n this.setMenuSize();\r\n\r\n if (this.options.liveSearch) {\r\n this.$searchbox\r\n .off('input.setMenuSize propertychange.setMenuSize')\r\n .on('input.setMenuSize propertychange.setMenuSize', function () {\r\n return that.setMenuSize();\r\n });\r\n }\r\n\r\n if (this.options.size === 'auto') {\r\n $window\r\n .off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize')\r\n .on('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize', function () {\r\n return that.setMenuSize();\r\n });\r\n } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) {\r\n $window.off('resize' + EVENT_KEY + '.' + this.selectId + '.setMenuSize' + ' scroll' + EVENT_KEY + '.' + this.selectId + '.setMenuSize');\r\n }\r\n }\r\n\r\n this.createView(false, true, refresh);\r\n },\r\n\r\n setWidth: function () {\r\n var that = this;\r\n\r\n if (this.options.width === 'auto') {\r\n requestAnimationFrame(function () {\r\n that.$menu.css('min-width', '0');\r\n\r\n that.$element.on('loaded' + EVENT_KEY, function () {\r\n that.liHeight();\r\n that.setMenuSize();\r\n\r\n // Get correct width if element is hidden\r\n var $selectClone = that.$newElement.clone().appendTo('body'),\r\n btnWidth = $selectClone.css('width', 'auto').children('button').outerWidth();\r\n\r\n $selectClone.remove();\r\n\r\n // Set width to whatever's larger, button title or longest option\r\n that.sizeInfo.selectWidth = Math.max(that.sizeInfo.totalMenuWidth, btnWidth);\r\n that.$newElement.css('width', that.sizeInfo.selectWidth + 'px');\r\n });\r\n });\r\n } else if (this.options.width === 'fit') {\r\n // Remove inline min-width so width can be changed from 'auto'\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', '').addClass('fit-width');\r\n } else if (this.options.width) {\r\n // Remove inline min-width so width can be changed from 'auto'\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', this.options.width);\r\n } else {\r\n // Remove inline min-width/width so width can be changed\r\n this.$menu.css('min-width', '');\r\n this.$newElement.css('width', '');\r\n }\r\n // Remove fit-width class if width is changed programmatically\r\n if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') {\r\n this.$newElement[0].classList.remove('fit-width');\r\n }\r\n },\r\n\r\n selectPosition: function () {\r\n this.$bsContainer = $('');\r\n\r\n var that = this,\r\n $container = $(this.options.container),\r\n pos,\r\n containerPos,\r\n actualHeight,\r\n getPlacement = function ($element) {\r\n var containerPosition = {},\r\n // fall back to dropdown's default display setting if display is not manually set\r\n display = that.options.display || (\r\n // Bootstrap 3 doesn't have $.fn.dropdown.Constructor.Default\r\n $.fn.dropdown.Constructor.Default ? $.fn.dropdown.Constructor.Default.display\r\n : false\r\n );\r\n\r\n that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass(classNames.DROPUP, $element.hasClass(classNames.DROPUP));\r\n pos = $element.offset();\r\n\r\n if (!$container.is('body')) {\r\n containerPos = $container.offset();\r\n containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop();\r\n containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft();\r\n } else {\r\n containerPos = { top: 0, left: 0 };\r\n }\r\n\r\n actualHeight = $element.hasClass(classNames.DROPUP) ? 0 : $element[0].offsetHeight;\r\n\r\n // Bootstrap 4+ uses Popper for menu positioning\r\n if (version.major < 4 || display === 'static') {\r\n containerPosition.top = pos.top - containerPos.top + actualHeight;\r\n containerPosition.left = pos.left - containerPos.left;\r\n }\r\n\r\n containerPosition.width = $element[0].offsetWidth;\r\n\r\n that.$bsContainer.css(containerPosition);\r\n };\r\n\r\n this.$button.on('click.bs.dropdown.data-api', function () {\r\n if (that.isDisabled()) {\r\n return;\r\n }\r\n\r\n getPlacement(that.$newElement);\r\n\r\n that.$bsContainer\r\n .appendTo(that.options.container)\r\n .toggleClass(classNames.SHOW, !that.$button.hasClass(classNames.SHOW))\r\n .append(that.$menu);\r\n });\r\n\r\n $(window)\r\n .off('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId)\r\n .on('resize' + EVENT_KEY + '.' + this.selectId + ' scroll' + EVENT_KEY + '.' + this.selectId, function () {\r\n var isActive = that.$newElement.hasClass(classNames.SHOW);\r\n\r\n if (isActive) getPlacement(that.$newElement);\r\n });\r\n\r\n this.$element.on('hide' + EVENT_KEY, function () {\r\n that.$menu.data('height', that.$menu.height());\r\n that.$bsContainer.detach();\r\n });\r\n },\r\n\r\n setOptionStatus: function (selectedOnly) {\r\n var that = this;\r\n\r\n that.noScroll = false;\r\n\r\n if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) {\r\n for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) {\r\n var liData = that.selectpicker.current.data[i + that.selectpicker.view.position0],\r\n option = liData.option;\r\n\r\n if (option) {\r\n if (selectedOnly !== true) {\r\n that.setDisabled(\r\n liData.index,\r\n liData.disabled\r\n );\r\n }\r\n\r\n that.setSelected(\r\n liData.index,\r\n option.selected\r\n );\r\n }\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * @param {number} index - the index of the option that is being changed\r\n * @param {boolean} selected - true if the option is being selected, false if being deselected\r\n */\r\n setSelected: function (index, selected) {\r\n var li = this.selectpicker.main.elements[index],\r\n liData = this.selectpicker.main.data[index],\r\n activeIndexIsSet = this.activeIndex !== undefined,\r\n thisIsActive = this.activeIndex === index,\r\n prevActive,\r\n a,\r\n // if current option is already active\r\n // OR\r\n // if the current option is being selected, it's NOT multiple, and\r\n // activeIndex is undefined:\r\n // - when the menu is first being opened, OR\r\n // - after a search has been performed, OR\r\n // - when retainActive is false when selecting a new option (i.e. index of the newly selected option is not the same as the current activeIndex)\r\n keepActive = thisIsActive || (selected && !this.multiple && !activeIndexIsSet);\r\n\r\n liData.selected = selected;\r\n\r\n a = li.firstChild;\r\n\r\n if (selected) {\r\n this.selectedIndex = index;\r\n }\r\n\r\n li.classList.toggle('selected', selected);\r\n\r\n if (keepActive) {\r\n this.focusItem(li, liData);\r\n this.selectpicker.view.currentActive = li;\r\n this.activeIndex = index;\r\n } else {\r\n this.defocusItem(li);\r\n }\r\n\r\n if (a) {\r\n a.classList.toggle('selected', selected);\r\n\r\n if (selected) {\r\n a.setAttribute('aria-selected', true);\r\n } else {\r\n if (this.multiple) {\r\n a.setAttribute('aria-selected', false);\r\n } else {\r\n a.removeAttribute('aria-selected');\r\n }\r\n }\r\n }\r\n\r\n if (!keepActive && !activeIndexIsSet && selected && this.prevActiveIndex !== undefined) {\r\n prevActive = this.selectpicker.main.elements[this.prevActiveIndex];\r\n\r\n this.defocusItem(prevActive);\r\n }\r\n },\r\n\r\n /**\r\n * @param {number} index - the index of the option that is being disabled\r\n * @param {boolean} disabled - true if the option is being disabled, false if being enabled\r\n */\r\n setDisabled: function (index, disabled) {\r\n var li = this.selectpicker.main.elements[index],\r\n a;\r\n\r\n this.selectpicker.main.data[index].disabled = disabled;\r\n\r\n a = li.firstChild;\r\n\r\n li.classList.toggle(classNames.DISABLED, disabled);\r\n\r\n if (a) {\r\n if (version.major === '4') a.classList.toggle(classNames.DISABLED, disabled);\r\n\r\n if (disabled) {\r\n a.setAttribute('aria-disabled', disabled);\r\n a.setAttribute('tabindex', -1);\r\n } else {\r\n a.removeAttribute('aria-disabled');\r\n a.setAttribute('tabindex', 0);\r\n }\r\n }\r\n },\r\n\r\n isDisabled: function () {\r\n return this.$element[0].disabled;\r\n },\r\n\r\n checkDisabled: function () {\r\n if (this.isDisabled()) {\r\n this.$newElement[0].classList.add(classNames.DISABLED);\r\n this.$button.addClass(classNames.DISABLED).attr('tabindex', -1).attr('aria-disabled', true);\r\n } else {\r\n if (this.$button[0].classList.contains(classNames.DISABLED)) {\r\n this.$newElement[0].classList.remove(classNames.DISABLED);\r\n this.$button.removeClass(classNames.DISABLED).attr('aria-disabled', false);\r\n }\r\n\r\n if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) {\r\n this.$button.removeAttr('tabindex');\r\n }\r\n }\r\n },\r\n\r\n tabIndex: function () {\r\n if (this.$element.data('tabindex') !== this.$element.attr('tabindex') &&\r\n (this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98')) {\r\n this.$element.data('tabindex', this.$element.attr('tabindex'));\r\n this.$button.attr('tabindex', this.$element.data('tabindex'));\r\n }\r\n\r\n this.$element.attr('tabindex', -98);\r\n },\r\n\r\n clickListener: function () {\r\n var that = this,\r\n $document = $(document);\r\n\r\n $document.data('spaceSelect', false);\r\n\r\n this.$button.on('keyup', function (e) {\r\n if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) {\r\n e.preventDefault();\r\n $document.data('spaceSelect', false);\r\n }\r\n });\r\n\r\n this.$newElement.on('show.bs.dropdown', function () {\r\n if (version.major > 3 && !that.dropdown) {\r\n that.dropdown = that.$button.data('bs.dropdown');\r\n that.dropdown._menu = that.$menu[0];\r\n }\r\n });\r\n\r\n this.$button.on('click.bs.dropdown.data-api', function () {\r\n if (!that.$newElement.hasClass(classNames.SHOW)) {\r\n that.setSize();\r\n }\r\n });\r\n\r\n function setFocus () {\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$menuInner.trigger('focus');\r\n }\r\n }\r\n\r\n function checkPopperExists () {\r\n if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state.isCreated) {\r\n setFocus();\r\n } else {\r\n requestAnimationFrame(checkPopperExists);\r\n }\r\n }\r\n\r\n this.$element.on('shown' + EVENT_KEY, function () {\r\n if (that.$menuInner[0].scrollTop !== that.selectpicker.view.scrollTop) {\r\n that.$menuInner[0].scrollTop = that.selectpicker.view.scrollTop;\r\n }\r\n\r\n if (version.major > 3) {\r\n requestAnimationFrame(checkPopperExists);\r\n } else {\r\n setFocus();\r\n }\r\n });\r\n\r\n // ensure posinset and setsize are correct before selecting an option via a click\r\n this.$menuInner.on('mouseenter', 'li a', function (e) {\r\n var hoverLi = this.parentElement,\r\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\r\n index = Array.prototype.indexOf.call(hoverLi.parentElement.children, hoverLi),\r\n hoverData = that.selectpicker.current.data[index + position0];\r\n\r\n that.focusItem(hoverLi, hoverData, true);\r\n });\r\n\r\n this.$menuInner.on('click', 'li a', function (e, retainActive) {\r\n var $this = $(this),\r\n element = that.$element[0],\r\n position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0,\r\n clickedData = that.selectpicker.current.data[$this.parent().index() + position0],\r\n clickedIndex = clickedData.index,\r\n prevValue = getSelectValues(element),\r\n prevIndex = element.selectedIndex,\r\n prevOption = element.options[prevIndex],\r\n triggerChange = true;\r\n\r\n // Don't close on multi choice menu\r\n if (that.multiple && that.options.maxOptions !== 1) {\r\n e.stopPropagation();\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Don't run if the select is disabled\r\n if (!that.isDisabled() && !$this.parent().hasClass(classNames.DISABLED)) {\r\n var option = clickedData.option,\r\n $option = $(option),\r\n state = option.selected,\r\n $optgroup = $option.parent('optgroup'),\r\n $optgroupOptions = $optgroup.find('option'),\r\n maxOptions = that.options.maxOptions,\r\n maxOptionsGrp = $optgroup.data('maxOptions') || false;\r\n\r\n if (clickedIndex === that.activeIndex) retainActive = true;\r\n\r\n if (!retainActive) {\r\n that.prevActiveIndex = that.activeIndex;\r\n that.activeIndex = undefined;\r\n }\r\n\r\n if (!that.multiple) { // Deselect all others if not multi select box\r\n if (prevOption) prevOption.selected = false;\r\n option.selected = true;\r\n that.setSelected(clickedIndex, true);\r\n } else { // Toggle the one we have chosen if we are multi select.\r\n option.selected = !state;\r\n\r\n that.setSelected(clickedIndex, !state);\r\n $this.trigger('blur');\r\n\r\n if (maxOptions !== false || maxOptionsGrp !== false) {\r\n var maxReached = maxOptions < getSelectedOptions(element).length,\r\n maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length;\r\n\r\n if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) {\r\n if (maxOptions && maxOptions == 1) {\r\n element.selectedIndex = -1;\r\n option.selected = true;\r\n that.setOptionStatus(true);\r\n } else if (maxOptionsGrp && maxOptionsGrp == 1) {\r\n for (var i = 0; i < $optgroupOptions.length; i++) {\r\n var _option = $optgroupOptions[i];\r\n _option.selected = false;\r\n that.setSelected(_option.liIndex, false);\r\n }\r\n\r\n option.selected = true;\r\n that.setSelected(clickedIndex, true);\r\n } else {\r\n var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText,\r\n maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText,\r\n maxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\r\n maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\r\n $notify = $('');\r\n // If {var} is set in array, replace it\r\n /** @deprecated */\r\n if (maxOptionsArr[2]) {\r\n maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]);\r\n maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]);\r\n }\r\n\r\n option.selected = false;\r\n\r\n that.$menu.append($notify);\r\n\r\n if (maxOptions && maxReached) {\r\n $notify.append($('' + maxTxt + ''));\r\n triggerChange = false;\r\n that.$element.trigger('maxReached' + EVENT_KEY);\r\n }\r\n\r\n if (maxOptionsGrp && maxReachedGrp) {\r\n $notify.append($('' + maxTxtGrp + ''));\r\n triggerChange = false;\r\n that.$element.trigger('maxReachedGrp' + EVENT_KEY);\r\n }\r\n\r\n setTimeout(function () {\r\n that.setSelected(clickedIndex, false);\r\n }, 10);\r\n\r\n $notify[0].classList.add('fadeOut');\r\n\r\n setTimeout(function () {\r\n $notify.remove();\r\n }, 1050);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) {\r\n that.$button.trigger('focus');\r\n } else if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n }\r\n\r\n // Trigger select 'change'\r\n if (triggerChange) {\r\n if (that.multiple || prevIndex !== element.selectedIndex) {\r\n // $option.prop('selected') is current option state (selected/unselected). prevValue is the value of the select prior to being changed.\r\n changedArguments = [option.index, $option.prop('selected'), prevValue];\r\n that.$element\r\n .triggerNative('change');\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.$menu.on('click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.close)', function (e) {\r\n if (e.currentTarget == this) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (that.options.liveSearch && !$(e.target).hasClass('close')) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$button.trigger('focus');\r\n }\r\n }\r\n });\r\n\r\n this.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$button.trigger('focus');\r\n }\r\n });\r\n\r\n this.$menu.on('click', '.' + classNames.POPOVERHEADER + ' .close', function () {\r\n that.$button.trigger('click');\r\n });\r\n\r\n this.$searchbox.on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n this.$menu.on('click', '.actions-btn', function (e) {\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n that.$button.trigger('focus');\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if ($(this).hasClass('bs-select-all')) {\r\n that.selectAll();\r\n } else {\r\n that.deselectAll();\r\n }\r\n });\r\n\r\n this.$element\r\n .on('change' + EVENT_KEY, function () {\r\n that.render();\r\n that.$element.trigger('changed' + EVENT_KEY, changedArguments);\r\n changedArguments = null;\r\n })\r\n .on('focus' + EVENT_KEY, function () {\r\n if (!that.options.mobile) that.$button.trigger('focus');\r\n });\r\n },\r\n\r\n liveSearchListener: function () {\r\n var that = this,\r\n noResults = document.createElement('li');\r\n\r\n this.$button.on('click.bs.dropdown.data-api', function () {\r\n if (!!that.$searchbox.val()) {\r\n that.$searchbox.val('');\r\n }\r\n });\r\n\r\n this.$searchbox.on('click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n this.$searchbox.on('input propertychange', function () {\r\n var searchValue = that.$searchbox.val();\r\n\r\n that.selectpicker.search.elements = [];\r\n that.selectpicker.search.data = [];\r\n\r\n if (searchValue) {\r\n var i,\r\n searchMatch = [],\r\n q = searchValue.toUpperCase(),\r\n cache = {},\r\n cacheArr = [],\r\n searchStyle = that._searchStyle(),\r\n normalizeSearch = that.options.liveSearchNormalize;\r\n\r\n if (normalizeSearch) q = normalizeToBase(q);\r\n\r\n for (var i = 0; i < that.selectpicker.main.data.length; i++) {\r\n var li = that.selectpicker.main.data[i];\r\n\r\n if (!cache[i]) {\r\n cache[i] = stringSearch(li, q, searchStyle, normalizeSearch);\r\n }\r\n\r\n if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) {\r\n if (li.headerIndex > 0) {\r\n cache[li.headerIndex - 1] = true;\r\n cacheArr.push(li.headerIndex - 1);\r\n }\r\n\r\n cache[li.headerIndex] = true;\r\n cacheArr.push(li.headerIndex);\r\n\r\n cache[li.lastIndex + 1] = true;\r\n }\r\n\r\n if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i);\r\n }\r\n\r\n for (var i = 0, cacheLen = cacheArr.length; i < cacheLen; i++) {\r\n var index = cacheArr[i],\r\n prevIndex = cacheArr[i - 1],\r\n li = that.selectpicker.main.data[index],\r\n liPrev = that.selectpicker.main.data[prevIndex];\r\n\r\n if (li.type !== 'divider' || (li.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== i)) {\r\n that.selectpicker.search.data.push(li);\r\n searchMatch.push(that.selectpicker.main.elements[index]);\r\n }\r\n }\r\n\r\n that.activeIndex = undefined;\r\n that.noScroll = true;\r\n that.$menuInner.scrollTop(0);\r\n that.selectpicker.search.elements = searchMatch;\r\n that.createView(true);\r\n\r\n if (!searchMatch.length) {\r\n noResults.className = 'no-results';\r\n noResults.innerHTML = that.options.noneResultsText.replace('{0}', '\"' + htmlEscape(searchValue) + '\"');\r\n that.$menuInner[0].firstChild.appendChild(noResults);\r\n }\r\n } else {\r\n that.$menuInner.scrollTop(0);\r\n that.createView(false);\r\n }\r\n });\r\n },\r\n\r\n _searchStyle: function () {\r\n return this.options.liveSearchStyle || 'contains';\r\n },\r\n\r\n val: function (value) {\r\n var element = this.$element[0];\r\n\r\n if (typeof value !== 'undefined') {\r\n var prevValue = getSelectValues(element);\r\n\r\n changedArguments = [null, null, prevValue];\r\n\r\n this.$element\r\n .val(value)\r\n .trigger('changed' + EVENT_KEY, changedArguments);\r\n\r\n if (this.$newElement.hasClass(classNames.SHOW)) {\r\n if (this.multiple) {\r\n this.setOptionStatus(true);\r\n } else {\r\n var liSelectedIndex = (element.options[element.selectedIndex] || {}).liIndex;\r\n\r\n if (typeof liSelectedIndex === 'number') {\r\n this.setSelected(this.selectedIndex, false);\r\n this.setSelected(liSelectedIndex, true);\r\n }\r\n }\r\n }\r\n\r\n this.render();\r\n\r\n changedArguments = null;\r\n\r\n return this.$element;\r\n } else {\r\n return this.$element.val();\r\n }\r\n },\r\n\r\n changeAll: function (status) {\r\n if (!this.multiple) return;\r\n if (typeof status === 'undefined') status = true;\r\n\r\n var element = this.$element[0],\r\n previousSelected = 0,\r\n currentSelected = 0,\r\n prevValue = getSelectValues(element);\r\n\r\n element.classList.add('bs-select-hidden');\r\n\r\n for (var i = 0, data = this.selectpicker.current.data, len = data.length; i < len; i++) {\r\n var liData = data[i],\r\n option = liData.option;\r\n\r\n if (option && !liData.disabled && liData.type !== 'divider') {\r\n if (liData.selected) previousSelected++;\r\n option.selected = status;\r\n if (status === true) currentSelected++;\r\n }\r\n }\r\n\r\n element.classList.remove('bs-select-hidden');\r\n\r\n if (previousSelected === currentSelected) return;\r\n\r\n this.setOptionStatus();\r\n\r\n changedArguments = [null, null, prevValue];\r\n\r\n this.$element\r\n .triggerNative('change');\r\n },\r\n\r\n selectAll: function () {\r\n return this.changeAll(true);\r\n },\r\n\r\n deselectAll: function () {\r\n return this.changeAll(false);\r\n },\r\n\r\n toggle: function (e) {\r\n e = e || window.event;\r\n\r\n if (e) e.stopPropagation();\r\n\r\n this.$button.trigger('click.bs.dropdown.data-api');\r\n },\r\n\r\n keydown: function (e) {\r\n var $this = $(this),\r\n isToggle = $this.hasClass('dropdown-toggle'),\r\n $parent = isToggle ? $this.closest('.dropdown') : $this.closest(Selector.MENU),\r\n that = $parent.data('this'),\r\n $items = that.findLis(),\r\n index,\r\n isActive,\r\n liActive,\r\n activeLi,\r\n offset,\r\n updateScroll = false,\r\n downOnTab = e.which === keyCodes.TAB && !isToggle && !that.options.selectOnTab,\r\n isArrowKey = REGEXP_ARROW.test(e.which) || downOnTab,\r\n scrollTop = that.$menuInner[0].scrollTop,\r\n isVirtual = that.isVirtual(),\r\n position0 = isVirtual === true ? that.selectpicker.view.position0 : 0;\r\n\r\n // do nothing if a function key is pressed\r\n if (e.which >= 112 && e.which <= 123) return;\r\n\r\n isActive = that.$newElement.hasClass(classNames.SHOW);\r\n\r\n if (\r\n !isActive &&\r\n (\r\n isArrowKey ||\r\n (e.which >= 48 && e.which <= 57) ||\r\n (e.which >= 96 && e.which <= 105) ||\r\n (e.which >= 65 && e.which <= 90)\r\n )\r\n ) {\r\n that.$button.trigger('click.bs.dropdown.data-api');\r\n\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n return;\r\n }\r\n }\r\n\r\n if (e.which === keyCodes.ESCAPE && isActive) {\r\n e.preventDefault();\r\n that.$button.trigger('click.bs.dropdown.data-api').trigger('focus');\r\n }\r\n\r\n if (isArrowKey) { // if up or down\r\n if (!$items.length) return;\r\n\r\n liActive = that.selectpicker.main.elements[that.activeIndex];\r\n index = liActive ? Array.prototype.indexOf.call(liActive.parentElement.children, liActive) : -1;\r\n\r\n if (index !== -1) {\r\n that.defocusItem(liActive);\r\n }\r\n\r\n if (e.which === keyCodes.ARROW_UP) { // up\r\n if (index !== -1) index--;\r\n if (index + position0 < 0) index += $items.length;\r\n\r\n if (!that.selectpicker.view.canHighlight[index + position0]) {\r\n index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0;\r\n if (index === -1) index = $items.length - 1;\r\n }\r\n } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down\r\n index++;\r\n if (index + position0 >= that.selectpicker.view.canHighlight.length) index = 0;\r\n\r\n if (!that.selectpicker.view.canHighlight[index + position0]) {\r\n index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true);\r\n }\r\n }\r\n\r\n e.preventDefault();\r\n\r\n var liActiveIndex = position0 + index;\r\n\r\n if (e.which === keyCodes.ARROW_UP) { // up\r\n // scroll to bottom and highlight last option\r\n if (position0 === 0 && index === $items.length - 1) {\r\n that.$menuInner[0].scrollTop = that.$menuInner[0].scrollHeight;\r\n\r\n liActiveIndex = that.selectpicker.current.elements.length - 1;\r\n } else {\r\n activeLi = that.selectpicker.current.data[liActiveIndex];\r\n offset = activeLi.position - activeLi.height;\r\n\r\n updateScroll = offset < scrollTop;\r\n }\r\n } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down\r\n // scroll to top and highlight first option\r\n if (index === 0) {\r\n that.$menuInner[0].scrollTop = 0;\r\n\r\n liActiveIndex = 0;\r\n } else {\r\n activeLi = that.selectpicker.current.data[liActiveIndex];\r\n offset = activeLi.position - that.sizeInfo.menuInnerHeight;\r\n\r\n updateScroll = offset > scrollTop;\r\n }\r\n }\r\n\r\n liActive = that.selectpicker.current.elements[liActiveIndex];\r\n\r\n that.activeIndex = that.selectpicker.current.data[liActiveIndex].index;\r\n\r\n that.focusItem(liActive);\r\n\r\n that.selectpicker.view.currentActive = liActive;\r\n\r\n if (updateScroll) that.$menuInner[0].scrollTop = offset;\r\n\r\n if (that.options.liveSearch) {\r\n that.$searchbox.trigger('focus');\r\n } else {\r\n $this.trigger('focus');\r\n }\r\n } else if (\r\n (!$this.is('input') && !REGEXP_TAB_OR_ESCAPE.test(e.which)) ||\r\n (e.which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory)\r\n ) {\r\n var searchMatch,\r\n matches = [],\r\n keyHistory;\r\n\r\n e.preventDefault();\r\n\r\n that.selectpicker.keydown.keyHistory += keyCodeMap[e.which];\r\n\r\n if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel);\r\n that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start();\r\n\r\n keyHistory = that.selectpicker.keydown.keyHistory;\r\n\r\n // if all letters are the same, set keyHistory to just the first character when searching\r\n if (/^(.)\\1+$/.test(keyHistory)) {\r\n keyHistory = keyHistory.charAt(0);\r\n }\r\n\r\n // find matches\r\n for (var i = 0; i < that.selectpicker.current.data.length; i++) {\r\n var li = that.selectpicker.current.data[i],\r\n hasMatch;\r\n\r\n hasMatch = stringSearch(li, keyHistory, 'startsWith', true);\r\n\r\n if (hasMatch && that.selectpicker.view.canHighlight[i]) {\r\n matches.push(li.index);\r\n }\r\n }\r\n\r\n if (matches.length) {\r\n var matchIndex = 0;\r\n\r\n $items.removeClass('active').find('a').removeClass('active');\r\n\r\n // either only one key has been pressed or they are all the same key\r\n if (keyHistory.length === 1) {\r\n matchIndex = matches.indexOf(that.activeIndex);\r\n\r\n if (matchIndex === -1 || matchIndex === matches.length - 1) {\r\n matchIndex = 0;\r\n } else {\r\n matchIndex++;\r\n }\r\n }\r\n\r\n searchMatch = matches[matchIndex];\r\n\r\n activeLi = that.selectpicker.main.data[searchMatch];\r\n\r\n if (scrollTop - activeLi.position > 0) {\r\n offset = activeLi.position - activeLi.height;\r\n updateScroll = true;\r\n } else {\r\n offset = activeLi.position - that.sizeInfo.menuInnerHeight;\r\n // if the option is already visible at the current scroll position, just keep it the same\r\n updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight;\r\n }\r\n\r\n liActive = that.selectpicker.main.elements[searchMatch];\r\n\r\n that.activeIndex = matches[matchIndex];\r\n\r\n that.focusItem(liActive);\r\n\r\n if (liActive) liActive.firstChild.focus();\r\n\r\n if (updateScroll) that.$menuInner[0].scrollTop = offset;\r\n\r\n $this.trigger('focus');\r\n }\r\n }\r\n\r\n // Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\r\n if (\r\n isActive &&\r\n (\r\n (e.which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) ||\r\n e.which === keyCodes.ENTER ||\r\n (e.which === keyCodes.TAB && that.options.selectOnTab)\r\n )\r\n ) {\r\n if (e.which !== keyCodes.SPACE) e.preventDefault();\r\n\r\n if (!that.options.liveSearch || e.which !== keyCodes.SPACE) {\r\n that.$menuInner.find('.active a').trigger('click', true); // retain active class\r\n $this.trigger('focus');\r\n\r\n if (!that.options.liveSearch) {\r\n // Prevent screen from scrolling if the user hits the spacebar\r\n e.preventDefault();\r\n // Fixes spacebar selection of dropdown items in FF & IE\r\n $(document).data('spaceSelect', true);\r\n }\r\n }\r\n }\r\n },\r\n\r\n mobile: function () {\r\n this.$element[0].classList.add('mobile-device');\r\n },\r\n\r\n refresh: function () {\r\n // update options if data attributes have been changed\r\n var config = $.extend({}, this.options, this.$element.data());\r\n this.options = config;\r\n\r\n this.checkDisabled();\r\n this.setStyle();\r\n this.render();\r\n this.buildData();\r\n this.buildList();\r\n this.setWidth();\r\n\r\n this.setSize(true);\r\n\r\n this.$element.trigger('refreshed' + EVENT_KEY);\r\n },\r\n\r\n hide: function () {\r\n this.$newElement.hide();\r\n },\r\n\r\n show: function () {\r\n this.$newElement.show();\r\n },\r\n\r\n remove: function () {\r\n this.$newElement.remove();\r\n this.$element.remove();\r\n },\r\n\r\n destroy: function () {\r\n this.$newElement.before(this.$element).remove();\r\n\r\n if (this.$bsContainer) {\r\n this.$bsContainer.remove();\r\n } else {\r\n this.$menu.remove();\r\n }\r\n\r\n this.$element\r\n .off(EVENT_KEY)\r\n .removeData('selectpicker')\r\n .removeClass('bs-select-hidden selectpicker');\r\n\r\n $(window).off(EVENT_KEY + '.' + this.selectId);\r\n }\r\n };\r\n\r\n // SELECTPICKER PLUGIN DEFINITION\r\n // ==============================\r\n function Plugin (option) {\r\n // get the args of the outer function..\r\n var args = arguments;\r\n // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\r\n // to get lost/corrupted in android 2.3 and IE9 #715 #775\r\n var _option = option;\r\n\r\n [].shift.apply(args);\r\n\r\n // if the version was not set successfully\r\n if (!version.success) {\r\n // try to retreive it again\r\n try {\r\n version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.');\r\n } catch (err) {\r\n // fall back to use BootstrapVersion if set\r\n if (Selectpicker.BootstrapVersion) {\r\n version.full = Selectpicker.BootstrapVersion.split(' ')[0].split('.');\r\n } else {\r\n version.full = [version.major, '0', '0'];\r\n\r\n console.warn(\r\n 'There was an issue retrieving Bootstrap\\'s version. ' +\r\n 'Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. ' +\r\n 'If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.',\r\n err\r\n );\r\n }\r\n }\r\n\r\n version.major = version.full[0];\r\n version.success = true;\r\n }\r\n\r\n if (version.major === '4') {\r\n // some defaults need to be changed if using Bootstrap 4\r\n // check to see if they have already been manually changed before forcing them to update\r\n var toUpdate = [];\r\n\r\n if (Selectpicker.DEFAULTS.style === classNames.BUTTONCLASS) toUpdate.push({ name: 'style', className: 'BUTTONCLASS' });\r\n if (Selectpicker.DEFAULTS.iconBase === classNames.ICONBASE) toUpdate.push({ name: 'iconBase', className: 'ICONBASE' });\r\n if (Selectpicker.DEFAULTS.tickIcon === classNames.TICKICON) toUpdate.push({ name: 'tickIcon', className: 'TICKICON' });\r\n\r\n classNames.DIVIDER = 'dropdown-divider';\r\n classNames.SHOW = 'show';\r\n classNames.BUTTONCLASS = 'btn-light';\r\n classNames.POPOVERHEADER = 'popover-header';\r\n classNames.ICONBASE = '';\r\n classNames.TICKICON = 'bs-ok-default';\r\n\r\n for (var i = 0; i < toUpdate.length; i++) {\r\n var option = toUpdate[i];\r\n Selectpicker.DEFAULTS[option.name] = classNames[option.className];\r\n }\r\n }\r\n\r\n var value;\r\n var chain = this.each(function () {\r\n var $this = $(this);\r\n if ($this.is('select')) {\r\n var data = $this.data('selectpicker'),\r\n options = typeof _option == 'object' && _option;\r\n\r\n if (!data) {\r\n var dataAttributes = $this.data();\r\n\r\n for (var dataAttr in dataAttributes) {\r\n if (dataAttributes.hasOwnProperty(dataAttr) && $.inArray(dataAttr, DISALLOWED_ATTRIBUTES) !== -1) {\r\n delete dataAttributes[dataAttr];\r\n }\r\n }\r\n\r\n var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, dataAttributes, options);\r\n config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), dataAttributes.template, options.template);\r\n $this.data('selectpicker', (data = new Selectpicker(this, config)));\r\n } else if (options) {\r\n for (var i in options) {\r\n if (options.hasOwnProperty(i)) {\r\n data.options[i] = options[i];\r\n }\r\n }\r\n }\r\n\r\n if (typeof _option == 'string') {\r\n if (data[_option] instanceof Function) {\r\n value = data[_option].apply(data, args);\r\n } else {\r\n value = data.options[_option];\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (typeof value !== 'undefined') {\r\n // noinspection JSUnusedAssignment\r\n return value;\r\n } else {\r\n return chain;\r\n }\r\n }\r\n\r\n var old = $.fn.selectpicker;\r\n $.fn.selectpicker = Plugin;\r\n $.fn.selectpicker.Constructor = Selectpicker;\r\n\r\n // SELECTPICKER NO CONFLICT\r\n // ========================\r\n $.fn.selectpicker.noConflict = function () {\r\n $.fn.selectpicker = old;\r\n return this;\r\n };\r\n\r\n // get Bootstrap's keydown event handler for either Bootstrap 4 or Bootstrap 3\r\n var bootstrapKeydown = $.fn.dropdown.Constructor._dataApiKeydownHandler || $.fn.dropdown.Constructor.prototype.keydown;\r\n\r\n $(document)\r\n .off('keydown.bs.dropdown.data-api')\r\n .on('keydown.bs.dropdown.data-api', ':not(.bootstrap-select) > [data-toggle=\"dropdown\"]', bootstrapKeydown)\r\n .on('keydown.bs.dropdown.data-api', ':not(.bootstrap-select) > .dropdown-menu', bootstrapKeydown)\r\n .on('keydown' + EVENT_KEY, '.bootstrap-select [data-toggle=\"dropdown\"], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input', Selectpicker.prototype.keydown)\r\n .on('focusin.modal', '.bootstrap-select [data-toggle=\"dropdown\"], .bootstrap-select [role=\"listbox\"], .bootstrap-select .bs-searchbox input', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n // SELECTPICKER DATA-API\r\n // =====================\r\n $(window).on('load' + EVENT_KEY + '.data-api', function () {\r\n $('.selectpicker').each(function () {\r\n var $selectpicker = $(this);\r\n Plugin.call($selectpicker, $selectpicker.data());\r\n })\r\n });\r\n})(jQuery);\r\n\r\n\r\n}));\n//# sourceMappingURL=bootstrap-select.js.map","(function ($) {\n \"use strict\";\n\n var defaultOptions = {\n tagClass: function(item) {\n return 'label label-info';\n },\n itemValue: function(item) {\n return item ? item.toString() : item;\n },\n itemText: function(item) {\n return this.itemValue(item);\n },\n itemTitle: function(item) {\n return null;\n },\n freeInput: true,\n addOnBlur: true,\n maxTags: undefined,\n maxChars: undefined,\n confirmKeys: [13, 44],\n delimiter: ',',\n delimiterRegex: null,\n cancelConfirmKeysOnEmpty: false,\n onTagExists: function(item, $tag) {\n $tag.hide().fadeIn();\n },\n trimValue: false,\n allowDuplicates: false\n };\n\n /**\n * Constructor function\n */\n function TagsInput(element, options) {\n this.isInit = true;\n this.itemsArray = [];\n\n this.$element = $(element);\n this.$element.hide();\n\n this.isSelect = (element.tagName === 'SELECT');\n this.multiple = (this.isSelect && element.hasAttribute('multiple'));\n this.objectItems = options && options.itemValue;\n this.placeholderText = element.hasAttribute('placeholder') ? this.$element.attr('placeholder') : '';\n this.inputSize = Math.max(1, this.placeholderText.length);\n\n this.$container = $('');\n this.$input = $('').appendTo(this.$container);\n\n this.$element.before(this.$container);\n\n this.build(options);\n this.isInit = false;\n }\n\n TagsInput.prototype = {\n constructor: TagsInput,\n\n /**\n * Adds the given item as a new tag. Pass true to dontPushVal to prevent\n * updating the elements val()\n */\n add: function(item, dontPushVal, options) {\n var self = this;\n\n if (self.options.maxTags && self.itemsArray.length >= self.options.maxTags)\n return;\n\n // Ignore falsey values, except false\n if (item !== false && !item)\n return;\n\n // Trim value\n if (typeof item === \"string\" && self.options.trimValue) {\n item = $.trim(item);\n }\n\n // Throw an error when trying to add an object while the itemValue option was not set\n if (typeof item === \"object\" && !self.objectItems)\n throw(\"Can't add objects when itemValue option is not set\");\n\n // Ignore strings only containg whitespace\n if (item.toString().match(/^\\s*$/))\n return;\n\n // If SELECT but not multiple, remove current tag\n if (self.isSelect && !self.multiple && self.itemsArray.length > 0)\n self.remove(self.itemsArray[0]);\n\n if (typeof item === \"string\" && this.$element[0].tagName === 'INPUT') {\n var delimiter = (self.options.delimiterRegex) ? self.options.delimiterRegex : self.options.delimiter;\n var items = item.split(delimiter);\n if (items.length > 1) {\n for (var i = 0; i < items.length; i++) {\n this.add(items[i], true);\n }\n\n if (!dontPushVal)\n self.pushVal();\n return;\n }\n }\n\n var itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item),\n itemTitle = self.options.itemTitle(item);\n\n // Ignore items allready added\n var existing = $.grep(self.itemsArray, function(item) { return self.options.itemValue(item) === itemValue; } )[0];\n if (existing && !self.options.allowDuplicates) {\n // Invoke onTagExists\n if (self.options.onTagExists) {\n var $existingTag = $(\".tag\", self.$container).filter(function() { return $(this).data(\"item\") === existing; });\n self.options.onTagExists(item, $existingTag);\n }\n return;\n }\n\n // if length greater than limit\n if (self.items().toString().length + item.length + 1 > self.options.maxInputLength)\n return;\n\n // raise beforeItemAdd arg\n var beforeItemAddEvent = $.Event('beforeItemAdd', { item: item, cancel: false, options: options});\n self.$element.trigger(beforeItemAddEvent);\n if (beforeItemAddEvent.cancel)\n return;\n\n // register item in internal array and map\n self.itemsArray.push(item);\n\n // add a tag element\n\n var $tag = $('' + htmlEncode(itemText) + '');\n $tag.data('item', item);\n self.findInputWrapper().before($tag);\n $tag.after(' ');\n\n // Check to see if the tag exists in its raw or uri-encoded form\n var optionExists = (\n $('option[value=\"' + encodeURIComponent(itemValue) + '\"]', self.$element).length ||\n $('option[value=\"' + htmlEncode(itemValue) + '\"]', self.$element).length\n );\n\n // add if item represents a value not present in one of the 's options\n if (self.isSelect && !optionExists) {\n var $option = $('' + htmlEncode(itemText) + '');\n $option.data('item', item);\n $option.attr('value', itemValue);\n self.$element.append($option);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Add class when reached maxTags\n if (self.options.maxTags === self.itemsArray.length || self.items().toString().length === self.options.maxInputLength)\n self.$container.addClass('bootstrap-tagsinput-max');\n\n // If using typeahead, once the tag has been added, clear the typeahead value so it does not stick around in the input.\n if ($('.typeahead, .twitter-typeahead', self.$container).length) {\n self.$input.typeahead('val', '');\n }\n\n if (this.isInit) {\n self.$element.trigger($.Event('itemAddedOnInit', { item: item, options: options }));\n } else {\n self.$element.trigger($.Event('itemAdded', { item: item, options: options }));\n }\n },\n\n /**\n * Removes the given item. Pass true to dontPushVal to prevent updating the\n * elements val()\n */\n remove: function(item, dontPushVal, options) {\n var self = this;\n\n if (self.objectItems) {\n if (typeof item === \"object\")\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == self.options.itemValue(item); } );\n else\n item = $.grep(self.itemsArray, function(other) { return self.options.itemValue(other) == item; } );\n\n item = item[item.length-1];\n }\n\n if (item) {\n var beforeItemRemoveEvent = $.Event('beforeItemRemove', { item: item, cancel: false, options: options });\n self.$element.trigger(beforeItemRemoveEvent);\n if (beforeItemRemoveEvent.cancel)\n return;\n\n $('.tag', self.$container).filter(function() { return $(this).data('item') === item; }).remove();\n $('option', self.$element).filter(function() { return $(this).data('item') === item; }).remove();\n if($.inArray(item, self.itemsArray) !== -1)\n self.itemsArray.splice($.inArray(item, self.itemsArray), 1);\n }\n\n if (!dontPushVal)\n self.pushVal();\n\n // Remove class when reached maxTags\n if (self.options.maxTags > self.itemsArray.length)\n self.$container.removeClass('bootstrap-tagsinput-max');\n\n self.$element.trigger($.Event('itemRemoved', { item: item, options: options }));\n },\n\n /**\n * Removes all items\n */\n removeAll: function() {\n var self = this;\n\n $('.tag', self.$container).remove();\n $('option', self.$element).remove();\n\n while(self.itemsArray.length > 0)\n self.itemsArray.pop();\n\n self.pushVal();\n },\n\n /**\n * Refreshes the tags so they match the text/value of their corresponding\n * item.\n */\n refresh: function() {\n var self = this;\n $('.tag', self.$container).each(function() {\n var $tag = $(this),\n item = $tag.data('item'),\n itemValue = self.options.itemValue(item),\n itemText = self.options.itemText(item),\n tagClass = self.options.tagClass(item);\n\n // Update tag's class and inner text\n $tag.attr('class', null);\n $tag.addClass('tag ' + htmlEncode(tagClass));\n $tag.contents().filter(function() {\n return this.nodeType == 3;\n })[0].nodeValue = htmlEncode(itemText);\n\n if (self.isSelect) {\n var option = $('option', self.$element).filter(function() { return $(this).data('item') === item; });\n option.attr('value', itemValue);\n }\n });\n },\n\n /**\n * Returns the items added as tags\n */\n items: function() {\n return this.itemsArray;\n },\n\n /**\n * Assembly value by retrieving the value of each item, and set it on the\n * element.\n */\n pushVal: function() {\n var self = this,\n val = $.map(self.items(), function(item) {\n return self.options.itemValue(item).toString();\n });\n\n self.$element.val(val, true).trigger('change');\n },\n\n /**\n * Initializes the tags input behaviour on the element\n */\n build: function(options) {\n var self = this;\n\n self.options = $.extend({}, defaultOptions, options);\n // When itemValue is set, freeInput should always be false\n if (self.objectItems)\n self.options.freeInput = false;\n\n makeOptionItemFunction(self.options, 'itemValue');\n makeOptionItemFunction(self.options, 'itemText');\n makeOptionFunction(self.options, 'tagClass');\n\n // Typeahead Bootstrap version 2.3.2\n if (self.options.typeahead) {\n var typeahead = self.options.typeahead || {};\n\n makeOptionFunction(typeahead, 'source');\n\n self.$input.typeahead($.extend({}, typeahead, {\n source: function (query, process) {\n function processItems(items) {\n var texts = [];\n\n for (var i = 0; i < items.length; i++) {\n var text = self.options.itemText(items[i]);\n map[text] = items[i];\n texts.push(text);\n }\n process(texts);\n }\n\n this.map = {};\n var map = this.map,\n data = typeahead.source(query);\n\n if ($.isFunction(data.success)) {\n // support for Angular callbacks\n data.success(processItems);\n } else if ($.isFunction(data.then)) {\n // support for Angular promises\n data.then(processItems);\n } else {\n // support for functions and jquery promises\n $.when(data)\n .then(processItems);\n }\n },\n updater: function (text) {\n self.add(this.map[text]);\n return this.map[text];\n },\n matcher: function (text) {\n return (text.toLowerCase().indexOf(this.query.trim().toLowerCase()) !== -1);\n },\n sorter: function (texts) {\n return texts.sort();\n },\n highlighter: function (text) {\n var regex = new RegExp( '(' + this.query + ')', 'gi' );\n return text.replace( regex, \"$1\" );\n }\n }));\n }\n\n // typeahead.js\n if (self.options.typeaheadjs) {\n var typeaheadConfig = null;\n var typeaheadDatasets = {};\n\n // Determine if main configurations were passed or simply a dataset\n var typeaheadjs = self.options.typeaheadjs;\n if ($.isArray(typeaheadjs)) {\n typeaheadConfig = typeaheadjs[0];\n typeaheadDatasets = typeaheadjs[1];\n } else {\n typeaheadDatasets = typeaheadjs;\n }\n\n self.$input.typeahead(typeaheadConfig, typeaheadDatasets).on('typeahead:selected', $.proxy(function (obj, datum) {\n if (typeaheadDatasets.valueKey)\n self.add(datum[typeaheadDatasets.valueKey]);\n else\n self.add(datum);\n self.$input.typeahead('val', '');\n }, self));\n }\n\n self.$container.on('click', $.proxy(function(event) {\n if (! self.$element.attr('disabled')) {\n self.$input.removeAttr('disabled');\n }\n self.$input.focus();\n }, self));\n\n if (self.options.addOnBlur && self.options.freeInput) {\n self.$input.on('focusout', $.proxy(function(event) {\n // HACK: only process on focusout when no typeahead opened, to\n // avoid adding the typeahead text as tag\n if ($('.typeahead, .twitter-typeahead', self.$container).length === 0) {\n self.add(self.$input.val());\n self.$input.val('');\n }\n }, self));\n }\n\n\n self.$container.on('keydown', 'input', $.proxy(function(event) {\n var $input = $(event.target),\n $inputWrapper = self.findInputWrapper();\n\n if (self.$element.attr('disabled')) {\n self.$input.attr('disabled', 'disabled');\n return;\n }\n\n switch (event.which) {\n // BACKSPACE\n case 8:\n if (doGetCaretPosition($input[0]) === 0) {\n var prev = $inputWrapper.prev();\n if (prev.length) {\n self.remove(prev.data('item'));\n }\n }\n break;\n\n // DELETE\n case 46:\n if (doGetCaretPosition($input[0]) === 0) {\n var next = $inputWrapper.next();\n if (next.length) {\n self.remove(next.data('item'));\n }\n }\n break;\n\n // LEFT ARROW\n case 37:\n // Try to move the input before the previous tag\n var $prevTag = $inputWrapper.prev();\n if ($input.val().length === 0 && $prevTag[0]) {\n $prevTag.before($inputWrapper);\n $input.focus();\n }\n break;\n // RIGHT ARROW\n case 39:\n // Try to move the input after the next tag\n var $nextTag = $inputWrapper.next();\n if ($input.val().length === 0 && $nextTag[0]) {\n $nextTag.after($inputWrapper);\n $input.focus();\n }\n break;\n default:\n // ignore\n }\n\n // Reset internal input's size\n var textLength = $input.val().length,\n wordSpace = Math.ceil(textLength / 5),\n size = textLength + wordSpace + 1;\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n self.$container.on('keypress', 'input', $.proxy(function(event) {\n var $input = $(event.target);\n\n if (self.$element.attr('disabled')) {\n self.$input.attr('disabled', 'disabled');\n return;\n }\n\n var text = $input.val(),\n maxLengthReached = self.options.maxChars && text.length >= self.options.maxChars;\n if (self.options.freeInput && (keyCombinationInList(event, self.options.confirmKeys) || maxLengthReached)) {\n // Only attempt to add a tag if there is data in the field\n if (text.length !== 0) {\n self.add(maxLengthReached ? text.substr(0, self.options.maxChars) : text);\n $input.val('');\n }\n\n // If the field is empty, let the event triggered fire as usual\n if (self.options.cancelConfirmKeysOnEmpty === false) {\n event.preventDefault();\n }\n }\n\n // Reset internal input's size\n var textLength = $input.val().length,\n wordSpace = Math.ceil(textLength / 5),\n size = textLength + wordSpace + 1;\n $input.attr('size', Math.max(this.inputSize, $input.val().length));\n }, self));\n\n // Remove icon clicked\n self.$container.on('click', '[data-role=remove]', $.proxy(function(event) {\n if (self.$element.attr('disabled')) {\n return;\n }\n self.remove($(event.target).closest('.tag').data('item'));\n }, self));\n\n // Only add existing value as tags when using strings as tags\n if (self.options.itemValue === defaultOptions.itemValue) {\n if (self.$element[0].tagName === 'INPUT') {\n self.add(self.$element.val());\n } else {\n $('option', self.$element).each(function() {\n self.add($(this).attr('value'), true);\n });\n }\n }\n },\n\n /**\n * Removes all tagsinput behaviour and unregsiter all event handlers\n */\n destroy: function() {\n var self = this;\n\n // Unbind events\n self.$container.off('keypress', 'input');\n self.$container.off('click', '[role=remove]');\n\n self.$container.remove();\n self.$element.removeData('tagsinput');\n self.$element.show();\n },\n\n /**\n * Sets focus on the tagsinput\n */\n focus: function() {\n this.$input.focus();\n },\n\n /**\n * Returns the internal input element\n */\n input: function() {\n return this.$input;\n },\n\n /**\n * Returns the element which is wrapped around the internal input. This\n * is normally the $container, but typeahead.js moves the $input element.\n */\n findInputWrapper: function() {\n var elt = this.$input[0],\n container = this.$container[0];\n while(elt && elt.parentNode !== container)\n elt = elt.parentNode;\n\n return $(elt);\n }\n };\n\n /**\n * Register JQuery plugin\n */\n $.fn.tagsinput = function(arg1, arg2, arg3) {\n var results = [];\n\n this.each(function() {\n var tagsinput = $(this).data('tagsinput');\n // Initialize a new tags input\n if (!tagsinput) {\n tagsinput = new TagsInput(this, arg1);\n $(this).data('tagsinput', tagsinput);\n results.push(tagsinput);\n\n if (this.tagName === 'SELECT') {\n $('option', $(this)).attr('selected', 'selected');\n }\n\n // Init tags from $(this).val()\n $(this).val($(this).val());\n } else if (!arg1 && !arg2) {\n // tagsinput already exists\n // no function, trying to init\n results.push(tagsinput);\n } else if(tagsinput[arg1] !== undefined) {\n // Invoke function on existing tags input\n if(tagsinput[arg1].length === 3 && arg3 !== undefined){\n var retVal = tagsinput[arg1](arg2, null, arg3);\n }else{\n var retVal = tagsinput[arg1](arg2);\n }\n if (retVal !== undefined)\n results.push(retVal);\n }\n });\n\n if ( typeof arg1 == 'string') {\n // Return the results from the invoked function calls\n return results.length > 1 ? results : results[0];\n } else {\n return results;\n }\n };\n\n $.fn.tagsinput.Constructor = TagsInput;\n\n /**\n * Most options support both a string or number as well as a function as\n * option value. This function makes sure that the option with the given\n * key in the given options is wrapped in a function\n */\n function makeOptionItemFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var propertyName = options[key];\n options[key] = function(item) { return item[propertyName]; };\n }\n }\n function makeOptionFunction(options, key) {\n if (typeof options[key] !== 'function') {\n var value = options[key];\n options[key] = function() { return value; };\n }\n }\n /**\n * HtmlEncodes the given value\n */\n var htmlEncodeContainer = $('');\n function htmlEncode(value) {\n if (value) {\n return htmlEncodeContainer.text(value).html();\n } else {\n return '';\n }\n }\n\n /**\n * Returns the position of the caret in the given input field\n * http://flightschool.acylt.com/devnotes/caret-position-woes/\n */\n function doGetCaretPosition(oField) {\n var iCaretPos = 0;\n if (document.selection) {\n oField.focus ();\n var oSel = document.selection.createRange();\n oSel.moveStart ('character', -oField.value.length);\n iCaretPos = oSel.text.length;\n } else if (oField.selectionStart || oField.selectionStart == '0') {\n iCaretPos = oField.selectionStart;\n }\n return (iCaretPos);\n }\n\n /**\n * Returns boolean indicates whether user has pressed an expected key combination.\n * @param object keyPressEvent: JavaScript event object, refer\n * http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n * @param object lookupList: expected key combinations, as in:\n * [13, {which: 188, shiftKey: true}]\n */\n function keyCombinationInList(keyPressEvent, lookupList) {\n var found = false;\n $.each(lookupList, function (index, keyCombination) {\n if (typeof (keyCombination) === 'number' && keyPressEvent.which === keyCombination) {\n found = true;\n return false;\n }\n\n if (keyPressEvent.which === keyCombination.which) {\n var alt = !keyCombination.hasOwnProperty('altKey') || keyPressEvent.altKey === keyCombination.altKey,\n shift = !keyCombination.hasOwnProperty('shiftKey') || keyPressEvent.shiftKey === keyCombination.shiftKey,\n ctrl = !keyCombination.hasOwnProperty('ctrlKey') || keyPressEvent.ctrlKey === keyCombination.ctrlKey;\n if (alt && shift && ctrl) {\n found = true;\n return false;\n }\n }\n });\n\n return found;\n }\n\n /**\n * Initialize tagsinput behaviour on inputs and selects which have\n * data-role=tagsinput\n */\n $(function() {\n $(\"input[data-role=tagsinput], select[multiple][data-role=tagsinput]\").tagsinput();\n });\n})(window.jQuery);\n","/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n\t(factory((global.bootstrap = {}),global.jQuery,global.Popper));\n}(this, (function (exports,$,Popper) { 'use strict';\n\n$ = $ && $.hasOwnProperty('default') ? $['default'] : $;\nPopper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;\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 _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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Util = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n var transition = false;\n var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle: function handle(event) {\n if ($$$1(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined; // eslint-disable-line no-undefined\n }\n };\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false;\n }\n\n return {\n end: 'transitionend'\n };\n }\n\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $$$1(this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest();\n $$$1.fn.emulateTransitionEnd = transitionEndEmulator;\n\n if (Util.supportsTransitionEnd()) {\n $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1');\n return selector;\n }\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || '';\n } // If it's an ID\n\n\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector);\n }\n\n try {\n var $selector = $$$1(document).find(selector);\n return $selector.length > 0 ? selector : null;\n } catch (err) {\n return null;\n }\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $$$1(element).trigger(transition.end);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(transition);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n }\n };\n setTransitionEndSupport();\n return Util;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Alert = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'alert';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var TRANSITION_DURATION = 150;\n var Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n };\n var Event = {\n CLOSE: \"close\" + EVENT_KEY,\n CLOSED: \"closed\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Alert =\n /*#__PURE__*/\n function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n element = element || this._element;\n\n var rootElement = this._getRootElement(element);\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n\n this._removeElement(rootElement);\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._element = null;\n }; // Private\n\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n\n if (selector) {\n parent = $$$1(selector)[0];\n }\n\n if (!parent) {\n parent = $$$1(element).closest(\".\" + ClassName.ALERT)[0];\n }\n\n return parent;\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $$$1.Event(Event.CLOSE);\n $$$1(element).trigger(closeEvent);\n return closeEvent;\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n $$$1(element).removeClass(ClassName.SHOW);\n\n if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n $$$1(element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(TRANSITION_DURATION);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n $$$1(element).detach().trigger(Event.CLOSED).remove();\n }; // Static\n\n\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $$$1(this);\n var data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY, data);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n return Alert;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Alert._jQueryInterface;\n $$$1.fn[NAME].Constructor = Alert;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Alert._jQueryInterface;\n };\n\n return Alert;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Button = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'button';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.button';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n };\n var Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input',\n ACTIVE: '.active',\n BUTTON: '.btn'\n };\n var Event = {\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY,\n FOCUS_BLUR_DATA_API: \"focus\" + EVENT_KEY + DATA_API_KEY + \" \" + (\"blur\" + EVENT_KEY + DATA_API_KEY)\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Button =\n /*#__PURE__*/\n function () {\n function Button(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];\n\n if (rootElement) {\n var input = $$$1(this._element).find(Selector.INPUT)[0];\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];\n\n if (activeElement) {\n $$$1(activeElement).removeClass(ClassName.ACTIVE);\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {\n return;\n }\n\n input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);\n $$$1(input).trigger('change');\n }\n\n input.focus();\n addAriaPressed = false;\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));\n }\n\n if (triggerChangeEvent) {\n $$$1(this._element).toggleClass(ClassName.ACTIVE);\n }\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._element = null;\n }; // Static\n\n\n Button._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n if (!data) {\n data = new Button(this);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n return Button;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n event.preventDefault();\n var button = event.target;\n\n if (!$$$1(button).hasClass(ClassName.BUTTON)) {\n button = $$$1(button).closest(Selector.BUTTON);\n }\n\n Button._jQueryInterface.call($$$1(button), 'toggle');\n }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\n var button = $$$1(event.target).closest(Selector.BUTTON)[0];\n $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Button._jQueryInterface;\n $$$1.fn[NAME].Constructor = Button;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Button._jQueryInterface;\n };\n\n return Button;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Carousel = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'carousel';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.carousel';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var TRANSITION_DURATION = 600;\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean'\n };\n var Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n };\n var Event = {\n SLIDE: \"slide\" + EVENT_KEY,\n SLID: \"slid\" + EVENT_KEY,\n KEYDOWN: \"keydown\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY,\n TOUCHEND: \"touchend\" + EVENT_KEY,\n LOAD_DATA_API: \"load\" + EVENT_KEY + DATA_API_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item'\n };\n var Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Carousel =\n /*#__PURE__*/\n function () {\n function Carousel(element, config) {\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this._config = this._getConfig(config);\n this._element = $$$1(element)[0];\n this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];\n\n this._addEventListeners();\n } // Getters\n\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV);\n }\n };\n\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n };\n\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this = this;\n\n this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n $$$1(this._element).one(Event.SLID, function () {\n return _this.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n $$$1(this._element).off(EVENT_KEY);\n $$$1.removeData(this._element, DATA_KEY);\n this._items = null;\n this._config = null;\n this._element = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n if (this._config.keyboard) {\n $$$1(this._element).on(Event.KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n $$$1(this._element).on(Event.MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(Event.MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $$$1(this._element).on(Event.TOUCHEND, function () {\n _this2.pause();\n\n if (_this2.touchTimeout) {\n clearTimeout(_this2.touchTimeout);\n }\n\n _this2.touchTimeout = setTimeout(function (event) {\n return _this2.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);\n });\n }\n }\n };\n\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault();\n this.prev();\n break;\n\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n\n default:\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === Direction.NEXT;\n var isPrevDirection = direction === Direction.PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === Direction.PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);\n\n var slideEvent = $$$1.Event(Event.SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $$$1(this._element).trigger(slideEvent);\n return slideEvent;\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\n\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n if (nextIndicator) {\n $$$1(nextIndicator).addClass(ClassName.ACTIVE);\n }\n }\n };\n\n _proto._slide = function _slide(direction, element) {\n var _this3 = this;\n\n var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var eventDirectionName;\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT;\n orderClassName = ClassName.NEXT;\n eventDirectionName = Direction.LEFT;\n } else {\n directionalClassName = ClassName.RIGHT;\n orderClassName = ClassName.PREV;\n eventDirectionName = Direction.RIGHT;\n }\n\n if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n var slidEvent = $$$1.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n\n if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {\n $$$1(nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $$$1(activeElement).addClass(directionalClassName);\n $$$1(nextElement).addClass(directionalClassName);\n $$$1(activeElement).one(Util.TRANSITION_END, function () {\n $$$1(nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(ClassName.ACTIVE);\n $$$1(activeElement).removeClass(ClassName.ACTIVE + \" \" + orderClassName + \" \" + directionalClassName);\n _this3._isSliding = false;\n setTimeout(function () {\n return $$$1(_this3._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(TRANSITION_DURATION);\n } else {\n $$$1(activeElement).removeClass(ClassName.ACTIVE);\n $$$1(nextElement).addClass(ClassName.ACTIVE);\n this._isSliding = false;\n $$$1(this._element).trigger(slidEvent);\n }\n\n if (isCycling) {\n this.cycle();\n }\n }; // Static\n\n\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = _extends({}, Default, $$$1(this).data());\n\n if (typeof config === 'object') {\n _config = _extends({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n\n data[action]();\n } else if (_config.interval) {\n data.pause();\n data.cycle();\n }\n });\n };\n\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n\n if (!selector) {\n return;\n }\n\n var target = $$$1(selector)[0];\n\n if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {\n return;\n }\n\n var config = _extends({}, $$$1(target).data(), $$$1(this).data());\n var slideIndex = this.getAttribute('data-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel._jQueryInterface.call($$$1(target), config);\n\n if (slideIndex) {\n $$$1(target).data(DATA_KEY).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n return Carousel;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);\n $$$1(window).on(Event.LOAD_DATA_API, function () {\n $$$1(Selector.DATA_RIDE).each(function () {\n var $carousel = $$$1(this);\n\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Carousel._jQueryInterface;\n $$$1.fn[NAME].Constructor = Carousel;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Carousel._jQueryInterface;\n };\n\n return Carousel;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Collapse = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'collapse';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.collapse';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var TRANSITION_DURATION = 600;\n var Default = {\n toggle: true,\n parent: ''\n };\n var DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var Event = {\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n };\n var Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n };\n var Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Collapse =\n /*#__PURE__*/\n function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = $$$1.makeArray($$$1(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var tabToggles = $$$1(Selector.DATA_TOGGLE);\n\n for (var i = 0; i < tabToggles.length; i++) {\n var elem = tabToggles[i];\n var selector = Util.getSelectorFromElement(elem);\n\n if (selector !== null && $$$1(selector).filter(element).length > 0) {\n this._selector = selector;\n\n this._triggerArray.push(elem);\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null;\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if ($$$1(this._element).hasClass(ClassName.SHOW)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter(\"[data-parent=\\\"\" + this._config.parent + \"\\\"]\"));\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n if (actives) {\n activesData = $$$1(actives).not(this._selector).data(DATA_KEY);\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = $$$1.Event(Event.SHOW);\n $$$1(this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');\n\n if (!activesData) {\n $$$1(actives).data(DATA_KEY, null);\n }\n }\n\n var dimension = this._getDimension();\n\n $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length > 0) {\n $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);\n _this._element.style[dimension] = '';\n\n _this.setTransitioning(false);\n\n $$$1(_this._element).trigger(Event.SHOWN);\n };\n\n if (!Util.supportsTransitionEnd()) {\n complete();\n return;\n }\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this2 = this;\n\n if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {\n return;\n }\n\n var startEvent = $$$1.Event(Event.HIDE);\n $$$1(this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);\n\n if (this._triggerArray.length > 0) {\n for (var i = 0; i < this._triggerArray.length; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n\n if (selector !== null) {\n var $elem = $$$1(selector);\n\n if (!$elem.hasClass(ClassName.SHOW)) {\n $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2.setTransitioning(false);\n\n $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);\n };\n\n this._element.style[dimension] = '';\n\n if (!Util.supportsTransitionEnd()) {\n complete();\n return;\n }\n\n $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this3 = this;\n\n var parent = null;\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0];\n }\n } else {\n parent = $$$1(this._config.parent)[0];\n }\n\n var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n $$$1(parent).find(selector).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n var isOpen = $$$1(element).hasClass(ClassName.SHOW);\n\n if (triggerArray.length > 0) {\n $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n }\n }; // Static\n\n\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? $$$1(selector)[0] : null;\n };\n\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $$$1(this);\n var data = $this.data(DATA_KEY);\n\n var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(this, _config);\n $this.data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n return Collapse;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var $trigger = $$$1(this);\n var selector = Util.getSelectorFromElement(this);\n $$$1(selector).each(function () {\n var $target = $$$1(this);\n var data = $target.data(DATA_KEY);\n var config = data ? 'toggle' : $trigger.data();\n\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Collapse._jQueryInterface;\n $$$1.fn[NAME].Constructor = Collapse;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Collapse._jQueryInterface;\n };\n\n return Collapse;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Dropdown = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'dropdown';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.dropdown';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY,\n KEYDOWN_DATA_API: \"keydown\" + EVENT_KEY + DATA_API_KEY,\n KEYUP_DATA_API: \"keyup\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n MENULEFT: 'dropdown-menu-left',\n POSITION_STATIC: 'position-static'\n };\n var Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'\n };\n var AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n };\n var Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent'\n };\n var DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Dropdown =\n /*#__PURE__*/\n function () {\n function Dropdown(element, config) {\n this._element = element;\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n\n this._addEventListeners();\n } // Getters\n\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $$$1.Event(Event.SHOW, relatedTarget);\n $$$1(parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Disable totally Popper.js for Dropdown in Navbar\n\n\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');\n }\n\n var element = this._element; // For dropup with alignment we use the parent as popper container\n\n if ($$$1(parent).hasClass(ClassName.DROPUP)) {\n if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent;\n }\n } // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n\n\n if (this._config.boundary !== 'scrollParent') {\n $$$1(parent).addClass(ClassName.POSITION_STATIC);\n }\n\n this._popper = new Popper(element, this._menu, this._getPopperConfig());\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $$$1('body').children().on('mouseover', null, $$$1.noop);\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n $$$1(this._menu).toggleClass(ClassName.SHOW);\n $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n $$$1(this._element).off(EVENT_KEY);\n this._element = null;\n this._menu = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n }; // Private\n\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n\n $$$1(this._element).on(Event.CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n\n this._menu = $$$1(parent).find(Selector.MENU)[0];\n }\n\n return this._menu;\n };\n\n _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $$$1(this._element).parent();\n var placement = AttachmentMap.BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP;\n\n if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND;\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT;\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT;\n } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND;\n }\n\n return placement;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return $$$1(this._element).closest('.navbar').length > 0;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var _this2 = this;\n\n var offsetConf = {};\n\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});\n return data;\n };\n } else {\n offsetConf.offset = this._config.offset;\n }\n\n var popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n };\n return popperConfig;\n }; // Static\n\n\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n\n var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));\n\n for (var i = 0; i < toggles.length; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n\n var context = $$$1(toggles[i]).data(DATA_KEY);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n\n if (!context) {\n continue;\n }\n\n var dropdownMenu = context._menu;\n\n if (!$$$1(parent).hasClass(ClassName.SHOW)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {\n continue;\n }\n\n var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);\n $$$1(parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n $$$1('body').children().off('mouseover', null, $$$1.noop);\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n $$$1(dropdownMenu).removeClass(ClassName.SHOW);\n $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));\n }\n };\n\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n\n if (selector) {\n parent = $$$1(selector)[0];\n }\n\n return parent || element.parentNode;\n }; // eslint-disable-next-line complexity\n\n\n Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $$$1(parent).hasClass(ClassName.SHOW);\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];\n $$$1(toggle).trigger('focus');\n }\n\n $$$1(this).trigger('click');\n return;\n }\n\n var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();\n\n if (items.length === 0) {\n return;\n }\n\n var index = items.indexOf(event.target);\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n return Dropdown;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + \" \" + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($$$1(this), 'toggle');\n }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Dropdown._jQueryInterface;\n $$$1.fn[NAME].Constructor = Dropdown;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Dropdown._jQueryInterface;\n };\n\n return Dropdown;\n}($, Popper);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Modal = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'modal';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var TRANSITION_DURATION = 300;\n var BACKDROP_TRANSITION_DURATION = 150;\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n RESIZE: \"resize\" + EVENT_KEY,\n CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY,\n KEYDOWN_DISMISS: \"keydown.dismiss\" + EVENT_KEY,\n MOUSEUP_DISMISS: \"mouseup.dismiss\" + EVENT_KEY,\n MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Modal =\n /*#__PURE__*/\n function () {\n function Modal(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = $$$1(element).find(Selector.DIALOG)[0];\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._originalBodyPadding = 0;\n this._scrollbarWidth = 0;\n } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this = this;\n\n if (this._isTransitioning || this._isShown) {\n return;\n }\n\n if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true;\n }\n\n var showEvent = $$$1.Event(Event.SHOW, {\n relatedTarget: relatedTarget\n });\n $$$1(this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n $$$1(document.body).addClass(ClassName.OPEN);\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {\n return _this.hide(event);\n });\n $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {\n $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {\n if ($$$1(event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this2 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (this._isTransitioning || !this._isShown) {\n return;\n }\n\n var hideEvent = $$$1.Event(Event.HIDE);\n $$$1(this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $$$1(document).off(Event.FOCUSIN);\n $$$1(this._element).removeClass(ClassName.SHOW);\n $$$1(this._element).off(Event.CLICK_DISMISS);\n $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);\n\n if (transition) {\n $$$1(this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(TRANSITION_DURATION);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._scrollbarWidth = null;\n };\n\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this3 = this;\n\n var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.scrollTop = 0;\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $$$1(this._element).addClass(ClassName.SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $$$1.Event(Event.SHOWN, {\n relatedTarget: relatedTarget\n });\n\n var transitionComplete = function transitionComplete() {\n if (_this3._config.focus) {\n _this3._element.focus();\n }\n\n _this3._isTransitioning = false;\n $$$1(_this3._element).trigger(shownEvent);\n };\n\n if (transition) {\n $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this4 = this;\n\n $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, function (event) {\n if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {\n _this4._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this5 = this;\n\n if (this._isShown && this._config.keyboard) {\n $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault();\n\n _this5.hide();\n }\n });\n } else if (!this._isShown) {\n $$$1(this._element).off(Event.KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n $$$1(window).on(Event.RESIZE, function (event) {\n return _this6.handleUpdate(event);\n });\n } else {\n $$$1(window).off(Event.RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this7 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n $$$1(document.body).removeClass(ClassName.OPEN);\n\n _this7._resetAdjustments();\n\n _this7._resetScrollbar();\n\n $$$1(_this7._element).trigger(Event.HIDDEN);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $$$1(this._backdrop).remove();\n this._backdrop = null;\n }\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this8 = this;\n\n var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n var doAnimate = Util.supportsTransitionEnd() && animate;\n this._backdrop = document.createElement('div');\n this._backdrop.className = ClassName.BACKDROP;\n\n if (animate) {\n $$$1(this._backdrop).addClass(animate);\n }\n\n $$$1(this._backdrop).appendTo(document.body);\n $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {\n if (_this8._ignoreBackdropClick) {\n _this8._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this8._config.backdrop === 'static') {\n _this8._element.focus();\n } else {\n _this8.hide();\n }\n });\n\n if (doAnimate) {\n Util.reflow(this._backdrop);\n }\n\n $$$1(this._backdrop).addClass(ClassName.SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!doAnimate) {\n callback();\n return;\n }\n\n $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\n } else if (!this._isShown && this._backdrop) {\n $$$1(this._backdrop).removeClass(ClassName.SHOW);\n\n var callbackRemove = function callbackRemove() {\n _this8._removeBackdrop();\n\n if (callback) {\n callback();\n }\n };\n\n if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {\n $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }; // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this9 = this;\n\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n // Adjust fixed content padding\n $$$1(Selector.FIXED_CONTENT).each(function (index, element) {\n var actualPadding = $$$1(element)[0].style.paddingRight;\n var calculatedPadding = $$$1(element).css('padding-right');\n $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $$$1(Selector.STICKY_CONTENT).each(function (index, element) {\n var actualMargin = $$$1(element)[0].style.marginRight;\n var calculatedMargin = $$$1(element).css('margin-right');\n $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + \"px\");\n }); // Adjust navbar-toggler margin\n\n $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {\n var actualMargin = $$$1(element)[0].style.marginRight;\n var calculatedMargin = $$$1(element).css('margin-right');\n $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $$$1('body').css('padding-right');\n $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n $$$1(Selector.FIXED_CONTENT).each(function (index, element) {\n var padding = $$$1(element).data('padding-right');\n\n if (typeof padding !== 'undefined') {\n $$$1(element).css('padding-right', padding).removeData('padding-right');\n }\n }); // Restore sticky content and navbar-toggler margin\n\n $$$1(Selector.STICKY_CONTENT + \", \" + Selector.NAVBAR_TOGGLER).each(function (index, element) {\n var margin = $$$1(element).data('margin-right');\n\n if (typeof margin !== 'undefined') {\n $$$1(element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $$$1('body').data('padding-right');\n\n if (typeof padding !== 'undefined') {\n $$$1('body').css('padding-right', padding).removeData('padding-right');\n }\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }; // Static\n\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);\n\n if (!data) {\n data = new Modal(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n var _this10 = this;\n\n var target;\n var selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = $$$1(selector)[0];\n }\n\n var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n var $target = $$$1(target).one(Event.SHOW, function (showEvent) {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(Event.HIDDEN, function () {\n if ($$$1(_this10).is(':visible')) {\n _this10.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($$$1(target), config, this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Modal._jQueryInterface;\n $$$1.fn[NAME].Constructor = Modal;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n };\n\n return Modal;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Tooltip = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'tooltip';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.tooltip';\n var EVENT_KEY = \".\" + DATA_KEY;\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var TRANSITION_DURATION = 150;\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default = {\n animation: true,\n template: '' + '' + '',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent'\n };\n var HoverState = {\n SHOW: 'show',\n OUT: 'out'\n };\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n };\n var ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n TOOLTIP: '.tooltip',\n TOOLTIP_INNER: '.tooltip-inner',\n ARROW: '.arrow'\n };\n var Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Tooltip =\n /*#__PURE__*/\n function () {\n function Tooltip(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');\n } // private\n\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $$$1(event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $$$1(event.currentTarget).data(dataKey, context);\n }\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $$$1.removeData(this.element, this.constructor.DATA_KEY);\n $$$1(this.element).off(this.constructor.EVENT_KEY);\n $$$1(this.element).closest('.modal').off('hide.bs.modal');\n\n if (this.tip) {\n $$$1(this.tip).remove();\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n }\n\n this._popper = null;\n this.element = null;\n this.config = null;\n this.tip = null;\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if ($$$1(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n var showEvent = $$$1.Event(this.constructor.Event.SHOW);\n\n if (this.isWithContent() && this._isEnabled) {\n $$$1(this.element).trigger(showEvent);\n var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n\n if (this.config.animation) {\n $$$1(tip).addClass(ClassName.FADE);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this.addAttachmentClass(attachment);\n var container = this.config.container === false ? document.body : $$$1(this.config.container);\n $$$1(tip).data(this.constructor.DATA_KEY, this);\n\n if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $$$1(tip).appendTo(container);\n }\n\n $$$1(this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n _this._handlePopperPlacementChange(data);\n }\n });\n $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n $$$1('body').children().on('mouseover', null, $$$1.noop);\n }\n\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);\n\n if (prevHoverState === HoverState.OUT) {\n _this._leave(null, _this);\n }\n };\n\n if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {\n $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);\n } else {\n complete();\n }\n }\n };\n\n _proto.hide = function hide(callback) {\n var _this2 = this;\n\n var tip = this.getTipElement();\n var hideEvent = $$$1.Event(this.constructor.Event.HIDE);\n\n var complete = function complete() {\n if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this2._cleanTipClass();\n\n _this2.element.removeAttribute('aria-describedby');\n\n $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n\n if (callback) {\n callback();\n }\n };\n\n $$$1(this.element).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $$$1('body').children().off('mouseover', null, $$$1.noop);\n }\n\n this._activeTrigger[Trigger.CLICK] = false;\n this._activeTrigger[Trigger.FOCUS] = false;\n this._activeTrigger[Trigger.HOVER] = false;\n\n if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {\n $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n }; // Protected\n\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $$$1(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $$$1(this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var $tip = $$$1(this.getTipElement());\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());\n $tip.removeClass(ClassName.FADE + \" \" + ClassName.SHOW);\n };\n\n _proto.setElementContent = function setElementContent($element, content) {\n var html = this.config.html;\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$$$1(content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($$$1(content).text());\n }\n } else {\n $element[html ? 'html' : 'text'](content);\n }\n };\n\n _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n\n return title;\n }; // Private\n\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this3 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {\n return _this3.toggle(event);\n });\n } else if (trigger !== Trigger.MANUAL) {\n var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;\n var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;\n $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {\n return _this3._enter(event);\n }).on(eventOut, _this3.config.selector, function (event) {\n return _this3._leave(event);\n });\n }\n\n $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {\n return _this3.hide();\n });\n });\n\n if (this.config.selector) {\n this.config = _extends({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $$$1(event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $$$1(event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\n }\n\n if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HoverState.SHOW;\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HoverState.SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $$$1(event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $$$1(event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HoverState.OUT;\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HoverState.OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n\n return config;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $$$1(this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {\n this._cleanTipClass();\n\n this.addAttachmentClass(this._getAttachment(data.placement));\n };\n\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n\n $$$1(tip).removeClass(ClassName.FADE);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n }; // Static\n\n\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Tooltip(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n return Tooltip;\n }();\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $$$1.fn[NAME] = Tooltip._jQueryInterface;\n $$$1.fn[NAME].Constructor = Tooltip;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Tooltip._jQueryInterface;\n };\n\n return Tooltip;\n}($, Popper);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Popover = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'popover';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.popover';\n var EVENT_KEY = \".\" + DATA_KEY;\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var CLASS_PREFIX = 'bs-popover';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var Default = _extends({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '' + '' + '' + ''\n });\n var DefaultType = _extends({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n var ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n };\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n INSERTED: \"inserted\" + EVENT_KEY,\n CLICK: \"click\" + EVENT_KEY,\n FOCUSIN: \"focusin\" + EVENT_KEY,\n FOCUSOUT: \"focusout\" + EVENT_KEY,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Popover =\n /*#__PURE__*/\n function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $$$1(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $$$1(this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(Selector.CONTENT), content);\n $tip.removeClass(ClassName.FADE + \" \" + ClassName.SHOW);\n }; // Private\n\n\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $$$1(this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n }; // Static\n\n\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data && /destroy|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Popover(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Popover, null, [{\n key: \"VERSION\",\n // Getters\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n return Popover;\n }(Tooltip);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $$$1.fn[NAME] = Popover._jQueryInterface;\n $$$1.fn[NAME].Constructor = Popover;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Popover._jQueryInterface;\n };\n\n return Popover;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar ScrollSpy = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'scrollspy';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.scrollspy';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var Default = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var Event = {\n ACTIVATE: \"activate\" + EVENT_KEY,\n SCROLL: \"scroll\" + EVENT_KEY,\n LOAD_DATA_API: \"load\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active'\n };\n var Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n };\n var OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var ScrollSpy =\n /*#__PURE__*/\n function () {\n function ScrollSpy(element, config) {\n var _this = this;\n\n this._element = element;\n this._scrollElement = element.tagName === 'BODY' ? window : element;\n this._config = this._getConfig(config);\n this._selector = this._config.target + \" \" + Selector.NAV_LINKS + \",\" + (this._config.target + \" \" + Selector.LIST_ITEMS + \",\") + (this._config.target + \" \" + Selector.DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $$$1(this._scrollElement).on(Event.SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n\n this._process();\n } // Getters\n\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = $$$1.makeArray($$$1(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n\n if (targetSelector) {\n target = $$$1(targetSelector)[0];\n }\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n $$$1(this._scrollElement).off(EVENT_KEY);\n this._element = null;\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n }; // Private\n\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n\n if (typeof config.target !== 'string') {\n var id = $$$1(config.target).attr('id');\n\n if (!id) {\n id = Util.getUID(NAME);\n $$$1(config.target).attr('id', id);\n }\n\n config.target = \"#\" + id;\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style\n\n\n queries = queries.map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + (selector + \"[href=\\\"\" + target + \"\\\"]\");\n });\n var $link = $$$1(queries.join(','));\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\n $link.addClass(ClassName.ACTIVE);\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active\n // With both and markup a parent is the previous sibling of any nav ancestor\n\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + \", \" + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item\n\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);\n }\n\n $$$1(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n });\n };\n\n _proto._clear = function _clear() {\n $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\n }; // Static\n\n\n ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $$$1(this).data(DATA_KEY);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new ScrollSpy(this, _config);\n $$$1(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(ScrollSpy, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n return ScrollSpy;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(window).on(Event.LOAD_DATA_API, function () {\n var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));\n\n for (var i = scrollSpys.length; i--;) {\n var $spy = $$$1(scrollSpys[i]);\n\n ScrollSpy._jQueryInterface.call($spy, $spy.data());\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = ScrollSpy._jQueryInterface;\n $$$1.fn[NAME].Constructor = ScrollSpy;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return ScrollSpy._jQueryInterface;\n };\n\n return ScrollSpy;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nvar Tab = function ($$$1) {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n var NAME = 'tab';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.tab';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $$$1.fn[NAME];\n var TRANSITION_DURATION = 150;\n var Event = {\n HIDE: \"hide\" + EVENT_KEY,\n HIDDEN: \"hidden\" + EVENT_KEY,\n SHOW: \"show\" + EVENT_KEY,\n SHOWN: \"shown\" + EVENT_KEY,\n CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n };\n var ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n };\n var Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: '> li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n };\n\n var Tab =\n /*#__PURE__*/\n function () {\n function Tab(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Tab.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var target;\n var previous;\n var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];\n var selector = Util.getSelectorFromElement(this._element);\n\n if (listElement) {\n var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;\n previous = $$$1.makeArray($$$1(listElement).find(itemSelector));\n previous = previous[previous.length - 1];\n }\n\n var hideEvent = $$$1.Event(Event.HIDE, {\n relatedTarget: this._element\n });\n var showEvent = $$$1.Event(Event.SHOW, {\n relatedTarget: previous\n });\n\n if (previous) {\n $$$1(previous).trigger(hideEvent);\n }\n\n $$$1(this._element).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (selector) {\n target = $$$1(selector)[0];\n }\n\n this._activate(this._element, listElement);\n\n var complete = function complete() {\n var hiddenEvent = $$$1.Event(Event.HIDDEN, {\n relatedTarget: _this._element\n });\n var shownEvent = $$$1.Event(Event.SHOWN, {\n relatedTarget: previous\n });\n $$$1(previous).trigger(hiddenEvent);\n $$$1(_this._element).trigger(shownEvent);\n };\n\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n };\n\n _proto.dispose = function dispose() {\n $$$1.removeData(this._element, DATA_KEY);\n this._element = null;\n }; // Private\n\n\n _proto._activate = function _activate(element, container, callback) {\n var _this2 = this;\n\n var activeElements;\n\n if (container.nodeName === 'UL') {\n activeElements = $$$1(container).find(Selector.ACTIVE_UL);\n } else {\n activeElements = $$$1(container).children(Selector.ACTIVE);\n }\n\n var active = activeElements[0];\n var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);\n\n var complete = function complete() {\n return _this2._transitionComplete(element, active, callback);\n };\n\n if (active && isTransitioning) {\n $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\n } else {\n complete();\n }\n };\n\n _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n if (active) {\n $$$1(active).removeClass(ClassName.SHOW + \" \" + ClassName.ACTIVE);\n var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];\n\n if (dropdownChild) {\n $$$1(dropdownChild).removeClass(ClassName.ACTIVE);\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n\n $$$1(element).addClass(ClassName.ACTIVE);\n\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n\n Util.reflow(element);\n $$$1(element).addClass(ClassName.SHOW);\n\n if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];\n\n if (dropdownElement) {\n $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\n }\n\n element.setAttribute('aria-expanded', true);\n }\n\n if (callback) {\n callback();\n }\n }; // Static\n\n\n Tab._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $$$1(this);\n var data = $this.data(DATA_KEY);\n\n if (!data) {\n data = new Tab(this);\n $this.data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tab, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n return Tab;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault();\n\n Tab._jQueryInterface.call($$$1(this), 'show');\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $$$1.fn[NAME] = Tab._jQueryInterface;\n $$$1.fn[NAME].Constructor = Tab;\n\n $$$1.fn[NAME].noConflict = function () {\n $$$1.fn[NAME] = JQUERY_NO_CONFLICT;\n return Tab._jQueryInterface;\n };\n\n return Tab;\n}($);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(function ($$$1) {\n if (typeof $$$1 === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $$$1.fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var maxMajor = 4;\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n }\n})($);\n\nexports.Util = Util;\nexports.Alert = Alert;\nexports.Button = Button;\nexports.Carousel = Carousel;\nexports.Collapse = Collapse;\nexports.Dropdown = Dropdown;\nexports.Modal = Modal;\nexports.Popover = Popover;\nexports.Scrollspy = ScrollSpy;\nexports.Tab = Tab;\nexports.Tooltip = Tooltip;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bootstrap.js.map\n","/**\r\n* @version: 3.1\r\n* @author: Dan Grossman http://www.dangrossman.info/\r\n* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.\r\n* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php\r\n* @website: http://www.daterangepicker.com/\r\n*/\r\n// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Make globaly available as well\r\n define(['moment', 'jquery'], function (moment, jquery) {\r\n if (!jquery.fn) jquery.fn = {}; // webpack server rendering\r\n if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default']\r\n return factory(moment, jquery);\r\n });\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node / Browserify\r\n //isomorphic issue\r\n var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;\r\n if (!jQuery) {\r\n jQuery = require('jquery');\r\n if (!jQuery.fn) jQuery.fn = {};\r\n }\r\n var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');\r\n module.exports = factory(moment, jQuery);\r\n } else {\r\n // Browser globals\r\n root.daterangepicker = factory(root.moment, root.jQuery);\r\n }\r\n}(this, function(moment, $) {\r\n var DateRangePicker = function(element, options, cb) {\r\n\r\n //default settings for options\r\n this.parentEl = 'body';\r\n this.element = $(element);\r\n this.startDate = moment().startOf('day');\r\n this.endDate = moment().endOf('day');\r\n this.minDate = false;\r\n this.maxDate = false;\r\n this.maxSpan = false;\r\n this.autoApply = false;\r\n this.singleDatePicker = false;\r\n this.showDropdowns = false;\r\n this.minYear = moment().subtract(100, 'year').format('YYYY');\r\n this.maxYear = moment().add(100, 'year').format('YYYY');\r\n this.showWeekNumbers = false;\r\n this.showISOWeekNumbers = false;\r\n this.showCustomRangeLabel = true;\r\n this.timePicker = false;\r\n this.timePicker24Hour = false;\r\n this.timePickerIncrement = 1;\r\n this.timePickerSeconds = false;\r\n this.linkedCalendars = true;\r\n this.autoUpdateInput = true;\r\n this.alwaysShowCalendars = false;\r\n this.ranges = {};\r\n\r\n this.opens = 'right';\r\n if (this.element.hasClass('pull-right'))\r\n this.opens = 'left';\r\n\r\n this.drops = 'down';\r\n if (this.element.hasClass('dropup'))\r\n this.drops = 'up';\r\n\r\n this.buttonClasses = 'btn btn-sm';\r\n this.applyButtonClasses = 'btn-primary';\r\n this.cancelButtonClasses = 'btn-default';\r\n\r\n this.locale = {\r\n direction: 'ltr',\r\n format: moment.localeData().longDateFormat('L'),\r\n separator: ' - ',\r\n applyLabel: 'Apply',\r\n cancelLabel: 'Cancel',\r\n weekLabel: 'W',\r\n customRangeLabel: 'Custom Range',\r\n daysOfWeek: moment.weekdaysMin(),\r\n monthNames: moment.monthsShort(),\r\n firstDay: moment.localeData().firstDayOfWeek()\r\n };\r\n\r\n this.callback = function() { };\r\n\r\n //some state information\r\n this.isShowing = false;\r\n this.leftCalendar = {};\r\n this.rightCalendar = {};\r\n\r\n //custom options from user\r\n if (typeof options !== 'object' || options === null)\r\n options = {};\r\n\r\n //allow setting options with data attributes\r\n //data-api options will be overwritten with custom javascript options\r\n options = $.extend(this.element.data(), options);\r\n\r\n //html template for the picker UI\r\n if (typeof options.template !== 'string' && !(options.template instanceof $))\r\n options.template =\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n ' ' +\r\n '' +\r\n '';\r\n\r\n this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);\r\n this.container = $(options.template).appendTo(this.parentEl);\r\n\r\n //\r\n // handle all the possible options overriding defaults\r\n //\r\n\r\n if (typeof options.locale === 'object') {\r\n\r\n if (typeof options.locale.direction === 'string')\r\n this.locale.direction = options.locale.direction;\r\n\r\n if (typeof options.locale.format === 'string')\r\n this.locale.format = options.locale.format;\r\n\r\n if (typeof options.locale.separator === 'string')\r\n this.locale.separator = options.locale.separator;\r\n\r\n if (typeof options.locale.daysOfWeek === 'object')\r\n this.locale.daysOfWeek = options.locale.daysOfWeek.slice();\r\n\r\n if (typeof options.locale.monthNames === 'object')\r\n this.locale.monthNames = options.locale.monthNames.slice();\r\n\r\n if (typeof options.locale.firstDay === 'number')\r\n this.locale.firstDay = options.locale.firstDay;\r\n\r\n if (typeof options.locale.applyLabel === 'string')\r\n this.locale.applyLabel = options.locale.applyLabel;\r\n\r\n if (typeof options.locale.cancelLabel === 'string')\r\n this.locale.cancelLabel = options.locale.cancelLabel;\r\n\r\n if (typeof options.locale.weekLabel === 'string')\r\n this.locale.weekLabel = options.locale.weekLabel;\r\n\r\n if (typeof options.locale.customRangeLabel === 'string'){\r\n //Support unicode chars in the custom range name.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = options.locale.customRangeLabel;\r\n var rangeHtml = elem.value;\r\n this.locale.customRangeLabel = rangeHtml;\r\n }\r\n }\r\n this.container.addClass(this.locale.direction);\r\n\r\n if (typeof options.startDate === 'string')\r\n this.startDate = moment(options.startDate, this.locale.format);\r\n\r\n if (typeof options.endDate === 'string')\r\n this.endDate = moment(options.endDate, this.locale.format);\r\n\r\n if (typeof options.minDate === 'string')\r\n this.minDate = moment(options.minDate, this.locale.format);\r\n\r\n if (typeof options.maxDate === 'string')\r\n this.maxDate = moment(options.maxDate, this.locale.format);\r\n\r\n if (typeof options.startDate === 'object')\r\n this.startDate = moment(options.startDate);\r\n\r\n if (typeof options.endDate === 'object')\r\n this.endDate = moment(options.endDate);\r\n\r\n if (typeof options.minDate === 'object')\r\n this.minDate = moment(options.minDate);\r\n\r\n if (typeof options.maxDate === 'object')\r\n this.maxDate = moment(options.maxDate);\r\n\r\n // sanity check for bad options\r\n if (this.minDate && this.startDate.isBefore(this.minDate))\r\n this.startDate = this.minDate.clone();\r\n\r\n // sanity check for bad options\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\r\n this.endDate = this.maxDate.clone();\r\n\r\n if (typeof options.applyButtonClasses === 'string')\r\n this.applyButtonClasses = options.applyButtonClasses;\r\n\r\n if (typeof options.applyClass === 'string') //backwards compat\r\n this.applyButtonClasses = options.applyClass;\r\n\r\n if (typeof options.cancelButtonClasses === 'string')\r\n this.cancelButtonClasses = options.cancelButtonClasses;\r\n\r\n if (typeof options.cancelClass === 'string') //backwards compat\r\n this.cancelButtonClasses = options.cancelClass;\r\n\r\n if (typeof options.maxSpan === 'object')\r\n this.maxSpan = options.maxSpan;\r\n\r\n if (typeof options.dateLimit === 'object') //backwards compat\r\n this.maxSpan = options.dateLimit;\r\n\r\n if (typeof options.opens === 'string')\r\n this.opens = options.opens;\r\n\r\n if (typeof options.drops === 'string')\r\n this.drops = options.drops;\r\n\r\n if (typeof options.showWeekNumbers === 'boolean')\r\n this.showWeekNumbers = options.showWeekNumbers;\r\n\r\n if (typeof options.showISOWeekNumbers === 'boolean')\r\n this.showISOWeekNumbers = options.showISOWeekNumbers;\r\n\r\n if (typeof options.buttonClasses === 'string')\r\n this.buttonClasses = options.buttonClasses;\r\n\r\n if (typeof options.buttonClasses === 'object')\r\n this.buttonClasses = options.buttonClasses.join(' ');\r\n\r\n if (typeof options.showDropdowns === 'boolean')\r\n this.showDropdowns = options.showDropdowns;\r\n\r\n if (typeof options.minYear === 'number')\r\n this.minYear = options.minYear;\r\n\r\n if (typeof options.maxYear === 'number')\r\n this.maxYear = options.maxYear;\r\n\r\n if (typeof options.showCustomRangeLabel === 'boolean')\r\n this.showCustomRangeLabel = options.showCustomRangeLabel;\r\n\r\n if (typeof options.singleDatePicker === 'boolean') {\r\n this.singleDatePicker = options.singleDatePicker;\r\n if (this.singleDatePicker)\r\n this.endDate = this.startDate.clone();\r\n }\r\n\r\n if (typeof options.timePicker === 'boolean')\r\n this.timePicker = options.timePicker;\r\n\r\n if (typeof options.timePickerSeconds === 'boolean')\r\n this.timePickerSeconds = options.timePickerSeconds;\r\n\r\n if (typeof options.timePickerIncrement === 'number')\r\n this.timePickerIncrement = options.timePickerIncrement;\r\n\r\n if (typeof options.timePicker24Hour === 'boolean')\r\n this.timePicker24Hour = options.timePicker24Hour;\r\n\r\n if (typeof options.autoApply === 'boolean')\r\n this.autoApply = options.autoApply;\r\n\r\n if (typeof options.autoUpdateInput === 'boolean')\r\n this.autoUpdateInput = options.autoUpdateInput;\r\n\r\n if (typeof options.linkedCalendars === 'boolean')\r\n this.linkedCalendars = options.linkedCalendars;\r\n\r\n if (typeof options.isInvalidDate === 'function')\r\n this.isInvalidDate = options.isInvalidDate;\r\n\r\n if (typeof options.isCustomDate === 'function')\r\n this.isCustomDate = options.isCustomDate;\r\n\r\n if (typeof options.alwaysShowCalendars === 'boolean')\r\n this.alwaysShowCalendars = options.alwaysShowCalendars;\r\n\r\n // update day names order to firstDay\r\n if (this.locale.firstDay != 0) {\r\n var iterator = this.locale.firstDay;\r\n while (iterator > 0) {\r\n this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());\r\n iterator--;\r\n }\r\n }\r\n\r\n var start, end, range;\r\n\r\n //if no start/end dates set, check if an input element contains initial values\r\n if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {\r\n if ($(this.element).is(':text')) {\r\n var val = $(this.element).val(),\r\n split = val.split(this.locale.separator);\r\n\r\n start = end = null;\r\n\r\n if (split.length == 2) {\r\n start = moment(split[0], this.locale.format);\r\n end = moment(split[1], this.locale.format);\r\n } else if (this.singleDatePicker && val !== \"\") {\r\n start = moment(val, this.locale.format);\r\n end = moment(val, this.locale.format);\r\n }\r\n if (start !== null && end !== null) {\r\n this.setStartDate(start);\r\n this.setEndDate(end);\r\n }\r\n }\r\n }\r\n\r\n if (typeof options.ranges === 'object') {\r\n for (range in options.ranges) {\r\n\r\n if (typeof options.ranges[range][0] === 'string')\r\n start = moment(options.ranges[range][0], this.locale.format);\r\n else\r\n start = moment(options.ranges[range][0]);\r\n\r\n if (typeof options.ranges[range][1] === 'string')\r\n end = moment(options.ranges[range][1], this.locale.format);\r\n else\r\n end = moment(options.ranges[range][1]);\r\n\r\n // If the start or end date exceed those allowed by the minDate or maxSpan\r\n // options, shorten the range to the allowable period.\r\n if (this.minDate && start.isBefore(this.minDate))\r\n start = this.minDate.clone();\r\n\r\n var maxDate = this.maxDate;\r\n if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate))\r\n maxDate = start.clone().add(this.maxSpan);\r\n if (maxDate && end.isAfter(maxDate))\r\n end = maxDate.clone();\r\n\r\n // If the end of the range is before the minimum or the start of the range is\r\n // after the maximum, don't display this range option at all.\r\n if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day'))\r\n || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))\r\n continue;\r\n\r\n //Support unicode chars in the range names.\r\n var elem = document.createElement('textarea');\r\n elem.innerHTML = range;\r\n var rangeHtml = elem.value;\r\n\r\n this.ranges[rangeHtml] = [start, end];\r\n }\r\n\r\n var list = '';\r\n for (range in this.ranges) {\r\n list += '' + range + '';\r\n }\r\n if (this.showCustomRangeLabel) {\r\n list += '' + this.locale.customRangeLabel + '';\r\n }\r\n list += '';\r\n this.container.find('.ranges').prepend(list);\r\n }\r\n\r\n if (typeof cb === 'function') {\r\n this.callback = cb;\r\n }\r\n\r\n if (!this.timePicker) {\r\n this.startDate = this.startDate.startOf('day');\r\n this.endDate = this.endDate.endOf('day');\r\n this.container.find('.calendar-time').hide();\r\n }\r\n\r\n //can't be used together for now\r\n if (this.timePicker && this.autoApply)\r\n this.autoApply = false;\r\n\r\n if (this.autoApply) {\r\n this.container.addClass('auto-apply');\r\n }\r\n\r\n if (typeof options.ranges === 'object')\r\n this.container.addClass('show-ranges');\r\n\r\n if (this.singleDatePicker) {\r\n this.container.addClass('single');\r\n this.container.find('.drp-calendar.left').addClass('single');\r\n this.container.find('.drp-calendar.left').show();\r\n this.container.find('.drp-calendar.right').hide();\r\n if (!this.timePicker && this.autoApply) {\r\n this.container.addClass('auto-apply');\r\n }\r\n }\r\n\r\n if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {\r\n this.container.addClass('show-calendar');\r\n }\r\n\r\n this.container.addClass('opens' + this.opens);\r\n\r\n //apply CSS classes and labels to buttons\r\n this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);\r\n if (this.applyButtonClasses.length)\r\n this.container.find('.applyBtn').addClass(this.applyButtonClasses);\r\n if (this.cancelButtonClasses.length)\r\n this.container.find('.cancelBtn').addClass(this.cancelButtonClasses);\r\n this.container.find('.applyBtn').html(this.locale.applyLabel);\r\n this.container.find('.cancelBtn').html(this.locale.cancelLabel);\r\n\r\n //\r\n // event listeners\r\n //\r\n\r\n this.container.find('.drp-calendar')\r\n .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))\r\n .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))\r\n .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))\r\n .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))\r\n .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))\r\n .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))\r\n .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this));\r\n\r\n this.container.find('.ranges')\r\n .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this));\r\n\r\n this.container.find('.drp-buttons')\r\n .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))\r\n .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this));\r\n\r\n if (this.element.is('input') || this.element.is('button')) {\r\n this.element.on({\r\n 'click.daterangepicker': $.proxy(this.show, this),\r\n 'focus.daterangepicker': $.proxy(this.show, this),\r\n 'keyup.daterangepicker': $.proxy(this.elementChanged, this),\r\n 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility\r\n });\r\n } else {\r\n this.element.on('click.daterangepicker', $.proxy(this.toggle, this));\r\n this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));\r\n }\r\n\r\n //\r\n // if attached to a text input, set the initial value\r\n //\r\n\r\n this.updateElement();\r\n\r\n };\r\n\r\n DateRangePicker.prototype = {\r\n\r\n constructor: DateRangePicker,\r\n\r\n setStartDate: function(startDate) {\r\n if (typeof startDate === 'string')\r\n this.startDate = moment(startDate, this.locale.format);\r\n\r\n if (typeof startDate === 'object')\r\n this.startDate = moment(startDate);\r\n\r\n if (!this.timePicker)\r\n this.startDate = this.startDate.startOf('day');\r\n\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n\r\n if (this.minDate && this.startDate.isBefore(this.minDate)) {\r\n this.startDate = this.minDate.clone();\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n if (this.maxDate && this.startDate.isAfter(this.maxDate)) {\r\n this.startDate = this.maxDate.clone();\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n }\r\n\r\n if (!this.isShowing)\r\n this.updateElement();\r\n\r\n this.updateMonthsInView();\r\n },\r\n\r\n setEndDate: function(endDate) {\r\n if (typeof endDate === 'string')\r\n this.endDate = moment(endDate, this.locale.format);\r\n\r\n if (typeof endDate === 'object')\r\n this.endDate = moment(endDate);\r\n\r\n if (!this.timePicker)\r\n this.endDate = this.endDate.endOf('day');\r\n\r\n if (this.timePicker && this.timePickerIncrement)\r\n this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);\r\n\r\n if (this.endDate.isBefore(this.startDate))\r\n this.endDate = this.startDate.clone();\r\n\r\n if (this.maxDate && this.endDate.isAfter(this.maxDate))\r\n this.endDate = this.maxDate.clone();\r\n\r\n if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate))\r\n this.endDate = this.startDate.clone().add(this.maxSpan);\r\n\r\n this.previousRightTime = this.endDate.clone();\r\n\r\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\r\n\r\n if (!this.isShowing)\r\n this.updateElement();\r\n\r\n this.updateMonthsInView();\r\n },\r\n\r\n isInvalidDate: function() {\r\n return false;\r\n },\r\n\r\n isCustomDate: function() {\r\n return false;\r\n },\r\n\r\n updateView: function() {\r\n if (this.timePicker) {\r\n this.renderTimePicker('left');\r\n this.renderTimePicker('right');\r\n if (!this.endDate) {\r\n this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled');\r\n } else {\r\n this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled');\r\n }\r\n }\r\n if (this.endDate)\r\n this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));\r\n this.updateMonthsInView();\r\n this.updateCalendars();\r\n this.updateFormInputs();\r\n },\r\n\r\n updateMonthsInView: function() {\r\n if (this.endDate) {\r\n\r\n //if both dates are visible already, do nothing\r\n if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&\r\n (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\r\n &&\r\n (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))\r\n ) {\r\n return;\r\n }\r\n\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {\r\n this.rightCalendar.month = this.endDate.clone().date(2);\r\n } else {\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n\r\n } else {\r\n if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {\r\n this.leftCalendar.month = this.startDate.clone().date(2);\r\n this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');\r\n }\r\n }\r\n if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {\r\n this.rightCalendar.month = this.maxDate.clone().date(2);\r\n this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');\r\n }\r\n },\r\n\r\n updateCalendars: function() {\r\n\r\n if (this.timePicker) {\r\n var hour, minute, second;\r\n if (this.endDate) {\r\n hour = parseInt(this.container.find('.left .hourselect').val(), 10);\r\n minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\r\n }\r\n second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.left .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n } else {\r\n hour = parseInt(this.container.find('.right .hourselect').val(), 10);\r\n minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\r\n }\r\n second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.right .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n }\r\n this.leftCalendar.month.hour(hour).minute(minute).second(second);\r\n this.rightCalendar.month.hour(hour).minute(minute).second(second);\r\n }\r\n\r\n this.renderCalendar('left');\r\n this.renderCalendar('right');\r\n\r\n //highlight any predefined range matching the current start and end dates\r\n this.container.find('.ranges li').removeClass('active');\r\n if (this.endDate == null) return;\r\n\r\n this.calculateChosenLabel();\r\n },\r\n\r\n renderCalendar: function(side) {\r\n\r\n //\r\n // Build the matrix of dates that will populate the calendar\r\n //\r\n\r\n var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;\r\n var month = calendar.month.month();\r\n var year = calendar.month.year();\r\n var hour = calendar.month.hour();\r\n var minute = calendar.month.minute();\r\n var second = calendar.month.second();\r\n var daysInMonth = moment([year, month]).daysInMonth();\r\n var firstDay = moment([year, month, 1]);\r\n var lastDay = moment([year, month, daysInMonth]);\r\n var lastMonth = moment(firstDay).subtract(1, 'month').month();\r\n var lastYear = moment(firstDay).subtract(1, 'month').year();\r\n var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();\r\n var dayOfWeek = firstDay.day();\r\n\r\n //initialize a 6 rows x 7 columns array for the calendar\r\n var calendar = [];\r\n calendar.firstDay = firstDay;\r\n calendar.lastDay = lastDay;\r\n\r\n for (var i = 0; i < 6; i++) {\r\n calendar[i] = [];\r\n }\r\n\r\n //populate the calendar with date objects\r\n var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;\r\n if (startDay > daysInLastMonth)\r\n startDay -= 7;\r\n\r\n if (dayOfWeek == this.locale.firstDay)\r\n startDay = daysInLastMonth - 6;\r\n\r\n var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);\r\n\r\n var col, row;\r\n for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {\r\n if (i > 0 && col % 7 === 0) {\r\n col = 0;\r\n row++;\r\n }\r\n calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);\r\n curDate.hour(12);\r\n\r\n if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {\r\n calendar[row][col] = this.minDate.clone();\r\n }\r\n\r\n if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {\r\n calendar[row][col] = this.maxDate.clone();\r\n }\r\n\r\n }\r\n\r\n //make the calendar object available to hoverDate/clickDate\r\n if (side == 'left') {\r\n this.leftCalendar.calendar = calendar;\r\n } else {\r\n this.rightCalendar.calendar = calendar;\r\n }\r\n\r\n //\r\n // Display the calendar\r\n //\r\n\r\n var minDate = side == 'left' ? this.minDate : this.startDate;\r\n var maxDate = this.maxDate;\r\n var selected = side == 'left' ? this.startDate : this.endDate;\r\n var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};\r\n\r\n var html = '';\r\n html += '';\r\n html += '';\r\n\r\n // add empty cell for week number\r\n if (this.showWeekNumbers || this.showISOWeekNumbers)\r\n html += '';\r\n\r\n if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n\r\n var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(\" YYYY\");\r\n\r\n if (this.showDropdowns) {\r\n var currentMonth = calendar[1][1].month();\r\n var currentYear = calendar[1][1].year();\r\n var maxYear = (maxDate && maxDate.year()) || (this.maxYear);\r\n var minYear = (minDate && minDate.year()) || (this.minYear);\r\n var inMinYear = currentYear == minYear;\r\n var inMaxYear = currentYear == maxYear;\r\n\r\n var monthHtml = '';\r\n for (var m = 0; m < 12; m++) {\r\n if ((!inMinYear || (minDate && m >= minDate.month())) && (!inMaxYear || (maxDate && m <= maxDate.month()))) {\r\n monthHtml += \"\" + this.locale.monthNames[m] + \"\";\r\n } else {\r\n monthHtml += \"\" + this.locale.monthNames[m] + \"\";\r\n }\r\n }\r\n monthHtml += \"\";\r\n\r\n var yearHtml = '';\r\n for (var y = minYear; y <= maxYear; y++) {\r\n yearHtml += '' + y + '';\r\n }\r\n yearHtml += '';\r\n\r\n dateHtml = monthHtml + yearHtml;\r\n }\r\n\r\n html += '' + dateHtml + '';\r\n if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {\r\n html += '';\r\n } else {\r\n html += '';\r\n }\r\n\r\n html += '';\r\n html += '';\r\n\r\n // add week number label\r\n if (this.showWeekNumbers || this.showISOWeekNumbers)\r\n html += '' + this.locale.weekLabel + '';\r\n\r\n $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {\r\n html += '' + dayOfWeek + '';\r\n });\r\n\r\n html += '';\r\n html += '';\r\n html += '';\r\n\r\n //adjust maxDate to reflect the maxSpan setting in order to\r\n //grey out end dates beyond the maxSpan\r\n if (this.endDate == null && this.maxSpan) {\r\n var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day');\r\n if (!maxDate || maxLimit.isBefore(maxDate)) {\r\n maxDate = maxLimit;\r\n }\r\n }\r\n\r\n for (var row = 0; row < 6; row++) {\r\n html += '';\r\n\r\n // add week number\r\n if (this.showWeekNumbers)\r\n html += '' + calendar[row][0].week() + '';\r\n else if (this.showISOWeekNumbers)\r\n html += '' + calendar[row][0].isoWeek() + '';\r\n\r\n for (var col = 0; col < 7; col++) {\r\n\r\n var classes = [];\r\n\r\n //highlight today's date\r\n if (calendar[row][col].isSame(new Date(), \"day\"))\r\n classes.push('today');\r\n\r\n //highlight weekends\r\n if (calendar[row][col].isoWeekday() > 5)\r\n classes.push('weekend');\r\n\r\n //grey out the dates in other months displayed at beginning and end of this calendar\r\n if (calendar[row][col].month() != calendar[1][1].month())\r\n classes.push('off', 'ends');\r\n\r\n //don't allow selection of dates before the minimum date\r\n if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))\r\n classes.push('off', 'disabled');\r\n\r\n //don't allow selection of dates after the maximum date\r\n if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))\r\n classes.push('off', 'disabled');\r\n\r\n //don't allow selection of date if a custom function decides it's invalid\r\n if (this.isInvalidDate(calendar[row][col]))\r\n classes.push('off', 'disabled');\r\n\r\n //highlight the currently selected start date\r\n if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))\r\n classes.push('active', 'start-date');\r\n\r\n //highlight the currently selected end date\r\n if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))\r\n classes.push('active', 'end-date');\r\n\r\n //highlight dates in-between the selected dates\r\n if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)\r\n classes.push('in-range');\r\n\r\n //apply custom classes for this date\r\n var isCustom = this.isCustomDate(calendar[row][col]);\r\n if (isCustom !== false) {\r\n if (typeof isCustom === 'string')\r\n classes.push(isCustom);\r\n else\r\n Array.prototype.push.apply(classes, isCustom);\r\n }\r\n\r\n var cname = '', disabled = false;\r\n for (var i = 0; i < classes.length; i++) {\r\n cname += classes[i] + ' ';\r\n if (classes[i] == 'disabled')\r\n disabled = true;\r\n }\r\n if (!disabled)\r\n cname += 'available';\r\n\r\n html += '' + calendar[row][col].date() + '';\r\n\r\n }\r\n html += '';\r\n }\r\n\r\n html += '';\r\n html += '';\r\n\r\n this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html);\r\n\r\n },\r\n\r\n renderTimePicker: function(side) {\r\n\r\n // Don't bother updating the time picker if it's currently disabled\r\n // because an end date hasn't been clicked yet\r\n if (side == 'right' && !this.endDate) return;\r\n\r\n var html, selected, minDate, maxDate = this.maxDate;\r\n\r\n if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate)))\r\n maxDate = this.startDate.clone().add(this.maxSpan);\r\n\r\n if (side == 'left') {\r\n selected = this.startDate.clone();\r\n minDate = this.minDate;\r\n } else if (side == 'right') {\r\n selected = this.endDate.clone();\r\n minDate = this.startDate;\r\n\r\n //Preserve the time already selected\r\n var timeSelector = this.container.find('.drp-calendar.right .calendar-time');\r\n if (timeSelector.html() != '') {\r\n\r\n selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val());\r\n selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val());\r\n selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val());\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = timeSelector.find('.ampmselect option:selected').val();\r\n if (ampm === 'PM' && selected.hour() < 12)\r\n selected.hour(selected.hour() + 12);\r\n if (ampm === 'AM' && selected.hour() === 12)\r\n selected.hour(0);\r\n }\r\n\r\n }\r\n\r\n if (selected.isBefore(this.startDate))\r\n selected = this.startDate.clone();\r\n\r\n if (maxDate && selected.isAfter(maxDate))\r\n selected = maxDate.clone();\r\n\r\n }\r\n\r\n //\r\n // hours\r\n //\r\n\r\n html = '';\r\n\r\n var start = this.timePicker24Hour ? 0 : 1;\r\n var end = this.timePicker24Hour ? 23 : 12;\r\n\r\n for (var i = start; i <= end; i++) {\r\n var i_in_24 = i;\r\n if (!this.timePicker24Hour)\r\n i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);\r\n\r\n var time = selected.clone().hour(i_in_24);\r\n var disabled = false;\r\n if (minDate && time.minute(59).isBefore(minDate))\r\n disabled = true;\r\n if (maxDate && time.minute(0).isAfter(maxDate))\r\n disabled = true;\r\n\r\n if (i_in_24 == selected.hour() && !disabled) {\r\n html += '' + i + '';\r\n } else if (disabled) {\r\n html += '' + i + '';\r\n } else {\r\n html += '' + i + '';\r\n }\r\n }\r\n\r\n html += ' ';\r\n\r\n //\r\n // minutes\r\n //\r\n\r\n html += ': ';\r\n\r\n for (var i = 0; i < 60; i += this.timePickerIncrement) {\r\n var padded = i < 10 ? '0' + i : i;\r\n var time = selected.clone().minute(i);\r\n\r\n var disabled = false;\r\n if (minDate && time.second(59).isBefore(minDate))\r\n disabled = true;\r\n if (maxDate && time.second(0).isAfter(maxDate))\r\n disabled = true;\r\n\r\n if (selected.minute() == i && !disabled) {\r\n html += '' + padded + '';\r\n } else if (disabled) {\r\n html += '' + padded + '';\r\n } else {\r\n html += '' + padded + '';\r\n }\r\n }\r\n\r\n html += ' ';\r\n\r\n //\r\n // seconds\r\n //\r\n\r\n if (this.timePickerSeconds) {\r\n html += ': ';\r\n\r\n for (var i = 0; i < 60; i++) {\r\n var padded = i < 10 ? '0' + i : i;\r\n var time = selected.clone().second(i);\r\n\r\n var disabled = false;\r\n if (minDate && time.isBefore(minDate))\r\n disabled = true;\r\n if (maxDate && time.isAfter(maxDate))\r\n disabled = true;\r\n\r\n if (selected.second() == i && !disabled) {\r\n html += '' + padded + '';\r\n } else if (disabled) {\r\n html += '' + padded + '';\r\n } else {\r\n html += '' + padded + '';\r\n }\r\n }\r\n\r\n html += ' ';\r\n }\r\n\r\n //\r\n // AM/PM\r\n //\r\n\r\n if (!this.timePicker24Hour) {\r\n html += '';\r\n\r\n var am_html = '';\r\n var pm_html = '';\r\n\r\n if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))\r\n am_html = ' disabled=\"disabled\" class=\"disabled\"';\r\n\r\n if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))\r\n pm_html = ' disabled=\"disabled\" class=\"disabled\"';\r\n\r\n if (selected.hour() >= 12) {\r\n html += 'AMPM';\r\n } else {\r\n html += 'AMPM';\r\n }\r\n\r\n html += '';\r\n }\r\n\r\n this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html);\r\n\r\n },\r\n\r\n updateFormInputs: function() {\r\n\r\n if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {\r\n this.container.find('button.applyBtn').prop('disabled', false);\r\n } else {\r\n this.container.find('button.applyBtn').prop('disabled', true);\r\n }\r\n\r\n },\r\n\r\n move: function() {\r\n var parentOffset = { top: 0, left: 0 },\r\n containerTop,\r\n drops = this.drops;\r\n\r\n var parentRightEdge = $(window).width();\r\n if (!this.parentEl.is('body')) {\r\n parentOffset = {\r\n top: this.parentEl.offset().top - this.parentEl.scrollTop(),\r\n left: this.parentEl.offset().left - this.parentEl.scrollLeft()\r\n };\r\n parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;\r\n }\r\n\r\n switch (drops) {\r\n case 'auto':\r\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\r\n if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) {\r\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\r\n drops = 'up';\r\n }\r\n break;\r\n case 'up':\r\n containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;\r\n break;\r\n default:\r\n containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;\r\n break;\r\n }\r\n\r\n // Force the container to it's actual width\r\n this.container.css({\r\n top: 0,\r\n left: 0,\r\n right: 'auto'\r\n });\r\n var containerWidth = this.container.outerWidth();\r\n\r\n this.container.toggleClass('drop-up', drops == 'up');\r\n\r\n if (this.opens == 'left') {\r\n var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth();\r\n if (containerWidth + containerRight > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n right: 'auto',\r\n left: 9\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n right: containerRight,\r\n left: 'auto'\r\n });\r\n }\r\n } else if (this.opens == 'center') {\r\n var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2\r\n - containerWidth / 2;\r\n if (containerLeft < 0) {\r\n this.container.css({\r\n top: containerTop,\r\n right: 'auto',\r\n left: 9\r\n });\r\n } else if (containerLeft + containerWidth > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n left: 'auto',\r\n right: 0\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n left: containerLeft,\r\n right: 'auto'\r\n });\r\n }\r\n } else {\r\n var containerLeft = this.element.offset().left - parentOffset.left;\r\n if (containerLeft + containerWidth > $(window).width()) {\r\n this.container.css({\r\n top: containerTop,\r\n left: 'auto',\r\n right: 0\r\n });\r\n } else {\r\n this.container.css({\r\n top: containerTop,\r\n left: containerLeft,\r\n right: 'auto'\r\n });\r\n }\r\n }\r\n },\r\n\r\n show: function(e) {\r\n if (this.isShowing) return;\r\n\r\n // Create a click proxy that is private to this instance of datepicker, for unbinding\r\n this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);\r\n\r\n // Bind global datepicker mousedown for hiding and\r\n $(document)\r\n .on('mousedown.daterangepicker', this._outsideClickProxy)\r\n // also support mobile devices\r\n .on('touchend.daterangepicker', this._outsideClickProxy)\r\n // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them\r\n .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)\r\n // and also close when focus changes to outside the picker (eg. tabbing between controls)\r\n .on('focusin.daterangepicker', this._outsideClickProxy);\r\n\r\n // Reposition the picker if the window is resized while it's open\r\n $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));\r\n\r\n this.oldStartDate = this.startDate.clone();\r\n this.oldEndDate = this.endDate.clone();\r\n this.previousRightTime = this.endDate.clone();\r\n\r\n this.updateView();\r\n this.container.show();\r\n this.move();\r\n this.element.trigger('show.daterangepicker', this);\r\n this.isShowing = true;\r\n },\r\n\r\n hide: function(e) {\r\n if (!this.isShowing) return;\r\n\r\n //incomplete date selection, revert to last values\r\n if (!this.endDate) {\r\n this.startDate = this.oldStartDate.clone();\r\n this.endDate = this.oldEndDate.clone();\r\n }\r\n\r\n //if a new date range was selected, invoke the user callback function\r\n if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))\r\n this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel);\r\n\r\n //if picker is attached to a text input, update it\r\n this.updateElement();\r\n\r\n $(document).off('.daterangepicker');\r\n $(window).off('.daterangepicker');\r\n this.container.hide();\r\n this.element.trigger('hide.daterangepicker', this);\r\n this.isShowing = false;\r\n },\r\n\r\n toggle: function(e) {\r\n if (this.isShowing) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n },\r\n\r\n outsideClick: function(e) {\r\n var target = $(e.target);\r\n // if the page is clicked anywhere except within the daterangerpicker/button\r\n // itself then call this.hide()\r\n if (\r\n // ie modal dialog fix\r\n e.type == \"focusin\" ||\r\n target.closest(this.element).length ||\r\n target.closest(this.container).length ||\r\n target.closest('.calendar-table').length\r\n ) return;\r\n this.hide();\r\n this.element.trigger('outsideClick.daterangepicker', this);\r\n },\r\n\r\n showCalendars: function() {\r\n this.container.addClass('show-calendar');\r\n this.move();\r\n this.element.trigger('showCalendar.daterangepicker', this);\r\n },\r\n\r\n hideCalendars: function() {\r\n this.container.removeClass('show-calendar');\r\n this.element.trigger('hideCalendar.daterangepicker', this);\r\n },\r\n\r\n clickRange: function(e) {\r\n var label = e.target.getAttribute('data-range-key');\r\n this.chosenLabel = label;\r\n if (label == this.locale.customRangeLabel) {\r\n this.showCalendars();\r\n } else {\r\n var dates = this.ranges[label];\r\n this.startDate = dates[0];\r\n this.endDate = dates[1];\r\n\r\n if (!this.timePicker) {\r\n this.startDate.startOf('day');\r\n this.endDate.endOf('day');\r\n }\r\n\r\n if (!this.alwaysShowCalendars)\r\n this.hideCalendars();\r\n this.clickApply();\r\n }\r\n },\r\n\r\n clickPrev: function(e) {\r\n var cal = $(e.target).parents('.drp-calendar');\r\n if (cal.hasClass('left')) {\r\n this.leftCalendar.month.subtract(1, 'month');\r\n if (this.linkedCalendars)\r\n this.rightCalendar.month.subtract(1, 'month');\r\n } else {\r\n this.rightCalendar.month.subtract(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n clickNext: function(e) {\r\n var cal = $(e.target).parents('.drp-calendar');\r\n if (cal.hasClass('left')) {\r\n this.leftCalendar.month.add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.add(1, 'month');\r\n if (this.linkedCalendars)\r\n this.leftCalendar.month.add(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n hoverDate: function(e) {\r\n\r\n //ignore dates that can't be selected\r\n if (!$(e.target).hasClass('available')) return;\r\n\r\n var title = $(e.target).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(e.target).parents('.drp-calendar');\r\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n //highlight the dates between the start date and the date being hovered as a potential end date\r\n var leftCalendar = this.leftCalendar;\r\n var rightCalendar = this.rightCalendar;\r\n var startDate = this.startDate;\r\n if (!this.endDate) {\r\n this.container.find('.drp-calendar tbody td').each(function(index, el) {\r\n\r\n //skip week numbers, only look at dates\r\n if ($(el).hasClass('week')) return;\r\n\r\n var title = $(el).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(el).parents('.drp-calendar');\r\n var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];\r\n\r\n if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {\r\n $(el).addClass('in-range');\r\n } else {\r\n $(el).removeClass('in-range');\r\n }\r\n\r\n });\r\n }\r\n\r\n },\r\n\r\n clickDate: function(e) {\r\n\r\n if (!$(e.target).hasClass('available')) return;\r\n\r\n var title = $(e.target).attr('data-title');\r\n var row = title.substr(1, 1);\r\n var col = title.substr(3, 1);\r\n var cal = $(e.target).parents('.drp-calendar');\r\n var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];\r\n\r\n //\r\n // this function needs to do a few things:\r\n // * alternate between selecting a start and end date for the range,\r\n // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date\r\n // * if autoapply is enabled, and an end date was chosen, apply the selection\r\n // * if single date picker mode, and time picker isn't enabled, apply the selection immediately\r\n // * if one of the inputs above the calendars was focused, cancel that manual input\r\n //\r\n\r\n if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start\r\n if (this.timePicker) {\r\n var hour = parseInt(this.container.find('.left .hourselect').val(), 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.left .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.endDate = null;\r\n this.setStartDate(date.clone());\r\n } else if (!this.endDate && date.isBefore(this.startDate)) {\r\n //special case: clicking the same date for start/end,\r\n //but the time of the end date is before the start date\r\n this.setEndDate(this.startDate.clone());\r\n } else { // picking end\r\n if (this.timePicker) {\r\n var hour = parseInt(this.container.find('.right .hourselect').val(), 10);\r\n if (!this.timePicker24Hour) {\r\n var ampm = this.container.find('.right .ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;\r\n date = date.clone().hour(hour).minute(minute).second(second);\r\n }\r\n this.setEndDate(date.clone());\r\n if (this.autoApply) {\r\n this.calculateChosenLabel();\r\n this.clickApply();\r\n }\r\n }\r\n\r\n if (this.singleDatePicker) {\r\n this.setEndDate(this.startDate);\r\n if (!this.timePicker && this.autoApply)\r\n this.clickApply();\r\n }\r\n\r\n this.updateView();\r\n\r\n //This is to cancel the blur event handler if the mouse was in one of the inputs\r\n e.stopPropagation();\r\n\r\n },\r\n\r\n calculateChosenLabel: function () {\r\n var customRange = true;\r\n var i = 0;\r\n for (var range in this.ranges) {\r\n if (this.timePicker) {\r\n var format = this.timePickerSeconds ? \"YYYY-MM-DD HH:mm:ss\" : \"YYYY-MM-DD HH:mm\";\r\n //ignore times when comparing dates if time picker seconds is not enabled\r\n if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {\r\n customRange = false;\r\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\r\n break;\r\n }\r\n } else {\r\n //ignore times when comparing dates if time picker is not enabled\r\n if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {\r\n customRange = false;\r\n this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key');\r\n break;\r\n }\r\n }\r\n i++;\r\n }\r\n if (customRange) {\r\n if (this.showCustomRangeLabel) {\r\n this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key');\r\n } else {\r\n this.chosenLabel = null;\r\n }\r\n this.showCalendars();\r\n }\r\n },\r\n\r\n clickApply: function(e) {\r\n this.hide();\r\n this.element.trigger('apply.daterangepicker', this);\r\n },\r\n\r\n clickCancel: function(e) {\r\n this.startDate = this.oldStartDate;\r\n this.endDate = this.oldEndDate;\r\n this.hide();\r\n this.element.trigger('cancel.daterangepicker', this);\r\n },\r\n\r\n monthOrYearChanged: function(e) {\r\n var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'),\r\n leftOrRight = isLeft ? 'left' : 'right',\r\n cal = this.container.find('.drp-calendar.'+leftOrRight);\r\n\r\n // Month must be Number for new moment versions\r\n var month = parseInt(cal.find('.monthselect').val(), 10);\r\n var year = cal.find('.yearselect').val();\r\n\r\n if (!isLeft) {\r\n if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {\r\n month = this.startDate.month();\r\n year = this.startDate.year();\r\n }\r\n }\r\n\r\n if (this.minDate) {\r\n if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {\r\n month = this.minDate.month();\r\n year = this.minDate.year();\r\n }\r\n }\r\n\r\n if (this.maxDate) {\r\n if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {\r\n month = this.maxDate.month();\r\n year = this.maxDate.year();\r\n }\r\n }\r\n\r\n if (isLeft) {\r\n this.leftCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars)\r\n this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');\r\n } else {\r\n this.rightCalendar.month.month(month).year(year);\r\n if (this.linkedCalendars)\r\n this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');\r\n }\r\n this.updateCalendars();\r\n },\r\n\r\n timeChanged: function(e) {\r\n\r\n var cal = $(e.target).closest('.drp-calendar'),\r\n isLeft = cal.hasClass('left');\r\n\r\n var hour = parseInt(cal.find('.hourselect').val(), 10);\r\n var minute = parseInt(cal.find('.minuteselect').val(), 10);\r\n if (isNaN(minute)) {\r\n minute = parseInt(cal.find('.minuteselect option:last').val(), 10);\r\n }\r\n var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;\r\n\r\n if (!this.timePicker24Hour) {\r\n var ampm = cal.find('.ampmselect').val();\r\n if (ampm === 'PM' && hour < 12)\r\n hour += 12;\r\n if (ampm === 'AM' && hour === 12)\r\n hour = 0;\r\n }\r\n\r\n if (isLeft) {\r\n var start = this.startDate.clone();\r\n start.hour(hour);\r\n start.minute(minute);\r\n start.second(second);\r\n this.setStartDate(start);\r\n if (this.singleDatePicker) {\r\n this.endDate = this.startDate.clone();\r\n } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {\r\n this.setEndDate(start.clone());\r\n }\r\n } else if (this.endDate) {\r\n var end = this.endDate.clone();\r\n end.hour(hour);\r\n end.minute(minute);\r\n end.second(second);\r\n this.setEndDate(end);\r\n }\r\n\r\n //update the calendars so all clickable dates reflect the new time component\r\n this.updateCalendars();\r\n\r\n //update the form inputs above the calendars with the new time\r\n this.updateFormInputs();\r\n\r\n //re-render the time pickers because changing one selection can affect what's enabled in another\r\n this.renderTimePicker('left');\r\n this.renderTimePicker('right');\r\n\r\n },\r\n\r\n elementChanged: function() {\r\n if (!this.element.is('input')) return;\r\n if (!this.element.val().length) return;\r\n\r\n var dateString = this.element.val().split(this.locale.separator),\r\n start = null,\r\n end = null;\r\n\r\n if (dateString.length === 2) {\r\n start = moment(dateString[0], this.locale.format);\r\n end = moment(dateString[1], this.locale.format);\r\n }\r\n\r\n if (this.singleDatePicker || start === null || end === null) {\r\n start = moment(this.element.val(), this.locale.format);\r\n end = start;\r\n }\r\n\r\n if (!start.isValid() || !end.isValid()) return;\r\n\r\n this.setStartDate(start);\r\n this.setEndDate(end);\r\n this.updateView();\r\n },\r\n\r\n keydown: function(e) {\r\n //hide on tab or enter\r\n if ((e.keyCode === 9) || (e.keyCode === 13)) {\r\n this.hide();\r\n }\r\n\r\n //hide on esc and prevent propagation\r\n if (e.keyCode === 27) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n this.hide();\r\n }\r\n },\r\n\r\n updateElement: function() {\r\n if (this.element.is('input') && this.autoUpdateInput) {\r\n var newValue = this.startDate.format(this.locale.format);\r\n if (!this.singleDatePicker) {\r\n newValue += this.locale.separator + this.endDate.format(this.locale.format);\r\n }\r\n if (newValue !== this.element.val()) {\r\n this.element.val(newValue).trigger('change');\r\n }\r\n }\r\n },\r\n\r\n remove: function() {\r\n this.container.remove();\r\n this.element.off('.daterangepicker');\r\n this.element.removeData();\r\n }\r\n\r\n };\r\n\r\n $.fn.daterangepicker = function(options, callback) {\r\n var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);\r\n this.each(function() {\r\n var el = $(this);\r\n if (el.data('daterangepicker'))\r\n el.data('daterangepicker').remove();\r\n el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));\r\n });\r\n return this;\r\n };\r\n\r\n return DateRangePicker;\r\n\r\n}));\r\n","/* jquery.nicescroll\r\n-- version 3.7.6\r\n-- copyright 2017-07-19 InuYaksa*2017\r\n-- licensed under the MIT\r\n--\r\n-- https://nicescroll.areaaperta.com/\r\n-- https://github.com/inuyaksa/jquery.nicescroll\r\n--\r\n*/\r\n\r\n/* jshint expr: true */\r\n\r\n(function (factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as anonymous module.\r\n define(['jquery'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node/CommonJS.\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n // Browser globals.\r\n factory(jQuery);\r\n }\r\n}(function (jQuery) {\r\n\r\n \"use strict\";\r\n\r\n // globals\r\n var domfocus = false,\r\n mousefocus = false,\r\n tabindexcounter = 0,\r\n ascrailcounter = 2000,\r\n globalmaxzindex = 0;\r\n\r\n var $ = jQuery, // sandbox\r\n _doc = document,\r\n _win = window,\r\n $window = $(_win);\r\n\r\n var delegatevents = [];\r\n\r\n // http://stackoverflow.com/questions/2161159/get-script-path\r\n function getScriptPath() {\r\n var scripts = _doc.currentScript || (function () { var s = _doc.getElementsByTagName('script'); return (s.length) ? s[s.length - 1] : false; })();\r\n var path = scripts ? scripts.src.split('?')[0] : '';\r\n return (path.split('/').length > 0) ? path.split('/').slice(0, -1).join('/') + '/' : '';\r\n }\r\n\r\n // based on code by Paul Irish https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/ \r\n var setAnimationFrame = _win.requestAnimationFrame || _win.webkitRequestAnimationFrame || _win.mozRequestAnimationFrame || false;\r\n var clearAnimationFrame = _win.cancelAnimationFrame || _win.webkitCancelAnimationFrame || _win.mozCancelAnimationFrame || false;\r\n\r\n if (!setAnimationFrame) {\r\n var anilasttime = 0;\r\n setAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - anilasttime));\r\n var id = _win.setTimeout(function () { callback(currTime + timeToCall); },\r\n timeToCall);\r\n anilasttime = currTime + timeToCall;\r\n return id;\r\n };\r\n clearAnimationFrame = function (id) {\r\n _win.clearTimeout(id);\r\n };\r\n } else {\r\n if (!_win.cancelAnimationFrame) clearAnimationFrame = function (id) { };\r\n }\r\n\r\n var ClsMutationObserver = _win.MutationObserver || _win.WebKitMutationObserver || false;\r\n\r\n var now = Date.now || function () { return new Date().getTime(); };\r\n\r\n var _globaloptions = {\r\n zindex: \"auto\",\r\n cursoropacitymin: 0,\r\n cursoropacitymax: 1,\r\n cursorcolor: \"#424242\",\r\n cursorwidth: \"6px\",\r\n cursorborder: \"1px solid #fff\",\r\n cursorborderradius: \"5px\",\r\n scrollspeed: 40,\r\n mousescrollstep: 9 * 3,\r\n touchbehavior: false, // deprecated\r\n emulatetouch: false, // replacing touchbehavior\r\n hwacceleration: true,\r\n usetransition: true,\r\n boxzoom: false,\r\n dblclickzoom: true,\r\n gesturezoom: true,\r\n grabcursorenabled: true,\r\n autohidemode: true,\r\n background: \"\",\r\n iframeautoresize: true,\r\n cursorminheight: 32,\r\n preservenativescrolling: true,\r\n railoffset: false,\r\n railhoffset: false,\r\n bouncescroll: true,\r\n spacebarenabled: true,\r\n railpadding: {\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n bottom: 0\r\n },\r\n disableoutline: true,\r\n horizrailenabled: true,\r\n railalign: \"right\",\r\n railvalign: \"bottom\",\r\n enabletranslate3d: true,\r\n enablemousewheel: true,\r\n enablekeyboard: true,\r\n smoothscroll: true,\r\n sensitiverail: true,\r\n enablemouselockapi: true,\r\n // cursormaxheight:false,\r\n cursorfixedheight: false,\r\n directionlockdeadzone: 6,\r\n hidecursordelay: 400,\r\n nativeparentscrolling: true,\r\n enablescrollonselection: true,\r\n overflowx: true,\r\n overflowy: true,\r\n cursordragspeed: 0.3,\r\n rtlmode: \"auto\",\r\n cursordragontouch: false,\r\n oneaxismousemode: \"auto\",\r\n scriptpath: getScriptPath(),\r\n preventmultitouchscrolling: true,\r\n disablemutationobserver: false,\r\n enableobserver: true,\r\n scrollbarid: false\r\n };\r\n\r\n var browserdetected = false;\r\n\r\n var getBrowserDetection = function () {\r\n\r\n if (browserdetected) return browserdetected;\r\n\r\n var _el = _doc.createElement('DIV'),\r\n _style = _el.style,\r\n _agent = navigator.userAgent,\r\n _platform = navigator.platform,\r\n d = {};\r\n\r\n d.haspointerlock = \"pointerLockElement\" in _doc || \"webkitPointerLockElement\" in _doc || \"mozPointerLockElement\" in _doc;\r\n\r\n d.isopera = (\"opera\" in _win); // 12-\r\n d.isopera12 = (d.isopera && (\"getUserMedia\" in navigator));\r\n d.isoperamini = (Object.prototype.toString.call(_win.operamini) === \"[object OperaMini]\");\r\n\r\n d.isie = ((\"all\" in _doc) && (\"attachEvent\" in _el) && !d.isopera); //IE10-\r\n d.isieold = (d.isie && !(\"msInterpolationMode\" in _style)); // IE6 and older\r\n d.isie7 = d.isie && !d.isieold && (!(\"documentMode\" in _doc) || (_doc.documentMode === 7));\r\n d.isie8 = d.isie && (\"documentMode\" in _doc) && (_doc.documentMode === 8);\r\n d.isie9 = d.isie && (\"performance\" in _win) && (_doc.documentMode === 9);\r\n d.isie10 = d.isie && (\"performance\" in _win) && (_doc.documentMode === 10);\r\n d.isie11 = (\"msRequestFullscreen\" in _el) && (_doc.documentMode >= 11); // IE11+\r\n\r\n d.ismsedge = (\"msCredentials\" in _win); // MS Edge 14+\r\n\r\n d.ismozilla = (\"MozAppearance\" in _style);\r\n\r\n d.iswebkit = !d.ismsedge && (\"WebkitAppearance\" in _style);\r\n\r\n d.ischrome = d.iswebkit && (\"chrome\" in _win);\r\n d.ischrome38 = (d.ischrome && (\"touchAction\" in _style)); // behavior changed in touch emulation \r\n d.ischrome22 = (!d.ischrome38) && (d.ischrome && d.haspointerlock);\r\n d.ischrome26 = (!d.ischrome38) && (d.ischrome && (\"transition\" in _style)); // issue with transform detection (maintain prefix)\r\n\r\n d.cantouch = (\"ontouchstart\" in _doc.documentElement) || (\"ontouchstart\" in _win); // with detection for Chrome Touch Emulation \r\n d.hasw3ctouch = (_win.PointerEvent || false) && ((navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)); //IE11 pointer events, following W3C Pointer Events spec\r\n d.hasmstouch = (!d.hasw3ctouch) && (_win.MSPointerEvent || false); // IE10 pointer events\r\n\r\n d.ismac = /^mac$/i.test(_platform);\r\n\r\n d.isios = d.cantouch && /iphone|ipad|ipod/i.test(_platform);\r\n d.isios4 = d.isios && !(\"seal\" in Object);\r\n d.isios7 = d.isios && (\"webkitHidden\" in _doc); //iOS 7+\r\n d.isios8 = d.isios && (\"hidden\" in _doc); //iOS 8+\r\n d.isios10 = d.isios && _win.Proxy; //iOS 10+\r\n\r\n d.isandroid = (/android/i.test(_agent));\r\n\r\n d.haseventlistener = (\"addEventListener\" in _el);\r\n\r\n d.trstyle = false;\r\n d.hastransform = false;\r\n d.hastranslate3d = false;\r\n d.transitionstyle = false;\r\n d.hastransition = false;\r\n d.transitionend = false;\r\n\r\n d.trstyle = \"transform\";\r\n d.hastransform = (\"transform\" in _style) || (function () {\r\n var check = ['msTransform', 'webkitTransform', 'MozTransform', 'OTransform'];\r\n for (var a = 0, c = check.length; a < c; a++) {\r\n if (_style[check[a]] !== undefined) {\r\n d.trstyle = check[a];\r\n break;\r\n }\r\n }\r\n d.hastransform = (!!d.trstyle);\r\n })();\r\n\r\n if (d.hastransform) {\r\n _style[d.trstyle] = \"translate3d(1px,2px,3px)\";\r\n d.hastranslate3d = /translate3d/.test(_style[d.trstyle]);\r\n }\r\n\r\n d.transitionstyle = \"transition\";\r\n d.prefixstyle = '';\r\n d.transitionend = \"transitionend\";\r\n\r\n d.hastransition = (\"transition\" in _style) || (function () {\r\n\r\n d.transitionend = false;\r\n var check = ['webkitTransition', 'msTransition', 'MozTransition', 'OTransition', 'OTransition', 'KhtmlTransition'];\r\n var prefix = ['-webkit-', '-ms-', '-moz-', '-o-', '-o', '-khtml-'];\r\n var evs = ['webkitTransitionEnd', 'msTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd', 'KhtmlTransitionEnd'];\r\n for (var a = 0, c = check.length; a < c; a++) {\r\n if (check[a] in _style) {\r\n d.transitionstyle = check[a];\r\n d.prefixstyle = prefix[a];\r\n d.transitionend = evs[a];\r\n break;\r\n }\r\n }\r\n if (d.ischrome26) d.prefixstyle = prefix[1]; // always use prefix\r\n\r\n d.hastransition = (d.transitionstyle);\r\n\r\n })();\r\n\r\n function detectCursorGrab() {\r\n var lst = ['grab', '-webkit-grab', '-moz-grab'];\r\n if ((d.ischrome && !d.ischrome38) || d.isie) lst = []; // force setting for IE returns false positive and chrome cursor bug\r\n for (var a = 0, l = lst.length; a < l; a++) {\r\n var p = lst[a];\r\n _style.cursor = p;\r\n if (_style.cursor == p) return p;\r\n }\r\n return 'url(https://cdnjs.cloudflare.com/ajax/libs/slider-pro/1.3.0/css/images/openhand.cur),n-resize'; // thanks to https://cdnjs.com/ for the openhand cursor!\r\n }\r\n d.cursorgrabvalue = detectCursorGrab();\r\n\r\n d.hasmousecapture = (\"setCapture\" in _el);\r\n\r\n d.hasMutationObserver = (ClsMutationObserver !== false);\r\n\r\n _el = null; //memory released\r\n\r\n browserdetected = d;\r\n\r\n return d;\r\n };\r\n\r\n var NiceScrollClass = function (myopt, me) {\r\n\r\n var self = this;\r\n\r\n this.version = '3.7.6';\r\n this.name = 'nicescroll';\r\n\r\n this.me = me;\r\n\r\n var $body = $(\"body\");\r\n\r\n var opt = this.opt = {\r\n doc: $body,\r\n win: false\r\n };\r\n\r\n $.extend(opt, _globaloptions); // clone opts\r\n\r\n // Options for internal use\r\n opt.snapbackspeed = 80;\r\n\r\n if (myopt || false) {\r\n for (var a in opt) {\r\n if (myopt[a] !== undefined) opt[a] = myopt[a];\r\n }\r\n }\r\n\r\n if (opt.disablemutationobserver) ClsMutationObserver = false;\r\n\r\n this.doc = opt.doc;\r\n this.iddoc = (this.doc && this.doc[0]) ? this.doc[0].id || '' : '';\r\n this.ispage = /^BODY|HTML/.test((opt.win) ? opt.win[0].nodeName : this.doc[0].nodeName);\r\n this.haswrapper = (opt.win !== false);\r\n this.win = opt.win || (this.ispage ? $window : this.doc);\r\n this.docscroll = (this.ispage && !this.haswrapper) ? $window : this.win;\r\n this.body = $body;\r\n this.viewport = false;\r\n\r\n this.isfixed = false;\r\n\r\n this.iframe = false;\r\n this.isiframe = ((this.doc[0].nodeName == 'IFRAME') && (this.win[0].nodeName == 'IFRAME'));\r\n\r\n this.istextarea = (this.win[0].nodeName == 'TEXTAREA');\r\n\r\n this.forcescreen = false; //force to use screen position on events\r\n\r\n this.canshowonmouseevent = (opt.autohidemode != \"scroll\");\r\n\r\n // Events jump table \r\n this.onmousedown = false;\r\n this.onmouseup = false;\r\n this.onmousemove = false;\r\n this.onmousewheel = false;\r\n this.onkeypress = false;\r\n this.ongesturezoom = false;\r\n this.onclick = false;\r\n\r\n // Nicescroll custom events\r\n this.onscrollstart = false;\r\n this.onscrollend = false;\r\n this.onscrollcancel = false;\r\n\r\n this.onzoomin = false;\r\n this.onzoomout = false;\r\n\r\n // Let's start! \r\n this.view = false;\r\n this.page = false;\r\n\r\n this.scroll = {\r\n x: 0,\r\n y: 0\r\n };\r\n this.scrollratio = {\r\n x: 0,\r\n y: 0\r\n };\r\n this.cursorheight = 20;\r\n this.scrollvaluemax = 0;\r\n\r\n // http://dev.w3.org/csswg/css-writing-modes-3/#logical-to-physical\r\n // http://dev.w3.org/csswg/css-writing-modes-3/#svg-writing-mode\r\n if (opt.rtlmode == \"auto\") {\r\n var target = this.win[0] == _win ? this.body : this.win;\r\n var writingMode = target.css(\"writing-mode\") || target.css(\"-webkit-writing-mode\") || target.css(\"-ms-writing-mode\") || target.css(\"-moz-writing-mode\");\r\n\r\n if (writingMode == \"horizontal-tb\" || writingMode == \"lr-tb\" || writingMode === \"\") {\r\n this.isrtlmode = (target.css(\"direction\") == \"rtl\");\r\n this.isvertical = false;\r\n } else {\r\n this.isrtlmode = (writingMode == \"vertical-rl\" || writingMode == \"tb\" || writingMode == \"tb-rl\" || writingMode == \"rl-tb\");\r\n this.isvertical = (writingMode == \"vertical-rl\" || writingMode == \"tb\" || writingMode == \"tb-rl\");\r\n }\r\n } else {\r\n this.isrtlmode = (opt.rtlmode === true);\r\n this.isvertical = false;\r\n }\r\n // this.checkrtlmode = false;\r\n\r\n this.scrollrunning = false;\r\n\r\n this.scrollmom = false;\r\n\r\n this.observer = false; // observer div changes\r\n this.observerremover = false; // observer on parent for remove detection\r\n this.observerbody = false; // observer on body for position change\r\n\r\n if (opt.scrollbarid !== false) {\r\n this.id = opt.scrollbarid;\r\n } else {\r\n do {\r\n this.id = \"ascrail\" + (ascrailcounter++);\r\n } while (_doc.getElementById(this.id));\r\n }\r\n\r\n this.rail = false;\r\n this.cursor = false;\r\n this.cursorfreezed = false;\r\n this.selectiondrag = false;\r\n\r\n this.zoom = false;\r\n this.zoomactive = false;\r\n\r\n this.hasfocus = false;\r\n this.hasmousefocus = false;\r\n\r\n //this.visibility = true;\r\n this.railslocked = false; // locked by resize\r\n this.locked = false; // prevent lost of locked status sets by user\r\n this.hidden = false; // rails always hidden\r\n this.cursoractive = true; // user can interact with cursors\r\n\r\n this.wheelprevented = false; //prevent mousewheel event\r\n\r\n this.overflowx = opt.overflowx;\r\n this.overflowy = opt.overflowy;\r\n\r\n this.nativescrollingarea = false;\r\n this.checkarea = 0;\r\n\r\n this.events = []; // event list for unbind\r\n\r\n this.saved = {}; // style saved\r\n\r\n this.delaylist = {};\r\n this.synclist = {};\r\n\r\n this.lastdeltax = 0;\r\n this.lastdeltay = 0;\r\n\r\n this.detected = getBrowserDetection();\r\n\r\n var cap = $.extend({}, this.detected);\r\n\r\n this.canhwscroll = (cap.hastransform && opt.hwacceleration);\r\n this.ishwscroll = (this.canhwscroll && self.haswrapper);\r\n\r\n if (!this.isrtlmode) {\r\n this.hasreversehr = false;\r\n } else if (this.isvertical) { // RTL mode with reverse horizontal axis\r\n this.hasreversehr = !(cap.iswebkit || cap.isie || cap.isie11);\r\n } else {\r\n this.hasreversehr = !(cap.iswebkit || (cap.isie && !cap.isie10 && !cap.isie11));\r\n }\r\n\r\n this.istouchcapable = false; // desktop devices with touch screen support\r\n\r\n //## Check WebKit-based desktop with touch support\r\n //## + Firefox 18 nightly build (desktop) false positive (or desktop with touch support)\r\n\r\n if (!cap.cantouch && (cap.hasw3ctouch || cap.hasmstouch)) { // desktop device with multiple input\r\n this.istouchcapable = true;\r\n } else if (cap.cantouch && !cap.isios && !cap.isandroid && (cap.iswebkit || cap.ismozilla)) {\r\n this.istouchcapable = true;\r\n }\r\n\r\n //## disable MouseLock API on user request\r\n if (!opt.enablemouselockapi) {\r\n cap.hasmousecapture = false;\r\n cap.haspointerlock = false;\r\n }\r\n\r\n this.debounced = function (name, fn, tm) {\r\n if (!self) return;\r\n var dd = self.delaylist[name] || false;\r\n if (!dd) {\r\n self.delaylist[name] = {\r\n h: setAnimationFrame(function () {\r\n self.delaylist[name].fn.call(self);\r\n self.delaylist[name] = false;\r\n }, tm)\r\n };\r\n fn.call(self);\r\n }\r\n self.delaylist[name].fn = fn;\r\n };\r\n\r\n\r\n this.synched = function (name, fn) {\r\n if (self.synclist[name]) self.synclist[name] = fn;\r\n else {\r\n self.synclist[name] = fn;\r\n setAnimationFrame(function () {\r\n if (!self) return;\r\n self.synclist[name] && self.synclist[name].call(self);\r\n self.synclist[name] = null;\r\n });\r\n }\r\n };\r\n\r\n this.unsynched = function (name) {\r\n if (self.synclist[name]) self.synclist[name] = false;\r\n };\r\n\r\n this.css = function (el, pars) { // save & set\r\n for (var n in pars) {\r\n self.saved.css.push([el, n, el.css(n)]);\r\n el.css(n, pars[n]);\r\n }\r\n };\r\n\r\n this.scrollTop = function (val) {\r\n return (val === undefined) ? self.getScrollTop() : self.setScrollTop(val);\r\n };\r\n\r\n this.scrollLeft = function (val) {\r\n return (val === undefined) ? self.getScrollLeft() : self.setScrollLeft(val);\r\n };\r\n\r\n // derived by by Dan Pupius www.pupius.net\r\n var BezierClass = function (st, ed, spd, p1, p2, p3, p4) {\r\n\r\n this.st = st;\r\n this.ed = ed;\r\n this.spd = spd;\r\n\r\n this.p1 = p1 || 0;\r\n this.p2 = p2 || 1;\r\n this.p3 = p3 || 0;\r\n this.p4 = p4 || 1;\r\n\r\n this.ts = now();\r\n this.df = ed - st;\r\n };\r\n BezierClass.prototype = {\r\n B2: function (t) {\r\n return 3 * (1 - t) * (1 - t) * t;\r\n },\r\n B3: function (t) {\r\n return 3 * (1 - t) * t * t;\r\n },\r\n B4: function (t) {\r\n return t * t * t;\r\n },\r\n getPos: function () {\r\n return (now() - this.ts) / this.spd;\r\n },\r\n getNow: function () {\r\n var pc = (now() - this.ts) / this.spd;\r\n var bz = this.B2(pc) + this.B3(pc) + this.B4(pc);\r\n return (pc >= 1) ? this.ed : this.st + (this.df * bz) | 0;\r\n },\r\n update: function (ed, spd) {\r\n this.st = this.getNow();\r\n this.ed = ed;\r\n this.spd = spd;\r\n this.ts = now();\r\n this.df = this.ed - this.st;\r\n return this;\r\n }\r\n };\r\n\r\n //derived from http://stackoverflow.com/questions/11236090/\r\n function getMatrixValues() {\r\n var tr = self.doc.css(cap.trstyle);\r\n if (tr && (tr.substr(0, 6) == \"matrix\")) {\r\n return tr.replace(/^.*\\((.*)\\)$/g, \"$1\").replace(/px/g, '').split(/, +/);\r\n }\r\n return false;\r\n }\r\n\r\n if (this.ishwscroll) { // hw accelerated scroll\r\n\r\n this.doc.translate = {\r\n x: 0,\r\n y: 0,\r\n tx: \"0px\",\r\n ty: \"0px\"\r\n };\r\n\r\n //this one can help to enable hw accel on ios6 http://indiegamr.com/ios6-html-hardware-acceleration-changes-and-how-to-fix-them/\r\n if (cap.hastranslate3d && cap.isios) this.doc.css(\"-webkit-backface-visibility\", \"hidden\"); // prevent flickering http://stackoverflow.com/questions/3461441/ \r\n\r\n this.getScrollTop = function (last) {\r\n if (!last) {\r\n var mtx = getMatrixValues();\r\n if (mtx) return (mtx.length == 16) ? -mtx[13] : -mtx[5]; //matrix3d 16 on IE10\r\n if (self.timerscroll && self.timerscroll.bz) return self.timerscroll.bz.getNow();\r\n }\r\n return self.doc.translate.y;\r\n };\r\n\r\n this.getScrollLeft = function (last) {\r\n if (!last) {\r\n var mtx = getMatrixValues();\r\n if (mtx) return (mtx.length == 16) ? -mtx[12] : -mtx[4]; //matrix3d 16 on IE10\r\n if (self.timerscroll && self.timerscroll.bh) return self.timerscroll.bh.getNow();\r\n }\r\n return self.doc.translate.x;\r\n };\r\n\r\n this.notifyScrollEvent = function (el) {\r\n var e = _doc.createEvent(\"UIEvents\");\r\n e.initUIEvent(\"scroll\", false, false, _win, 1);\r\n e.niceevent = true;\r\n el.dispatchEvent(e);\r\n };\r\n\r\n var cxscrollleft = (this.isrtlmode) ? 1 : -1;\r\n\r\n if (cap.hastranslate3d && opt.enabletranslate3d) {\r\n this.setScrollTop = function (val, silent) {\r\n self.doc.translate.y = val;\r\n self.doc.translate.ty = (val * -1) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate3d(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \",0)\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n this.setScrollLeft = function (val, silent) {\r\n self.doc.translate.x = val;\r\n self.doc.translate.tx = (val * cxscrollleft) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate3d(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \",0)\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n } else {\r\n this.setScrollTop = function (val, silent) {\r\n self.doc.translate.y = val;\r\n self.doc.translate.ty = (val * -1) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \")\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n this.setScrollLeft = function (val, silent) {\r\n self.doc.translate.x = val;\r\n self.doc.translate.tx = (val * cxscrollleft) + \"px\";\r\n self.doc.css(cap.trstyle, \"translate(\" + self.doc.translate.tx + \",\" + self.doc.translate.ty + \")\");\r\n if (!silent) self.notifyScrollEvent(self.win[0]);\r\n };\r\n }\r\n } else { // native scroll\r\n\r\n this.getScrollTop = function () {\r\n return self.docscroll.scrollTop();\r\n };\r\n this.setScrollTop = function (val) {\r\n self.docscroll.scrollTop(val);\r\n };\r\n\r\n this.getScrollLeft = function () {\r\n var val;\r\n if (!self.hasreversehr) {\r\n val = self.docscroll.scrollLeft();\r\n } else if (self.detected.ismozilla) {\r\n val = self.page.maxw - Math.abs(self.docscroll.scrollLeft());\r\n } else {\r\n val = self.page.maxw - self.docscroll.scrollLeft();\r\n }\r\n return val;\r\n };\r\n this.setScrollLeft = function (val) {\r\n return setTimeout(function () {\r\n if (!self) return;\r\n if (self.hasreversehr) {\r\n if (self.detected.ismozilla) {\r\n val = -(self.page.maxw - val);\r\n } else {\r\n val = self.page.maxw - val;\r\n }\r\n }\r\n return self.docscroll.scrollLeft(val);\r\n }, 1);\r\n };\r\n }\r\n\r\n this.getTarget = function (e) {\r\n if (!e) return false;\r\n if (e.target) return e.target;\r\n if (e.srcElement) return e.srcElement;\r\n return false;\r\n };\r\n\r\n this.hasParent = function (e, id) {\r\n if (!e) return false;\r\n var el = e.target || e.srcElement || e || false;\r\n while (el && el.id != id) {\r\n el = el.parentNode || false;\r\n }\r\n return (el !== false);\r\n };\r\n\r\n function getZIndex() {\r\n var dom = self.win;\r\n if (\"zIndex\" in dom) return dom.zIndex(); // use jQuery UI method when available\r\n while (dom.length > 0) {\r\n if (dom[0].nodeType == 9) return false;\r\n var zi = dom.css('zIndex');\r\n if (!isNaN(zi) && zi !== 0) return parseInt(zi);\r\n dom = dom.parent();\r\n }\r\n return false;\r\n }\r\n\r\n //inspired by http://forum.jquery.com/topic/width-includes-border-width-when-set-to-thin-medium-thick-in-ie\r\n var _convertBorderWidth = {\r\n \"thin\": 1,\r\n \"medium\": 3,\r\n \"thick\": 5\r\n };\r\n\r\n function getWidthToPixel(dom, prop, chkheight) {\r\n var wd = dom.css(prop);\r\n var px = parseFloat(wd);\r\n if (isNaN(px)) {\r\n px = _convertBorderWidth[wd] || 0;\r\n var brd = (px == 3) ? ((chkheight) ? (self.win.outerHeight() - self.win.innerHeight()) : (self.win.outerWidth() - self.win.innerWidth())) : 1; //DON'T TRUST CSS\r\n if (self.isie8 && px) px += 1;\r\n return (brd) ? px : 0;\r\n }\r\n return px;\r\n }\r\n\r\n this.getDocumentScrollOffset = function () {\r\n return {\r\n top: _win.pageYOffset || _doc.documentElement.scrollTop,\r\n left: _win.pageXOffset || _doc.documentElement.scrollLeft\r\n };\r\n };\r\n\r\n this.getOffset = function () {\r\n if (self.isfixed) {\r\n var ofs = self.win.offset(); // fix Chrome auto issue (when right/bottom props only)\r\n var scrl = self.getDocumentScrollOffset();\r\n ofs.top -= scrl.top;\r\n ofs.left -= scrl.left;\r\n return ofs;\r\n }\r\n var ww = self.win.offset();\r\n if (!self.viewport) return ww;\r\n var vp = self.viewport.offset();\r\n return {\r\n top: ww.top - vp.top,\r\n left: ww.left - vp.left\r\n };\r\n };\r\n\r\n this.updateScrollBar = function (len) {\r\n var pos, off;\r\n if (self.ishwscroll) {\r\n self.rail.css({\r\n height: self.win.innerHeight() - (opt.railpadding.top + opt.railpadding.bottom)\r\n });\r\n if (self.railh) self.railh.css({\r\n width: self.win.innerWidth() - (opt.railpadding.left + opt.railpadding.right)\r\n });\r\n } else {\r\n var wpos = self.getOffset();\r\n pos = {\r\n top: wpos.top,\r\n left: wpos.left - (opt.railpadding.left + opt.railpadding.right)\r\n };\r\n pos.top += getWidthToPixel(self.win, 'border-top-width', true);\r\n pos.left += (self.rail.align) ? self.win.outerWidth() - getWidthToPixel(self.win, 'border-right-width') - self.rail.width : getWidthToPixel(self.win, 'border-left-width');\r\n\r\n off = opt.railoffset;\r\n if (off) {\r\n if (off.top) pos.top += off.top;\r\n if (off.left) pos.left += off.left;\r\n }\r\n\r\n if (!self.railslocked) self.rail.css({\r\n top: pos.top,\r\n left: pos.left,\r\n height: ((len) ? len.h : self.win.innerHeight()) - (opt.railpadding.top + opt.railpadding.bottom)\r\n });\r\n\r\n if (self.zoom) {\r\n self.zoom.css({\r\n top: pos.top + 1,\r\n left: (self.rail.align == 1) ? pos.left - 20 : pos.left + self.rail.width + 4\r\n });\r\n }\r\n\r\n if (self.railh && !self.railslocked) {\r\n pos = {\r\n top: wpos.top,\r\n left: wpos.left\r\n };\r\n off = opt.railhoffset;\r\n if (off) {\r\n if (off.top) pos.top += off.top;\r\n if (off.left) pos.left += off.left;\r\n }\r\n var y = (self.railh.align) ? pos.top + getWidthToPixel(self.win, 'border-top-width', true) + self.win.innerHeight() - self.railh.height : pos.top + getWidthToPixel(self.win, 'border-top-width', true);\r\n var x = pos.left + getWidthToPixel(self.win, 'border-left-width');\r\n self.railh.css({\r\n top: y - (opt.railpadding.top + opt.railpadding.bottom),\r\n left: x,\r\n width: self.railh.width\r\n });\r\n }\r\n\r\n }\r\n };\r\n\r\n this.doRailClick = function (e, dbl, hr) {\r\n var fn, pg, cur, pos;\r\n\r\n if (self.railslocked) return;\r\n\r\n self.cancelEvent(e);\r\n\r\n if (!(\"pageY\" in e)) {\r\n e.pageX = e.clientX + _doc.documentElement.scrollLeft;\r\n e.pageY = e.clientY + _doc.documentElement.scrollTop;\r\n }\r\n\r\n if (dbl) {\r\n fn = (hr) ? self.doScrollLeft : self.doScrollTop;\r\n cur = (hr) ? ((e.pageX - self.railh.offset().left - (self.cursorwidth / 2)) * self.scrollratio.x) : ((e.pageY - self.rail.offset().top - (self.cursorheight / 2)) * self.scrollratio.y);\r\n self.unsynched(\"relativexy\");\r\n fn(cur|0);\r\n } else {\r\n fn = (hr) ? self.doScrollLeftBy : self.doScrollBy;\r\n cur = (hr) ? self.scroll.x : self.scroll.y;\r\n pos = (hr) ? e.pageX - self.railh.offset().left : e.pageY - self.rail.offset().top;\r\n pg = (hr) ? self.view.w : self.view.h;\r\n fn((cur >= pos) ? pg : -pg);\r\n }\r\n\r\n };\r\n\r\n self.newscrolly = self.newscrollx = 0;\r\n\r\n self.hasanimationframe = (\"requestAnimationFrame\" in _win);\r\n self.hascancelanimationframe = (\"cancelAnimationFrame\" in _win);\r\n\r\n self.hasborderbox = false;\r\n\r\n this.init = function () {\r\n\r\n self.saved.css = [];\r\n\r\n if (cap.isoperamini) return true; // SORRY, DO NOT WORK!\r\n if (cap.isandroid && !(\"hidden\" in _doc)) return true; // Android 3- SORRY, DO NOT WORK!\r\n\r\n opt.emulatetouch = opt.emulatetouch || opt.touchbehavior; // mantain compatibility with \"touchbehavior\" \r\n\r\n self.hasborderbox = _win.getComputedStyle && (_win.getComputedStyle(_doc.body)['box-sizing'] === \"border-box\");\r\n\r\n var _scrollyhidden = { 'overflow-y': 'hidden' };\r\n if (cap.isie11 || cap.isie10) _scrollyhidden['-ms-overflow-style'] = 'none'; // IE 10 & 11 is always a world apart!\r\n\r\n if (self.ishwscroll) {\r\n this.doc.css(cap.transitionstyle, cap.prefixstyle + 'transform 0ms ease-out');\r\n if (cap.transitionend) self.bind(self.doc, cap.transitionend, self.onScrollTransitionEnd, false); //I have got to do something usefull!!\r\n }\r\n\r\n self.zindex = \"auto\";\r\n if (!self.ispage && opt.zindex == \"auto\") {\r\n self.zindex = getZIndex() || \"auto\";\r\n } else {\r\n self.zindex = opt.zindex;\r\n }\r\n\r\n if (!self.ispage && self.zindex != \"auto\" && self.zindex > globalmaxzindex) {\r\n globalmaxzindex = self.zindex;\r\n }\r\n\r\n if (self.isie && self.zindex === 0 && opt.zindex == \"auto\") { // fix IE auto == 0\r\n self.zindex = \"auto\";\r\n }\r\n\r\n if (!self.ispage || !cap.isieold) {\r\n\r\n var cont = self.docscroll;\r\n if (self.ispage) cont = (self.haswrapper) ? self.win : self.doc;\r\n\r\n self.css(cont, _scrollyhidden);\r\n\r\n if (self.ispage && (cap.isie11 || cap.isie)) { // IE 7-11\r\n self.css($(\"html\"), _scrollyhidden);\r\n }\r\n\r\n if (cap.isios && !self.ispage && !self.haswrapper) self.css($body, {\r\n \"-webkit-overflow-scrolling\": \"touch\"\r\n }); //force hw acceleration\r\n\r\n var cursor = $(_doc.createElement('div'));\r\n cursor.css({\r\n position: \"relative\",\r\n top: 0,\r\n \"float\": \"right\",\r\n width: opt.cursorwidth,\r\n height: 0,\r\n 'background-color': opt.cursorcolor,\r\n border: opt.cursorborder,\r\n 'background-clip': 'padding-box',\r\n '-webkit-border-radius': opt.cursorborderradius,\r\n '-moz-border-radius': opt.cursorborderradius,\r\n 'border-radius': opt.cursorborderradius\r\n });\r\n\r\n cursor.addClass('nicescroll-cursors');\r\n\r\n self.cursor = cursor;\r\n\r\n var rail = $(_doc.createElement('div'));\r\n rail.attr('id', self.id);\r\n rail.addClass('nicescroll-rails nicescroll-rails-vr');\r\n\r\n var v, a, kp = [\"left\", \"right\", \"top\", \"bottom\"]; //**\r\n for (var n in kp) {\r\n a = kp[n];\r\n v = opt.railpadding[a] || 0;\r\n v && rail.css(\"padding-\" + a, v + \"px\");\r\n }\r\n\r\n rail.append(cursor);\r\n\r\n rail.width = Math.max(parseFloat(opt.cursorwidth), cursor.outerWidth());\r\n rail.css({\r\n width: rail.width + \"px\",\r\n zIndex: self.zindex,\r\n background: opt.background,\r\n cursor: \"default\"\r\n });\r\n\r\n rail.visibility = true;\r\n rail.scrollable = true;\r\n\r\n rail.align = (opt.railalign == \"left\") ? 0 : 1;\r\n\r\n self.rail = rail;\r\n\r\n self.rail.drag = false;\r\n\r\n var zoom = false;\r\n if (opt.boxzoom && !self.ispage && !cap.isieold) {\r\n zoom = _doc.createElement('div');\r\n\r\n self.bind(zoom, \"click\", self.doZoom);\r\n self.bind(zoom, \"mouseenter\", function () {\r\n self.zoom.css('opacity', opt.cursoropacitymax);\r\n });\r\n self.bind(zoom, \"mouseleave\", function () {\r\n self.zoom.css('opacity', opt.cursoropacitymin);\r\n });\r\n\r\n self.zoom = $(zoom);\r\n self.zoom.css({\r\n cursor: \"pointer\",\r\n zIndex: self.zindex,\r\n backgroundImage: 'url(' + opt.scriptpath + 'zoomico.png)',\r\n height: 18,\r\n width: 18,\r\n backgroundPosition: '0 0'\r\n });\r\n if (opt.dblclickzoom) self.bind(self.win, \"dblclick\", self.doZoom);\r\n if (cap.cantouch && opt.gesturezoom) {\r\n self.ongesturezoom = function (e) {\r\n if (e.scale > 1.5) self.doZoomIn(e);\r\n if (e.scale < 0.8) self.doZoomOut(e);\r\n return self.cancelEvent(e);\r\n };\r\n self.bind(self.win, \"gestureend\", self.ongesturezoom);\r\n }\r\n }\r\n\r\n // init HORIZ\r\n\r\n self.railh = false;\r\n var railh;\r\n\r\n if (opt.horizrailenabled) {\r\n\r\n self.css(cont, {\r\n overflowX: 'hidden'\r\n });\r\n\r\n cursor = $(_doc.createElement('div'));\r\n cursor.css({\r\n position: \"absolute\",\r\n top: 0,\r\n height: opt.cursorwidth,\r\n width: 0,\r\n backgroundColor: opt.cursorcolor,\r\n border: opt.cursorborder,\r\n backgroundClip: 'padding-box',\r\n '-webkit-border-radius': opt.cursorborderradius,\r\n '-moz-border-radius': opt.cursorborderradius,\r\n 'border-radius': opt.cursorborderradius\r\n });\r\n\r\n if (cap.isieold) cursor.css('overflow', 'hidden'); //IE6 horiz scrollbar issue\r\n\r\n cursor.addClass('nicescroll-cursors');\r\n\r\n self.cursorh = cursor;\r\n\r\n railh = $(_doc.createElement('div'));\r\n railh.attr('id', self.id + '-hr');\r\n railh.addClass('nicescroll-rails nicescroll-rails-hr');\r\n railh.height = Math.max(parseFloat(opt.cursorwidth), cursor.outerHeight());\r\n railh.css({\r\n height: railh.height + \"px\",\r\n 'zIndex': self.zindex,\r\n \"background\": opt.background\r\n });\r\n\r\n railh.append(cursor);\r\n\r\n railh.visibility = true;\r\n railh.scrollable = true;\r\n\r\n railh.align = (opt.railvalign == \"top\") ? 0 : 1;\r\n\r\n self.railh = railh;\r\n\r\n self.railh.drag = false;\r\n\r\n }\r\n\r\n if (self.ispage) {\r\n\r\n rail.css({\r\n position: \"fixed\",\r\n top: 0,\r\n height: \"100%\"\r\n });\r\n\r\n rail.css((rail.align) ? { right: 0 } : { left: 0 });\r\n\r\n self.body.append(rail);\r\n if (self.railh) {\r\n railh.css({\r\n position: \"fixed\",\r\n left: 0,\r\n width: \"100%\"\r\n });\r\n\r\n railh.css((railh.align) ? { bottom: 0 } : { top: 0 });\r\n\r\n self.body.append(railh);\r\n }\r\n } else {\r\n if (self.ishwscroll) {\r\n if (self.win.css('position') == 'static') self.css(self.win, { 'position': 'relative' });\r\n var bd = (self.win[0].nodeName == 'HTML') ? self.body : self.win;\r\n $(bd).scrollTop(0).scrollLeft(0); // fix rail position if content already scrolled\r\n if (self.zoom) {\r\n self.zoom.css({\r\n position: \"absolute\",\r\n top: 1,\r\n right: 0,\r\n \"margin-right\": rail.width + 4\r\n });\r\n bd.append(self.zoom);\r\n }\r\n rail.css({\r\n position: \"absolute\",\r\n top: 0\r\n });\r\n rail.css((rail.align) ? { right: 0 } : { left: 0 });\r\n bd.append(rail);\r\n if (railh) {\r\n railh.css({\r\n position: \"absolute\",\r\n left: 0,\r\n bottom: 0\r\n });\r\n railh.css((railh.align) ? { bottom: 0 } : { top: 0 });\r\n bd.append(railh);\r\n }\r\n } else {\r\n self.isfixed = (self.win.css(\"position\") == \"fixed\");\r\n var rlpos = (self.isfixed) ? \"fixed\" : \"absolute\";\r\n\r\n if (!self.isfixed) self.viewport = self.getViewport(self.win[0]);\r\n if (self.viewport) {\r\n self.body = self.viewport;\r\n if (!(/fixed|absolute/.test(self.viewport.css(\"position\")))) self.css(self.viewport, {\r\n \"position\": \"relative\"\r\n });\r\n }\r\n\r\n rail.css({\r\n position: rlpos\r\n });\r\n if (self.zoom) self.zoom.css({\r\n position: rlpos\r\n });\r\n self.updateScrollBar();\r\n self.body.append(rail);\r\n if (self.zoom) self.body.append(self.zoom);\r\n if (self.railh) {\r\n railh.css({\r\n position: rlpos\r\n });\r\n self.body.append(railh);\r\n }\r\n }\r\n\r\n if (cap.isios) self.css(self.win, {\r\n '-webkit-tap-highlight-color': 'rgba(0,0,0,0)',\r\n '-webkit-touch-callout': 'none'\r\n }); // prevent grey layer on click\r\n\r\n if (opt.disableoutline) {\r\n if (cap.isie) self.win.attr(\"hideFocus\", \"true\"); // IE, prevent dotted rectangle on focused div\r\n if (cap.iswebkit) self.win.css('outline', 'none'); // Webkit outline\r\n }\r\n\r\n }\r\n\r\n if (opt.autohidemode === false) {\r\n self.autohidedom = false;\r\n self.rail.css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n if (self.railh) self.railh.css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n } else if ((opt.autohidemode === true) || (opt.autohidemode === \"leave\")) {\r\n self.autohidedom = $().add(self.rail);\r\n if (cap.isie8) self.autohidedom = self.autohidedom.add(self.cursor);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.railh);\r\n if (self.railh && cap.isie8) self.autohidedom = self.autohidedom.add(self.cursorh);\r\n } else if (opt.autohidemode == \"scroll\") {\r\n self.autohidedom = $().add(self.rail);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.railh);\r\n } else if (opt.autohidemode == \"cursor\") {\r\n self.autohidedom = $().add(self.cursor);\r\n if (self.railh) self.autohidedom = self.autohidedom.add(self.cursorh);\r\n } else if (opt.autohidemode == \"hidden\") {\r\n self.autohidedom = false;\r\n self.hide();\r\n self.railslocked = false;\r\n }\r\n\r\n if (cap.cantouch || self.istouchcapable || opt.emulatetouch || cap.hasmstouch) {\r\n\r\n self.scrollmom = new ScrollMomentumClass2D(self);\r\n\r\n var delayedclick = null;\r\n\r\n self.ontouchstart = function (e) {\r\n\r\n if (self.locked) return false;\r\n\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return false; // need test on surface!!\r\n\r\n self.hasmoving = false;\r\n\r\n if (self.scrollmom.timer) {\r\n self.triggerScrollEnd();\r\n self.scrollmom.stop();\r\n }\r\n\r\n if (!self.railslocked) {\r\n var tg = self.getTarget(e);\r\n\r\n if (tg) {\r\n var skp = (/INPUT/i.test(tg.nodeName)) && (/range/i.test(tg.type));\r\n if (skp) return self.stopPropagation(e);\r\n }\r\n\r\n var ismouse = (e.type === \"mousedown\");\r\n\r\n if (!(\"clientX\" in e) && (\"changedTouches\" in e)) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n\r\n if (self.forcescreen) {\r\n var le = e;\r\n e = {\r\n \"original\": (e.original) ? e.original : e\r\n };\r\n e.clientX = le.screenX;\r\n e.clientY = le.screenY;\r\n }\r\n\r\n self.rail.drag = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n st: self.getScrollTop(),\r\n sl: self.getScrollLeft(),\r\n pt: 2,\r\n dl: false,\r\n tg: tg\r\n };\r\n\r\n if (self.ispage || !opt.directionlockdeadzone) {\r\n\r\n self.rail.drag.dl = \"f\";\r\n\r\n } else {\r\n\r\n var view = {\r\n w: $window.width(),\r\n h: $window.height()\r\n };\r\n\r\n var page = self.getContentSize();\r\n\r\n var maxh = page.h - view.h;\r\n var maxw = page.w - view.w;\r\n\r\n if (self.rail.scrollable && !self.railh.scrollable) self.rail.drag.ck = (maxh > 0) ? \"v\" : false;\r\n else if (!self.rail.scrollable && self.railh.scrollable) self.rail.drag.ck = (maxw > 0) ? \"h\" : false;\r\n else self.rail.drag.ck = false;\r\n\r\n }\r\n\r\n if (opt.emulatetouch && self.isiframe && cap.isie) {\r\n var wp = self.win.position();\r\n self.rail.drag.x += wp.left;\r\n self.rail.drag.y += wp.top;\r\n }\r\n\r\n self.hasmoving = false;\r\n self.lastmouseup = false;\r\n self.scrollmom.reset(e.clientX, e.clientY);\r\n\r\n if (tg&&ismouse) {\r\n\r\n var ip = /INPUT|SELECT|BUTTON|TEXTAREA/i.test(tg.nodeName);\r\n if (!ip) {\r\n if (cap.hasmousecapture) tg.setCapture();\r\n if (opt.emulatetouch) {\r\n if (tg.onclick && !(tg._onclick || false)) { // intercept DOM0 onclick event\r\n tg._onclick = tg.onclick;\r\n tg.onclick = function (e) {\r\n if (self.hasmoving) return false;\r\n tg._onclick.call(this, e);\r\n };\r\n }\r\n return self.cancelEvent(e);\r\n }\r\n return self.stopPropagation(e);\r\n }\r\n\r\n if (/SUBMIT|CANCEL|BUTTON/i.test($(tg).attr('type'))) {\r\n self.preventclick = {\r\n \"tg\": tg,\r\n \"click\": false\r\n };\r\n }\r\n\r\n }\r\n }\r\n\r\n };\r\n\r\n self.ontouchend = function (e) {\r\n\r\n if (!self.rail.drag) return true;\r\n\r\n if (self.rail.drag.pt == 2) {\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return false;\r\n\r\n self.rail.drag = false;\r\n\r\n var ismouse = (e.type === \"mouseup\");\r\n\r\n if (self.hasmoving) {\r\n self.scrollmom.doMomentum();\r\n self.lastmouseup = true;\r\n self.hideCursor();\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (ismouse) return self.cancelEvent(e);\r\n }\r\n\r\n }\r\n else if (self.rail.drag.pt == 1) {\r\n return self.onmouseup(e);\r\n }\r\n\r\n };\r\n\r\n var moveneedoffset = (opt.emulatetouch && self.isiframe && !cap.hasmousecapture);\r\n\r\n var locktollerance = opt.directionlockdeadzone * 0.3 | 0;\r\n\r\n self.ontouchmove = function (e, byiframe) {\r\n\r\n if (!self.rail.drag) return true;\r\n\r\n if (e.targetTouches && opt.preventmultitouchscrolling) {\r\n if (e.targetTouches.length > 1) return true; // multitouch\r\n }\r\n\r\n //if (e.pointerType && e.pointerType != 2 && e.pointerType != \"touch\") return false;\r\n if (e.pointerType && (e.pointerType === 'mouse' || e.pointerType === e.MSPOINTER_TYPE_MOUSE)) return true;\r\n\r\n if (self.rail.drag.pt == 2) {\r\n\r\n if ((\"changedTouches\" in e)) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n\r\n var ofy, ofx;\r\n ofx = ofy = 0;\r\n\r\n if (moveneedoffset && !byiframe) {\r\n var wp = self.win.position();\r\n ofx = -wp.left;\r\n ofy = -wp.top;\r\n }\r\n\r\n var fy = e.clientY + ofy;\r\n var my = (fy - self.rail.drag.y);\r\n var fx = e.clientX + ofx;\r\n var mx = (fx - self.rail.drag.x);\r\n\r\n var ny = self.rail.drag.st - my;\r\n\r\n if (self.ishwscroll && opt.bouncescroll) {\r\n if (ny < 0) {\r\n ny = Math.round(ny / 2);\r\n } else if (ny > self.page.maxh) {\r\n ny = self.page.maxh + Math.round((ny - self.page.maxh) / 2);\r\n }\r\n } else {\r\n if (ny < 0) {\r\n ny = 0;\r\n fy = 0;\r\n }\r\n else if (ny > self.page.maxh) {\r\n ny = self.page.maxh;\r\n fy = 0;\r\n }\r\n if (fy === 0 && !self.hasmoving) {\r\n if (!self.ispage) self.rail.drag = false;\r\n return true;\r\n }\r\n }\r\n\r\n var nx = self.getScrollLeft();\r\n\r\n if (self.railh && self.railh.scrollable) {\r\n nx = (self.isrtlmode) ? mx - self.rail.drag.sl : self.rail.drag.sl - mx;\r\n\r\n if (self.ishwscroll && opt.bouncescroll) {\r\n if (nx < 0) {\r\n nx = Math.round(nx / 2);\r\n } else if (nx > self.page.maxw) {\r\n nx = self.page.maxw + Math.round((nx - self.page.maxw) / 2);\r\n }\r\n } else {\r\n if (nx < 0) {\r\n nx = 0;\r\n fx = 0;\r\n }\r\n if (nx > self.page.maxw) {\r\n nx = self.page.maxw;\r\n fx = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n if (!self.hasmoving) {\r\n\r\n if (self.rail.drag.y === e.clientY && self.rail.drag.x === e.clientX) return self.cancelEvent(e); // prevent first useless move event \r\n\r\n var ay = Math.abs(my);\r\n var ax = Math.abs(mx);\r\n var dz = opt.directionlockdeadzone;\r\n\r\n if (!self.rail.drag.ck) {\r\n if (ay > dz && ax > dz) self.rail.drag.dl = \"f\";\r\n else if (ay > dz) self.rail.drag.dl = (ax > locktollerance) ? \"f\" : \"v\";\r\n else if (ax > dz) self.rail.drag.dl = (ay > locktollerance) ? \"f\" : \"h\";\r\n }\r\n else if (self.rail.drag.ck == \"v\") {\r\n if (ax > dz && ay <= locktollerance) {\r\n self.rail.drag = false;\r\n }\r\n else if (ay > dz) self.rail.drag.dl = \"v\";\r\n\r\n }\r\n else if (self.rail.drag.ck == \"h\") {\r\n\r\n if (ay > dz && ax <= locktollerance) {\r\n self.rail.drag = false;\r\n }\r\n else if (ax > dz) self.rail.drag.dl = \"h\";\r\n\r\n }\r\n\r\n if (!self.rail.drag.dl) return self.cancelEvent(e);\r\n\r\n self.triggerScrollStart(e.clientX, e.clientY, 0, 0, 0);\r\n self.hasmoving = true;\r\n }\r\n\r\n if (self.preventclick && !self.preventclick.click) {\r\n self.preventclick.click = self.preventclick.tg.onclick || false;\r\n self.preventclick.tg.onclick = self.onpreventclick;\r\n }\r\n\r\n if (self.rail.drag.dl) {\r\n if (self.rail.drag.dl == \"v\") nx = self.rail.drag.sl;\r\n else if (self.rail.drag.dl == \"h\") ny = self.rail.drag.st;\r\n }\r\n\r\n self.synched(\"touchmove\", function () {\r\n if (self.rail.drag && (self.rail.drag.pt == 2)) {\r\n if (self.prepareTransition) self.resetTransition();\r\n if (self.rail.scrollable) self.setScrollTop(ny);\r\n self.scrollmom.update(fx, fy);\r\n if (self.railh && self.railh.scrollable) {\r\n self.setScrollLeft(nx);\r\n self.showCursor(ny, nx);\r\n } else {\r\n self.showCursor(ny);\r\n }\r\n if (cap.isie10) _doc.selection.clear();\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n\r\n }\r\n else if (self.rail.drag.pt == 1) { // drag on cursor\r\n return self.onmousemove(e);\r\n }\r\n\r\n };\r\n\r\n self.ontouchstartCursor = function (e, hronly) {\r\n if (self.rail.drag && self.rail.drag.pt != 3) return;\r\n if (self.locked) return self.cancelEvent(e);\r\n self.cancelScroll();\r\n self.rail.drag = {\r\n x: e.touches[0].clientX,\r\n y: e.touches[0].clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n pt: 3,\r\n hr: (!!hronly)\r\n };\r\n var tg = self.getTarget(e);\r\n if (!self.ispage && cap.hasmousecapture) tg.setCapture();\r\n if (self.isiframe && !cap.hasmousecapture) {\r\n self.saved.csspointerevents = self.doc.css(\"pointer-events\");\r\n self.css(self.doc, { \"pointer-events\": \"none\" });\r\n }\r\n return self.cancelEvent(e);\r\n };\r\n\r\n self.ontouchendCursor = function (e) {\r\n if (self.rail.drag) {\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (self.isiframe && !cap.hasmousecapture) self.doc.css(\"pointer-events\", self.saved.csspointerevents);\r\n if (self.rail.drag.pt != 3) return;\r\n self.rail.drag = false;\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.ontouchmoveCursor = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt != 3) return;\r\n\r\n self.cursorfreezed = true;\r\n\r\n if (self.rail.drag.hr) {\r\n self.scroll.x = self.rail.drag.sx + (e.touches[0].clientX - self.rail.drag.x);\r\n if (self.scroll.x < 0) self.scroll.x = 0;\r\n var mw = self.scrollvaluemaxw;\r\n if (self.scroll.x > mw) self.scroll.x = mw;\r\n } else {\r\n self.scroll.y = self.rail.drag.sy + (e.touches[0].clientY - self.rail.drag.y);\r\n if (self.scroll.y < 0) self.scroll.y = 0;\r\n var my = self.scrollvaluemax;\r\n if (self.scroll.y > my) self.scroll.y = my;\r\n }\r\n\r\n self.synched('touchmove', function () {\r\n if (self.rail.drag && (self.rail.drag.pt == 3)) {\r\n self.showCursor();\r\n if (self.rail.drag.hr) self.doScrollLeft(Math.round(self.scroll.x * self.scrollratio.x), opt.cursordragspeed);\r\n else self.doScrollTop(Math.round(self.scroll.y * self.scrollratio.y), opt.cursordragspeed);\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n }\r\n\r\n };\r\n\r\n }\r\n\r\n self.onmousedown = function (e, hronly) {\r\n if (self.rail.drag && self.rail.drag.pt != 1) return;\r\n if (self.railslocked) return self.cancelEvent(e);\r\n self.cancelScroll();\r\n self.rail.drag = {\r\n x: e.clientX,\r\n y: e.clientY,\r\n sx: self.scroll.x,\r\n sy: self.scroll.y,\r\n pt: 1,\r\n hr: hronly || false\r\n };\r\n var tg = self.getTarget(e);\r\n\r\n if (cap.hasmousecapture) tg.setCapture();\r\n if (self.isiframe && !cap.hasmousecapture) {\r\n self.saved.csspointerevents = self.doc.css(\"pointer-events\");\r\n self.css(self.doc, {\r\n \"pointer-events\": \"none\"\r\n });\r\n }\r\n self.hasmoving = false;\r\n return self.cancelEvent(e);\r\n };\r\n\r\n self.onmouseup = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt != 1) return true;\r\n\r\n if (cap.hasmousecapture) _doc.releaseCapture();\r\n if (self.isiframe && !cap.hasmousecapture) self.doc.css(\"pointer-events\", self.saved.csspointerevents);\r\n self.rail.drag = false;\r\n self.cursorfreezed = false;\r\n if (self.hasmoving) self.triggerScrollEnd();\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.onmousemove = function (e) {\r\n if (self.rail.drag) {\r\n if (self.rail.drag.pt !== 1) return;\r\n\r\n if (cap.ischrome && e.which === 0) return self.onmouseup(e);\r\n\r\n self.cursorfreezed = true;\r\n\r\n if (!self.hasmoving) self.triggerScrollStart(e.clientX, e.clientY, 0, 0, 0);\r\n\r\n self.hasmoving = true;\r\n\r\n if (self.rail.drag.hr) {\r\n self.scroll.x = self.rail.drag.sx + (e.clientX - self.rail.drag.x);\r\n if (self.scroll.x < 0) self.scroll.x = 0;\r\n var mw = self.scrollvaluemaxw;\r\n if (self.scroll.x > mw) self.scroll.x = mw;\r\n } else {\r\n self.scroll.y = self.rail.drag.sy + (e.clientY - self.rail.drag.y);\r\n if (self.scroll.y < 0) self.scroll.y = 0;\r\n var my = self.scrollvaluemax;\r\n if (self.scroll.y > my) self.scroll.y = my;\r\n }\r\n\r\n self.synched('mousemove', function () {\r\n\r\n if (self.cursorfreezed) {\r\n self.showCursor();\r\n\r\n if (self.rail.drag.hr) {\r\n self.scrollLeft(Math.round(self.scroll.x * self.scrollratio.x));\r\n } else {\r\n self.scrollTop(Math.round(self.scroll.y * self.scrollratio.y));\r\n }\r\n\r\n }\r\n });\r\n\r\n return self.cancelEvent(e);\r\n }\r\n else {\r\n self.checkarea = 0;\r\n }\r\n };\r\n\r\n if (cap.cantouch || opt.emulatetouch) {\r\n\r\n self.onpreventclick = function (e) {\r\n if (self.preventclick) {\r\n self.preventclick.tg.onclick = self.preventclick.click;\r\n self.preventclick = false;\r\n return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n self.onclick = (cap.isios) ? false : function (e) { // it needs to check IE11 ???\r\n if (self.lastmouseup) {\r\n self.lastmouseup = false;\r\n return self.cancelEvent(e);\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n if (opt.grabcursorenabled && cap.cursorgrabvalue) {\r\n self.css((self.ispage) ? self.doc : self.win, {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n self.css(self.rail, {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n }\r\n\r\n } else {\r\n\r\n var checkSelectionScroll = function (e) {\r\n if (!self.selectiondrag) return;\r\n\r\n if (e) {\r\n var ww = self.win.outerHeight();\r\n var df = (e.pageY - self.selectiondrag.top);\r\n if (df > 0 && df < ww) df = 0;\r\n if (df >= ww) df -= ww;\r\n self.selectiondrag.df = df;\r\n }\r\n if (self.selectiondrag.df === 0) return;\r\n\r\n var rt = -(self.selectiondrag.df*2/6)|0;\r\n self.doScrollBy(rt);\r\n\r\n self.debounced(\"doselectionscroll\", function () {\r\n checkSelectionScroll();\r\n }, 50);\r\n };\r\n\r\n if (\"getSelection\" in _doc) { // A grade - Major browsers\r\n self.hasTextSelected = function () {\r\n return (_doc.getSelection().rangeCount > 0);\r\n };\r\n } else if (\"selection\" in _doc) { //IE9-\r\n self.hasTextSelected = function () {\r\n return (_doc.selection.type != \"None\");\r\n };\r\n } else {\r\n self.hasTextSelected = function () { // no support\r\n return false;\r\n };\r\n }\r\n\r\n self.onselectionstart = function (e) {\r\n // More testing - severe chrome issues \r\n /* \r\n if (!self.haswrapper&&(e.which&&e.which==2)) { // fool browser to manage middle button scrolling\r\n self.win.css({'overflow':'auto'});\r\n setTimeout(function(){\r\n self.win.css({'overflow':'hidden'});\r\n },10); \r\n return true;\r\n } \r\n */\r\n if (self.ispage) return;\r\n self.selectiondrag = self.win.offset();\r\n };\r\n\r\n self.onselectionend = function (e) {\r\n self.selectiondrag = false;\r\n };\r\n self.onselectiondrag = function (e) {\r\n if (!self.selectiondrag) return;\r\n if (self.hasTextSelected()) self.debounced(\"selectionscroll\", function () {\r\n checkSelectionScroll(e);\r\n }, 250);\r\n };\r\n }\r\n\r\n if (cap.hasw3ctouch) { //IE11+\r\n self.css((self.ispage) ? $(\"html\") : self.win, { 'touch-action': 'none' });\r\n self.css(self.rail, {\r\n 'touch-action': 'none'\r\n });\r\n self.css(self.cursor, {\r\n 'touch-action': 'none'\r\n });\r\n self.bind(self.win, \"pointerdown\", self.ontouchstart);\r\n self.bind(_doc, \"pointerup\", self.ontouchend);\r\n self.delegate(_doc, \"pointermove\", self.ontouchmove);\r\n } else if (cap.hasmstouch) { //IE10\r\n self.css((self.ispage) ? $(\"html\") : self.win, { '-ms-touch-action': 'none' });\r\n self.css(self.rail, {\r\n '-ms-touch-action': 'none'\r\n });\r\n self.css(self.cursor, {\r\n '-ms-touch-action': 'none'\r\n });\r\n self.bind(self.win, \"MSPointerDown\", self.ontouchstart);\r\n self.bind(_doc, \"MSPointerUp\", self.ontouchend);\r\n self.delegate(_doc, \"MSPointerMove\", self.ontouchmove);\r\n self.bind(self.cursor, \"MSGestureHold\", function (e) {\r\n e.preventDefault();\r\n });\r\n self.bind(self.cursor, \"contextmenu\", function (e) {\r\n e.preventDefault();\r\n });\r\n } else if (cap.cantouch) { // smartphones/touch devices\r\n self.bind(self.win, \"touchstart\", self.ontouchstart, false, true);\r\n self.bind(_doc, \"touchend\", self.ontouchend, false, true);\r\n self.bind(_doc, \"touchcancel\", self.ontouchend, false, true);\r\n self.delegate(_doc, \"touchmove\", self.ontouchmove, false, true);\r\n }\r\n\r\n if (opt.emulatetouch) {\r\n self.bind(self.win, \"mousedown\", self.ontouchstart, false, true);\r\n self.bind(_doc, \"mouseup\", self.ontouchend, false, true);\r\n self.bind(_doc, \"mousemove\", self.ontouchmove, false, true);\r\n }\r\n\r\n if (opt.cursordragontouch || (!cap.cantouch && !opt.emulatetouch)) {\r\n\r\n self.rail.css({\r\n cursor: \"default\"\r\n });\r\n self.railh && self.railh.css({\r\n cursor: \"default\"\r\n });\r\n\r\n self.jqbind(self.rail, \"mouseenter\", function () {\r\n if (!self.ispage && !self.win.is(\":visible\")) return false;\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.rail, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n if (opt.sensitiverail) {\r\n self.bind(self.rail, \"click\", function (e) {\r\n self.doRailClick(e, false, false);\r\n });\r\n self.bind(self.rail, \"dblclick\", function (e) {\r\n self.doRailClick(e, true, false);\r\n });\r\n self.bind(self.cursor, \"click\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n self.bind(self.cursor, \"dblclick\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n }\r\n\r\n if (self.railh) {\r\n self.jqbind(self.railh, \"mouseenter\", function () {\r\n if (!self.ispage && !self.win.is(\":visible\")) return false;\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.railh, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n if (opt.sensitiverail) {\r\n self.bind(self.railh, \"click\", function (e) {\r\n self.doRailClick(e, false, true);\r\n });\r\n self.bind(self.railh, \"dblclick\", function (e) {\r\n self.doRailClick(e, true, true);\r\n });\r\n self.bind(self.cursorh, \"click\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n self.bind(self.cursorh, \"dblclick\", function (e) {\r\n self.cancelEvent(e);\r\n });\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (opt.cursordragontouch && (this.istouchcapable || cap.cantouch)) {\r\n self.bind(self.cursor, \"touchstart\", self.ontouchstartCursor);\r\n self.bind(self.cursor, \"touchmove\", self.ontouchmoveCursor);\r\n self.bind(self.cursor, \"touchend\", self.ontouchendCursor);\r\n self.cursorh && self.bind(self.cursorh, \"touchstart\", function (e) {\r\n self.ontouchstartCursor(e, true);\r\n });\r\n self.cursorh && self.bind(self.cursorh, \"touchmove\", self.ontouchmoveCursor);\r\n self.cursorh && self.bind(self.cursorh, \"touchend\", self.ontouchendCursor);\r\n }\r\n\r\n// if (!cap.cantouch && !opt.emulatetouch) {\r\n if (!opt.emulatetouch && !cap.isandroid && !cap.isios) {\r\n\r\n self.bind((cap.hasmousecapture) ? self.win : _doc, \"mouseup\", self.onmouseup);\r\n self.bind(_doc, \"mousemove\", self.onmousemove);\r\n if (self.onclick) self.bind(_doc, \"click\", self.onclick);\r\n\r\n self.bind(self.cursor, \"mousedown\", self.onmousedown);\r\n self.bind(self.cursor, \"mouseup\", self.onmouseup);\r\n\r\n if (self.railh) {\r\n self.bind(self.cursorh, \"mousedown\", function (e) {\r\n self.onmousedown(e, true);\r\n });\r\n self.bind(self.cursorh, \"mouseup\", self.onmouseup);\r\n }\r\n\r\n if (!self.ispage && opt.enablescrollonselection) {\r\n self.bind(self.win[0], \"mousedown\", self.onselectionstart);\r\n self.bind(_doc, \"mouseup\", self.onselectionend);\r\n self.bind(self.cursor, \"mouseup\", self.onselectionend);\r\n if (self.cursorh) self.bind(self.cursorh, \"mouseup\", self.onselectionend);\r\n self.bind(_doc, \"mousemove\", self.onselectiondrag);\r\n }\r\n\r\n if (self.zoom) {\r\n self.jqbind(self.zoom, \"mouseenter\", function () {\r\n if (self.canshowonmouseevent) self.showCursor();\r\n self.rail.active = true;\r\n });\r\n self.jqbind(self.zoom, \"mouseleave\", function () {\r\n self.rail.active = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n }\r\n\r\n } else {\r\n\r\n self.bind((cap.hasmousecapture) ? self.win : _doc, \"mouseup\", self.ontouchend);\r\n if (self.onclick) self.bind(_doc, \"click\", self.onclick);\r\n\r\n if (opt.cursordragontouch) {\r\n self.bind(self.cursor, \"mousedown\", self.onmousedown);\r\n self.bind(self.cursor, \"mouseup\", self.onmouseup);\r\n self.cursorh && self.bind(self.cursorh, \"mousedown\", function (e) {\r\n self.onmousedown(e, true);\r\n });\r\n self.cursorh && self.bind(self.cursorh, \"mouseup\", self.onmouseup);\r\n } else {\r\n self.bind(self.rail, \"mousedown\", function (e) { e.preventDefault(); }); // prevent text selection \r\n self.railh && self.bind(self.railh, \"mousedown\", function (e) { e.preventDefault(); });\r\n }\r\n\r\n }\r\n\r\n\r\n if (opt.enablemousewheel) {\r\n if (!self.isiframe) self.mousewheel((cap.isie && self.ispage) ? _doc : self.win, self.onmousewheel);\r\n self.mousewheel(self.rail, self.onmousewheel);\r\n if (self.railh) self.mousewheel(self.railh, self.onmousewheelhr);\r\n }\r\n\r\n if (!self.ispage && !cap.cantouch && !(/HTML|^BODY/.test(self.win[0].nodeName))) {\r\n if (!self.win.attr(\"tabindex\")) self.win.attr({\r\n \"tabindex\": ++tabindexcounter\r\n });\r\n\r\n self.bind(self.win, \"focus\", function (e) { // better using native events\r\n domfocus = (self.getTarget(e)).id || self.getTarget(e) || false;\r\n self.hasfocus = true;\r\n if (self.canshowonmouseevent) self.noticeCursor();\r\n });\r\n self.bind(self.win, \"blur\", function (e) { // *\r\n domfocus = false;\r\n self.hasfocus = false;\r\n });\r\n\r\n self.bind(self.win, \"mouseenter\", function (e) { // *\r\n mousefocus = (self.getTarget(e)).id || self.getTarget(e) || false;\r\n self.hasmousefocus = true;\r\n if (self.canshowonmouseevent) self.noticeCursor();\r\n });\r\n self.bind(self.win, \"mouseleave\", function (e) { // * \r\n mousefocus = false;\r\n self.hasmousefocus = false;\r\n if (!self.rail.drag) self.hideCursor();\r\n });\r\n\r\n }\r\n\r\n\r\n //Thanks to http://www.quirksmode.org !!\r\n self.onkeypress = function (e) {\r\n if (self.railslocked && self.page.maxh === 0) return true;\r\n\r\n e = e || _win.event;\r\n var tg = self.getTarget(e);\r\n if (tg && /INPUT|TEXTAREA|SELECT|OPTION/.test(tg.nodeName)) {\r\n var tp = tg.getAttribute('type') || tg.type || false;\r\n if ((!tp) || !(/submit|button|cancel/i.tp)) return true;\r\n }\r\n\r\n if ($(tg).attr('contenteditable')) return true;\r\n\r\n if (self.hasfocus || (self.hasmousefocus && !domfocus) || (self.ispage && !domfocus && !mousefocus)) {\r\n var key = e.keyCode;\r\n\r\n if (self.railslocked && key != 27) return self.cancelEvent(e);\r\n\r\n var ctrl = e.ctrlKey || false;\r\n var shift = e.shiftKey || false;\r\n\r\n var ret = false;\r\n switch (key) {\r\n case 38:\r\n case 63233: //safari\r\n self.doScrollBy(24 * 3);\r\n ret = true;\r\n break;\r\n case 40:\r\n case 63235: //safari\r\n self.doScrollBy(-24 * 3);\r\n ret = true;\r\n break;\r\n case 37:\r\n case 63232: //safari\r\n if (self.railh) {\r\n (ctrl) ? self.doScrollLeft(0) : self.doScrollLeftBy(24 * 3);\r\n ret = true;\r\n }\r\n break;\r\n case 39:\r\n case 63234: //safari\r\n if (self.railh) {\r\n (ctrl) ? self.doScrollLeft(self.page.maxw) : self.doScrollLeftBy(-24 * 3);\r\n ret = true;\r\n }\r\n break;\r\n case 33:\r\n case 63276: // safari\r\n self.doScrollBy(self.view.h);\r\n ret = true;\r\n break;\r\n case 34:\r\n case 63277: // safari\r\n self.doScrollBy(-self.view.h);\r\n ret = true;\r\n break;\r\n case 36:\r\n case 63273: // safari \r\n (self.railh && ctrl) ? self.doScrollPos(0, 0) : self.doScrollTo(0);\r\n ret = true;\r\n break;\r\n case 35:\r\n case 63275: // safari\r\n (self.railh && ctrl) ? self.doScrollPos(self.page.maxw, self.page.maxh) : self.doScrollTo(self.page.maxh);\r\n ret = true;\r\n break;\r\n case 32:\r\n if (opt.spacebarenabled) {\r\n (shift) ? self.doScrollBy(self.view.h) : self.doScrollBy(-self.view.h);\r\n ret = true;\r\n }\r\n break;\r\n case 27: // ESC\r\n if (self.zoomactive) {\r\n self.doZoom();\r\n ret = true;\r\n }\r\n break;\r\n }\r\n if (ret) return self.cancelEvent(e);\r\n }\r\n };\r\n\r\n if (opt.enablekeyboard) self.bind(_doc, (cap.isopera && !cap.isopera12) ? \"keypress\" : \"keydown\", self.onkeypress);\r\n\r\n self.bind(_doc, \"keydown\", function (e) {\r\n var ctrl = e.ctrlKey || false;\r\n if (ctrl) self.wheelprevented = true;\r\n });\r\n self.bind(_doc, \"keyup\", function (e) {\r\n var ctrl = e.ctrlKey || false;\r\n if (!ctrl) self.wheelprevented = false;\r\n });\r\n self.bind(_win, \"blur\", function (e) {\r\n self.wheelprevented = false;\r\n });\r\n\r\n self.bind(_win, 'resize', self.onscreenresize);\r\n self.bind(_win, 'orientationchange', self.onscreenresize);\r\n\r\n self.bind(_win, \"load\", self.lazyResize);\r\n\r\n if (cap.ischrome && !self.ispage && !self.haswrapper) { //chrome void scrollbar bug - it persists in version 26\r\n var tmp = self.win.attr(\"style\");\r\n var ww = parseFloat(self.win.css(\"width\")) + 1;\r\n self.win.css('width', ww);\r\n self.synched(\"chromefix\", function () {\r\n self.win.attr(\"style\", tmp);\r\n });\r\n }\r\n\r\n\r\n // Trying a cross-browser implementation - good luck!\r\n\r\n self.onAttributeChange = function (e) {\r\n self.lazyResize(self.isieold ? 250 : 30);\r\n };\r\n\r\n if (opt.enableobserver) {\r\n\r\n if ((!self.isie11) && (ClsMutationObserver !== false)) { // IE11 crashes #568\r\n self.observerbody = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(function (mut) {\r\n if (mut.type == \"attributes\") {\r\n return ($body.hasClass(\"modal-open\") && $body.hasClass(\"modal-dialog\") && !$.contains($('.modal-dialog')[0], self.doc[0])) ? self.hide() : self.show(); // Support for Bootstrap modal; Added check if the nice scroll element is inside a modal\r\n }\r\n });\r\n if (self.me.clientWidth != self.page.width || self.me.clientHeight != self.page.height) return self.lazyResize(30);\r\n });\r\n self.observerbody.observe(_doc.body, {\r\n childList: true,\r\n subtree: true,\r\n characterData: false,\r\n attributes: true,\r\n attributeFilter: ['class']\r\n });\r\n }\r\n\r\n if (!self.ispage && !self.haswrapper) {\r\n\r\n var _dom = self.win[0];\r\n\r\n // redesigned MutationObserver for Chrome18+/Firefox14+/iOS6+ with support for: remove div, add/remove content\r\n if (ClsMutationObserver !== false) {\r\n self.observer = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(self.onAttributeChange);\r\n });\r\n self.observer.observe(_dom, {\r\n childList: true,\r\n characterData: false,\r\n attributes: true,\r\n subtree: false\r\n });\r\n self.observerremover = new ClsMutationObserver(function (mutations) {\r\n mutations.forEach(function (mo) {\r\n if (mo.removedNodes.length > 0) {\r\n for (var dd in mo.removedNodes) {\r\n if (!!self && (mo.removedNodes[dd] === _dom)) return self.remove();\r\n }\r\n }\r\n });\r\n });\r\n self.observerremover.observe(_dom.parentNode, {\r\n childList: true,\r\n characterData: false,\r\n attributes: false,\r\n subtree: false\r\n });\r\n } else {\r\n self.bind(_dom, (cap.isie && !cap.isie9) ? \"propertychange\" : \"DOMAttrModified\", self.onAttributeChange);\r\n if (cap.isie9) _dom.attachEvent(\"onpropertychange\", self.onAttributeChange); //IE9 DOMAttrModified bug\r\n self.bind(_dom, \"DOMNodeRemoved\", function (e) {\r\n if (e.target === _dom) self.remove();\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n //\r\n\r\n if (!self.ispage && opt.boxzoom) self.bind(_win, \"resize\", self.resizeZoom);\r\n if (self.istextarea) {\r\n self.bind(self.win, \"keydown\", self.lazyResize);\r\n self.bind(self.win, \"mouseup\", self.lazyResize);\r\n }\r\n\r\n self.lazyResize(30);\r\n\r\n }\r\n\r\n if (this.doc[0].nodeName == 'IFRAME') {\r\n var oniframeload = function () {\r\n self.iframexd = false;\r\n var doc;\r\n try {\r\n doc = 'contentDocument' in this ? this.contentDocument : this.contentWindow._doc;\r\n var a = doc.domain;\r\n } catch (e) {\r\n self.iframexd = true;\r\n doc = false;\r\n }\r\n\r\n if (self.iframexd) {\r\n if (\"console\" in _win) console.log('NiceScroll error: policy restriced iframe');\r\n return true; //cross-domain - I can't manage this \r\n }\r\n\r\n self.forcescreen = true;\r\n\r\n if (self.isiframe) {\r\n self.iframe = {\r\n \"doc\": $(doc),\r\n \"html\": self.doc.contents().find('html')[0],\r\n \"body\": self.doc.contents().find('body')[0]\r\n };\r\n self.getContentSize = function () {\r\n return {\r\n w: Math.max(self.iframe.html.scrollWidth, self.iframe.body.scrollWidth),\r\n h: Math.max(self.iframe.html.scrollHeight, self.iframe.body.scrollHeight)\r\n };\r\n };\r\n self.docscroll = $(self.iframe.body);\r\n }\r\n\r\n if (!cap.isios && opt.iframeautoresize && !self.isiframe) {\r\n self.win.scrollTop(0); // reset position\r\n self.doc.height(\"\"); //reset height to fix browser bug\r\n var hh = Math.max(doc.getElementsByTagName('html')[0].scrollHeight, doc.body.scrollHeight);\r\n self.doc.height(hh);\r\n }\r\n self.lazyResize(30);\r\n\r\n self.css($(self.iframe.body), _scrollyhidden);\r\n\r\n if (cap.isios && self.haswrapper) {\r\n self.css($(doc.body), {\r\n '-webkit-transform': 'translate3d(0,0,0)'\r\n }); // avoid iFrame content clipping - thanks to http://blog.derraab.com/2012/04/02/avoid-iframe-content-clipping-with-css-transform-on-ios/\r\n }\r\n\r\n if ('contentWindow' in this) {\r\n self.bind(this.contentWindow, \"scroll\", self.onscroll); //IE8 & minor\r\n } else {\r\n self.bind(doc, \"scroll\", self.onscroll);\r\n }\r\n\r\n if (opt.enablemousewheel) {\r\n self.mousewheel(doc, self.onmousewheel);\r\n }\r\n\r\n if (opt.enablekeyboard) self.bind(doc, (cap.isopera) ? \"keypress\" : \"keydown\", self.onkeypress);\r\n\r\n if (cap.cantouch) {\r\n self.bind(doc, \"touchstart\", self.ontouchstart);\r\n self.bind(doc, \"touchmove\", self.ontouchmove);\r\n }\r\n else if (opt.emulatetouch) {\r\n self.bind(doc, \"mousedown\", self.ontouchstart);\r\n self.bind(doc, \"mousemove\", function (e) {\r\n return self.ontouchmove(e, true);\r\n });\r\n if (opt.grabcursorenabled && cap.cursorgrabvalue) self.css($(doc.body), {\r\n 'cursor': cap.cursorgrabvalue\r\n });\r\n }\r\n\r\n self.bind(doc, \"mouseup\", self.ontouchend);\r\n\r\n if (self.zoom) {\r\n if (opt.dblclickzoom) self.bind(doc, 'dblclick', self.doZoom);\r\n if (self.ongesturezoom) self.bind(doc, \"gestureend\", self.ongesturezoom);\r\n }\r\n };\r\n\r\n if (this.doc[0].readyState && this.doc[0].readyState === \"complete\") {\r\n setTimeout(function () {\r\n oniframeload.call(self.doc[0], false);\r\n }, 500);\r\n }\r\n self.bind(this.doc, \"load\", oniframeload);\r\n\r\n }\r\n\r\n };\r\n\r\n this.showCursor = function (py, px) {\r\n if (self.cursortimeout) {\r\n clearTimeout(self.cursortimeout);\r\n self.cursortimeout = 0;\r\n }\r\n if (!self.rail) return;\r\n if (self.autohidedom) {\r\n self.autohidedom.stop().css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n self.cursoractive = true;\r\n }\r\n\r\n if (!self.rail.drag || self.rail.drag.pt != 1) {\r\n if (py !== undefined && py !== false) {\r\n self.scroll.y = (py / self.scrollratio.y) | 0;\r\n }\r\n if (px !== undefined) {\r\n self.scroll.x = (px / self.scrollratio.x) | 0;\r\n }\r\n }\r\n\r\n self.cursor.css({\r\n height: self.cursorheight,\r\n top: self.scroll.y\r\n });\r\n if (self.cursorh) {\r\n var lx = (self.hasreversehr) ? self.scrollvaluemaxw - self.scroll.x : self.scroll.x;\r\n self.cursorh.css({\r\n width: self.cursorwidth,\r\n left: (!self.rail.align && self.rail.visibility) ? lx + self.rail.width : lx\r\n });\r\n self.cursoractive = true;\r\n }\r\n\r\n if (self.zoom) self.zoom.stop().css({\r\n opacity: opt.cursoropacitymax\r\n });\r\n };\r\n\r\n this.hideCursor = function (tm) {\r\n if (self.cursortimeout) return;\r\n if (!self.rail) return;\r\n if (!self.autohidedom) return;\r\n\r\n if (self.hasmousefocus && opt.autohidemode === \"leave\") return;\r\n self.cursortimeout = setTimeout(function () {\r\n if (!self.rail.active || !self.showonmouseevent) {\r\n self.autohidedom.stop().animate({\r\n opacity: opt.cursoropacitymin\r\n });\r\n if (self.zoom) self.zoom.stop().animate({\r\n opacity: opt.cursoropacitymin\r\n });\r\n self.cursoractive = false;\r\n }\r\n self.cursortimeout = 0;\r\n }, tm || opt.hidecursordelay);\r\n };\r\n\r\n this.noticeCursor = function (tm, py, px) {\r\n self.showCursor(py, px);\r\n if (!self.rail.active) self.hideCursor(tm);\r\n };\r\n\r\n this.getContentSize =\r\n (self.ispage) ?\r\n function () {\r\n return {\r\n w: Math.max(_doc.body.scrollWidth, _doc.documentElement.scrollWidth),\r\n h: Math.max(_doc.body.scrollHeight, _doc.documentElement.scrollHeight)\r\n };\r\n } : (self.haswrapper) ?\r\n function () {\r\n return {\r\n w: self.doc[0].offsetWidth,\r\n h: self.doc[0].offsetHeight\r\n };\r\n } : function () {\r\n return {\r\n w: self.docscroll[0].scrollWidth,\r\n h: self.docscroll[0].scrollHeight\r\n };\r\n };\r\n\r\n this.onResize = function (e, page) {\r\n\r\n if (!self || !self.win) return false;\r\n\r\n var premaxh = self.page.maxh,\r\n premaxw = self.page.maxw,\r\n previewh = self.view.h,\r\n previeww = self.view.w;\r\n\r\n self.view = {\r\n w: (self.ispage) ? self.win.width() : self.win[0].clientWidth,\r\n h: (self.ispage) ? self.win.height() : self.win[0].clientHeight\r\n };\r\n\r\n self.page = (page) ? page : self.getContentSize();\r\n\r\n self.page.maxh = Math.max(0, self.page.h - self.view.h);\r\n self.page.maxw = Math.max(0, self.page.w - self.view.w);\r\n\r\n if ((self.page.maxh == premaxh) && (self.page.maxw == premaxw) && (self.view.w == previeww) && (self.view.h == previewh)) {\r\n // test position \r\n if (!self.ispage) {\r\n var pos = self.win.offset();\r\n if (self.lastposition) {\r\n var lst = self.lastposition;\r\n if ((lst.top == pos.top) && (lst.left == pos.left)) return self; //nothing to do \r\n }\r\n self.lastposition = pos;\r\n } else {\r\n return self; //nothing to do\r\n }\r\n }\r\n\r\n if (self.page.maxh === 0) {\r\n self.hideRail();\r\n self.scrollvaluemax = 0;\r\n self.scroll.y = 0;\r\n self.scrollratio.y = 0;\r\n self.cursorheight = 0;\r\n self.setScrollTop(0);\r\n if (self.rail) self.rail.scrollable = false;\r\n } else {\r\n self.page.maxh -= (opt.railpadding.top + opt.railpadding.bottom);\r\n self.rail.scrollable = true;\r\n }\r\n\r\n if (self.page.maxw === 0) {\r\n self.hideRailHr();\r\n self.scrollvaluemaxw = 0;\r\n self.scroll.x = 0;\r\n self.scrollratio.x = 0;\r\n self.cursorwidth = 0;\r\n self.setScrollLeft(0);\r\n if (self.railh) {\r\n self.railh.scrollable = false;\r\n }\r\n } else {\r\n self.page.maxw -= (opt.railpadding.left + opt.railpadding.right);\r\n if (self.railh) self.railh.scrollable = (opt.horizrailenabled);\r\n }\r\n\r\n self.railslocked = (self.locked) || ((self.page.maxh === 0) && (self.page.maxw === 0));\r\n if (self.railslocked) {\r\n if (!self.ispage) self.updateScrollBar(self.view);\r\n return false;\r\n }\r\n\r\n if (!self.hidden) {\r\n if (!self.rail.visibility) self.showRail();\r\n if (self.railh && !self.railh.visibility) self.showRailHr();\r\n }\r\n\r\n if (self.istextarea && self.win.css('resize') && self.win.css('resize') != 'none') self.view.h -= 20;\r\n\r\n self.cursorheight = Math.min(self.view.h, Math.round(self.view.h * (self.view.h / self.page.h)));\r\n self.cursorheight = (opt.cursorfixedheight) ? opt.cursorfixedheight : Math.max(opt.cursorminheight, self.cursorheight);\r\n\r\n self.cursorwidth = Math.min(self.view.w, Math.round(self.view.w * (self.view.w / self.page.w)));\r\n self.cursorwidth = (opt.cursorfixedheight) ? opt.cursorfixedheight : Math.max(opt.cursorminheight, self.cursorwidth);\r\n\r\n self.scrollvaluemax = self.view.h - self.cursorheight - (opt.railpadding.top + opt.railpadding.bottom);\r\n if (!self.hasborderbox) self.scrollvaluemax -= self.cursor[0].offsetHeight - self.cursor[0].clientHeight;\r\n\r\n if (self.railh) {\r\n self.railh.width = (self.page.maxh > 0) ? (self.view.w - self.rail.width) : self.view.w;\r\n self.scrollvaluemaxw = self.railh.width - self.cursorwidth - (opt.railpadding.left + opt.railpadding.right);\r\n }\r\n\r\n if (!self.ispage) self.updateScrollBar(self.view);\r\n\r\n self.scrollratio = {\r\n x: (self.page.maxw / self.scrollvaluemaxw),\r\n y: (self.page.maxh / self.scrollvaluemax)\r\n };\r\n\r\n var sy = self.getScrollTop();\r\n if (sy > self.page.maxh) {\r\n self.doScrollTop(self.page.maxh);\r\n } else {\r\n self.scroll.y = (self.getScrollTop() / self.scrollratio.y) | 0;\r\n self.scroll.x = (self.getScrollLeft() / self.scrollratio.x) | 0;\r\n if (self.cursoractive) self.noticeCursor();\r\n }\r\n\r\n if (self.scroll.y && (self.getScrollTop() === 0)) self.doScrollTo((self.scroll.y * self.scrollratio.y)|0);\r\n\r\n return self;\r\n };\r\n\r\n this.resize = self.onResize;\r\n\r\n var hlazyresize = 0;\r\n\r\n this.onscreenresize = function(e) {\r\n clearTimeout(hlazyresize);\r\n\r\n var hiderails = (!self.ispage && !self.haswrapper);\r\n if (hiderails) self.hideRails();\r\n\r\n hlazyresize = setTimeout(function () {\r\n if (self) {\r\n if (hiderails) self.showRails();\r\n self.resize();\r\n }\r\n hlazyresize=0;\r\n }, 120);\r\n };\r\n\r\n this.lazyResize = function (tm) { // event debounce\r\n\r\n clearTimeout(hlazyresize);\r\n\r\n tm = isNaN(tm) ? 240 : tm;\r\n\r\n hlazyresize = setTimeout(function () {\r\n self && self.resize();\r\n hlazyresize=0;\r\n }, tm);\r\n\r\n return self;\r\n\r\n };\r\n\r\n // derived by MDN https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/wheel\r\n function _modernWheelEvent(dom, name, fn, bubble) {\r\n self._bind(dom, name, function (e) {\r\n e = e || _win.event;\r\n var event = {\r\n original: e,\r\n target: e.target || e.srcElement,\r\n type: \"wheel\",\r\n deltaMode: e.type == \"MozMousePixelScroll\" ? 0 : 1,\r\n deltaX: 0,\r\n deltaZ: 0,\r\n preventDefault: function () {\r\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\r\n return false;\r\n },\r\n stopImmediatePropagation: function () {\r\n (e.stopImmediatePropagation) ? e.stopImmediatePropagation() : e.cancelBubble = true;\r\n }\r\n };\r\n\r\n if (name == \"mousewheel\") {\r\n e.wheelDeltaX && (event.deltaX = -1 / 40 * e.wheelDeltaX);\r\n e.wheelDeltaY && (event.deltaY = -1 / 40 * e.wheelDeltaY);\r\n !event.deltaY && !event.deltaX && (event.deltaY = -1 / 40 * e.wheelDelta);\r\n } else {\r\n event.deltaY = e.detail;\r\n }\r\n\r\n return fn.call(dom, event);\r\n }, bubble);\r\n }\r\n\r\n\r\n\r\n this.jqbind = function (dom, name, fn) { // use jquery bind for non-native events (mouseenter/mouseleave)\r\n self.events.push({\r\n e: dom,\r\n n: name,\r\n f: fn,\r\n q: true\r\n });\r\n $(dom).on(name, fn);\r\n };\r\n\r\n this.mousewheel = function (dom, fn, bubble) { // bind mousewheel\r\n var el = (\"jquery\" in dom) ? dom[0] : dom;\r\n if (\"onwheel\" in _doc.createElement(\"div\")) { // Modern browsers support \"wheel\"\r\n self._bind(el, \"wheel\", fn, bubble || false);\r\n } else {\r\n var wname = (_doc.onmousewheel !== undefined) ? \"mousewheel\" : \"DOMMouseScroll\"; // older Webkit+IE support or older Firefox \r\n _modernWheelEvent(el, wname, fn, bubble || false);\r\n if (wname == \"DOMMouseScroll\") _modernWheelEvent(el, \"MozMousePixelScroll\", fn, bubble || false); // Firefox legacy\r\n }\r\n };\r\n\r\n var passiveSupported = false;\r\n\r\n if (cap.haseventlistener) { // W3C standard event model\r\n\r\n // thanks to https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\r\n try { var options = Object.defineProperty({}, \"passive\", { get: function () { passiveSupported = !0; } }); _win.addEventListener(\"test\", null, options); } catch (err) { }\r\n\r\n this.stopPropagation = function (e) {\r\n if (!e) return false;\r\n e = (e.original) ? e.original : e;\r\n e.stopPropagation();\r\n return false;\r\n };\r\n\r\n this.cancelEvent = function(e) {\r\n if (e.cancelable) e.preventDefault();\r\n e.stopImmediatePropagation();\r\n if (e.preventManipulation) e.preventManipulation(); // IE10+\r\n return false;\r\n }; \r\n\r\n } else {\r\n\r\n // inspired from https://gist.github.com/jonathantneal/2415137 \r\n\r\n Event.prototype.preventDefault = function () {\r\n this.returnValue = false;\r\n };\r\n\r\n Event.prototype.stopPropagation = function () {\r\n this.cancelBubble = true;\r\n };\r\n\r\n _win.constructor.prototype.addEventListener = _doc.constructor.prototype.addEventListener = Element.prototype.addEventListener = function (type, listener, useCapture) {\r\n this.attachEvent(\"on\" + type, listener);\r\n };\r\n _win.constructor.prototype.removeEventListener = _doc.constructor.prototype.removeEventListener = Element.prototype.removeEventListener = function (type, listener, useCapture) {\r\n this.detachEvent(\"on\" + type, listener);\r\n };\r\n\r\n // Thanks to http://www.switchonthecode.com !!\r\n this.cancelEvent = function (e) {\r\n e = e || _win.event;\r\n if (e) { \r\n e.cancelBubble = true;\r\n e.cancel = true;\r\n e.returnValue = false;\r\n } \r\n return false;\r\n };\r\n\r\n this.stopPropagation = function (e) {\r\n e = e || _win.event;\r\n if (e) e.cancelBubble = true;\r\n return false;\r\n };\r\n\r\n }\r\n\r\n this.delegate = function (dom, name, fn, bubble, active) {\r\n\r\n var de = delegatevents[name] || false;\r\n\r\n if (!de) {\r\n\r\n de = {\r\n a: [],\r\n l: [],\r\n f: function (e) {\r\n var lst = de.l, l = lst.length - 1;\r\n var r = false;\r\n for (var a = l; a >= 0; a--) {\r\n r = lst[a].call(e.target, e);\r\n if (r === false) return false;\r\n }\r\n return r;\r\n }\r\n };\r\n\r\n self.bind(dom, name, de.f, bubble, active);\r\n\r\n delegatevents[name] = de;\r\n\r\n }\r\n\r\n if (self.ispage) {\r\n de.a = [self.id].concat(de.a);\r\n de.l = [fn].concat(de.l);\r\n } else {\r\n de.a.push(self.id);\r\n de.l.push(fn); \r\n }\r\n\r\n };\r\n\r\n this.undelegate = function (dom, name, fn, bubble, active) {\r\n var de = delegatevents[name]||false;\r\n if (de&&de.l) { // quick fix #683\r\n for (var a=0,l=de.l.length;a 0) return dd;\r\n dom = (dom.parentNode) ? dom.parentNode : false;\r\n }\r\n return false;\r\n };\r\n\r\n this.triggerScrollStart = function (cx, cy, rx, ry, ms) {\r\n\r\n if (self.onscrollstart) {\r\n var info = {\r\n type: \"scrollstart\",\r\n current: {\r\n x: cx,\r\n y: cy\r\n },\r\n request: {\r\n x: rx,\r\n y: ry\r\n },\r\n end: {\r\n x: self.newscrollx,\r\n y: self.newscrolly\r\n },\r\n speed: ms\r\n };\r\n self.onscrollstart.call(self, info);\r\n }\r\n\r\n };\r\n\r\n this.triggerScrollEnd = function () {\r\n if (self.onscrollend) {\r\n\r\n var px = self.getScrollLeft();\r\n var py = self.getScrollTop();\r\n\r\n var info = {\r\n type: \"scrollend\",\r\n current: {\r\n x: px,\r\n y: py\r\n },\r\n end: {\r\n x: px,\r\n y: py\r\n }\r\n };\r\n\r\n self.onscrollend.call(self, info);\r\n\r\n }\r\n\r\n };\r\n\r\n var scrolldiry = 0, scrolldirx = 0, scrolltmr = 0, scrollspd = 1;\r\n\r\n function doScrollRelative(px, py, chkscroll, iswheel) {\r\n\r\n if (!self.scrollrunning) {\r\n self.newscrolly = self.getScrollTop();\r\n self.newscrollx = self.getScrollLeft();\r\n scrolltmr = now();\r\n }\r\n\r\n var gap = (now() - scrolltmr);\r\n scrolltmr = now();\r\n\r\n if (gap > 350) {\r\n scrollspd = 1;\r\n } else {\r\n scrollspd += (2 - scrollspd) / 10;\r\n }\r\n\r\n px = px * scrollspd | 0;\r\n py = py * scrollspd | 0;\r\n\r\n if (px) {\r\n\r\n if (iswheel) { // mouse-only\r\n if (px < 0) { // fix apple magic mouse swipe back/forward\r\n if (self.getScrollLeft() >= self.page.maxw) return true;\r\n } else {\r\n if (self.getScrollLeft() <= 0) return true;\r\n }\r\n }\r\n\r\n var dx = px > 0 ? 1 : -1;\r\n\r\n if (scrolldirx !== dx) {\r\n if (self.scrollmom) self.scrollmom.stop();\r\n self.newscrollx = self.getScrollLeft();\r\n scrolldirx = dx;\r\n }\r\n\r\n self.lastdeltax -= px;\r\n\r\n }\r\n\r\n if (py) {\r\n\r\n var chk = (function () {\r\n var top = self.getScrollTop();\r\n if (py < 0) {\r\n if (top >= self.page.maxh) return true;\r\n } else {\r\n if (top <= 0) return true;\r\n }\r\n })();\r\n\r\n if (chk) {\r\n if (opt.nativeparentscrolling && chkscroll && !self.ispage && !self.zoomactive) return true;\r\n var ny = self.view.h >> 1;\r\n if (self.newscrolly < -ny) { self.newscrolly = -ny; py = -1; }\r\n else if (self.newscrolly > self.page.maxh + ny) { self.newscrolly = self.page.maxh + ny; py = 1; }\r\n else py = 0;\r\n }\r\n\r\n var dy = py > 0 ? 1 : -1;\r\n\r\n if (scrolldiry !== dy) {\r\n if (self.scrollmom) self.scrollmom.stop();\r\n self.newscrolly = self.getScrollTop();\r\n scrolldiry = dy;\r\n }\r\n\r\n self.lastdeltay -= py;\r\n\r\n }\r\n\r\n if (py || px) {\r\n self.synched(\"relativexy\", function () {\r\n\r\n var dty = self.lastdeltay + self.newscrolly;\r\n self.lastdeltay = 0;\r\n\r\n var dtx = self.lastdeltax + self.newscrollx;\r\n self.lastdeltax = 0;\r\n\r\n if (!self.rail.drag) self.doScrollPos(dtx, dty);\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n var hasparentscrollingphase = false;\r\n\r\n function execScrollWheel(e, hr, chkscroll) {\r\n var px, py;\r\n\r\n if (!chkscroll && hasparentscrollingphase) return true;\r\n\r\n if (e.deltaMode === 0) { // PIXEL\r\n px = -(e.deltaX * (opt.mousescrollstep / (18 * 3))) | 0;\r\n py = -(e.deltaY * (opt.mousescrollstep / (18 * 3))) | 0;\r\n } else if (e.deltaMode === 1) { // LINE\r\n px = -(e.deltaX * opt.mousescrollstep * 50 / 80) | 0;\r\n py = -(e.deltaY * opt.mousescrollstep * 50 / 80) | 0;\r\n }\r\n\r\n if (hr && opt.oneaxismousemode && (px === 0) && py) { // classic vertical-only mousewheel + browser with x/y support \r\n px = py;\r\n py = 0;\r\n\r\n if (chkscroll) {\r\n var hrend = (px < 0) ? (self.getScrollLeft() >= self.page.maxw) : (self.getScrollLeft() <= 0);\r\n if (hrend) { // preserve vertical scrolling\r\n py = px;\r\n px = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n // invert horizontal direction for rtl mode\r\n if (self.isrtlmode) px = -px;\r\n\r\n var chk = doScrollRelative(px, py, chkscroll, true);\r\n\r\n if (chk) {\r\n if (chkscroll) hasparentscrollingphase = true;\r\n } else {\r\n hasparentscrollingphase = false;\r\n e.stopImmediatePropagation();\r\n return e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n this.onmousewheel = function (e) {\r\n if (self.wheelprevented||self.locked) return false;\r\n if (self.railslocked) {\r\n self.debounced(\"checkunlock\", self.resize, 250);\r\n return false;\r\n }\r\n if (self.rail.drag) return self.cancelEvent(e);\r\n\r\n if (opt.oneaxismousemode === \"auto\" && e.deltaX !== 0) opt.oneaxismousemode = false; // check two-axis mouse support (not very elegant)\r\n\r\n if (opt.oneaxismousemode && e.deltaX === 0) {\r\n if (!self.rail.scrollable) {\r\n if (self.railh && self.railh.scrollable) {\r\n return self.onmousewheelhr(e);\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n var nw = now();\r\n var chk = false;\r\n if (opt.preservenativescrolling && ((self.checkarea + 600) < nw)) {\r\n self.nativescrollingarea = self.isScrollable(e);\r\n chk = true;\r\n }\r\n self.checkarea = nw;\r\n if (self.nativescrollingarea) return true; // this isn't my business\r\n var ret = execScrollWheel(e, false, chk);\r\n if (ret) self.checkarea = 0;\r\n return ret;\r\n };\r\n\r\n this.onmousewheelhr = function (e) {\r\n if (self.wheelprevented) return;\r\n if (self.railslocked || !self.railh.scrollable) return true;\r\n if (self.rail.drag) return self.cancelEvent(e);\r\n\r\n var nw = now();\r\n var chk = false;\r\n if (opt.preservenativescrolling && ((self.checkarea + 600) < nw)) {\r\n self.nativescrollingarea = self.isScrollable(e);\r\n chk = true;\r\n }\r\n self.checkarea = nw;\r\n if (self.nativescrollingarea) return true; // this is not my business\r\n if (self.railslocked) return self.cancelEvent(e);\r\n\r\n return execScrollWheel(e, true, chk);\r\n };\r\n\r\n this.stop = function () {\r\n self.cancelScroll();\r\n if (self.scrollmon) self.scrollmon.stop();\r\n self.cursorfreezed = false;\r\n self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y));\r\n self.noticeCursor();\r\n return self;\r\n };\r\n\r\n this.getTransitionSpeed = function (dif) {\r\n\r\n return 80 + (dif / 72) * opt.scrollspeed |0;\r\n\r\n };\r\n\r\n if (!opt.smoothscroll) {\r\n this.doScrollLeft = function (x, spd) { //direct\r\n var y = self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n this.doScrollTop = function (y, spd) { //direct\r\n var x = self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n this.doScrollPos = function (x, y, spd) { //direct\r\n var nx = (x > self.page.maxw) ? self.page.maxw : x;\r\n if (nx < 0) nx = 0;\r\n var ny = (y > self.page.maxh) ? self.page.maxh : y;\r\n if (ny < 0) ny = 0;\r\n self.synched('scroll', function () {\r\n self.setScrollTop(ny);\r\n self.setScrollLeft(nx);\r\n });\r\n };\r\n this.cancelScroll = function () { }; // direct\r\n\r\n } else if (self.ishwscroll && cap.hastransition && opt.usetransition && !!opt.smoothscroll) {\r\n\r\n var lasttransitionstyle = '';\r\n\r\n this.resetTransition = function () {\r\n lasttransitionstyle = '';\r\n self.doc.css(cap.prefixstyle + 'transition-duration', '0ms');\r\n };\r\n\r\n this.prepareTransition = function (dif, istime) {\r\n var ex = (istime) ? dif : self.getTransitionSpeed(dif);\r\n var trans = ex + 'ms';\r\n if (lasttransitionstyle !== trans) {\r\n lasttransitionstyle = trans;\r\n self.doc.css(cap.prefixstyle + 'transition-duration', trans);\r\n }\r\n return ex;\r\n };\r\n\r\n this.doScrollLeft = function (x, spd) { //trans\r\n var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollTop = function (y, spd) { //trans\r\n var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.cursorupdate = {\r\n running: false,\r\n start: function () {\r\n var m = this;\r\n\r\n if (m.running) return;\r\n m.running = true;\r\n\r\n var loop = function () {\r\n if (m.running) setAnimationFrame(loop);\r\n self.showCursor(self.getScrollTop(), self.getScrollLeft());\r\n self.notifyScrollEvent(self.win[0]);\r\n };\r\n\r\n setAnimationFrame(loop);\r\n },\r\n stop: function () {\r\n this.running = false;\r\n }\r\n };\r\n\r\n this.doScrollPos = function (x, y, spd) { //trans\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection \r\n\r\n if (!opt.bouncescroll) {\r\n if (y < 0) y = 0;\r\n else if (y > self.page.maxh) y = self.page.maxh;\r\n if (x < 0) x = 0;\r\n else if (x > self.page.maxw) x = self.page.maxw;\r\n } else {\r\n if (y < 0) y = y / 2 | 0;\r\n else if (y > self.page.maxh) y = self.page.maxh + (y - self.page.maxh) / 2 | 0;\r\n if (x < 0) x = x / 2 | 0;\r\n else if (x > self.page.maxw) x = self.page.maxw + (x - self.page.maxw) / 2 | 0;\r\n }\r\n\r\n if (self.scrollrunning && x == self.newscrollx && y == self.newscrolly) return false;\r\n\r\n self.newscrolly = y;\r\n self.newscrollx = x;\r\n\r\n var top = self.getScrollTop();\r\n var lft = self.getScrollLeft();\r\n\r\n var dst = {};\r\n dst.x = x - lft;\r\n dst.y = y - top;\r\n\r\n var dd = Math.sqrt((dst.x * dst.x) + (dst.y * dst.y)) | 0;\r\n\r\n var ms = self.prepareTransition(dd);\r\n\r\n if (!self.scrollrunning) {\r\n self.scrollrunning = true;\r\n self.triggerScrollStart(lft, top, x, y, ms);\r\n self.cursorupdate.start();\r\n }\r\n\r\n self.scrollendtrapped = true;\r\n\r\n if (!cap.transitionend) {\r\n if (self.scrollendtrapped) clearTimeout(self.scrollendtrapped);\r\n self.scrollendtrapped = setTimeout(self.onScrollTransitionEnd, ms); // simulate transitionend event\r\n }\r\n\r\n self.setScrollTop(self.newscrolly);\r\n self.setScrollLeft(self.newscrollx);\r\n\r\n };\r\n\r\n this.cancelScroll = function () {\r\n if (!self.scrollendtrapped) return true;\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n self.scrollrunning = false;\r\n if (!cap.transitionend) clearTimeout(cap.transitionend);\r\n self.scrollendtrapped = false;\r\n self.resetTransition();\r\n self.setScrollTop(py); // fire event onscroll\r\n if (self.railh) self.setScrollLeft(px);\r\n if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm);\r\n self.timerscroll = false;\r\n\r\n self.cursorfreezed = false;\r\n\r\n self.cursorupdate.stop();\r\n self.showCursor(py, px);\r\n return self;\r\n };\r\n\r\n this.onScrollTransitionEnd = function () {\r\n\r\n if (!self.scrollendtrapped) return;\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (py < 0) py = 0;\r\n else if (py > self.page.maxh) py = self.page.maxh;\r\n if (px < 0) px = 0;\r\n else if (px > self.page.maxw) px = self.page.maxw;\r\n if ((py != self.newscrolly) || (px != self.newscrollx)) return self.doScrollPos(px, py, opt.snapbackspeed);\r\n\r\n if (self.scrollrunning) self.triggerScrollEnd();\r\n self.scrollrunning = false;\r\n\r\n self.scrollendtrapped = false;\r\n self.resetTransition();\r\n self.timerscroll = false;\r\n self.setScrollTop(py); // fire event onscroll \r\n if (self.railh) self.setScrollLeft(px); // fire event onscroll left\r\n\r\n self.cursorupdate.stop();\r\n self.noticeCursor(false, py, px);\r\n\r\n self.cursorfreezed = false;\r\n\r\n };\r\n\r\n } else {\r\n\r\n this.doScrollLeft = function (x, spd) { //no-trans\r\n var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollTop = function (y, spd) { //no-trans\r\n var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft();\r\n self.doScrollPos(x, y, spd);\r\n };\r\n\r\n this.doScrollPos = function (x, y, spd) { //no-trans\r\n\r\n var py = self.getScrollTop();\r\n var px = self.getScrollLeft();\r\n\r\n if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection\r\n\r\n var clipped = false;\r\n\r\n if (!self.bouncescroll || !self.rail.visibility) {\r\n if (y < 0) {\r\n y = 0;\r\n clipped = true;\r\n } else if (y > self.page.maxh) {\r\n y = self.page.maxh;\r\n clipped = true;\r\n }\r\n }\r\n if (!self.bouncescroll || !self.railh.visibility) {\r\n if (x < 0) {\r\n x = 0;\r\n clipped = true;\r\n } else if (x > self.page.maxw) {\r\n x = self.page.maxw;\r\n clipped = true;\r\n }\r\n }\r\n\r\n if (self.scrollrunning && (self.newscrolly === y) && (self.newscrollx === x)) return true;\r\n\r\n self.newscrolly = y;\r\n self.newscrollx = x;\r\n\r\n self.dst = {};\r\n self.dst.x = x - px;\r\n self.dst.y = y - py;\r\n self.dst.px = px;\r\n self.dst.py = py;\r\n\r\n var dd = Math.sqrt((self.dst.x * self.dst.x) + (self.dst.y * self.dst.y)) | 0;\r\n var ms = self.getTransitionSpeed(dd);\r\n\r\n self.bzscroll = {};\r\n\r\n var p3 = (clipped) ? 1 : 0.58;\r\n self.bzscroll.x = new BezierClass(px, self.newscrollx, ms, 0, 0, p3, 1);\r\n self.bzscroll.y = new BezierClass(py, self.newscrolly, ms, 0, 0, p3, 1);\r\n\r\n var loopid = now();\r\n\r\n var loop = function () {\r\n\r\n if (!self.scrollrunning) return;\r\n var x = self.bzscroll.y.getPos();\r\n\r\n self.setScrollLeft(self.bzscroll.x.getNow());\r\n self.setScrollTop(self.bzscroll.y.getNow());\r\n\r\n if (x <= 1) {\r\n self.timer = setAnimationFrame(loop);\r\n } else {\r\n self.scrollrunning = false;\r\n self.timer = 0;\r\n self.triggerScrollEnd();\r\n }\r\n\r\n };\r\n\r\n if (!self.scrollrunning) {\r\n self.triggerScrollStart(px, py, x, y, ms);\r\n self.scrollrunning = true;\r\n self.timer = setAnimationFrame(loop);\r\n }\r\n\r\n };\r\n\r\n this.cancelScroll = function () {\r\n if (self.timer) clearAnimationFrame(self.timer);\r\n self.timer = 0;\r\n self.bzscroll = false;\r\n self.scrollrunning = false;\r\n return self;\r\n };\r\n\r\n }\r\n\r\n this.doScrollBy = function (stp, relative) {\r\n doScrollRelative(0, stp);\r\n };\r\n\r\n this.doScrollLeftBy = function (stp, relative) {\r\n doScrollRelative(stp, 0);\r\n };\r\n\r\n this.doScrollTo = function (pos, relative) {\r\n var ny = (relative) ? Math.round(pos * self.scrollratio.y) : pos;\r\n if (ny < 0) ny = 0;\r\n else if (ny > self.page.maxh) ny = self.page.maxh;\r\n self.cursorfreezed = false;\r\n self.doScrollTop(pos);\r\n };\r\n\r\n this.checkContentSize = function () {\r\n var pg = self.getContentSize();\r\n if ((pg.h != self.page.h) || (pg.w != self.page.w)) self.resize(false, pg);\r\n };\r\n\r\n self.onscroll = function (e) {\r\n if (self.rail.drag) return;\r\n if (!self.cursorfreezed) {\r\n self.synched('scroll', function () {\r\n self.scroll.y = Math.round(self.getScrollTop() / self.scrollratio.y);\r\n if (self.railh) self.scroll.x = Math.round(self.getScrollLeft() / self.scrollratio.x);\r\n self.noticeCursor();\r\n });\r\n }\r\n };\r\n self.bind(self.docscroll, \"scroll\", self.onscroll);\r\n\r\n this.doZoomIn = function (e) {\r\n if (self.zoomactive) return;\r\n self.zoomactive = true;\r\n\r\n self.zoomrestore = {\r\n style: {}\r\n };\r\n var lst = ['position', 'top', 'left', 'zIndex', 'backgroundColor', 'marginTop', 'marginBottom', 'marginLeft', 'marginRight'];\r\n var win = self.win[0].style;\r\n for (var a in lst) {\r\n var pp = lst[a];\r\n self.zoomrestore.style[pp] = (win[pp] !== undefined) ? win[pp] : '';\r\n }\r\n\r\n self.zoomrestore.style.width = self.win.css('width');\r\n self.zoomrestore.style.height = self.win.css('height');\r\n\r\n self.zoomrestore.padding = {\r\n w: self.win.outerWidth() - self.win.width(),\r\n h: self.win.outerHeight() - self.win.height()\r\n };\r\n\r\n if (cap.isios4) {\r\n self.zoomrestore.scrollTop = $window.scrollTop();\r\n $window.scrollTop(0);\r\n }\r\n\r\n self.win.css({\r\n position: (cap.isios4) ? \"absolute\" : \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: globalmaxzindex + 100,\r\n margin: 0\r\n });\r\n var bkg = self.win.css(\"backgroundColor\");\r\n if (\"\" === bkg || /transparent|rgba\\(0, 0, 0, 0\\)|rgba\\(0,0,0,0\\)/.test(bkg)) self.win.css(\"backgroundColor\", \"#fff\");\r\n self.rail.css({\r\n zIndex: globalmaxzindex + 101\r\n });\r\n self.zoom.css({\r\n zIndex: globalmaxzindex + 102\r\n });\r\n self.zoom.css('backgroundPosition', '0 -18px');\r\n self.resizeZoom();\r\n\r\n if (self.onzoomin) self.onzoomin.call(self);\r\n\r\n return self.cancelEvent(e);\r\n };\r\n\r\n this.doZoomOut = function (e) {\r\n if (!self.zoomactive) return;\r\n self.zoomactive = false;\r\n\r\n self.win.css(\"margin\", \"\");\r\n self.win.css(self.zoomrestore.style);\r\n\r\n if (cap.isios4) {\r\n $window.scrollTop(self.zoomrestore.scrollTop);\r\n }\r\n\r\n self.rail.css({\r\n \"z-index\": self.zindex\r\n });\r\n self.zoom.css({\r\n \"z-index\": self.zindex\r\n });\r\n self.zoomrestore = false;\r\n self.zoom.css('backgroundPosition', '0 0');\r\n self.onResize();\r\n\r\n if (self.onzoomout) self.onzoomout.call(self);\r\n\r\n return self.cancelEvent(e);\r\n };\r\n\r\n this.doZoom = function (e) {\r\n return (self.zoomactive) ? self.doZoomOut(e) : self.doZoomIn(e);\r\n };\r\n\r\n this.resizeZoom = function () {\r\n if (!self.zoomactive) return;\r\n\r\n var py = self.getScrollTop(); //preserve scrolling position\r\n self.win.css({\r\n width: $window.width() - self.zoomrestore.padding.w + \"px\",\r\n height: $window.height() - self.zoomrestore.padding.h + \"px\"\r\n });\r\n self.onResize();\r\n\r\n self.setScrollTop(Math.min(self.page.maxh, py));\r\n };\r\n\r\n this.init();\r\n\r\n $.nicescroll.push(this);\r\n\r\n };\r\n\r\n // Inspired by the work of Kin Blas\r\n // http://webpro.host.adobe.com/people/jblas/momentum/includes/jquery.momentum.0.7.js \r\n var ScrollMomentumClass2D = function (nc) {\r\n var self = this;\r\n this.nc = nc;\r\n\r\n this.lastx = 0;\r\n this.lasty = 0;\r\n this.speedx = 0;\r\n this.speedy = 0;\r\n this.lasttime = 0;\r\n this.steptime = 0;\r\n this.snapx = false;\r\n this.snapy = false;\r\n this.demulx = 0;\r\n this.demuly = 0;\r\n\r\n this.lastscrollx = -1;\r\n this.lastscrolly = -1;\r\n\r\n this.chkx = 0;\r\n this.chky = 0;\r\n\r\n this.timer = 0;\r\n\r\n this.reset = function (px, py) {\r\n self.stop();\r\n self.steptime = 0;\r\n self.lasttime = now();\r\n self.speedx = 0;\r\n self.speedy = 0;\r\n self.lastx = px;\r\n self.lasty = py;\r\n self.lastscrollx = -1;\r\n self.lastscrolly = -1;\r\n };\r\n\r\n this.update = function (px, py) {\r\n var tm = now();\r\n self.steptime = tm - self.lasttime;\r\n self.lasttime = tm;\r\n var dy = py - self.lasty;\r\n var dx = px - self.lastx;\r\n var sy = self.nc.getScrollTop();\r\n var sx = self.nc.getScrollLeft();\r\n var newy = sy + dy;\r\n var newx = sx + dx;\r\n self.snapx = (newx < 0) || (newx > self.nc.page.maxw);\r\n self.snapy = (newy < 0) || (newy > self.nc.page.maxh);\r\n self.speedx = dx;\r\n self.speedy = dy;\r\n self.lastx = px;\r\n self.lasty = py;\r\n };\r\n\r\n this.stop = function () {\r\n self.nc.unsynched(\"domomentum2d\");\r\n if (self.timer) clearTimeout(self.timer);\r\n self.timer = 0;\r\n self.lastscrollx = -1;\r\n self.lastscrolly = -1;\r\n };\r\n\r\n this.doSnapy = function (nx, ny) {\r\n var snap = false;\r\n\r\n if (ny < 0) {\r\n ny = 0;\r\n snap = true;\r\n } else if (ny > self.nc.page.maxh) {\r\n ny = self.nc.page.maxh;\r\n snap = true;\r\n }\r\n\r\n if (nx < 0) {\r\n nx = 0;\r\n snap = true;\r\n } else if (nx > self.nc.page.maxw) {\r\n nx = self.nc.page.maxw;\r\n snap = true;\r\n }\r\n\r\n (snap) ? self.nc.doScrollPos(nx, ny, self.nc.opt.snapbackspeed) : self.nc.triggerScrollEnd();\r\n };\r\n\r\n this.doMomentum = function (gp) {\r\n var t = now();\r\n var l = (gp) ? t + gp : self.lasttime;\r\n\r\n var sl = self.nc.getScrollLeft();\r\n var st = self.nc.getScrollTop();\r\n\r\n var pageh = self.nc.page.maxh;\r\n var pagew = self.nc.page.maxw;\r\n\r\n self.speedx = (pagew > 0) ? Math.min(60, self.speedx) : 0;\r\n self.speedy = (pageh > 0) ? Math.min(60, self.speedy) : 0;\r\n\r\n var chk = l && (t - l) <= 60;\r\n\r\n if ((st < 0) || (st > pageh) || (sl < 0) || (sl > pagew)) chk = false;\r\n\r\n var sy = (self.speedy && chk) ? self.speedy : false;\r\n var sx = (self.speedx && chk) ? self.speedx : false;\r\n\r\n if (sy || sx) {\r\n var tm = Math.max(16, self.steptime); //timeout granularity\r\n\r\n if (tm > 50) { // do smooth\r\n var xm = tm / 50;\r\n self.speedx *= xm;\r\n self.speedy *= xm;\r\n tm = 50;\r\n }\r\n\r\n self.demulxy = 0;\r\n\r\n self.lastscrollx = self.nc.getScrollLeft();\r\n self.chkx = self.lastscrollx;\r\n self.lastscrolly = self.nc.getScrollTop();\r\n self.chky = self.lastscrolly;\r\n\r\n var nx = self.lastscrollx;\r\n var ny = self.lastscrolly;\r\n\r\n var onscroll = function () {\r\n var df = ((now() - t) > 600) ? 0.04 : 0.02;\r\n\r\n if (self.speedx) {\r\n nx = Math.floor(self.lastscrollx - (self.speedx * (1 - self.demulxy)));\r\n self.lastscrollx = nx;\r\n if ((nx < 0) || (nx > pagew)) df = 0.10;\r\n }\r\n\r\n if (self.speedy) {\r\n ny = Math.floor(self.lastscrolly - (self.speedy * (1 - self.demulxy)));\r\n self.lastscrolly = ny;\r\n if ((ny < 0) || (ny > pageh)) df = 0.10;\r\n }\r\n\r\n self.demulxy = Math.min(1, self.demulxy + df);\r\n\r\n self.nc.synched(\"domomentum2d\", function () {\r\n\r\n if (self.speedx) {\r\n var scx = self.nc.getScrollLeft();\r\n // if (scx != self.chkx) self.stop();\r\n self.chkx = nx;\r\n self.nc.setScrollLeft(nx);\r\n }\r\n\r\n if (self.speedy) {\r\n var scy = self.nc.getScrollTop();\r\n // if (scy != self.chky) self.stop();\r\n self.chky = ny;\r\n self.nc.setScrollTop(ny);\r\n }\r\n\r\n if (!self.timer) {\r\n self.nc.hideCursor();\r\n self.doSnapy(nx, ny);\r\n }\r\n\r\n });\r\n\r\n if (self.demulxy < 1) {\r\n self.timer = setTimeout(onscroll, tm);\r\n } else {\r\n self.stop();\r\n self.nc.hideCursor();\r\n self.doSnapy(nx, ny);\r\n }\r\n };\r\n\r\n onscroll();\r\n\r\n } else {\r\n self.doSnapy(self.nc.getScrollLeft(), self.nc.getScrollTop());\r\n }\r\n\r\n };\r\n\r\n };\r\n\r\n\r\n // override jQuery scrollTop\r\n var _scrollTop = jQuery.fn.scrollTop; // preserve original function\r\n\r\n jQuery.cssHooks.pageYOffset = {\r\n get: function (elem, computed, extra) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(elem);\r\n },\r\n set: function (elem, value) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)) : _scrollTop.call(elem, value);\r\n return this;\r\n }\r\n };\r\n\r\n jQuery.fn.scrollTop = function (value) {\r\n if (value === undefined) {\r\n var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(this);\r\n } else {\r\n return this.each(function () {\r\n var nice = $.data(this, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)) : _scrollTop.call($(this), value);\r\n });\r\n }\r\n };\r\n\r\n // override jQuery scrollLeft\r\n var _scrollLeft = jQuery.fn.scrollLeft; // preserve original function\r\n\r\n $.cssHooks.pageXOffset = {\r\n get: function (elem, computed, extra) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(elem);\r\n },\r\n set: function (elem, value) {\r\n var nice = $.data(elem, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)) : _scrollLeft.call(elem, value);\r\n return this;\r\n }\r\n };\r\n\r\n jQuery.fn.scrollLeft = function (value) {\r\n if (value === undefined) {\r\n var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false;\r\n return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(this);\r\n } else {\r\n return this.each(function () {\r\n var nice = $.data(this, '__nicescroll') || false;\r\n (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)) : _scrollLeft.call($(this), value);\r\n });\r\n }\r\n };\r\n\r\n var NiceScrollArray = function (doms) {\r\n var self = this;\r\n this.length = 0;\r\n this.name = \"nicescrollarray\";\r\n\r\n this.each = function (fn) {\r\n $.each(self, fn);\r\n return self;\r\n };\r\n\r\n this.push = function (nice) {\r\n self[self.length] = nice;\r\n self.length++;\r\n };\r\n\r\n this.eq = function (idx) {\r\n return self[idx];\r\n };\r\n\r\n if (doms) {\r\n for (var a = 0; a < doms.length; a++) {\r\n var nice = $.data(doms[a], '__nicescroll') || false;\r\n if (nice) {\r\n this[this.length] = nice;\r\n this.length++;\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n function mplex(el, lst, fn) {\r\n for (var a = 0, l = lst.length; a < l; a++) fn(el, lst[a]);\r\n }\r\n mplex(\r\n NiceScrollArray.prototype, ['show', 'hide', 'toggle', 'onResize', 'resize', 'remove', 'stop', 'doScrollPos'],\r\n function (e, n) {\r\n e[n] = function () {\r\n var args = arguments;\r\n return this.each(function () {\r\n this[n].apply(this, args);\r\n });\r\n };\r\n }\r\n );\r\n\r\n jQuery.fn.getNiceScroll = function (index) {\r\n if (index === undefined) {\r\n return new NiceScrollArray(this);\r\n } else {\r\n return this[index] && $.data(this[index], '__nicescroll') || false;\r\n }\r\n };\r\n\r\n var pseudos = jQuery.expr.pseudos || jQuery.expr[':']; // jQuery 3 migration\r\n pseudos.nicescroll = function (a) {\r\n return $.data(a, '__nicescroll') !== undefined;\r\n };\r\n\r\n $.fn.niceScroll = function (wrapper, _opt) {\r\n if (_opt === undefined && typeof wrapper == \"object\" && !(\"jquery\" in wrapper)) {\r\n _opt = wrapper;\r\n wrapper = false;\r\n }\r\n\r\n var ret = new NiceScrollArray();\r\n\r\n this.each(function () {\r\n var $this = $(this);\r\n\r\n var opt = $.extend({}, _opt); // cloning\r\n\r\n if (wrapper || false) {\r\n var wrp = $(wrapper);\r\n opt.doc = (wrp.length > 1) ? $(wrapper, $this) : wrp;\r\n opt.win = $this;\r\n }\r\n var docundef = !(\"doc\" in opt);\r\n if (!docundef && !(\"win\" in opt)) opt.win = $this;\r\n\r\n var nice = $this.data('__nicescroll') || false;\r\n if (!nice) {\r\n opt.doc = opt.doc || $this;\r\n nice = new NiceScrollClass(opt, $this);\r\n $this.data('__nicescroll', nice);\r\n }\r\n ret.push(nice);\r\n });\r\n\r\n return (ret.length === 1) ? ret[0] : ret;\r\n };\r\n\r\n _win.NiceScroll = {\r\n getjQuery: function () {\r\n return jQuery;\r\n }\r\n };\r\n\r\n if (!$.nicescroll) {\r\n $.nicescroll = new NiceScrollArray();\r\n $.nicescroll.options = _globaloptions;\r\n }\r\n\r\n}));","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه'.split(\n '_'\n ),\n weekdaysShort:\n 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره|بهیانی/,\n isPM: function (input) {\n return /ئێواره/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'بهیانی';\n } else {\n return 'ئێواره';\n }\n },\n calendar: {\n sameDay: '[ئهمرۆ كاتژمێر] LT',\n nextDay: '[بهیانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له %s',\n past: '%s',\n s: 'چهند چركهیهك',\n ss: 'چركه %d',\n m: 'یهك خولهك',\n mm: '%d خولهك',\n h: 'یهك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یهك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یهك مانگ',\n MM: '%d مانگ',\n y: 'یهك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (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 _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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.\n * It will read the variation of the `placement` property.\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.\n * These can be overridden using the `options` argument of Popper.js.\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.\n * By default, it is set to no-op.\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function(){var t=this;(function(){(function(){this.Turbolinks={supported:function(){return null!=window.history.pushState&&null!=window.requestAnimationFrame&&null!=window.addEventListener}(),visit:function(t,r){return e.controller.visit(t,r)},clearCache:function(){return e.controller.clearCache()},setProgressBarDelay:function(t){return e.controller.setProgressBarDelay(t)}}}).call(this)}).call(t);var e=t.Turbolinks;(function(){(function(){var t,r,n,o=[].slice;e.copyObject=function(t){var e,r,n;r={};for(e in t)n=t[e],r[e]=n;return r},e.closest=function(e,r){return t.call(e,r)},t=function(){var t,e;return t=document.documentElement,null!=(e=t.closest)?e:function(t){var e;for(e=this;e;){if(e.nodeType===Node.ELEMENT_NODE&&r.call(e,t))return e;e=e.parentNode}}}(),e.defer=function(t){return setTimeout(t,1)},e.throttle=function(t){var e;return e=null,function(){var r;return r=1<=arguments.length?o.call(arguments,0):[],null!=e?e:e=requestAnimationFrame(function(n){return function(){return e=null,t.apply(n,r)}}(this))}},e.dispatch=function(t,e){var r,o,i,s,a,u;return a=null!=e?e:{},u=a.target,r=a.cancelable,o=a.data,i=document.createEvent(\"Events\"),i.initEvent(t,!0,r===!0),i.data=null!=o?o:{},i.cancelable&&!n&&(s=i.preventDefault,i.preventDefault=function(){return this.defaultPrevented||Object.defineProperty(this,\"defaultPrevented\",{get:function(){return!0}}),s.call(this)}),(null!=u?u:document).dispatchEvent(i),i},n=function(){var t;return t=document.createEvent(\"Events\"),t.initEvent(\"test\",!0,!0),t.preventDefault(),t.defaultPrevented}(),e.match=function(t,e){return r.call(t,e)},r=function(){var t,e,r,n;return t=document.documentElement,null!=(e=null!=(r=null!=(n=t.matchesSelector)?n:t.webkitMatchesSelector)?r:t.msMatchesSelector)?e:t.mozMatchesSelector}(),e.uuid=function(){var t,e,r;for(r=\"\",t=e=1;36>=e;t=++e)r+=9===t||14===t||19===t||24===t?\"-\":15===t?\"4\":20===t?(Math.floor(4*Math.random())+8).toString(16):Math.floor(15*Math.random()).toString(16);return r}}).call(this),function(){e.Location=function(){function t(t){var e,r;null==t&&(t=\"\"),r=document.createElement(\"a\"),r.href=t.toString(),this.absoluteURL=r.href,e=r.hash.length,2>e?this.requestURL=this.absoluteURL:(this.requestURL=this.absoluteURL.slice(0,-e),this.anchor=r.hash.slice(1))}var e,r,n,o;return t.wrap=function(t){return t instanceof this?t:new this(t)},t.prototype.getOrigin=function(){return this.absoluteURL.split(\"/\",3).join(\"/\")},t.prototype.getPath=function(){var t,e;return null!=(t=null!=(e=this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/))?e[1]:void 0)?t:\"/\"},t.prototype.getPathComponents=function(){return this.getPath().split(\"/\").slice(1)},t.prototype.getLastPathComponent=function(){return this.getPathComponents().slice(-1)[0]},t.prototype.getExtension=function(){var t,e;return null!=(t=null!=(e=this.getLastPathComponent().match(/\\.[^.]*$/))?e[0]:void 0)?t:\"\"},t.prototype.isHTML=function(){return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/)},t.prototype.isPrefixedBy=function(t){var e;return e=r(t),this.isEqualTo(t)||o(this.absoluteURL,e)},t.prototype.isEqualTo=function(t){return this.absoluteURL===(null!=t?t.absoluteURL:void 0)},t.prototype.toCacheKey=function(){return this.requestURL},t.prototype.toJSON=function(){return this.absoluteURL},t.prototype.toString=function(){return this.absoluteURL},t.prototype.valueOf=function(){return this.absoluteURL},r=function(t){return e(t.getOrigin()+t.getPath())},e=function(t){return n(t,\"/\")?t:t+\"/\"},o=function(t,e){return t.slice(0,e.length)===e},n=function(t,e){return t.slice(-e.length)===e},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.HttpRequest=function(){function r(r,n,o){this.delegate=r,this.requestCanceled=t(this.requestCanceled,this),this.requestTimedOut=t(this.requestTimedOut,this),this.requestFailed=t(this.requestFailed,this),this.requestLoaded=t(this.requestLoaded,this),this.requestProgressed=t(this.requestProgressed,this),this.url=e.Location.wrap(n).requestURL,this.referrer=e.Location.wrap(o).absoluteURL,this.createXHR()}return r.NETWORK_FAILURE=0,r.TIMEOUT_FAILURE=-1,r.timeout=60,r.prototype.send=function(){var t;return this.xhr&&!this.sent?(this.notifyApplicationBeforeRequestStart(),this.setProgress(0),this.xhr.send(),this.sent=!0,\"function\"==typeof(t=this.delegate).requestStarted?t.requestStarted():void 0):void 0},r.prototype.cancel=function(){return this.xhr&&this.sent?this.xhr.abort():void 0},r.prototype.requestProgressed=function(t){return t.lengthComputable?this.setProgress(t.loaded/t.total):void 0},r.prototype.requestLoaded=function(){return this.endRequest(function(t){return function(){var e;return 200<=(e=t.xhr.status)&&300>e?t.delegate.requestCompletedWithResponse(t.xhr.responseText,t.xhr.getResponseHeader(\"Turbolinks-Location\")):(t.failed=!0,t.delegate.requestFailedWithStatusCode(t.xhr.status,t.xhr.responseText))}}(this))},r.prototype.requestFailed=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE)}}(this))},r.prototype.requestTimedOut=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE)}}(this))},r.prototype.requestCanceled=function(){return this.endRequest()},r.prototype.notifyApplicationBeforeRequestStart=function(){return e.dispatch(\"turbolinks:request-start\",{data:{url:this.url,xhr:this.xhr}})},r.prototype.notifyApplicationAfterRequestEnd=function(){return e.dispatch(\"turbolinks:request-end\",{data:{url:this.url,xhr:this.xhr}})},r.prototype.createXHR=function(){return this.xhr=new XMLHttpRequest,this.xhr.open(\"GET\",this.url,!0),this.xhr.timeout=1e3*this.constructor.timeout,this.xhr.setRequestHeader(\"Accept\",\"text/html, application/xhtml+xml\"),this.xhr.setRequestHeader(\"Turbolinks-Referrer\",this.referrer),this.xhr.onprogress=this.requestProgressed,this.xhr.onload=this.requestLoaded,this.xhr.onerror=this.requestFailed,this.xhr.ontimeout=this.requestTimedOut,this.xhr.onabort=this.requestCanceled},r.prototype.endRequest=function(t){return this.xhr?(this.notifyApplicationAfterRequestEnd(),null!=t&&t.call(this),this.destroy()):void 0},r.prototype.setProgress=function(t){var e;return this.progress=t,\"function\"==typeof(e=this.delegate).requestProgressed?e.requestProgressed(this.progress):void 0},r.prototype.destroy=function(){var t;return this.setProgress(1),\"function\"==typeof(t=this.delegate).requestFinished&&t.requestFinished(),this.delegate=null,this.xhr=null},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ProgressBar=function(){function e(){this.trickle=t(this.trickle,this),this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement()}var r;return r=300,e.defaultCSS=\".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \"+r+\"ms ease-out, opacity \"+r/2+\"ms \"+r/2+\"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\",e.prototype.show=function(){return this.visible?void 0:(this.visible=!0,this.installStylesheetElement(),this.installProgressElement(),this.startTrickling())},e.prototype.hide=function(){return this.visible&&!this.hiding?(this.hiding=!0,this.fadeProgressElement(function(t){return function(){return t.uninstallProgressElement(),t.stopTrickling(),t.visible=!1,t.hiding=!1}}(this))):void 0},e.prototype.setValue=function(t){return this.value=t,this.refresh()},e.prototype.installStylesheetElement=function(){return document.head.insertBefore(this.stylesheetElement,document.head.firstChild)},e.prototype.installProgressElement=function(){return this.progressElement.style.width=0,this.progressElement.style.opacity=1,document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()},e.prototype.fadeProgressElement=function(t){return this.progressElement.style.opacity=0,setTimeout(t,1.5*r)},e.prototype.uninstallProgressElement=function(){return this.progressElement.parentNode?document.documentElement.removeChild(this.progressElement):void 0},e.prototype.startTrickling=function(){return null!=this.trickleInterval?this.trickleInterval:this.trickleInterval=setInterval(this.trickle,r)},e.prototype.stopTrickling=function(){return clearInterval(this.trickleInterval),this.trickleInterval=null},e.prototype.trickle=function(){return this.setValue(this.value+Math.random()/100)},e.prototype.refresh=function(){return requestAnimationFrame(function(t){return function(){return t.progressElement.style.width=10+90*t.value+\"%\"}}(this))},e.prototype.createStylesheetElement=function(){var t;return t=document.createElement(\"style\"),t.type=\"text/css\",t.textContent=this.constructor.defaultCSS,t},e.prototype.createProgressElement=function(){var t;return t=document.createElement(\"div\"),t.className=\"turbolinks-progress-bar\",t},e}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.BrowserAdapter=function(){function r(r){this.controller=r,this.showProgressBar=t(this.showProgressBar,this),this.progressBar=new e.ProgressBar}var n,o,i;return i=e.HttpRequest,n=i.NETWORK_FAILURE,o=i.TIMEOUT_FAILURE,r.prototype.visitProposedToLocationWithAction=function(t,e){return this.controller.startVisitToLocationWithAction(t,e)},r.prototype.visitStarted=function(t){return t.issueRequest(),t.changeHistory(),t.loadCachedSnapshot()},r.prototype.visitRequestStarted=function(t){return this.progressBar.setValue(0),t.hasCachedSnapshot()||\"restore\"!==t.action?this.showProgressBarAfterDelay():this.showProgressBar()},r.prototype.visitRequestProgressed=function(t){return this.progressBar.setValue(t.progress)},r.prototype.visitRequestCompleted=function(t){return t.loadResponse()},r.prototype.visitRequestFailedWithStatusCode=function(t,e){switch(e){case n:case o:return this.reload();default:return t.loadResponse()}},r.prototype.visitRequestFinished=function(t){return this.hideProgressBar()},r.prototype.visitCompleted=function(t){return t.followRedirect()},r.prototype.pageInvalidated=function(){return this.reload()},r.prototype.showProgressBarAfterDelay=function(){return this.progressBarTimeout=setTimeout(this.showProgressBar,this.controller.progressBarDelay)},r.prototype.showProgressBar=function(){return this.progressBar.show()},r.prototype.hideProgressBar=function(){return this.progressBar.hide(),clearTimeout(this.progressBarTimeout)},r.prototype.reload=function(){return window.location.reload()},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.History=function(){function r(e){this.delegate=e,this.onPageLoad=t(this.onPageLoad,this),this.onPopState=t(this.onPopState,this)}return r.prototype.start=function(){return this.started?void 0:(addEventListener(\"popstate\",this.onPopState,!1),addEventListener(\"load\",this.onPageLoad,!1),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener(\"popstate\",this.onPopState,!1),removeEventListener(\"load\",this.onPageLoad,!1),this.started=!1):void 0},r.prototype.push=function(t,r){return t=e.Location.wrap(t),this.update(\"push\",t,r)},r.prototype.replace=function(t,r){return t=e.Location.wrap(t),this.update(\"replace\",t,r)},r.prototype.onPopState=function(t){var r,n,o,i;return this.shouldHandlePopState()&&(i=null!=(n=t.state)?n.turbolinks:void 0)?(r=e.Location.wrap(window.location),o=i.restorationIdentifier,this.delegate.historyPoppedToLocationWithRestorationIdentifier(r,o)):void 0},r.prototype.onPageLoad=function(t){return e.defer(function(t){return function(){return t.pageLoaded=!0}}(this))},r.prototype.shouldHandlePopState=function(){return this.pageIsLoaded()},r.prototype.pageIsLoaded=function(){return this.pageLoaded||\"complete\"===document.readyState},r.prototype.update=function(t,e,r){var n;return n={turbolinks:{restorationIdentifier:r}},history[t+\"State\"](n,null,e)},r}()}.call(this),function(){e.HeadDetails=function(){function t(t){var e,r,n,s,a,u;for(this.elements={},n=0,a=t.length;a>n;n++)u=t[n],u.nodeType===Node.ELEMENT_NODE&&(s=u.outerHTML,r=null!=(e=this.elements)[s]?e[s]:e[s]={type:i(u),tracked:o(u),elements:[]},r.elements.push(u))}var e,r,n,o,i;return t.fromHeadElement=function(t){var e;return new this(null!=(e=null!=t?t.childNodes:void 0)?e:[])},t.prototype.hasElementWithKey=function(t){return t in this.elements},t.prototype.getTrackedElementSignature=function(){var t,e;return function(){var r,n;r=this.elements,n=[];for(t in r)e=r[t].tracked,e&&n.push(t);return n}.call(this).join(\"\")},t.prototype.getScriptElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails(\"script\",t)},t.prototype.getStylesheetElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails(\"stylesheet\",t)},t.prototype.getElementsMatchingTypeNotInDetails=function(t,e){var r,n,o,i,s,a;o=this.elements,s=[];for(n in o)i=o[n],a=i.type,r=i.elements,a!==t||e.hasElementWithKey(n)||s.push(r[0]);return s},t.prototype.getProvisionalElements=function(){var t,e,r,n,o,i,s;r=[],n=this.elements;for(e in n)o=n[e],s=o.type,i=o.tracked,t=o.elements,null!=s||i?t.length>1&&r.push.apply(r,t.slice(1)):r.push.apply(r,t);return r},t.prototype.getMetaValue=function(t){var e;return null!=(e=this.findMetaElementByName(t))?e.getAttribute(\"content\"):void 0},t.prototype.findMetaElementByName=function(t){var r,n,o,i;r=void 0,i=this.elements;for(o in i)n=i[o].elements,e(n[0],t)&&(r=n[0]);return r},i=function(t){return r(t)?\"script\":n(t)?\"stylesheet\":void 0},o=function(t){return\"reload\"===t.getAttribute(\"data-turbolinks-track\")},r=function(t){var e;return e=t.tagName.toLowerCase(),\"script\"===e},n=function(t){var e;return e=t.tagName.toLowerCase(),\"style\"===e||\"link\"===e&&\"stylesheet\"===t.getAttribute(\"rel\")},e=function(t,e){var r;return r=t.tagName.toLowerCase(),\"meta\"===r&&t.getAttribute(\"name\")===e},t}()}.call(this),function(){e.Snapshot=function(){function t(t,e){this.headDetails=t,this.bodyElement=e}return t.wrap=function(t){return t instanceof this?t:\"string\"==typeof t?this.fromHTMLString(t):this.fromHTMLElement(t)},t.fromHTMLString=function(t){var e;return e=document.createElement(\"html\"),e.innerHTML=t,this.fromHTMLElement(e)},t.fromHTMLElement=function(t){var r,n,o,i;return o=t.querySelector(\"head\"),r=null!=(i=t.querySelector(\"body\"))?i:document.createElement(\"body\"),n=e.HeadDetails.fromHeadElement(o),new this(n,r)},t.prototype.clone=function(){return new this.constructor(this.headDetails,this.bodyElement.cloneNode(!0))},t.prototype.getRootLocation=function(){var t,r;return r=null!=(t=this.getSetting(\"root\"))?t:\"/\",new e.Location(r)},t.prototype.getCacheControlValue=function(){return this.getSetting(\"cache-control\")},t.prototype.getElementForAnchor=function(t){try{return this.bodyElement.querySelector(\"[id='\"+t+\"'], a[name='\"+t+\"']\")}catch(e){}},t.prototype.getPermanentElements=function(){return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\")},t.prototype.getPermanentElementById=function(t){return this.bodyElement.querySelector(\"#\"+t+\"[data-turbolinks-permanent]\")},t.prototype.getPermanentElementsPresentInSnapshot=function(t){var e,r,n,o,i;for(o=this.getPermanentElements(),i=[],r=0,n=o.length;n>r;r++)e=o[r],t.getPermanentElementById(e.id)&&i.push(e);return i},t.prototype.findFirstAutofocusableElement=function(){return this.bodyElement.querySelector(\"[autofocus]\")},t.prototype.hasAnchor=function(t){return null!=this.getElementForAnchor(t)},t.prototype.isPreviewable=function(){return\"no-preview\"!==this.getCacheControlValue()},t.prototype.isCacheable=function(){return\"no-cache\"!==this.getCacheControlValue()},t.prototype.isVisitable=function(){return\"reload\"!==this.getSetting(\"visit-control\")},t.prototype.getSetting=function(t){return this.headDetails.getMetaValue(\"turbolinks-\"+t)},t}()}.call(this),function(){var t=[].slice;e.Renderer=function(){function e(){}var r;return e.render=function(){var e,r,n,o;return n=arguments[0],r=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],o=function(t,e,r){r.prototype=t.prototype;var n=new r,o=t.apply(n,e);return Object(o)===o?o:n}(this,e,function(){}),o.delegate=n,o.render(r),o},e.prototype.renderView=function(t){return this.delegate.viewWillRender(this.newBody),t(),this.delegate.viewRendered(this.newBody)},e.prototype.invalidateView=function(){return this.delegate.viewInvalidated()},e.prototype.createScriptElement=function(t){var e;return\"false\"===t.getAttribute(\"data-turbolinks-eval\")?t:(e=document.createElement(\"script\"),e.textContent=t.textContent,e.async=!1,r(e,t),e)},r=function(t,e){var r,n,o,i,s,a,u;for(i=e.attributes,a=[],r=0,n=i.length;n>r;r++)s=i[r],o=s.name,u=s.value,a.push(t.setAttribute(o,u));return a},e}()}.call(this),function(){var t,r,n=function(t,e){function r(){this.constructor=t}for(var n in e)o.call(e,n)&&(t[n]=e[n]);return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t},o={}.hasOwnProperty;e.SnapshotRenderer=function(e){function o(t,e,r){this.currentSnapshot=t,this.newSnapshot=e,this.isPreview=r,this.currentHeadDetails=this.currentSnapshot.headDetails,this.newHeadDetails=this.newSnapshot.headDetails,this.currentBody=this.currentSnapshot.bodyElement,this.newBody=this.newSnapshot.bodyElement}return n(o,e),o.prototype.render=function(t){return this.shouldRender()?(this.mergeHead(),this.renderView(function(e){return function(){return e.replaceBody(),e.isPreview||e.focusFirstAutofocusableElement(),t()}}(this))):this.invalidateView()},o.prototype.mergeHead=function(){return this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()},o.prototype.replaceBody=function(){var t;return t=this.relocateCurrentBodyPermanentElements(),this.activateNewBodyScriptElements(),this.assignNewBody(),this.replacePlaceholderElementsWithClonedPermanentElements(t)},o.prototype.shouldRender=function(){return this.newSnapshot.isVisitable()&&this.trackedElementsAreIdentical()},o.prototype.trackedElementsAreIdentical=function(){return this.currentHeadDetails.getTrackedElementSignature()===this.newHeadDetails.getTrackedElementSignature()},o.prototype.copyNewHeadStylesheetElements=function(){var t,e,r,n,o;for(n=this.getNewHeadStylesheetElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.copyNewHeadScriptElements=function(){var t,e,r,n,o;for(n=this.getNewHeadScriptElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(this.createScriptElement(t)));return o},o.prototype.removeCurrentHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getCurrentHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.removeChild(t));return o},o.prototype.copyNewHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getNewHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.relocateCurrentBodyPermanentElements=function(){var e,n,o,i,s,a,u;for(a=this.getCurrentBodyPermanentElements(),u=[],e=0,n=a.length;n>e;e++)i=a[e],s=t(i),o=this.newSnapshot.getPermanentElementById(i.id),r(i,s.element),r(o,i),u.push(s);return u},o.prototype.replacePlaceholderElementsWithClonedPermanentElements=function(t){var e,n,o,i,s,a,u;for(u=[],o=0,i=t.length;i>o;o++)a=t[o],n=a.element,s=a.permanentElement,e=s.cloneNode(!0),u.push(r(n,e));return u},o.prototype.activateNewBodyScriptElements=function(){var t,e,n,o,i,s;for(i=this.getNewBodyScriptElements(),s=[],e=0,o=i.length;o>e;e++)n=i[e],t=this.createScriptElement(n),s.push(r(n,t));return s},o.prototype.assignNewBody=function(){return document.body=this.newBody},o.prototype.focusFirstAutofocusableElement=function(){var t;return null!=(t=this.newSnapshot.findFirstAutofocusableElement())?t.focus():void 0},o.prototype.getNewHeadStylesheetElements=function(){return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails)},o.prototype.getNewHeadScriptElements=function(){return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails)},o.prototype.getCurrentHeadProvisionalElements=function(){return this.currentHeadDetails.getProvisionalElements()},o.prototype.getNewHeadProvisionalElements=function(){return this.newHeadDetails.getProvisionalElements()},o.prototype.getCurrentBodyPermanentElements=function(){return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot)},o.prototype.getNewBodyScriptElements=function(){return this.newBody.querySelectorAll(\"script\")},o}(e.Renderer),t=function(t){var e;return e=document.createElement(\"meta\"),e.setAttribute(\"name\",\"turbolinks-permanent-placeholder\"),e.setAttribute(\"content\",t.id),{element:e,permanentElement:t}},r=function(t,e){var r;return(r=t.parentNode)?r.replaceChild(e,t):void 0}}.call(this),function(){var t=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;e.ErrorRenderer=function(e){function r(t){var e;e=document.createElement(\"html\"),e.innerHTML=t,this.newHead=e.querySelector(\"head\"),this.newBody=e.querySelector(\"body\")}return t(r,e),r.prototype.render=function(t){return this.renderView(function(e){return function(){return e.replaceHeadAndBody(),e.activateBodyScriptElements(),t()}}(this))},r.prototype.replaceHeadAndBody=function(){var t,e;return e=document.head,t=document.body,e.parentNode.replaceChild(this.newHead,e),t.parentNode.replaceChild(this.newBody,t)},r.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},r.prototype.getScriptElements=function(){return document.documentElement.querySelectorAll(\"script\")},r}(e.Renderer)}.call(this),function(){e.View=function(){function t(t){this.delegate=t,this.htmlElement=document.documentElement}return t.prototype.getRootLocation=function(){return this.getSnapshot().getRootLocation()},t.prototype.getElementForAnchor=function(t){return this.getSnapshot().getElementForAnchor(t)},t.prototype.getSnapshot=function(){return e.Snapshot.fromHTMLElement(this.htmlElement)},t.prototype.render=function(t,e){var r,n,o;return o=t.snapshot,r=t.error,n=t.isPreview,this.markAsPreview(n),null!=o?this.renderSnapshot(o,n,e):this.renderError(r,e)},t.prototype.markAsPreview=function(t){return t?this.htmlElement.setAttribute(\"data-turbolinks-preview\",\"\"):this.htmlElement.removeAttribute(\"data-turbolinks-preview\")},t.prototype.renderSnapshot=function(t,r,n){return e.SnapshotRenderer.render(this.delegate,n,this.getSnapshot(),e.Snapshot.wrap(t),r)},t.prototype.renderError=function(t,r){return e.ErrorRenderer.render(this.delegate,r,t)},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ScrollManager=function(){function r(r){this.delegate=r,this.onScroll=t(this.onScroll,this),this.onScroll=e.throttle(this.onScroll)}return r.prototype.start=function(){return this.started?void 0:(addEventListener(\"scroll\",this.onScroll,!1),this.onScroll(),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener(\"scroll\",this.onScroll,!1),this.started=!1):void 0},r.prototype.scrollToElement=function(t){return t.scrollIntoView()},r.prototype.scrollToPosition=function(t){var e,r;return e=t.x,r=t.y,window.scrollTo(e,r)},r.prototype.onScroll=function(t){return this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},r.prototype.updatePosition=function(t){var e;return this.position=t,null!=(e=this.delegate)?e.scrollPositionChanged(this.position):void 0},r}()}.call(this),function(){e.SnapshotCache=function(){function t(t){this.size=t,this.keys=[],this.snapshots={}}var r;return t.prototype.has=function(t){var e;return e=r(t),e in this.snapshots},t.prototype.get=function(t){var e;if(this.has(t))return e=this.read(t),this.touch(t),e},t.prototype.put=function(t,e){return this.write(t,e),this.touch(t),e},t.prototype.read=function(t){var e;return e=r(t),this.snapshots[e]},t.prototype.write=function(t,e){var n;return n=r(t),this.snapshots[n]=e},t.prototype.touch=function(t){var e,n;return n=r(t),e=this.keys.indexOf(n),e>-1&&this.keys.splice(e,1),this.keys.unshift(n),this.trim()},t.prototype.trim=function(){var t,e,r,n,o;for(n=this.keys.splice(this.size),o=[],t=0,r=n.length;r>t;t++)e=n[t],o.push(delete this.snapshots[e]);return o},r=function(t){return e.Location.wrap(t).toCacheKey()},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Visit=function(){function r(r,n,o){this.controller=r,this.action=o,this.performScroll=t(this.performScroll,this),this.identifier=e.uuid(),this.location=e.Location.wrap(n),this.adapter=this.controller.adapter,this.state=\"initialized\",this.timingMetrics={}}var n;return r.prototype.start=function(){return\"initialized\"===this.state?(this.recordTimingMetric(\"visitStart\"),this.state=\"started\",this.adapter.visitStarted(this)):void 0},r.prototype.cancel=function(){var t;return\"started\"===this.state?(null!=(t=this.request)&&t.cancel(),this.cancelRender(),this.state=\"canceled\"):void 0},r.prototype.complete=function(){var t;return\"started\"===this.state?(this.recordTimingMetric(\"visitEnd\"),this.state=\"completed\",\"function\"==typeof(t=this.adapter).visitCompleted&&t.visitCompleted(this),this.controller.visitCompleted(this)):void 0},r.prototype.fail=function(){var t;return\"started\"===this.state?(this.state=\"failed\",\"function\"==typeof(t=this.adapter).visitFailed?t.visitFailed(this):void 0):void 0},r.prototype.changeHistory=function(){var t,e;return this.historyChanged?void 0:(t=this.location.isEqualTo(this.referrer)?\"replace\":this.action,e=n(t),this.controller[e](this.location,this.restorationIdentifier),this.historyChanged=!0)},r.prototype.issueRequest=function(){return this.shouldIssueRequest()&&null==this.request?(this.progress=0,this.request=new e.HttpRequest(this,this.location,this.referrer),this.request.send()):void 0},r.prototype.getCachedSnapshot=function(){var t;return!(t=this.controller.getCachedSnapshotForLocation(this.location))||null!=this.location.anchor&&!t.hasAnchor(this.location.anchor)||\"restore\"!==this.action&&!t.isPreviewable()?void 0:t},r.prototype.hasCachedSnapshot=function(){return null!=this.getCachedSnapshot()},r.prototype.loadCachedSnapshot=function(){var t,e;return(e=this.getCachedSnapshot())?(t=this.shouldIssueRequest(),this.render(function(){var r;return this.cacheSnapshot(),this.controller.render({snapshot:e,isPreview:t},this.performScroll),\"function\"==typeof(r=this.adapter).visitRendered&&r.visitRendered(this),t?void 0:this.complete()})):void 0},r.prototype.loadResponse=function(){return null!=this.response?this.render(function(){var t,e;return this.cacheSnapshot(),this.request.failed?(this.controller.render({error:this.response},this.performScroll),\"function\"==typeof(t=this.adapter).visitRendered&&t.visitRendered(this),this.fail()):(this.controller.render({snapshot:this.response},this.performScroll),\"function\"==typeof(e=this.adapter).visitRendered&&e.visitRendered(this),this.complete())}):void 0},r.prototype.followRedirect=function(){return this.redirectedToLocation&&!this.followedRedirect?(this.location=this.redirectedToLocation,this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation,this.restorationIdentifier),this.followedRedirect=!0):void 0},r.prototype.requestStarted=function(){var t;return this.recordTimingMetric(\"requestStart\"),\"function\"==typeof(t=this.adapter).visitRequestStarted?t.visitRequestStarted(this):void 0},r.prototype.requestProgressed=function(t){var e;return this.progress=t,\"function\"==typeof(e=this.adapter).visitRequestProgressed?e.visitRequestProgressed(this):void 0},r.prototype.requestCompletedWithResponse=function(t,r){return this.response=t,null!=r&&(this.redirectedToLocation=e.Location.wrap(r)),this.adapter.visitRequestCompleted(this)},r.prototype.requestFailedWithStatusCode=function(t,e){return this.response=e,this.adapter.visitRequestFailedWithStatusCode(this,t)},r.prototype.requestFinished=function(){var t;return this.recordTimingMetric(\"requestEnd\"),\"function\"==typeof(t=this.adapter).visitRequestFinished?t.visitRequestFinished(this):void 0},r.prototype.performScroll=function(){return this.scrolled?void 0:(\"restore\"===this.action?this.scrollToRestoredPosition()||this.scrollToTop():this.scrollToAnchor()||this.scrollToTop(),this.scrolled=!0)},r.prototype.scrollToRestoredPosition=function(){var t,e;return t=null!=(e=this.restorationData)?e.scrollPosition:void 0,null!=t?(this.controller.scrollToPosition(t),!0):void 0},r.prototype.scrollToAnchor=function(){return null!=this.location.anchor?(this.controller.scrollToAnchor(this.location.anchor),!0):void 0},r.prototype.scrollToTop=function(){return this.controller.scrollToPosition({x:0,y:0})},r.prototype.recordTimingMetric=function(t){var e;return null!=(e=this.timingMetrics)[t]?e[t]:e[t]=(new Date).getTime()},r.prototype.getTimingMetrics=function(){return e.copyObject(this.timingMetrics)},n=function(t){switch(t){case\"replace\":return\"replaceHistoryWithLocationAndRestorationIdentifier\";case\"advance\":case\"restore\":return\"pushHistoryWithLocationAndRestorationIdentifier\"}},r.prototype.shouldIssueRequest=function(){return\"restore\"===this.action?!this.hasCachedSnapshot():!0},r.prototype.cacheSnapshot=function(){return this.snapshotCached?void 0:(this.controller.cacheSnapshot(),this.snapshotCached=!0)},r.prototype.render=function(t){return this.cancelRender(),this.frame=requestAnimationFrame(function(e){return function(){return e.frame=null,t.call(e)}}(this))},r.prototype.cancelRender=function(){return this.frame?cancelAnimationFrame(this.frame):void 0},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Controller=function(){function r(){this.clickBubbled=t(this.clickBubbled,this),this.clickCaptured=t(this.clickCaptured,this),this.pageLoaded=t(this.pageLoaded,this),this.history=new e.History(this),this.view=new e.View(this),this.scrollManager=new e.ScrollManager(this),this.restorationData={},this.clearCache(),this.setProgressBarDelay(500)}return r.prototype.start=function(){return e.supported&&!this.started?(addEventListener(\"click\",this.clickCaptured,!0),addEventListener(\"DOMContentLoaded\",this.pageLoaded,!1),this.scrollManager.start(),this.startHistory(),this.started=!0,this.enabled=!0):void 0},r.prototype.disable=function(){return this.enabled=!1},r.prototype.stop=function(){return this.started?(removeEventListener(\"click\",this.clickCaptured,!0),removeEventListener(\"DOMContentLoaded\",this.pageLoaded,!1),this.scrollManager.stop(),this.stopHistory(),this.started=!1):void 0},r.prototype.clearCache=function(){return this.cache=new e.SnapshotCache(10)},r.prototype.visit=function(t,r){var n,o;return null==r&&(r={}),t=e.Location.wrap(t),this.applicationAllowsVisitingLocation(t)?this.locationIsVisitable(t)?(n=null!=(o=r.action)?o:\"advance\",this.adapter.visitProposedToLocationWithAction(t,n)):window.location=t:void 0},r.prototype.startVisitToLocationWithAction=function(t,r,n){var o;return e.supported?(o=this.getRestorationDataForIdentifier(n),this.startVisit(t,r,{restorationData:o})):window.location=t},r.prototype.setProgressBarDelay=function(t){return this.progressBarDelay=t},r.prototype.startHistory=function(){return this.location=e.Location.wrap(window.location),this.restorationIdentifier=e.uuid(),this.history.start(),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.stopHistory=function(){return this.history.stop()},r.prototype.pushHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.push(this.location,this.restorationIdentifier)},r.prototype.replaceHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.historyPoppedToLocationWithRestorationIdentifier=function(t,r){var n;return this.restorationIdentifier=r,this.enabled?(n=this.getRestorationDataForIdentifier(this.restorationIdentifier),this.startVisit(t,\"restore\",{restorationIdentifier:this.restorationIdentifier,restorationData:n,historyChanged:!0}),this.location=e.Location.wrap(t)):this.adapter.pageInvalidated()},r.prototype.getCachedSnapshotForLocation=function(t){var e;return null!=(e=this.cache.get(t))?e.clone():void 0},r.prototype.shouldCacheSnapshot=function(){return this.view.getSnapshot().isCacheable();\n},r.prototype.cacheSnapshot=function(){var t,r;return this.shouldCacheSnapshot()?(this.notifyApplicationBeforeCachingSnapshot(),r=this.view.getSnapshot(),t=this.lastRenderedLocation,e.defer(function(e){return function(){return e.cache.put(t,r.clone())}}(this))):void 0},r.prototype.scrollToAnchor=function(t){var e;return(e=this.view.getElementForAnchor(t))?this.scrollToElement(e):this.scrollToPosition({x:0,y:0})},r.prototype.scrollToElement=function(t){return this.scrollManager.scrollToElement(t)},r.prototype.scrollToPosition=function(t){return this.scrollManager.scrollToPosition(t)},r.prototype.scrollPositionChanged=function(t){var e;return e=this.getCurrentRestorationData(),e.scrollPosition=t},r.prototype.render=function(t,e){return this.view.render(t,e)},r.prototype.viewInvalidated=function(){return this.adapter.pageInvalidated()},r.prototype.viewWillRender=function(t){return this.notifyApplicationBeforeRender(t)},r.prototype.viewRendered=function(){return this.lastRenderedLocation=this.currentVisit.location,this.notifyApplicationAfterRender()},r.prototype.pageLoaded=function(){return this.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()},r.prototype.clickCaptured=function(){return removeEventListener(\"click\",this.clickBubbled,!1),addEventListener(\"click\",this.clickBubbled,!1)},r.prototype.clickBubbled=function(t){var e,r,n;return this.enabled&&this.clickEventIsSignificant(t)&&(r=this.getVisitableLinkForNode(t.target))&&(n=this.getVisitableLocationForLink(r))&&this.applicationAllowsFollowingLinkToLocation(r,n)?(t.preventDefault(),e=this.getActionForLink(r),this.visit(n,{action:e})):void 0},r.prototype.applicationAllowsFollowingLinkToLocation=function(t,e){var r;return r=this.notifyApplicationAfterClickingLinkToLocation(t,e),!r.defaultPrevented},r.prototype.applicationAllowsVisitingLocation=function(t){var e;return e=this.notifyApplicationBeforeVisitingLocation(t),!e.defaultPrevented},r.prototype.notifyApplicationAfterClickingLinkToLocation=function(t,r){return e.dispatch(\"turbolinks:click\",{target:t,data:{url:r.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationBeforeVisitingLocation=function(t){return e.dispatch(\"turbolinks:before-visit\",{data:{url:t.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationAfterVisitingLocation=function(t){return e.dispatch(\"turbolinks:visit\",{data:{url:t.absoluteURL}})},r.prototype.notifyApplicationBeforeCachingSnapshot=function(){return e.dispatch(\"turbolinks:before-cache\")},r.prototype.notifyApplicationBeforeRender=function(t){return e.dispatch(\"turbolinks:before-render\",{data:{newBody:t}})},r.prototype.notifyApplicationAfterRender=function(){return e.dispatch(\"turbolinks:render\")},r.prototype.notifyApplicationAfterPageLoad=function(t){return null==t&&(t={}),e.dispatch(\"turbolinks:load\",{data:{url:this.location.absoluteURL,timing:t}})},r.prototype.startVisit=function(t,e,r){var n;return null!=(n=this.currentVisit)&&n.cancel(),this.currentVisit=this.createVisit(t,e,r),this.currentVisit.start(),this.notifyApplicationAfterVisitingLocation(t)},r.prototype.createVisit=function(t,r,n){var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationData,o=i.historyChanged,u=new e.Visit(this,t,r),u.restorationIdentifier=null!=a?a:e.uuid(),u.restorationData=e.copyObject(s),u.historyChanged=o,u.referrer=this.location,u},r.prototype.visitCompleted=function(t){return this.notifyApplicationAfterPageLoad(t.getTimingMetrics())},r.prototype.clickEventIsSignificant=function(t){return!(t.defaultPrevented||t.target.isContentEditable||t.which>1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)},r.prototype.getVisitableLinkForNode=function(t){return this.nodeIsVisitable(t)?e.closest(t,\"a[href]:not([target]):not([download])\"):void 0},r.prototype.getVisitableLocationForLink=function(t){var r;return r=new e.Location(t.getAttribute(\"href\")),this.locationIsVisitable(r)?r:void 0},r.prototype.getActionForLink=function(t){var e;return null!=(e=t.getAttribute(\"data-turbolinks-action\"))?e:\"advance\"},r.prototype.nodeIsVisitable=function(t){var r;return(r=e.closest(t,\"[data-turbolinks]\"))?\"false\"!==r.getAttribute(\"data-turbolinks\"):!0},r.prototype.locationIsVisitable=function(t){return t.isPrefixedBy(this.view.getRootLocation())&&t.isHTML()},r.prototype.getCurrentRestorationData=function(){return this.getRestorationDataForIdentifier(this.restorationIdentifier)},r.prototype.getRestorationDataForIdentifier=function(t){var e;return null!=(e=this.restorationData)[t]?e[t]:e[t]={}},r}()}.call(this),function(){!function(){var t,e;if((t=e=document.currentScript)&&!e.hasAttribute(\"data-turbolinks-suppress-warning\"))for(;t=t.parentNode;)if(t===document.body)return console.warn(\"You are loading Turbolinks from a